summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/stdenv.xml4
-rwxr-xr-xmaintainers/scripts/gnu/gnupdate319
-rw-r--r--pkgs/applications/audio/amarok/default.nix4
-rw-r--r--pkgs/applications/audio/amarok/live.nix37
-rw-r--r--pkgs/applications/audio/ardour/ardour3.nix48
-rw-r--r--pkgs/applications/audio/audacious/default.nix14
-rw-r--r--pkgs/applications/audio/audacity/default.nix21
-rw-r--r--pkgs/applications/audio/bmp-plugins/musepack/builder.sh6
-rw-r--r--pkgs/applications/audio/bmp-plugins/musepack/default.nix11
-rw-r--r--pkgs/applications/audio/bmp-plugins/wma/default.nix19
-rw-r--r--pkgs/applications/audio/bmp/default.nix21
-rw-r--r--pkgs/applications/audio/cdparanoia/default.nix14
-rw-r--r--pkgs/applications/audio/cdparanoia/fix.patch46
-rw-r--r--pkgs/applications/audio/gmu/default.nix35
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix35
-rw-r--r--pkgs/applications/audio/hydrogen/scons-env.patch20
-rw-r--r--pkgs/applications/audio/lash/default.nix36
-rw-r--r--pkgs/applications/audio/lash/socket.patch16
-rw-r--r--pkgs/applications/audio/lingot/default.nix22
-rw-r--r--pkgs/applications/audio/lmms/default.nix23
-rw-r--r--pkgs/applications/audio/mpg321/default.nix13
-rw-r--r--pkgs/applications/audio/puredata/default.nix28
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix15
-rw-r--r--pkgs/applications/audio/qtractor/default.nix25
-rw-r--r--pkgs/applications/audio/rakarrack/default.nix23
-rw-r--r--pkgs/applications/audio/seq24/default.nix21
-rw-r--r--pkgs/applications/audio/sonic-visualiser/default.nix53
-rw-r--r--pkgs/applications/audio/sonic-visualizer/default.nix45
-rw-r--r--pkgs/applications/audio/specimen/default.nix28
-rw-r--r--pkgs/applications/audio/spotify/default.nix63
-rw-r--r--pkgs/applications/audio/spotify/preload.c66
-rw-r--r--pkgs/applications/audio/vkeybd/default.nix32
-rw-r--r--pkgs/applications/audio/vorbis-tools/default.nix10
-rw-r--r--pkgs/applications/audio/vorbis-tools/ogg123-curlopt-mute.patch13
-rw-r--r--pkgs/applications/audio/xsynth-dssi/default.nix37
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix36
-rw-r--r--pkgs/applications/audio/zynaddsubfx/default.nix25
-rw-r--r--pkgs/applications/display-managers/slim/default.nix6
-rw-r--r--pkgs/applications/display-managers/slim/slim-1.3.1-gcc4.4.patch17
-rw-r--r--pkgs/applications/editors/eclipse/default.nix258
-rw-r--r--pkgs/applications/editors/emacs-23/default.nix20
-rw-r--r--pkgs/applications/editors/emacs-modes/bbdb/builder.sh12
-rw-r--r--pkgs/applications/editors/emacs-modes/bbdb/default.nix15
-rw-r--r--pkgs/applications/editors/emacs-modes/magit/default.nix15
-rw-r--r--pkgs/applications/editors/emacs-modes/org/default.nix18
-rw-r--r--pkgs/applications/editors/emacs-modes/proofgeneral/default.nix25
-rw-r--r--pkgs/applications/editors/emacs-modes/proofgeneral/emacs-23.3.patch45
-rw-r--r--pkgs/applications/editors/kdevelop/default.nix13
-rw-r--r--pkgs/applications/editors/leksah/default.nix45
-rw-r--r--pkgs/applications/editors/texmacs/default.nix8
-rw-r--r--pkgs/applications/editors/zile/default.nix4
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix18
-rw-r--r--pkgs/applications/graphics/darktable/default.nix47
-rw-r--r--pkgs/applications/graphics/djview/default.nix4
-rw-r--r--pkgs/applications/graphics/fbida/default.nix49
-rw-r--r--pkgs/applications/graphics/feh/default.nix10
-rw-r--r--pkgs/applications/graphics/freecad/cmakeinstall.patch55
-rw-r--r--pkgs/applications/graphics/freecad/default.nix47
-rw-r--r--pkgs/applications/graphics/freecad/pythonpath.patch19
-rw-r--r--pkgs/applications/graphics/geeqie/default.nix10
-rw-r--r--pkgs/applications/graphics/giv/build.patch44
-rw-r--r--pkgs/applications/graphics/giv/default.nix35
-rw-r--r--pkgs/applications/graphics/giv/union.patch38
-rw-r--r--pkgs/applications/graphics/hugin/default.nix6
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix4
-rw-r--r--pkgs/applications/graphics/jbrout/default.nix38
-rw-r--r--pkgs/applications/graphics/kipi-plugins/default.nix19
-rw-r--r--pkgs/applications/graphics/kipi-plugins/find-gdk.patch16
-rw-r--r--pkgs/applications/graphics/minidjvu/default.nix26
-rw-r--r--pkgs/applications/graphics/ocrad/default.nix34
-rw-r--r--pkgs/applications/graphics/paraview/default.nix33
-rw-r--r--pkgs/applications/graphics/tesseract/default.nix39
-rw-r--r--pkgs/applications/graphics/xscreensaver/default.nix17
-rw-r--r--pkgs/applications/misc/adobe-reader/default.nix16
-rw-r--r--pkgs/applications/misc/bitcoin/default.nix44
-rw-r--r--pkgs/applications/misc/blender/default.nix23
-rw-r--r--pkgs/applications/misc/blender/python-chmod.patch14
-rw-r--r--pkgs/applications/misc/calibre/default.nix9
-rw-r--r--pkgs/applications/misc/djvulibre/default.nix8
-rw-r--r--pkgs/applications/misc/dmenu/default.nix4
-rw-r--r--pkgs/applications/misc/epdfview/default.nix4
-rw-r--r--pkgs/applications/misc/evince/default.nix15
-rw-r--r--pkgs/applications/misc/fetchmail/default.nix29
-rw-r--r--pkgs/applications/misc/flite/default.nix29
-rw-r--r--pkgs/applications/misc/googleearth/default.nix11
-rw-r--r--pkgs/applications/misc/grip/default.nix6
-rw-r--r--pkgs/applications/misc/gv/default.nix4
-rw-r--r--pkgs/applications/misc/hello/ex-2/default.nix6
-rw-r--r--pkgs/applications/misc/ikiwiki/default.nix19
-rw-r--r--pkgs/applications/misc/jbidwatcher/default.nix50
-rw-r--r--pkgs/applications/misc/k3b/default.nix16
-rw-r--r--pkgs/applications/misc/kde-wacomtablet/default.nix20
-rw-r--r--pkgs/applications/misc/keepassx/default.nix24
-rw-r--r--pkgs/applications/misc/krename/default.nix4
-rw-r--r--pkgs/applications/misc/krusader/default.nix4
-rw-r--r--pkgs/applications/misc/lyx/default.nix10
-rw-r--r--pkgs/applications/misc/makeself/default.nix23
-rw-r--r--pkgs/applications/misc/merkaartor/default.nix16
-rw-r--r--pkgs/applications/misc/mysql-workbench/default.nix13
-rw-r--r--pkgs/applications/misc/nut/default.nix30
-rw-r--r--pkgs/applications/misc/qgis/default.nix43
-rw-r--r--pkgs/applications/misc/qgis/r14988.diff38
-rw-r--r--pkgs/applications/misc/qgis/trunk.nix23
-rw-r--r--pkgs/applications/misc/redshift/default.nix28
-rw-r--r--pkgs/applications/misc/rxvt_unicode/default.nix14
-rw-r--r--pkgs/applications/misc/sakura/default.nix4
-rw-r--r--pkgs/applications/misc/semnotes/default.nix4
-rw-r--r--pkgs/applications/misc/surf/default.nix29
-rw-r--r--pkgs/applications/misc/taskjuggler/default.nix20
-rw-r--r--pkgs/applications/misc/taskjuggler/timezone-glibc.patch48
-rw-r--r--pkgs/applications/misc/vifm/default.nix48
-rw-r--r--pkgs/applications/misc/xchm/default.nix6
-rw-r--r--pkgs/applications/misc/xmobar/default.nix22
-rw-r--r--pkgs/applications/misc/xneur/default.nix7
-rw-r--r--pkgs/applications/misc/xneur/src-for-default.nix8
-rw-r--r--pkgs/applications/misc/xpdf/default.nix6
-rw-r--r--pkgs/applications/misc/xterm/default.nix7
-rw-r--r--pkgs/applications/misc/zathura/default.nix22
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix63
-rw-r--r--pkgs/applications/networking/browsers/conkeror/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/elinks/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/elinks/gc-init.patch17
-rw-r--r--pkgs/applications/networking/browsers/firefox/3.6.nix12
-rw-r--r--pkgs/applications/networking/browsers/firefox/5.0.nix (renamed from pkgs/applications/networking/browsers/firefox/4.0.nix)89
-rw-r--r--pkgs/applications/networking/browsers/firefox/6.0.nix (renamed from pkgs/applications/networking/browsers/firefox/3.5.nix)75
-rw-r--r--pkgs/applications/networking/browsers/firefox/7.0.nix184
-rw-r--r--pkgs/applications/networking/browsers/firefox/binary.nix55
-rw-r--r--pkgs/applications/networking/browsers/firefox/writable-copies.patch23
-rw-r--r--pkgs/applications/networking/browsers/firefox/xlibs.patch10
-rw-r--r--pkgs/applications/networking/browsers/icecat-3/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/icecat-4/default.nix118
-rw-r--r--pkgs/applications/networking/browsers/icecat-4/rpath-link.patch14
-rw-r--r--pkgs/applications/networking/browsers/icecat-4/skip-gre-registration.patch12
-rw-r--r--pkgs/applications/networking/browsers/konq-plugins/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/builder.sh3
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix15
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix92
-rw-r--r--pkgs/applications/networking/browsers/rekonq/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/uzbl/default.nix3
-rw-r--r--pkgs/applications/networking/browsers/w3m/default.nix8
-rw-r--r--pkgs/applications/networking/ekiga/default.nix2
-rw-r--r--pkgs/applications/networking/esniper/default.nix28
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-otr/default.nix38
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/freetalk/01_callbacks_const_fix.diff25
-rw-r--r--pkgs/applications/networking/instant-messengers/freetalk/default.nix51
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/config.patch15
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/default.nix26
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/more-icons.patch12
-rw-r--r--pkgs/applications/networking/instant-messengers/oneteam/default.nix90
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/vacuum/default.nix10
-rw-r--r--pkgs/applications/networking/irc/chatzilla/default.nix6
-rw-r--r--pkgs/applications/networking/irc/quassel/default.nix4
-rw-r--r--pkgs/applications/networking/linphone/default.nix20
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix16
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/openssl.patch15
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix84
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/3.x.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/5.x.nix83
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/thunderbird-build-deps.patch21
-rw-r--r--pkgs/applications/networking/mumble/default.nix45
-rw-r--r--pkgs/applications/networking/mumble/mumble-jack-support.patch457
-rw-r--r--pkgs/applications/networking/newsreaders/pan/default.nix22
-rw-r--r--pkgs/applications/networking/offrss/default.nix29
-rw-r--r--pkgs/applications/networking/p2p/ktorrent/default.nix (renamed from pkgs/applications/networking/ktorrent/default.nix)16
-rw-r--r--pkgs/applications/networking/p2p/ktorrent/find-workspace.diff (renamed from pkgs/applications/networking/ktorrent/find-workspace.diff)0
-rw-r--r--pkgs/applications/networking/p2p/mldonkey/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/retroshare/default.nix28
-rw-r--r--pkgs/applications/networking/p2p/transmission/default.nix15
-rw-r--r--pkgs/applications/networking/p2p/tribler/default.nix43
-rw-r--r--pkgs/applications/networking/pjsip/default.nix30
-rw-r--r--pkgs/applications/networking/remote/rdesktop/default.nix4
-rw-r--r--pkgs/applications/networking/siproxd/default.nix19
-rw-r--r--pkgs/applications/networking/skype/default.nix12
-rw-r--r--pkgs/applications/networking/sync/akunambol/default.nix16
-rw-r--r--pkgs/applications/networking/sync/akunambol/non-latin.diff17
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix30
-rw-r--r--pkgs/applications/office/abiword/default.nix4
-rw-r--r--pkgs/applications/office/gnucash/default.nix56
-rw-r--r--pkgs/applications/office/hledger-interest/default.nix20
-rw-r--r--pkgs/applications/office/homebank/default.nix4
-rw-r--r--pkgs/applications/office/keepnote/default.nix5
-rw-r--r--pkgs/applications/office/koffice/default.nix1
-rw-r--r--pkgs/applications/office/koffice/krita-exiv-0.21.diff81
-rw-r--r--pkgs/applications/office/ledger/3.0.nix45
-rw-r--r--pkgs/applications/office/ledger/default.nix61
-rw-r--r--pkgs/applications/office/openoffice/default.nix3
-rw-r--r--pkgs/applications/office/openoffice/go-oo.nix5
-rw-r--r--pkgs/applications/office/openoffice/xlib.patch22
-rw-r--r--pkgs/applications/science/astronomy/gravit/default.nix41
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix31
-rw-r--r--pkgs/applications/science/astronomy/xplanet/default.nix (renamed from pkgs/applications/science/xplanet/default.nix)0
-rw-r--r--pkgs/applications/science/chemistry/avogadro/default.nix19
-rw-r--r--pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--pkgs/applications/science/logic/coq/default.nix11
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix61
-rw-r--r--pkgs/applications/science/logic/hol_light/dmtcp_checkpoint.nix99
-rw-r--r--pkgs/applications/science/logic/hol_light/dmtcp_selfdestruct.ml19
-rw-r--r--pkgs/applications/science/logic/hol_light/parser_setup.patch34
-rw-r--r--pkgs/applications/science/logic/hol_light/sources.nix28
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix4
-rw-r--r--pkgs/applications/science/logic/isabelle/settings.patch20
-rw-r--r--pkgs/applications/science/logic/leo2/default.nix4
-rw-r--r--pkgs/applications/science/logic/matita/Makefile.patch11
-rw-r--r--pkgs/applications/science/logic/matita/configure.patch36
-rw-r--r--pkgs/applications/science/logic/matita/default.nix54
-rw-r--r--pkgs/applications/science/logic/ssreflect/default.nix22
-rw-r--r--pkgs/applications/science/logic/tptp/default.nix87
-rw-r--r--pkgs/applications/science/math/ecm/default.nix27
-rw-r--r--pkgs/applications/science/math/eukleides/default.nix37
-rw-r--r--pkgs/applications/science/math/jags/default.nix17
-rw-r--r--pkgs/applications/science/math/maxima/default.nix32
-rw-r--r--pkgs/applications/science/math/msieve/default.nix28
-rw-r--r--pkgs/applications/science/math/pari/default.nix4
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix25
-rw-r--r--pkgs/applications/science/misc/tulip/configure-opengl.patch75
-rw-r--r--pkgs/applications/science/misc/tulip/default.nix26
-rw-r--r--pkgs/applications/taxes/aangifte-2010/default.nix37
-rw-r--r--pkgs/applications/version-management/bazaar/default.nix21
-rw-r--r--pkgs/applications/version-management/bazaar/tools.nix4
-rw-r--r--pkgs/applications/version-management/darcs/darcs-2.nix20
-rw-r--r--pkgs/applications/version-management/darcs/default.nix27
-rw-r--r--pkgs/applications/version-management/fossil/default.nix9
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix71
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix52
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix49
-rw-r--r--pkgs/applications/version-management/git-and-tools/git2cl/default.nix23
-rw-r--r--pkgs/applications/version-management/git-and-tools/svn2git/default.nix25
-rw-r--r--pkgs/applications/version-management/git-and-tools/topgit/default.nix33
-rw-r--r--pkgs/applications/version-management/kdesvn/default.nix2
-rw-r--r--pkgs/applications/version-management/meld/default.nix13
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix20
-rw-r--r--pkgs/applications/version-management/monotone-viz/mtn-head.nix2
-rw-r--r--pkgs/applications/version-management/monotone/default.nix26
-rw-r--r--pkgs/applications/version-management/subversion/default.nix4
-rw-r--r--pkgs/applications/version-management/veracity/default.nix32
-rw-r--r--pkgs/applications/version-management/veracity/src-for-default.nix10
-rw-r--r--pkgs/applications/version-management/veracity/src-info-for-default.nix4
-rw-r--r--pkgs/applications/video/MPlayer/default.nix61
-rw-r--r--pkgs/applications/video/bangarang/default.nix4
-rw-r--r--pkgs/applications/video/cinelerra/default.nix34
-rw-r--r--pkgs/applications/video/gnash/default.nix29
-rw-r--r--pkgs/applications/video/gnome-mplayer/default.nix4
-rw-r--r--pkgs/applications/video/kdenlive/default.nix18
-rw-r--r--pkgs/applications/video/kdenlive/kdenlive-newmlt.patch70
-rw-r--r--pkgs/applications/video/kino/default.nix16
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix40
-rw-r--r--pkgs/applications/video/vlc/default.nix33
-rw-r--r--pkgs/applications/virtualization/nova/client.nix20
-rw-r--r--pkgs/applications/virtualization/nova/convert.patch12
-rw-r--r--pkgs/applications/virtualization/nova/default.nix94
-rw-r--r--pkgs/applications/virtualization/qemu/0.13.nix10
-rw-r--r--pkgs/applications/virtualization/virt-viewer/default.nix50
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix18
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix42
-rw-r--r--pkgs/applications/virtualization/xen/default.nix26
-rw-r--r--pkgs/applications/window-managers/awesome/cmake284.patch40
-rw-r--r--pkgs/applications/window-managers/awesome/default.nix16
-rw-r--r--pkgs/applications/window-managers/compiz/core.nix3
-rw-r--r--pkgs/applications/window-managers/compiz/gdk-deprecated.patch14
-rw-r--r--pkgs/applications/window-managers/dwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/icewm/default.nix6
-rw-r--r--pkgs/applications/window-managers/jwm/default.nix11
-rw-r--r--pkgs/applications/window-managers/ratpoison/default.nix17
-rw-r--r--pkgs/applications/window-managers/trayer/default.nix28
-rw-r--r--pkgs/applications/window-managers/xmonad/default.nix21
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-contrib.nix24
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-extras.nix21
-rw-r--r--pkgs/build-support/builder-defs/builder-defs.nix35
-rw-r--r--pkgs/build-support/builder-defs/template-auto-callable.nix2
-rwxr-xr-xpkgs/build-support/fetchbzr/nix-prefetch-bzr79
-rw-r--r--pkgs/build-support/fetchfile/default.nix2
-rw-r--r--pkgs/build-support/fetchgit/builder.sh23
-rw-r--r--pkgs/build-support/fetchgit/default.nix1
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git180
-rw-r--r--pkgs/build-support/fetchgitrevision/default.nix10
-rw-r--r--pkgs/build-support/fetchhg/default.nix2
-rwxr-xr-xpkgs/build-support/fetchhg/nix-prefetch-hg8
-rw-r--r--pkgs/build-support/fetchmtn/default.nix16
-rw-r--r--pkgs/build-support/fetchsvnrevision/default.nix10
-rw-r--r--pkgs/build-support/fetchurl/builder.sh4
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix10
-rw-r--r--pkgs/build-support/gcc-wrapper/default.nix3
-rw-r--r--pkgs/build-support/kernel/paths-from-graph.pl1
-rw-r--r--pkgs/build-support/release/debian-build.nix1
-rw-r--r--pkgs/build-support/release/nix-build.nix2
-rw-r--r--pkgs/build-support/release/source-tarball.nix12
-rw-r--r--pkgs/build-support/trivial-builders.nix12
-rw-r--r--pkgs/build-support/vm/default.nix275
-rw-r--r--pkgs/build-support/vm/test.nix6
-rw-r--r--pkgs/data/documentation/man-pages-posix/default.nix20
-rw-r--r--pkgs/data/documentation/man-pages/default.nix6
-rw-r--r--pkgs/data/documentation/pthread-man-pages/default.nix4
-rw-r--r--pkgs/data/fonts/cm-unicode/default.nix44
-rw-r--r--pkgs/data/fonts/gentium/default.nix46
-rw-r--r--pkgs/data/fonts/libertine/2.7.bin.nix17
-rw-r--r--pkgs/data/fonts/libertine/default.nix (renamed from pkgs/data/fonts/libertine/2.7.nix)10
-rw-r--r--pkgs/data/fonts/oldstandard/default.nix50
-rw-r--r--pkgs/data/fonts/tempora-lgc/default.nix49
-rw-r--r--pkgs/data/fonts/theano/default.nix50
-rw-r--r--pkgs/data/misc/shared-desktop-ontologies/default.nix11
-rw-r--r--pkgs/data/misc/shared-mime-info/default.nix4
-rw-r--r--pkgs/data/misc/xkeyboard-config/default.nix8
-rw-r--r--pkgs/desktops/gnome-2.28/default.nix18
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix6
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix3
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.gnutls.patch12
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix8
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/vte/cursor.patch33
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/vte/default.nix8
-rw-r--r--pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix24
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gtkhtml/01_remove-disable-deprecated.patch17
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix10
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libgnomecanvasmm/default.nix12
-rw-r--r--pkgs/desktops/kde-4.4/accessibility/default.nix17
-rw-r--r--pkgs/desktops/kde-4.4/admin/builder.sh13
-rw-r--r--pkgs/desktops/kde-4.4/admin/default.nix28
-rw-r--r--pkgs/desktops/kde-4.4/artwork/default.nix19
-rw-r--r--pkgs/desktops/kde-4.4/base-runtime/default.nix27
-rw-r--r--pkgs/desktops/kde-4.4/base-workspace/default.nix29
-rw-r--r--pkgs/desktops/kde-4.4/base/default.nix20
-rw-r--r--pkgs/desktops/kde-4.4/bindings/default.nix40
-rw-r--r--pkgs/desktops/kde-4.4/default.nix231
-rw-r--r--pkgs/desktops/kde-4.4/edu/default.nix20
-rw-r--r--pkgs/desktops/kde-4.4/extragear/k3b/default.nix22
-rw-r--r--pkgs/desktops/kde-4.4/games/default.nix16
-rw-r--r--pkgs/desktops/kde-4.4/graphics/default.nix24
-rw-r--r--pkgs/desktops/kde-4.4/l10n/default.nix366
-rwxr-xr-xpkgs/desktops/kde-4.4/l10n/generate-expr-from-tarballs.pl101
-rw-r--r--pkgs/desktops/kde-4.4/libs/default.nix34
-rw-r--r--pkgs/desktops/kde-4.4/multimedia/default.nix21
-rw-r--r--pkgs/desktops/kde-4.4/network/default.nix23
-rw-r--r--pkgs/desktops/kde-4.4/oxygen-icons/default.nix17
-rw-r--r--pkgs/desktops/kde-4.4/pim-runtime/builder.sh8
-rw-r--r--pkgs/desktops/kde-4.4/pim-runtime/default.nix21
-rw-r--r--pkgs/desktops/kde-4.4/pim/builder.sh8
-rw-r--r--pkgs/desktops/kde-4.4/pim/default.nix32
-rw-r--r--pkgs/desktops/kde-4.4/pimlibs/default.nix18
-rw-r--r--pkgs/desktops/kde-4.4/plasma-addons/builder.sh9
-rw-r--r--pkgs/desktops/kde-4.4/plasma-addons/default.nix23
-rw-r--r--pkgs/desktops/kde-4.4/sdk/builder.sh8
-rw-r--r--pkgs/desktops/kde-4.4/sdk/default.nix22
-rw-r--r--pkgs/desktops/kde-4.4/support/akonadi/default.nix18
-rw-r--r--pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch17
-rw-r--r--pkgs/desktops/kde-4.4/support/attica/default.nix16
-rw-r--r--pkgs/desktops/kde-4.4/support/automoc4/default.nix15
-rw-r--r--pkgs/desktops/kde-4.4/support/eigen/default.nix16
-rw-r--r--pkgs/desktops/kde-4.4/support/phonon/default.nix26
-rw-r--r--pkgs/desktops/kde-4.4/support/phonon/phonon-4.4.1-gst-plugins-include.patch263
-rw-r--r--pkgs/desktops/kde-4.4/support/polkit-qt/default.nix16
-rw-r--r--pkgs/desktops/kde-4.4/support/qca2/default.nix23
-rw-r--r--pkgs/desktops/kde-4.4/support/qca2/ossl-remove-whirlpool.patch74
-rw-r--r--pkgs/desktops/kde-4.4/support/qca2/ossl.nix32
-rw-r--r--pkgs/desktops/kde-4.4/support/qimageblitz/default.nix16
-rw-r--r--pkgs/desktops/kde-4.4/support/soprano/default.nix21
-rw-r--r--pkgs/desktops/kde-4.4/support/strigi/default.nix27
-rw-r--r--pkgs/desktops/kde-4.4/toys/default.nix16
-rwxr-xr-xpkgs/desktops/kde-4.4/updatekde.sh65
-rw-r--r--pkgs/desktops/kde-4.4/utils/builder.sh13
-rw-r--r--pkgs/desktops/kde-4.4/utils/default.nix26
-rw-r--r--pkgs/desktops/kde-4.4/webdev/default.nix17
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/color-schemes.nix1
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/icon-themes.nix1
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/jovie.nix1
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/kmag.nix1
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/kmousetool.nix2
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/kmouth.nix2
-rw-r--r--pkgs/desktops/kde-4.5/admin/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/artwork/aurorae.nix4
-rw-r--r--pkgs/desktops/kde-4.5/artwork/color-schemes.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/desktop-themes.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/emoticons.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/high-resolution-wallpapers.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/kscreensaver.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/nuvola-icon-theme.nix6
-rw-r--r--pkgs/desktops/kde-4.5/artwork/phase-style.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/sounds.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/wallpapers.nix3
-rw-r--r--pkgs/desktops/kde-4.5/artwork/weather-wallpapers.nix3
-rw-r--r--pkgs/desktops/kde-4.5/base-runtime/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/base-workspace/default.nix16
-rw-r--r--pkgs/desktops/kde-4.5/base-workspace/no-software-compositing.patch17
-rw-r--r--pkgs/desktops/kde-4.5/base/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/bindings/default.nix9
-rw-r--r--pkgs/desktops/kde-4.5/default.nix34
-rw-r--r--pkgs/desktops/kde-4.5/edu/default.nix17
-rw-r--r--pkgs/desktops/kde-4.5/games/default.nix9
-rw-r--r--pkgs/desktops/kde-4.5/graphics/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/kde-package/default.nix9
-rw-r--r--pkgs/desktops/kde-4.5/kde-package/manifest-4.5.4.nix82
-rw-r--r--pkgs/desktops/kde-4.5/kde-package/manifest-4.5.5.nix82
-rw-r--r--pkgs/desktops/kde-4.5/l10n/default.nix48
-rwxr-xr-xpkgs/desktops/kde-4.5/l10n/l10n-manifest.sh1
-rw-r--r--pkgs/desktops/kde-4.5/l10n/manifest-4.5.1.nix218
-rw-r--r--pkgs/desktops/kde-4.5/l10n/manifest-4.5.2.nix222
-rw-r--r--pkgs/desktops/kde-4.5/l10n/manifest-4.5.3.nix222
-rw-r--r--pkgs/desktops/kde-4.5/l10n/manifest-4.5.4.nix222
-rw-r--r--pkgs/desktops/kde-4.5/l10n/manifest-4.5.5.nix277
-rw-r--r--pkgs/desktops/kde-4.5/libs/default.nix9
-rw-r--r--pkgs/desktops/kde-4.5/multimedia/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/network/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/pim-runtime/default.nix4
-rw-r--r--pkgs/desktops/kde-4.5/pim/default.nix4
-rw-r--r--pkgs/desktops/kde-4.5/pimlibs/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/plasma-addons/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/sdk/cervisia.nix1
-rw-r--r--pkgs/desktops/kde-4.5/sdk/dolphin-plugins.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kapptemplate.nix1
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kate.nix1
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kbugbuster.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kcachegrind.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kdeaccounts-plugin.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kioslave-perldoc.nix1
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kioslave-svn.nix1
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kmtrace.nix1
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kompare.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kpartloader.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kprofilemethod.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kstartperf.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/kuiviewer.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/lokalize.nix5
-rw-r--r--pkgs/desktops/kde-4.5/sdk/poxml.nix1
-rw-r--r--pkgs/desktops/kde-4.5/sdk/scripts.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/strigi-analyzer.nix2
-rw-r--r--pkgs/desktops/kde-4.5/sdk/umbrello.nix2
-rw-r--r--pkgs/desktops/kde-4.5/support/akonadi/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch2
-rw-r--r--pkgs/desktops/kde-4.5/support/attica/default.nix4
-rw-r--r--pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix7
-rw-r--r--pkgs/desktops/kde-4.5/support/qca2/default.nix23
-rw-r--r--pkgs/desktops/kde-4.5/support/qca2/ossl.nix32
-rw-r--r--pkgs/desktops/kde-4.5/support/qimageblitz/default.nix21
-rw-r--r--pkgs/desktops/kde-4.5/support/shared-desktop-ontologies/default.nix22
-rw-r--r--pkgs/desktops/kde-4.5/support/soprano/default.nix8
-rw-r--r--pkgs/desktops/kde-4.5/support/strigi/default.nix29
-rw-r--r--pkgs/desktops/kde-4.5/toys/amor.nix1
-rw-r--r--pkgs/desktops/kde-4.5/toys/kteatime.nix2
-rw-r--r--pkgs/desktops/kde-4.5/toys/ktux.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/ark.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/kcalc.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/kcharselect.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/kdf.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/kfloppy.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/kgpg.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/kremotecontrol.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/ktimer.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/kwallet.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/okteta.nix3
-rw-r--r--pkgs/desktops/kde-4.5/utils/printer-applet.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/superkaramba.nix1
-rw-r--r--pkgs/desktops/kde-4.5/utils/sweeper.nix1
-rw-r--r--pkgs/desktops/kde-4.5/webdev/kfilereplace.nix1
-rw-r--r--pkgs/desktops/kde-4.5/webdev/kimagemapeditor.nix1
-rw-r--r--pkgs/desktops/kde-4.5/webdev/klinkstatus.nix1
-rw-r--r--pkgs/desktops/kde-4.5/webdev/kommander.nix2
-rw-r--r--pkgs/desktops/kde-4.6/accessibility/color-schemes.nix14
-rw-r--r--pkgs/desktops/kde-4.6/accessibility/icon-themes.nix15
-rw-r--r--pkgs/desktops/kde-4.6/accessibility/jovie.nix18
-rw-r--r--pkgs/desktops/kde-4.6/accessibility/kmag.nix17
-rw-r--r--pkgs/desktops/kde-4.6/accessibility/kmousetool.nix17
-rw-r--r--pkgs/desktops/kde-4.6/accessibility/kmouth.nix17
-rw-r--r--pkgs/desktops/kde-4.6/admin/builder.sh13
-rw-r--r--pkgs/desktops/kde-4.6/admin/default.nix26
-rw-r--r--pkgs/desktops/kde-4.6/artwork/aurorae.nix14
-rw-r--r--pkgs/desktops/kde-4.6/artwork/color-schemes.nix15
-rw-r--r--pkgs/desktops/kde-4.6/artwork/desktop-themes.nix15
-rw-r--r--pkgs/desktops/kde-4.6/artwork/emoticons.nix15
-rw-r--r--pkgs/desktops/kde-4.6/artwork/high-resolution-wallpapers.nix15
-rw-r--r--pkgs/desktops/kde-4.6/artwork/kscreensaver.nix16
-rw-r--r--pkgs/desktops/kde-4.6/artwork/nuvola-icon-theme.nix16
-rw-r--r--pkgs/desktops/kde-4.6/artwork/phase-style.nix15
-rw-r--r--pkgs/desktops/kde-4.6/artwork/sounds.nix15
-rw-r--r--pkgs/desktops/kde-4.6/artwork/wallpapers.nix15
-rw-r--r--pkgs/desktops/kde-4.6/artwork/weather-wallpapers.nix15
-rw-r--r--pkgs/desktops/kde-4.6/base-runtime/default.nix27
-rw-r--r--pkgs/desktops/kde-4.6/base-workspace/default.nix27
-rw-r--r--pkgs/desktops/kde-4.6/base/default.nix19
-rw-r--r--pkgs/desktops/kde-4.6/bindings/default.nix37
-rw-r--r--pkgs/desktops/kde-4.6/bindings/python-site-packages-install-dir.diff54
-rw-r--r--pkgs/desktops/kde-4.6/bindings/sip-4.11.patch67
-rw-r--r--pkgs/desktops/kde-4.6/default.nix163
-rw-r--r--pkgs/desktops/kde-4.6/edu/default.nix29
-rw-r--r--pkgs/desktops/kde-4.6/games/default.nix22
-rw-r--r--pkgs/desktops/kde-4.6/graphics/default.nix23
-rw-r--r--pkgs/desktops/kde-4.6/kde-package/default.nix64
-rwxr-xr-xpkgs/desktops/kde-4.6/kde-package/kde-manifest.sh39
-rw-r--r--pkgs/desktops/kde-4.6/kde-package/manifest-4.5.90.nix85
-rw-r--r--pkgs/desktops/kde-4.6/l10n/default.nix58
-rw-r--r--pkgs/desktops/kde-4.6/l10n/manifest-4.5.90.nix222
-rw-r--r--pkgs/desktops/kde-4.6/libs/default.nix42
-rw-r--r--pkgs/desktops/kde-4.6/multimedia/default.nix20
-rw-r--r--pkgs/desktops/kde-4.6/network/default.nix36
-rw-r--r--pkgs/desktops/kde-4.6/pim-runtime/default.nix27
-rw-r--r--pkgs/desktops/kde-4.6/pim/default.nix34
-rw-r--r--pkgs/desktops/kde-4.6/pimlibs/default.nix18
-rw-r--r--pkgs/desktops/kde-4.6/plasma-addons/default.nix23
-rw-r--r--pkgs/desktops/kde-4.6/sdk/cervisia.nix16
-rw-r--r--pkgs/desktops/kde-4.6/sdk/dolphin-plugins.nix16
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kapptemplate.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kate.nix16
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kbugbuster.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kcachegrind.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kdeaccounts-plugin.nix15
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kioslave-perldoc.nix18
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kioslave-svn.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kmtrace.nix16
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kompare.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kpartloader.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kprofilemethod.nix16
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kstartperf.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/kuiviewer.nix17
-rw-r--r--pkgs/desktops/kde-4.6/sdk/lokalize.nix20
-rw-r--r--pkgs/desktops/kde-4.6/sdk/poxml.nix15
-rw-r--r--pkgs/desktops/kde-4.6/sdk/scripts.nix15
-rw-r--r--pkgs/desktops/kde-4.6/sdk/umbrello.nix16
-rw-r--r--pkgs/desktops/kde-4.6/support/akonadi/default.nix17
-rw-r--r--pkgs/desktops/kde-4.6/support/automoc4/default.nix15
-rw-r--r--pkgs/desktops/kde-4.6/support/eigen/default.nix20
-rw-r--r--pkgs/desktops/kde-4.6/support/oxygen-icons/default.nix18
-rw-r--r--pkgs/desktops/kde-4.6/support/polkit-qt-1/default.nix19
-rw-r--r--pkgs/desktops/kde-4.6/support/polkit-qt-1/policy-files.patch25
-rw-r--r--pkgs/desktops/kde-4.6/support/qca2/default.nix23
-rw-r--r--pkgs/desktops/kde-4.6/toys/amor.nix16
-rw-r--r--pkgs/desktops/kde-4.6/toys/kteatime.nix16
-rw-r--r--pkgs/desktops/kde-4.6/toys/ktux.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/ark.nix21
-rw-r--r--pkgs/desktops/kde-4.6/utils/kcalc.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/kcharselect.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/kdf.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/kfloppy.nix14
-rw-r--r--pkgs/desktops/kde-4.6/utils/kgpg.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/kremotecontrol.nix14
-rw-r--r--pkgs/desktops/kde-4.6/utils/ktimer.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/kwallet.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/okteta.nix16
-rw-r--r--pkgs/desktops/kde-4.6/utils/printer-applet.nix22
-rw-r--r--pkgs/desktops/kde-4.6/utils/superkaramba.nix18
-rw-r--r--pkgs/desktops/kde-4.6/utils/sweeper.nix16
-rw-r--r--pkgs/desktops/kde-4.6/webdev/kfilereplace.nix17
-rw-r--r--pkgs/desktops/kde-4.6/webdev/kimagemapeditor.nix17
-rw-r--r--pkgs/desktops/kde-4.6/webdev/klinkstatus.nix19
-rw-r--r--pkgs/desktops/kde-4.6/webdev/kommander.nix16
-rw-r--r--pkgs/desktops/kde-4.7/default.nix58
-rw-r--r--pkgs/desktops/kde-4.7/files/polkit-install.patch12
-rw-r--r--pkgs/desktops/kde-4.7/kde-package/4.7.0.nix1
-rw-r--r--pkgs/desktops/kde-4.7/kde-package/default.nix120
-rwxr-xr-xpkgs/desktops/kde-4.7/kde-package/kde-manifest.sh141
-rw-r--r--pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt22
-rw-r--r--pkgs/desktops/kde-4.7/kde-wallpapers.nix14
-rw-r--r--pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeadmin/kcron.nix5
-rw-r--r--pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix5
-rw-r--r--pkgs/desktops/kde-4.7/kdeadmin/kuser.nix5
-rw-r--r--pkgs/desktops/kde-4.7/kdeadmin/system-config-printer-kde.nix33
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/FindXscreensaver.cmake (renamed from pkgs/desktops/kde-4.6/artwork/FindXscreensaver.cmake)0
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix13
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix7
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix13
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/sounds.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/styles.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdebase/kate.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix22
-rw-r--r--pkgs/desktops/kde-4.7/kdebase/kde-workspace.nix32
-rw-r--r--pkgs/desktops/kde-4.7/kdebase/konsole.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/perlqt.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch49
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/pykde4.nix30
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokegen.nix13
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokekde.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake32
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/blinken.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/cantor.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch15
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kalzium.nix15
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kanagram.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kbruch.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kgeography.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/khangman.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kig.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kiten.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/klettres.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kmplot.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kstars.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/ktouch.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kturtle.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix8
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/marble.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/parley.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/rocs.nix14
-rw-r--r--pkgs/desktops/kde-4.7/kdeedu/step.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdegames.nix18
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/kamera.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/kruler.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/libksane.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/okular.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdelibs.nix39
-rw-r--r--pkgs/desktops/kde-4.7/kdemultimedia.nix16
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake19
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix7
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch24
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix7
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kget.nix13
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kopete.nix21
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/kppp.nix7
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/krdc.nix7
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/krfb.nix7
-rw-r--r--pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff (renamed from pkgs/desktops/kde-4.6/network/log-feature.diff)0
-rw-r--r--pkgs/desktops/kde-4.7/kdepim-runtime.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdepim.nix19
-rw-r--r--pkgs/desktops/kde-4.7/kdepimlibs.nix14
-rw-r--r--pkgs/desktops/kde-4.7/kdeplasma-addons.nix18
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/cervisia.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/find-svn.patch (renamed from pkgs/desktops/kde-4.6/sdk/find-svn.patch)0
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kompare.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/lokalize.nix13
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/okteta.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff (renamed from pkgs/desktops/kde-4.6/sdk/optional-docs.diff)0
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/poxml.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/scripts.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/strigi-analyzer.nix (renamed from pkgs/desktops/kde-4.6/sdk/strigi-analyzer.nix)8
-rw-r--r--pkgs/desktops/kde-4.7/kdesdk/umbrello.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdetoys/amor.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdetoys/kteatime.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdetoys/ktux.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/ark.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/filelight.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/kcalc.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/kdf.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/kgpg.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/ktimer.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/kwallet.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix28
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix11
-rw-r--r--pkgs/desktops/kde-4.7/kdeutils/sweeper.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix10
-rw-r--r--pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kdewebdev/kommander.nix9
-rw-r--r--pkgs/desktops/kde-4.7/kipi-plugins.nix29
-rw-r--r--pkgs/desktops/kde-4.7/l10n/default.nix44
-rwxr-xr-xpkgs/desktops/kde-4.7/l10n/l10n-manifest.sh (renamed from pkgs/desktops/kde-4.6/l10n/l10n-manifest.sh)1
-rw-r--r--pkgs/desktops/kde-4.7/l10n/manifest-4.7.0.nix262
-rw-r--r--pkgs/desktops/kde-4.7/oxygen-icons.nix15
-rw-r--r--pkgs/desktops/kde-4.7/support/akonadi/default.nix22
-rw-r--r--pkgs/desktops/kde-4.7/support/soprano/default.nix (renamed from pkgs/desktops/kde-4.6/support/soprano/default.nix)8
-rw-r--r--pkgs/desktops/xfce-4.6/applications/mousepad.nix (renamed from pkgs/desktops/xfce-4/applications/mousepad.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/applications/ristretto.nix (renamed from pkgs/desktops/xfce-4/applications/ristretto.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/applications/terminal.nix (renamed from pkgs/desktops/xfce-4/applications/terminal.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix (renamed from pkgs/desktops/xfce-4/applications/xfce4-mixer.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix (renamed from pkgs/desktops/xfce-4/applications/xfce4-power-manager.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix (renamed from pkgs/desktops/xfce-4/art/xfce4-icon-theme.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/exo.nix (renamed from pkgs/desktops/xfce-4/core/exo.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix (renamed from pkgs/desktops/xfce-4/core/gtk-xfce-engine.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfce4menu.nix (renamed from pkgs/desktops/xfce-4/core/libxfce4menu.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfce4util.nix (renamed from pkgs/desktops/xfce-4/core/libxfce4util.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfcegui4.nix (renamed from pkgs/desktops/xfce-4/core/libxfcegui4.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/thunar.nix (renamed from pkgs/desktops/xfce-4/core/thunar.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce-utils.nix (renamed from pkgs/desktops/xfce-4/core/xfce-utils.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-panel.nix (renamed from pkgs/desktops/xfce-4/core/xfce4-panel.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-session.nix (renamed from pkgs/desktops/xfce-4/core/xfce4-session.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-settings.nix (renamed from pkgs/desktops/xfce-4/core/xfce4-settings.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfconf.nix (renamed from pkgs/desktops/xfce-4/core/xfconf.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfdesktop.nix (renamed from pkgs/desktops/xfce-4/core/xfdesktop.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfwm4.nix (renamed from pkgs/desktops/xfce-4/core/xfwm4.nix)0
-rw-r--r--pkgs/desktops/xfce-4.6/default.nix (renamed from pkgs/desktops/xfce-4/default.nix)0
-rw-r--r--pkgs/desktops/xfce-4.8/applications/mousepad.nix18
-rw-r--r--pkgs/desktops/xfce-4.8/applications/ristretto.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/applications/terminal.nix23
-rw-r--r--pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix38
-rw-r--r--pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix22
-rw-r--r--pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix17
-rw-r--r--pkgs/desktops/xfce-4.8/core/exo.nix19
-rw-r--r--pkgs/desktops/xfce-4.8/core/garcon.nix18
-rw-r--r--pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix19
-rw-r--r--pkgs/desktops/xfce-4.8/core/libxfce4ui.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/libxfce4util.nix18
-rw-r--r--pkgs/desktops/xfce-4.8/core/libxfcegui4.nix31
-rw-r--r--pkgs/desktops/xfce-4.8/core/thunar.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce-utils.nix20
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce4-panel.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce4-session.nix22
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfce4-settings.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfconf.nix20
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfdesktop.nix24
-rw-r--r--pkgs/desktops/xfce-4.8/core/xfwm4.nix25
-rw-r--r--pkgs/desktops/xfce-4.8/default.nix68
-rw-r--r--pkgs/development/compilers/Agda-executable/default.nix20
-rw-r--r--pkgs/development/compilers/ecl/default.nix10
-rw-r--r--pkgs/development/compilers/ecl/src-for-default.nix10
-rw-r--r--pkgs/development/compilers/epic/default.nix27
-rw-r--r--pkgs/development/compilers/flapjax/default.nix35
-rw-r--r--pkgs/development/compilers/fpc/default.nix6
-rw-r--r--pkgs/development/compilers/fpc/lazarus.nix10
-rw-r--r--pkgs/development/compilers/gambit/src-for-default.nix8
-rw-r--r--pkgs/development/compilers/gcc-4.1/default.nix2
-rwxr-xr-xpkgs/development/compilers/gcc-4.4/update-gcc.sh8
-rw-r--r--pkgs/development/compilers/gcc-4.6/builder.sh251
-rw-r--r--pkgs/development/compilers/gcc-4.6/default.nix448
-rw-r--r--pkgs/development/compilers/gcc-4.6/ghdl-ortho-cflags.patch111
-rw-r--r--pkgs/development/compilers/gcc-4.6/gnat-cflags.patch33
-rw-r--r--pkgs/development/compilers/gcc-4.6/java-jvgenmain-link.patch17
-rw-r--r--pkgs/development/compilers/gcc-4.6/libstdc++-target.patch32
-rw-r--r--pkgs/development/compilers/gcc-4.6/no-sys-dirs.patch54
-rw-r--r--pkgs/development/compilers/gcc-4.6/sources.nix31
l---------pkgs/development/compilers/gcc-4.6/update-gcc.sh1
-rw-r--r--pkgs/development/compilers/ghc/6.10.1-binary.nix8
-rw-r--r--pkgs/development/compilers/ghc/6.10.1.nix7
-rw-r--r--pkgs/development/compilers/ghc/6.10.2-binary.nix9
-rw-r--r--pkgs/development/compilers/ghc/6.10.2.nix5
-rw-r--r--pkgs/development/compilers/ghc/6.10.3.nix5
-rw-r--r--pkgs/development/compilers/ghc/6.10.4.nix5
-rw-r--r--pkgs/development/compilers/ghc/6.11.nix5
-rw-r--r--pkgs/development/compilers/ghc/6.12.1-binary.nix109
-rw-r--r--pkgs/development/compilers/ghc/6.12.1.nix9
-rw-r--r--pkgs/development/compilers/ghc/6.12.2.nix9
-rw-r--r--pkgs/development/compilers/ghc/6.12.3.nix9
-rw-r--r--pkgs/development/compilers/ghc/6.4.2-binary.nix9
-rw-r--r--pkgs/development/compilers/ghc/6.4.2.nix7
-rw-r--r--pkgs/development/compilers/ghc/6.6.1.nix1
-rw-r--r--pkgs/development/compilers/ghc/6.8.2.nix1
-rw-r--r--pkgs/development/compilers/ghc/6.8.3.nix1
-rw-r--r--pkgs/development/compilers/ghc/7.0.1.nix9
-rw-r--r--pkgs/development/compilers/ghc/7.0.2.nix43
-rw-r--r--pkgs/development/compilers/ghc/7.0.3.nix43
-rw-r--r--pkgs/development/compilers/ghc/7.0.4.nix43
-rw-r--r--pkgs/development/compilers/ghc/7.2.1.nix44
-rw-r--r--pkgs/development/compilers/ghc/head.nix49
-rw-r--r--pkgs/development/compilers/ghc/wrapper.nix4
-rw-r--r--pkgs/development/compilers/gprolog/default.nix7
-rw-r--r--pkgs/development/compilers/idris/default.nix27
-rw-r--r--pkgs/development/compilers/jdk/jdk6-linux.nix10
-rw-r--r--pkgs/development/compilers/llvm/clang-include-paths-svn.patch40
-rw-r--r--pkgs/development/compilers/llvm/clang-include-paths.patch216
-rw-r--r--pkgs/development/compilers/llvm/default.nix33
-rw-r--r--pkgs/development/compilers/llvm/dragonegg.nix2
-rw-r--r--pkgs/development/compilers/llvm/svn-head.nix66
-rw-r--r--pkgs/development/compilers/ocaml/3.11.1.nix2
-rw-r--r--pkgs/development/compilers/ocaml/3.12.0.nix2
-rw-r--r--pkgs/development/compilers/ocaml/gnused-on-osx-fix.patch9
-rw-r--r--pkgs/development/compilers/openjdk/cppflags-include-fix.patch16
-rw-r--r--pkgs/development/compilers/openjdk/default.nix140
-rw-r--r--pkgs/development/compilers/openjdk/linux-version-check-fix.patch12
-rw-r--r--pkgs/development/compilers/openjdk/printf-fix.patch12
-rw-r--r--pkgs/development/compilers/pakcs/default.nix81
-rw-r--r--pkgs/development/compilers/polyml/default.nix8
-rw-r--r--pkgs/development/compilers/sbcl/src-for-default.nix10
-rw-r--r--pkgs/development/compilers/scala/default.nix4
-rw-r--r--pkgs/development/compilers/strategoxt/0.18.nix6
-rw-r--r--pkgs/development/compilers/swi-prolog/default.nix11
-rw-r--r--pkgs/development/compilers/urweb/default.nix21
-rw-r--r--pkgs/development/compilers/urweb/remove-header-include-directory-prefix.patch24
-rw-r--r--pkgs/development/compilers/webdsl/default.nix4
-rw-r--r--pkgs/development/compilers/yasm/default.nix6
-rw-r--r--pkgs/development/guile-modules/guile-cairo/default.nix10
-rw-r--r--pkgs/development/guile-modules/guile-lib/default.nix19
-rw-r--r--pkgs/development/guile-modules/guile-ncurses/default.nix33
-rw-r--r--pkgs/development/interpreters/angelscript/default.nix65
-rw-r--r--pkgs/development/interpreters/clisp/default.nix4
-rw-r--r--pkgs/development/interpreters/erlang/default.nix4
-rw-r--r--pkgs/development/interpreters/guile/1.8.nix55
-rw-r--r--pkgs/development/interpreters/guile/1.9.nix68
-rw-r--r--pkgs/development/interpreters/guile/default.nix76
-rw-r--r--pkgs/development/interpreters/j/default.nix81
-rw-r--r--pkgs/development/interpreters/kona/default.nix51
-rw-r--r--pkgs/development/interpreters/lua-4/builder.sh6
-rw-r--r--pkgs/development/interpreters/lua-4/default.nix24
-rw-r--r--pkgs/development/interpreters/lua-5/5.0.3.nix31
-rw-r--r--pkgs/development/interpreters/maude/default.nix16
-rw-r--r--pkgs/development/interpreters/php/5.2.nix12
-rw-r--r--pkgs/development/interpreters/php/5.3.nix12
-rw-r--r--pkgs/development/interpreters/picolisp/default.nix66
-rw-r--r--pkgs/development/interpreters/pure/default.nix50
-rw-r--r--pkgs/development/interpreters/python/2.4/default.nix54
-rw-r--r--pkgs/development/interpreters/python/2.4/search-path.patch27
-rw-r--r--pkgs/development/interpreters/python/2.6/default.nix238
-rw-r--r--pkgs/development/interpreters/python/2.6/nix-store-mtime.patch12
-rw-r--r--pkgs/development/interpreters/python/2.7/default.nix259
-rw-r--r--pkgs/development/interpreters/python/2.7/nix-store-mtime.patch12
-rw-r--r--pkgs/development/interpreters/python/3.1/default.nix94
-rw-r--r--pkgs/development/interpreters/python/3.1/setup-hook.sh4
-rw-r--r--pkgs/development/interpreters/python/3.2/default.nix86
-rw-r--r--pkgs/development/interpreters/python/3.2/setup-hook.sh (renamed from pkgs/development/interpreters/python/2.4/setup-hook.sh)4
-rw-r--r--pkgs/development/interpreters/racket/default.nix47
-rw-r--r--pkgs/development/interpreters/ruby/default.nix18
-rw-r--r--pkgs/development/interpreters/ruby/gem.nix52
-rw-r--r--pkgs/development/interpreters/ruby/gem_hook.patch18
-rw-r--r--pkgs/development/interpreters/ruby/gem_nix_command.patch266
-rw-r--r--pkgs/development/interpreters/ruby/gems.nix37
-rw-r--r--pkgs/development/interpreters/ruby/generated.nix34
-rw-r--r--pkgs/development/interpreters/ruby/libs.nix1199
-rw-r--r--pkgs/development/interpreters/ruby/overrides.nix5
-rw-r--r--pkgs/development/interpreters/ruby/patches.nix49
-rw-r--r--pkgs/development/interpreters/ruby/rubygems.nix53
-rw-r--r--pkgs/development/libraries/SDL_gfx/default.nix13
-rw-r--r--pkgs/development/libraries/SDL_image/default.nix14
-rw-r--r--pkgs/development/libraries/SDL_mixer/default.nix4
-rw-r--r--pkgs/development/libraries/adns/1.1.nix9
-rw-r--r--pkgs/development/libraries/adns/1.2.nix9
-rw-r--r--pkgs/development/libraries/adns/1.3.nix9
-rw-r--r--pkgs/development/libraries/adns/1.4.nix9
-rw-r--r--pkgs/development/libraries/adns/default.nix47
-rw-r--r--pkgs/development/libraries/afflib/default.nix48
-rw-r--r--pkgs/development/libraries/allegro/default.nix2
-rw-r--r--pkgs/development/libraries/apr-util/default.nix9
-rw-r--r--pkgs/development/libraries/apr/default.nix4
-rw-r--r--pkgs/development/libraries/asio/default.nix20
-rw-r--r--pkgs/development/libraries/aspell/default.nix15
-rw-r--r--pkgs/development/libraries/aterm/2.4.2-fixes.nix29
-rw-r--r--pkgs/development/libraries/atk/1.32.x.nix (renamed from pkgs/development/libraries/atk/1.28.x.nix)12
-rw-r--r--pkgs/development/libraries/attica/default.nix (renamed from pkgs/desktops/kde-4.6/support/attica/default.nix)5
-rw-r--r--pkgs/development/libraries/audio/vamp/default.nix6
-rw-r--r--pkgs/development/libraries/avahi/default.nix7
-rw-r--r--pkgs/development/libraries/boehm-gc/cygwin-pthread-dl.patch24
-rw-r--r--pkgs/development/libraries/boehm-gc/default.nix28
-rw-r--r--pkgs/development/libraries/boost/1.42.nix (renamed from pkgs/development/libraries/boost/default.nix)6
-rw-r--r--pkgs/development/libraries/boost/1.44.nix90
-rw-r--r--pkgs/development/libraries/boost/1.46.nix80
-rw-r--r--pkgs/development/libraries/boost/1.47.nix90
-rw-r--r--pkgs/development/libraries/boost/boost_filesystem.patch24
-rw-r--r--pkgs/development/libraries/buddy/default.nix2
-rw-r--r--pkgs/development/libraries/cairo/1.10.nix60
-rw-r--r--pkgs/development/libraries/cairo/default.nix16
-rw-r--r--pkgs/development/libraries/ccrtp/1.8.nix20
-rw-r--r--pkgs/development/libraries/ccrtp/default.nix20
-rw-r--r--pkgs/development/libraries/celt/0.7.nix47
-rw-r--r--pkgs/development/libraries/celt/default.nix47
-rw-r--r--pkgs/development/libraries/cln/default.nix2
-rw-r--r--pkgs/development/libraries/cloog/default.nix76
-rw-r--r--pkgs/development/libraries/clutter-gtk/default.nix6
-rw-r--r--pkgs/development/libraries/clutter/default.nix5
-rw-r--r--pkgs/development/libraries/cminpack/default.nix25
-rw-r--r--pkgs/development/libraries/coin3d/default.nix22
-rw-r--r--pkgs/development/libraries/commoncpp2/default.nix2
-rw-r--r--pkgs/development/libraries/cppunit/1.10.nix12
-rw-r--r--pkgs/development/libraries/cppunit/include-cstdlib.patch12
-rw-r--r--pkgs/development/libraries/db4/db4-4.7.nix18
-rw-r--r--pkgs/development/libraries/db4/db4-4.8.nix18
-rw-r--r--pkgs/development/libraries/dbus/default.nix9
-rw-r--r--pkgs/development/libraries/dotconf/default.nix18
-rw-r--r--pkgs/development/libraries/dssi/default.nix50
-rw-r--r--pkgs/development/libraries/eigen/default.nix (renamed from pkgs/desktops/kde-4.5/support/eigen/default.nix)15
-rw-r--r--pkgs/development/libraries/enet/default.nix4
-rw-r--r--pkgs/development/libraries/exosip/default.nix17
-rw-r--r--pkgs/development/libraries/expat/cve-2009-3560.patch18
-rw-r--r--pkgs/development/libraries/expat/default.nix12
-rw-r--r--pkgs/development/libraries/faac/default.nix14
-rw-r--r--pkgs/development/libraries/fcgi/default.nix4
-rw-r--r--pkgs/development/libraries/fcgi/gcc-4.4.diff12
-rw-r--r--pkgs/development/libraries/ffmpeg/0.6.90.nix73
-rw-r--r--pkgs/development/libraries/ffmpeg/default.nix69
-rw-r--r--pkgs/development/libraries/flann/default.nix18
-rw-r--r--pkgs/development/libraries/flite/default.nix24
-rw-r--r--pkgs/development/libraries/fltk/default.nix4
-rw-r--r--pkgs/development/libraries/freeimage/default.nix7
-rw-r--r--pkgs/development/libraries/freeimage/memset.patch11
-rw-r--r--pkgs/development/libraries/freetype/default.nix17
-rw-r--r--pkgs/development/libraries/fribidi/default.nix9
-rw-r--r--pkgs/development/libraries/funambol/default.nix30
-rw-r--r--pkgs/development/libraries/gamin/default.nix4
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/2.22.x.nix24
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix13
-rw-r--r--pkgs/development/libraries/gdome2/default.nix25
-rw-r--r--pkgs/development/libraries/geoclue/default.nix51
-rw-r--r--pkgs/development/libraries/ggz_base_libs/default.nix53
-rw-r--r--pkgs/development/libraries/glib/2.24.x.nix4
-rw-r--r--pkgs/development/libraries/glib/2.28.x.nix (renamed from pkgs/development/libraries/glib/2.22.x.nix)22
-rw-r--r--pkgs/development/libraries/glibc-2.5/binutils-ld.patch27
-rw-r--r--pkgs/development/libraries/glibc-2.5/builder.sh3
-rw-r--r--pkgs/development/libraries/glibc-2.5/default.nix3
-rw-r--r--pkgs/development/libraries/glibc-2.5/make-3-82-fix.patch14
-rw-r--r--pkgs/development/libraries/glpk/default.nix4
-rw-r--r--pkgs/development/libraries/gmime/2.2.x.nix17
-rw-r--r--pkgs/development/libraries/gmime/default.nix5
-rw-r--r--pkgs/development/libraries/gmp/4.nix18
-rw-r--r--pkgs/development/libraries/gnutls/default.nix15
-rw-r--r--pkgs/development/libraries/gnutls/fix-guile-priorities-test.patch80
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix17
-rw-r--r--pkgs/development/libraries/gpgme/default.nix9
-rw-r--r--pkgs/development/libraries/grantlee/default.nix4
-rw-r--r--pkgs/development/libraries/gsasl/default.nix10
-rw-r--r--pkgs/development/libraries/gsl/default.nix4
-rw-r--r--pkgs/development/libraries/gsm/default.nix60
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix10
-rw-r--r--pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix20
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-bad/default.nix30
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix23
-rw-r--r--pkgs/development/libraries/gstreamer/gst-plugins-ugly/default.nix30
-rw-r--r--pkgs/development/libraries/gstreamer/gstreamer/default.nix12
-rw-r--r--pkgs/development/libraries/gtk+/2.20.x.nix2
-rw-r--r--pkgs/development/libraries/gtk+/2.24.x.nix (renamed from pkgs/development/libraries/gtk+/2.18.x.nix)24
-rw-r--r--pkgs/development/libraries/gtk+/old-icons.patch270
-rw-r--r--pkgs/development/libraries/gtkmathview/default.nix27
-rw-r--r--pkgs/development/libraries/gtkmathview/gcc-4.3-build-fixes.patch74
-rw-r--r--pkgs/development/libraries/gtkmathview/gcc-4.4-build-fixes.patch21
-rw-r--r--pkgs/development/libraries/gts/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/AC-Vector/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/Agda/default.nix33
-rw-r--r--pkgs/development/libraries/haskell/AspectAG/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/Boolean/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/CS173Tourney/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch20
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/ConfigFile/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/CouchDB/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/Crypto/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/Diff/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/GLURaw/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix19
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix21
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix21
-rw-r--r--pkgs/development/libraries/haskell/GLUT/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/GlomeVec/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/Graphalyze/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/HAppS/HAppS-Data.nix25
-rw-r--r--pkgs/development/libraries/haskell/HAppS/HAppS-IxSet.nix12
-rw-r--r--pkgs/development/libraries/haskell/HAppS/HAppS-Server.nix13
-rw-r--r--pkgs/development/libraries/haskell/HAppS/HAppS-State.nix13
-rw-r--r--pkgs/development/libraries/haskell/HAppS/HAppS-Util.nix12
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix23
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix23
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC.nix22
-rw-r--r--pkgs/development/libraries/haskell/HGL/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/HList/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/HStringTemplate/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/HTTP/3001.1.5.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/3001.nix12
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.0.6.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.0.9.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.1.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix19
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix19
-rw-r--r--pkgs/development/libraries/haskell/HUnit/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.13.3.nix19
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.20.2.nix20
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.22.3.nix20
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.22.5.nix20
-rw-r--r--pkgs/development/libraries/haskell/HaXml/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/Hipmunk/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/HsSyck/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/JsContracts/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/ListLike/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/MaybeT-transformers/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/MaybeT/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/MemoTrie/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/MissingH/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/MonadPrompt/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/MonadRandom/default.nix19
-rwxr-xr-xpkgs/development/libraries/haskell/ObjectName/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/OneTuple/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/OpenAL/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix20
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix21
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/OpenGLRaw/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/PSQueue/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix20
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/QuickCheck-2.nix14
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/RSA/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/Ranged-sets/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/SDL-image/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/SDL-mixer/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/SDL-ttf/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/SDL/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/SHA/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/SMTPClient/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix19
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix15
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac.nix22
-rwxr-xr-xpkgs/development/libraries/haskell/StateVar/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/Tensor/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/Vec/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/WebBits-Html/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/WebBits/1.0.nix18
-rw-r--r--pkgs/development/libraries/haskell/WebBits/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/WebServer-Extras/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/WebServer/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/X11-xft/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/X11/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/aeson/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/ansi-terminal/default.nix20
-rwxr-xr-x[-rw-r--r--]pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/asn1-data/default.nix22
-rwxr-xr-xpkgs/development/libraries/haskell/async/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/attempt/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-text/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/enumerator.nix18
-rw-r--r--pkgs/development/libraries/haskell/authenticate/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/base-unicode-symbols/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/base64-bytestring/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/base64-string/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/benchpress/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/bimap/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/binary-shared/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/binary/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/bitmap/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/bktrees/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/blaze-html/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/bmp/default.nix18
-rwxr-xr-xpkgs/development/libraries/haskell/bytestring-mmap/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/bytestring-nums/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/bytestring-trie/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/bytestring/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/cabal/cabal.nix58
-rw-r--r--pkgs/development/libraries/haskell/cairo/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/0.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/cautious-file/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/cereal/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/certificate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix18
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix22
-rw-r--r--pkgs/development/libraries/haskell/cgi/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/citeproc-hs/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/clientsession/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cmdargs/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/cmdlib/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/colorize-haskell/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/colour/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/continued-fractions/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/control-monad-attempt/default.nix18
-rwxr-xr-xpkgs/development/libraries/haskell/converge/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/convertible/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/cookie/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/cprng-aes/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/criterion/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/crypto-api/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/cryptocipher/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cryptohash/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/css-text/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/csv/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix24
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor.nix24
-rw-r--r--pkgs/development/libraries/haskell/data-default/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/data-reify/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/dataenc/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/datetime/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/deepseq/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/derive/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/digest/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/dimensional/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/directory-tree/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/dlist/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/dotgen/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/double-conversion/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/editline/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/email-validate/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/emgm/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/entropy/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/enumerator/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/erf/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/failure/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/fclabels/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/feed/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.3.nix20
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/fgl/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/file-embed/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/filepath/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/filestore/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/fingertree/default.nix13
-rwxr-xr-xpkgs/development/libraries/haskell/flexible-defaults/default.nix18
-rwxr-xr-xpkgs/development/libraries/haskell/funcmp/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/gamma/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/gdiff/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/get-options/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/ghc-core/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/ghc-events/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/ghc-mtl/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix16
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix15
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix16
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/ghc-syb-utils/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/ghc-syb/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/gitit/default.nix41
-rw-r--r--pkgs/development/libraries/haskell/glade/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/glib/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/graphviz/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/gtk/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/gtk2hs/default.nix44
-rw-r--r--pkgs/development/libraries/haskell/gtksourceview2/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-data.nix35
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-server.nix37
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-util.nix36
-rw-r--r--pkgs/development/libraries/haskell/hashable/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hashed-storage/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/haskeline-class/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/haskeline/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/haskell-lexer/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2009.2.0.2.nix8
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix8
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2010.2.0.0.nix8
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2011.2.0.0.nix26
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix36
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/Setup.hs10
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal90
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix19
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix19
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-meta/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/haxr-th/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/haxr/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/hfuse/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/hint/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/hjsmin/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hledger-chart/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hledger-lib/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/hledger-vty/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hledger/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/hmatrix/default.nix31
-rw-r--r--pkgs/development/libraries/haskell/hopenssl/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/hostname/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/hp2any-core/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hp2any-graph/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/hs-bibutils/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hscolour/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hsdns/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hsemail/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/hslogger-template/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/hspread/default.nix12
-rwxr-xr-xpkgs/development/libraries/haskell/hsyslog/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/html/1.0.1.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/html/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/http-date/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/http-enumerator/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/http-types/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/httpd-shed/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/irc/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/ivor/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/jpeg/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/json/0.3.6.nix12
-rw-r--r--pkgs/development/libraries/haskell/json/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/jsonEnumerator/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/jsonTypes/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/language-haskell-extract/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/language-javascript/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/largeword/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/leksah/leksah-server.nix28
-rw-r--r--pkgs/development/libraries/haskell/leksah/process-leksah.nix18
-rw-r--r--pkgs/development/libraries/haskell/logfloat/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/ltk/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/maybench/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/mime-mail/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/mmap/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/monad-control/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/monad-loops/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/monad-par/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/monad-peel/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/monadlab/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/monads-fd/0.0.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/monads-fd/0.2.0.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/monads-fd/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/mpppc/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/mtl/1.1.0.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/mtl/1.1.1.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/mtl/2.0.1.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/mtl/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/mtlparse/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/multiplate/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/multirec/0.5.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/multirec/0.6.nix18
-rw-r--r--pkgs/development/libraries/haskell/multirec/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/multiset/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/murmur-hash/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/mwc-random/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/neither/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/network-bytestring/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/network/2.2.1.4.nix17
-rw-r--r--pkgs/development/libraries/haskell/network/2.2.1.7.nix17
-rw-r--r--pkgs/development/libraries/haskell/network/2.3.0.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/network/2.3.0.5.nix18
-rw-r--r--pkgs/development/libraries/haskell/network/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/nixos-types/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/non-negative/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/numeric-prelude/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/numtype/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/pandoc-types/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/pango/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/parallel/1.1.0.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/parallel/2.2.0.1.nix19
-rw-r--r--pkgs/development/libraries/haskell/parallel/3.1.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/parallel/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/parseargs/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/parsec/2.1.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/parsec/3.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/parsec/3.nix14
-rw-r--r--pkgs/development/libraries/haskell/parsec/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/parsimony/default.nix19
-rwxr-xr-xpkgs/development/libraries/haskell/path-pieces/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pathtype/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pcre-light/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/polyparse/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/pool/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/ppm/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/pretty-show/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/primitive/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/pureMD5/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/pwstore-fast/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/random-fu/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/random-shuffle/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/random-source/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/random/1.0.0.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/random/1.0.0.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/random/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/ranges/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/readline/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/recaptcha/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/regex-base/0.93.1.nix20
-rw-r--r--pkgs/development/libraries/haskell/regex-base/0.93.2.nix22
-rw-r--r--pkgs/development/libraries/haskell/regex-base/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.92.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.93.1.nix20
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.95.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-pcre/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.95.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/regex-tdfa/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/regexpr/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/regular/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/repa-algorithms/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/repa-bytestring/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/repa-examples/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/repa-io/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/repa/default.nix18
-rwxr-xr-xpkgs/development/libraries/haskell/rvar/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/safe/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/salvia-protocol/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/salvia/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/scion/default.nix11
-rwxr-xr-xpkgs/development/libraries/haskell/semigroups/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/sendfile/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/simple-sendfile/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/smallcheck/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/snap/core.nix27
-rw-r--r--pkgs/development/libraries/haskell/snap/server.nix28
-rw-r--r--pkgs/development/libraries/haskell/split/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/stateref/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/statistics/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/stb-image/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/stm/2.1.1.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/stm/2.1.2.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/stm/2.2.0.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/stm/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/storable-complex/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/storable-record/default.nix20
-rwxr-xr-xpkgs/development/libraries/haskell/streamproc/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/strict/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/strictConcurrency/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/svgcairo/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/syb/0.2.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/syb/0.3.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/syb/0.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/syb/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix14
-rw-r--r--pkgs/development/libraries/haskell/syb/syb-with-class.nix14
-rw-r--r--pkgs/development/libraries/haskell/tabular/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/tagged/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/tagsoup/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/terminfo/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/test-framework-hunit/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/test-framework-th/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/test-framework/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/testpack/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/texmath/0.4.nix20
-rw-r--r--pkgs/development/libraries/haskell/texmath/0.5.0.1.nix20
-rw-r--r--pkgs/development/libraries/haskell/texmath/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.0.5.nix18
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.0.6.nix18
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.1.5.nix18
-rw-r--r--pkgs/development/libraries/haskell/text/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/th-lift/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/threadmanager/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/time/1.1.2.4.nix17
-rw-r--r--pkgs/development/libraries/haskell/time/1.1.3.nix14
-rw-r--r--pkgs/development/libraries/haskell/time/1.2.0.3.nix14
-rw-r--r--pkgs/development/libraries/haskell/time/1.2.0.5.nix17
-rw-r--r--pkgs/development/libraries/haskell/time/1.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/time/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/tls-extra/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/tls/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/transformers/0.2.2.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/transformers/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/tuple/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/uniplate/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/uniqueid/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/unix-compat/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/unordered-containers/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/url/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/utf8-light/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/utf8-string/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/utility-ht/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/uu-parsinglib/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/uulib/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/vacuum-cairo/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/vacuum/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/0.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/vector-space/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/vector/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/vty/4.6.0.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/vty/4.7.0.4.nix22
-rw-r--r--pkgs/development/libraries/haskell/vty/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/wai-app-static/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/wai/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/warp/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/web-routes-quasi/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/web-routes/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/wl-pprint-text/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wx.nix20
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxcore.nix26
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix20
-rw-r--r--pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/xhtml/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/xml-enumerator/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/xml-types/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/xml/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/yap/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/yesod-json/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/yesod/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/yst/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/zip-archive/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/zipper/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/zlib-bindings/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/zlib-enum/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.0.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.2.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.3.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/zlib/default.nix13
-rw-r--r--pkgs/development/libraries/hawknl/default.nix28
-rw-r--r--pkgs/development/libraries/herqq/0.7.0.nix22
-rw-r--r--pkgs/development/libraries/herqq/default.nix (renamed from pkgs/development/libraries/herqq/0.8.0.nix)5
-rw-r--r--pkgs/development/libraries/herqq/svn.nix23
-rw-r--r--pkgs/development/libraries/hwloc/default.nix6
-rw-r--r--pkgs/development/libraries/hwloc/ncurses.patch13
-rw-r--r--pkgs/development/libraries/ilbc/CMakeLists.txt11
-rw-r--r--pkgs/development/libraries/ilbc/default.nix32
-rw-r--r--pkgs/development/libraries/imlib2/default.nix10
-rw-r--r--pkgs/development/libraries/indilib/default.nix10
-rw-r--r--pkgs/development/libraries/isl/default.nix28
-rw-r--r--pkgs/development/libraries/java/swt/builder.sh2
-rw-r--r--pkgs/development/libraries/java/swt/default.nix19
-rw-r--r--pkgs/development/libraries/javascript/jquery-ui/default.nix32
-rw-r--r--pkgs/development/libraries/kdevplatform/default.nix13
-rw-r--r--pkgs/development/libraries/lablgtk/default.nix21
-rw-r--r--pkgs/development/libraries/leptonica/default.nix19
-rw-r--r--pkgs/development/libraries/libao/default.nix6
-rw-r--r--pkgs/development/libraries/libarchive/default.nix7
-rw-r--r--pkgs/development/libraries/libass/default.nix17
-rw-r--r--pkgs/development/libraries/libav/default.nix72
-rw-r--r--pkgs/development/libraries/libavc1394/default.nix8
-rw-r--r--pkgs/development/libraries/libbluedevil/default.nix13
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix13
-rw-r--r--pkgs/development/libraries/libdbusmenu-qt/default.nix9
-rw-r--r--pkgs/development/libraries/libdmtx/default.nix21
-rw-r--r--pkgs/development/libraries/libdrm/default.nix4
-rw-r--r--pkgs/development/libraries/libebml/default.nix19
-rw-r--r--pkgs/development/libraries/libedit/default.nix5
-rw-r--r--pkgs/development/libraries/libelf/default.nix13
-rw-r--r--pkgs/development/libraries/libevent/default.nix4
-rw-r--r--pkgs/development/libraries/libewf/default.nix10
-rw-r--r--pkgs/development/libraries/libf2c/default.nix32
-rw-r--r--pkgs/development/libraries/libffi/default.nix9
-rw-r--r--pkgs/development/libraries/libgdata/0.6.nix51
-rw-r--r--pkgs/development/libraries/libgdata/default.nix51
-rw-r--r--pkgs/development/libraries/libharu/default.nix10
-rw-r--r--pkgs/development/libraries/libidn/default.nix4
-rw-r--r--pkgs/development/libraries/libjpeg/default.nix6
-rw-r--r--pkgs/development/libraries/libkate/default.nix23
-rw-r--r--pkgs/development/libraries/libktorrent/default.nix20
-rw-r--r--pkgs/development/libraries/liblikeback/default.nix20
-rw-r--r--pkgs/development/libraries/liblrdf/default.nix46
-rw-r--r--pkgs/development/libraries/libmatroska/default.nix20
-rw-r--r--pkgs/development/libraries/libmcs/default.nix12
-rw-r--r--pkgs/development/libraries/libmms/default.nix20
-rw-r--r--pkgs/development/libraries/libmng/default.nix10
-rw-r--r--pkgs/development/libraries/libmowgli/default.nix10
-rw-r--r--pkgs/development/libraries/libmpeg2/default.nix15
-rw-r--r--pkgs/development/libraries/libmrss/default.nix22
-rw-r--r--pkgs/development/libraries/libmusicbrainz/default.nix6
-rw-r--r--pkgs/development/libraries/libmusicbrainz/find-neon.patch52
-rw-r--r--pkgs/development/libraries/libmusicbrainz/missing-include.patch12
-rw-r--r--pkgs/development/libraries/libnih/default.nix6
-rw-r--r--pkgs/development/libraries/libnxml/default.nix21
-rw-r--r--pkgs/development/libraries/libogg/default.nix4
-rw-r--r--pkgs/development/libraries/liboggz/default.nix32
-rw-r--r--pkgs/development/libraries/libpar2/default.nix18
-rw-r--r--pkgs/development/libraries/libproxy/default.nix11
-rw-r--r--pkgs/development/libraries/libraw1394/default.nix8
-rw-r--r--pkgs/development/libraries/librdf/raptor2.nix22
-rw-r--r--pkgs/development/libraries/librdf/rasqal.nix18
-rw-r--r--pkgs/development/libraries/librdf/redland.nix36
-rw-r--r--pkgs/development/libraries/libssh/default.nix11
-rw-r--r--pkgs/development/libraries/libtheora/default.nix14
-rw-r--r--pkgs/development/libraries/libtiger/default.nix18
-rw-r--r--pkgs/development/libraries/libunistring/default.nix14
-rw-r--r--pkgs/development/libraries/libva/default.nix23
-rw-r--r--pkgs/development/libraries/libvirt/default.nix38
-rw-r--r--pkgs/development/libraries/libvorbis/default.nix4
-rw-r--r--pkgs/development/libraries/libvpx/default.nix10
-rw-r--r--pkgs/development/libraries/libx86/default.nix6
-rw-r--r--pkgs/development/libraries/libxklavier/default.nix10
-rw-r--r--pkgs/development/libraries/libxmi/default.nix14
-rw-r--r--pkgs/development/libraries/libzrtpcpp/1.6.nix20
-rw-r--r--pkgs/development/libraries/libzrtpcpp/default.nix8
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix22
-rw-r--r--pkgs/development/libraries/mediastreamer/h264.patch12
-rw-r--r--pkgs/development/libraries/mediastreamer/plugins.patch49
-rw-r--r--pkgs/development/libraries/mesa/default.nix34
-rw-r--r--pkgs/development/libraries/mesa/swrast-settexbuffer.patch24
-rw-r--r--pkgs/development/libraries/minixml/default.nix19
-rw-r--r--pkgs/development/libraries/mlt/default.nix6
-rw-r--r--pkgs/development/libraries/mp4v2/default.nix6
-rw-r--r--pkgs/development/libraries/mpc/default.nix4
-rw-r--r--pkgs/development/libraries/mpeg2dec/default.nix17
-rw-r--r--pkgs/development/libraries/mpich2/default.nix11
-rw-r--r--pkgs/development/libraries/msilbc/default.nix22
-rw-r--r--pkgs/development/libraries/mtdev/default.nix29
-rw-r--r--pkgs/development/libraries/mygui/default.nix20
-rw-r--r--pkgs/development/libraries/mygui/svn.nix27
-rw-r--r--pkgs/development/libraries/ncurses/default.nix25
-rw-r--r--pkgs/development/libraries/nettle/default.nix7
-rw-r--r--pkgs/development/libraries/nlopt/default.nix12
-rw-r--r--pkgs/development/libraries/nspr/default.nix4
-rw-r--r--pkgs/development/libraries/nss/default.nix13
-rw-r--r--pkgs/development/libraries/nss/nss-3.12.5-gentoo-fixups.diff247
-rw-r--r--pkgs/development/libraries/ntrack/default.nix24
-rw-r--r--pkgs/development/libraries/ode/default.nix4
-rw-r--r--pkgs/development/libraries/ogre/default.nix6
-rw-r--r--pkgs/development/libraries/openbabel/default.nix19
-rw-r--r--pkgs/development/libraries/opencv/2.1.nix28
-rw-r--r--pkgs/development/libraries/opencv/default.nix8
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix59
-rw-r--r--pkgs/development/libraries/openssl/default.nix13
-rw-r--r--pkgs/development/libraries/ortp/default.nix4
-rw-r--r--pkgs/development/libraries/osip/default.nix17
-rw-r--r--pkgs/development/libraries/pango/1.26.x.nix32
-rw-r--r--pkgs/development/libraries/pango/1.28.x.nix6
-rw-r--r--pkgs/development/libraries/phat/default.nix21
-rw-r--r--pkgs/development/libraries/phonon-backend-gstreamer/default.nix23
-rw-r--r--pkgs/development/libraries/phonon/default.nix27
-rw-r--r--pkgs/development/libraries/php-apc/default.nix26
-rw-r--r--pkgs/development/libraries/php-xcache/default.nix33
-rw-r--r--pkgs/development/libraries/pocketsphinx/default.nix21
-rw-r--r--pkgs/development/libraries/podofo/default.nix4
-rw-r--r--pkgs/development/libraries/policykit/default.nix2
-rw-r--r--pkgs/development/libraries/polkit-qt-1/default.nix20
-rw-r--r--pkgs/development/libraries/polkit-qt-1/polkit-install.patch12
-rw-r--r--pkgs/development/libraries/polkit/default.nix39
-rw-r--r--pkgs/development/libraries/poppler/GDir-const.patch24
-rw-r--r--pkgs/development/libraries/poppler/default.nix26
-rw-r--r--pkgs/development/libraries/portaudio/svn-head.nix25
-rw-r--r--pkgs/development/libraries/ppl/0.11.nix50
-rw-r--r--pkgs/development/libraries/prison/default.nix22
-rw-r--r--pkgs/development/libraries/protobuf/2.2.0.nix28
-rw-r--r--pkgs/development/libraries/qca2/default.nix34
-rw-r--r--pkgs/development/libraries/qca2/ossl.nix (renamed from pkgs/desktops/kde-4.6/support/qca2/ossl.nix)3
-rw-r--r--pkgs/development/libraries/qhull/default.nix29
-rw-r--r--pkgs/development/libraries/qimageblitz/default.nix (renamed from pkgs/desktops/kde-4.6/support/qimageblitz/default.nix)2
-rw-r--r--pkgs/development/libraries/qt-4.x/4.7/default.nix71
-rw-r--r--pkgs/development/libraries/qwt/default.nix20
-rw-r--r--pkgs/development/libraries/qwt/prefix.diff24
-rw-r--r--pkgs/development/libraries/readline/readline6.nix9
-rw-r--r--pkgs/development/libraries/redland/1.0.10.nix30
-rw-r--r--pkgs/development/libraries/rubberband/default.nix6
-rw-r--r--pkgs/development/libraries/sfml/default.nix23
-rw-r--r--pkgs/development/libraries/simgear/default.nix51
-rw-r--r--pkgs/development/libraries/smpeg/default.nix34
-rw-r--r--pkgs/development/libraries/soqt/default.nix22
-rw-r--r--pkgs/development/libraries/speech-tools/default.nix65
-rw-r--r--pkgs/development/libraries/speechd/default.nix20
-rw-r--r--pkgs/development/libraries/sphinxbase/default.nix19
-rw-r--r--pkgs/development/libraries/sqlite/default.nix8
-rw-r--r--pkgs/development/libraries/strigi/default.nix (renamed from pkgs/desktops/kde-4.6/support/strigi/default.nix)23
-rw-r--r--pkgs/development/libraries/taglib/default.nix14
-rw-r--r--pkgs/development/libraries/taglib/live.nix (renamed from pkgs/development/libraries/taglib/1.7.nix)20
-rw-r--r--pkgs/development/libraries/talloc/default.nix5
-rw-r--r--pkgs/development/libraries/tremor/default.nix25
-rw-r--r--pkgs/development/libraries/ucommon/default.nix26
-rw-r--r--pkgs/development/libraries/ustr/default.nix24
-rw-r--r--pkgs/development/libraries/vmime/default.nix19
-rw-r--r--pkgs/development/libraries/webkit/default.nix29
-rw-r--r--pkgs/development/libraries/webkit/src-for-default.nix10
-rw-r--r--pkgs/development/libraries/webkit/src-for-svn.nix9
-rw-r--r--pkgs/development/libraries/webkit/src-info-for-default.nix6
-rw-r--r--pkgs/development/libraries/webkit/src-info-for-svn.nix6
-rw-r--r--pkgs/development/libraries/webkit/svn.nix91
-rw-r--r--pkgs/development/libraries/wvstreams/compile.patch43
-rw-r--r--pkgs/development/libraries/wvstreams/default.nix2
-rw-r--r--pkgs/development/libraries/wxGTK-2.8/default.nix7
-rw-r--r--pkgs/development/libraries/wxGTK-2.9/2.9.0.nix46
-rw-r--r--pkgs/development/libraries/wxGTK-2.9/default.nix46
-rw-r--r--pkgs/development/libraries/x264/default.nix10
-rw-r--r--pkgs/development/libraries/xapian/1.0.x.nix19
-rw-r--r--pkgs/development/libraries/xapian/bindings/1.0.x.nix74
-rw-r--r--pkgs/development/libraries/xapian/bindings/default.nix15
-rw-r--r--pkgs/development/libraries/xapian/default.nix13
-rw-r--r--pkgs/development/libraries/xercesc/default.nix17
-rw-r--r--pkgs/development/libraries/xine-lib/builder.sh13
-rw-r--r--pkgs/development/libraries/xine-lib/default.nix31
-rw-r--r--pkgs/development/libraries/xine-lib/xine-lib-linux-headers-2.6.23.patch22
-rw-r--r--pkgs/development/libraries/xvidcore/default.nix16
-rw-r--r--pkgs/development/libraries/zlib/default.nix10
-rw-r--r--pkgs/development/misc/avr-gcc-with-avr-libc/avr-libc-fix-gcc-4.6.0.patch29
-rw-r--r--pkgs/development/misc/avr-gcc-with-avr-libc/default.nix26
-rw-r--r--pkgs/development/misc/intelgen4asm/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/batteries/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/camlzip/META4
-rw-r--r--pkgs/development/ocaml-modules/camomile/0.8.2.nix (renamed from pkgs/development/ocaml-modules/camomile/0.8.1.nix)4
-rw-r--r--pkgs/development/ocaml-modules/camomile/default.nix (renamed from pkgs/development/ocaml-modules/camomile/0.7.3.nix)5
-rw-r--r--pkgs/development/ocaml-modules/expat/default.nix51
-rw-r--r--pkgs/development/ocaml-modules/expat/unittest.patch15
-rw-r--r--pkgs/development/ocaml-modules/gmetadom/default.nix36
-rw-r--r--pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch18
-rw-r--r--pkgs/development/ocaml-modules/http/default.nix39
-rw-r--r--pkgs/development/ocaml-modules/lablgtk/META.patch64
-rw-r--r--pkgs/development/ocaml-modules/lablgtk/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/lablgtkmathview/configure.patch14
-rw-r--r--pkgs/development/ocaml-modules/lablgtkmathview/default.nix40
-rw-r--r--pkgs/development/ocaml-modules/mysql/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ulex/0.8/camlp5.patch72
-rw-r--r--pkgs/development/ocaml-modules/ulex/0.8/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/ulex/0.8/meta_version.patch10
-rw-r--r--pkgs/development/ocaml-modules/ulex/default.nix28
-rw-r--r--pkgs/development/perl-modules/DBD-Pg/default.nix10
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/default.nix9
-rw-r--r--pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch12
-rw-r--r--pkgs/development/perl-modules/net-amazon-mechanicalturk.patch65
-rw-r--r--pkgs/development/python-modules/dbus/default.nix27
-rw-r--r--pkgs/development/python-modules/generic/default.nix117
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh47
-rw-r--r--pkgs/development/python-modules/pycups/default.nix13
-rw-r--r--pkgs/development/python-modules/pyexiv2/default.nix23
-rw-r--r--pkgs/development/python-modules/pyqt/default.nix35
-rw-r--r--pkgs/development/python-modules/python-sip/default.nix4
-rw-r--r--pkgs/development/python-modules/rhpl/builder.sh5
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix51
-rw-r--r--pkgs/development/python-modules/wxPython/2.6.nix10
-rw-r--r--pkgs/development/python-modules/wxPython/2.8.nix16
-rw-r--r--pkgs/development/python-modules/wxPython/builder.sh5
-rw-r--r--pkgs/development/tools/analysis/lcov/default.nix7
-rw-r--r--pkgs/development/tools/analysis/lcov/unexpected-eof.patch57
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bam/default.nix63
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix43
-rw-r--r--pkgs/development/tools/build-managers/cmake/search-path.patch95
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh4
-rw-r--r--pkgs/development/tools/build-managers/jam/default.nix20
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix41
-rw-r--r--pkgs/development/tools/documentation/haddock/2.4.2.nix20
-rw-r--r--pkgs/development/tools/documentation/haddock/2.7.2.nix (renamed from pkgs/development/tools/documentation/haddock/haddock-2.7.2.nix)9
-rw-r--r--pkgs/development/tools/documentation/haddock/2.9.2.nix25
-rw-r--r--pkgs/development/tools/documentation/haddock/boot.nix34
-rw-r--r--pkgs/development/tools/documentation/haddock/haddock-0.9.nix11
-rw-r--r--pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix11
-rw-r--r--pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix13
-rw-r--r--pkgs/development/tools/haskell/BNFC-meta/default.nix17
-rw-r--r--pkgs/development/tools/haskell/BNFC/default.nix20
-rw-r--r--pkgs/development/tools/haskell/HaRe/default.nix22
-rw-r--r--pkgs/development/tools/haskell/alex-meta/default.nix17
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix20
-rw-r--r--pkgs/development/tools/haskell/happy-meta/default.nix17
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix22
-rw-r--r--pkgs/development/tools/haskell/hslogger/default.nix19
-rw-r--r--pkgs/development/tools/haskell/mkcabal/default.nix12
-rw-r--r--pkgs/development/tools/haskell/tar/default.nix14
-rw-r--r--pkgs/development/tools/haskell/threadscope/default.nix24
-rw-r--r--pkgs/development/tools/haskell/uuagc/bootstrap.nix20
-rw-r--r--pkgs/development/tools/haskell/uuagc/cabal.nix18
-rw-r--r--pkgs/development/tools/haskell/uuagc/default.nix22
-rw-r--r--pkgs/development/tools/misc/autoconf/default.nix4
-rw-r--r--pkgs/development/tools/misc/autogen/default.nix13
-rw-r--r--pkgs/development/tools/misc/automake/builder.sh39
-rw-r--r--pkgs/development/tools/misc/automoc4/default.nix (renamed from pkgs/desktops/kde-4.5/support/automoc4/default.nix)12
-rw-r--r--pkgs/development/tools/misc/avrdude/default.nix8
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix9
-rw-r--r--pkgs/development/tools/misc/cflow/default.nix2
-rw-r--r--pkgs/development/tools/misc/complexity/default.nix38
-rw-r--r--pkgs/development/tools/misc/cpphs/default.nix17
-rw-r--r--pkgs/development/tools/misc/dejagnu/default.nix25
-rw-r--r--pkgs/development/tools/misc/distcc/default.nix2
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix55
-rw-r--r--pkgs/development/tools/misc/global/default.nix17
-rw-r--r--pkgs/development/tools/misc/gob2/default.nix19
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix70
-rw-r--r--pkgs/development/tools/misc/jscoverage/default.nix47
-rw-r--r--pkgs/development/tools/misc/libtool/libtool2.nix10
-rw-r--r--pkgs/development/tools/misc/ninka/default.nix41
-rw-r--r--pkgs/development/tools/misc/patchelf/0.6.nix6
-rw-r--r--pkgs/development/tools/misc/strace/default.nix10
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.1.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.2.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.3.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.5.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/3.0.1.nix21
-rw-r--r--pkgs/development/tools/parsing/alex/default.nix12
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.5.nix41
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.4.nix20
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.5.nix21
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.6.nix21
-rw-r--r--pkgs/development/tools/parsing/happy/happy-1.17.nix12
-rw-r--r--pkgs/development/tools/parsing/happy/happy-1.18.4.nix13
-rw-r--r--pkgs/development/tools/parsing/happy/happy-1.18.5.nix13
-rw-r--r--pkgs/development/tools/parsing/peg/default.nix23
-rw-r--r--pkgs/development/web/csslint/default.nix35
-rw-r--r--pkgs/development/web/nodejs/default.nix25
-rw-r--r--pkgs/games/LambdaHack/default.nix21
-rw-r--r--pkgs/games/MazesOfMonad/default.nix22
-rw-r--r--pkgs/games/banner/default.nix50
-rw-r--r--pkgs/games/btanks/default.nix27
-rw-r--r--pkgs/games/bzflag/default.nix18
-rw-r--r--pkgs/games/construo/default.nix4
-rw-r--r--pkgs/games/eduke32/default.nix26
-rw-r--r--pkgs/games/flightgear/default.nix59
-rw-r--r--pkgs/games/freeciv/default.nix30
-rw-r--r--pkgs/games/glestae/default.nix58
-rw-r--r--pkgs/games/globulation/default.nix79
-rw-r--r--pkgs/games/globulation/header-order.patch23
-rw-r--r--pkgs/games/icbm3d/default.nix22
-rw-r--r--pkgs/games/liquidwar/src-for-default.nix8
-rw-r--r--pkgs/games/mars/default.nix30
-rw-r--r--pkgs/games/naev/default.nix33
-rw-r--r--pkgs/games/neverball/default.nix2
-rw-r--r--pkgs/games/njam/default.nix24
-rw-r--r--pkgs/games/njam/logfile.patch22
-rw-r--r--pkgs/games/pong3d/default.nix22
-rw-r--r--pkgs/games/quake3/game/default.nix10
-rw-r--r--pkgs/games/quake3/game/exit.patch12
-rw-r--r--pkgs/games/quake3/wrapper/builder.sh3
-rw-r--r--pkgs/games/racer/default.nix30
-rw-r--r--pkgs/games/racer/mkdir.patch13
-rw-r--r--pkgs/games/rigsofrods/default.nix76
-rw-r--r--pkgs/games/rigsofrods/wx.patch13
-rw-r--r--pkgs/games/simutrans/default.nix78
-rw-r--r--pkgs/games/soi/default.nix55
-rw-r--r--pkgs/games/speed-dreams/default.nix34
-rw-r--r--pkgs/games/teetertorture/default.nix31
-rw-r--r--pkgs/games/teeworlds/default.nix25
-rw-r--r--pkgs/games/the-butterfly-effect/default.nix25
-rw-r--r--pkgs/games/trigger/default.nix43
-rw-r--r--pkgs/games/ultimatestunts/default.nix11
-rw-r--r--pkgs/games/vdrift/default.nix28
-rw-r--r--pkgs/games/vectoroids/default.nix22
-rw-r--r--pkgs/games/warmux/default.nix50
-rw-r--r--pkgs/games/warsow/default.nix18
-rw-r--r--pkgs/games/warzone2100/default.nix4
-rw-r--r--pkgs/games/wesnoth/add-acl-prefix-to-libext.patch28
-rw-r--r--pkgs/games/wesnoth/default.nix16
-rw-r--r--pkgs/games/widelands/default.nix67
-rw-r--r--pkgs/games/xconq/default.nix72
-rw-r--r--pkgs/games/xmoto/src-for-default.nix8
-rw-r--r--pkgs/games/zod/default.nix44
-rw-r--r--pkgs/lib/customisation.nix2
-rw-r--r--pkgs/lib/lists.nix8
-rw-r--r--pkgs/lib/maintainers.nix6
-rw-r--r--pkgs/lib/misc.nix2
-rw-r--r--pkgs/lib/modules.nix18
-rw-r--r--pkgs/lib/properties.nix5
-rw-r--r--pkgs/lib/strings.nix5
-rw-r--r--pkgs/lib/types.nix48
-rw-r--r--pkgs/misc/busybox/default.nix10
-rw-r--r--pkgs/misc/cups/default.nix6
-rw-r--r--pkgs/misc/cups/pdf-filter.nix9
-rw-r--r--pkgs/misc/drivers/foo2zjs/default.nix82
-rw-r--r--pkgs/misc/drivers/foo2zjs/no-hardcode-fw.diff98
-rw-r--r--pkgs/misc/drivers/foomatic-filters/default.nix32
-rw-r--r--pkgs/misc/drivers/gutenprint/default.nix6
-rw-r--r--pkgs/misc/drivers/hplip/default.nix16
-rw-r--r--pkgs/misc/emulators/VisualBoyAdvance/default.nix23
-rw-r--r--pkgs/misc/emulators/VisualBoyAdvance/fix.diff31
-rw-r--r--pkgs/misc/emulators/darcnes/default.nix28
-rw-r--r--pkgs/misc/emulators/darcnes/label.patch13
-rw-r--r--pkgs/misc/emulators/fakenes/build.patch84
-rw-r--r--pkgs/misc/emulators/fakenes/default.nix28
-rw-r--r--pkgs/misc/emulators/gens-gs/default.nix4
-rw-r--r--pkgs/misc/emulators/mupen64plus/default.nix33
-rw-r--r--pkgs/misc/emulators/uae/default.nix18
-rw-r--r--pkgs/misc/emulators/vice/default.nix2
-rw-r--r--pkgs/misc/emulators/wine/default.nix4
-rw-r--r--pkgs/misc/emulators/wine/src-for-default.nix8
-rw-r--r--pkgs/misc/emulators/zsnes/default.nix38
-rw-r--r--pkgs/misc/ghostscript/default.nix76
-rw-r--r--pkgs/misc/ghostscript/pstoraster.patch81
-rw-r--r--pkgs/misc/jackaudio/default.nix60
-rw-r--r--pkgs/misc/jackaudio/jack1.nix48
-rw-r--r--pkgs/misc/lilypond/default.nix11
-rw-r--r--pkgs/misc/maven/3.0.nix6
-rw-r--r--pkgs/misc/misc.nix24
-rw-r--r--pkgs/misc/my-env/default.nix4
-rw-r--r--pkgs/misc/rosegarden/default.nix59
-rw-r--r--pkgs/misc/tex/nix/default.nix2
-rw-r--r--pkgs/misc/tex/nix/find-includes.pl1
-rw-r--r--pkgs/misc/tex/nix/run-latex.sh12
-rw-r--r--pkgs/misc/tex/tex4ht/default.nix9
-rw-r--r--pkgs/misc/tex/texlive/aggregate.nix34
-rw-r--r--pkgs/misc/tex/texlive/default.nix27
-rw-r--r--pkgs/misc/tex/texlive/moderncv.nix25
-rw-r--r--pkgs/misc/themes/gtk2/oxygen-gtk/default.nix23
-rwxr-xr-xpkgs/os-specific/darwin/install_name_tool/builder.sh3
-rw-r--r--pkgs/os-specific/darwin/install_name_tool/default.nix8
-rw-r--r--pkgs/os-specific/gnu/hurd/default.nix10
-rw-r--r--pkgs/os-specific/gnu/mig/default.nix4
-rw-r--r--pkgs/os-specific/gnu/mig/noyywrap.patch12
-rw-r--r--pkgs/os-specific/linux/acpi/default.nix6
-rw-r--r--pkgs/os-specific/linux/alsa-plugins/default.nix20
-rw-r--r--pkgs/os-specific/linux/aufs2.1-util/default.nix41
-rw-r--r--pkgs/os-specific/linux/aufs2.1/default.nix49
-rw-r--r--pkgs/os-specific/linux/blcr/default.nix36
-rw-r--r--pkgs/os-specific/linux/bluez/default.nix35
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix17
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/mutex-sema.patch12
-rw-r--r--pkgs/os-specific/linux/checkpolicy/default.nix23
-rw-r--r--pkgs/os-specific/linux/dmtcp/default.nix8
-rw-r--r--pkgs/os-specific/linux/dmtcp/dont_check_uid.patch35
-rw-r--r--pkgs/os-specific/linux/ebtables/default.nix27
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix29
-rw-r--r--pkgs/os-specific/linux/firmware/radeon-juniper/default.nix31
-rw-r--r--pkgs/os-specific/linux/firmware/radeon-r600/default.nix19
-rw-r--r--pkgs/os-specific/linux/firmware/radeon-r700/default.nix19
-rw-r--r--pkgs/os-specific/linux/firmware/rt2860/default.nix26
-rw-r--r--pkgs/os-specific/linux/firmware/rtl8192c/default.nix23
-rw-r--r--pkgs/os-specific/linux/fuse/default.nix4
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix29
-rw-r--r--pkgs/os-specific/linux/htop/default.nix12
-rw-r--r--pkgs/os-specific/linux/iotop/default.nix53
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix4
-rw-r--r--pkgs/os-specific/linux/iproute/vpnc.patch15
-rw-r--r--pkgs/os-specific/linux/iptables/default.nix4
-rw-r--r--pkgs/os-specific/linux/iputils/builder.sh18
-rw-r--r--pkgs/os-specific/linux/iputils/default.nix30
-rw-r--r--pkgs/os-specific/linux/iputils/open-max.patch30
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.28.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2-33.patch82
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2.1-3.0.patch70
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2.1-36.patch81
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2.1-37.patch368
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2.1-38.patch368
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2.1-39.patch70
-rw-r--r--pkgs/os-specific/linux/kernel/builder.sh14
-rw-r--r--pkgs/os-specific/linux/kernel/cifs-timeout-2.6.15.patch44
-rw-r--r--pkgs/os-specific/linux/kernel/cifs-timeout-2.6.25.patch46
-rw-r--r--pkgs/os-specific/linux/kernel/cifs-timeout-2.6.29.patch (renamed from pkgs/os-specific/linux/kernel/cifs-timeout.patch)0
-rw-r--r--pkgs/os-specific/linux/kernel/cifs-timeout-2.6.35.patch45
-rw-r--r--pkgs/os-specific/linux/kernel/cifs-timeout-2.6.38.patch13
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix25
-rw-r--r--pkgs/os-specific/linux/kernel/getline.patch34
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.15.nix48
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.26.nix177
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.27.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.28.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.29.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.31.nix247
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.32.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.33.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.34.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.35.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.36.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.37.nix208
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.38.nix208
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.39.nix209
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.0.nix218
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.1.nix220
-rw-r--r--pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.36.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix185
-rw-r--r--pkgs/os-specific/linux/kernel/xen-pvclock-resume.patch51
-rw-r--r--pkgs/os-specific/linux/libaio/default.nix18
-rw-r--r--pkgs/os-specific/linux/libatasmart/default.nix18
-rw-r--r--pkgs/os-specific/linux/libnl/default.nix5
-rw-r--r--pkgs/os-specific/linux/libnl/libnl-1.1-flags.patch11
-rw-r--r--pkgs/os-specific/linux/libnl/libnl-1.1-glibc-2.8-ULONG_MAX.patch13
-rw-r--r--pkgs/os-specific/linux/libnl/libnl-1.1-minor-leaks.patch40
-rw-r--r--pkgs/os-specific/linux/libnl/libnl-1.1-vlan-header.patch80
-rw-r--r--pkgs/os-specific/linux/libnl/v1.nix27
-rw-r--r--pkgs/os-specific/linux/libnl/v2.nix19
-rw-r--r--pkgs/os-specific/linux/libselinux/builder.sh6
-rw-r--r--pkgs/os-specific/linux/libselinux/default.nix15
-rw-r--r--pkgs/os-specific/linux/libsemanage/default.nix25
-rw-r--r--pkgs/os-specific/linux/libsepol/builder.sh6
-rw-r--r--pkgs/os-specific/linux/libsepol/default.nix13
-rw-r--r--pkgs/os-specific/linux/lsscsi/default.nix16
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix11
-rw-r--r--pkgs/os-specific/linux/mountall/default.nix8
-rw-r--r--pkgs/os-specific/linux/mountall/no-plymouth.patch76
-rw-r--r--pkgs/os-specific/linux/multipath-tools/default.nix34
-rw-r--r--pkgs/os-specific/linux/ndiswrapper/default.nix6
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix8
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy96.nix6
-rw-r--r--pkgs/os-specific/linux/pam/default.nix8
-rw-r--r--pkgs/os-specific/linux/pm-utils/default.nix23
-rw-r--r--pkgs/os-specific/linux/pmount/default.nix8
-rw-r--r--pkgs/os-specific/linux/policycoreutils/default.nix25
-rw-r--r--pkgs/os-specific/linux/powertop/default.nix8
-rw-r--r--pkgs/os-specific/linux/powertop/powertop-1.13.patch15
-rw-r--r--pkgs/os-specific/linux/powertop/powertop-1.8.patch13
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix30
-rw-r--r--pkgs/os-specific/linux/rtkit/default.nix18
-rw-r--r--pkgs/os-specific/linux/sepolgen/default.nix22
-rw-r--r--pkgs/os-specific/linux/sysfsutils/default.nix14
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix5
-rw-r--r--pkgs/os-specific/linux/udev/145.nix53
-rw-r--r--pkgs/os-specific/linux/udev/172.nix (renamed from pkgs/os-specific/linux/udev/default.nix)9
-rw-r--r--pkgs/os-specific/linux/udisks/default.nix46
-rw-r--r--pkgs/os-specific/linux/udisks/purity.patch74
-rw-r--r--pkgs/os-specific/linux/upower/default.nix35
-rw-r--r--pkgs/os-specific/linux/upstart/default.nix4
-rw-r--r--pkgs/os-specific/linux/util-linux-ng/default.nix5
-rw-r--r--pkgs/os-specific/linux/v4l-utils/default.nix50
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/builder-gui-qt4.sh17
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix77
-rw-r--r--pkgs/os-specific/linux/xf86-input-multitouch/default.nix53
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/10-wacom.rules3
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/default.nix29
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix33
-rw-r--r--pkgs/servers/dns/bind/9.5.0.nix19
-rw-r--r--pkgs/servers/dns/bind/default.nix31
-rw-r--r--pkgs/servers/evolution-data-server/default.nix8
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix45
-rw-r--r--pkgs/servers/ftp/vsftpd/fix.patch56
-rw-r--r--pkgs/servers/ftp/vsftpd/vsftpd.user_list3
-rw-r--r--pkgs/servers/gpsd/default.nix35
-rw-r--r--pkgs/servers/http/apache-httpd/default.nix7
-rw-r--r--pkgs/servers/http/apache-modules/mod_fastcgi/default.nix2
-rw-r--r--pkgs/servers/http/apache-modules/mod_wsgi/default.nix2
-rw-r--r--pkgs/servers/http/apache-modules/tomcat-connectors/default.nix6
-rw-r--r--pkgs/servers/http/joseki/default.nix112
-rw-r--r--pkgs/servers/http/mini-httpd/default.nix20
-rw-r--r--pkgs/servers/http/myserver/default.nix19
-rw-r--r--pkgs/servers/http/myserver/installable-binary.patch14
-rw-r--r--pkgs/servers/http/nginx/src-for-default.nix8
-rw-r--r--pkgs/servers/http/nginx/src-info-for-default.nix2
-rw-r--r--pkgs/servers/http/redstore/default.nix45
-rw-r--r--pkgs/servers/http/redstore/src-for-default.nix9
-rw-r--r--pkgs/servers/http/redstore/src-info-for-default.nix6
-rw-r--r--pkgs/servers/http/tomcat/6.0.nix4
-rw-r--r--pkgs/servers/http/tomcat/axis2/default.nix6
-rw-r--r--pkgs/servers/mail/freepops/default.nix27
-rw-r--r--pkgs/servers/mediatomb/default.nix24
-rw-r--r--pkgs/servers/monitoring/zabbix/default.nix4
-rw-r--r--pkgs/servers/mpd/default.nix6
-rw-r--r--pkgs/servers/pies/default.nix44
-rw-r--r--pkgs/servers/polipo/default.nix22
-rw-r--r--pkgs/servers/pulseaudio/default.nix34
-rw-r--r--pkgs/servers/samba/default.nix14
-rw-r--r--pkgs/servers/sip/freeswitch/default.nix20
-rw-r--r--pkgs/servers/sip/sipwitch/default.nix26
-rw-r--r--pkgs/servers/sql/mysql/jdbc/builder.sh2
-rw-r--r--pkgs/servers/sql/mysql/jdbc/default.nix10
-rw-r--r--pkgs/servers/sql/mysql51/default.nix6
-rw-r--r--pkgs/servers/sql/mysql55/default.nix28
-rw-r--r--pkgs/servers/sql/virtuoso/default.nix8
-rw-r--r--pkgs/servers/x11/xorg/builder.sh7
-rw-r--r--pkgs/servers/x11/xorg/default.nix1220
-rw-r--r--pkgs/servers/x11/xorg/extra.list7
-rwxr-xr-xpkgs/servers/x11/xorg/generate-expr-from-tarballs.pl2
-rw-r--r--pkgs/servers/x11/xorg/old.list22
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix54
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.5.list197
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.6.list199
-rw-r--r--pkgs/shells/bash-completion/default.nix26
-rw-r--r--pkgs/shells/ipython/default.nix5
-rw-r--r--pkgs/stdenv/adapters.nix4
-rw-r--r--pkgs/stdenv/linux/default.nix22
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix3
-rw-r--r--pkgs/tools/X11/x11vnc/default.nix4
-rw-r--r--pkgs/tools/X11/xbindkeys/default.nix20
-rw-r--r--pkgs/tools/X11/xdotool/default.nix24
-rw-r--r--pkgs/tools/X11/xmacro/default.nix7
-rw-r--r--pkgs/tools/X11/xnee/default.nix71
-rw-r--r--pkgs/tools/admin/gtk-vnc/default.nix62
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix6
-rw-r--r--pkgs/tools/archivers/sharutils/default.nix4
-rw-r--r--pkgs/tools/archivers/unshield/default.nix15
-rw-r--r--pkgs/tools/archivers/zip/builder.sh7
-rw-r--r--pkgs/tools/archivers/zip/default.nix17
-rw-r--r--pkgs/tools/backup/bacula/default.nix20
-rw-r--r--pkgs/tools/backup/bup/default.nix23
-rw-r--r--pkgs/tools/backup/duplicity/default.nix6
-rw-r--r--pkgs/tools/bluetooth/bluedevil/default.nix14
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix5
-rw-r--r--pkgs/tools/bluetooth/obex-data-server/default.nix4
-rw-r--r--pkgs/tools/bluetooth/obexd/default.nix8
-rw-r--r--pkgs/tools/cd-dvd/cdrdao/adjust-includes-for-glibc-212.patch15
-rw-r--r--pkgs/tools/cd-dvd/cdrdao/default.nix6
-rw-r--r--pkgs/tools/cd-dvd/mkcue/default.nix13
-rw-r--r--pkgs/tools/cd-dvd/mkisofs/default.nix25
-rw-r--r--pkgs/tools/cd-dvd/xorriso/default.nix36
-rw-r--r--pkgs/tools/compression/lrzip/default.nix10
-rw-r--r--pkgs/tools/compression/upx/default.nix22
-rw-r--r--pkgs/tools/filesystems/aefs/default.nix14
-rw-r--r--pkgs/tools/filesystems/archivemount/default.nix23
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix2
-rw-r--r--pkgs/tools/filesystems/davfs2/isdir.patch30
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/fsfs/default.nix30
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix5
-rw-r--r--pkgs/tools/filesystems/smbnetfs/default.nix50
-rw-r--r--pkgs/tools/filesystems/squashfs/default.nix7
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/udftools/default.nix51
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix2
-rw-r--r--pkgs/tools/graphics/cuneiform/default.nix4
-rw-r--r--pkgs/tools/graphics/dcraw/default.nix2
-rw-r--r--pkgs/tools/graphics/dmtx/default.nix2
-rw-r--r--pkgs/tools/graphics/glxinfo/default.nix18
-rw-r--r--pkgs/tools/graphics/graphviz/2.24.nix32
-rw-r--r--pkgs/tools/graphics/graphviz/default.nix21
-rw-r--r--pkgs/tools/graphics/optipng/default.nix4
-rw-r--r--pkgs/tools/graphics/welkin/default.nix59
-rw-r--r--pkgs/tools/misc/aws-mturk-clt/default.nix48
-rw-r--r--pkgs/tools/misc/bc/default.nix4
-rw-r--r--pkgs/tools/misc/convmv/default.nix2
-rw-r--r--pkgs/tools/misc/coreutils/default.nix17
-rw-r--r--pkgs/tools/misc/dmg2img/default.nix17
-rw-r--r--pkgs/tools/misc/fdupes/default.nix20
-rw-r--r--pkgs/tools/misc/file/default.nix7
-rw-r--r--pkgs/tools/misc/gnokii/default.nix16
-rw-r--r--pkgs/tools/misc/gnokii/src-for-default.nix8
-rw-r--r--pkgs/tools/misc/gparted/default.nix7
-rw-r--r--pkgs/tools/misc/grub/1.98.nix79
-rw-r--r--pkgs/tools/misc/grub/1.9x.nix40
-rw-r--r--pkgs/tools/misc/heimdall/default.nix57
-rw-r--r--pkgs/tools/misc/ised/default.nix47
-rw-r--r--pkgs/tools/misc/keychain/default.nix6
-rw-r--r--pkgs/tools/misc/mc/default.nix66
-rw-r--r--pkgs/tools/misc/memtest86/default.nix6
-rw-r--r--pkgs/tools/misc/myhasktags/default.nix4
-rw-r--r--pkgs/tools/misc/parallel/default.nix9
-rw-r--r--pkgs/tools/misc/parted/2.3.nix57
-rw-r--r--pkgs/tools/misc/parted/default.nix9
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix4
-rw-r--r--pkgs/tools/misc/pinentry/default.nix31
-rw-r--r--pkgs/tools/misc/pv/default.nix8
-rw-r--r--pkgs/tools/misc/recutils/default.nix4
-rw-r--r--pkgs/tools/misc/rockbox-utility/default.nix31
-rw-r--r--pkgs/tools/misc/rrdtool/default.nix6
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix39
-rw-r--r--pkgs/tools/misc/vfdecrypt/default.nix16
-rw-r--r--pkgs/tools/misc/vorbisgain/default.nix17
-rw-r--r--pkgs/tools/misc/xburst-tools/default.nix17
-rw-r--r--pkgs/tools/misc/xburst-tools/gcc-4.4.patch12
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix56
-rw-r--r--pkgs/tools/networking/aircrack-ng/default.nix16
-rw-r--r--pkgs/tools/networking/aria2/default.nix4
-rw-r--r--pkgs/tools/networking/dhcp/default.nix11
-rw-r--r--pkgs/tools/networking/dhcp/flush-if.patch6
-rw-r--r--pkgs/tools/networking/dhcp/set-hostname.patch14
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix4
-rw-r--r--pkgs/tools/networking/dropbear/default.nix11
-rw-r--r--pkgs/tools/networking/dropbear/pass-path.patch31
-rw-r--r--pkgs/tools/networking/fuppes/default.nix54
-rw-r--r--pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch91
-rw-r--r--pkgs/tools/networking/getmail/default.nix59
-rw-r--r--pkgs/tools/networking/inadyn/default.nix18
-rw-r--r--pkgs/tools/networking/isync/default.nix22
-rw-r--r--pkgs/tools/networking/isync/isync-recursice-imap.patch114
-rw-r--r--pkgs/tools/networking/knetworkmanager/live.nix27
-rw-r--r--pkgs/tools/networking/lftp/default.nix13
-rw-r--r--pkgs/tools/networking/miniupnpc/default.nix23
-rw-r--r--pkgs/tools/networking/mtr/default.nix47
-rw-r--r--pkgs/tools/networking/nbd/default.nix21
-rw-r--r--pkgs/tools/networking/ndisc6/default.nix23
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix24
-rw-r--r--pkgs/tools/networking/network-manager/default.nix28
-rw-r--r--pkgs/tools/networking/nzbget/default.nix25
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix7
-rw-r--r--pkgs/tools/networking/openssh/default.nix15
-rw-r--r--pkgs/tools/networking/openvpn/default.nix4
-rw-r--r--pkgs/tools/networking/p2p/bit-tornado/default.nix17
-rw-r--r--pkgs/tools/networking/p2p/libtorrent/default.nix20
-rw-r--r--pkgs/tools/networking/p2p/rtorrent/default.nix20
-rw-r--r--pkgs/tools/networking/p2p/seeks/default.nix11
-rw-r--r--pkgs/tools/networking/pdsh/default.nix24
-rw-r--r--pkgs/tools/networking/radvd/default.nix15
-rw-r--r--pkgs/tools/networking/s3cmd/default.nix25
-rw-r--r--pkgs/tools/networking/siege/default.nix51
-rw-r--r--pkgs/tools/networking/ssmtp/default.nix40
-rw-r--r--pkgs/tools/networking/vde2/default.nix17
-rw-r--r--pkgs/tools/networking/vlan/default.nix29
-rw-r--r--pkgs/tools/networking/wakelan/default.nix29
-rw-r--r--pkgs/tools/networking/wavemon/default.nix48
-rw-r--r--pkgs/tools/networking/wicd/default.nix21
-rw-r--r--pkgs/tools/networking/wicd/no-optimization.patch21
-rw-r--r--pkgs/tools/networking/wicd/no-var-install.patch9
-rw-r--r--pkgs/tools/networking/wicd/wpa2-ttls19
-rw-r--r--pkgs/tools/package-management/cabal-install/0.10.2.nix20
-rw-r--r--pkgs/tools/package-management/cabal-install/0.6.2.nix20
-rw-r--r--pkgs/tools/package-management/cabal-install/0.8.0.nix19
-rw-r--r--pkgs/tools/package-management/cabal-install/0.8.2.nix19
-rw-r--r--pkgs/tools/package-management/cabal-install/default.nix13
-rw-r--r--pkgs/tools/package-management/disnix/DisnixWebService/default.nix10
-rw-r--r--pkgs/tools/package-management/disnix/activation-scripts/default.nix12
-rw-r--r--pkgs/tools/package-management/disnix/default.nix12
-rw-r--r--pkgs/tools/package-management/disnix/disnixos/default.nix12
-rw-r--r--pkgs/tools/package-management/nix/custom.nix6
-rw-r--r--pkgs/tools/package-management/nix/sqlite.nix32
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix18
-rw-r--r--pkgs/tools/package-management/opkg/default.nix10
-rw-r--r--pkgs/tools/security/gnupg/default.nix4
-rw-r--r--pkgs/tools/security/mktemp/default.nix9
-rw-r--r--pkgs/tools/security/nmap/default.nix13
-rw-r--r--pkgs/tools/security/pinentry/default.nix40
-rw-r--r--pkgs/tools/security/pinentry/duplicate-glib-defs.patch (renamed from pkgs/tools/misc/pinentry/duplicate-glib-defs.patch)0
-rw-r--r--pkgs/tools/security/polkit-gnome/default.nix22
-rw-r--r--pkgs/tools/security/polkit-kde-agent/default.nix16
-rw-r--r--pkgs/tools/security/super/default.nix29
-rw-r--r--pkgs/tools/security/tor/default.nix4
-rw-r--r--pkgs/tools/system/ddrescue/default.nix4
-rw-r--r--pkgs/tools/system/efibootmgr/default.nix33
-rw-r--r--pkgs/tools/system/fakeroot/default.nix19
-rw-r--r--pkgs/tools/system/fdisk/default.nix4
-rw-r--r--pkgs/tools/system/freeipmi/default.nix39
-rw-r--r--pkgs/tools/system/gdmap/default.nix7
-rw-r--r--pkgs/tools/system/gdmap/get_sensitive.patch34
-rw-r--r--pkgs/tools/system/gdmap/set_flags.patch25
-rw-r--r--pkgs/tools/system/gptfdisk/default.nix32
-rw-r--r--pkgs/tools/system/ioping/default.nix50
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix55
-rw-r--r--pkgs/tools/system/lxc/default.nix12
-rw-r--r--pkgs/tools/system/plan9port/default.nix12
-rw-r--r--pkgs/tools/system/sg3_utils/default.nix4
-rw-r--r--pkgs/tools/system/sleuthkit/default.nix48
-rw-r--r--pkgs/tools/system/smartmontools/default.nix11
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix (renamed from pkgs/tools/misc/syslog-ng/default.nix)2
-rw-r--r--pkgs/tools/system/tree/default.nix57
-rw-r--r--pkgs/tools/text/colordiff/default.nix13
-rw-r--r--pkgs/tools/text/dos2unix/default.nix41
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-3.1-manpage-update-57507.patch238
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-3.1-preserve-file-modes.patch28
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-3.1-safeconv.patch88
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-3.1-segfault.patch93
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-3.1-tmppath.patch141
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-3.1.patch49
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-c-missing-arg.patch42
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-manpage.patch12
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-missing-proto.patch15
-rw-r--r--pkgs/tools/text/dos2unix/dos2unix-preserve-file-modes.patch28
-rw-r--r--pkgs/tools/text/kdiff3/default.nix4
-rw-r--r--pkgs/tools/text/mairix/default.nix20
-rw-r--r--pkgs/tools/text/sgml/opensp/compat.nix15
-rw-r--r--pkgs/tools/text/source-highlight/default.nix20
-rw-r--r--pkgs/tools/text/unix2dos/default.nix37
-rw-r--r--pkgs/tools/text/unix2dos/unix2dos-2.2-manpage.patch42
-rw-r--r--pkgs/tools/text/unix2dos/unix2dos-2.2-mode.patch29
-rw-r--r--pkgs/tools/text/unix2dos/unix2dos-2.2-segfault.patch94
-rw-r--r--pkgs/tools/text/unix2dos/unix2dos-2.2-tmppath.patch146
-rw-r--r--pkgs/tools/text/unix2dos/unix2dos-mkstemp.patch20
-rw-r--r--pkgs/tools/text/unix2dos/unix2dos-preserve-file-modes.patch29
-rw-r--r--pkgs/tools/typesetting/lhs2tex/default.nix22
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix4
-rw-r--r--pkgs/tools/video/dvgrab/default.nix34
-rw-r--r--pkgs/tools/video/mjpegtools/default.nix22
-rw-r--r--pkgs/tools/video/rtmpdump/default.nix4
-rw-r--r--pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix2
-rw-r--r--pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix4
-rw-r--r--pkgs/tools/virtualization/euca2ools/default.nix35
-rw-r--r--pkgs/top-level/all-packages.nix2095
-rw-r--r--pkgs/top-level/guile-2-test.nix5
-rw-r--r--pkgs/top-level/haskell-packages.nix1251
-rw-r--r--pkgs/top-level/perl-packages.nix1154
-rw-r--r--pkgs/top-level/platforms.nix10
-rw-r--r--pkgs/top-level/python-packages.nix1059
-rw-r--r--pkgs/top-level/release-cross.nix26
-rw-r--r--pkgs/top-level/release.nix86
2168 files changed, 42899 insertions, 18999 deletions
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index 9c9b61cd1dce..5c77b416cc0a 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -470,7 +470,7 @@ Additional file types can be supported by setting the
 <section><title>The configure phase</title>
 
 <para>The configure phase prepares the source tree for building.  The
-default <function>unpackPhase</function> runs
+default <function>configurePhase</function> runs
 <filename>./configure</filename> (typically an Autoconf-generated
 script) if it exists.</para>
 
@@ -879,7 +879,7 @@ distribution of the package.  The default
 <function>distPhase</function> first calls <command>make
 dist</command>, then it copies the resulting source tarballs to
 <filename>$out/tarballs/</filename>.  This phase is only executed if
-the attribute <varname>doDist</varname> is not set.</para>
+the attribute <varname>doDist</varname> is set.</para>
 
 <variablelist>
   <title>Variables controlling the distribution phase</title>
diff --git a/maintainers/scripts/gnu/gnupdate b/maintainers/scripts/gnu/gnupdate
index d830b3ab26c2..6e89542ec575 100755
--- a/maintainers/scripts/gnu/gnupdate
+++ b/maintainers/scripts/gnu/gnupdate
@@ -5,7 +5,7 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
          -c "(apply $main (command-line))" "$@"
 !#
 ;;; GNUpdate -- Update GNU packages in Nixpkgs.
-;;; Copyright (C) 2010  Ludovic Courtès <ludo@gnu.org>
+;;; Copyright (C) 2010, 2011  Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This program is free software: you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by
@@ -28,6 +28,7 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
   #:use-module (ice-9 popen)
   #:use-module (ice-9 match)
   #:use-module (ice-9 rdelim)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 vlist)
   #:use-module (srfi srfi-1)
@@ -116,8 +117,19 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
              (if (pair? body)
                  (values `(derivation ,drv-path ,out-path ,(cdr body))
                          derivations)
-                 (error "no previous occurrence of derivation"
-                        drv-path)))
+
+                 ;; DRV-PATH hasn't been encountered yet but may be later
+                 ;; (see <http://article.gmane.org/gmane.linux.distributions.nixos/5946>.)
+                 ;; Return an `unresolved' node.
+                 (values `(unresolved
+                           ,(lambda (derivations)
+                              (let ((body (vhash-assoc drv-path derivations)))
+                                (if (pair? body)
+                                    `(derivation ,drv-path ,out-path
+                                                 ,(cdr body))
+                                    (error "no previous occurrence of derivation"
+                                           drv-path)))))
+                         derivations)))
            (values `(derivation ,drv-path ,out-path ,body)
                    (vhash-cons drv-path body derivations)))))
     ((ellipsis)
@@ -145,6 +157,32 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
      (values `(varpat ,(assq-ref attributes 'name)) derivations))
     (else (error "unhandled Nix XML element" elem))))
 
+(define (resolve snix derivations)
+  "Return a new SNix tree where `unresolved' nodes from SNIX have been
+replaced by the result of their application to DERIVATIONS, a vhash."
+  (let loop ((node snix)
+             (seen vlist-null))
+    (if (vhash-assq node seen)
+        (values node seen)
+        (match node
+          (('unresolved proc)
+           (let ((n (proc derivations)))
+             (values n seen)))
+          ((tag body ...)
+           (let ((body+seen (fold (lambda (n body+seen)
+                                    (call-with-values
+                                        (lambda ()
+                                          (loop n (cdr body+seen)))
+                                      (lambda (n* seen)
+                                        (cons (cons n* (car body+seen))
+                                              (vhash-consq n #t seen)))))
+                                  (cons '() (vhash-consq node #t seen))
+                                  body)))
+             (values (cons tag (reverse (car body+seen)))
+                     (vhash-consq node #t (cdr body+seen)))))
+          (anything
+           (values anything seen))))))
+
 (define xml->snix
   ;; Return the SNix represention of TREE, an SXML tree as returned by
   ;; parsing the XML output of `nix-instantiate' on Nixpkgs.
@@ -172,9 +210,9 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
                              ;; Discard inter-node strings, which are blanks.
                              seed))))
     (lambda (port)
-      ;; Discard the second value returned by the parser (the derivation
-      ;; vhash).
-      (caar (parse port (cons '() vlist-null))))))
+      (match (parse port (cons '() vlist-null))
+        (((snix) . derivations)
+         (resolve snix derivations))))))
 
 (define (call-with-package snix proc)
   (match snix
@@ -277,18 +315,27 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
                 "--strict" "--eval-only" "--xml"
                 script)))
 
+(define (pipe-failed? pipe)
+  "Close pipe and return its status if it failed."
+  (let ((status (close-pipe pipe)))
+    (if (or (status:term-sig status)
+            (not (= (status:exit-val status) 0)))
+        status
+        #f)))
+
 (define (nix-prefetch-url url)
   ;; Download URL in the Nix store and return the base32-encoded SHA256 hash
   ;; of the file at URL
   (let* ((pipe (open-pipe* OPEN_READ "nix-prefetch-url" url))
          (hash (read-line pipe)))
-    (close-pipe pipe)
-    (if (eof-object? hash)
+    (if (or (pipe-failed? pipe)
+            (eof-object? hash))
         (values #f #f)
         (let* ((pipe (open-pipe* OPEN_READ "nix-store" "--print-fixed-path"
-                                 "sha256" hash (basename url)))
+                                   "sha256" hash (basename url)))
                (path (read-line pipe)))
-          (if (eof-object? path)
+          (if (or (pipe-failed? pipe)
+                  (eof-object? path))
               (values #f #f)
               (values (string-trim-both hash) (string-trim-both path)))))))
 
@@ -478,8 +525,14 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
                          (throw 'ftp-error conn "LIST" code)))))
                 (else
                  (loop (read-line s)
-                       (let ((file (car (reverse (string-tokenize line)))))
-                         (cons file result)))))))
+                       (match (reverse (string-tokenize line))
+                         ((file _ ... permissions)
+                          (let ((type (case (string-ref permissions 0)
+                                        ((#\d) 'directory)
+                                        (else 'file))))
+                            (cons (list file type) result)))
+                         ((file _ ...)
+                          (cons (cons file 'file) result))))))))
       (lambda ()
         (close s)
         (let-values (((code message) (%ftp-listen (ftp-connection-socket conn))))
@@ -498,10 +551,11 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
     "automake17x"
     "automake19x"
     "automake110x"
-    "automake" ;; = 1.10.x
     "bison1875"
     "bison23"
-    "bison" ;; = 2.3
+    "bison24"
+    "bison" ;; = 2.4
+    "ccrtp_1_8"
     "emacs22"
     "emacsSnapshot"
     "gcc295"
@@ -513,10 +567,24 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
     "gcc43"
     "gcc44"
     "gcc45"
+    "gcc45_real"
+    "gcc45_realCross"
+    "gfortran45"
+    "gcj45"
+    "gcc46"
+    "gcc46_real"
+    "gcc46_realCross"
+    "gfortran46"
+    "gcj46"
     "glibc25"
     "glibc27"
     "glibc29"
-    "guile_1_9"
+    "guile_1_8"
+    "icecat3Xul" ;; redundant with `icecat'
+    "icecatWrapper"
+    "icecatXulrunner3"
+    "libzrtpcpp_1_6"
+    "parted_2_3"
     ))
 
 (define (gnu? package)
@@ -558,15 +626,18 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
 (define (ftp-server/directory project)
   (define quirks
     '(("commoncpp2"   "ftp.gnu.org"   "/gnu/commoncpp" #f)
+      ("ucommon"      "ftp.gnu.org"   "/gnu/commoncpp" #f)
+      ("libzrtpcpp"   "ftp.gnu.org"   "/gnu/ccrtp" #f)
+      ("libosip2"     "ftp.gnu.org"   "/gnu/osip" #f)
       ("libgcrypt"    "ftp.gnupg.org" "/gcrypt" #t)
       ("libgpg-error" "ftp.gnupg.org" "/gcrypt" #t)
       ("freefont-ttf" "ftp.gnu.org"   "/gnu/freefont" #f)
       ("gnupg"        "ftp.gnupg.org" "/gcrypt" #t)
       ("gnu-ghostscript" "ftp.gnu.org"  "/gnu/ghostscript" #f)
-      ("grub"         "alpha.gnu.org" "/gnu" #t)
       ("GNUnet"       "ftp.gnu.org" "/gnu/gnunet" #f)
-      ("mit-scheme"   "ftp.gnu.org" "/gnu/mit-scheme/stable.pkg")
+      ("mit-scheme"   "ftp.gnu.org" "/gnu/mit-scheme/stable.pkg" #f)
       ("icecat"       "ftp.gnu.org" "/gnu/gnuzilla" #f)
+      ("source-highlight" "ftp.gnu.org" "/gnu/src-highlite" #f)
       ("TeXmacs"      "ftp.texmacs.org" "/TeXmacs/targz" #f)))
 
   (let ((quirk (assoc project quirks)))
@@ -594,40 +665,65 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
   (or (assoc-ref quirks project) project))
 
 (define (releases project)
-  ;; TODO: Handle project release trees like that of IceCat and MyServer.
+  "Return the list of releases of PROJECT as a list of release name/directory
+pairs.  Example: (\"mit-scheme-9.0.1\" . \"/gnu/mit-scheme/stable.pkg/9.0.1\"). "
   ;; TODO: Parse something like fencepost.gnu.org:/gd/gnuorg/packages-ftp.
   (define release-rx
-    (make-regexp (string-append "^" project "-[0-9].*\\.tar\\.")))
+    (make-regexp (string-append "^" project
+                                "-([0-9]|[^-])*(-src)?\\.tar\\.")))
+
+  (define alpha-rx
+    (make-regexp "^.*-.*[0-9](-|~)?(alpha|beta|rc|cvs|svn|git)-?[0-9\\.]*\\.tar\\."))
+
+  (define (sans-extension tarball)
+    (let ((end (string-contains tarball ".tar")))
+      (substring tarball 0 end)))
 
-  (catch #t
+  (catch 'ftp-error
     (lambda ()
       (let-values (((server directory) (ftp-server/directory project)))
-        (let* ((conn  (ftp-open server))
-               (files (ftp-list conn directory)))
-          (ftp-close conn)
-          (map (lambda (tarball)
-                 (let ((end (string-contains tarball ".tar")))
-                   (substring tarball 0 end)))
-
-               ;; Filter out signatures, deltas, and files which are potentially
-               ;; not releases of PROJECT (e.g., in /gnu/guile, filter out
-               ;; guile-oops and guile-www).
-               (filter (lambda (file)
-                         (and (not (string-suffix? ".sig" file))
-                              (regexp-exec release-rx file)))
-                       files)))))
+        (define conn (ftp-open server))
+
+        (let loop ((directories (list directory))
+                   (result      '()))
+          (if (null? directories)
+              (begin
+                (ftp-close conn)
+                result)
+              (let* ((directory (car directories))
+                     (files     (ftp-list conn directory))
+                     (subdirs   (filter-map (lambda (file)
+                                              (match file
+                                                ((name 'directory . _) name)
+                                                (_ #f)))
+                                            files)))
+                (loop (append (map (cut string-append directory "/" <>)
+                                   subdirs)
+                              (cdr directories))
+                      (append
+                       ;; Filter out signatures, deltas, and files which are potentially
+                       ;; not releases of PROJECT (e.g., in /gnu/guile, filter out
+                       ;; guile-oops and guile-www; in mit-scheme, filter out
+                       ;; binaries).
+                       (filter-map (lambda (file)
+                                     (match file
+                                       ((file 'file . _)
+                                        (and (not (string-suffix? ".sig" file))
+                                             (regexp-exec release-rx file)
+                                             (not (regexp-exec alpha-rx file))
+                                             (let ((s (sans-extension file)))
+                                               (and (regexp-exec
+                                                     %package-name-rx s)
+                                                    (cons s directory)))))
+                                       (_ #f)))
+                                   files)
+                       result)))))))
     (lambda (key subr message . args)
       (format (current-error-port)
-              "failed to get release list for `~A': ~A ~A~%"
+              "failed to get release list for `~A': ~S ~S~%"
               project message args)
       '())))
 
-(define pointer->procedure
-  ;; Compatibility hack for Guile up to 1.9.12 included.
-  (if (defined? 'pointer->procedure)
-      pointer->procedure
-      make-foreign-function))
-
 (define version-string>?
   (let ((strverscmp
          (let ((sym (or (dynamic-func "strverscmp" (dynamic-link))
@@ -637,53 +733,64 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
       (> (strverscmp (string->pointer a) (string->pointer b)) 0))))
 
 (define (latest-release project)
-  ;; Return "FOO-X.Y" or #f.
+  "Return (\"FOO-X.Y\" . \"/bar/foo\") or #f."
   (let ((releases (releases project)))
     (and (not (null? releases))
          (fold (lambda (release latest)
-                 (if (version-string>? release latest)
+                 (if (version-string>? (car release) (car latest))
                      release
                      latest))
-               ""
+               '("" . "")
                releases))))
 
+(define %package-name-rx
+  ;; Regexp for a package name, e.g., "foo-X.Y".  Since TeXmacs uses
+  ;; "TeXmacs-X.Y-src", the `-src' suffix is allowed.
+  (make-regexp "^(.*)-(([0-9]|\\.)+)(-src)?"))
+
 (define (package/version name+version)
-  (let ((hyphen (string-rindex name+version #\-)))
-    (if (not hyphen)
+  "Return the package name and version number extracted from NAME+VERSION."
+  (let ((match (regexp-exec %package-name-rx name+version)))
+    (if (not match)
         (values name+version #f)
-        (let ((name    (substring name+version 0 hyphen))
-              (version (substring name+version (+ hyphen 1)
-                                  (string-length name+version))))
-          (values name version)))))
+        (values (match:substring match 1) (match:substring match 2)))))
 
 (define (file-extension file)
   (let ((dot (string-rindex file #\.)))
     (and dot (substring file (+ 1 dot) (string-length file)))))
 
 (define (packages-to-update gnu-packages)
+  (define (unpack latest)
+    (call-with-values (lambda ()
+                        (package/version (car latest)))
+      (lambda (name version)
+        (list name version (cdr latest)))))
+
   (fold (lambda (pkg result)
           (call-with-package pkg
             (lambda (attribute name+version location meta src)
               (let-values (((name old-version)
                             (package/version name+version)))
                 (let ((latest (latest-release (nixpkgs->gnu-name name))))
-                  (cond ((not latest)
-                         (format #t "~A [unknown latest version]~%"
-                                 name+version)
-                         result)
-                        ((string=? name+version latest)
+                  (if (not latest)
+                      (begin
+                        (format #t "~A [unknown latest version]~%"
+                                name+version)
+                        result)
+                      (match (unpack latest)
+                        ((_ (? (cut string=? old-version <>)) _)
                          (format #t "~A [up to date]~%" name+version)
                          result)
-                        (else
-                         (let-values (((project new-version)
-                                       (package/version latest))
-                                      ((old-name old-hash old-urls)
+                        ((project new-version directory)
+                         (let-values (((old-name old-hash old-urls)
                                        (src->values src)))
-                           (format #t "~A -> ~A [~A]~%" name+version latest
+                           (format #t "~A -> ~A [~A]~%"
+                                   name+version (car latest)
                                    (and (pair? old-urls) (car old-urls)))
                            (let* ((url      (and (pair? old-urls)
                                                  (car old-urls)))
-                                  (new-hash (fetch-gnu project new-version
+                                  (new-hash (fetch-gnu project directory
+                                                       new-version
                                                        (if url
                                                            (file-extension url)
                                                            "gz"))))
@@ -691,39 +798,38 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
                                          old-version old-hash
                                          new-version new-hash
                                          location)
-                                   result))))))))))
+                                   result)))))))))))
         '()
         gnu-packages))
 
-(define (fetch-gnu project version archive-type)
-  (let-values (((server directory)
-                (ftp-server/directory project)))
-    (let* ((base    (string-append project "-" version ".tar." archive-type))
-           (url     (string-append "ftp://" server "/" directory "/" base))
-           (sig     (string-append base ".sig"))
-           (sig-url (string-append url ".sig")))
-      (let-values (((hash path) (nix-prefetch-url url)))
-        (pk 'prefetch-url url hash path)
-        (and hash path
-             (begin
-               (false-if-exception (delete-file sig))
-               (system* "wget" sig-url)
-               (if (file-exists? sig)
-                   (let ((ret (system* "gpg" "--verify" sig path)))
-                     (false-if-exception (delete-file sig))
-                     (if (and ret (= 0 (status:exit-val ret)))
-                         hash
-                         (begin
-                           (format (current-error-port)
-                                   "signature verification failed for `~a'~%"
-                                   base)
-                           (format (current-error-port)
-                                   "(could be because the public key is not in your keyring)~%")
-                           #f)))
-                   (begin
-                     (format (current-error-port)
-                             "no signature for `~a'~%" base)
-                     hash))))))))
+(define (fetch-gnu project directory version archive-type)
+  (let* ((server  (ftp-server/directory project))
+         (base    (string-append project "-" version ".tar." archive-type))
+         (url     (string-append "ftp://" server "/" directory "/" base))
+         (sig     (string-append base ".sig"))
+         (sig-url (string-append url ".sig")))
+    (let-values (((hash path) (nix-prefetch-url url)))
+      (pk 'prefetch-url url hash path)
+      (and hash path
+           (begin
+             (false-if-exception (delete-file sig))
+             (system* "wget" sig-url)
+             (if (file-exists? sig)
+                 (let ((ret (system* "gpg" "--verify" sig path)))
+                   (false-if-exception (delete-file sig))
+                   (if (and ret (= 0 (status:exit-val ret)))
+                       hash
+                       (begin
+                         (format (current-error-port)
+                                 "signature verification failed for `~a'~%"
+                                 base)
+                         (format (current-error-port)
+                                 "(could be because the public key is not in your keyring)~%")
+                         #f)))
+                 (begin
+                   (format (current-error-port)
+                           "no signature for `~a'~%" base)
+                   hash)))))))
 
 
 ;;;
@@ -769,20 +875,31 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
 
 (define (gnupdate . args)
   ;; Assume Nixpkgs is under $NIXPKGS or ~/src/nixpkgs.
+
+  (define (nixpkgs->snix xml-file)
+    (format (current-error-port) "evaluating Nixpkgs...~%")
+    (let* ((home (getenv "HOME"))
+           (xml  (if xml-file
+                     (open-input-file xml-file)
+                     (open-nixpkgs (or (getenv "NIXPKGS")
+                                       (string-append home "/src/nixpkgs")))))
+           (snix (xml->snix xml)))
+      (if (not xml-file)
+          (let ((status (pipe-failed? xml)))
+            (if status
+                (begin
+                  (format (current-error-port) "`nix-instantiate' failed: ~A~%"
+                          status)
+                  (exit 1)))))
+      snix))
+
   (let* ((opts      (args-fold (cdr args) %options
                                (lambda (opt name arg result)
                                  (error "unrecognized option `~A'" name))
                                (lambda (operand result)
                                  (error "extraneous argument `~A'" operand))
                                '()))
-         (home      (getenv "HOME"))
-         (path      (or (getenv "NIXPKGS")
-                        (string-append home "/src/nixpkgs")))
-         (snix      (begin
-                      (format (current-error-port) "parsing XML...~%")
-                      (xml->snix
-                       (or (and=> (assoc-ref opts 'xml-file) open-input-file)
-                           (open-nixpkgs path)))))
+         (snix      (nixpkgs->snix (assoc-ref opts 'xml-file)))
          (packages  (match snix
                       (('snix _ ('attribute-set attributes))
                        attributes)
@@ -826,3 +943,7 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
                   (_ #f)))
               updates)
     #t))
+
+;;; Local Variables:
+;;; eval: (put 'call-with-package 'scheme-indent-function 1)
+;;; End:
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index e47a06e27621..d1e79bae0828 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   pname = "amarok";
-  version = "2.3.2";
+  version = "2.4.3";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "0dw2928vkd42h3d8nsb8i4xhp8qfj1zsfc1m9wrzrsxl0vd6j9c4";
+    sha256 = "0242psqci1b6wfhrrds14h4c4qin9s83cxk1259d9hqcsgn4ir3c";
   };
 
   QT_PLUGIN_PATH="${qtscriptgenerator}/lib/qt4/plugins";
diff --git a/pkgs/applications/audio/amarok/live.nix b/pkgs/applications/audio/amarok/live.nix
new file mode 100644
index 000000000000..e90ca8748274
--- /dev/null
+++ b/pkgs/applications/audio/amarok/live.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchgit, fetchgitrevision
+, lib, cmake, qt4, qtscriptgenerator, perl, gettext, curl
+, libxml2, mysql, taglib, taglib_extras, loudmouth , kdelibs, automoc4, phonon
+, strigi, soprano, qca2, libmtp, liblastfm, libgpod, pkgconfig
+, repository ? "git://git.kde.org/amarok"
+, branch ? "heads/master"
+, rev ? fetchgitrevision repository branch
+, src ? fetchgit {
+    url = repository;
+    rev = rev;
+  }
+}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  pname = "amarok";
+  version = "live";
+
+  inherit src;
+
+  QT_PLUGIN_PATH="${qtscriptgenerator}/lib/qt4/plugins";
+  buildInputs = [ cmake qt4 qtscriptgenerator perl stdenv.gcc.libc gettext curl
+    libxml2 mysql taglib taglib_extras loudmouth kdelibs automoc4 phonon strigi
+    soprano qca2 libmtp liblastfm libgpod pkgconfig ];
+
+  postInstall = ''
+    mkdir -p $out/nix-support
+    echo ${qtscriptgenerator} > $out/nix-support/propagated-user-env-packages
+  '';
+  meta = {
+    description = "Popular music player for KDE";
+    license = "GPL";
+    homepage = http://amarok.kde.org;
+    inherit (kdelibs.meta) maintainers;
+  };
+}
diff --git a/pkgs/applications/audio/ardour/ardour3.nix b/pkgs/applications/audio/ardour/ardour3.nix
new file mode 100644
index 000000000000..dea27cb6a552
--- /dev/null
+++ b/pkgs/applications/audio/ardour/ardour3.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchsvn, alsaLib, aubio, boost, cairomm, curl, fftw,
+fftwSinglePrec, flac, glib, glibmm, gtk, gtkmm, jackaudio,
+libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf,
+librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile,
+libusb, libuuid, libxml2, libxslt, pango, perl, pkgconfig, python }:
+
+let
+  rev = "9942";
+in
+
+stdenv.mkDerivation {
+  name = "ardour3-svn-${rev}";
+
+  src = fetchsvn {
+    url = http://subversion.ardour.org/svn/ardour2/branches/3.0;
+    inherit rev;
+    sha256 = "5f463e5a67bcb1ee6b4d24c25307419ea14ce52130819054b775e377c31a0664";
+  };
+
+  buildInputs = [ alsaLib aubio boost cairomm curl fftw fftwSinglePrec
+    flac glib glibmm gtk gtkmm jackaudio libgnomecanvas
+    libgnomecanvasmm liblo libmad libogg librdf librdf_raptor
+    librdf_rasqal libsamplerate libsigcxx libsndfile libusb libuuid
+    libxml2 libxslt pango perl pkgconfig python ];
+
+  patchPhase = ''
+    printf '#include "ardour/svn_revision.h"\nnamespace ARDOUR { const char* svn_revision = \"${rev}\"; }\n' > libs/ardour/svn_revision.cc
+    sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
+    sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl
+  '';
+
+  configurePhase = "python waf configure --prefix=$out";
+
+  buildPhase = "python waf";
+
+  installPhase = "python waf install";
+
+  meta = with stdenv.lib; {
+    description = "Multi-track hard disk recording software";
+    longDescription = ''
+      Also read "The importance of Paying Something" on their homepage, please!
+    '';
+    homepage = http://ardour.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index 66db7efa3e6e..5124ff5d6dd9 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -4,20 +4,20 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "audacious-2.4.0";
+  name = "audacious-3.0";
   
   src = fetchurl {
-    url = "http://distfiles.atheme.org/${name}.tgz";
-    sha256 = "1n6mfy2j7lqv5d9r92n1frbs7acplfip5vssqp0j9z5qkidx98pj";
+    url = "http://distfiles.atheme.org/${name}.tar.gz";
+    sha256 = "0kj78hgf73fmbm6y3idir2kavbnnlv0jb9ka0pcsb12sxb994s68";
   };
 
   pluginsSrc = fetchurl {
-    url = "http://distfiles.atheme.org/audacious-plugins-2.4.0.tgz";
-    sha256 = "04rsfh7c54ffz6qavl3li5haa7jnaa42m4p1w0s4qpiiw3pvbaf5";
+    url = "http://distfiles.atheme.org/audacious-plugins-3.0.tar.gz";
+    sha256 = "0hhxk1mxnnrb1shshpf1nf8mqpc9q1qpsljwn4jzylcnwy6pq4rw";
   };
   
   # `--enable-amidiplug' is to prevent configure from looking in /proc/asound.
-  configureFlags = "--enable-amidiplug";
+  configureFlags = "--enable-amidiplug --disable-oss";
   
   buildInputs =
     [ gettext pkgconfig glib gtk libmowgli libmcs libxml2 dbus_glib
@@ -46,6 +46,8 @@ stdenv.mkDerivation rec {
       )
     '';
 
+  enableParallelBuilding = true;
+
   meta = {
     description = "Audacious, a media player forked from the Beep Media Player, which was itself an XMMS fork";
     homepage = http://audacious-media-player.org/;
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 8d72402866f6..f2e2a130c0ac 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -1,22 +1,31 @@
 { stdenv, fetchurl, wxGTK, pkgconfig, gettext, gtk, glib, zlib, perl, intltool,
-  libogg, libvorbis, libmad
+  libogg, libvorbis, libmad, alsaLib, libsndfile, libsamplerate, flac, lame,
+  expat, id3lib, ffmpeg, portaudio
   }:
 
-stdenv.mkDerivation {
-  name = "audacity-1.3.7";
+stdenv.mkDerivation rec {
+  version = "1.3.13";
+  name = "audacity-${version}";
 
   NIX_CFLAGS_COMPILE = "-fPIC -lgtk-x11-2.0 -lglib-2.0 -lgobject-2.0 -lz";
 
   src = fetchurl {
-    url = mirror://sourceforge/audacity/audacity-fullsrc-1.3.7.tar.bz2;
-    sha256 = "0b4arafpdyjjk52l6n7aw518hzm65iv9w5g39jqr2bmvn6a9qivi";
+    url = "mirror://sourceforge/audacity/audacity-minsrc-${version}-beta.tar.bz2";
+    sha256 = "4c2eda638e16e16dfddd202e86ccbe1d170b04c26cfb2c12ffcba0b79e7e1e83";
   };
   buildInputs = [ wxGTK pkgconfig gettext gtk glib zlib intltool perl 
-    libogg libvorbis libmad];
+    libogg libvorbis libmad alsaLib libsndfile libsamplerate flac lame
+    expat id3lib ffmpeg portaudio];
+
+  configureFlags = [
+  ];
+
+  dontDisableStatic = true;
 
   meta = {
     description = "Sound editor with graphical UI";
     homepage = http://audacity.sourceforge.net;
     license = "GPLv2+";
+    platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/audio/bmp-plugins/musepack/builder.sh b/pkgs/applications/audio/bmp-plugins/musepack/builder.sh
deleted file mode 100644
index 4b78abf73ac1..000000000000
--- a/pkgs/applications/audio/bmp-plugins/musepack/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-source $stdenv/setup
-
-ensureDir "$out/lib/bmp/Input"
-installFlags="install libdir=$out/lib/bmp/Input"
-
-genericBuild
diff --git a/pkgs/applications/audio/bmp-plugins/musepack/default.nix b/pkgs/applications/audio/bmp-plugins/musepack/default.nix
deleted file mode 100644
index 141476642dee..000000000000
--- a/pkgs/applications/audio/bmp-plugins/musepack/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{stdenv, fetchurl, pkgconfig, bmp, libmpcdec, taglib}:
-
-stdenv.mkDerivation {
-  name = "bmp-plugin-musepack-1.2";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://files2.musepack.net/linux/plugins/bmp-musepack-1.2.tar.bz2;
-    md5 = "5fe0c9d341ca37d05c780a478f829a5f";
-  };
-  buildInputs = [pkgconfig bmp libmpcdec taglib];
-}
diff --git a/pkgs/applications/audio/bmp-plugins/wma/default.nix b/pkgs/applications/audio/bmp-plugins/wma/default.nix
deleted file mode 100644
index 617db6232a7d..000000000000
--- a/pkgs/applications/audio/bmp-plugins/wma/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{stdenv, fetchurl, pkgconfig, bmp}:
-
-stdenv.mkDerivation {
-  name = "bmp-plugin-wma-1.0.5";
-  
-  src = fetchurl {
-    url = http://mcmcc.bat.ru/xmms-wma/xmms-wma-1.0.5.tar.bz2;
-    md5 = "5d62a0f969617aeb40096362c7a8a506";
-  };
-  
-  buildInputs = [pkgconfig bmp];
-
-  buildFlags = "-f Makefile.bmp";
-  
-  installPhase = ''
-    ensureDir "$out/lib/bmp/Input"
-    cp libwma.so "$out/lib/bmp/Input"
-  '';
-}
diff --git a/pkgs/applications/audio/bmp/default.nix b/pkgs/applications/audio/bmp/default.nix
deleted file mode 100644
index bb3c9d6d43b6..000000000000
--- a/pkgs/applications/audio/bmp/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, alsaLib, esound, libogg, libvorbis, id3lib
-, glib, gtk, libglade
-}:
-
-stdenv.mkDerivation {
-  name = "bmp-0.9.7.1";
-  src = fetchurl {
-    url = mirror://sourceforge/beepmp/bmp-0.9.7.1.tar.gz;
-    md5 = "c25d5a8d49cc5851d13d525a20023c4c";
-  };
-
-  buildInputs = [
-    pkgconfig alsaLib esound libogg libvorbis id3lib libglade
-  ];
-
-  meta = {
-    description = "Beep Media Player, an XMMS fork";
-  };
-
-  propagatedBuildInputs = [glib gtk];
-}
diff --git a/pkgs/applications/audio/cdparanoia/default.nix b/pkgs/applications/audio/cdparanoia/default.nix
index 6fa69beee20e..6bd9e0b376e9 100644
--- a/pkgs/applications/audio/cdparanoia/default.nix
+++ b/pkgs/applications/audio/cdparanoia/default.nix
@@ -1,15 +1,15 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "cdparanoia-III-alpha9.8";
+stdenv.mkDerivation rec {
+  name = "cdparanoia-III-10.2";
+  
   src = fetchurl {
-    url = http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-alpha9.8.src.tgz;
-    md5 = "7218e778b5970a86c958e597f952f193";
+    url = "http://downloads.xiph.org/releases/cdparanoia/${name}.src.tgz";
+    sha256 = "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80";
   };
   
-  patches = [./fix.patch];
-
   meta = {
     homepage = http://xiph.org/paranoia;
+    description = "A tool and library for reading digital audio from CDs";
   };
 }
diff --git a/pkgs/applications/audio/cdparanoia/fix.patch b/pkgs/applications/audio/cdparanoia/fix.patch
deleted file mode 100644
index 4a1c526c7d8c..000000000000
--- a/pkgs/applications/audio/cdparanoia/fix.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-*** cdparanoia-III-alpha9.8/interface/utils.h	Thu Apr 20 00:41:04 2000
---- cdparanoia-III-alpha9.8-old/interface/utils.h	Wed Jan 19 21:44:08 2005
-***************
-*** 110,117 ****
-      case CDDA_MESSAGE_LOGIT:
-        d->errorbuf=catstring(d->errorbuf,s);
-        break;
--     case CDDA_MESSAGE_FORGETIT:
--     default:
-      }
-    }
-  }
---- 110,115 ----
-***************
-*** 125,132 ****
-      case CDDA_MESSAGE_LOGIT:
-        d->messagebuf=catstring(d->messagebuf,s);
-        break;
--     case CDDA_MESSAGE_FORGETIT:
--     default:
-      }
-    }
-  }
---- 123,128 ----
-***************
-*** 167,174 ****
-  	}
-        }
-        break;
--     case CDDA_MESSAGE_FORGETIT:
--     default:
-      }
-    }
-    if(malloced)free(buffer);
---- 163,168 ----
-***************
-*** 203,210 ****
-  	if(!malloced)*messages=catstring(*messages,"\n");
-  	}
-        break;
--     case CDDA_MESSAGE_FORGETIT:
--     default:
-      }
-    }
-    if(malloced)free(buffer);
---- 197,202 ----
diff --git a/pkgs/applications/audio/gmu/default.nix b/pkgs/applications/audio/gmu/default.nix
new file mode 100644
index 000000000000..bdda1c6d8d96
--- /dev/null
+++ b/pkgs/applications/audio/gmu/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, SDL, SDL_gfx, SDL_image, tremor, flac, mpg123, libmikmod
+, speex
+, keymap ? "newdefault"
+, conf ? "unknown"
+}:
+
+stdenv.mkDerivation rec {
+  name = "gmu-0.7.2";
+  
+  src = fetchurl {
+    url = http://wejp.k.vu/files/gmu-0.7.2.tar.gz;
+    sha256 = "0gvhwhhlj64lc425wqch4g6v59ldd5i3rxll3zdcrdgk2vkh8nys";
+  };
+
+  buildInputs = [ SDL SDL_gfx SDL_image tremor flac mpg123 libmikmod speex ];
+
+  NIX_LDFLAGS = "-lgcc_s";
+
+  preBuild = ''
+    makeFlags="$makeFlags PREFIX=$out"
+  '';
+
+  postInstall = ''
+    cp ${keymap}.keymap $out/share/gmu/default.keymap
+    cp gmuinput.${conf}.conf $out/share/gmu/gmuinput.conf
+    ensureDir $out/etc/gmu
+    cp gmu.${conf}.conf $out/etc/gmu/gmu.conf
+  '';
+
+  meta = {
+    homepage = http://wejp.k.vu/projects/gmu;
+    description = "Open source music player for portable gaming consoles and handhelds";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
new file mode 100644
index 000000000000..765f5559914e
--- /dev/null
+++ b/pkgs/applications/audio/hydrogen/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, 
+  alsaLib, boost, glib, jackaudio, libarchive, liblrdf, libsndfile,
+  pkgconfig, qt4, scons, subversion }:
+
+stdenv.mkDerivation rec {
+  version = "0.9.5";
+  name = "hydrogen-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/hydrogen/hydrogen-${version}.tar.gz";
+    sha256 = "1hyri49va2ss26skd6p9swkx0kbr7ggifbahkrcfgj8yj7pp6g4n";
+  };
+
+  buildInputs = [ 
+    alsaLib boost glib jackaudio libarchive liblrdf libsndfile
+    pkgconfig qt4 scons subversion 
+  ];
+
+  patches = [ ./scons-env.patch ];
+
+  # why doesn't scons find librdf?
+  buildPhase = ''
+    scons prefix=$out libarchive=1 lrdf=0 install
+  '';
+
+  installPhase = ":";
+
+  meta = with stdenv.lib; {
+    description = "Advanced drum machine";
+    homepage = http://www.hydrogen-music.org;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/hydrogen/scons-env.patch b/pkgs/applications/audio/hydrogen/scons-env.patch
new file mode 100644
index 000000000000..4ffa1f91e91d
--- /dev/null
+++ b/pkgs/applications/audio/hydrogen/scons-env.patch
@@ -0,0 +1,20 @@
+--- hydrogen-0.9.5/Sconstruct	2011-03-15 13:22:35.000000000 +0100
++++ hydrogen-0.9.5/Sconstruct	2011-04-17 16:06:54.000000000 +0200
+@@ -178,7 +178,7 @@
+ 
+ 	includes.append( "libs/hydrogen/include" )
+ 	
+-	env = Environment( options = opts ) 
++	env = Environment( options = opts, ENV = os.environ ) 
+ 
+ 
+ 	#location of qt4.py
+@@ -379,7 +379,7 @@
+ 
+ includes, a , b = get_platform_flags( opts )
+ 
+-env = Environment(options = opts, CPPPATH = includes)
++env = Environment(options = opts, ENV = os.environ)
+ 
+ 
+ Help(opts.GenerateHelpText(env))
diff --git a/pkgs/applications/audio/lash/default.nix b/pkgs/applications/audio/lash/default.nix
new file mode 100644
index 000000000000..3bbc9e4277b4
--- /dev/null
+++ b/pkgs/applications/audio/lash/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, alsaLib, gtk, jackaudio, libuuid, libxml2
+, makeWrapper, pkgconfig, readline }:
+
+assert libuuid != null;
+
+stdenv.mkDerivation  rec {
+  name = "lash-${version}";
+  version = "0.5.4";
+
+  src = fetchurl {
+    url = "mirror://savannah/lash/${name}.tar.gz";
+    sha256 = "05kc4brcx8mncai0rj2gz4s4bsrsy9q8xlnaddf75i0m8jl7snhh";
+  };
+
+  patches = [ ./socket.patch ];
+
+  buildInputs = [ alsaLib gtk jackaudio libuuid libxml2 makeWrapper
+    pkgconfig readline ];
+
+  postInstall = ''
+    for i in lash_control lash_panel
+      do wrapProgram "$out/bin/$i" --prefix LD_LIBRARY_PATH ":" "${libuuid}/lib"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "LASH Audio Session Handler";
+    longDescription = ''
+      Session management system for GNU/Linux audio applications.
+    '';
+    homepage = http://www.nongnu.org/lash;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/lash/socket.patch b/pkgs/applications/audio/lash/socket.patch
new file mode 100644
index 000000000000..c28259214443
--- /dev/null
+++ b/pkgs/applications/audio/lash/socket.patch
@@ -0,0 +1,16 @@
+Via http://bugs.gentoo.org/show_bug.cgi?id=229603
+
+--- lash-0.5.4/liblash/socket.c	2008-06-26 15:20:44.227064193 +0200
++++ lash-0.5.4/liblash/socket.c	2008-06-26 15:21:18.245063129 +0200
+@@ -20,6 +20,11 @@ 
+ 
+ #define _POSIX_SOURCE /* addrinfo */
+ 
++#ifdef LASH_BUILD
++#define _GNU_SOURCE
++#include "config.h"
++#endif /* LASH_BUILD */
++
+ #include <stdint.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix
new file mode 100644
index 000000000000..e93f6ffc584d
--- /dev/null
+++ b/pkgs/applications/audio/lingot/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, alsaLib, libglade }:
+
+stdenv.mkDerivation {
+  name = "lingot-0.9.0";
+
+  src = fetchurl {
+    url = http://download.savannah.gnu.org/releases/lingot/lingot-0.9.0.tar.gz;
+    sha256 = "07z129lp8m4sz608q409wb11c639w7cbn497r7bscgg08p6c07xb";
+  };
+
+  buildInputs = [ pkgconfig intltool gtk alsaLib libglade ];
+
+  configureFlags = "--disable-jack";
+
+  meta = {
+    description = "Not a Guitar-Only tuner";
+    homepage = http://www.nongnu.org/lingot/;
+    license = "GPLv2+";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [viric];
+  };
+}
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
new file mode 100644
index 000000000000..8cdb99412f44
--- /dev/null
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, SDL, alsaLib, cmake, fftw, jackaudio, libogg,
+libsamplerate, libsndfile, pkgconfig, pulseaudio, qt4 }:
+
+stdenv.mkDerivation  rec {
+  name = "lmms-${version}";
+  version = "0.4.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lmms/${name}.tar.bz2";
+    sha256 = "035cqmxcbr9ipnicdv5l7h05q2hqbavxkbaxyq06ppnv2y7fxwrb";
+  };
+
+  buildInputs = [ SDL alsaLib cmake fftw jackaudio libogg
+    libsamplerate libsndfile pkgconfig pulseaudio qt4 ];
+
+  meta = with stdenv.lib; {
+    description = "Linux MultiMedia Studio";
+    homepage = "http://lmms.sourceforge.net";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix
index 23cc92132b95..4ca0cc8f8476 100644
--- a/pkgs/applications/audio/mpg321/default.nix
+++ b/pkgs/applications/audio/mpg321/default.nix
@@ -1,17 +1,20 @@
 {stdenv, fetchurl, libao, libmad, libid3tag, zlib}:
 
-stdenv.mkDerivation {
-  name = "mpg321-0.2.10";
+stdenv.mkDerivation rec {
+  name = "mpg321-0.2.13-2";
+
   src = fetchurl {
-    url = mirror://sourceforge/mpg321/mpg321-0.2.10.tar.gz;
-    sha256 = "db0c299592b8f1f704f41bd3fc3a2bf138658108588d51af61638c551af1b0d4";
+    url = "mirror://sourceforge/mpg321/0.2.13/${name}.tar.gz";
+    sha256 = "0zx9xyr97frlyrwyk2msm9h1sn2b84vqaxcy5drbzcd2n585lwlx";
   };
 
   buildInputs = [libao libid3tag libmad zlib];
 
   meta = {
-    description = "Command-line MP3 player.";
+    description = "mpg321, a command-line MP3 player";
     homepage = http://mpg321.sourceforge.net/;
     license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/applications/audio/puredata/default.nix b/pkgs/applications/audio/puredata/default.nix
new file mode 100644
index 000000000000..e2563b8fe06f
--- /dev/null
+++ b/pkgs/applications/audio/puredata/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, alsaLib, autoconf, automake, fftw, gettext, glib,
+libX11, libtool, tcl, tk }:
+
+stdenv.mkDerivation  rec {
+  name = "puredata-${version}";
+  version = "0.43-0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pure-data/pd-${version}.src.tar.gz";
+    sha256 = "1qfq7x8vj12kr0cdrnbvmxfhc03flicc6vcc8bz6hwrrakwciyz2";
+  };
+
+  buildInputs = [ alsaLib autoconf automake fftw gettext glib libX11
+    libtool tcl tk ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = ''Real-time graphical programming environment for
+                    audio, video, and graphical processing'';
+    homepage = http://puredata.info;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index dbe32f862f26..4cdea1a21ce3 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchurl, qt4, alsaLib, jackaudio }:
+{ stdenv, fetchurl, qt4, alsaLib, jackaudio, dbus }:
 
-stdenv.mkDerivation {
-  name = "qjackctl-0.3.3";
+stdenv.mkDerivation rec {
+  version = "0.3.7";
+  name = "qjackctl-${version}";
 
   # some dependencies such as killall have to be installed additionally
 
   src = fetchurl {
-    url = http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.3.tar.gz;
-    sha256 = "1z9v208fs79ka6ni3p5v5xb0k5y1wqqm2a9cf903387b9p3fhpxj";
+    url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
+    sha256 = "1gynym21d8d4d38qyl817qg0v8360brcpga4wcdapccbgpaz3c28";
   };
 
-  buildInputs = [ qt4 alsaLib jackaudio ];
+  buildInputs = [ qt4 alsaLib jackaudio dbus ];
 
-  meta = { 
+  meta = {
     description = "qt jackd control gui tool";
     homepage = http://qjackctl.sourceforge.net/;
     license = "GPL";
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix
new file mode 100644
index 000000000000..7634ecc01da2
--- /dev/null
+++ b/pkgs/applications/audio/qtractor/default.nix
@@ -0,0 +1,25 @@
+{ alsaLib, autoconf, automake, dssi, fetchurl, gtk, jackaudio,
+ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile,
+libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.0";
+  name = "qtractor-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qtractor/${name}.tar.gz";
+    sha256 = "de5991d2d29b2713d73a90ab29efc24db0be68d8e9ca328062d53d229e902e89";
+  };
+
+  buildInputs = [ alsaLib autoconf automake dssi gtk jackaudio ladspaH
+    ladspaPlugins liblo libmad libsamplerate libsndfile libtool
+    libvorbis pkgconfig qt4 rubberband ];
+
+  meta = with stdenv.lib; {
+    description = "Audio/MIDI multi-track sequencer";
+    homepage = http://qtractor.sourceforge.net;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/rakarrack/default.nix b/pkgs/applications/audio/rakarrack/default.nix
new file mode 100644
index 000000000000..87ab88079ec2
--- /dev/null
+++ b/pkgs/applications/audio/rakarrack/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, alsaLib, alsaUtils, fltk, jackaudio, libXft,
+libXpm, libjpeg, libpng, libsamplerate, libsndfile, zlib }:
+
+stdenv.mkDerivation  rec {
+  name = "rakarrack-${version}";
+  version = "0.6.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/rakarrack/${name}.tar.bz2";
+    sha256 = "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn";
+  };
+
+  buildInputs = [ alsaLib alsaUtils fltk jackaudio libXft libXpm libjpeg
+    libpng libsamplerate libsndfile zlib ];
+
+  meta = with stdenv.lib; {
+    description = "multi-effects processor emulating a guitar effects pedalboard";
+    homepage = http://rakarrack.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/seq24/default.nix b/pkgs/applications/audio/seq24/default.nix
new file mode 100644
index 000000000000..9f168f54eafd
--- /dev/null
+++ b/pkgs/applications/audio/seq24/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, alsaLib, gtkmm, jackaudio, pkgconfig }:
+
+stdenv.mkDerivation  rec {
+  name = "seq24-${version}";
+  version = "0.9.2";
+
+  src = fetchurl {
+    url = "http://launchpad.net/seq24/trunk/${version}/+download/${name}.tar.gz";
+    sha256 = "07n80zj95i80vjmsflnlbqx5vv90qmp5f6a0zap8d30849l4y258";
+  };
+
+  buildInputs = [ alsaLib gtkmm jackaudio pkgconfig ];
+
+  meta = with stdenv.lib; {
+    description = "minimal loop based midi sequencer";
+    homepage = "http://www.filter24.org/seq24";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix
new file mode 100644
index 000000000000..d3ac4c4168c8
--- /dev/null
+++ b/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -0,0 +1,53 @@
+# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
+
+{ stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo,
+libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate,
+libsndfile, makeWrapper, pulseaudio, qt4, redland, rubberband, vampSDK
+}:
+
+stdenv.mkDerivation {
+  name = "sonic-visualiser-1.8";
+
+  src = fetchurl {
+    url = http://downloads.sourceforge.net/sv1/sonic-visualiser-1.8.tar.gz;
+    sha256 = "16ik6q9n92wljvnqcv7hyzb9v3yp3ixxp6df9kasf53fii973dh7";
+  };
+
+  buildInputs =
+    [ libsndfile qt4 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband
+      libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
+      # optional
+      jackaudio
+      # portaudio
+      pulseaudio
+      libmad
+      libogg # ?
+      # fishsound
+      liblo
+      libX11
+      makeWrapper
+    ];
+
+  buildPhase = ''
+    for i in sonic-visualiser svapp svcore svgui; 
+      do cd $i && qmake -makefile PREFIX=$out && cd ..;
+    done
+    make
+  '';
+
+  installPhase = ''
+    ensureDir $out/{bin,share/sonic-visualiser}
+    cp sonic-visualiser/sonic-visualiser $out/bin
+    cp -r sonic-visualiser/samples $out/share/sonic-visualiser/samples
+    wrapProgram $out/bin/sonic-visualiser --prefix LD_LIBRARY_PATH : ${libX11}/lib
+  '';
+
+  meta = { 
+    description = "View and analyse contents of music audio files";
+    homepage = http://www.sonicvisualiser.org/;
+    license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.marcweber 
+      stdenv.lib.maintainers.goibhniu ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/sonic-visualizer/default.nix b/pkgs/applications/audio/sonic-visualizer/default.nix
deleted file mode 100644
index 6e40baa1c360..000000000000
--- a/pkgs/applications/audio/sonic-visualizer/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
-
-{ stdenv, fetchurl, libsndfile, qt, fftw, librdf, rubberband
-, libsamplerate, vampSDK, alsaLib, librdf_raptor, librdf_rasqal
-, redland, jackaudio, pulseaudio, libmad, libogg, liblo, bzip2 }:
-
-stdenv.mkDerivation {
-  name = "sonic-visualizer-1.6";
-
-  src = fetchurl {
-    url = http://downloads.sourceforge.net/sv1/sonic-visualiser-1.6.tar.bz2;
-    sha256 = "1dbqqa7anii2jnjpfwm4sr83nn4bwmz68xw4n6clycsz5iqk52f5";
-  };
-
-  buildInputs =
-    [ libsndfile qt fftw /* should be fftw3f ??*/ bzip2 librdf rubberband
-      libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
-      # optional
-      jackaudio
-      # portaudio
-      pulseaudio
-      libmad
-      libogg # ?
-      # fishsound
-      liblo
-    ];
-
-  buildPhase = ''
-    qmake -makefile PREFIX=$out && make
-  '';
-
-  installPhase = ''
-    ensureDir $out/{bin,share/sv}
-    cp sv/sonic-visualiser $out/bin
-    cp -r sv/samples $out/share/sv/samples
-  '';
-
-  meta = { 
-    description = "View and analyse contents of music audio files";
-    homepage = http://www.sonicvisualiser.org/;
-    license = "GPLv2";
-    maintainers = [ stdenv.lib.maintainers.marcweber ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/specimen/default.nix b/pkgs/applications/audio/specimen/default.nix
new file mode 100644
index 000000000000..31b17b70ff30
--- /dev/null
+++ b/pkgs/applications/audio/specimen/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchsvn, alsaLib, autoconf, automake, gtk, jackaudio,
+libgnomecanvas, libsamplerate, libsndfile, libtool, libxml2, phat,
+pkgconfig }:
+
+stdenv.mkDerivation  rec {
+  name = "specimen-svn-89";
+
+  # The released version won't compile with newer versions of jack
+  src = fetchsvn {
+    url = http://zhevny.com/svn/specimen/trunk;
+    rev = 89;
+    sha256 = "1i24nchw14cbjv7kmzs7cvmis2xv4r7bxghi8d6gq5lprwk8xydf";
+  };
+
+  preConfigure = "sh autogen.sh";
+
+  buildInputs = [ alsaLib autoconf automake gtk jackaudio
+    libgnomecanvas libsamplerate libsndfile libtool libxml2 phat
+    pkgconfig ];
+
+  meta = with stdenv.lib; {
+    description = "MIDI controllable audio sampler";
+    homepage = http://zhevny.com/specimen/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
new file mode 100644
index 000000000000..eb783e60fc5f
--- /dev/null
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -0,0 +1,63 @@
+{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper }:
+
+assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
+
+let version = "0.5.2.84"; in
+
+stdenv.mkDerivation {
+  name = "spotify-${version}";
+
+  src =
+    if stdenv.system == "i686-linux" then 
+      fetchurl {
+        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.g6d797eb-1_i386.deb";
+        sha256 = "0l1pvvkkssng0yc7zlgxr39jx3cs6i71sspmm4xb84y1bl045pas";
+      }
+    else if stdenv.system == "x86_64-linux" then 
+      fetchurl {
+        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.g6d797eb-1_amd64.deb";
+        sha256 = "1wi1z3dyzjz13mkb0r2ilm914p8sg06923sv872nclrl102qbbni";
+      }
+    else throw "Spotify not supported on this platform.";
+
+  buildInputs = [ dpkg makeWrapper ];
+
+  unpackPhase = "true";
+  
+  installPhase =
+    ''
+      mkdir -p $out
+      dpkg-deb -x $src $out
+      mv $out/usr/* $out/
+      rmdir $out/usr
+
+      patchelf \
+        --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+        --set-rpath ${stdenv.lib.makeLibraryPath [ xlibs.libXScrnSaver xlibs.libX11 qt4 alsaLib stdenv.gcc.gcc ]}:${stdenv.gcc.gcc}/lib64 \
+        $out/bin/spotify
+
+      preload=$out/libexec/spotify/libpreload.so
+      mkdir -p $out/libexec/spotify
+      gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
+
+      wrapProgram $out/bin/spotify --set LD_PRELOAD $preload
+    ''; # */
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  meta = {
+    homepage = https://www.spotify.com/download/previews/;
+    description = "Spotify for Linux allows you to play music from the Spotify music service";
+    license = "unfree";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+
+    longDescription =
+      ''
+        Spotify is a digital music streaming service.  This package
+        provides the Spotify client for Linux.  At present, it does not
+        work with free Spotify accounts; it requires a Premium or
+        Unlimited account.
+      '';
+  };
+}
diff --git a/pkgs/applications/audio/spotify/preload.c b/pkgs/applications/audio/spotify/preload.c
new file mode 100644
index 000000000000..42d482c21e43
--- /dev/null
+++ b/pkgs/applications/audio/spotify/preload.c
@@ -0,0 +1,66 @@
+/* Spotify looks for its theme data in /usr/share/spotify/theme.  This
+   LD_PRELOAD library intercepts open() and stat() calls to redirect
+   them to the corresponding location in $out. */
+
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <limits.h>
+
+char themeDir [] = "/usr/share/spotify/theme";
+char realThemeDir [] = OUT "/share/spotify/theme";
+
+const char * rewrite(const char * path, char * buf)
+{
+    if (strncmp(path, themeDir, sizeof(themeDir) - 1) != 0) return path;
+    if (snprintf(buf, PATH_MAX, "%s%s", realThemeDir, path + sizeof(themeDir) - 1) >= PATH_MAX)
+        abort();
+    return buf;
+}
+
+int open(const char *path, int flags, ...)
+{
+    char buf[PATH_MAX];
+    int (*_open) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open");
+    mode_t mode = 0;
+    if (flags & O_CREAT) {
+        va_list ap;
+        va_start(ap, flags);
+        mode = va_arg(ap, mode_t);
+        va_end(ap);
+    }
+    return _open(rewrite(path, buf), flags, mode);
+}
+
+int open64(const char *path, int flags, ...)
+{
+    char buf[PATH_MAX];
+    int (*_open64) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open64");
+    mode_t mode = 0;
+    if (flags & O_CREAT) {
+        va_list ap;
+        va_start(ap, flags);
+        mode = va_arg(ap, mode_t);
+        va_end(ap);
+    }
+    return _open64(rewrite(path, buf), flags, mode);
+}
+
+int __xstat64(int ver, const char *path, struct stat64 *st)
+{
+    char buf[PATH_MAX];
+    int (*___xstat64) (int ver, const char *, struct stat64 *) = dlsym(RTLD_NEXT, "__xstat64");
+    return ___xstat64(ver, rewrite(path, buf), st);
+}
+
+int access(const char *path, int mode)
+{
+    char buf[PATH_MAX];
+    int (*_access) (const char *path, int mode) = dlsym(RTLD_NEXT, "access");
+    return _access(rewrite(path, buf), mode);
+}
diff --git a/pkgs/applications/audio/vkeybd/default.nix b/pkgs/applications/audio/vkeybd/default.nix
new file mode 100644
index 000000000000..b751e4da33ed
--- /dev/null
+++ b/pkgs/applications/audio/vkeybd/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, alsaLib, libX11, makeWrapper, tcl, tk }:
+
+stdenv.mkDerivation  rec {
+  name = "vkeybd-${version}";
+  version = "0.1.18d";
+
+  src = fetchurl {
+    url = "ftp://ftp.suse.com/pub/people/tiwai/vkeybd/${name}.tar.bz2";
+    sha256 = "0107b5j1gf7dwp7qb4w2snj4bqiyps53d66qzl2rwj4jfpakws5a";
+  };
+
+  buildInputs = [ alsaLib libX11 makeWrapper tcl tk ];
+
+  configurePhase = ''
+    ensureDir $out/bin
+    sed -e "s@/usr/local@$out@" -i Makefile
+  '';
+
+  makeFlags = [ "TKLIB=-ltk8.5" "TCLLIB=-ltcl8.5" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/vkeybd --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Virtual MIDI keyboard";
+    homepage = http://www.alsa-project.org/~tiwai/alsa.html;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/vorbis-tools/default.nix b/pkgs/applications/audio/vorbis-tools/default.nix
index 91d9ba00a0f5..5db7cc30cf8c 100644
--- a/pkgs/applications/audio/vorbis-tools/default.nix
+++ b/pkgs/applications/audio/vorbis-tools/default.nix
@@ -2,18 +2,14 @@
 , speex, flac}:
 
 stdenv.mkDerivation {
-  name = "vorbis-tools-1.1.1";
+  name = "vorbis-tools-1.4.0";
   src = fetchurl {
-    url = http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.1.1.tar.gz;
-    sha256 = "617b4aa69e600c215b34fa3fd5764bc1d9d205d9d7d9fe7812bde7ec956fcaad";
+    url = http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz;
+    sha256 = "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3";
   };
 
-  # FIXME: Vorbis-tools expects `libOggFLAC', but this library was
-  # merged with `libFLAC' as of FLAC 1.1.3.
   buildInputs = [ libogg libvorbis libao pkgconfig curl speex glibc flac ];
 
-  patches = [ ./ogg123-curlopt-mute.patch ];
-
   meta = {
     longDescription = ''
       A set of command-line tools to manipulate Ogg Vorbis audio
diff --git a/pkgs/applications/audio/vorbis-tools/ogg123-curlopt-mute.patch b/pkgs/applications/audio/vorbis-tools/ogg123-curlopt-mute.patch
deleted file mode 100644
index 6437909411ea..000000000000
--- a/pkgs/applications/audio/vorbis-tools/ogg123-curlopt-mute.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- vorbis-tools-1.1.1/ogg123/http_transport.c	2005-06-13 15:11:44.000000000 +0200
-+++ vorbis-tools-1.1.1/ogg123/http_transport.c	2008-02-12 18:38:41.000000000 +0100
-@@ -116,7 +116,9 @@ void set_curl_opts (http_private_t *priv
-   if (inputOpts.ProxyTunnel)
-     curl_easy_setopt (handle, CURLOPT_HTTPPROXYTUNNEL, inputOpts.ProxyTunnel);
-   */
-+#ifdef CURLOPT_MUTE
-   curl_easy_setopt(handle, CURLOPT_MUTE, 1);
-+#endif
-   curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, private->error);
-   curl_easy_setopt(handle, CURLOPT_PROGRESSFUNCTION, progress_callback);
-   curl_easy_setopt(handle, CURLOPT_PROGRESSDATA, private);
-
diff --git a/pkgs/applications/audio/xsynth-dssi/default.nix b/pkgs/applications/audio/xsynth-dssi/default.nix
new file mode 100644
index 000000000000..528f0b3412c1
--- /dev/null
+++ b/pkgs/applications/audio/xsynth-dssi/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, alsaLib, autoconf, automake, dssi, gtk, jackaudio,
+ladspaH, ladspaPlugins, liblo, pkgconfig }:
+
+stdenv.mkDerivation  rec {
+  name = "xsynth-dssi-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dssi/${name}.tar.gz";
+    sha256 = "00nwv2pqjbmxqdc6xdm0cljq6z05lv4y6bibmhz1kih9lm0lklnk";
+  };
+
+  buildInputs = [ alsaLib autoconf automake dssi gtk jackaudio ladspaH
+    ladspaPlugins liblo pkgconfig ];
+
+  installPhase = ''
+    ensureDir $out/bin
+    ensureDir $out/lib
+    cp src/Xsynth_gtk $out/bin
+    cp src/.libs/* $out/lib
+  '';
+
+  meta = with stdenv.lib; {
+    description = "classic-analog (VCOs-VCF-VCA) style software synthesizer";
+    longDescription = ''
+      Xsynth-DSSI is a classic-analog (VCOs-VCF-VCA) style software
+      synthesizer which operates as a plugin for the DSSI Soft Synth
+      Interface.  DSSI is a plugin API for software instruments (soft
+      synths) with user interfaces, permitting them to be hosted
+      in-process by audio applications.
+    '';
+    homepage = "http://dssi.sourceforge.net/download.html#Xsynth-DSSI";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
new file mode 100644
index 000000000000..1dda4be3739b
--- /dev/null
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, alsaLib, boost, cmakeCurses, fftwSinglePrec, fltk
+, jackaudio, libsndfile, mesa, minixml, pkgconfig, zlib }:
+
+assert stdenv ? glibc;
+
+stdenv.mkDerivation  rec {
+  name = "yoshimi-${version}";
+  version = "0.060.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
+    sha256 = "0y67w7y515hx2bi5gfjgsw1hdah1bdrrvcfmqyjsvn7jbd0q47v1";
+  };
+
+  buildInputs = [ alsaLib boost cmakeCurses fftwSinglePrec fltk
+    jackaudio libsndfile mesa minixml pkgconfig zlib ];
+
+  preConfigure = ''
+    cd src
+  '';
+
+  cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc}/lib/libm.so" ];
+
+  meta = with stdenv.lib; {
+    description = "high quality software synthesizer based on ZynAddSubFX";
+    longDescription = ''
+      Yoshimi delivers the same synthesizer capabilities as
+      ZynAddSubFX along with very good Jack and Alsa midi/audio
+      functionality on Linux
+    '';
+    homepage = http://yoshimi.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix
new file mode 100644
index 000000000000..2931cfe41f63
--- /dev/null
+++ b/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, alsaLib, fftw, fltk, minixml, zlib }:
+
+stdenv.mkDerivation  rec {
+  name = "zynaddsubfx-${version}";
+  version = "2.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/zynaddsubfx/ZynAddSubFX-${version}.tar.bz2";
+    sha256 = "1zn5lgh76rrbfj8d4jys2gc1j2pqrbdd18ywfdrk0s7jq4inwyfg";
+  };
+
+  buildInputs = [ alsaLib fftw fltk minixml zlib ];
+
+  preConfigure = "cd src";
+
+  installPhase = "mkdir -p $out/bin; cp zynaddsubfx $out/bin";
+
+  meta = with stdenv.lib; {
+    description = "high quality software synthesizer";
+    homepage = http://zynaddsubfx.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix
index b00fb6d2dc7b..2ea53fd4e55a 100644
--- a/pkgs/applications/display-managers/slim/default.nix
+++ b/pkgs/applications/display-managers/slim/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, x11, libjpeg, libpng, libXmu, freetype, pam}:
 
 stdenv.mkDerivation rec {
-  name = "slim-1.3.1";
+  name = "slim-1.3.2";
 
   src = fetchurl {
     url = "http://download.berlios.de/slim/${name}.tar.gz";
-    sha256 = "0xqgzvg6h1bd29140mcgg9r16vcmskz7zmym7i7jlz7x9c1a9mxc";
+    sha256 = "1f42skdp5k1zrb364s3i0ps5wmx9szz9h192i2dkn9az00jh2mpi";
   };
 
   patches = [
@@ -22,8 +22,6 @@ stdenv.mkDerivation rec {
     # Don't set PAM_RHOST to "localhost", it confuses ConsoleKit
     # (which assumes that a non-empty string means a remote session).
     ./pam2.patch
-    
-    ./slim-1.3.1-gcc4.4.patch
   ];
 
   buildInputs = [x11 libjpeg libpng libXmu freetype pam];
diff --git a/pkgs/applications/display-managers/slim/slim-1.3.1-gcc4.4.patch b/pkgs/applications/display-managers/slim/slim-1.3.1-gcc4.4.patch
deleted file mode 100644
index 71b028ec080b..000000000000
--- a/pkgs/applications/display-managers/slim/slim-1.3.1-gcc4.4.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Patch to allow compilation with gcc-4.4
-
-Notified by Daniel J. - from Debian bug tracker
-
-http://bugs.gentoo.org/252745
-
---- a/switchuser.h	2008-11-11 19:40:18.000000000 +0000
-+++ a/switchuser.h	2008-11-11 19:40:28.000000000 +0000
-@@ -18,6 +18,7 @@
- #include <pwd.h>
- #include <grp.h>
- #include <paths.h>
-+#include <cstdio>
- #include <iostream>
- #include "const.h"
- #include "cfg.h"
-
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index eb12aa0819ed..bc53dfc70f32 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -1,153 +1,163 @@
 { stdenv, fetchurl, patchelf, makeDesktopItem, makeWrapper
 , freetype, fontconfig, libX11, libXext, libXrender, zlib
 , glib, gtk, libXtst, jre
- # defaulting to this version because not all installable plugins work with 3.5.2 yet
- # can also be set to "latest"
-, version ? "3.5.1"
 }:
 
-/*
-  Note: Eclipse stores various Eclipse instance specific data in ~/.eclipse/*-instance/...
-  The '*' depends on the executable location of Eclipse.
-
-  So if an Eclipse dependency such as gtk changes a different Eclipse setup directory will be used and
-  the plugins and update site list and more global settings seem to be gone.
-
-  Staring Eclipse from ~/.nix-profile/bin/eclipse doesn't help.
-
-  So I suggest copying the store path to ~/eclipse and run ~/eclipse/bin/eclipse instead.
+assert stdenv ? glibc;
 
-  However this still has some drawbacks: If you run nix-collect-garbage the gtk
-  libs the wrapper refers to might be gone. It should be easy for you to
-  replace the imortant lines in the wrapper.
+let
 
-  You can also put this eclipse wrapper script (which was removed from
-  all-packages.nix -r 18458)
-  to your packageOverrides section and use that to run eclipse/eclipse.
+  buildEclipse =
+    { name, src, description }:
 
-  Its parameterized by system because you may want to run both: i686 and x86_64 systems.
+    stdenv.mkDerivation rec {
+      inherit name src;
 
-    eclipseRunner =
-      pkgs.stdenv.mkDerivation {
-      name = "nix-eclipse-runner-script-${stdenv.system}";
+      desktopItem = makeDesktopItem {
+        name = "Eclipse";
+        exec = "eclipse";
+        icon = "eclipse";
+        comment = "Integrated Development Environment";
+        desktopName = "Eclipse IDE";
+        genericName = "Integrated Development Environment";
+        categories = "Application;Development;";
+      };
 
-      phases = "installPhase";
-      installPhase = ''
-        ensureDir $out/bin
-        target=$out/bin/nix-run-eclipse-${stdenv.system}
-        cat > $target << EOF
-        #!/bin/sh
-        export PATH=${pkgs.jre}/bin:\$PATH
-        export LD_LIBRARY_PATH=${pkgs.gtkLibs216.glib}/lib:${pkgs.gtkLibs216.gtk}/lib:${pkgs.xlibs.libXtst}/lib
-        # If you run out of XX space try these? -vmargs -Xms512m -Xmx2048m -XX:MaxPermSize=256m
-        eclipse="\$1"; shift
-        exec \$eclipse -vmargs -Xms512m -Xmx2048m -XX:MaxPermSize=256m "\$@"
-        EOF
-        chmod +x $target
-      '';
+      buildInputs = [ makeWrapper patchelf ];
+
+      buildCommand = ''
+        # Unpack tarball.
+        ensureDir $out
+        tar xfvz $src -C $out
+
+        # Patch binaries.
+        interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
+        patchelf --set-interpreter $interpreter $out/eclipse/eclipse
+        patchelf --set-rpath ${freetype}/lib:${fontconfig}/lib:${libX11}/lib:${libXrender}/lib:${zlib}/lib $out/eclipse/libcairo-swt.so
+
+        # Create wrapper script.  Pass -configuration to store
+        # settings in ~/.eclipse/org.eclipse.platform_<version> rather
+        # than ~/.eclipse/org.eclipse.platform_<version>_<number>.
+        productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct)
+        productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct)
+        
+        makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
+          --prefix PATH : ${jre}/bin \
+          --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib \
+          --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration"
+
+        # Create desktop item.
+        ensureDir $out/share/applications
+        cp ${desktopItem}/share/applications/* $out/share/applications
+      ''; # */
 
       meta = {
-        description = "provide environment to run Eclipse";
-        longDescription = ''
-          Is there one distribution providing support for up to date Eclipse installations?
-          There are various reasons why not.
-          Installing binaries just works. Get Eclipse binaries form eclipse.org/downloads
-          install this wrapper then run Eclipse like this:
-          nix-run-eclipse $PATH_TO_ECLIPSE/eclipse/eclipse
-          and be happy. Everything works including update sites.
-        '';
-        maintainers = [pkgs.lib.maintainers.marcweber];
-        platforms = pkgs.lib.platforms.linux;
+        homepage = http://www.eclipse.org/;
+        inherit description;
       };
-    };
-
-*/
 
+    };
+    
+in {
 
-let
+  eclipse_sdk_35 = buildEclipse {
+    name = "eclipse-sdk-3.5.2";
+    description = "Eclipse Classic";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk-x86_64.tar.gz;
+          md5 = "54e2ce0660b2b1b0eb4267acf70ea66d";
+        }
+      else
+        fetchurl {
+          url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk.tar.gz;
+          md5 = "bde55a2354dc224cf5f26e5320e72dac";
+        };
+  };
 
-  v = if version == "latest" then "3.5.2" else version;
+  # !!! Use mirror://eclipse/.
 
-in
+  eclipse_sdk_36 = buildEclipse {
+    name = "eclipse-sdk-3.6.2";
+    description = "Eclipse Classic";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://ftp.ing.umu.se/mirror/eclipse/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-SDK-3.6.2-linux-gtk-x86_64.tar.gz;
+          sha256 = "0dfcfadcd6337c897fbfd5b292de481931dfce12d43289ecb93691fd27dd47f4";
+        }
+      else
+        fetchurl {
+          url = http://ftp.ing.umu.se/mirror/eclipse/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-SDK-3.6.2-linux-gtk.tar.gz;
+          sha256 = "1bh8ykliqr8wbciv13vpiy50rvm7yszk7y8dslr796dbwhi5b1cj";
+        };
+  };
 
-assert stdenv ? glibc;
+  eclipse_cpp_36 = buildEclipse {
+    name = "eclipse-cpp-3.6.2";
+    description = "Eclipse IDE for C/C++ Developers";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz;
+          sha1 = "6f914e11fa15a900c46825e4aa8299afd76e7e65";
+        }
+      else
+        fetchurl {
+          url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk.tar.gz;
+          sha1 = "1156e4bc0253ae3a3a4e54839e4944dc64d3108f";
+        };
+  };
 
-stdenv.mkDerivation rec {
-  name = "eclipse-${v}";
-  
-  src =
-    if v == "3.5.2" then
+  eclipse_modeling_36 = buildEclipse {
+    name = "eclipse-modeling-3.6.2";
+    description = "Eclipse Modeling Tools (includes Incubating components)";
+    src =
       if stdenv.system == "x86_64-linux" then
         fetchurl {
-          url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk-x86_64.tar.gz;
-          md5 = "54e2ce0660b2b1b0eb4267acf70ea66d";
+          url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk-x86_64.tar.gz;
+          sha1 = "e96f5f006298f68476f4a15a2be8589158d5cc61";
         }
       else
         fetchurl {
-          url = http://mirror.selfnet.de/eclipse/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk.tar.gz;
-          md5 = "bde55a2354dc224cf5f26e5320e72dac";
+          url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk.tar.gz;
+          sha1 = "696377895bb26445de39d82a916b7e69edb1d939";
+        };
+  };
+
+  eclipse_sdk_37 = buildEclipse {
+    name = "eclipse-sdk-3.7";
+    description = "Eclipse Classic";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://eclipse.ialto.com/eclipse/downloads/drops/R-3.7-201106131736/eclipse-SDK-3.7-linux-gtk-x86_64.tar.gz;
+          sha256 = "00ig3ww98r8imf32sx5npm6csn5nx288gvdk6w653nijni0di16j";
         }
-    else if v == "3.5.1" then
-     if stdenv.system == "x86_64-linux" then
-       fetchurl {
-        url = http://ftp.ing.umu.se/mirror/eclipse/eclipse/downloads/drops/R-3.5.1-200909170800/eclipse-SDK-3.5.1-linux-gtk-x86_64.tar.gz;
-        sha256 = "132zd7q9q29h978wnlsfbrlszc85r1wj30yqs2aqbv3l5xgny1kk";
-       }
-     else
-       fetchurl {
-        url = http://mirrors.linux-bg.org/eclipse/eclipse/downloads/drops/R-3.5.1-200909170800/eclipse-SDK-3.5.1-linux-gtk.tar.gz;
-        sha256 = "0a0lpa7gxg91zswpahi6fvg3csl4csvlym4z2ad5cc1d4yvicp56";
-      }
-    else if v == "3.6.1" then
-     if stdenv.system == "x86_64-linux" then
-       fetchurl {
-        url = http://ftp.ing.umu.se/mirror/eclipse/eclipse/downloads/drops/R-3.6.1-201009090800/eclipse-SDK-3.6.1-linux-gtk-x86_64.tar.gz;
-        sha256 = "1cg9rrb5w978sdqbzz9lnli1lds9zhb6wfsj3wp725bqf1i6v9lg";
-       }
-     else
-       fetchurl {
-        url = http://ftp.ing.umu.se/mirror/eclipse/eclipse/downloads/drops/R-3.6.1-201009090800/eclipse-SDK-3.6.1-linux-gtk.tar.gz;
-        sha256 = "0s48rjaswi8m5gan1zlqvfwb4l06x5nslkq41wpkrbyj9ka8gh4x";
-      }
-    else throw "no source for eclipse version ${v} known";
-
-  desktopItem = makeDesktopItem {
-    name = "Eclipse";
-    exec = "eclipse";
-    icon = "eclipse";
-    comment = "Integrated Development Environment";
-    desktopName = "Eclipse IDE";
-    genericName = "Integrated Development Environment";
-    categories = "Application;Development;";
+      else
+        fetchurl {
+          url = http://eclipse.ialto.com/eclipse/downloads/drops/R-3.7-201106131736/eclipse-SDK-3.7-linux-gtk.tar.gz;
+          sha256 = "08rgw85cam51l98mzb39fdc3ykb369v8pap93qhknbs6a3f5dnff";
+        };
   };
 
-  buildInputs = [ makeWrapper patchelf ];
-  
-  buildCommand = ''
-    # Unpack tarball
-    ensureDir $out
-    tar xfvz $src -C $out
-    
-    # Patch binaries
-    interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
-    patchelf --set-interpreter $interpreter $out/eclipse/eclipse
-    patchelf --set-rpath ${freetype}/lib:${fontconfig}/lib:${libX11}/lib:${libXrender}/lib:${zlib}/lib $out/eclipse/libcairo-swt.so
-
-    # Create wrapper script
-    makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
-      --prefix PATH : ${jre}/bin \
-      --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
-    
-    # Create desktop item
-    ensureDir $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications
-  '';
-  
-  meta = {
-    homepage = http://www.eclipse.org/;
-    description = "A extensible multi-language software development environment";
-    longDescription = ''
-    '';
+  eclipse_cpp_37 = buildEclipse {
+    name = "eclipse-cpp-3.7";
+    description = "Eclipse IDE for C/C++ Developers";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://eclipse.ialto.com/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk-x86_64.tar.gz;
+          sha256 = "14ppc9g9igzvj1pq7jl01vwhzb66nmzbl9wsdl1sf3xnwa9wnqk3";
+        }
+      else
+        fetchurl {
+          url = http://eclipse.ialto.com/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk.tar.gz;
+          sha256 = "1cvg1vgyazrkinwzlvlf0dpl197p4784752srqybqylyj5psdi3b";
+        };
   };
-  
+
+
 }
+
diff --git a/pkgs/applications/editors/emacs-23/default.nix b/pkgs/applications/editors/emacs-23/default.nix
index 4bdb4f132c2f..5de1b38bb41d 100644
--- a/pkgs/applications/editors/emacs-23/default.nix
+++ b/pkgs/applications/editors/emacs-23/default.nix
@@ -8,22 +8,28 @@ assert (libXft != null) -> libpng != null;	# probably a bug
 assert stdenv.isDarwin -> libXaw != null;	# fails to link otherwise
 
 stdenv.mkDerivation rec {
-  name = "emacs-23.2";
+  name = "emacs-23.3";
 
   builder = ./builder.sh;
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${name}.tar.bz2";
-    sha256 = "1i96hp91s86jawrqjhfxm5y2sjxizv99009128b4bh06bgx6dm7z";
+    sha256 = "0kfa546qi0idkwk29gclgi13qd8q54pcqgy9qwjknlclszprdp3a";
   };
 
-  buildInputs = [
-    ncurses x11 texinfo libXaw Xaw3d libXpm dbus libpng libjpeg libungif
-    libtiff librsvg gtk (if gtk != null then pkgconfig else null) libXft gconf
-  ];
+  buildInputs = 
+    [ ncurses x11 texinfo libXaw Xaw3d libXpm libpng libjpeg libungif
+      libtiff librsvg libXft gconf
+    ] 
+    ++ stdenv.lib.optionals (gtk != null) [ gtk pkgconfig ]
+    ++ stdenv.lib.optional stdenv.isLinux dbus;
 
   configureFlags =
-    stdenv.lib.optionals (gtk != null) [ "--with-x-toolkit=gtk" "--with-xft" ];
+    stdenv.lib.optionals (gtk != null) [ "--with-x-toolkit=gtk" "--with-xft"]
+
+    # On NixOS, help Emacs find `crt*.o'.
+    ++ stdenv.lib.optional (stdenv ? glibc)
+         [ "--with-crt-dir=${stdenv.glibc}/lib" ];
 
   doCheck = true;
 
diff --git a/pkgs/applications/editors/emacs-modes/bbdb/builder.sh b/pkgs/applications/editors/emacs-modes/bbdb/builder.sh
deleted file mode 100644
index b860adbb745f..000000000000
--- a/pkgs/applications/editors/emacs-modes/bbdb/builder.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-source "$stdenv/setup" || exit 1
-
-unpackPhase &&							\
-cd bbdb-*.* && patchPhase &&					\
-./configure --prefix="$out"					\
-            --with-package-dir="$out/share/emacs/site-lisp" &&	\
-make && make install-pkg &&					\
-mkdir -p "$out/info" &&						\
-make -C texinfo install-pkg &&					\
-mv "$out/share/emacs/site-lisp/lisp/bbdb/"*			\
-   "$out/share/emacs/site-lisp" &&				\
-rm -rf "$out/share/emacs/site-lisp/lisp"
diff --git a/pkgs/applications/editors/emacs-modes/bbdb/default.nix b/pkgs/applications/editors/emacs-modes/bbdb/default.nix
index 51474a197174..52afebc6297b 100644
--- a/pkgs/applications/editors/emacs-modes/bbdb/default.nix
+++ b/pkgs/applications/editors/emacs-modes/bbdb/default.nix
@@ -11,7 +11,20 @@ stdenv.mkDerivation {
   patches = [ ./install-infodir.patch ];
 
   buildInputs = [emacs texinfo ctags];
-  builder = ./builder.sh;
+  configureFlags = "--with-package-dir=$$out/share/emacs/site-lisp";
+  preInstall = "ensureDir $out/info";
+  installTargets = "install-pkg texinfo";
+  postInstall = ''
+    mv  $out/info $out/share/
+    mv "$out/share/emacs/site-lisp/lisp/bbdb/"* $out/share/emacs/site-lisp/
+    mv $out/share/emacs/site-lisp/etc/bbdb $out/share/
+    rm -rf $out/share/emacs/site-lisp/{lisp,etc}
+    mv bits $out/share/bbdb/
+    # Make optional modules from bbdb available for import, but symlink
+    # them into the site-lisp directory to make it obvious that they are
+    # not a genuine part of the distribution.
+    ln -s "$out/share/bbdb/bits/"*.el $out/share/emacs/site-lisp/
+  '';
 
   meta = {
     description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs";
diff --git a/pkgs/applications/editors/emacs-modes/magit/default.nix b/pkgs/applications/editors/emacs-modes/magit/default.nix
index dcd0b9c5ba49..0746dd5b3bec 100644
--- a/pkgs/applications/editors/emacs-modes/magit/default.nix
+++ b/pkgs/applications/editors/emacs-modes/magit/default.nix
@@ -1,20 +1,25 @@
 { stdenv, fetchurl, emacs, texinfo }:
 
 let
-  version = "0.8.2";
+  version = "1.0.0";
 in
 stdenv.mkDerivation {
   name = "magit-${version}";
 
   src = fetchurl {
-    url = "http://github.com/downloads/philjackson/magit/magit-${version}.tar.gz";
-    sha256 = "fc02c23e3e8994e9c3e3299d560d0cbfed888dcc66088f06b8cea3bc89cd6ae8";
+    url = "http://github.com/downloads/magit/magit/magit-${version}.tar.gz";
+    sha256 = "1hfdl90d96zin31v8x4p8zx5f0x0i5i9hccysx6q3prdgw9r6wzq";
   };
 
   buildInputs = [emacs texinfo];
 
+  configurePhase =
+    '' sed -i Makefile \
+           -e "s|^PREFIX=.*$|PREFIX=$out|g ; s|/etc/emacs/|$out/etc/emacs/|"
+    '';
+
   meta = {
-    description = "An an interface to Git, implemented as an extension to Emacs.";
+    description = "Magit, an Emacs interface to Git";
 
     longDescription = ''
       With Magit, you can inspect and modify your Git repositories with
@@ -31,6 +36,6 @@ stdenv.mkDerivation {
     license = "GPLv3+";
     homepage = "http://github.com/philjackson/magit";
     platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
+    maintainers = with stdenv.lib.maintainers; [ simons ludo ];
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/org/default.nix b/pkgs/applications/editors/emacs-modes/org/default.nix
index 559bc957f071..18ea2797bec5 100644
--- a/pkgs/applications/editors/emacs-modes/org/default.nix
+++ b/pkgs/applications/editors/emacs-modes/org/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, emacs, texinfo, which }:
 
 stdenv.mkDerivation rec {
-  name = "org-7.01f";
+  name = "org-7.5";
 
   src = fetchurl {
     url = "http://orgmode.org/${name}.tar.gz";
-    sha256 = "1db7s57g8gh8w0464n18lxpcz270x9ns63b2blhkz8wrdnk57fia";
+    sha256 = "978822bc4c5f9f67450fbaa8572f1d4217406b7e28551278c9f23f7e9515cd4b";
   };
 
   buildInputs = [ emacs texinfo ];
@@ -19,11 +19,21 @@ stdenv.mkDerivation rec {
            -e "s|^prefix=.*$|prefix=$out|g"
     '';
 
+  #XXX: fails because of missing UTILITIES/manfull.pl, currently not
+  # included in the release tarball, but git.
+
+  #postBuild =
+  #  '' make doc
+  #  '';
+
   installPhase =
     '' make install install-info
 
        ensureDir "$out/share/doc/${name}"
-       cp -v doc/orgcard*.{pdf,txt} "$out/share/doc/${name}"
+       cp -v doc/org*.{html,pdf,txt} "$out/share/doc/${name}"
+
+       ensureDir "$out/share/org"
+       cp -R contrib "$out/share/org/contrib"
     '';
 
   meta = {
@@ -39,7 +49,7 @@ stdenv.mkDerivation rec {
 
     license = "GPLv3+";
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.chaoflow ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/proofgeneral/default.nix b/pkgs/applications/editors/emacs-modes/proofgeneral/default.nix
index d8316886c34e..ce01d4b92046 100644
--- a/pkgs/applications/editors/emacs-modes/proofgeneral/default.nix
+++ b/pkgs/applications/editors/emacs-modes/proofgeneral/default.nix
@@ -1,25 +1,20 @@
 { stdenv, fetchurl, emacs, texinfo, texLive, perl, which, automake }:
 
-let
-  pname = "ProofGeneral";
-  version = "3.7.1.1";
-  name = "${pname}-${version}";
-  website = "http://proofgeneral.inf.ed.ac.uk";
-in
-
-stdenv.mkDerivation {
-  inherit name;
+stdenv.mkDerivation (rec {
+  name = "ProofGeneral-4.0";
 
   src = fetchurl {
-    url = "http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/contrib/${name}.tar.gz";
-    sha256 = "ae430590d6763618df50a662a37f0627d3c3c8f31372f6f0bb2116b738fc92d8";
+    url = http://proofgeneral.inf.ed.ac.uk/releases/ProofGeneral-4.0.tgz;
+    sha256 = "1ang2lsc97vl70fkgypfsr1ivdzsdliq3bkvympj30wnc7ayzbmq";
   };
 
   sourceRoot = name;
 
   buildInputs = [ emacs texinfo texLive perl which ];
 
-  patchPhase =
+  patches = [ ./emacs-23.3.patch ];
+
+  postPatch =
     '' sed -i "Makefile" \
            -e "s|^\(\(DEST_\)\?PREFIX\)=.*$|\1=$out|g ; \
                s|/sbin/install-info|install-info|g"
@@ -27,6 +22,8 @@ stdenv.mkDerivation {
        sed -i "bin/proofgeneral" -e's/which/type -p/g'
     '';
 
+  preBuild = "make clean";
+
   installPhase =
     # Copy `texinfo.tex' in the right place so that `texi2pdf' works.
     '' cp -v "${automake}/share/"automake-*/texinfo.tex doc
@@ -39,8 +36,8 @@ stdenv.mkDerivation {
       Proof General is a generic front-end for proof assistants (also known as
       interactive theorem provers), based on the customizable text editor Emacs.
     '';
-    homepage = website;
+    homepage = http://proofgeneral.inf.ed.ac.uk;
     license = "GPLv2+";
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
-}
+})
diff --git a/pkgs/applications/editors/emacs-modes/proofgeneral/emacs-23.3.patch b/pkgs/applications/editors/emacs-modes/proofgeneral/emacs-23.3.patch
new file mode 100644
index 000000000000..9bbc21a82b84
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/proofgeneral/emacs-23.3.patch
@@ -0,0 +1,45 @@
+diff -Nuar ProofGeneral-4.0/contrib/mmm/mmm-mode.el ProofGeneral-4.0-nix/contrib/mmm/mmm-mode.el
+--- ProofGeneral-4.0/contrib/mmm/mmm-mode.el	2010-10-11 00:56:57.000000000 +0200
++++ ProofGeneral-4.0-nix/contrib/mmm/mmm-mode.el	2011-05-14 21:55:12.000000000 +0200
+@@ -160,9 +160,9 @@
+      (mmm-add-hooks)
+      (mmm-fixup-skeleton)
+      (make-local-variable 'font-lock-fontify-region-function)
+-     (make-local-variable 'font-lock-beginning-of-syntax-function)
++     (make-local-variable 'syntax-begin-function)
+      (setq font-lock-fontify-region-function 'mmm-fontify-region
+-	   font-lock-beginning-of-syntax-function 'mmm-beginning-of-syntax)
++	   syntax-begin-function 'mmm-beginning-of-syntax)
+      (setq mmm-mode t)
+      (condition-case err
+ 	 (mmm-apply-all)
+@@ -190,7 +190,7 @@
+     (mmm-update-submode-region)
+     (setq font-lock-fontify-region-function
+ 	  (get mmm-primary-mode 'mmm-fontify-region-function)
+-	  font-lock-beginning-of-syntax-function
++	  syntax-begin-function
+ 	  (get mmm-primary-mode 'mmm-beginning-of-syntax-function))
+     (mmm-update-font-lock-buffer)
+     (mmm-refontify-maybe)
+diff -Nuar ProofGeneral-4.0/contrib/mmm/mmm-region.el ProofGeneral-4.0-nix/contrib/mmm/mmm-region.el
+--- ProofGeneral-4.0/contrib/mmm/mmm-region.el	2010-10-11 00:56:57.000000000 +0200
++++ ProofGeneral-4.0-nix/contrib/mmm/mmm-region.el	2011-05-14 21:58:01.000000000 +0200
+@@ -548,7 +548,7 @@
+ 	    (put mode 'mmm-fontify-region-function
+ 		 font-lock-fontify-region-function))
+ 	  (put mode 'mmm-beginning-of-syntax-function
+-	       font-lock-beginning-of-syntax-function))
++	       syntax-begin-function))
+ 	;; Get variables
+ 	(setq global-vars (mmm-get-locals 'global)
+ 	      buffer-vars (mmm-get-locals 'buffer)
+@@ -768,7 +768,7 @@
+   ;; For some reason `font-lock-fontify-block' binds this to nil, thus
+   ;; preventing `mmm-beginning-of-syntax' from doing The Right Thing.
+   ;; I don't know why it does this, but let's undo it here.
+-  (let ((font-lock-beginning-of-syntax-function 'mmm-beginning-of-syntax))
++  (let ((syntax-begin-function 'mmm-beginning-of-syntax))
+     (mapc #'(lambda (elt)
+ 		(when (get (car elt) 'mmm-font-lock-mode)
+ 		  (mmm-fontify-region-list (car elt) (cdr elt))))
diff --git a/pkgs/applications/editors/kdevelop/default.nix b/pkgs/applications/editors/kdevelop/default.nix
index 1b72f8f0b7fb..e5b749c37947 100644
--- a/pkgs/applications/editors/kdevelop/default.nix
+++ b/pkgs/applications/editors/kdevelop/default.nix
@@ -1,18 +1,23 @@
 { stdenv, fetchurl, kdevplatform, cmake, pkgconfig, automoc4, shared_mime_info,
-  kdebase_workspace, gettext, perl }:
+  kdebase_workspace, gettext, perl, kdeutils, kdesdk }:
 
+let
+  okteta = if kdeutils ? okteta then kdeutils.okteta else kdesdk.okteta;
+in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "4.0.2";
+  version = "4.2.3";
   pname = "kdevelop";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "1y8ydx0fcmsab31qf5id5r5fcmp3j2l8mibvbbjfy66xgxarmnpc";
+    sha256 = "0ay3d2s5442pvdsx9lyfzb986kh6848qhbls9ff982f0glzqdcya";
   };
 
   buildInputs = [ kdevplatform cmake pkgconfig automoc4 shared_mime_info
-    kdebase_workspace gettext stdenv.gcc.libc perl ];
+    kdebase_workspace gettext stdenv.gcc.libc perl okteta ];
+
+  NIX_CFLAGS_COMPILE = "-I${okteta}/include/KDE";
 
   meta = with stdenv.lib; {
     maintainers = [ maintainers.urkud ];
diff --git a/pkgs/applications/editors/leksah/default.nix b/pkgs/applications/editors/leksah/default.nix
index dfed15096190..f8a5d6a712fe 100644
--- a/pkgs/applications/editors/leksah/default.nix
+++ b/pkgs/applications/editors/leksah/default.nix
@@ -1,27 +1,28 @@
-{cabal, gtk, glib, binary, binaryShared, deepseq, hslogger, ltk, network, parsec,
- leksahServer, processLeksah, regexBase, regexTDFA, utf8String, gtksourceview2,
- makeWrapper}:
+{ cabal, binary, binaryShared, deepseq, glib, gtk, gtksourceview2
+, hslogger, leksahServer, ltk, mtl, network, parsec, processLeksah
+, regexBase, regexTdfa, strict, time, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "leksah";
-  version = "0.8.0.8";
-  sha256 = "1d6n5dlnqlqfckg9f611qf9lvi6b7ghrkk1l0myh6h667fxh8a1r";
-
-  propagatedBuildInputs =
-    [gtk glib binary binaryShared deepseq hslogger ltk network parsec
-     leksahServer processLeksah regexBase regexTDFA utf8String gtksourceview2];
-  extraBuildInputs = [makeWrapper];
-
-  # postInstall =
-  #   ''
-  #     wrapProgram $out/bin/leksah --prefix XDG_DATA_DIRS : ${gtk2hs.gtksourceview}/share
-  #   '';
-  
+  version = "0.10.0.4";
+  sha256 = "1g12w1kl63fxzz1c2x237yrqkaja9awiqyyipkdms5iql0ini7bw";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary binaryShared deepseq glib gtk gtksourceview2 hslogger
+    leksahServer ltk mtl network parsec processLeksah regexBase
+    regexTdfa strict time utf8String
+  ];
+  noHaddock = true;
   meta = {
-    homepage = http://leksah.org/;
-    description = "An Integrated Development Environment for Haskell written in Haskell";
+    homepage = "http://www.leksah.org";
+    description = "Haskell IDE written in Haskell";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.stdenv.lib.platforms.linux;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix
index 5cd4d6684fc2..d765449851ad 100644
--- a/pkgs/applications/editors/texmacs/default.nix
+++ b/pkgs/applications/editors/texmacs/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, guile, libX11, libXext, xmodmap, which, makeWrapper,
+{stdenv, fetchurl, guile, libX11, libXext, xmodmap, which, makeWrapper, freetype,
  tex ? null,
  aspell ? null,
  ghostscriptX ? null,
@@ -9,7 +9,7 @@
 
 let 
   pname = "TeXmacs";
-  version = "1.0.7.6";
+  version = "1.0.7.10";
   extraFontsSrc = fetchurl {
     url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-extra-fonts-1.0-noarch.tar.gz";
     sha256 = "0hylgjmd95y9yahbblmawkkw0i71vb145xxv2xqrmff81301n6k7";
@@ -40,10 +40,10 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "ftp://ftp.texmacs.org/pub/${pname}/targz/${name}-src.tar.gz";
-    sha256 = "0x4qy3ai9nmz1i90mbqi1n2vgwyllxwmlpllfwcz0fad7yby7msh";
+    sha256 = "02gqalr775r4xyfy4bq3qq1h3pkarsxjb6ami7lgxfgmyg6ca5kn";
   };
 
-  buildInputs = [ guile libX11 libXext makeWrapper ];
+  buildInputs = [ guile libX11 libXext makeWrapper ghostscriptX freetype ];
 
   patchPhase = (if tex == null then ''
     gunzip < ${fullFontsSrc} | (cd TeXmacs && tar xvf -)
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index c81815da750e..d8acf24cbf5d 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, ncurses, help2man }:
 
 stdenv.mkDerivation rec {
-  name = "zile-2.3.21";
+  name = "zile-2.3.24";
 
   src = fetchurl {
     url = "mirror://gnu/zile/${name}.tar.gz";
-    sha256 = "1cmw98khpyk0yv3fn94506fm7589adfbs57czrdsm4q8xf2xrj4i";
+    sha256 = "12by1f5nbk2qcq0f35aqjq5g54nsnajk2rk5060icsjc86pv52r1";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index 7ec65f3de941..a4bd960655cd 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -12,19 +12,20 @@
 , libtool
 , jasper
 , libX11
+, xz
 , tetex ? null
 , librsvg ? null
 }:
 
 let
-  version = "6.6.5-4";
+  version = "6.6.9-4";
 in
 stdenv.mkDerivation rec {
   name = "ImageMagick-${version}";
 
   src = fetchurl {
-    url = "mirror://imagemagick/${name}.tar.bz2";
-    sha256 = "1s3l98xc1gnxi2wdg3sy9723f6qf5yk81wln8ghn2z9kvi09w7gw";
+    url = "mirror://imagemagick/${name}.tar.xz";
+    sha256 = "035j3i3cm29bwc9lipn838gznswrc69g7mwh8h9jj24ss2dmqrf1";
   };
 
   configureFlags = ''
@@ -34,10 +35,13 @@ stdenv.mkDerivation rec {
     ${if librsvg != null then "--with-rsvg" else ""}
   '';
 
-  buildInputs =
-    [ bzip2 freetype graphviz ghostscript libjpeg libpng
-      libtiff libxml2 zlib tetex librsvg libtool jasper libX11
-    ];
+  propagatedBuildInputs =
+    [ bzip2 freetype ghostscript libjpeg libpng libtiff libxml2 zlib librsvg
+    libtool jasper libX11 ];
+
+  buildInputs = [ tetex graphviz ];
+
+  buildNativeInputs = [ xz ];
 
   preConfigure = if tetex != null then
     ''
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
new file mode 100644
index 000000000000..c0ebb95a67a2
--- /dev/null
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl,
+  GConf, atk, cairo, cmake, curl, dbus_glib, exiv2, glib,
+  gnome_keyring, gphoto2, gtk, ilmbase, intltool, lcms, lcms2,
+  lensfun, libXau, libXdmcp, libexif, libglade, libgphoto2, libjpeg,
+  libpng, libpthreadstubs, libraw1394, librsvg, libtiff, libxcb,
+  openexr, pixman, pkgconfig, sqlite}:
+
+stdenv.mkDerivation rec {
+  version = "0.9.1";
+  name = "darktable-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/darktable/darktable-${version}.tar.gz";
+    sha256 = "b687a5f1b2a6c8aa230c1dc3ef83bf74a103e3ebe1c61cdea95a612a7375f21e";
+  };
+
+  buildInputs = [
+    GConf atk cairo cmake curl dbus_glib exiv2 glib gnome_keyring gtk
+    ilmbase intltool lcms lcms2 lensfun libXau libXdmcp libexif
+    libglade libgphoto2 libjpeg libpng libpthreadstubs libraw1394
+    librsvg libtiff libxcb openexr pixman pkgconfig sqlite];
+
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk}/include/gtk-2.0"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk}/lib/gtk-2.0/include"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${cairo}/include/cairo"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${atk}/include/atk-1.0"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${ilmbase}/include/OpenEXR"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${openexr}/include/OpenEXR"
+  '';
+
+  cmakeFlags = [
+    "-DPTHREAD_INCLUDE_DIR=${stdenv.glibc}/include"
+    "-DPTHREAD_LIBRARY=${stdenv.glibc}/lib/libpthread.so"
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include"
+    "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Virtual lighttable and darkroom for photographers";
+    homepage = http://darktable.sourceforge.net;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/graphics/djview/default.nix b/pkgs/applications/graphics/djview/default.nix
index 5ebb070ef1f4..85388ffa6012 100644
--- a/pkgs/applications/graphics/djview/default.nix
+++ b/pkgs/applications/graphics/djview/default.nix
@@ -9,6 +9,10 @@ stdenv.mkDerivation {
 
 	buildInputs = [djvulibre qt4];
 
+  passthru = {
+    mozillaPlugin = "/lib/netscape/plugins";
+  };
+
 	meta = {
 		homepage = http://djvu.sourceforge.net/djview4.html;
 		description = "A new portable DjVu viewer and browser plugin";
diff --git a/pkgs/applications/graphics/fbida/default.nix b/pkgs/applications/graphics/fbida/default.nix
index f7482e0bfe75..ea7cb81a48e5 100644
--- a/pkgs/applications/graphics/fbida/default.nix
+++ b/pkgs/applications/graphics/fbida/default.nix
@@ -1,34 +1,33 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, libjpeg, libexif, giflib, libtiff, libpng
+, pkgconfig, freetype, fontconfig
+}:
 
-  version = a.lib.attrByPath ["version"] "2.07" a; 
-  buildInputs = with a; [
-    libjpeg libexif giflib libtiff libpng
-      imagemagick ghostscript which curl 
-      pkgconfig freetype fontconfig
-  ];
-in
-rec {
+stdenv.mkDerivation rec {
+  name = "fbida-2.07";
+  
   src = fetchurl {
-    url = "http://dl.bytesex.org/releases/fbida/fbida-${version}.tar.gz";
+    url = "http://dl.bytesex.org/releases/fbida/${name}.tar.gz";
     sha256 = "0i6v3fvjc305pfw48sglb5f22lwxldmfch6mjhqbcp7lqkkxw435";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
-  makeFlags = [
-    "prefix=$out"
-    "verbose=yes"
-    ];
+  preBuild =
+    ''
+      # Fetch a segfault in exiftran (http://bugs.gentoo.org/284753).
+      # `fbida' contains a copy of some internal libjpeg source files.
+      # If these do not match with the actual libjpeg, exiftran may
+      # fail.
+      tar xvf ${libjpeg.src}
+      for i in jpegint.h jpeglib.h jinclude.h transupp.c transupp.h; do
+        cp jpeg-*/$i jpeg/
+      done
+    '';
+
+  buildInputs =
+    [ pkgconfig libexif libjpeg giflib libpng giflib freetype fontconfig ];
+  
+  makeFlags = [ "prefix=$(out)" "verbose=yes" ];
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doMakeInstall" (a.doPatchShebangs "$out/bin")];
-      
-  name = "fbida-" + version;
   meta = {
-    description = "Framebuffer image viewing programs";
-    maintainers = [
-    ];
+    description = "Image viewing and manipulation programs";
   };
 }
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index e9d86aca52d5..c36e79fbc3a2 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, x11, imlib2, libjpeg, libpng, giblib
-, libXinerama }:
+, libXinerama, curl }:
 
 stdenv.mkDerivation {
-  name = "feh-1.6.1";
+  name = "feh-1.14.2";
 
   src = fetchurl {
-    url = http://www.chaosdorf.de/~derf/feh/feh-1.6.1.tar.bz2;
-    sha256 = "1mv09b34ar0dx4wl22xak2g554xgpylicqy5zbnk3bh66vn9pxz2";
+    url = http://feh.finalrewind.org/feh-1.14.2.tar.bz2;
+    sha256 = "117g1caihil88a3q0qy9gqj521l3illlsk56cgxhpc2am6ch5nwr";
   };
 
-  buildInputs = [x11 imlib2 giblib libjpeg libpng libXinerama];
+  buildInputs = [x11 imlib2 giblib libjpeg libpng libXinerama curl];
 
   preBuild = ''
     makeFlags="PREFIX=$out"
diff --git a/pkgs/applications/graphics/freecad/cmakeinstall.patch b/pkgs/applications/graphics/freecad/cmakeinstall.patch
new file mode 100644
index 000000000000..6b8f9fb1a60f
--- /dev/null
+++ b/pkgs/applications/graphics/freecad/cmakeinstall.patch
@@ -0,0 +1,55 @@
+Index: src/3rdParty/salomesmesh/CMakeLists.txt
+===================================================================
+--- a/src/3rdParty/salomesmesh/CMakeLists.txt	(revision 4193)
++++ a/src/3rdParty/salomesmesh/CMakeLists.txt	(working copy)
+@@ -191,7 +191,7 @@
+ INCLUDE_DIRECTORIES(src/StdMeshers)
+ 
+ ADD_LIBRARY(StdMeshers SHARED ${StdMeshers_source_files})
+-TARGET_LINK_LIBRARIES(StdMeshers SMESH TKernel TKMath TKAdvTools f2c)
++TARGET_LINK_LIBRARIES(StdMeshers SMESH TKernel TKMath TKAdvTools f2c gfortran)
+ SET(StdMeshers_CFLAGS "")
+ IF(WIN32)
+   SET(StdMeshers_CFLAGS "-DSTDMESHERS_EXPORTS -DMEFISTO2D_EXPORTS")
+@@ -218,9 +218,9 @@
+     # Libraries are installed by default in /usr/local/lib/SMESH-5.1.2.7
+     INSTALL(TARGETS SMDS Driver DriverSTL DriverDAT DriverUNV
+             SMESHDS SMESH StdMeshers
+-            DESTINATION /usr/local/lib/${INSTALL_PATH_NAME})
++            DESTINATION lib)
+     # Headers are installed by default in /usr/local/include/SMESH-5.1.2.7
+     INSTALL(DIRECTORY inc/
+-            DESTINATION /usr/local/include/${INSTALL_PATH_NAME}
++            DESTINATION include
+             FILES_MATCHING PATTERN "*.h*")
+ ENDIF(UNIX)
+Index: src/3rdParty/Pivy-0.5/CMakeLists.txt
+===================================================================
+--- a/src/3rdParty/Pivy-0.5/CMakeLists.txt	(revision 4193)
++++ a/src/3rdParty/Pivy-0.5/CMakeLists.txt	(working copy)
+@@ -56,6 +56,7 @@
+     set_target_properties(coin PROPERTIES OUTPUT_NAME "_coin")
+     set_target_properties(coin PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/pivy)
+     set_target_properties(coin PROPERTIES PREFIX "")
++    install(TARGETS coin DESTINATION bin/pivy)
+ endif(MSVC)
+ 
+ fc_copy_sources_outpath("bin/pivy" "coin"
+Index: CMakeLists.txt
+===================================================================
+--- a/CMakeLists.txt	(revision 4193)
++++ a/CMakeLists.txt	(working copy)
+@@ -57,13 +57,6 @@
+ 
+ # ================================================================================
+ 
+-
+-if(WIN32)
+-    SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})
+-else(WIN32)
+-    SET(CMAKE_INSTALL_PREFIX "/usr/lib/freecad")
+-endif(WIN32)
+-
+ # ================================================================================
+ # == Win32 is default behaviour use the LibPack copied in Source tree ============
+ if(MSVC)
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
new file mode 100644
index 000000000000..cfe97e12476d
--- /dev/null
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -0,0 +1,47 @@
+{ fetchsvn, stdenv, cmake, coin3d, xercesc, ode, eigen, qt4, opencascade, gts,
+boost, zlib,
+python, swig, gfortran, soqt, libf2c, pyqt4, makeWrapper }:
+
+# It builds but fails to install
+
+stdenv.mkDerivation rec {
+  name = "freecad-${version}";
+  version = "svn-${src.rev}";
+
+  src = fetchsvn {
+    url = https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk;
+    rev = "4184";
+    sha256 = "26bd8407ce38f070b81ef39145aed093eed3c200d165a605b8169162d66568ce";
+  };
+
+  buildInputs = [ cmake coin3d xercesc ode eigen qt4 opencascade gts boost
+    zlib python swig gfortran soqt libf2c pyqt4 makeWrapper ];
+
+  enableParallelBuilding = true;
+
+  # The freecad people are used to boost 1.42, and we have newer boost that
+  # require the -DBOOST_FILESYSTEM_VERSION=2 for freecad to build
+  # For zlib to build in i686-linux, as g++ plus glibc defines _LARGEFILE64_SOURCE,
+  # we need the -D-FILE_OFFSET_BITS=64 indication for zlib headers to work.
+  NIX_CFLAGS_COMPILE = "-DBOOST_FILESYSTEM_VERSION=2 -D_FILE_OFFSET_BITS=64";
+
+  # This should work on both x86_64, and i686 linux
+  preBuild = ''
+    export NIX_LDFLAGS="-L${gfortran.gcc}/lib64 -L${gfortran.gcc}/lib $NIX_LDFLAGS";
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/FreeCAD --prefix PYTHONPATH : $PYTHONPATH \
+      --set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1
+  '';
+
+  patches = [ ./cmakeinstall.patch ./pythonpath.patch ];
+
+  meta = {
+    homepage = http://free-cad.sourceforge.net/;
+    license = [ "GPLv2+" "LGPLv2+" ];
+    description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/graphics/freecad/pythonpath.patch b/pkgs/applications/graphics/freecad/pythonpath.patch
new file mode 100644
index 000000000000..849c778aedba
--- /dev/null
+++ b/pkgs/applications/graphics/freecad/pythonpath.patch
@@ -0,0 +1,19 @@
+http://sourceforge.net/apps/phpbb/free-cad/viewtopic.php?f=4&t=847&p=6364
+
+Index: src/Main/MainGui.cpp
+===================================================================
+--- a/src/Main/MainGui.cpp	(revision 4193)
++++ a/src/Main/MainGui.cpp	(working copy)
+@@ -149,10 +149,10 @@
+     // http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559846

+     putenv("LANG=C");

+     putenv("LC_ALL=C");

+-    putenv("PYTHONPATH=");

++    //putenv("PYTHONPATH=");

+ #else

+     setlocale(LC_NUMERIC, "C");

+-    _putenv("PYTHONPATH=");

++    //_putenv("PYTHONPATH=");

+ #endif

+ 

+     // Name and Version of the Application

diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix
index 076c0360a083..3e15eb8f8670 100644
--- a/pkgs/applications/graphics/geeqie/default.nix
+++ b/pkgs/applications/graphics/geeqie/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk, libpng, exiv2, lcms
-, intltool, gettext, libchamplain }:
+, intltool, gettext, libchamplain, fbida }:
 
 stdenv.mkDerivation rec {
   name = "geeqie-1.0";
@@ -23,6 +23,14 @@ stdenv.mkDerivation rec {
       libchamplain
     ];
 
+  postInstall =
+    ''
+      # Allow geeqie to find exiv2 and exiftran, necessary to
+      # losslessly rotate JPEG images.
+      sed -i $out/lib/geeqie/geeqie-rotate \
+          -e '1 a export PATH=${exiv2}/bin:${fbida}/bin:$PATH'
+    '';
+
   meta = {
     description = "Geeqie, a lightweight GTK+ based image viewer";
 
diff --git a/pkgs/applications/graphics/giv/build.patch b/pkgs/applications/graphics/giv/build.patch
new file mode 100644
index 000000000000..639d881f4159
--- /dev/null
+++ b/pkgs/applications/graphics/giv/build.patch
@@ -0,0 +1,44 @@
+Get the environment propagated to scons forked childs, and correct the dicom plugin about
+a typedef of size_t that failed at least on x86_64-linux.
+
+diff --git a/SConstruct b/SConstruct
+index 16eccd9..603e931 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -7,8 +7,7 @@ else:
+     cppflags = ['-O2']
+     variant = 'Release'
+ 
+-env = Environment(LIBPATH=[],
+-                  CPPFLAGS = cppflags)
++env = Environment(ENV = os.environ)
+ 
+ env['SBOX'] = False
+ 
+diff --git a/giv/SConstruct b/giv/SConstruct
+index 047839a..2c267aa 100644
+--- a/giv/SConstruct
++++ b/giv/SConstruct
+@@ -3,8 +3,9 @@
+ 
+ import sys
+ import re
++import os
+ 
+-env = Environment()
++env = Environment(ENV = os.environ)
+ 
+ src = ["giv.c",
+        "giv-backstore.c",
+diff --git a/src/plugins/dcmtk/SConstruct.standalone b/src/plugins/dcmtk/SConstruct.standalone
+index ffce001..74246f8 100644
+--- a/src/plugins/dcmtk/SConstruct.standalone
++++ b/src/plugins/dcmtk/SConstruct.standalone
+@@ -1,4 +1,6 @@
+-env = Environment()
++import os
++
++env = Environment(ENV = os.environ)
+ 
+ variant = "Debug"
+ 
diff --git a/pkgs/applications/graphics/giv/default.nix b/pkgs/applications/graphics/giv/default.nix
new file mode 100644
index 000000000000..d32ef5bbebc9
--- /dev/null
+++ b/pkgs/applications/graphics/giv/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, gdk_pixbuf, scons, pkgconfig, gtk, glib,
+  pcre, cfitsio, perl, gob2, vala, libtiff }:
+
+stdenv.mkDerivation rec {
+  name = "giv-0.9.19";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/giv/${name}.tar.gz";
+    sha256 = "07sgpp4k27417ymavcvil4waq6ac2mj08g42g1l52l435xm5mnh7";
+  };
+
+  # It built code to be put in a shared object without -fPIC
+  NIX_CFLAGS_COMPILE = "-fPIC";
+
+  prePatch = ''
+    sed -i s,/usr/bin/perl,${perl}/bin/perl, doc/eperl
+    sed -i s,/usr/local,$out, SConstruct 
+  '';
+
+  patches = [ ./build.patch ./union.patch ];
+
+  buildPhase = "scons";
+
+  installPhase = "scons install";
+
+  buildInputs = [ gdk_pixbuf pkgconfig gtk glib scons pcre cfitsio perl gob2 vala libtiff ];
+
+  meta = {
+    description = "Cross platform image and hierarchical vector viewer based";
+    homepage = http://giv.sourceforge.net/giv/;
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/graphics/giv/union.patch b/pkgs/applications/graphics/giv/union.patch
new file mode 100644
index 000000000000..f12fce036135
--- /dev/null
+++ b/pkgs/applications/graphics/giv/union.patch
@@ -0,0 +1,38 @@
+Already reported uptream
+
+diff --git a/src/giv-data.h b/src/giv-data.h
+index 64e7696..d34bfe4 100644
+--- a/src/giv-data.h
++++ b/src/giv-data.h
+@@ -88,7 +88,7 @@ typedef struct
+ typedef struct
+ {
+   gint op;
+-  union
++  struct
+   {
+     struct
+     {
+diff --git a/src/giv_types.h b/src/giv_types.h
+index 02abebe..c3cfb78 100644
+--- a/src/giv_types.h
++++ b/src/giv_types.h
+@@ -11,13 +11,11 @@ typedef struct {
+ 
+ typedef struct {
+   gint op;
+-  union {
+-    struct {
+-      gdouble x,y;
+-    } point;
+-    double arc_dev;
+-    text_mark_t *text_object;
+-  } data;
++  struct {
++    gdouble x,y;
++  } point;
++  double arc_dev;
++  text_mark_t *text_object;
+ } point_t;
+ 
+ typedef struct {
diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix
index b1a940b9b56d..795417dbf5b3 100644
--- a/pkgs/applications/graphics/hugin/default.nix
+++ b/pkgs/applications/graphics/hugin/default.nix
@@ -3,11 +3,11 @@
  glew, libXmu, libXi }:
 
 stdenv.mkDerivation rec {
-  name = "hugin-2010.0.0";
+  name = "hugin-2010.4.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/hugin/${name}.tar.gz";
-    sha256 = "08xm7ggfrh536lqvdzw7zg09p2awbclw5r7i8c59gf092w1cac7d";
+    url = "mirror://sourceforge/hugin/${name}.tar.bz2";
+    sha256 = "13n3p4f39mbdydsjqy48csjgvv30lfcwvln5y5dyy95lyrfwcp6l";
   };
 
   NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 08adb7902dae..0da9bf0b41c0 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -4,11 +4,11 @@
 , gsl, python, pyxml, lxml, poppler }:
 
 stdenv.mkDerivation rec {
-  name = "inkscape-0.48.0";
+  name = "inkscape-0.48.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/inkscape/${name}.tar.bz2";
-    sha256 = "0w72xf76vxpm3fpslmix0x71l2rd2sdhrvgwx2vk7hxfjqdxib1n";
+    sha256 = "11mvwil787pj3kx3qvjqvd6z5hlk40i6g95g4vs52hrp2ifs9ga4";
   };
 
   patches = [ ./configure-python-libs.patch ]; 
diff --git a/pkgs/applications/graphics/jbrout/default.nix b/pkgs/applications/graphics/jbrout/default.nix
new file mode 100644
index 000000000000..7c3826369ee9
--- /dev/null
+++ b/pkgs/applications/graphics/jbrout/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchsvn, buildPythonPackage, python, pyGtkGlade, makeWrapper, pyexiv2, lxml, pil, fbida, which }:
+
+buildPythonPackage {
+  name = "jbrout-338";
+  version = "338";
+  src = fetchsvn {
+    url = "http://jbrout.googlecode.com/svn/trunk";
+    rev = "338";
+    sha256 = "0257ni4vkxgd0qhs73fw5ppw1qpf11j8fgwsqc03b1k1yv3hk4hf";
+  };
+
+  doCheck = false;
+# XXX: preConfigure to avoid this
+#  File "/nix/store/vnyjxn6h3rbrn49m25yyw7i1chlxglhw-python-2.7.1/lib/python2.7/zipfile.py", line 348, in FileHeader
+#    len(filename), len(extra))
+#struct.error: ushort format requires 0 <= number <= USHRT_MAX
+
+  preConfigure = ''
+    find | xargs touch
+  '';
+
+  postInstall = ''
+    ensureDir $out/bin
+    echo '#!/bin/sh' > $out/bin/jbrout
+    echo "python $out/lib/python2.7/site-packages/jbrout-src-py2.7.egg/jbrout/jbrout.py" >> $out/bin/jbrout
+    chmod +x $out/bin/jbrout
+
+    wrapProgram $out/bin/jbrout \
+            --set PYTHONPATH "$out/lib/python:$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pyexiv2}):$(toPythonPath ${lxml}):$(toPythonPath ${pil}):$PYTHONPATH" \
+            --set PATH "${fbida}/bin:${which}/bin:$PATH"
+  '';
+
+  buildInputs = [ python pyGtkGlade makeWrapper pyexiv2 lxml pil fbida which ];
+  meta = {
+    homepage = "http://code.google.com/p/jbrout";
+    description = "jBrout is a photo manager";
+  };
+}
diff --git a/pkgs/applications/graphics/kipi-plugins/default.nix b/pkgs/applications/graphics/kipi-plugins/default.nix
index c3fe93a77ea8..96ab03a2784d 100644
--- a/pkgs/applications/graphics/kipi-plugins/default.nix
+++ b/pkgs/applications/graphics/kipi-plugins/default.nix
@@ -1,20 +1,21 @@
-{ stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2,
-kdegraphics, kdepimlibs, libxml2, libxslt, gettext, opencv, libgpod, gtk }:
+{ stdenv, fetchurl, kdelibs, qimageblitz, qca2, libkexiv2, libkdcraw, libkipi
+, libksane, kdepimlibs, libxml2, libxslt, gettext, opencv, libgpod, gdk_pixbuf
+, qjson , pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "kipi-plugins-1.5.0";
+  name = "kipi-plugins-1.9.0";
 
   src = fetchurl { 
     url = "mirror://sourceforge/kipi/${name}.tar.bz2";
-    sha256 = "1wsqh0lbsqyzdfmb9f53bmmypw00n80p62ym4pnxb8w0zwlhbkbw";
+    sha256 = "0k4k9v1rj7129n0s0i5pvv4rabx0prxqs6sca642fj95cxc6c96m";
   };
 
-  buildInputs = [ cmake qt4 kdelibs kdegraphics automoc4 phonon qimageblitz qca2 kdepimlibs 
-    libxml2 libxslt gettext opencv libgpod gtk ];
+  buildInputs =
+    [ kdelibs libkexiv2 libkdcraw libkipi qimageblitz qca2 kdepimlibs libxml2
+      libksane libxslt gettext opencv libgpod gdk_pixbuf qjson
+    ];
 
-  KDEDIRS = kdegraphics;
-
-  patches = [ ./find-gdk.patch ];
+  buildNativeInputs = [ pkgconfig ];
 
   meta = {
     description = "Photo Management Program";
diff --git a/pkgs/applications/graphics/kipi-plugins/find-gdk.patch b/pkgs/applications/graphics/kipi-plugins/find-gdk.patch
deleted file mode 100644
index 22dcf0323fcb..000000000000
--- a/pkgs/applications/graphics/kipi-plugins/find-gdk.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/cmake/modules/FindGdk.cmake b/cmake/modules/FindGdk.cmake
-index 033959a..ff61961 100644
---- a/cmake/modules/FindGdk.cmake
-+++ b/cmake/modules/FindGdk.cmake
-@@ -23,8 +23,9 @@ else (GDK_INCLUDE_DIR AND GDK_LIBRARIES)
-     set(GDK_DEFINITIONS ${_GDKCflags})
-   endif(NOT WIN32)
- 
--  FIND_PATH(GDK_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h /usr/include/gtk-2.0
--    ${_GDKIncDir}
-+  FIND_PATH(GDK_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h
-+    HINTS ${_GDKIncDir}
-+	PATH_SUFFIXES gtk-2.0
-   )
-   
-   FIND_LIBRARY(GDK_LIBRARIES NAMES gdk_pixbuf-2.0
diff --git a/pkgs/applications/graphics/minidjvu/default.nix b/pkgs/applications/graphics/minidjvu/default.nix
new file mode 100644
index 000000000000..8f7ba7929147
--- /dev/null
+++ b/pkgs/applications/graphics/minidjvu/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, libtiff, gettext }:
+
+stdenv.mkDerivation {
+  name = "minidjvu-0.8";
+  src = fetchurl {
+    url = mirror://sourceforge/minidjvu/minidjvu-0.8.tar.gz;
+    sha256 = "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79";
+  };
+
+  patchPhase = ''
+    sed -i s,/usr/bin/gzip,gzip, Makefile.in
+  '';
+
+  buildInputs = [ libtiff gettext];
+
+  preInstall = ''
+    ensureDir $out/lib
+  '';
+
+  meta = {
+    homepage = http://djvu.sourceforge.net/djview4.html;
+    description = "Black-and-white djvu page encoder and decoder that use interpage information";
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.viric ];
+  };
+}
diff --git a/pkgs/applications/graphics/ocrad/default.nix b/pkgs/applications/graphics/ocrad/default.nix
new file mode 100644
index 000000000000..88ca6a6c5417
--- /dev/null
+++ b/pkgs/applications/graphics/ocrad/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "ocrad-0.21";
+
+  src = fetchurl {
+    url = "mirror://gnu/ocrad/${name}.tar.gz";
+    sha256 = "1k58ha70r0cqahssx67hfgyzia9ymf691yay06n7nrkbklii3isf";
+  };
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU Ocrad, optical character recognition (OCR) program & library";
+
+    longDescription =
+      '' GNU Ocrad is an OCR (Optical Character Recognition) program based on
+         a feature extraction method.  It reads images in pbm (bitmap), pgm
+         (greyscale) or ppm (color) formats and produces text in byte (8-bit)
+         or UTF-8 formats.
+
+         Also includes a layout analyser able to separate the columns or
+         blocks of text normally found on printed pages.
+
+         Ocrad can be used as a stand-alone console application, or as a
+         backend to other programs.
+      '';
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 99bed17c966c..88e3d32080c5 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -1,20 +1,41 @@
-{ fetchurl, stdenv, cmake, qt4 }:
+{ fetchurl, stdenv, cmake, qt4
+, hdf5
+, mpich2
+, python
+, libxml2
+, mesa
+}:
 
 stdenv.mkDerivation rec {
-  name = "paraview-3.8.1";
+  name = "paraview-3.10.1";
   src = fetchurl {
-    url = "http://www.paraview.org/files/v3.8/ParaView-3.8.1.tar.gz";
-    sha256 = "0g169vc956gifkd90lcini63dkr5x3id3hkwcwxzriqamxr72r1p";
+    url = "http://www.paraview.org/files/v3.10/ParaView-3.10.1.tar.gz";
+    sha256 = "1z2wvywpd3rvz4jhfs3mi35hsx4yqkdim58d075jx9kg7gifwga5";
   };
 
+  # [  5%] Generating vtkGLSLShaderLibrary.h
+  # ../../../bin/ProcessShader: error while loading shared libraries: libvtksys.so.pv3.10: cannot open shared object file: No such file or directory
   preConfigure = ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/paraview-3.8"
+    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/paraview-3.10 -rpath ../../../bin -rpath ../../bin"
   '';
+  cmakeFlags = [
+#    "-DPARAVIEW_USE_MPI:BOOL=ON"
+    "-DPARAVIEW_USE_SYSTEM_HDF5:BOOL=ON"
+    "-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON"
+    "-DPARAVIEW_ENABLE_PYTHON:BOOL=ON"
+#  use -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF \ to fix make install error: http://www.cmake.org/pipermail/paraview/2011-February/020268.html
+    "-DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF"
+    "-DCMAKE_SKIP_BUILD_RPATH=ON"
+    "-DVTK_USE_RPATH:BOOL=ON"
+    "-DPARAVIEW_INSTALL_DEVELOPMENT=ON"
+#    "-DPYTHON_INCLUDE_DIR=${python}/include"
+#    "-DPYTHON_LIBRARY="
+  ];
 
   # I don't enable it due to memory bounds
   enableParallelBuilding = false;
 
-  buildInputs = [ cmake qt4 ];
+  buildInputs = [ cmake qt4 hdf5 mpich2 python libxml2 mesa ];
 
   meta = {
     homepage = "http://www.paraview.org/";
diff --git a/pkgs/applications/graphics/tesseract/default.nix b/pkgs/applications/graphics/tesseract/default.nix
new file mode 100644
index 000000000000..07a160a2e486
--- /dev/null
+++ b/pkgs/applications/graphics/tesseract/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, libtiff }:
+
+let
+  f = lang : sha256 : let
+      src = fetchurl {
+        url = "http://tesseract-ocr.googlecode.com/files/${lang}.traineddata.gz";
+        inherit sha256;
+      };
+    in 
+      "gunzip -c ${src} > $out/share/tessdata/${lang}.traineddata";
+
+  extraLanguages = ''
+    ${f "cat" "1qndk8qygw9bq7nzn7kzgxkm3jhlq7jgvdqpj5id4rrcaavjvifw"}
+    ${f "rus" "0yjzks189bgcmi2vr4v0l0fla11qdrw3cb1nvpxl9mdis8qr9vcc"}
+    ${f "spa" "1q1hw3qi95q5ww3l02fbhjqacxm34cp65fkbx10wjdcg0s5p9q2x"}
+    ${f "nld" "0cbqfhl2rwb1mg4y1140nw2vhhcilc0nk7bfbnxw6bzj1y5n49i8"}
+  '';
+in
+
+stdenv.mkDerivation {
+  name = "tesseract-3.0.0";
+
+  src = fetchurl {
+    url = http://tesseract-ocr.googlecode.com/files/tesseract-3.00.tar.gz;
+    sha256 = "111r9hy1rcs2ch4kdi9dkzwch3xg38vv379sf3cjpkswkigx8clw";
+  };
+
+  buildInputs = [ libtiff ];
+
+  postInstall = extraLanguages;
+
+  meta = {
+    description = "OCR engine";
+    homepage = http://code.google.com/p/tesseract-ocr/;
+    license = "Apache2.0";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/graphics/xscreensaver/default.nix b/pkgs/applications/graphics/xscreensaver/default.nix
index 82d5bcc0b3af..7458626769a4 100644
--- a/pkgs/applications/graphics/xscreensaver/default.nix
+++ b/pkgs/applications/graphics/xscreensaver/default.nix
@@ -1,30 +1,29 @@
 { stdenv, fetchurl, pkgconfig, bc, perl, pam
 , libXext, libXScrnSaver, libX11, libXrandr, libXmu, libXxf86vm, libXrender
 , libXxf86misc
-, libjpeg, mesa, gtk , libxml2, libglade}:
+, libjpeg, mesa, gtk, libxml2, libglade
+}:
 
 stdenv.mkDerivation rec {
-  version = "5.12";
+  version = "5.14";
   name = "xscreensaver-${version}";
 
   src = fetchurl {
     url = "http://www.jwz.org/xscreensaver/${name}.tar.gz";
-    sha256="1knvxxr50iq3wrx1qsgg174gzv7xg8c74i1a66ff55f8flksa7di";
+    sha256 = "08zhxccdny7198x4yi3hm7jrw98bi3mnc1c4fwhmf5rf8l7h9siy";
   };
 
   buildInputs =
     [ pkgconfig bc perl libjpeg mesa gtk libxml2 libglade pam
-    libXext libXScrnSaver libX11 libXrandr libXmu libXxf86vm libXrender
-    libXxf86misc ];
+      libXext libXScrnSaver libX11 libXrandr libXmu libXxf86vm libXrender
+      libXxf86misc
+    ];
 
   configureFlags =
-    [
-      "--with-gl" "--with-pam" "--with-pixbuf" "--with-proc-interrupts"
-
+    [ "--with-gl" "--with-pam" "--with-pixbuf" "--with-proc-interrupts"
       "--with-dpms-ext" "--with-randr-ext" "--with-xinerama-ext"
       "--with-xf86vmode-ext" "--with-xf86gamma-ext" "--with-randr-ext"
       "--with-xshm-ext" "--with-xdbe-ext" "--without-readdisplay"
-
       "--with-x-app-defaults=\${out}/share/xscreensaver/app-defaults"
     ];
 
diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix
index 24d01dae0595..6182931de96e 100644
--- a/pkgs/applications/misc/adobe-reader/default.nix
+++ b/pkgs/applications/misc/adobe-reader/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, libX11, cups, glib, pango, atk, gtk, zlib, libxml2 }:
+{ stdenv, fetchurl, libX11, cups, gtkLibs, zlib, libxml2 }:
 
 assert stdenv.system == "i686-linux";
 
 stdenv.mkDerivation {
-  name = "adobe-reader-9.4-1";
+  name = "adobe-reader-9.4.2-1";
   
   builder = ./builder.sh;
   
   src = fetchurl {
-    url = http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.4.0/enu/AdbeRdr9.4-1_i486linux_enu.tar.bz2;
-    sha256 = "093msw0b5k3ab0vv7bh4n81fxp51s2lynvsm076i5jvlp71l8adf";
+    url = http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.4.2/enu/AdbeRdr9.4.2-1_i486linux_enu.tar.bz2;
+    sha256 = "0xm8ngr7lslhxli9ly1g2w7ichip88vpf7lfx1ma0liaw4m2gv0h";
   };
 
   # !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu.
@@ -17,7 +17,13 @@ stdenv.mkDerivation {
   # versions.
   
   libPath = stdenv.lib.makeLibraryPath
-    [ stdenv.gcc.gcc libX11 glib pango atk gtk zlib libxml2 cups ];
+    [ stdenv.gcc.gcc libX11 zlib libxml2 cups 
+      gtkLibs.pango
+      gtkLibs.atk
+      gtkLibs.gtk
+      gtkLibs.glib
+      gtkLibs.gdk_pixbuf
+    ];
   
   meta = {
     description = "Adobe Reader, a viewer for PDF documents";
diff --git a/pkgs/applications/misc/bitcoin/default.nix b/pkgs/applications/misc/bitcoin/default.nix
new file mode 100644
index 000000000000..9d9ddb056daa
--- /dev/null
+++ b/pkgs/applications/misc/bitcoin/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv, openssl, db4, boost, zlib, glib, libSM, gtk, wxGTK, miniupnpc }:
+
+stdenv.mkDerivation rec {
+  version = "0.3.24";
+  name = "bitcoin-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bitcoin/Bitcoin/${name}/${name}-src.tar.gz";
+    sha256 = "18n8i37c478b275m2x82411i1fsw8l34qm1k65ynnw38fpaj4h3r";
+  };
+
+  buildInputs = [ openssl db4 boost zlib glib libSM gtk wxGTK miniupnpc ];
+
+  preConfigure = ''
+    cd src
+    substituteInPlace makefile.unix \
+      --replace "-Wl,-Bstatic" "" \
+      --replace "-Wl,-Bdynamic" "" \
+      --replace "DEBUGFLAGS=-g -D__WXDEBUG__" "DEBUGFLAGS=" \
+  '';
+
+  makefile = "makefile.unix";
+
+  buildFlags = "bitcoin bitcoind";
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp bitcoin $out/bin
+    cp bitcoind $out/bin
+  '';
+
+  meta = { 
+      description = "Bitcoin is a peer-to-peer currency";
+      longDescription=''
+Bitcoin is a free open source peer-to-peer electronic cash system that is
+completely decentralized, without the need for a central server or trusted
+parties.  Users hold the crypto keys to their own money and transact directly
+with each other, with the help of a P2P network to check for double-spending.
+      '';
+      homepage = "http://www.bitcoin.org/";
+      maintainers = [ stdenv.lib.maintainers.roconnor ];
+      license = "MIT";
+  };
+}
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 87d91e59823e..75d737e5996e 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -1,23 +1,26 @@
-{stdenv, fetchurl, cmake, mesa, gettext, python, libjpeg, libpng, zlib, openal, SDL
-, openexr, libsamplerate, libXi, libtiff, ilmbase }:
+{ stdenv, fetchurl, SDL, cmake, gettext, ilmbase, libXi, libjpeg,
+libpng, libsamplerate, libtiff, mesa, openal, openexr, openjpeg,
+python, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "blender-2.50a1";
+  name = "blender-2.57";
 
   src = fetchurl {
     url = "http://download.blender.org/source/${name}.tar.gz";
-    sha256 = "1cik05fmf9b8z3qpwsm6q9h1ia87w1piz87hxhfs24jw6l5pyiwr";
+    sha256 = "1f4l0zkfmbd8ydzwvmb5jw89y7ywd9k8m2f1b3hrdpgjcqhq3lcb";
   };
 
-  buildInputs = [ cmake mesa gettext python libjpeg libpng zlib openal SDL openexr libsamplerate
-    libXi libtiff ilmbase ];
+  buildInputs = [ cmake mesa gettext python libjpeg libpng zlib openal
+    SDL openexr libsamplerate libXi libtiff ilmbase openjpeg ];
 
-  cmakeFlags = [ "-DOPENEXR_INC=${openexr}/include/OpenEXR" "-DWITH_OPENCOLLADA=OFF"
-    "-DPYTHON_LIBPATH=${python}/lib" ];
+  patchPhase = ''
+      sed -e "s@/usr/local@${python}@" -i build_files/cmake/FindPythonLibsUnix.cmake
+  '';
 
-  NIX_CFLAGS_COMPILE = "-iquote ${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}";
+  cmakeFlags = [ "-DOPENEXR_INC=${openexr}/include/OpenEXR"
+    "-DWITH_OPENCOLLADA=OFF" "-DWITH_INSTALL_PORTABLE=OFF"];
 
-  patches = [ ./python-chmod.patch ];
+  NIX_CFLAGS_COMPILE = "-iquote ${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}";
 
   meta = { 
     description = "3D Creation/Animation/Publishing System";
diff --git a/pkgs/applications/misc/blender/python-chmod.patch b/pkgs/applications/misc/blender/python-chmod.patch
deleted file mode 100644
index bda04b1cbb41..000000000000
--- a/pkgs/applications/misc/blender/python-chmod.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-As the code copied from the nix store, the files there do not have the 'writeable' permission.
-Hence this fix, needed on nix but not on usual LSB linuces.
-diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index 386ef1b..6a180fa 100644
---- a/source/creator/CMakeLists.txt
-+++ b/source/creator/CMakeLists.txt
-@@ -152,6 +152,7 @@ IF(WITH_INSTALL)
- 				COMMAND mkdir ${TARGETDIR}/.blender/python # PYTHONPATH and PYTHONHOME is set here
- 				COMMAND mkdir ${TARGETDIR}/.blender/python/lib/
- 				COMMAND cp -R ${PYTHON_LIBPATH}/python${PYTHON_VERSION} ${TARGETDIR}/.blender/python/lib/
-+        COMMAND chmod -R +w ${TARGETDIR}/.blender/python/lib/
-         
- 				COMMAND rm -rf ${TARGETDIR}/.blender/python/lib/python${PYTHON_VERSION}/distutils
- 				COMMAND rm -rf ${TARGETDIR}/.blender/python/lib/python${PYTHON_VERSION}/lib2to3
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 3dc6a427f25e..f892cf175c1d 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
-, imagemagick, libjpeg, fontconfig, podofo, qt4, mechanize, lxml, dateutil
-, pil, cssutils, beautifulsoap, makeWrapper, unrar, chmlib
+, imagemagick, libjpeg, fontconfig, podofo, qt4
+, pil, makeWrapper, unrar, chmlib, pythonPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -15,8 +15,9 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ python pyqt4 sip popplerQt4 pkgconfig libpng imagemagick libjpeg
-      fontconfig podofo qt4 mechanize lxml dateutil pil makeWrapper
-      cssutils beautifulsoap chmlib
+      fontconfig podofo qt4 pil makeWrapper chmlib 
+      pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
+      pythonPackages.cssutils pythonPackages.beautifulsoap pythonPackages.sqlite3
     ];
 
   installPhase = ''
diff --git a/pkgs/applications/misc/djvulibre/default.nix b/pkgs/applications/misc/djvulibre/default.nix
index 0826f7241c4c..b1001976ea04 100644
--- a/pkgs/applications/misc/djvulibre/default.nix
+++ b/pkgs/applications/misc/djvulibre/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, lib, useQt3 ? false, libjpeg, libtiff, libpng, ghostscript
 , libungif, zlib, x11, libX11, mesa, qt3 }:
 
-stdenv.mkDerivation {
-  name = "djvulibre-3.5.22";
+stdenv.mkDerivation rec {
+  name = "djvulibre-3.5.24";
 
   src = fetchurl {
-    url = mirror://sourceforge/djvu/djvulibre-3.5.22.tar.gz;
-    sha256 = "1gphi67qiq1ky7k8vymkwcgla80cwy8smk1rla6grxdqipwl54ix";
+    url = "mirror://sourceforge/djvu/${name}.tar.gz";
+    sha256 = "0d1592cmc7scg2jzah47mnvbqldhxb1x9vxm7y64a3iasa0lqwy0";
   };
 
   buildInputs = [ libjpeg libtiff libpng ghostscript zlib libungif ] ++
diff --git a/pkgs/applications/misc/dmenu/default.nix b/pkgs/applications/misc/dmenu/default.nix
index a9ea63368c5d..2a55512ff26e 100644
--- a/pkgs/applications/misc/dmenu/default.nix
+++ b/pkgs/applications/misc/dmenu/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libX11, libXinerama}:
 
 stdenv.mkDerivation rec {
-  name = "dmenu-4.1.1";
+  name = "dmenu-4.4";
 
   src = fetchurl {
     url = "http://dl.suckless.org/tools/${name}.tar.gz";
-    sha256 = "02p687yi3fmnpkbvnskpryz54dc4i8pzf1spxc554s91wrd7fpwy";
+    sha256 = "016hfnmk4kb2n3slxrg4z27p2l8x1awqsig961syssw4p1zybpav";
   };
 
   buildInputs = [ libX11 libXinerama ];
diff --git a/pkgs/applications/misc/epdfview/default.nix b/pkgs/applications/misc/epdfview/default.nix
index 4d88096d0423..3ce652c1a332 100644
--- a/pkgs/applications/misc/epdfview/default.nix
+++ b/pkgs/applications/misc/epdfview/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, pkgconfig, gtk, poppler }:
 stdenv.mkDerivation rec {
-  name = "epdfview-0.1.7";
+  name = "epdfview-0.1.8";
   src = fetchurl {
     url = "http://trac.emma-soft.com/epdfview/chrome/site/releases/${name}.tar.bz2";
-    sha256 = "1s2af09ij5jjqryv4dl10flsdk5p953qp94dymn93fnl93rv1yqa";
+    sha256 = "1w7qybh8ssl4dffi5qfajq8mndw7ipsd92vkim03nywxgjp4i1ll";
   };
   buildInputs = [ pkgconfig gtk poppler ];
   meta = {
diff --git a/pkgs/applications/misc/evince/default.nix b/pkgs/applications/misc/evince/default.nix
index 986825426135..ac81a09c96d8 100644
--- a/pkgs/applications/misc/evince/default.nix
+++ b/pkgs/applications/misc/evince/default.nix
@@ -3,16 +3,16 @@
 , libgnome, libgnomeui, scrollkeeper, libxslt
 , libglade, gnome_keyring, dbus, dbus_glib
 , poppler, libspectre, djvulibre, shared_mime_info
-, makeWrapper, which
+, makeWrapper, which, ghostscript
 , recentListSize ? null # 5 is not enough, allow passing a different number
 }:
 
 stdenv.mkDerivation rec {
-  name = "evince-2.26.0";
+  name = "evince-2.32.0";
 
   src = fetchurl {
-    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.26/${name}.tar.bz2";
-    sha256 = "1wsl5vdrj0829wq223dryq5p7izgzsz6mfl4igix7b5wga42zff1";
+    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.32/${name}.tar.bz2";
+    sha256 = "2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7";
   };
 
   buildInputs = [
@@ -21,10 +21,13 @@ stdenv.mkDerivation rec {
     scrollkeeper gnome_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";
 
@@ -37,7 +40,7 @@ stdenv.mkDerivation rec {
     # Tell Glib/GIO about the MIME info directory, which is used
     # by `g_file_info_get_content_type ()'.
     wrapProgram "$out/bin/evince" \
-      --set XDG_DATA_DIRS "${shared_mime_info}/share"
+      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
   '';
 
   meta = {
@@ -53,4 +56,4 @@ stdenv.mkDerivation rec {
 
     license = "GPLv2+";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix
index f80ea6ef453e..79d27eea8487 100644
--- a/pkgs/applications/misc/fetchmail/default.nix
+++ b/pkgs/applications/misc/fetchmail/default.nix
@@ -1,18 +1,33 @@
-args: with args;
+{ stdenv, fetchurl, openssl }:
+
+let
+  version = "6.3.20";
+in
 stdenv.mkDerivation {
-  name="fetchmail-6.3.8";
+  name="fetchmail-${version}";
+
   src = fetchurl {
-    url = http://download.berlios.de/fetchmail/fetchmail-6.3.8.tar.bz2;
-    sha256 = "5612f9af367f641e0efd084f44fcf1889669e711dbd8c60f6b7953e494d1b09b";
+    url = "http://download.berlios.de/fetchmail/fetchmail-${version}.tar.bz2";
+    sha256 = "22e94f11d885cb9330a197fd80217d44f65e6b087e4d4b4d83e573adfc24aa7b";
   };
 
   buildInputs = [ openssl ];
 
   configureFlags = "--with-ssl=${openssl}";
 
-  patches = [ ./security-fix.patch ];
-
   meta = {
-    homepage = http://www.fetchmail.info;
+    homepage = "http://www.fetchmail.info/";
+    description = "a full-featured remote-mail retrieval and forwarding utility";
+    longDescription = ''
+      A full-featured, robust, well-documented remote-mail retrieval and
+      forwarding utility intended to be used over on-demand TCP/IP links
+      (such as SLIP or PPP connections). It supports every remote-mail
+      protocol now in use on the Internet: POP2, POP3, RPOP, APOP, KPOP,
+      all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and
+      IPSEC.
+    '';
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/applications/misc/flite/default.nix b/pkgs/applications/misc/flite/default.nix
deleted file mode 100644
index 8a2414ec885a..000000000000
--- a/pkgs/applications/misc/flite/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation {
-  name = "flite-1.3-release";
-
-  src = fetchurl {
-    url = http://www.speech.cs.cmu.edu/flite/packed/flite-1.3/flite-1.3-release.tar.gz;
-    sha256 = "12wanxx57bbqgkag54dlqzv6h2kr9053p0z8mkxs0mqy03vja8lj";
-  };
-
-  buildPhase =
-    ''
-      unset buildPhase
-      ensureDir $out/lib
-      buildPhase
-    '';
-
-  installPhase =
-    ''
-      ensureDir $out/share/flite
-      cp -r bin $out
-    '';
-
-  meta = { 
-    description = "Flite text to speech engine";
-    homepage = http://www.speech.cs.cmu.edu/flite/download.html;
-    license = "BSD as-is";
-  };
-}
diff --git a/pkgs/applications/misc/googleearth/default.nix b/pkgs/applications/misc/googleearth/default.nix
index 7e2a12adb018..aa4807a34f5a 100644
--- a/pkgs/applications/misc/googleearth/default.nix
+++ b/pkgs/applications/misc/googleearth/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, glibc, mesa, freetype, glib, libSM, libICE, libXi, libXv,
-libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, qt4,
-zlib }:
+{ stdenv, fetchurl, glibc, mesa, freetype, glib, libSM, libICE, libXi, libXv
+, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, qt4
+, zlib, fontconfig }:
 
 /* I haven't found any x86_64 package from them */
 assert stdenv.system == "i686-linux";
 
 stdenv.mkDerivation {
-  name = "googleearth-5.2.0001";
+  name = "googleearth-6.0.3.2197";
 
   src = fetchurl {
     url = http://dl.google.com/earth/client/current/GoogleEarthLinux.bin;
-    sha256 = "2e6fcbd2384446e2a6eed8ca23173e32c5f3f9ae4d1168e2e348c3924fd2bf30";
+    sha256 = "0bcpmnlk03382x577qbnbw3i6y08hr3qmg85pqj35scnl6van74c";
   };
 
   buildNativeInputs = [
@@ -32,6 +32,7 @@ stdenv.mkDerivation {
     libX11 
     qt4
     zlib
+    fontconfig
   ];
 
   phases = "unpackPhase installPhase";
diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix
index 6b08069054c8..02fac4d42142 100644
--- a/pkgs/applications/misc/grip/default.nix
+++ b/pkgs/applications/misc/grip/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, gtk, glib, pkgconfig, libgnome, libgnomeui, vte
-, curl, cdparanoia, libid3tag }:
+, curl, cdparanoia, libid3tag, ncurses }:
 
 stdenv.mkDerivation {
   name = "grip-3.2.0";
@@ -9,9 +9,9 @@ stdenv.mkDerivation {
     sha256 = "1jh5x35rq15n8ivlp9wbdx8x9mj6agf5rfdv8sd6gai851zsclas";
   };
 
-  buildInputs = [ gtk glib pkgconfig libgnome libgnomeui vte curl cdparanoia libid3tag ];
+  buildInputs = [ gtk glib pkgconfig libgnome libgnomeui vte curl cdparanoia libid3tag ncurses ];
 
-  meta = { 
+  meta = {
     description = "GTK+-based audio CD player/ripper";
     homepage = http://nostatic.org/grip;
     license = "GPLv2";
diff --git a/pkgs/applications/misc/gv/default.nix b/pkgs/applications/misc/gv/default.nix
index ff1ff5293a53..efce2c935614 100644
--- a/pkgs/applications/misc/gv/default.nix
+++ b/pkgs/applications/misc/gv/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, Xaw3d, ghostscriptX, perl }:
 
 stdenv.mkDerivation rec {
-  name = "gv-3.7.1";
+  name = "gv-3.7.2";
 
   src = fetchurl {
     url = "mirror://gnu/gv/${name}.tar.gz";
-    sha256 = "0541p3jlxvvw4136250rizybrl8sqyg03avy0w4r4kiw9w5f31ys";
+    sha256 = "1cj03rb7xs0l3krax4z2llwnldh876p1h3p5vql4gygcxki8vhk2";
   };
 
   buildInputs = [ Xaw3d ghostscriptX perl ];
diff --git a/pkgs/applications/misc/hello/ex-2/default.nix b/pkgs/applications/misc/hello/ex-2/default.nix
index 62b0059c7ac4..2c62159225dd 100644
--- a/pkgs/applications/misc/hello/ex-2/default.nix
+++ b/pkgs/applications/misc/hello/ex-2/default.nix
@@ -1,13 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "hello-2.6";
+  name = "hello-2.7";
 
-  x = 108;
-  
   src = fetchurl {
     url = "mirror://gnu/hello/${name}.tar.gz";
-    sha256 = "1h6fjkkwr7kxv0rl5l61ya0b49imzfaspy7jk9jas1fil31sjykl";
+    sha256 = "1h17p5lgg47lbr2cnp4qqkr0q0f0rpffyzmvs7bvc6vdrxdknngx";
   };
 
   doCheck = true;
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index 93748e21abad..7fde09c2175b 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, perl, gettext, makeWrapper, lib, PerlMagick,
-  TextMarkdown, URI, HTMLParser, HTMLScrubber, HTMLTemplate, TimeDate,
-  CGISession, CGIFormBuilder, DBFile, LocaleGettext, RpcXML, XMLSimple
+{ stdenv, fetchurl, perl, gettext, makeWrapper, lib, PerlMagick, YAML
+, TextMarkdown, URI, HTMLParser, HTMLScrubber, HTMLTemplate, TimeDate
+, CGISession, CGIFormBuilder, DBFile, LocaleGettext, RpcXML, XMLSimple
 , gitSupport ? false
 , git ? null
 , monotoneSupport ? false
@@ -13,23 +13,22 @@ assert monotoneSupport -> (monotone != null);
 
 let
   name = "ikiwiki";
-  version = "3.20100704";
+  version = "3.20110715";
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
     url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
-    sha256 = "1kakh2bf9k0fhvqhn9p9g4wwck64if2y9z23zmlcrm02bw1m6lr9";
+    sha256 = "ef9cbe5ddf484e6b75de05cc6a5b51dfdff1f5920b1c4c66309b1409266df9c7";
   };
 
   buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
     TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
-    RpcXML XMLSimple PerlMagick]
+    RpcXML XMLSimple PerlMagick YAML]
     ++ stdenv.lib.optionals gitSupport [git]
     ++ stdenv.lib.optionals monotoneSupport [monotone];
 
-
   patchPhase = ''
     sed -i s@/usr/bin/perl@${perl}/bin/perl@ pm_filter mdwn2man
     sed -i s@/etc/ikiwiki@$out/etc@ Makefile.PL
@@ -42,11 +41,11 @@ stdenv.mkDerivation {
   configurePhase = "perl Makefile.PL PREFIX=$out";
 
   postInstall = ''
-    for a in $out/bin/*; do
+    for a in "$out/bin/"*; do
       wrapProgram $a --suffix PERL5LIB : $PERL5LIB --prefix PATH : ${perl}/bin:$out/bin \
-      ${lib.optionalString (git != null)
+      ${lib.optionalString gitSupport
         ''--prefix PATH : ${git}/bin \''}
-      ${lib.optionalString (monotone != null)
+      ${lib.optionalString monotoneSupport
         ''--prefix PATH : ${monotone}/bin \''}
       ${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils}
     done
diff --git a/pkgs/applications/misc/jbidwatcher/default.nix b/pkgs/applications/misc/jbidwatcher/default.nix
new file mode 100644
index 000000000000..56c547ce4357
--- /dev/null
+++ b/pkgs/applications/misc/jbidwatcher/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, java }:
+
+stdenv.mkDerivation rec {
+  pname = "jbidwatcher";
+  version = "2.1.5";
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.jbidwatcher.com/download/JBidwatcher-${version}.jar";
+    sha256 = "0nrs9ly56cqn33dm1sjm53pzj1cf7jncwn4c8v0xyva4jqyz2y5p";
+  };
+
+  buildInputs = [ java ];
+
+  jarfile = "$out/share/java/${pname}/JBidwatcher.jar";
+
+  unpackPhase = "true";
+
+  buildPhase = "true";
+
+  installPhase = ''
+    ensureDir "$out/bin"
+    echo > "$out/bin/${pname}" "#!/bin/sh"
+    echo >>"$out/bin/${pname}" "${java}/bin/java -Xmx512m -jar ${jarfile}"
+    chmod +x "$out/bin/${pname}"
+    install -D -m644 ${src} ${jarfile}
+  '';
+
+  meta = {
+    homepage = "http://www.jbidwatcher.com/";
+    description = "monitor and snipe Ebay auctions";
+    license = "LGPL";
+
+    longDescription = ''
+      A Java-based application allowing you to monitor auctions you're
+      not part of, submit bids, snipe (bid at the last moment), and
+      otherwise track your auction-site experience. It includes
+      adult-auction management, MANY currencies (pound, dollar (US,
+      Canada, Australian, and New Taiwanese) and euro, presently),
+      drag-and-drop of auction URLs, an original, unique and powerful
+      'multisniping' feature, a relatively nice UI, and is known to work
+      cleanly under Linux, Windows, Solaris, and MacOSX from the same
+      binary.
+    '';
+
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/applications/misc/k3b/default.nix b/pkgs/applications/misc/k3b/default.nix
index 756adb03f75d..ff2451761dc6 100644
--- a/pkgs/applications/misc/k3b/default.nix
+++ b/pkgs/applications/misc/k3b/default.nix
@@ -1,29 +1,25 @@
 { stdenv, fetchurl, cmake, qt4, perl, shared_mime_info, libvorbis, taglib
 , ffmpeg, flac, libsamplerate, libdvdread, lame, libsndfile, libmad, gettext
-, kdelibs, kdemultimedia, cdrdao, cdrtools, dvdplusrwtools
-, automoc4, phonon, makeWrapper
+, kdelibs, kdemultimedia, automoc4, phonon, makeWrapper
 }:
 
 stdenv.mkDerivation rec {
-  name = "k3b-2.0.1";
+  name = "k3b-2.0.2";
   src = fetchurl {
     url = "mirror://sourceforge/k3b/${name}.tar.bz2";
-    sha256 = "1dyd3i2hqd5xs9rz4f8k74zca91j9sp72lhl0zws2cvqc474ccc6";
+    sha256 = "1kdpylz3w9bg02jg4mjhqz8bq1yb4xi4fqfl9139qcyjq4lny5xg";
   };
 
   buildInputs = [ cmake qt4 perl shared_mime_info libvorbis taglib
                   ffmpeg flac libsamplerate libdvdread lame libsndfile
-                  libmad gettext stdenv.gcc.libc cdrdao cdrtools
-                  kdelibs kdemultimedia automoc4 phonon dvdplusrwtools
+                  libmad gettext stdenv.gcc.libc
+                  kdelibs kdemultimedia automoc4 phonon
                   makeWrapper ];
 
-  postInstall = ''
-    wrapProgram $out/bin/k3b --suffix PATH : "${cdrdao}/bin:${dvdplusrwtools}/bin:${cdrtools}/bin"
-  '';
-
   meta = with stdenv.lib; {
     description = "CD/DVD Burning Application for KDE";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.sander maintainers.urkud ];
+    platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/misc/kde-wacomtablet/default.nix b/pkgs/applications/misc/kde-wacomtablet/default.nix
new file mode 100644
index 000000000000..6da0b8410a0c
--- /dev/null
+++ b/pkgs/applications/misc/kde-wacomtablet/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, automoc4, cmake, kdelibs }:
+
+stdenv.mkDerivation rec {
+  name = "wacomtablet-1.2.5";
+
+  src = fetchurl {
+    url = "http://kde-apps.org/CONTENT/content-files/114856-${name}.tar.gz";
+    sha256 = "11hfab6sqmhvd0m1grc9m9yfi0p7rk0bycj9wqgkgbc8cwgps6sf";
+  };
+
+  buildInputs = [ automoc4 cmake kdelibs ];
+
+  meta = with stdenv.lib; {
+    description = "KDE Wacom graphic tablet configuration tool";
+    license = "GPLv2";
+    homepage = http://kde-apps.org/content/show.php/wacom+tablet?content=114856;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu maintainers.urkud ];
+  };
+}
diff --git a/pkgs/applications/misc/keepassx/default.nix b/pkgs/applications/misc/keepassx/default.nix
new file mode 100644
index 000000000000..375a1ae2419a
--- /dev/null
+++ b/pkgs/applications/misc/keepassx/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, bzip2, qt4, libX11, xextproto, libXtst }:
+
+stdenv.mkDerivation rec {
+  name = "keepassx-0.4.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/keepassx/${name}.tar.gz";
+    sha256 = "cd901a0611ce57e62cf6df7eeeb1b690b5232302bdad8626994eb54adcfa1e85";
+  };
+
+  configurePhase = ''
+    qmake PREFIX=$out 
+  '';
+
+  buildInputs = [ bzip2 qt4 libX11 xextproto libXtst ];
+
+  meta = {
+    description = "Qt password manager compatible with its Win32 and Pocket PC versions";
+    homepage = http://www.keepassx.org/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [qknight];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix
index af0ad61e6699..373824b419f4 100644
--- a/pkgs/applications/misc/krename/default.nix
+++ b/pkgs/applications/misc/krename/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, automoc4, kdelibs, taglib, exiv2, podofo, gettext}:
+{ stdenv, fetchurl, cmake, automoc4, kdelibs, taglib, exiv2, podofo, gettext, qt, phonon }:
 
 stdenv.mkDerivation rec {
   name = "krename-4.0.4";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "12qhclw1vbg5bv6619qd4408y8d1w26499gcr8gwhgfzk0v83hic";
   };
 
-  buildInputs = [ cmake automoc4 kdelibs taglib exiv2 podofo gettext ];
+  buildInputs = [ cmake automoc4 kdelibs taglib exiv2 podofo gettext qt phonon ];
 
   meta = {
     homepage = http://www.krename.net;
diff --git a/pkgs/applications/misc/krusader/default.nix b/pkgs/applications/misc/krusader/default.nix
index 3286c8addb3b..f395e64ddb54 100644
--- a/pkgs/applications/misc/krusader/default.nix
+++ b/pkgs/applications/misc/krusader/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, cmake, qt4, perl, gettext, kdelibs, kdebase, automoc4, phonon}:
+{stdenv, fetchurl, cmake, qt4, perl, gettext, kdelibs, kde_baseapps, automoc4, phonon}:
 
 stdenv.mkDerivation rec {
   name = "krusader-2.2.0-beta1";
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/krusader/${name}.tar.bz2";
     sha256 = "0rbk0hw8p1bb03w74gspljbzhvpbs3dcr6ckp38gh5r80mcmqfbs";
   };
-  buildInputs = [ cmake qt4 perl gettext kdelibs automoc4 phonon kdebase ];
+  buildInputs = [ cmake qt4 perl gettext kdelibs automoc4 phonon kde_baseapps ];
   meta = {
     description = "Norton/Total Commander clone for KDE";
     license = "GPL";
diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix
index 2b646714706e..faddeb70e998 100644
--- a/pkgs/applications/misc/lyx/default.nix
+++ b/pkgs/applications/misc/lyx/default.nix
@@ -1,18 +1,18 @@
 # I haven't put much effort into this expressions .. so some optional depencencies may be missing - Marc
 { fetchurl, stdenv, texLive, python, makeWrapper
-, libX11, qt
+, libX11, qt, xz
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.5";
+  version = "2.0.0";
   name = "lyx-${version}";
 
   src = fetchurl {
-    url = "ftp://ftp.lyx.org/pub/lyx/stable/1.6.x/${name}.tar.bz2";
-    sha256 = "0xxj37l4ghaa2ij5nfxlg90rfw0znipigjlh271mfmwjw9ykcw1n";
+    url = "ftp://ftp.lyx.org/pub/lyx/stable/2.0.x/${name}.tar.xz";
+    sha256 = "a790951d6ed660b254e82d682b478665f119dd522ab4759fdeb5cd8d42f66f61";
   };
 
-  buildInputs = [texLive qt python makeWrapper ];
+  buildInputs = [texLive qt python makeWrapper xz ];
 
   # don't ask me why it can't find libX11.so.6
   postInstall = ''
diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix
new file mode 100644
index 000000000000..08edc32e87e1
--- /dev/null
+++ b/pkgs/applications/misc/makeself/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "makeself-2.1.5";
+  src = fetchurl {
+    url = "http://megastep.org/makeself/makeself.run";
+    sha256 = "0khs19xpid4ng0igrjyz3vsi6a5xyixrrrhgdxpdhd2wnf5nc9w2";
+  };
+  unpackPhase = "sh ${src}";
+  installPhase = ''
+    cd ${name}
+    ensureDir $out/{bin,share/{${name},man/man1}}
+    mv makeself.lsm README $out/share/${name}
+    mv makeself.sh $out/bin/makeself
+    mv makeself.1  $out/share/man/man1/
+    mv makeself-header.sh $out/share/${name}
+    sed -e 's|HEADER=`dirname $0`/makeself-header.sh|HEADER=`dirname $0`/../share/${name}/makeself-header.sh|' -i $out/bin/makeself
+  '';
+  meta = {
+    homepage = http://megastep.org/makeself;
+    description = "Utility to create self-extracting packages";
+  };
+}
diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix
index 4c29855da07a..6d10cbb8c21f 100644
--- a/pkgs/applications/misc/merkaartor/default.nix
+++ b/pkgs/applications/misc/merkaartor/default.nix
@@ -1,23 +1,23 @@
-{stdenv, fetchurl, qt, boost}:
+{stdenv, fetchurl, qt4, boost}:
 
-stdenv.mkDerivation {
-  name = "merkaartor-0.16.0";
+stdenv.mkDerivation rec {
+  name = "merkaartor-0.17.2";
   src = fetchurl {
-    url = http://www.merkaartor.org/downloads/source/merkaartor-0.16.0.tar.bz2;
-    sha256 = "0l33vgwwkqj65i86qq5j33bbf6q02hs8r1frjnd7icqdaqqv08d7";
+    url = "http://merkaartor.be/attachments/download/253/merkaartor-0.17.2.tar.bz2";
+    sha256 = "0akhp9czzn39132mgj9h38nlh4l9ibzn3vh93bfs685zxyn4yps2";
   };
 
   configurePhase = ''
     qmake -makefile PREFIX=$out
   '';
 
-  buildInputs = [ qt boost ];
+  buildInputs = [ qt4 boost ];
 
   meta = {
     description = "An openstreetmap editor";
     homepage = http://merkaartor.org/;
     license = "GPLv2+";
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = qt.meta.platforms;
+    maintainers = with stdenv.lib.maintainers; [viric urkud];
+    inherit (qt4.meta) platforms;
   };
 }
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
index e373392155a7..28f463278d84 100644
--- a/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper, autoconf, automake, boost, file, gettext
+{ stdenv, fetchurl, makeWrapper, boost, file, gettext
 , glib, glibc, gnome_keyring, gtk, gtkmm, intltool, libctemplate, libglade
 , libgnome, libsigcxx, libtool, libuuid, libxml2, libzip, lua, mesa, mysql
 , pango, paramiko, pcre, pexpect, pkgconfig, pycrypto, python, sqlite
@@ -6,22 +6,20 @@
 
 stdenv.mkDerivation rec {
   pname = "mysql-workbench";
-  version = "5.2.30";
+  version = "5.2.33";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://mirror.services.wisc.edu/mysql/Downloads/MySQLGUITools/mysql-workbench-gpl-${version}-src.tar.gz";
-    sha256 = "0dlhnq7pv2ccgm0d7a3hzf9jxa09jzw36h0ljs9vw9q5nyd5kq71";
+    sha256 = "193iikz0wfm3yvazficxfiqb84f34psq0bcasp3l41n9dygbgldc";
   };
 
-  buildInputs = [ autoconf automake boost file gettext glib glibc gnome_keyring gtk gtkmm intltool
+  buildInputs = [ boost file gettext glib glibc gnome_keyring gtk gtkmm intltool
     libctemplate libglade libgnome libsigcxx libtool libuuid libxml2 libzip lua makeWrapper mesa
     mysql paramiko pcre pexpect pkgconfig pycrypto python sqlite ];
 
   preConfigure = ''
     substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "catchsegv" "${glibc}/bin/catchsegv"
-
-    ./autogen.sh --prefix=$out
   '';
 
   postInstall = ''
@@ -29,6 +27,7 @@ stdenv.mkDerivation rec {
       --prefix LD_LIBRARY_PATH : "${python}/lib" \
       --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib64" \
       --prefix PATH : "${gnome_keyring}/bin" \
+      --prefix PATH : "${python}/bin" \
       --set PYTHONPATH $PYTHONPATH \
       --run '
 # The gnome-keyring-daemon must be running.  To allow for environments like
@@ -57,7 +56,7 @@ mkfifo $FIFOCTL
 ) &
 
 exec 19> $FIFOCTL
-            ' 
+            '
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix
new file mode 100644
index 000000000000..3d4e51360212
--- /dev/null
+++ b/pkgs/applications/misc/nut/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, pkgconfig, neon, libusb, hal, openssl, udev}:
+
+stdenv.mkDerivation {
+  name = "nut-2.6.1";
+  src = fetchurl {
+    url = http://www.networkupstools.org/source/2.6/nut-2.6.1.tar.gz;
+    sha256 = "f5c46b856c0cf5b7f0e4b22d82b670af64cc98717a90eaac8723dd402a181c00";
+  };
+
+  buildInputs = [pkgconfig neon libusb hal openssl udev];
+
+  configureFlags = [
+    "--with-all"
+    "--without-snmp" # Until we have it ...
+    "--without-powerman" # Until we have it ...
+    "--without-cgi"
+  ];
+
+  meta = {
+    description = "Network UPS Tools";
+    longDescription = ''
+      Network UPS Tools is a collection of programs which provide a common
+      interface for monitoring and administering UPS, PDU and SCD hardware.
+      It uses a layered approach to connect all of the parts.
+    '';
+    homepage = http://www.networkupstools.org/;
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [ pierron ];
+  };
+}
diff --git a/pkgs/applications/misc/qgis/default.nix b/pkgs/applications/misc/qgis/default.nix
index b49275a65619..7e27736ee7e4 100644
--- a/pkgs/applications/misc/qgis/default.nix
+++ b/pkgs/applications/misc/qgis/default.nix
@@ -1,24 +1,19 @@
-args: with args;
-let inherit (builtins) getAttr;
-    edf = composableDerivation.edf;
-    optionIncLib = name : attr : " -D${name}_INCLUDE_DIR=${getAttr attr args}/incclude"
-                               + " -D${name}_LIBRARY=${getAttr attr args}/lib "; # lib 64?
-in
-composableDerivation.composableDerivation {} {
+{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, x11, sqlite, gsl,
+  pyqt4, qwt, fcgi, python }:
 
-  buildInputs = [ gdal cmake qt flex bison proj geos x11 sqlite gsl pyqt4];
-    cfgOption = [
-                  # without this option it can't find sqlite libs yet (missing symbols..) (TODO)
-                  "-DWITH_INTERNAL_SQLITE3=TRUE"
-                ];
+stdenv.mkDerivation rec {
+  name = "qgis-1.6.0";
 
-  name = "qgis-1.4.0";
+  buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt
+    fcgi ];
+
+  buildNativeInputs = [ cmake python];
+
+  patches = [ ./r14988.diff ];
 
-  # src = args.fetchsvn { url=https://svn.qgis.org/repos/qgis/trunk/qgis;
-  #                md5="ac0560e0a2d4e6258c8639f1e9b56df3"; rev="7704"; };
   src = fetchurl {
-    url = http://download.osgeo.org/qgis/src/qgis_1.4.0.tar.gz;
-    sha256 = "1nn71j9pnkqcprwvzqnybh6ybl0zp50jj04lm769bnjbxknpxq5v";
+    url = "http://qgis.org/downloads/${name}.tar.bz2";
+    sha256 = "0vlz1z3scj3k6nxf3hzfiq7k2773i6xvk6dvj4axs2f4njpnx7pr";
   };
 
   meta = {
@@ -27,18 +22,4 @@ composableDerivation.composableDerivation {} {
     # you can choose one of the following licenses:
     license = [ "GPL" ];
   };
-
-  phases = "unpackPhase buildPhase installPhase";
-  buildPhase = ''pwd; mkdir build; cd build;  VERBOSE=1 cmake -DCMAKE_INSTALL_PREFIX=$out ''${cfgOption} ..'';
-
-  postUnpack = ''
-    export CMAKE_SYSTEM_LIBRARY_PATH=
-    for i in $buildInputs $propagatedBuildInputs; do
-      CMAKE_SYSTEM_LIBRARY_PATH=$i/lib:$CMAKE_SYSTEM_LIBRARY_PATH
-    done
-  '';
-
-  #configurePhase="./autogen.sh --prefix=\$out --with-gdal=\$gdal/bin/gdal-config --with-qtdir=\$qt";
-  # buildPhases="unpackPhase buildPhase";
-
 }
diff --git a/pkgs/applications/misc/qgis/r14988.diff b/pkgs/applications/misc/qgis/r14988.diff
new file mode 100644
index 000000000000..95d55047e1da
--- /dev/null
+++ b/pkgs/applications/misc/qgis/r14988.diff
@@ -0,0 +1,38 @@
+Index: qgis/python/core/conversions.sip
+===================================================================
+--- qgis/python/core/conversions.sip	(revision 14323)
++++ qgis/python/core/conversions.sip	(revision 14988)
+@@ -16,4 +16,5 @@
+ 
+ %Feature QSETINT_CONVERSION
++%Feature QSETTYPE_CONVERSION
+ 
+ %ModuleHeaderCode
+@@ -321,5 +322,5 @@
+ %End
+ 
+-
++%If (QSETTYPE_CONVERSION)
+ template <TYPE>
+ %MappedType QSet<TYPE>
+@@ -395,6 +396,5 @@
+ 
+ };
+-
+-
++%End
+ 
+ template<TYPE>
+Index: qgis/python/CMakeLists.txt
+===================================================================
+--- qgis/python/CMakeLists.txt	(revision 14330)
++++ qgis/python/CMakeLists.txt	(revision 14988)
+@@ -44,4 +44,8 @@
+ ENDIF(NOT PYQT4_VERSION_NUM LESS 263941)
+ 
++IF(NOT PYQT4_VERSION_NUM LESS 264194)	# 0x040802
++  SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QSETTYPE_CONVERSION)
++ENDIF(NOT PYQT4_VERSION_NUM LESS 264194)
++
+ # core module
+ FILE(GLOB sip_files_core core/*.sip)
diff --git a/pkgs/applications/misc/qgis/trunk.nix b/pkgs/applications/misc/qgis/trunk.nix
deleted file mode 100644
index e7e79b47a764..000000000000
--- a/pkgs/applications/misc/qgis/trunk.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{qgis, fetchurl,  sourceFromHead, python, sip}:
-qgis.merge {
-
-  name = "qgis-trunk";
-
-  buildInputs = [ sip python ];
-
-  preConfigure = ''
-    export PYTHONPATH=$(toPythonPath ${sip})
-  '';
-
-  cfgOption = [
-                # without this option it can't find sqlite libs yet (missing symbols..) (TODO)
-                "-DWITH_INTERNAL_SQLITE3=TRUE"
-                "-DPYTHON_EXECUTABLE=${python}/bin/python"
-              ];
-
-  # REGION AUTO UPDATE:    { name="qgis"; type="svn"; url="https://svn.osgeo.org/qgis/trunk/qgis"; }
-  src = sourceFromHead "qgis-13572.tar.gz"
-               (fetchurl { url = "http://mawercer.de/~nix/repos/qgis-13572.tar.gz"; sha256 = "fd4c0e19919901cbee7ead7522acdbecbf17c5b9050e34ef91f8ea6e2736bec8"; });
-  # END
-
-}
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
new file mode 100644
index 000000000000..6d6234b8d3ef
--- /dev/null
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv,
+  libX11, libXrandr, libXxf86vm, libxcb, pkgconfig, python,
+  randrproto, xcbutil, xf86vidmodeproto }:
+
+stdenv.mkDerivation rec {
+  name = "redshift";
+  version = "1.6";
+  src = fetchurl {
+    url = "http://launchpad.net/${name}/trunk/${version}/+download/${name}-${version}.tar.bz2";
+    sha256 = "0g46zhqnx3y2fssmyjgaardzhjw1j29l1dbc2kmccw9wxqfla1wi";
+  };
+
+  buildInputs = [ libX11 libXrandr libXxf86vm libxcb pkgconfig python
+                  randrproto xcbutil xf86vidmodeproto ];
+
+  meta = {
+    description = "changes the color temperature of your screen gradually";
+    longDescription = ''
+      The color temperature is set according to the position of the
+      sun. A different color temperature is set during night and
+      daytime. During twilight and early morning, the color
+      temperature transitions smoothly from night to daytime
+      temperature to allow your eyes to slowly adapt.
+      '';
+    license = "GPLv3+";
+    homepage = "http://jonls.dk/redshift";
+  }; 
+}
\ No newline at end of file
diff --git a/pkgs/applications/misc/rxvt_unicode/default.nix b/pkgs/applications/misc/rxvt_unicode/default.nix
index 029d8675ddf6..89bce3ff99f2 100644
--- a/pkgs/applications/misc/rxvt_unicode/default.nix
+++ b/pkgs/applications/misc/rxvt_unicode/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, fetchurl, perlSupport, libX11, libXt, libXft, ncurses, perl }:
+{ stdenv, fetchurl, perlSupport, libX11, libXt, libXft, ncurses, perl,
+  fontconfig, freetype, pkgconfig, libXrender }:
 
 let 
   name = "rxvt-unicode";
-  version = "9.07";
+  version = "9.10";
   n = "${name}-${version}";
 in
 
@@ -11,18 +12,21 @@ stdenv.mkDerivation (rec {
   name = "${n}${if perlSupport then "-with-perl" else ""}";
 
   src = fetchurl {
-    url = "http://dist.schmorp.de/rxvt-unicode/rxvt-unicode-9.07.tar.bz2";
-    sha256 = "18y5mb3cm1gawjm723q5r7yk37s9drzg39kna036i694m2667865";
+    url = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${version}.tar.bz2";
+    sha256 = "1c238f7e545b1a8da81239b826fb2a7d196c73effbcbd211db7a50995a0a067a";
   };
 
   buildInputs =
-    [ libX11 libXt libXft ncurses /* required to build the terminfo file */ ]
+    [ libX11 libXt libXft ncurses /* required to build the terminfo file */ 
+      fontconfig freetype pkgconfig libXrender ]
     ++ stdenv.lib.optional perlSupport perl;
 
   preConfigure =
     ''
       configureFlags="${if perlSupport then "--enable-perl" else "--disable-perl"}";
       export TERMINFO=$out/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
+      NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2"
+      NIX_LDFLAGS="$NIX_LDFLAGS -lfontconfig -lXrender "
     ''
     # make urxvt find its perl file lib/perl5/site_perl is added to PERL5LIB automatically
     + stdenv.lib.optionalString perlSupport ''
diff --git a/pkgs/applications/misc/sakura/default.nix b/pkgs/applications/misc/sakura/default.nix
index 0ae81fcf00fb..0121c17aace2 100644
--- a/pkgs/applications/misc/sakura/default.nix
+++ b/pkgs/applications/misc/sakura/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, cmake, pkgconfig, gtk, vte, pixman, gettext, perl }:
 stdenv.mkDerivation rec {
-  name = "sakura-2.3.8";
+  name = "sakura-2.4.0";
   src = fetchurl {
     url = "http://www.pleyades.net/david/projects/sakura/${name}.tar.bz2";
-    sha256 = "1gfjh1xxqgna0njh0pd4srnbmj67ir4b13slrdri6bm80shfbz8l";
+    sha256 = "12k9ra5b3vgslry5wc40lf4a64mh3p9wy7qfirr8alyvgvw2pb0h";
   };
   buildInputs = [ cmake pkgconfig gtk vte pixman gettext perl ];
   meta = {
diff --git a/pkgs/applications/misc/semnotes/default.nix b/pkgs/applications/misc/semnotes/default.nix
index e994b567cea0..fbc4df3a0b77 100644
--- a/pkgs/applications/misc/semnotes/default.nix
+++ b/pkgs/applications/misc/semnotes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, qt4, kdelibs, soprano, automoc4, phonon }:
+{ stdenv, fetchurl, cmake, qt4, kdelibs, soprano, automoc4, phonon, shared_desktop_ontologies }:
 stdenv.mkDerivation {
   name = "semnotes-0.4.0-1";
 
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "1zh5jfh7pyhyz5fbzcgzyckdg0ny7sf8s16yy6rjw9n021zz5i7m";
   };
 
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon soprano ];
+  buildInputs = [ cmake qt4 kdelibs automoc4 phonon soprano shared_desktop_ontologies ];
 
   meta = with stdenv.lib; {
     description = "Semantic note-taking tool for KDE based on Nepomuk-KDE";
diff --git a/pkgs/applications/misc/surf/default.nix b/pkgs/applications/misc/surf/default.nix
new file mode 100644
index 000000000000..3164f0c1a94a
--- /dev/null
+++ b/pkgs/applications/misc/surf/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, gtk, webkit, pkgconfig, glib, libsoup, patches ? null}:
+
+stdenv.mkDerivation rec {
+  name = "surf-${version}";
+  version="0.4.1";
+
+  src = fetchurl {
+    url = "http://dl.suckless.org/surf/surf-${version}.tar.gz";
+    sha256 = "0im5psjw0r8av3zjyy2wqcl6y5ylwnrab5kfcwc23bsbx2irnw4k";
+  };
+
+  buildInputs = [ gtk webkit pkgconfig glib libsoup ];
+
+  # Allow users set their own list of patches
+  inherit patches;
+
+  buildPhase = " make ";
+
+# `-lX11' to make sure libX11's store path is in the RPATH
+  NIX_LDFLAGS = "-lX11";
+  preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ];
+
+  meta = { 
+      description = "surf is a simple web browser based on WebKit/GTK+. It is able to display websites and follow links. It supports the XEmbed protocol which makes it possible to embed it in another application. Furthermore, one can point surf to another URI by setting its XProperties.";
+      homepage = http://surf.suckless.org;
+      license = "MIT";
+      platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/taskjuggler/default.nix b/pkgs/applications/misc/taskjuggler/default.nix
index 3812f7edd972..25cdd1f16463 100644
--- a/pkgs/applications/misc/taskjuggler/default.nix
+++ b/pkgs/applications/misc/taskjuggler/default.nix
@@ -1,21 +1,23 @@
 {stdenv, fetchurl,
-zlib, libpng, perl, expat, qt,
+zlib, libpng, libjpeg, perl, expat, qt,
 libX11, libXext, libSM, libICE,
 withKde, kdelibs, kdebase
 }:
 
 stdenv.mkDerivation rec {
-  name = "taskjuggler-2.4.1";
+  name = "taskjuggler-2.4.3";
   src = fetchurl {
     url = "http://www.taskjuggler.org/download/${name}.tar.bz2";
-    md5 = "18e0cec8b2ec69220ae7c9a790c16819";
+    sha256 = "14gkxa2vwfih5z7fffbavps7m44z5bq950qndigw2icam5ks83jl";
   };
 
   buildInputs =
-    [zlib libpng libX11 libXext libSM libICE perl expat]
+    [zlib libpng libX11 libXext libSM libICE perl expat libjpeg]
     ++ (if withKde then [kdelibs] else [])
     ;
 
+  patches = [ ./timezone-glibc.patch ];
+
   preConfigure = ''
     for i in $(grep -R "/bin/bash" .  | sed 's/:.*//'); do
       substituteInPlace $i --replace /bin/bash $(type -Pp bash)
@@ -34,6 +36,14 @@ stdenv.mkDerivation rec {
     for i in Examples/FirstProject/AccountingSoftware.tjp; do
       substituteInPlace $i --replace "icalreport" "# icalreport"
     done
+
+    for i in TestSuite/testdir TestSuite/createrefs \
+      TestSuite/Scheduler/Correct/Expression.sh; do
+      substituteInPlace $i --replace '/bin/rm' 'rm'
+    done
+
+    # Some tests require writing at $HOME
+    HOME=$TMPDIR
   '';
 
   configureFlags = "
@@ -41,7 +51,7 @@ stdenv.mkDerivation rec {
     --x-includes=${libX11}/include
     --x-libraries=${libX11}/lib
     --with-qt-dir=${qt}
-    --with-kde-support=${if withKde then "yes" else "no"}
+    --with-kde-support=${if withKde then "yes" else "no"} --with-ical-support=${if withKde then "yes" else "no"}
   ";
 
   preInstall = ''
diff --git a/pkgs/applications/misc/taskjuggler/timezone-glibc.patch b/pkgs/applications/misc/taskjuggler/timezone-glibc.patch
new file mode 100644
index 000000000000..f599e8a1730c
--- /dev/null
+++ b/pkgs/applications/misc/taskjuggler/timezone-glibc.patch
@@ -0,0 +1,48 @@
+From the discussion in http://groups.google.com/group/taskjuggler-users/browse_thread/thread/f65a3efd4dcae2fc/a44c711a9d28ebee?show_docid=a44c711a9d28ebee
+
+From: Chris Schlaeger <cs@kde.org>
+Date: Sat, 27 Feb 2010 06:33:35 +0000 (+0100)
+Subject: Try to fix time zone check for glibc 2.11.
+X-Git-Url: http://www.taskjuggler.org/cgi-bin/gitweb.cgi?p=taskjuggler.git;a=commitdiff_plain;h=2382ed54f90c3c899badb3f56aaa2b3b5dba361e;hp=c666c5068312fec7db75e17d1c567d94127d1dda
+
+Try to fix time zone check for glibc 2.11.
+
+Reported-by: Lee <pFQh8RQn4fqB@dyweni.com>
+---
+
+diff --git a/taskjuggler/Utility.cpp b/taskjuggler/Utility.cpp
+index 5e2bf21..9b7fce2 100644
+--- a/taskjuggler/Utility.cpp
++++ b/taskjuggler/Utility.cpp
+@@ -206,16 +206,28 @@ setTimezone(const char* tZone)
+ 
+     /* To validate the tZone value we call tzset(). It will convert the zone
+      * into a three-letter acronym in case the tZone value is good. If not, it
+-     * will just copy the wrong value to tzname[0] (glibc < 2.5) or fall back
+-     * to UTC. */
++     * will
++     * - copy the wrong value to tzname[0] (glibc < 2.5)
++     * - or fall back to UTC (glibc >= 2.5 && < 2.11)
++     * - copy the part before the '/' to tzname[0] (glibc >= 2.11).
++     */
+     tzset();
++    char* region = new(char[strlen(tZone) + 1]);
++    region[0] = 0;
++    if (strchr(tZone, '/'))
++    {
++        strcpy(region, tZone);
++        *strchr(region, '/') = 0;
++    }
+     if (timezone2tz(tZone) == 0 &&
+-        (strcmp(tzname[0], tZone) == 0 ||
++        (strcmp(tzname[0], tZone) == 0 || strcmp(tzname[0], region) == 0 ||
+          (strcmp(tZone, "UTC") != 0 && strcmp(tzname[0], "UTC") == 0)))
+     {
+         UtilityError = QString(i18n("Illegal timezone '%1'")).arg(tZone);
++        delete region;
+         return false;
+     }
++    delete region;
+ 
+     if (!LtHashTab)
+         return true;
diff --git a/pkgs/applications/misc/vifm/default.nix b/pkgs/applications/misc/vifm/default.nix
new file mode 100644
index 000000000000..6f270f5c7cf2
--- /dev/null
+++ b/pkgs/applications/misc/vifm/default.nix
@@ -0,0 +1,48 @@
+x@{builderDefsPackage
+  , ncurses
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="vifm";
+    version="0.6.3";
+    name="${baseName}-${version}";
+    url="mirror://sourceforge/project/${baseName}/${baseName}/${name}.tar.bz2";
+    hash="1v5kiifjk7iyqrzjd94wn6a5dz4j3krl06pbp1ps9g3zdq2w2skv";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A vi-like file manager";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://vifm.sf.net";
+    };
+  };
+}) x
+
diff --git a/pkgs/applications/misc/xchm/default.nix b/pkgs/applications/misc/xchm/default.nix
index b574b5fa5ec9..aed55c67c100 100644
--- a/pkgs/applications/misc/xchm/default.nix
+++ b/pkgs/applications/misc/xchm/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, wxGTK, chmlib}:
 
 stdenv.mkDerivation {
-  name = "xchm-1.17";
+  name = "xchm-1.18";
   src = fetchurl {
-    url = mirror://sourceforge/xchm/xchm-1.17.tar.gz;
-    sha256 = "0yizisn4833nnpd4apallyg8iv334y00hv3awbsbc0ks2zf93x0n";
+    url = mirror://sourceforge/xchm/xchm-1.18.tar.gz;
+    sha256 = "1wvvyzqbmj3c6i46x4vpxkawjwmmp276r84ifvlzaj5q4b52g5gw";
   };
   buildInputs = [wxGTK chmlib];
 
diff --git a/pkgs/applications/misc/xmobar/default.nix b/pkgs/applications/misc/xmobar/default.nix
index 6bf91529a2b3..8271049861eb 100644
--- a/pkgs/applications/misc/xmobar/default.nix
+++ b/pkgs/applications/misc/xmobar/default.nix
@@ -1,12 +1,20 @@
-{cabal, X11, mtl, parsec, stm, utf8String, X11Xft}:
+{ cabal, mtl, parsec, stm, time, utf8String, X11 }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xmobar";
-  name = "${self.fname}";
-  version = "0.9.2";
-  sha256 = "361295f5dc912512a2eb644ecd331562a271243192be6215cb071e44f50c7c66";
-  extraBuildInputs = [X11 mtl parsec stm utf8String X11Xft];
+  version = "0.13";
+  sha256 = "0ijava0vn2dmc6v57i6x663rvxz3ryb2gqks18qk1qli4k0m3hf7";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl parsec stm time utf8String X11 ];
   meta = {
-    description = "xmobar is a minimalistic text based status bar";
+    homepage = "http://projects.haskell.org/xmobar/";
+    description = "A Minimalistic Text Based Status Bar";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/applications/misc/xneur/default.nix b/pkgs/applications/misc/xneur/default.nix
index c7a302c6589f..bdaaaa43c74a 100644
--- a/pkgs/applications/misc/xneur/default.nix
+++ b/pkgs/applications/misc/xneur/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, pkgconfig, xorg, pcre, GStreamer, glib, libxml2
-, aspell, cairo, imlib2, xosd, libnotify, gtk, pango, atk, enchant }:
+, aspell, cairo, imlib2, xosd, libnotify, gtk, pango, atk, enchant,
+ gdk_pixbuf}:
 
 let s = import ./src-for-default.nix; in
 
@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ xorg.libX11 pkgconfig pcre GStreamer glib libxml2 aspell cairo
       xorg.libXpm imlib2 xosd xorg.libXt xorg.libXext xorg.libXi libnotify
-      gtk pango enchant
+      gtk pango enchant gdk_pixbuf
     ];
 
   preConfigure = ''
@@ -27,6 +28,8 @@ stdenv.mkDerivation rec {
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${cairo}/include/cairo"
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pango}/include/pango-1.0"
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${atk}/include/atk-1.0"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gdk_pixbuf}/include/gdk-pixbuf-2.0"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gdk_pixbuf}/lib/gdk-pixbuf-2.0/include"
 
     export NIX_LDFLAGS="$NIX_LDFLAGS -lnotify"
   '';
diff --git a/pkgs/applications/misc/xneur/src-for-default.nix b/pkgs/applications/misc/xneur/src-for-default.nix
index 04a22cea79ab..a7db13bd81d1 100644
--- a/pkgs/applications/misc/xneur/src-for-default.nix
+++ b/pkgs/applications/misc/xneur/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="0.11.1";
-   name="xneur-0.11.1";
-   hash="12r2wv1glnx3ilqkrypff9r3mxzk1m3yma3khmam1b0z32lfbxxx";
+   version="0.13.0";
+   name="xneur-0.13.0";
+   hash="19z8nnfj9paf877k0nrqy6dih69l81svxymqg6llh7ndgkw20hgd";
    url="http://dists.xneur.ru/release-${version}/tgz/xneur-${version}.tar.bz2";
-   advertisedUrl="http://dists.xneur.ru/release-0.11.1/tgz/xneur-0.11.1.tar.bz2";
+   advertisedUrl="http://dists.xneur.ru/release-0.13.0/tgz/xneur-0.13.0.tar.bz2";
   
   
 }
diff --git a/pkgs/applications/misc/xpdf/default.nix b/pkgs/applications/misc/xpdf/default.nix
index 4a9425070dee..8b375fb26595 100644
--- a/pkgs/applications/misc/xpdf/default.nix
+++ b/pkgs/applications/misc/xpdf/default.nix
@@ -8,7 +8,7 @@ assert enablePDFtoPPM -> freetype != null;
 assert useT1Lib -> t1lib != null;
 
 stdenv.mkDerivation {
-  name = "xpdf-3.02pl4";
+  name = "xpdf-3.02pl5";
 
   src = fetchurl {
     url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02.tar.gz;
@@ -36,6 +36,10 @@ stdenv.mkDerivation {
       url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4.patch;
       sha256 = "1c48h7aizx0ngmzlzw0mpja1w8vqyy3pg62hyxp7c60k86al715h";
     })
+    (fetchurl {
+      url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl5.patch;
+      sha256 = "1fki66pw56yr6aw38f6amrx7wxwcxbx4704pjqq7pqqr784b7z4j";
+    })
     ./xpdf-3.02-protection.patch
   ];
 
diff --git a/pkgs/applications/misc/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix
index 55d6a9c16b02..e0df36efcb89 100644
--- a/pkgs/applications/misc/xterm/default.nix
+++ b/pkgs/applications/misc/xterm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, xorg, ncurses, freetype, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "xterm-231";
+  name = "xterm-268";
   
   src = fetchurl {
     url = "ftp://invisible-island.net/xterm/${name}.tgz";
-    sha256 = "0qlz5nkdqkahdg9kbd1ni96n69srj1pd9yggwrw3z0kghaajb2sr";
+    sha256 = "1hr886mgr74k146fjppnq1pmg6f95l00v88cfwac3rms5lx7ckap";
   };
   
   buildInputs =
@@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
       --enable-mini-luit --with-tty-group=tty
     '';
 
+  # Work around broken "plink.sh".
+  NIX_LDFLAGS = "-lXmu -lXt -lICE -lX11";
+
   # Hack to get xterm built with the feature of releasing a possible setgid of 'utmp',
   # decided by the sysadmin to allow the xterm reporting to /var/run/utmp
   # If we used the configure option, that would have affected the xterm installation,
diff --git a/pkgs/applications/misc/zathura/default.nix b/pkgs/applications/misc/zathura/default.nix
index 6c6b469f18d4..2e58a028a30f 100644
--- a/pkgs/applications/misc/zathura/default.nix
+++ b/pkgs/applications/misc/zathura/default.nix
@@ -1,27 +1,27 @@
 { stdenv, fetchurl, pkgconfig, gtk, poppler }:
+
 stdenv.mkDerivation rec {
-  name = "zathura-0.0.5";
+  name = "zathura-0.0.8.4";
+  
   src = fetchurl {
-    #url = "https://pwmt.org/zathura/download/{name}.tar.gz"
-    # Site's SSL cert is invalid, and I dunno how to pass --insecure to curl.
-    # Thanks Mark Weber for mirroring this tarball.
-    url = "http://mawercer.de/~nix/${name}.tar.gz";
-    sha256 = "e4dfbcceafc7bcb5c4e1ff349822c610db6378906ab65aabba8be246d7ee9b52";
+    url = "http://pwmt.org/download/${name}.tar.gz";
+    sha256 = "03iq6n7bpgrkq3l8b2ab3flcfxrqpxc1f3ycn31xr2b6bjwi72qn";
   };
+  
   buildInputs = [ pkgconfig gtk poppler ];
-  patchPhase = ''
-    substituteInPlace config.mk --replace 'PREFIX = /usr' "PREFIX = $out"
-  '';
+
+  makeFlags = "PREFIX=$(out)";
+  
   meta = {
     homepage = https://pwmt.org/zathura/;
     description = "A highly customizable and functional PDF viewer";
     longDescription = ''
-      zathura is a highly customizable and functional PDF viewer based on the
+      Zathura is a highly customizable and functional PDF viewer based on the
       poppler rendering library and the gtk+ toolkit. The idea behind zathura
       is an application that provides a minimalistic and space saving interface
       as well as an easy usage that mainly focuses on keyboard interaction.
     '';
     license = "free";
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index db8adeeb45fc..74f80ccdab95 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,57 +1,60 @@
-{ GConf, alsaLib, atk, bzip2, cairo, cups, dbus, dbus_glib,
-  expat, fetchurl, ffmpeg, fontconfig, freetype, glib, gtk,
-  libX11, libXScrnSaver, libXdamage, libXext, libXrender, libXt,
-  libgcrypt, libjpeg, libpng, makeWrapper, nspr, nss, pango,
-  patchelf, stdenv, unzip, zlib }:
+{ GConf, alsaLib, bzip2, cairo, cups, dbus, dbus_glib, expat
+, fetchurl, ffmpeg, fontconfig, freetype, gtkLibs, libX11
+, libXScrnSaver, libXdamage, libXext, libXrender, libXt, libXtst
+, libgcrypt, libjpeg, libpng, makeWrapper, nspr, nss, patchelf
+, stdenv, unzip, zlib, pam }:
 
 assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" ;
 
 stdenv.mkDerivation rec {
   name = "chrome-${version}";
-  version = "65039";
+  version = "88807";
   src =
     if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url = "http://build.chromium.org/buildbot/snapshots/chromium-rel-linux-64/${version}/chrome-linux.zip";
-        sha256 = "1ad7kwd1w1958mb3pwzhshawrf2nlxdsf0gy7d2q4qnx5d809vws";
+        url = "http://commondatastorage.googleapis.com/chromium-browser-continuous/Linux_x64/${version}/chrome-linux.zip";
+        sha256 = "c158f58fa8220782ec8dec4170f90c564b978d1c6ead298cc2f67e84613f17b1";
       }
     else if stdenv.system == "i686-linux" then
       fetchurl {
-        url = "http://build.chromium.org/buildbot/snapshots/chromium-rel-linux/${version}/chrome-linux.zip";
-        sha256 = "06hz3gvv3623ldrj141w3mnzw049yylvv9b9q5r6my8icm722phf";
+        url = "http://commondatastorage.googleapis.com/chromium-browser-continuous/Linux/${version}/chrome-linux.zip";
+        sha256 = "01sr882c7hr53001p8bnk5vyj8zfjm6r3i4a6wxzxd17xjh1bcxb";
       }
     else throw "Chromium is not supported on this platform.";
 
   phases = "unpackPhase installPhase";
 
-  buildInputs = [makeWrapper unzip];
+  buildInputs = [ makeWrapper unzip ];
 
   libPath =
     stdenv.lib.makeLibraryPath
-       [ GConf alsaLib atk bzip2 cairo cups dbus dbus_glib expat
-         ffmpeg fontconfig freetype glib gtk libX11 libXScrnSaver
-         libXdamage libXext libXrender libXt libgcrypt libjpeg libpng
-         nspr nss pango stdenv.gcc.gcc zlib stdenv.gcc.libc ];
+       [ GConf alsaLib bzip2 cairo cups dbus dbus_glib expat
+         ffmpeg fontconfig freetype libX11 libXScrnSaver
+         libXdamage libXext libXrender libXt libXtst libgcrypt libjpeg
+         libpng nspr nss stdenv.gcc.gcc zlib stdenv.gcc.libc
+         gtkLibs.glib gtkLibs.gtk gtkLibs.gdk_pixbuf gtkLibs.pango
+         pam
+       ];
 
   installPhase = ''
     ensureDir $out/bin
-    ensureDir $out/chrome
-    ensureDir $out/lib
-
-    cp -R * $out/chrome
-    ln -s $out/chrome/chrome $out/bin/chrome
-    ${patchelf}/bin/patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" --set-rpath ${libPath}:$out/lib:${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib $out/chrome/chrome
-
-    ln -s ${nss}/lib/libsmime3.so $out/lib/libsmime3.so.1d
-    ln -s ${nss}/lib/libnssutil3.so $out/lib/libnssutil3.so.1d
-    ln -s ${nss}/lib/libssl3.so $out/lib/libssl3.so.1d
-    ln -s ${nss}/lib/libnss3.so $out/lib/libnss3.so.1d
-    ln -s ${nspr}/lib/libnspr4.so $out/lib/libnspr4.so.0d
-    ln -s ${nspr}/lib/libplds4.so $out/lib/libplds4.so.0d
-    ln -s ${nspr}/lib/libplc4.so $out/lib/libplc4.so.0d
+    ensureDir $out/libexec/chrome
+
+    cp -R * $out/libexec/chrome
+    
+    ${patchelf}/bin/patchelf \
+      --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+      --set-rpath ${libPath}:$out/lib:${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib \
+      $out/libexec/chrome/chrome
+
+    makeWrapper $out/libexec/chrome/chrome $out/bin/chrome \
+      --prefix LD_LIBRARY_PATH : "${nss}/lib"
   '';
 
-  meta = {
+  meta =  with stdenv.lib; {
     description = "Chromium, an open source web browser";
+    homepage = http://www.chromium.org/;
+    maintainers = [ maintainers.goibhniu ];
+    license = licenses.bsd3;
   };
 }
diff --git a/pkgs/applications/networking/browsers/conkeror/default.nix b/pkgs/applications/networking/browsers/conkeror/default.nix
index d7e87e4015b5..2bf25ccd546c 100644
--- a/pkgs/applications/networking/browsers/conkeror/default.nix
+++ b/pkgs/applications/networking/browsers/conkeror/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, unzip }:
 stdenv.mkDerivation {
-  name = "conkeror-0.9.2";
+  name = "conkeror-0.9.3-20110606";
   src = fetchurl {
-    url = http://repo.or.cz/w/conkeror.git/snapshot/efacc207b0d6c7b3899fc584c9f48547b18da076.zip;
-    sha256 = "1bkrrskrmhpx2xp90zgi5jrz4akynkxv2nzk5hzg0a17ikdi5ql8";
+    url = http://repo.or.cz/w/conkeror.git/snapshot/0d883dfd5e61e7d0b8a96a079d69b46af064fdca.zip;
+    sha256 = "0h21fw78iq4hljy5p98mpy0wgd5wpx9a0jdwv7l5wrds5vp23dhh";
   };
   buildInputs = [ unzip ];
   installPhase = ''
-    cp -r . $out
+    cp -v -r . $out
   '';
   meta = {
     description = "A keyboard-oriented, customizable, extensible web browser";
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index e06bfe538c00..1587a2e34953 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -9,8 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "1li4vlbq8wvnigxlkzb15490y90jg6y9yzzrqpqcz2h965w5869d";
   };
 
+  patches = [ ./gc-init.patch ];
+
   buildInputs = [ python perl ncurses x11 bzip2 zlib openssl spidermonkey guile gpm ];
-  
+
   configureFlags =
     ''
       --enable-finger --enable-html-highlight --with-guile
diff --git a/pkgs/applications/networking/browsers/elinks/gc-init.patch b/pkgs/applications/networking/browsers/elinks/gc-init.patch
new file mode 100644
index 000000000000..de06f563d6e6
--- /dev/null
+++ b/pkgs/applications/networking/browsers/elinks/gc-init.patch
@@ -0,0 +1,17 @@
+Fix libgc initialization in the presence of Guile 2.0.
+
+--- elinks-0.12pre5/src/main/main.c	2009-07-07 14:23:17.000000000 +0200
++++ elinks-0.12pre5/src/main/main.c	2011-04-28 23:20:15.000000000 +0200
+@@ -339,6 +339,11 @@ int
+ main(int argc, char *argv[])
+ {
+ #ifdef CONFIG_GC
++	/* Guile 2.x uses libgc too and it initializes it this way, so we
++	 * must make sure to initialize it the same way, or it will just
++	 * segfault.  */
++	GC_all_interior_pointers = 0;
++
+ 	GC_INIT();
+ 	GC_set_warn_proc(gc_warning);
+ #endif
+
diff --git a/pkgs/applications/networking/browsers/firefox/3.6.nix b/pkgs/applications/networking/browsers/firefox/3.6.nix
index f119f301dbb7..e26b59732152 100644
--- a/pkgs/applications/networking/browsers/firefox/3.6.nix
+++ b/pkgs/applications/networking/browsers/firefox/3.6.nix
@@ -12,14 +12,14 @@
 
 rec {
 
-  firefoxVersion = "3.6.13";
+  firefoxVersion = "3.6.16";
   
-  xulVersion = "1.9.2.13"; # this attribute is used by other packages
+  xulVersion = "1.9.2.16"; # this attribute is used by other packages
 
   
   src = fetchurl {
     url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
-    sha1 = "1d1bc70d651bce4006687f5762638563c0494267";
+    sha1 = "38124597440b7d60aa568adeef23659575841e92";
   };
 
 
@@ -97,9 +97,11 @@ rec {
       rm -f $out/bin/run-mozilla.sh
     ''; # */
 
+    enableParallelBuilding = true;
+
     meta = {
       description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/en-US/firefox/;
     };
 
     passthru = { inherit gtk; version = xulVersion; };
@@ -139,7 +141,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/en-US/firefox/;
     };
 
     passthru = {
diff --git a/pkgs/applications/networking/browsers/firefox/4.0.nix b/pkgs/applications/networking/browsers/firefox/5.0.nix
index 49802f9a0ee0..1cc625edf7cb 100644
--- a/pkgs/applications/networking/browsers/firefox/4.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/5.0.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
 , libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
 , freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
-, libvpx, yasm, mesa, wirelesstools
+, yasm, mesa, sqlite
 
 , # If you want the resulting program to call itself "Firefox" instead
   # of "Shiretoko" or whatever, enable this option.  However, those
@@ -11,18 +11,21 @@
   enableOfficialBranding ? false
 }:
 
+assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+
 rec {
 
-  firefoxVersion = "4.0b7";
+  firefoxVersion = "5.0.1";
   
-  xulVersion = "2.0b7"; # this attribute is used by other packages
+  xulVersion = "5.0.1"; # this attribute is used by other packages
 
   
   src = fetchurl {
     url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
-    sha256 = "02cc466a92af828ff3bc563d4515bd98064cf5f136b5871e072b9408fb4db128";
+    sha1 = "c93b3513e160d87535a9d61c5e06a6a701e9cd3e";
   };
 
+  
   commonConfigureFlags =
     [ "--enable-optimize"
       "--disable-debug"
@@ -31,13 +34,15 @@ rec {
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
-      #"--with-system-nss"
+      # "--with-system-nss"
       # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
       "--enable-system-cairo"
-      #"--enable-system-sqlite" # <-- this seems to be discouraged
+      "--enable-system-sqlite"
       "--disable-crashreporter"
       "--disable-tests"
       "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-installer" 
+      "--disable-updater"
     ];
 
 
@@ -47,12 +52,12 @@ rec {
     inherit src;
 
     buildInputs =
-    [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
         python dbus dbus_glib pango freetype fontconfig xlibs.libXi
         xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr /* nss */ libnotify xlibs.pixman libvpx yasm mesa
-	wirelesstools xlibs.libXScrnSaver xlibs.scrnsaverproto
-	xlibs.libXext xlibs.xextproto
+        alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa
+	xlibs.libXScrnSaver xlibs.scrnsaverproto
+	xlibs.libXext xlibs.xextproto sqlite
       ];
 
     configureFlags =
@@ -60,18 +65,22 @@ rec {
         "--disable-javaxpcom"
       ] ++ commonConfigureFlags;
 
-    # !!! Temporary hack.
-    preBuild = ''
-     export NIX_ENFORCE_PURITY=
-    '';
-
+    enableParallelBuilding = true;
+      
     # Hack to work around make's idea of -lbz2 dependency
-    preConfigure = ''
-     find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
-       stdenv.lib.concatStringsSep ":" 
-         (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
-     }' ';'
-    '';
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    # !!! Temporary hack.
+    preBuild =
+      ''
+        export NIX_ENFORCE_PURITY=
+      '';
 
     installFlags = "SKIP_GRE_REGISTRATION=1";
 
@@ -99,7 +108,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/en-US/firefox/;
     };
 
     passthru = { inherit gtk; version = xulVersion; };
@@ -111,10 +120,12 @@ rec {
 
     inherit src;
 
+    enableParallelBuilding = true;
+      
     buildInputs =
       [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
         dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
-        xlibs.pixman libvpx yasm mesa wirelesstools
+        xlibs.pixman yasm mesa sqlite
       ];
 
     propagatedBuildInputs = [xulrunner];
@@ -122,32 +133,28 @@ rec {
     configureFlags =
       [ "--enable-application=browser"
         "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+        "--enable-chrome-format=jar"
       ]
       ++ commonConfigureFlags
       ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
 
-    postInstall = ''
-      libDir=$(cd $out/lib && ls -d firefox-[0-9]*)
-      test -n "$libDir"
-
-      ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner
-
-      # Register extensions etc. !!! is this needed anymore?
-      echo "running firefox -register..."
-      $out/bin/firefox -register
-    ''; # */
-
     # Hack to work around make's idea of -lbz2 dependency
-    preConfigure = ''
-     find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
-       stdenv.lib.concatStringsSep ":" 
-         (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
-     }' ';'
-    '';
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    postInstall =
+      ''
+        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
+      ''; # */
 
     meta = {
       description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/en-US/firefox/;
     };
 
     passthru = {
diff --git a/pkgs/applications/networking/browsers/firefox/3.5.nix b/pkgs/applications/networking/browsers/firefox/6.0.nix
index a5a35578b134..7535cfb201ef 100644
--- a/pkgs/applications/networking/browsers/firefox/3.5.nix
+++ b/pkgs/applications/networking/browsers/firefox/6.0.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
 , libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
-, freetype, fontconfig, file, alsaLib, nspr, nss
+, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
+, yasm, mesa, sqlite
 
 , # If you want the resulting program to call itself "Firefox" instead
   # of "Shiretoko" or whatever, enable this option.  However, those
@@ -10,19 +11,21 @@
   enableOfficialBranding ? false
 }:
 
+assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+
 rec {
 
-  firefoxVersion = "3.5.10";
+  firefoxVersion = "6.0";
   
-  xulVersion = "1.9.1.10"; # this attribute is used by other packages
+  xulVersion = "6.0"; # this attribute is used by other packages
 
   
   src = fetchurl {
     url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
-    sha1 = "9e84dee03f003eaf79df12de9d13ac8f6c4cd9b1";
+    sha256 = "0ws96gc1mkmilgsikirhmqc6s7m0bcyh58820l08wd82r9abagyc";
   };
 
-
+  
   commonConfigureFlags =
     [ "--enable-optimize"
       "--disable-debug"
@@ -31,16 +34,19 @@ rec {
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
-      #"--with-system-nss"
+      # "--with-system-nss"
       # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
       "--enable-system-cairo"
-      #"--enable-system-sqlite" # <-- this seems to be discouraged
+      "--enable-system-sqlite"
       "--disable-crashreporter"
       "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-installer" 
+      "--disable-updater"
     ];
 
 
-  xulrunner = stdenv.mkDerivation {
+  xulrunner = stdenv.mkDerivation rec {
     name = "xulrunner-${xulVersion}";
     
     inherit src;
@@ -49,7 +55,9 @@ rec {
       [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
         python dbus dbus_glib pango freetype fontconfig xlibs.libXi
         xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr /* nss */
+        alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa
+	xlibs.libXScrnSaver xlibs.scrnsaverproto
+	xlibs.libXext xlibs.xextproto sqlite
       ];
 
     configureFlags =
@@ -57,10 +65,22 @@ rec {
         "--disable-javaxpcom"
       ] ++ commonConfigureFlags;
 
+    enableParallelBuilding = true;
+      
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
     # !!! Temporary hack.
-    preBuild = ''
-     export NIX_ENFORCE_PURITY=
-    '';
+    preBuild =
+      ''
+        export NIX_ENFORCE_PURITY=
+      '';
 
     installFlags = "SKIP_GRE_REGISTRATION=1";
 
@@ -88,7 +108,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/en-US/firefox/;
     };
 
     passthru = { inherit gtk; version = xulVersion; };
@@ -100,9 +120,12 @@ rec {
 
     inherit src;
 
+    enableParallelBuilding = true;
+      
     buildInputs =
       [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
-        dbus dbus_glib pango freetype fontconfig alsaLib nspr
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
+        xlibs.pixman yasm mesa sqlite
       ];
 
     propagatedBuildInputs = [xulrunner];
@@ -110,24 +133,28 @@ rec {
     configureFlags =
       [ "--enable-application=browser"
         "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+        "--enable-chrome-format=jar"
       ]
       ++ commonConfigureFlags
       ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
 
-    postInstall = ''
-      libDir=$(cd $out/lib && ls -d firefox-[0-9]*)
-      test -n "$libDir"
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
 
-      ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner
-
-      # Register extensions etc. !!! is this needed anymore?
-      echo "running firefox -register..."
-      $out/bin/firefox -register
-    ''; # */
+    postInstall =
+      ''
+        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
+      ''; # */
 
     meta = {
       description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/en-US/firefox/;
     };
 
     passthru = {
diff --git a/pkgs/applications/networking/browsers/firefox/7.0.nix b/pkgs/applications/networking/browsers/firefox/7.0.nix
new file mode 100644
index 000000000000..d9e94ead33a4
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/7.0.nix
@@ -0,0 +1,184 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
+, yasm, mesa, sqlite
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Shiretoko" or whatever, enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+}:
+
+assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+
+rec {
+
+  firefoxVersion = "7.0b1";
+  
+  xulVersion = "7.0"; # this attribute is used by other packages
+
+  
+  src = fetchurl {
+    url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/${firefoxVersion}-candidates/build1/source/firefox-${firefoxVersion}.source.tar.bz2";
+    sha256 = "0s8lv07nggdf8ad2yx7sgq1mfy1dvzir0f6x4km911yc9qyhwmwk";
+  };
+  
+  commonConfigureFlags =
+    [ "--enable-optimize"
+      "--disable-debug"
+      "--enable-strip"
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      "--with-system-bz2"
+      "--with-system-nspr"
+      # "--with-system-nss"
+      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+      "--enable-system-cairo"
+      "--enable-system-sqlite"
+      "--disable-crashreporter"
+      "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-installer" 
+      "--disable-updater"
+    ];
+
+
+  xulrunner = stdenv.mkDerivation rec {
+    name = "xulrunner-${xulVersion}";
+    
+    inherit src;
+
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
+        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
+        alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa
+        xlibs.libXScrnSaver xlibs.scrnsaverproto
+        xlibs.libXext xlibs.xextproto sqlite
+      ];
+
+    configureFlags =
+      [ "--enable-application=xulrunner"
+        "--disable-javaxpcom"
+      ] ++ commonConfigureFlags;
+
+    enableParallelBuilding = true;
+      
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+        cp -i security/coreconf/Linux{2.6,3.0}.mk
+        cp -i security/coreconf/Linux{2.6,3.1}.mk
+        cp -i security/coreconf/Linux{2.6,3.2}.mk
+        cp -i security/coreconf/Linux{2.6,3.3}.mk
+
+        export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
+      '';
+
+    # !!! Temporary hack.
+    preBuild =
+      ''
+        export NIX_ENFORCE_PURITY=
+      '';
+
+    installFlags = "SKIP_GRE_REGISTRATION=1";
+
+    postInstall = ''
+      # Fix some references to /bin paths in the Xulrunner shell script.
+      substituteInPlace $out/bin/xulrunner \
+          --replace /bin/pwd "$(type -tP pwd)" \
+          --replace /bin/ls "$(type -tP ls)"
+
+      # Fix run-mozilla.sh search
+      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
+      echo libDir: $libDir
+      test -n "$libDir"
+      cd $out/bin
+      mv xulrunner ../lib/$libDir/
+
+      for i in $out/lib/$libDir/*; do 
+          file $i;
+          if file $i | grep executable &>/dev/null; then 
+              echo -e '#! /bin/sh\n"'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
+              chmod a+x "$out/bin/$(basename "$i")";
+          fi;
+      done;
+      for i in $out/lib/$libDir/{xpcshell,plugin-container,*.so}; do
+              patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
+      done;
+      rm -f $out/bin/run-mozilla.sh
+    ''; # */
+
+    meta = {
+      description = "Mozilla Firefox XUL runner";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = { inherit gtk; version = xulVersion; };
+  };
+
+
+  firefox = stdenv.mkDerivation rec {
+    name = "firefox-${firefoxVersion}";
+
+    inherit src;
+
+    enableParallelBuilding = true;
+      
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
+        xlibs.pixman yasm mesa sqlite file
+      ];
+
+    propagatedBuildInputs = [xulrunner];
+
+    configureFlags =
+      [ "--enable-application=browser"
+        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+        "--enable-chrome-format=jar"
+	"--disable-elf-hack"
+      ]
+      ++ commonConfigureFlags
+      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
+
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    postInstall =
+      ''
+        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
+        for j in $out/bin/*; do 
+	    i="$(readlink "$j")";
+            file $i;
+            if file $i | grep executable &>/dev/null; then 
+	        rm "$out/bin/$(basename "$i")"
+                echo -e '#! /bin/sh\n"'"$i"'" "$@"' > "$out/bin/$(basename "$i")"
+                chmod a+x "$out/bin/$(basename "$i")"
+            fi;
+        done;
+      ''; # */
+
+    meta = {
+      description = "Mozilla Firefox - the browser, reloaded";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = {
+      inherit gtk xulrunner nspr;
+      isFirefox3Like = true;
+    };
+  };
+}
diff --git a/pkgs/applications/networking/browsers/firefox/binary.nix b/pkgs/applications/networking/browsers/firefox/binary.nix
deleted file mode 100644
index 73e002435b88..000000000000
--- a/pkgs/applications/networking/browsers/firefox/binary.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-args: with args;
-
-assert stdenv.system == "i686-linux";
-
-stdenv.mkDerivation {
-  name = "firefox-3b1";
-
-  src = 
-	fetchurl {
-		url = ftp://ftp.mozilla.org/pub/firefox/releases/3.0b1/linux-i686/en-US/firefox-3.0b1.tar.bz2;
-		sha256 = "1cpcc5b07zdqyd5kiwhb4dqhy2mzbf97plsglcp6bc9054cmsylk";
-	};
-  buildInputs = [
-    pkgconfig gtk perl zip libIDL libXi libjpeg libpng zlib cairo
-    python curl coreutils atk pango glib libX11 libXrender 
-    freetype fontconfig libXft libXt
-  ];
-
-  buildPhase = "
-    additionalRpath='';
-    for i in \$buildInputs ${stdenv.glibc} ${stdenv.gcc.gcc}; do 
-      additionalRpath=\$additionalRpath:\$i/lib;  
-    done
-    for i in firefox-bin ; do
-      oldrpath=$(patchelf --print-rpath \$i)
-      patchelf --set-rpath \$oldrpath\$additionalRpath \$i
-      patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 \$i
-    done
-  ";
-
-  installPhase = "
-    export dontPatchELF=1;
-    mkdir -p \$out
-    cp -r . \$out/firefox
-    mkdir -p \$out/bin
-    ln -s \$out/firefox/firefox \$out/bin/firefox
-
-    sed -e 's@moz_libdir=.*@moz_libdir='\$out'/firefox/@' -i \$out/bin/firefox 
-    sed -e 's@moz_libdir=.*@&\\nexport PATH=\$PATH:${coreutils}/bin@' -i \$out/bin/firefox 
-    sed -e 's@`/bin/pwd@`${coreutils}/bin/pwd@' -i \$out/bin/firefox 
-    sed -e 's@`/bin/ls@`${coreutils}/bin/ls@' -i \$out/bin/firefox 
-
-    strip -S \$out/firefox/*.so || true
-
-    echo \"running firefox -register...\"
-    \$out/firefox/firefox-bin -register || false
-  ";
-
-  meta = {
-    description = "Mozilla Firefox - the browser, reloaded";
-  };
-
-  passthru = {inherit gtk;};
-}
-
diff --git a/pkgs/applications/networking/browsers/firefox/writable-copies.patch b/pkgs/applications/networking/browsers/firefox/writable-copies.patch
deleted file mode 100644
index e3c7752c0310..000000000000
--- a/pkgs/applications/networking/browsers/firefox/writable-copies.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -rc mozilla-orig/xpcom/io/nsLocalFileUnix.cpp mozilla/xpcom/io/nsLocalFileUnix.cpp
-*** mozilla-orig/xpcom/io/nsLocalFileUnix.cpp	2004-04-03 01:48:18.000000000 +0200
---- mozilla/xpcom/io/nsLocalFileUnix.cpp	2004-10-05 19:48:04.000000000 +0200
-***************
-*** 634,639 ****
---- 634,640 ----
-          // get the dirs old permissions
-          if (NS_FAILED(rv = GetPermissions(&oldPerms)))
-              return rv;
-+         oldPerms |= 0200;
-          if (NS_FAILED(rv = newParent->Create(DIRECTORY_TYPE, oldPerms)))
-              return rv;
-      } else {    // dir exists lets try to use leaf
-***************
-*** 758,763 ****
---- 759,765 ----
-          // get the old permissions
-          PRUint32 myPerms;
-          GetPermissions(&myPerms);
-+         myPerms |= 0200;
-  
-          // Create the new file with the old file's permissions, even if write
-          // permission is missing.  We can't create with write permission and
diff --git a/pkgs/applications/networking/browsers/firefox/xlibs.patch b/pkgs/applications/networking/browsers/firefox/xlibs.patch
deleted file mode 100644
index a656fbf9beb4..000000000000
--- a/pkgs/applications/networking/browsers/firefox/xlibs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- mozilla/layout/build/Makefile.in.orig	2007-01-13 14:23:19.000000000 -0200
-+++ mozilla/layout/build/Makefile.in	2007-01-13 14:24:55.000000000 -0200
-@@ -282,5 +282,6 @@ LDFLAGS += -Wl,-LD_LAYOUT:lgot_buffer=50
- endif
- endif
- 
-+LDFLAGS += -lX11 -lXrender
- 
- export:: $(BUILD_DATE)
- 
\ No newline at end of file
diff --git a/pkgs/applications/networking/browsers/icecat-3/default.nix b/pkgs/applications/networking/browsers/icecat-3/default.nix
index 6be0ce4b4f30..a63584fda289 100644
--- a/pkgs/applications/networking/browsers/icecat-3/default.nix
+++ b/pkgs/applications/networking/browsers/icecat-3/default.nix
@@ -9,13 +9,13 @@
 # http://thread.gmane.org/gmane.comp.gnu.gnuzilla/1376 .
 #assert stdenv.isLinux -> (wirelesstools != null);
 
-let version = "3.6.9"; in
+let version = "3.6.15"; in
 stdenv.mkDerivation {
   name = "icecat-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.xz";
-    sha256 = "041rdhhcaak0w0lg0wd1fdl9vlk9a466sh6y17dfz389nswyy8wr";
+    sha256 = "1px018bd81c81a4hbz0qgf89pkshkbhg4abwq1d26dwy8128cxwg";
   };
 
   buildInputs =
diff --git a/pkgs/applications/networking/browsers/icecat-4/default.nix b/pkgs/applications/networking/browsers/icecat-4/default.nix
new file mode 100644
index 000000000000..5d6f5c3acb0d
--- /dev/null
+++ b/pkgs/applications/networking/browsers/icecat-4/default.nix
@@ -0,0 +1,118 @@
+{ fetchurl, stdenv, xz, pkgconfig, gtk, pango, perl, python, ply, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs, alsaLib
+, libnotify, gnomevfs, libgnomeui
+, freetype, fontconfig, wirelesstools ? null, pixman
+, application ? "browser" }:
+
+# Build the WiFi stuff on Linux-based systems.
+# FIXME: Disable for now until it can actually be built:
+# http://thread.gmane.org/gmane.comp.gnu.gnuzilla/1376 .
+#assert stdenv.isLinux -> (wirelesstools != null);
+
+let version = "4.0.1.1"; in
+stdenv.mkDerivation {
+  name = "icecat-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.xz";
+    sha256 = "1f1y1834pv8f5fmfb5d4d5gj2v7bxsk3k9b9g832bwq0h5203yvg";
+  };
+
+  buildInputs =
+    [ xz libgnomeui libnotify gnomevfs alsaLib
+      pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 pixman
+      python ply dbus dbus_glib pango freetype fontconfig
+      xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
+    ]
+    ++ (stdenv.lib.optional false /* stdenv.isLinux */ wirelesstools);
+
+  patches = [
+    ./skip-gre-registration.patch ./rpath-link.patch
+  ];
+
+  configureFlags =
+    [ "--enable-application=${application}"
+      "--enable-libxul"
+      "--disable-javaxpcom"
+
+      "--enable-optimize"
+      "--disable-debug"
+      "--enable-strip"
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      "--with-system-bz2"
+      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+      "--enable-system-cairo"
+      #"--enable-system-sqlite" # <-- this seems to be discouraged
+      "--disable-crashreporter"
+    ]
+    ++ (stdenv.lib.optional true /* (!stdenv.isLinux) */ "--disable-necko-wifi");
+
+  postInstall = ''
+    export dontPatchELF=1;
+
+    # Strip some more stuff
+    strip -S "$out/lib/"*"/"* || true
+
+    # This fixes starting IceCat when there already is a running
+    # instance.  The `icecat' wrapper script actually expects to be
+    # in the same directory as `run-mozilla.sh', apparently.
+    libDir=$(cd $out/lib && ls -d icecat-[0-9]*)
+    test -n "$libDir"
+
+    if [ -f "$out/bin/icecat" ]
+    then
+        # Fix references to /bin paths in the IceCat shell script.
+        substituteInPlace $out/bin/icecat		\
+            --replace /bin/pwd "$(type -tP pwd)"	\
+            --replace /bin/ls "$(type -tP ls)"
+
+        cd $out/bin
+        mv icecat ../lib/$libDir/
+        ln -s ../lib/$libDir/icecat .
+
+        # Register extensions etc.
+        echo "running \`icecat -register'..."
+        (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./icecat-bin -register) || false
+    fi
+
+    if [ -f "$out/lib/$libDir/xpidl" ]
+    then
+        # XulRunner's IDL compiler.
+        echo "linking \`xpidl'..."
+        ln -s "$out/lib/$libDir/xpidl" "$out/bin"
+    fi
+
+    # Put the GNU IceCat icon in the right place.
+    ensureDir "$out/lib/$libDir/chrome/icons/default"
+    ln -s ../../../icons/default.xpm  "$out/lib/$libDir/chrome/icons/default/"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "GNU IceCat, a free web browser based on Mozilla Firefox";
+
+    longDescription = ''
+      Gnuzilla is the GNU version of the Mozilla suite, and GNU IceCat
+      is the GNU version of the Firefox browser.  Its main advantage
+      is an ethical one: it is entirely free software.  While the
+      source code from the Mozilla project is free software, the
+      binaries that they release include additional non-free software.
+      Also, they distribute and recommend non-free software as
+      plug-ins.  In addition, GNU IceCat includes some privacy
+      protection features.
+    '';
+
+    homepage = http://www.gnu.org/software/gnuzilla/;
+    licenses = [ "GPLv2+" "LGPLv2+" "MPLv1+" ];
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;
+  };
+
+  passthru = {
+    inherit gtk version;
+    isFirefox3Like = true;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/icecat-4/rpath-link.patch b/pkgs/applications/networking/browsers/icecat-4/rpath-link.patch
new file mode 100644
index 000000000000..d50784f13eea
--- /dev/null
+++ b/pkgs/applications/networking/browsers/icecat-4/rpath-link.patch
@@ -0,0 +1,14 @@
+Without this patch, IceCat ends up linking with
+`-Wl,-rpath-link=/bin -Wl-,-rpath-link=/lib'.
+
+--- icecat-3.5/js/src/configure	2009-07-04 18:03:01.000000000 +0200
++++ icecat-3.5/js/src/configure	2009-07-13 18:34:30.000000000 +0200
+@@ -4775,7 +4775,6 @@ HOST_AR='$(AR)'
+ HOST_AR_FLAGS='$(AR_FLAGS)'
+ 
+ MOZ_JS_LIBS='-L$(libdir) -lmozjs'
+-MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(PREFIX)/lib'
+ 
+ MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
+ MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom_compat'
+
diff --git a/pkgs/applications/networking/browsers/icecat-4/skip-gre-registration.patch b/pkgs/applications/networking/browsers/icecat-4/skip-gre-registration.patch
new file mode 100644
index 000000000000..d1fb4e3f30ab
--- /dev/null
+++ b/pkgs/applications/networking/browsers/icecat-4/skip-gre-registration.patch
@@ -0,0 +1,12 @@
+Skip "GRE" registration since that assumes write access to `/etc'.
+
+--- icecat-3.0.1-g1/xulrunner/installer/Makefile.in	2008-07-27 12:52:16.000000000 +0200
++++ icecat-3.0.1-g1/xulrunner/installer/Makefile.in	2008-09-08 17:19:17.000000000 +0200
+@@ -71,6 +71,7 @@ $(MOZILLA_VERSION).system.conf: $(topsrc
+ 	printf "[%s]\nGRE_PATH=%s\nxulrunner=true\nabi=%s" \
+ 	  $(MOZILLA_VERSION) $(installdir) $(TARGET_XPCOM_ABI)> $@
+ 
++SKIP_GRE_REGISTRATION = yes
+ ifndef SKIP_GRE_REGISTRATION
+ # to register xulrunner per-user, override this with $HOME/.gre.d
+ regdir = /etc/gre.d
diff --git a/pkgs/applications/networking/browsers/konq-plugins/default.nix b/pkgs/applications/networking/browsers/konq-plugins/default.nix
index 815e1a16964c..656e24be0718 100644
--- a/pkgs/applications/networking/browsers/konq-plugins/default.nix
+++ b/pkgs/applications/networking/browsers/konq-plugins/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, kdelibs, cmake, qt4, automoc4, phonon, kdebase, gettext  }:
+{ stdenv, fetchurl, kdelibs, cmake, qt4, automoc4, phonon, kde_baseapps, gettext  }:
 
 stdenv.mkDerivation rec {
   name = "konq-plugins-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1hn722rcdcwmhfnn89rnvp2b4d8gds4nm483ps3jkk83d7f2xmbi";
   };
 
-  buildInputs = [ cmake kdelibs qt4 automoc4 phonon kdebase gettext ];
+  buildInputs = [ cmake kdelibs qt4 automoc4 phonon kde_baseapps gettext ];
 
   patches = [ ./qt47.patch ];
 
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/builder.sh b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/builder.sh
index 2574ecb73eec..4db487f5c51c 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/builder.sh
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/builder.sh
@@ -2,6 +2,7 @@ source $stdenv/setup
 
 dontStrip=1
 dontPatchELF=1
+sourceRoot=$TMPDIR
 
 unpackPhase() {
     tar xvzf $src;
@@ -15,7 +16,7 @@ unpackPhase() {
 
 installPhase() {
     ensureDir $out/lib/mozilla/plugins
-    cp -p libflashplayer.so $out/lib/mozilla/plugins
+    cp -pv libflashplayer.so $out/lib/mozilla/plugins
     patchelf --set-rpath "$rpath" $out/lib/mozilla/plugins/libflashplayer.so
 }
 
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
index c20848eb2dac..462099ea8f2a 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
@@ -17,6 +17,7 @@
 , pango
 , cairo
 , atk
+, gdk_pixbuf
 , debug ? false
 
 /* you have to add ~/mm.cfg :
@@ -41,9 +42,9 @@ let
         throw "no x86_64 debugging version available"
       else {
         # -> http://labs.adobe.com/downloads/flashplayer10.html
-        version = "10.1_p2-r092710";
-        url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer_square_p2_64bit_linux_092710.tar.gz;
-        sha256 = "188dn08n3rb6w3hzq4snqvip5njxdyc8k8arp8xnlqw331lfvapx";
+        version = "10.3.181.34";
+        url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_2_p3_64bit_linux_111710.tar.gz;
+        sha256 = "1w2zs2f0q1vpx4ia9pj1k4p830dwz7ypyn302mi48wcpz1wzc1gg";
       }
     else if stdenv.system == "i686-linux" then
       if debug then {
@@ -52,11 +53,11 @@ let
         url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer_square_p2_32bit_debug_linux_092710.tar.gz;
         sha256 = "11w3mxa39l4mnlsqzlwbdh1sald549afyqbx2kbid7in5qzamlcc";
       } else {
-        version = "10.1.102.64";
+        version = "10.3.183.5";
         url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
-        sha256 = "1jfk9va3id0m6q6csg6gfycmryvi7kylbb7dswpsh6zh1zv00s62";
+        sha256 = "1kv7szpadgv0wwmi46vc05723qzsgclz68rij6x49l61sngzmw0x";
       }
-    else throw "flashplayer is not supported on this platform";
+    else throw "Flash Player is not supported on this platform";
 
 in
 
@@ -75,7 +76,7 @@ stdenv.mkDerivation {
 
   rpath = stdenv.lib.makeLibraryPath
     [ zlib alsaLib curl nss nspr fontconfig freetype expat libX11
-      libXext libXrender libXt gtk glib pango atk cairo
+      libXext libXrender libXt gtk glib pango atk cairo gdk_pixbuf
     ];
 
   buildPhase = ":";
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
index d50486cd742a..ddb70e6d633e 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gecko-mediaplayer-0.9.99.rc1";
+  name = "gecko-mediaplayer-1.0.4";
 
   src = fetchurl {
     url = "http://gecko-mediaplayer.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1ddp8z2a40wxdj7v20wqph9l4z4a47bjqzac7wlmmzjq7a9pbij2";
+    sha256 = "18asxxsqng303cxcww75k4r6syqjs7lylibv997kq0869kz4spsp";
   };
 
   buildInputs = [pkgconfig glib dbus dbus_glib browser x11 GConf browser.xulrunner];
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
new file mode 100644
index 000000000000..3ae24bdddf98
--- /dev/null
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, fetchurl, rpm, cpio, pkgsi686Linux, mesa, xorg, cairo
+, libpng, gtk, glib, fontconfig, freetype, curl
+}:
+
+with stdenv.lib;
+
+let
+
+  rpathNative = makeLibraryPath
+    [ stdenv.gcc.gcc
+      mesa
+      xorg.libXt
+      xorg.libX11
+      cairo
+      libpng
+      gtk
+      glib
+      fontconfig
+      freetype
+      curl
+    ];
+
+  rpath32 = makeLibraryPath
+    [ pkgsi686Linux.gtkLibs.gdk_pixbuf
+      pkgsi686Linux.gtkLibs.glib
+      pkgsi686Linux.gtkLibs.gtk
+      pkgsi686Linux.xorg.libX11
+      pkgsi686Linux.xorg.libXcomposite
+      pkgsi686Linux.xorg.libXfixes
+      pkgsi686Linux.xorg.libXrender
+      pkgsi686Linux.xorg.libXrandr
+      pkgsi686Linux.gcc.gcc
+      pkgsi686Linux.alsaLib
+      pkgsi686Linux.pulseaudio
+      pkgsi686Linux.dbus_glib
+      pkgsi686Linux.udev
+    ];
+
+in
+
+stdenv.mkDerivation {
+  name = "google-talk-plugin-2.107.0";
+
+  src =
+    if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = "http://dl.google.com/linux/direct/google-talkplugin_current_x86_64.rpm";
+        sha256 = "01c8w221azvmqvxf5lgb8l151086d72ll5wnjndwn50dvi6rphvx";
+      }
+    else
+      throw "Google Talk does not support your platform.";
+
+  buildInputs = [ rpm cpio ];
+      
+  unpackPhase =
+    ''
+      rpm2cpio $src | cpio -i --make-directories -v
+    '';
+
+  installPhase =
+    ''
+      mkdir -p $out/lib/mozilla/plugins
+      cp opt/google/talkplugin/libnp*.so $out/lib/mozilla/plugins/
+
+      patchelf --set-rpath "${makeLibraryPath [ stdenv.gcc.gcc ]}:${stdenv.gcc.gcc}/lib64" \
+        $out/lib/mozilla/plugins/libnpgoogletalk64.so
+
+      patchelf --set-rpath "$out/libexec/google/talkplugin/lib:${rpathNative}:${stdenv.gcc.gcc}/lib64" \
+        $out/lib/mozilla/plugins/libnpgtpo3dautoplugin.so
+
+      mkdir -p $out/libexec/google/talkplugin
+      cp opt/google/talkplugin/GoogleTalkPlugin $out/libexec/google/talkplugin/
+      
+      mkdir -p $out/libexec/google/talkplugin/lib
+      cp opt/google/talkplugin/lib/libCg* $out/libexec/google/talkplugin/lib/
+
+      patchelf \
+        --set-interpreter ${pkgsi686Linux.glibc}/lib/ld-linux*.so.2 \
+        --set-rpath ${rpath32} \
+        $out/libexec/google/talkplugin/GoogleTalkPlugin
+    '';
+
+  dontStrip = true;
+  dontPatchELF = true;
+  
+  passthru.mozillaPlugin = "/lib/mozilla/plugins";
+
+  meta = {
+    homepage = http://www.google.com/chat/video/;
+    license = "unfree";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/applications/networking/browsers/rekonq/default.nix b/pkgs/applications/networking/browsers/rekonq/default.nix
index f9b8061d5ebd..ee37c2450a64 100644
--- a/pkgs/applications/networking/browsers/rekonq/default.nix
+++ b/pkgs/applications/networking/browsers/rekonq/default.nix
@@ -2,12 +2,12 @@
 , gettext}:
 
 stdenv.mkDerivation rec {
-  name = "rekonq-0.6.1";
+  name = "rekonq-0.7.0";
   passthru = { inherit stdenv; };
 
   src = fetchurl {
     url = "mirror://sf/rekonq/${name}.tar.bz2";
-    sha256 = "1hgy8ph4k4ngdy1kr4w3qwkfdylapsj7rjpk8wxn97yc4qnk57by";
+    sha256 = "14gi8ic53jkam2v52zp4p965dw6pqhjm3xhqssm5vimx7hp0kc1w";
   };
 
   buildInputs = [ cmake qt4 kdelibs automoc4 phonon perl gettext ];
diff --git a/pkgs/applications/networking/browsers/uzbl/default.nix b/pkgs/applications/networking/browsers/uzbl/default.nix
index 05dfaa3e67ee..145e5de90b72 100644
--- a/pkgs/applications/networking/browsers/uzbl/default.nix
+++ b/pkgs/applications/networking/browsers/uzbl/default.nix
@@ -28,7 +28,8 @@ rec {
       --prefix GST_PLUGIN_PATH : ${a.webkit.gstreamer}/lib/gstreamer-* \
       --prefix GST_PLUGIN_PATH : ${a.webkit.gstPluginsBase}/lib/gstreamer-* \
       --prefix GST_PLUGIN_PATH : ${a.webkit.gstPluginsGood}/lib/gstreamer-* \
-      --prefix GST_PLUGIN_PATH : ${a.webkit.gstFfmpeg}/lib/gstreamer-* 
+      --prefix GST_PLUGIN_PATH : ${a.webkit.gstFfmpeg}/lib/gstreamer-* \
+      --prefix GIO_EXTRA_MODULES : ${a.glib_networking}/lib/gio/modules
     '';
 
   installFlags = "PREFIX=$out";
diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix
index 6844e582026c..d5294c961e64 100644
--- a/pkgs/applications/networking/browsers/w3m/default.nix
+++ b/pkgs/applications/networking/browsers/w3m/default.nix
@@ -8,12 +8,12 @@
 assert sslSupport -> openssl != null;
 assert graphicsSupport -> x11 != null;
 
-stdenv.mkDerivation {
-  name = "w3m-0.5.2";
+stdenv.mkDerivation rec {
+  name = "w3m-0.5.3";
 
   src = fetchurl {
-    url = mirror://sourceforge/w3m/w3m-0.5.2.tar.gz;
-    md5 = "ba06992d3207666ed1bf2dcf7c72bf58";
+    url = "mirror://sourceforge/w3m/${name}.tar.gz";
+    sha256 = "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579";
   };
 
   # Patch for the newer unstable boehm-gc 7.2alpha. Not all platforms use that
diff --git a/pkgs/applications/networking/ekiga/default.nix b/pkgs/applications/networking/ekiga/default.nix
index d411c3b0f57c..276df1ae7a15 100644
--- a/pkgs/applications/networking/ekiga/default.nix
+++ b/pkgs/applications/networking/ekiga/default.nix
@@ -3,7 +3,7 @@ x@{builderDefsPackage
   , perl, perlXMLParser, evolution_data_server, gnome_doc_utils, avahi
   , libsigcxx, gtk, dbus_glib, libnotify, libXext, xextproto, automake
   , autoconf, pkgconfig, libxml2, videoproto, unixODBC, db4, nspr, nss, zlib
-  , libXrandr, randrproto, which, libxslt, libtasn1
+  , libXrandr, randrproto, which, libxslt, libtasn1, gmp, nettle
   , ...}:
 builderDefsPackage
 (a :  
diff --git a/pkgs/applications/networking/esniper/default.nix b/pkgs/applications/networking/esniper/default.nix
new file mode 100644
index 000000000000..5aaf419d3897
--- /dev/null
+++ b/pkgs/applications/networking/esniper/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, openssl, curl }:
+
+stdenv.mkDerivation {
+  name = "esniper-2.26.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/esniper/esniper-2-26-0.tgz";
+    sha256 = "5fd9a0f4b27b98deca303cd3d16c1ed060e05a165a40b2f4a9f8546db5e3877d";
+  };
+
+  buildInputs = [openssl curl];
+
+  postInstall = ''
+    sed -e  "2i export PATH=\"$out/bin:\$PATH\"" <"frontends/snipe" >"$out/bin/snipe"
+    chmod 555 "$out/bin/snipe"
+  '';
+
+  meta = {
+    description = "Simple, lightweight tool for sniping eBay auctions";
+    homepage = "http://esnipe.rsourceforge.net";
+    license = "GPLv2";
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
+
+
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-otr/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-otr/default.nix
deleted file mode 100644
index 972c812b2566..000000000000
--- a/pkgs/applications/networking/instant-messengers/bitlbee-otr/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchbzr, gnutls, glib, pkgconfig, libotr, libgcrypt
-, libxslt, xmlto, docbook_xsl, docbook_xml_dtd_42, perl }:
-
-let revision = "369"; in
-stdenv.mkDerivation rec {
-  name = "bitlbee-otr-r${revision}";
-  src = fetchbzr {
-    url = "http://khjk.org/~pesco/bitlbee-otr";
-    sha256 = "0fb7987ec4a321e07f22690ed6617db9f377fdf4e65a531d8da28a950817074f";
-    inherit revision;
-  };
-
-  patchPhase = ''
-    # Both OTR and GnuTLS depend on libgcrypt, but for some reason, `bitlbee'
-    # must be explicitly linked against it.
-    sed -i "configure" -e "s|-f \$""{i}/lib/libotr.a|0 -eq 0|g ;
-                           s|otrprefix=\$""{i}|otrprefix=\"${libotr}\"|g ;
-                           s|-lotr|-lotr -L${libgcrypt} -lgcrypt|g";
-  '';
-
-  buildInputs = [ gnutls glib pkgconfig libotr libgcrypt
-    libxslt xmlto docbook_xsl docbook_xml_dtd_42 perl
-  ];
-
-  meta = {
-    description = ''BitlBee, an IRC to other chat networks gateway.'';
-
-    longDescription = ''
-      This unofficial version adds support for communication encryption
-      and authentication via the OTR (off-the-record) library.
-    '';
-
-    # See also http://bugs.bitlbee.org/bitlbee/ticket/115 .
-    homepage = http://khjk.org/bitlbee-otr/;
-
-    license = "GPL";
-  };
-}
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index f207eaed7037..1d49e0d1ff78 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -1,16 +1,19 @@
-{ fetchurl, stdenv, gnutls, glib, pkgconfig, check }:
+{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr }:
 
 stdenv.mkDerivation rec {
-  name = "bitlbee-1.2.8";
+  name = "bitlbee-3.0.3";
 
   src = fetchurl {
     url = "mirror://bitlbee/src/${name}.tar.gz";
-    sha256 = "11lfxvra46mwcnlxvhnywv6xbp7zl3h27hsbfwdh16b6fy41n1is";
+    sha256 = "09dgwfqznd2cnqraksivmh132nnl99gwgplynjmfsyyf6y4pbjl2";
   };
 
-  buildInputs = [ gnutls glib pkgconfig ]
+  buildInputs = [ gnutls glib pkgconfig libotr ]
     ++ stdenv.lib.optional doCheck check;
 
+  configureFlags = [ "--otr=1" ];
+
+  preCheck = "mkdir tests/.depend";
   doCheck = true;
 
   meta = {
diff --git a/pkgs/applications/networking/instant-messengers/freetalk/01_callbacks_const_fix.diff b/pkgs/applications/networking/instant-messengers/freetalk/01_callbacks_const_fix.diff
new file mode 100644
index 000000000000..5fe871601229
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/freetalk/01_callbacks_const_fix.diff
@@ -0,0 +1,25 @@
+Description: Patch to fix FTBFS due to a modified const in src/callbacks.cc
+Forwarded: yes
+Origin: Ubuntu,
+https://bugs.launchpad.net/ubuntu/+source/freetalk/+bug/443241
+Bug-Debian: http://bugs.debian.org/560535
+Author: Jon Bernard <bernardj@gmail.com>
+--- 3.2-1.orig/src/callbacks.cc	2008-11-15 10:41:22.000000000 +0000
++++ 3.2-1/src/callbacks.cc	2009-10-21 15:50:49.000000000 +0100
+@@ -116,13 +116,13 @@ ft_msg_msg_handler (LmMessageHandler *ha
+ 		    LmMessage *msg, gpointer user_data)
+ {
+   LmMessageNode *root, *body, *x;
+-  const char *from, *msg_str, *type;
+-  char *ts = NULL;
++  const char *msg_str, *type;
++  char *from, *ts = NULL;
+ 
+   root = lm_message_get_node (msg);
+   body = lm_message_node_get_child (root, "body");
+ 
+-  from = lm_message_node_get_attribute (msg->node, "from");
++  from = (char *) lm_message_node_get_attribute (msg->node, "from");
+ 
+   /* since the file-transfer happens in-band with messages, we can no longer
+    * ignore messages with no 'body' */
diff --git a/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/pkgs/applications/networking/instant-messengers/freetalk/default.nix
new file mode 100644
index 000000000000..cdbc4233cf48
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/freetalk/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool
+  , libunwind, ncurses
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="freetalk";
+    version="3.2";
+    name="${baseName}-${version}";
+    url="mirror://savannah/${baseName}/${name}.tar.gz";
+    hash="12dn7yj9k5xsrrjlnma77wzpvsdxjccwla1q0wy3lacl5l2p0jms";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  patches = [./01_callbacks_const_fix.diff];
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doPatch" "doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "Console XMPP client";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl3Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.gnu.org/software/freetalk/";
+    };
+  };
+}) x
+
diff --git a/pkgs/applications/networking/instant-messengers/kadu/config.patch b/pkgs/applications/networking/instant-messengers/kadu/config.patch
new file mode 100644
index 000000000000..263898ba0db1
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/kadu/config.patch
@@ -0,0 +1,15 @@
+diff --git a/.config b/.config
+index e0068bf..808ebf4 100644
+--- a/.config
++++ b/.config
+@@ -187,8 +187,8 @@ module_history_migration=m
+ # PL: Obsługa szyfrowania wiadomości przy pomocy OpenSSLa
+ # Platform: Linux, Mac OS X, Windows
+ # Needs: libcrypto, libssl
+-module_encryption_ng=m
+-module_encryption_ng_simlite=m
++module_encryption_ng=n
++module_encryption_ng_simlite=n
+ 
+ # Description: Auto away module
+ # PL: Obsługa automatycznej zmiany statusu po określonym czasie bezczynności
diff --git a/pkgs/applications/networking/instant-messengers/kadu/default.nix b/pkgs/applications/networking/instant-messengers/kadu/default.nix
index c35d71fbca0a..70c7d7234e0c 100644
--- a/pkgs/applications/networking/instant-messengers/kadu/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kadu/default.nix
@@ -1,27 +1,33 @@
-{ stdenv, fetchurl, cmake, qt4, libgadu, libXScrnSaver, libsndfile, qca2
-, libX11, alsaLib }:
+{ stdenv, fetchurl, cmake, qt4, libgadu, libXScrnSaver, libsndfile, libX11,
+  alsaLib, aspell, libidn, qca2, phonon }:
 
 stdenv.mkDerivation {
 
-  name = "kadu-0.6.5.4";
+  name = "kadu-0.9.2";
 
   src = fetchurl {
-    url = http://www.kadu.net/download/stable/kadu-0.6.5.4.tar.bz2;
-    sha256 = "09bdcyx75lca1pl6x3vfpawmdjn5pfxvwivb9xdhk4bdvswxgv4x";
+    url = http://www.kadu.net/download/stable/kadu-0.9.2.tar.bz2;
+    sha256 = "05lpx7m2adx8vv4h62rsiwlgay24m6cxdbibg7vzl4xkq9ybv30b";
   };
-  
+
   buildInputs = [
-    cmake qt4 libgadu libXScrnSaver libsndfile qca2 libX11 alsaLib
+    cmake qt4 libgadu libXScrnSaver libsndfile libX11 alsaLib aspell libidn qca2 phonon
   ];
 
-  cmakeFlags = "-DENABLE_AUTODOWNLOAD=OFF";
+  configureFlags = "CPPFLAGS=-DQT_NO_DEBUG";
+
+  cmakeFlags = "-DENABLE_AUTODOWNLOAD=OFF -DBUILD_DESCRIPTION='NixOS' -DCMAKE_BUILD_TYPE=Release";
 
   prePatch = ''
     patchShebangs .
   '';
 
-  meta = { 
-    description = "An instance messanger client for the gadu-gadu network (most popular polish IM network)";
+  patches = [ ./config.patch ];
+
+  NIX_LDFLAGS="-lX11";
+
+  meta = {
+    description = "An instant-messenger client for the gadu-gadu network (most popular polish IM network)";
     homepage = http://www.kadu.net/w/English:Main_Page;
     license = "GPLv2";
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/kadu/more-icons.patch b/pkgs/applications/networking/instant-messengers/kadu/more-icons.patch
deleted file mode 100644
index 60234d361f7c..000000000000
--- a/pkgs/applications/networking/instant-messengers/kadu/more-icons.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- kadu/.config	2010-01-18 17:13:31.000000000 +0100
-+++ kadu/.config	2010-09-28 21:21:48.000000000 +0200
-@@ -559,10 +559,10 @@ icons_glass16=y
- icons_glass22=y
- 
- # Desctiption: Tango 16x16 icons made by BlotoPosniegowe
--icons_tango16=n
-+icons_tango16=y
- 
- # Description: Oxygen 16x16 icons maintained by Piotr Pelzowski
--icons_oxygen16=n
-+icons_oxygen16=y
diff --git a/pkgs/applications/networking/instant-messengers/oneteam/default.nix b/pkgs/applications/networking/instant-messengers/oneteam/default.nix
new file mode 100644
index 000000000000..37f56a638068
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/oneteam/default.nix
@@ -0,0 +1,90 @@
+x@{builderDefsPackage
+  , fetchgit, perl, xulrunner, cmake, perlPackages, zip, unzip, pkgconfig
+  , pulseaudio, gtkLibs, pixman, nspr, nss, libXScrnSaver, scrnsaverproto
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["fetchgit" "perlPackages" "gtkLibs"];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames)) ++ [
+      a.perlPackages.SubName a.gtkLibs.gtk a.gtkLibs.glib
+    ];
+  sourceInfo = rec {
+    baseName="oneteam";
+    version="git-head";
+    name="${baseName}-${version}";
+    url="git://git.process-one.net/oneteam/oneteam.git";
+    rev="066cd861ea4436bbe363f032c58a746a1cac7498";
+    hash="972310d6ef20db7dc749d7d935aa50889afe2004db2a07409830e09ef639f30a";
+    method="fetchgit";
+  };
+in
+rec {
+  srcDrv = a.fetchgit {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+    rev = sourceInfo.rev;
+  };
+
+  src=srcDrv + "/";
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["goComponents" "setVars" "fixComponents" "doCmake" 
+    "doMakeInstall" "goBack" "buildApp" "doDeploy"];
+
+  fixComponents = a.fullDepEntry ''
+    sed -e '1i#include <netinet/in.h>' -i src/rtp/otRTPDecoder.cpp src/rtp/otRTPEncoder.cpp
+  '' ["minInit" "doUnpack"];
+
+  setVars=a.noDepEntry ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
+  '';
+
+  cmakeBuildDir="cmake-build";
+  cmakeFlags=["-D XPCOM_GECKO_SDK=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"];
+
+  goComponents=a.fullDepEntry "cd src/components" ["doUnpack"];
+  goBack=a.noDepEntry "cd ../../..";
+
+  buildApp=a.fullDepEntry ''
+    perl build.pl XULAPP 1
+  '' ["addInputs"];
+
+  doDeploy = a.fullDepEntry ''
+    TARGET_DIR="$out/share/oneteam/app"
+    BUILD_DIR="$PWD"
+    ensureDir "$TARGET_DIR"
+    cd "$TARGET_DIR"
+    unzip "$BUILD_DIR/oneteam.xulapp"
+    ensureDir "$out/bin"
+    echo "#! ${a.stdenv.shell}" > "$out/bin/oneteam"
+    echo "\"${xulrunner}/bin/xulrunner\" \"$TARGET_DIR/application.ini\"" > "$out/bin/oneteam"
+    chmod a+x "$out/bin/oneteam"
+    ensureDir "$out/share/doc"
+    cp -r "$BUILD_DIR/docs" "$out/share/doc/oneteam"
+  '' ["defEnsureDir"];
+
+  meta = {
+    description = "An XMPP client";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+    homepage="http://oneteam.im";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "git://git.process-one.net/oneteam/oneteam.git";
+    };
+  };
+}) x
+
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index fac93102ea58..89c3a10a45e8 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -17,14 +17,14 @@
   , lib, python
   , openssl ? null
   , gnutls ? null
-  , voice ? null
+  , libgcrypt ? null
 } :
 
 stdenv.mkDerivation {
-  name = "pidgin-2.7.8";
+  name = "pidgin-2.9.0";
   src = fetchurl {
-    url = mirror://sourceforge/pidgin/pidgin-2.7.8.tar.bz2;
-    sha256 = "1ci173g1xshfi4pl9wqv9g3fwxyqvdz5v61bgqpfij0hl1ss9k4c";
+    url = mirror://sourceforge/pidgin/pidgin-2.9.0.tar.bz2;
+    sha256 = "1mygaap7cbak9n9zm4wshxnvb27a68w633d712vy2knr8z78xvi8";
   };
 
   inherit nss ncurses;
@@ -34,6 +34,7 @@ stdenv.mkDerivation {
     libxml2] 
   ++ (lib.optional (openssl != null) openssl)
   ++ (lib.optional (gnutls != null) gnutls)
+  ++ (lib.optional (libgcrypt != null) libgcrypt)
   ++
   [nss nspr farsight2
     libXScrnSaver ncurses python
@@ -45,7 +46,7 @@ stdenv.mkDerivation {
     pkgconfig gtk perl perlXMLParser gettext
   ];
 
-  patches = [./pidgin-makefile.patch];
+  patches = [./pidgin-makefile.patch ];
 
   configureFlags="--with-nspr-includes=${nspr}/include/nspr --with-nspr-libs=${nspr}/lib --with-nss-includes=${nss}/include/nss --with-nss-libs=${nss}/lib --with-ncurses-headers=${ncurses}/include --disable-meanwhile --disable-nm --disable-tcl"
   + (lib.optionalString (gnutls != null) " --enable-gnutls=yes --enable-nss=no")
diff --git a/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
index a08cc2795bbb..41658be08a9d 100644
--- a/pkgs/applications/networking/instant-messengers/vacuum/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
@@ -1,6 +1,6 @@
 x@{builderDefsPackage
   , qt4, openssl
-  , xproto, libX11
+  , xproto, libX11, libXScrnSaver, scrnsaverproto
   , ...}:
 builderDefsPackage
 (a :  
@@ -11,11 +11,11 @@ let
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    version="1.0.2";
+    version="1.1.0";
     baseName="vacuum";
     name="${baseName}-${version}";
-    url="http://vacuum-im.googlecode.com/files/${name}-source.tar.gz";
-    hash="01ndwxpgr8911f2nfyb6i7avmmlwfikn031q1s60js4lgbqdq3b7";
+    url="http://vacuum-im.googlecode.com/files/${name}.tar.gz";
+    hash="c956b0cf5cc0a1acee47a96f0b0e7ab5d716e48cac4a7fcbca496f901a219dcc";
   };
 in
 rec {
@@ -35,8 +35,6 @@ rec {
     sed -re 's/qHash[(][a-z ]*QUrl/vacuum_obsolete_&/' -i src/plugins/dataforms/dataforms.cpp
   '') ["minInit" "doUnpack"];
 
-  goSrcDir = ''cd vacuum-*/'';
-
   doQMake = a.fullDepEntry (''
     qmake INSTALL_PREFIX=$out -recursive vacuum.pro
   '') ["doUnpack" "addInputs"];
diff --git a/pkgs/applications/networking/irc/chatzilla/default.nix b/pkgs/applications/networking/irc/chatzilla/default.nix
index b981c105a0c9..a0197a99a509 100644
--- a/pkgs/applications/networking/irc/chatzilla/default.nix
+++ b/pkgs/applications/networking/irc/chatzilla/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "chatzilla-0.9.86";
+  name = "chatzilla-0.9.86.1";
   
   src = fetchurl {
     # Obtained from http://chatzilla.rdmsoft.com/xulrunner/.
-    url = http://chatzilla.rdmsoft.com/xulrunner/download/chatzilla-0.9.86-xr.zip;
-    sha256 = "1z8767arx2ncch0pzkdzhisjgmd45qianahz3xr8isvahv2klj5x";
+    url = http://chatzilla.rdmsoft.com/xulrunner/download/chatzilla-0.9.86.1-xr.zip;
+    sha256 = "06s4g0x7hsckd7wr904j8rzksvqhvcrhl9zwga2458rgafcbbghd";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix
index 2be964db3312..8dcde90e538e 100644
--- a/pkgs/applications/networking/irc/quassel/default.nix
+++ b/pkgs/applications/networking/irc/quassel/default.nix
@@ -11,11 +11,11 @@ let
 
 in with stdenv; mkDerivation rec {
 
-  name = "quassel-0.6.1";
+  name = "quassel-0.7.1";
 
   src = fetchurl {
     url = "http://quassel-irc.org/pub/${name}.tar.bz2";
-    sha256 = "1v5mxligfygn7r7hm3b9by38qxigncfkp6w4n8ypp8ww6n8ml6z0";
+    sha256 = "1kby1yikiv5bpzkdri5dq39pxnsj9gjrcv1gigvy2jzy3g99qjli";
   };
 
   buildInputs = [ cmake qt4 ]
diff --git a/pkgs/applications/networking/linphone/default.nix b/pkgs/applications/networking/linphone/default.nix
new file mode 100644
index 000000000000..07ca19b63cc5
--- /dev/null
+++ b/pkgs/applications/networking/linphone/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk, libglade, libosip, libexosip, speex,
+  readline, ffmpeg, alsaLib, SDL, libv4l, libtheora, libXv }:
+        
+stdenv.mkDerivation rec {
+  name = "linphone-3.4.3";
+
+  src = fetchurl {
+    url = "mirror://savannah/linphone/3.4.x/sources/${name}.tar.gz";
+    sha256 = "14k655z0kfmnm42nxhsl25rjim9swrr4kpnplkx3pd9b3yha1rwj";
+  };
+
+  buildInputs = [ intltool pkgconfig gtk libglade libosip libexosip speex readline
+    ffmpeg alsaLib SDL libv4l libtheora libXv ];
+
+  meta = {
+    homepage = http://www.linphone.org/;
+    description = "Open Source video SIP softphone";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index ffe4ca327126..02870c70f646 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses, which, perl
+{ stdenv, fetchurl, ncurses, which, perl, gpgme
 , sslSupport ? true
 , imapSupport ? true
 , headerCache ? true
@@ -12,18 +12,16 @@ assert headerCache -> gdbm != null;
 assert sslSupport -> openssl != null;
 assert saslSupport -> cyrus_sasl != null;
 
-stdenv.mkDerivation {
-  name = "mutt-1.5.20";
+stdenv.mkDerivation rec {
+  name = "mutt-1.5.21";
   
   src = fetchurl {
-    url = ftp://ftp.mutt.org/mutt/devel/mutt-1.5.20.tar.gz;
-    sha256 = "15m7m419r82awx4mr4nam25m0kpg0bs9vw1z4a4mrzvlkl3zqycm";
+    url = "ftp://ftp.mutt.org/mutt/devel/${name}.tar.gz";
+    sha256 = "1864cwz240gh0zy56fb47qqzwyf6ghg01037rb4p2kqgimpg6h91";
   };
 
-  patches = [ ./openssl.patch ];
-  
   buildInputs = [
-    ncurses which perl
+    ncurses which perl gpgme
     (if headerCache then gdbm else null)
     (if sslSupport then openssl else null)
     (if saslSupport then cyrus_sasl else null)
@@ -33,7 +31,7 @@ stdenv.mkDerivation {
     "--with-mailpath=" "--enable-smtp"
 
     # This allows calls with "-d N", that output debug info into ~/.muttdebug*
-    "--enable-debug"
+    "--enable-debug" "--enable-pop" "--enable-imap" "--enable-gpgme"
 
     # The next allows building mutt without having anything setgid
     # set by the installer, and removing the need for the group 'mail'
diff --git a/pkgs/applications/networking/mailreaders/mutt/openssl.patch b/pkgs/applications/networking/mailreaders/mutt/openssl.patch
deleted file mode 100644
index 6476075d67de..000000000000
--- a/pkgs/applications/networking/mailreaders/mutt/openssl.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Fixes a compilation problem with OpenSSL 1.0.0.
-From http://www.freebsd.org/cgi/query-pr.cgi?pr=146261
-
-diff -ru -x '*~' mutt-1.5.20-orig/mutt_ssl.c mutt-1.5.20/mutt_ssl.c
---- mutt-1.5.20-orig/mutt_ssl.c	2009-06-10 07:08:29.000000000 +0200
-+++ mutt-1.5.20/mutt_ssl.c	2010-07-24 10:46:08.000000000 +0200
-@@ -652,7 +652,7 @@
-   char *buf = NULL;
-   int bufsize;
-   /* needed to get the DNS subjectAltNames: */
--  STACK *subj_alt_names;
-+  STACK_OF(GENERAL_NAME) *subj_alt_names;
-   int subj_alt_names_count;
-   GENERAL_NAME *subj_alt_name;
-   /* did we find a name matching hostname? */
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
new file mode 100644
index 000000000000..830ef82cf7a8
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -0,0 +1,84 @@
+{ fetchgit, stdenv, bash, emacs, gdb, git, glib, gmime, gnupg1, pkgconfig, talloc, xapian }:
+
+stdenv.mkDerivation rec {
+  name = "notmuch-0.6-rc4";
+
+  src = fetchgit {
+    url = "git://github.com/chaoflow/notmuch";
+    rev = "9f8ef78e0c6b28918f3edda06b59a9e8f9bef8e3";
+    sha256 = "c7c425c10a695ca22dfbdf5fe8e0dcb6a888edc0b3388023e7ff35f69acc0085";
+  };
+
+  buildInputs = [ bash emacs gdb git glib gmime gnupg1 pkgconfig talloc xapian ];
+
+  # XXX: Make me a loop
+  patchPhase = ''
+    substituteInPlace "test/atomicity" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/author-order" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/basic" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/crypto" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/dump-restore" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/emacs" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/emacs-large-search-buffer" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/encoding" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/from-guessing" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/json" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/long-id" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/maildir-sync" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/new" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/notmuch-test" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/raw" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/reply" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/search" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/search-by-folder" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/search-insufficient-from-quoting" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/search-output" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/search-position-overlap-bug" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/test-lib.sh" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/test-verbose" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/thread-naming" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/thread-order" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+    substituteInPlace "test/uuencode" \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+  '';
+
+  postBuild = ''
+    make test
+  '';
+
+  meta = {
+    description = "Notmuch -- The mail indexer";
+
+    longDescription = "";
+
+    license = "GPLv3";
+
+    maintainers = [ stdenv.lib.maintainers.chaoflow ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix b/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix
index 0242f22f396b..b644837b377f 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix
@@ -11,14 +11,14 @@
     
 }:
 
-let version = "3.1.6"; in
+let version = "3.1.9"; in
 
 stdenv.mkDerivation {
   name = "thunderbird-${version}";
 
   src = fetchurl {
     url = "http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.bz2";
-    sha1 = "d9c089c64cc7a784e128d9c594ef649a35babe30";
+    sha1 = "22b153102939430180ae1873ce15ef52286ff08d";
   };
 
   buildInputs =
@@ -66,6 +66,6 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Mozilla Thunderbird, a full-featured email client";
-    homepage = http://www.mozilla.com/en-US/thunderbird/;
+    homepage = http://www.mozilla.org/en-US/thunderbird/;
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/5.x.nix b/pkgs/applications/networking/mailreaders/thunderbird/5.x.nix
new file mode 100644
index 000000000000..f80fde276542
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird/5.x.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchurl, pkgconfig, gtk, perl, python, zip, libIDL
+, dbus_glib, bzip2, alsaLib, nspr, yasm, mesa, nss
+, libnotify, cairo, pixman, fontconfig
+
+, # If you want the resulting program to call itself "Thunderbird"
+  # instead of "Shredder", enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+
+}:
+
+let version = "5.0"; in
+
+# from wikipedia: This Release no longer supports versions of Mac OS X
+# before Mac OS X 10.5 Leopard or Mac computers with PowerPC processors.
+stdenv.mkDerivation {
+  name = "thunderbird-${version}";
+
+  src = fetchurl {
+    url = "http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.bz2";
+    sha1 = "392c3e0ef70b62c29a543f88b2b8d5a51bfe69a7";
+  };
+
+  buildInputs =
+    [ pkgconfig perl python zip bzip2 gtk dbus_glib alsaLib libIDL nspr libnotify
+      libnotify cairo pixman fontconfig yasm mesa nss
+    ];
+
+  patches = [
+    # Fix weird dependencies such as a so file which depends on "-lpthread".
+    ./thunderbird-build-deps.patch
+  ];
+
+  NIX_LDFLAGS = "-lpixman-1";
+
+  configureFlags =
+    [ "--enable-application=mail"
+      "--enable-optimize"
+      "--disable-debug"
+      "--enable-strip"
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      # "--with-system-bz2"
+      "--with-system-nspr"
+      "--enable-system-cairo"
+      "--disable-crashreporter"
+      "--disable-necko-wifi"
+      "--disable-tests"
+      "--enable-calendar"
+    ]
+    ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
+
+  # The Thunderbird Makefiles refer to the variables LIBXUL_DIST,
+  # prefix, and PREFIX in some places where they are not set.  In
+  # particular, there are some linker flags like
+  # `-rpath-link=$(LIBXUL_DIST)/bin'.  Since this expands to
+  # `-rpath-link=/bin', the build fails due to the purity checks in
+  # the ld wrapper.  So disable the purity check for now.
+  preBuild = "NIX_ENFORCE_PURITY=0";
+
+  # This doesn't work:
+  #makeFlags = "LIBXUL_DIST=$(out) prefix=$(out) PREFIX=$(out)";
+
+  postInstall =
+    ''
+      # Fix some references to /bin paths in the Xulrunner shell script.
+      substituteInPlace $out/lib/thunderbird-*/thunderbird \
+          --replace /bin/pwd "$(type -tP pwd)" \
+          --replace /bin/ls "$(type -tP ls)"
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Mozilla Thunderbird, a full-featured email client";
+    homepage = http://www.mozilla.org/en-US/thunderbird/;
+    license =
+      # Official branding implies thunderbird name and logo cannot be reuse,
+      # see http://www.mozilla.org/foundation/licensing.html
+      if enableOfficialBranding then licenses.proprietary else licenses.mpl11;
+    maintainers = with maintainers; [ pierron ];
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/thunderbird-build-deps.patch b/pkgs/applications/networking/mailreaders/thunderbird/thunderbird-build-deps.patch
new file mode 100644
index 000000000000..ac074e8c8812
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird/thunderbird-build-deps.patch
@@ -0,0 +1,21 @@
+diff -x _inst -x _build -x .svn -ur comm-miramar/config/rules.mk comm-miramar.after/config/rules.mk
+--- comm-miramar/config/rules.mk	2011-06-24 22:13:31.000000000 +0200
++++ comm-miramar/config/rules.mk	2011-08-15 12:27:07.305556040 +0200
+@@ -851,9 +851,13 @@
+ 
+ ifndef _LIBNAME_RELATIVE_PATHS
+ 
+-LIBS_DEPS += $(filter -l%, $(LIBS))
+-HOST_LIBS_DEPS += $(filter -l%, $(HOST_LIBS))
+-DSO_LDOPTS_DEPS += $(filter -l%, $(EXTRA_DSO_LDOPTS))
++LIBS_DEPS += $(patsubst -l%,$(LIB_PREFIX)%$(DLL_SUFFIX),$(filter-out -lpthread -ldl -lrt -ljemalloc -lmozmalloc,$(filter -l%, $(LIBS))))
++HOST_LIBS_DEPS += $(patsubst -l%,$(LIB_PREFIX)%$(DLL_SUFFIX),$(filter-out -lpthread -ldl -lrt -ljemalloc -lmozmalloc,$(filter -l%, $(HOST_LIBS))))
++DSO_LDOPTS_DEPS += $(patsubst -l%,$(LIB_PREFIX)%$(DLL_SUFFIX),$(filter-out -lpthread -ldl -lrt -ljemalloc -lmozmalloc,$(filter -l%, $(EXTRA_DSO_LDOPTS))))
++
++LIBS_DEPS += $(patsubst -l%,$(LIB_PREFIX)%.$(LIB_SUFFIX),$(filter -ljemalloc -lmozmalloc, $(LIBS)))
++HOST_LIBS_DEPS += $(patsubst -l%,$(LIB_PREFIX)%.$(LIB_SUFFIX),$(filter -ljemalloc -lmozmalloc, $(HOST_LIBS)))
++DSO_LDOPTS_DEPS += $(patsubst -l%,$(LIB_PREFIX)%.$(LIB_SUFFIX),$(filter -ljemalloc -lmozmalloc, $(EXTRA_DSO_LDOPTS)))
+ 
+ _LIBDIRS = $(patsubst -L%,%,$(filter -L%, $(LIBS) $(HOST_LIBS) $(EXTRA_DSO_LDOPTS)))
+ ifneq (,$(_LIBDIRS))
+Seulement dans comm-miramar.after/config: rules.mk~
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
new file mode 100644
index 000000000000..5c9e215f8764
--- /dev/null
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, qt4, libvorbis, boost, speechd, protobuf, libsndfile,
+ avahi, dbus, libcap,
+jackSupport ? false, 
+jackaudio ? null }:
+
+
+stdenv.mkDerivation rec {
+  name = "mumble-" + version;
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mumble/${name}.tar.gz";
+    sha256 = "1s4vlkdfmyzx7h3i4060q0sf2xywl9sm6dpjhaa150blbcylwmic";
+  };
+
+  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 }
+  '';
+
+  configurePhase = ''
+    qmake CONFIG+=no-g15 CONFIG+=no-update \
+      CONFIG+=no-embed-qt-translations CONFIG+=no-ice \
+  '' 
+  + stdenv.lib.optionalString jackSupport ''
+    CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio
+  '';
+
+
+  buildInputs = [ qt4 libvorbis boost speechd protobuf libsndfile avahi dbus
+    libcap ]
+    ++ (stdenv.lib.optional jackSupport jackaudio);
+
+  installPhase = ''
+    ensureDir $out
+    cp -r ./release $out/bin
+  '';
+
+  meta = { 
+    homepage = http://mumble.sourceforge.net/;
+    description = "Low-latency, high quality voice chat software";
+    license = "BSD";
+  };
+}
diff --git a/pkgs/applications/networking/mumble/mumble-jack-support.patch b/pkgs/applications/networking/mumble/mumble-jack-support.patch
new file mode 100644
index 000000000000..7c18a33193df
--- /dev/null
+++ b/pkgs/applications/networking/mumble/mumble-jack-support.patch
@@ -0,0 +1,457 @@
+The patch was created by Filipe Coelho (falkTX) of the KXStudio
+project. http://kxstudio.sourceforge.net
+
+diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.cpp mumble-1.2.2/src/mumble/JackAudio.cpp
+--- mumble-1.2.2.orig/src/mumble/JackAudio.cpp	1970-01-01 01:00:00.000000000 +0100
++++ mumble-1.2.2/src/mumble/JackAudio.cpp	2011-01-26 06:02:00.000000000 +0000
+@@ -0,0 +1,314 @@
++/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net>
++   Copyright (C) 2011, Filipe Coelho <falktx@gmail.com>
++
++   All rights reserved.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions
++   are met:
++
++   - Redistributions of source code must retain the above copyright notice,
++     this list of conditions and the following disclaimer.
++   - 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.
++   - Neither the name of the Mumble Developers 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 COPYRIGHT HOLDERS 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 FOUNDATION 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.
++*/
++
++#include "JackAudio.h"
++#include "User.h"
++#include "Global.h"
++#include "MainWindow.h"
++#include "Timer.h"
++
++#include <cstring>
++
++static JackAudioSystem *jasys = NULL;
++
++class JackAudioInputRegistrar : public AudioInputRegistrar {
++        public:
++                JackAudioInputRegistrar();
++                virtual AudioInput *create();
++                virtual const QList<audioDevice> getDeviceChoices();
++                virtual void setDeviceChoice(const QVariant &, Settings &);
++                virtual bool canEcho(const QString &) const;
++};
++
++class JackAudioOutputRegistrar : public AudioOutputRegistrar {
++        public:
++                JackAudioOutputRegistrar();
++                virtual AudioOutput *create();
++                virtual const QList<audioDevice> getDeviceChoices();
++                virtual void setDeviceChoice(const QVariant &, Settings &);
++};
++
++class JackAudioInit : public DeferInit {
++        public:
++                JackAudioInputRegistrar *airJackAudio;
++                JackAudioOutputRegistrar *aorJackAudio;
++                void initialize() {
++                        jasys = new JackAudioSystem();
++                        jasys->init_jack();
++                        jasys->qmWait.lock();
++                        jasys->qwcWait.wait(&jasys->qmWait, 1000);
++                        jasys->qmWait.unlock();
++                        if (jasys->bJackIsGood) {
++                                airJackAudio = new JackAudioInputRegistrar();
++                                aorJackAudio = new JackAudioOutputRegistrar();
++                        } else {
++                                airJackAudio = NULL;
++                                aorJackAudio = NULL;
++                                delete jasys;
++                                jasys = NULL;
++                        }
++                };
++                void destroy() {
++                        if (airJackAudio)
++                                delete airJackAudio;
++                        if (aorJackAudio)
++                                delete aorJackAudio;
++                        if (jasys) {
++                                jasys->close_jack();
++                                delete jasys;
++                                jasys = NULL;
++                        }
++                };
++};
++
++static JackAudioInit jackinit; //unused
++
++JackAudioSystem::JackAudioSystem() {
++        bJackIsGood = false;
++        iSampleRate = 0;
++}
++
++JackAudioSystem::~JackAudioSystem() {
++}
++
++void JackAudioSystem::init_jack()
++{
++        client = jack_client_open("mumble", JackNullOption, 0);
++
++        if (client) {
++                in_port = jack_port_register(client, "input", JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0);
++                out_port = jack_port_register(client, "output", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
++                jack_set_process_callback(client, process_callback, this);
++                jack_set_sample_rate_callback(client, srate_callback, this);
++                jack_on_shutdown(client, shutdown_callback, this);
++
++                iSampleRate = jack_get_sample_rate(client);
++
++                if (jack_activate(client) || in_port == NULL || out_port == NULL) {
++                    client = NULL;
++                    return;
++                }
++
++                int port_flags;
++                unsigned i = -1;
++                const char** ports = jack_get_ports(client, 0, 0, JackPortIsPhysical);
++
++                if (ports) {
++                    while (ports[++i])
++                    {
++                        jack_port_t* port = jack_port_by_name(client, ports[i]);
++                        port_flags = jack_port_flags(port);
++
++                        if (port_flags & (JackPortIsPhysical|JackPortIsOutput) && strstr(jack_port_type(port), "audio")) {
++                            jack_connect(client, ports[i], jack_port_name(in_port));
++                        }
++                        if (port_flags & (JackPortIsPhysical|JackPortIsInput) && strstr(jack_port_type(port), "audio")) {
++                            jack_connect(client, jack_port_name(out_port), ports[i]);
++                        }
++                    }
++                }
++
++                jack_free(ports);
++
++                // If we made it this far, then everything is okay
++                qhInput.insert(QString(), tr("Hardware Ports"));
++                qhOutput.insert(QString(), tr("Hardware Ports"));
++                bJackIsGood = true;
++
++            } else {
++                bJackIsGood = false;
++                client = NULL;
++            }
++}
++
++void JackAudioSystem::close_jack()
++{
++        if (client) {
++                jack_deactivate(client);
++                jack_client_close(client);
++                client = NULL;
++        }
++}
++
++int JackAudioSystem::process_callback(jack_nframes_t nframes, void *arg)
++{
++        JackAudioSystem *jas = (JackAudioSystem*)arg;
++
++        if (jas && jas->bJackIsGood) {
++                AudioInputPtr ai = g.ai;
++                AudioOutputPtr ao = g.ao;
++                JackAudioInput *jai = (JackAudioInput*)(ai.get());
++                JackAudioOutput *jao = (JackAudioOutput*)(ao.get());
++
++                if (jai && jai->bRunning && jai->iMicChannels > 0 && !jai->isFinished()) {
++                        void* input = jack_port_get_buffer(jas->in_port, nframes);
++                        if ((float*)input != 0)
++                            jai->addMic(input, nframes);
++                }
++
++                if (jao && jao->bRunning && jao->iChannels > 0 && !jao->isFinished()) {
++                        jack_default_audio_sample_t* output = (jack_default_audio_sample_t*)jack_port_get_buffer(jas->out_port, nframes);
++                        memset(output, 0, sizeof(jack_default_audio_sample_t)*nframes); //TEST
++                        jao->mix(output, nframes);
++                }
++        }
++
++        return 0;
++}
++
++int JackAudioSystem::srate_callback(jack_nframes_t frames, void *arg)
++{
++        JackAudioSystem *jas = (JackAudioSystem*)arg;
++        jas->iSampleRate = frames;
++        return 0;
++}
++
++void JackAudioSystem::shutdown_callback(void *arg)
++{
++        JackAudioSystem *jas = (JackAudioSystem*)arg;
++        jas->bJackIsGood = false;
++}
++
++JackAudioInputRegistrar::JackAudioInputRegistrar() : AudioInputRegistrar(QLatin1String("JACK"), 10) {
++}
++
++AudioInput *JackAudioInputRegistrar::create() {
++        return new JackAudioInput();
++}
++
++const QList<audioDevice> JackAudioInputRegistrar::getDeviceChoices() {
++        QList<audioDevice> qlReturn;
++
++        QStringList qlInputDevs = jasys->qhInput.keys();
++        qSort(qlInputDevs);
++
++        foreach(const QString &dev, qlInputDevs) {
++                qlReturn << audioDevice(jasys->qhInput.value(dev), dev);
++        }
++
++        return qlReturn;
++}
++
++void JackAudioInputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) {
++        Q_UNUSED(choice);
++        Q_UNUSED(s);
++}
++
++bool JackAudioInputRegistrar::canEcho(const QString &osys) const {
++        Q_UNUSED(osys);
++        return false;
++}
++
++JackAudioOutputRegistrar::JackAudioOutputRegistrar() : AudioOutputRegistrar(QLatin1String("JACK"), 10) {
++}
++
++AudioOutput *JackAudioOutputRegistrar::create() {
++        return new JackAudioOutput();
++}
++
++const QList<audioDevice> JackAudioOutputRegistrar::getDeviceChoices() {
++        QList<audioDevice> qlReturn;
++
++        QStringList qlOutputDevs = jasys->qhOutput.keys();
++        qSort(qlOutputDevs);
++
++        foreach(const QString &dev, qlOutputDevs) {
++                qlReturn << audioDevice(jasys->qhOutput.value(dev), dev);
++        }
++
++        return qlReturn;
++}
++
++void JackAudioOutputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) {
++        Q_UNUSED(choice);
++        Q_UNUSED(s);
++}
++
++JackAudioInput::JackAudioInput() {
++        bRunning = true;
++        iMicChannels = 0;
++};
++
++JackAudioInput::~JackAudioInput() {
++        bRunning = false;
++        iMicChannels = 0;
++        qmMutex.lock();
++        qwcWait.wakeAll();
++        qmMutex.unlock();
++        wait();
++}
++
++void JackAudioInput::run() {
++        if (jasys && jasys->bJackIsGood) {
++            iMicFreq = jasys->iSampleRate;
++            iMicChannels = 1;
++            eMicFormat = SampleFloat;
++            initializeMixer();
++        }
++
++        qmMutex.lock();
++        while (bRunning)
++                qwcWait.wait(&qmMutex);
++        qmMutex.unlock();
++}
++
++JackAudioOutput::JackAudioOutput() {
++        bRunning = true;
++        iChannels = 0;
++}
++
++JackAudioOutput::~JackAudioOutput() {
++        bRunning = false;
++        iChannels = 0;
++        qmMutex.lock();
++        qwcWait.wakeAll();
++        qmMutex.unlock();
++        wait();
++}
++
++void JackAudioOutput::run() {
++        if (jasys && jasys->bJackIsGood) {
++            unsigned int chanmasks[32];
++
++            chanmasks[0] = SPEAKER_FRONT_LEFT;
++            chanmasks[1] = SPEAKER_FRONT_RIGHT;
++
++            eSampleFormat = SampleFloat;
++            iMixerFreq = jasys->iSampleRate;
++            iChannels = 1;
++            initializeMixer(chanmasks);
++        }
++
++        qmMutex.lock();
++        while (bRunning)
++                qwcWait.wait(&qmMutex);
++        qmMutex.unlock();
++}
+diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.h mumble-1.2.2/src/mumble/JackAudio.h
+--- mumble-1.2.2.orig/src/mumble/JackAudio.h	1970-01-01 01:00:00.000000000 +0100
++++ mumble-1.2.2/src/mumble/JackAudio.h	2011-01-26 06:03:58.000000000 +0000
+@@ -0,0 +1,97 @@
++/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net>
++   Copyright (C) 2011, Filipe Coelho <falktx@gmail.com>
++
++   All rights reserved.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions
++   are met:
++
++   - Redistributions of source code must retain the above copyright notice,
++     this list of conditions and the following disclaimer.
++   - 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.
++   - Neither the name of the Mumble Developers 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 COPYRIGHT HOLDERS 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 FOUNDATION 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.
++*/
++
++#ifndef _JACKAUDIO_H
++#define _JACKAUDIO_H
++
++#include "AudioInput.h"
++#include "AudioOutput.h"
++#include <jack/jack.h>
++
++class JackAudioOutput;
++class JackAudioInput;
++
++class JackAudioSystem : public QObject {
++        private:
++                Q_OBJECT
++                Q_DISABLE_COPY(JackAudioSystem)
++        protected:
++                jack_client_t* client;
++                jack_port_t* in_port;
++                jack_port_t* out_port;
++
++                static int process_callback(jack_nframes_t nframes, void *arg);
++                static int srate_callback(jack_nframes_t frames, void *arg);
++                static void shutdown_callback(void *arg);
++        public:
++                QHash<QString, QString> qhInput;
++                QHash<QString, QString> qhOutput;
++                bool bJackIsGood;
++                int iSampleRate;
++                QMutex qmWait;
++                QWaitCondition qwcWait;
++
++                void init_jack();
++                void close_jack();
++
++                JackAudioSystem();
++                ~JackAudioSystem();
++};
++
++class JackAudioInput : public AudioInput {
++                friend class JackAudioSystem;
++        private:
++                Q_OBJECT
++                Q_DISABLE_COPY(JackAudioInput)
++        protected:
++                QMutex qmMutex;
++                QWaitCondition qwcWait;
++        public:
++                JackAudioInput();
++                ~JackAudioInput();
++                void run();
++};
++
++class JackAudioOutput : public AudioOutput {
++                friend class JackAudioSystem;
++        private:
++                Q_OBJECT
++                Q_DISABLE_COPY(JackAudioOutput)
++        protected:
++                QMutex qmMutex;
++                QWaitCondition qwcWait;
++        public:
++                JackAudioOutput();
++                ~JackAudioOutput();
++                void run();
++};
++
++#endif
+diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/mumble.pro mumble-1.2.2/src/mumble/mumble.pro
+--- mumble-1.2.2.orig/src/mumble/mumble.pro	2010-02-09 16:34:51.000000000 +0000
++++ mumble-1.2.2/src/mumble/mumble.pro	2011-01-26 01:45:55.000000000 +0000
+@@ -93,11 +93,17 @@
+ unix {
+   HAVE_PULSEAUDIO=$$system(pkg-config --modversion --silence-errors libpulse)
+   HAVE_PORTAUDIO=$$system(pkg-config --modversion --silence-errors portaudio-2.0)
++  HAVE_JACKAUDIO=$$system(pkg-config --modversion --silence-errors jack)
+ 
+   !isEmpty(HAVE_PORTAUDIO):!CONFIG(no-portaudio) {
+     CONFIG *= portaudio
+   }
+ 
++  !isEmpty(HAVE_JACKAUDIO):!CONFIG(no-jackaudio) {
++    CONFIG -= portaudio
++    CONFIG *= jackaudio
++  }
++
+   !isEmpty(HAVE_PULSEAUDIO):!CONFIG(no-pulseaudio) {
+     CONFIG -= portaudio
+     CONFIG *= pulseaudio
+@@ -110,6 +116,13 @@
+     QMAKE_CXXFLAGS_DEBUG *= -I../../speex/include -I../../speexbuild
+   }
+ 
++  jackaudio {
++        DEFINES *= USE_JACKAUDIO
++        PKGCONFIG *= jack
++        HEADERS *= JackAudio.h
++        SOURCES *= JackAudio.cpp
++  }
++
+   CONFIG *= link_pkgconfig
+ 
+   PKGCONFIG *= openssl sndfile
diff --git a/pkgs/applications/networking/newsreaders/pan/default.nix b/pkgs/applications/networking/newsreaders/pan/default.nix
index 299accef4e5d..7c7449dd5025 100644
--- a/pkgs/applications/networking/newsreaders/pan/default.nix
+++ b/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -1,29 +1,25 @@
 { spellChecking ? true
 , stdenv, fetchurl, pkgconfig, gtk, gtkspell ? null
-, perl, pcre, gmime, gettext
+, perl, pcre, gmime, gettext, intltool
 }:
 
 assert spellChecking -> gtkspell != null;
 
+let version = "0.135"; in
+
 stdenv.mkDerivation {
-  name = "pan-0.133";
+  name = "pan-${version}";
 
   src = fetchurl {
-    url = http://pan.rebelbase.com/download/releases/0.133/source/pan-0.133.tar.bz2;
-    sha1 = "a0bd98ea1ba174800896611e3305a6b6d8dbde2f";
+    url = "http://pan.rebelbase.com/download/releases/${version}/source/pan-${version}.tar.bz2";
+    sha1 = "6cd93facf86615761279113badd7462e59399ae4";
   };
 
-  patches =
-    [ # Build on GCC 4.4.
-      (fetchurl {
-        url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/net-nntp/pan/files/pan-0.133-gcc44.patch?rev=1.1";
-        sha256 = "05xmgvcpl1gjcfab8xsdy400p55j59hp52fwa4qbwlqy3c35qv1v";
-      })
-    ];
-
-  buildInputs = [pkgconfig gtk perl pcre gmime gettext]
+  buildInputs = [ pkgconfig gtk perl gmime gettext intltool ]
     ++ stdenv.lib.optional spellChecking gtkspell;
 
+  enableParallelBuilding = true;
+
   meta = {
     description = "A GTK+-based Usenet newsreader good at both text and binaries";
     homepage = http://pan.rebelbase.com/;
diff --git a/pkgs/applications/networking/offrss/default.nix b/pkgs/applications/networking/offrss/default.nix
new file mode 100644
index 000000000000..9784d3692710
--- /dev/null
+++ b/pkgs/applications/networking/offrss/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, curl, libmrss}:
+
+stdenv.mkDerivation {
+  name = "offrss-1.1";
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp offrss $out/bin
+  '';
+
+  crossAttrs = {
+    makeFlags = "CC=${stdenv.cross.config}-gcc";
+  };
+
+  buildInputs = [ curl libmrss ];
+
+  src = fetchurl {
+    url = http://vicerveza.homeunix.net/~viric/soft/offrss/offrss-1.1.tar.gz;
+    sha256 = "1l8c5sw368zbrcfq4wf963fbh29q9lqgsn0lbsiwz3vpybc8plp2";
+  };
+
+  meta = {
+    homepage = "http://vicerveza.homeunix.net/~viric/cgi-bin/offrss";
+    description = "Offline RSS/Atom reader";
+    license="AGPLv3+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/pkgs/applications/networking/ktorrent/default.nix b/pkgs/applications/networking/p2p/ktorrent/default.nix
index c4917c2b8fb0..dfd65f8d0cc8 100644
--- a/pkgs/applications/networking/ktorrent/default.nix
+++ b/pkgs/applications/networking/p2p/ktorrent/default.nix
@@ -1,23 +1,27 @@
-{ stdenv, fetchurl, cmake, automoc4, libktorrent, taglib, kdepimlibs, boost,
-  gettext, kdebase_workspace }:
+{ stdenv, fetchurl, cmake, automoc4, libktorrent, taglib, kdepimlibs, boost
+, gettext, kdebase_workspace, qt4, kdelibs, phonon }:
 
 stdenv.mkDerivation rec {
   name = pname + "-" + version;
 
   pname = "ktorrent";
-  version = "4.0.3";
+  version = "4.1.1";
 
   src = fetchurl {
     url = "${meta.homepage}/downloads/${version}/${name}.tar.bz2";
-    sha256 = "02hp52333w75mdywgsln28samf9ybr9yldg1jsw0b93lj44pfxli";
+    sha256 = "1h0fqh344sfwfbvnwhn00k8czb14568flapjf4754zss6bxpw4g4";
   };
 
   patches = [ ./find-workspace.diff ];
 
   KDEDIRS = libktorrent;
 
-  buildInputs = [ automoc4 cmake libktorrent taglib kdepimlibs boost gettext
-    kdebase_workspace ];
+  buildInputs =
+    [ cmake qt4 kdelibs automoc4 phonon libktorrent boost taglib kdepimlibs
+      gettext kdebase_workspace
+    ];
+
+  enableParallelBuilding = true;
 
   meta = {
     description = "KDE integrated BtTorrent client";
diff --git a/pkgs/applications/networking/ktorrent/find-workspace.diff b/pkgs/applications/networking/p2p/ktorrent/find-workspace.diff
index 472ceff490e1..472ceff490e1 100644
--- a/pkgs/applications/networking/ktorrent/find-workspace.diff
+++ b/pkgs/applications/networking/p2p/ktorrent/find-workspace.diff
diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix
index ecc2e5f77941..541c0e105931 100644
--- a/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ocaml, zlib, bzip2, ncurses, file, gd, libpng }:
 
 stdenv.mkDerivation (rec {
-  name = "mldonkey-3.0.4";
+  name = "mldonkey-3.0.7";
   
   src = fetchurl {
     url = "mirror://sourceforge/mldonkey/${name}.tar.bz2";
-    sha256 = "0wnyi2m7126dq6r5zbqplgknnypzcx0p3q2mxcdfhp94ln7vn3f6";
+    sha256 = "1m5cfx79jiym93bx789lqc1bmwrkz1b1jilhga7d994jsjcw6c2n";
   };
   
   meta = {
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
new file mode 100644
index 000000000000..be9847bc51cb
--- /dev/null
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, qt, libupnp, gpgme, gnome_keyring, glib}:
+
+throw "still fails to build"
+
+stdenv.mkDerivation {
+  name = "retroshare-0.5.1d";
+
+  src = fetchurl {
+    url = mirror://sourceforge/retroshare/RetroShare-v0.5.1d.tar.gz;
+    sha256 = "15971wxx8djwcxn170jyn0mlh7cfzqsf031aa849wr9z234gwrcn";
+  };
+
+  buildInputs = [ qt libupnp gpgme gnome_keyring glib ];
+
+  buildPhase = ''
+    cd libbitdht/src
+    qmake libbitdht.pro PREFIX=$out
+    make
+    cd ../..
+    cd libretroshare/src
+    qmake libretroshare.pro PREFIX=$out
+    make
+    cd ../../src
+    qmake libretroshare.pro PREFIX=$out
+    make
+  '';
+
+}
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index 6d3d501887e6..a1269b09e377 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -1,16 +1,21 @@
-{ stdenv, fetchurl, pkgconfig, openssl, curl, intltool, gtkClient ? true, gtk }:
+{ stdenv, fetchurl, pkgconfig, openssl, curl, intltool, libevent, gtkClient ? true, gtk }:
 
 stdenv.mkDerivation rec {
-  name = "transmission-1.93";
+  name = "transmission-2.31";
   
   src = fetchurl {
-    url = "http://mirrors.m0k.org/transmission/files/${name}.tar.bz2";
-    sha256 = "0w0nsyw10h4lm57qc09ja4iqqwvzcjldnqxi4zp0ha5dkbxv3dz9";
+    url = "http://download.transmissionbt.com/files/${name}.tar.bz2";
+    sha256 = "0z0npasbrbii5qnjyk31v0kfr04kwm57dmnl2542bpx615q212zk";
   };
   
-  buildInputs = [ pkgconfig openssl curl intltool ] ++ stdenv.lib.optional gtkClient gtk;
+  buildInputs = [ pkgconfig openssl curl intltool libevent ] ++
+                stdenv.lib.optional gtkClient gtk;
   
   configureFlags = if gtkClient then "--enable-gtk" else "--disable-gtk";
+
+  postInstall = ''
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
   
   meta = {
     description = "A fast, easy and free BitTorrent client";
diff --git a/pkgs/applications/networking/p2p/tribler/default.nix b/pkgs/applications/networking/p2p/tribler/default.nix
new file mode 100644
index 000000000000..89c28ae3512f
--- /dev/null
+++ b/pkgs/applications/networking/p2p/tribler/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchsvn, pythonPackages, makeWrapper, nettools }:
+
+stdenv.mkDerivation {
+  name = "tribler-5.3.9-pre21071";
+
+  src = fetchsvn {
+    url = http://svn.tribler.org/abc/branches/release-5.3.x;
+    rev = 21071;
+    sha256 = "0plzw5m9rligz66rbq8qr9sj0fiqx8gwmchdw3p4mwlwfx72gixm";
+  };
+
+  buildInputs = [ pythonPackages.python pythonPackages.wrapPython makeWrapper ];
+
+  pythonPath =
+    [ pythonPackages.wxPython pythonPackages.ssl pythonPackages.curses pythonPackages.apsw
+      pythonPackages.setuptools pythonPackages.m2crypto pythonPackages.sqlite3
+    ];
+
+  installPhase =
+    ''
+      substituteInPlace Tribler/Core/NATFirewall/guessip.py \
+          --replace /bin/netstat ${nettools}/bin/netstat \
+          --replace /sbin/ifconfig ${nettools}/sbin/ifconfig
+    
+      # Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
+      wrapPythonPrograms
+      
+      mkdir -p $out/share/tribler
+      cp -prvd Tribler $out/share/tribler/
+
+      makeWrapper ${pythonPackages.python}/bin/python $out/bin/tribler \
+          --set _TRIBLERPATH $out/share/tribler \
+          --set PYTHONPATH $out/share/tribler:$program_PYTHONPATH \
+          --run 'cd $_TRIBLERPATH' \
+          --add-flags $out/share/tribler/Tribler/Main/tribler.py
+    '';
+
+  meta = {
+    homepage = http://www.tribler.org/;
+    description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
+    license = "LGPLv2.1";
+  };
+}
diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix
new file mode 100644
index 000000000000..14bc1ead49b2
--- /dev/null
+++ b/pkgs/applications/networking/pjsip/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, openssl, libsamplerate}:
+
+stdenv.mkDerivation rec {
+  name = "pjsip-1.8.10";
+
+  src = fetchurl {
+    url = http://www.pjsip.org/release/1.8.10/pjproject-1.8.10.tar.bz2;
+    sha256 = "1v2mgbgzn7d3msb406jmg69ms97a0rqg58asykx71dmjipbaiqc0";
+  };
+
+  buildInputs = [ openssl libsamplerate ];
+
+  postInstall = ''
+    ensureDir $out/bin
+    cp pjsip-apps/bin/pjsua-* $out/bin/pjsua
+    ensureDir $out/share/${name}/samples
+    cp pjsip-apps/bin/samples/*/* $out/share/${name}/samples
+  '';
+
+  # We need the libgcc_s.so.1 loadable (for pthread_cancel to work)
+  dontPatchELF = true;
+
+  meta = {
+    description = "SIP stack and media stack for presence, im, and multimedia communication";
+    homepage = http://pjsip.org/;
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix
index 24e18a75cc97..cceb70b74fbf 100644
--- a/pkgs/applications/networking/remote/rdesktop/default.nix
+++ b/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation (rec {
   pname = "rdesktop";
-  version = "1.6.0";
+  version = "1.7.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${name}.tar.gz";
-    sha256 = "0y890s5rv47ipcijcrmcy9988br22ipr4c1ppb88pjhlism6w0im";
+    sha256 = "0x2hnzvm0smnanin28n4mvzx9chpj2qnjfrxy307x21mgw6l5q1v";
   };
 
   buildInputs = [openssl libX11];
diff --git a/pkgs/applications/networking/siproxd/default.nix b/pkgs/applications/networking/siproxd/default.nix
new file mode 100644
index 000000000000..3395ba6947aa
--- /dev/null
+++ b/pkgs/applications/networking/siproxd/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, libosip }:
+
+stdenv.mkDerivation {
+  name = "siproxd-0.8.0";
+  
+  src = fetchurl {
+    url = mirror://sourceforge/siproxd/siproxd-0.8.0.tar.gz;
+    sha256 = "0hl51z33cf68ki707jkrrjjc3a5vpaf49gbrsz3g4rfxypdhc0qs";
+  };
+
+  buildInputs = [ libosip ];
+
+  meta = {
+    homepage = http://siproxd.sourceforge.net/;
+    description = "A masquerading SIP Proxy Server";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/networking/skype/default.nix b/pkgs/applications/networking/skype/default.nix
index 7e066b5e380c..98cbfdb7c57d 100644
--- a/pkgs/applications/networking/skype/default.nix
+++ b/pkgs/applications/networking/skype/default.nix
@@ -1,18 +1,20 @@
-{stdenv, fetchurl, alsaLib, libXv, libXi, libXrender, libXrandr, zlib, glib
-, libXext, libX11, libXScrnSaver, libSM, qt4, libICE, freetype, fontconfig}:
+{ stdenv, fetchurl, alsaLib, libXv, libXi, libXrender, libXrandr, zlib, glib
+, libXext, libX11, libXScrnSaver, libSM, qt4, libICE, freetype, fontconfig
+, pulseaudio }:
 
 assert stdenv.system == "i686-linux";
 
 stdenv.mkDerivation rec {
-  name = "skype-2.1.0.81";
+  name = "skype-2.2.0.35";
 
   src = fetchurl {
     url = "http://download.skype.com/linux/${name}.tar.bz2";
-    sha256 = "1x18m4900c0ssaq95wv8mhhgwvw9fh66dszx7zq24zgvb2v1h4jz";
+    sha256 = "157ba3ci12bq0nv2m8wlsab45ib5sccqagyna8nixnhqw9q72sxm";
   };
 
   buildInputs = [
-    alsaLib 
+    alsaLib
+    pulseaudio
     stdenv.glibc 
     stdenv.gcc.gcc
     libXv
diff --git a/pkgs/applications/networking/sync/akunambol/default.nix b/pkgs/applications/networking/sync/akunambol/default.nix
new file mode 100644
index 000000000000..c27d8787bee6
--- /dev/null
+++ b/pkgs/applications/networking/sync/akunambol/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchgit, cmake, kdelibs, kdepimlibs, automoc4, funambol,liblikeback }:
+
+stdenv.mkDerivation rec {
+  name = "akunambol-20110304";
+
+  src = fetchgit {
+    url = git://anongit.kde.org/akunambol.git;
+    rev = "1d832bbbce84f474e3f1e5d2f9fa8a4079b0c8e5";
+    sha256 = "1d2x42lbw32qyawri7z0mrbafz36r035w5bxjpq51awyqjwkbb2d";
+  };
+
+  buildInputs = [ cmake automoc4 kdelibs kdepimlibs funambol liblikeback ];
+  KDEDIRS = liblikeback;
+
+  patches = [ ./non-latin.diff ];
+}
diff --git a/pkgs/applications/networking/sync/akunambol/non-latin.diff b/pkgs/applications/networking/sync/akunambol/non-latin.diff
new file mode 100644
index 000000000000..905a6a894bdf
--- /dev/null
+++ b/pkgs/applications/networking/sync/akunambol/non-latin.diff
@@ -0,0 +1,17 @@
+diff --git a/qtgui/standardsourcesettings.cpp b/qtgui/standardsourcesettings.cpp
+index a14a737..5d4712e 100644
+--- a/qtgui/standardsourcesettings.cpp
++++ b/qtgui/standardsourcesettings.cpp
+@@ -83,9 +83,9 @@ void StandardSourceSettings::populateCollections()
+     foreach( const Collection &collection, colls ) {
+         if (collection.contentMimeTypes().contains(source->getAkonadiMimeType())) {
+             i++;
+-            const char* dn = collection.name().toUtf8();
+-            LOG.debug("Adding collection id %lld named %s", collection.id(), dn);
+-            collections->addItem(dn);
++            LOG.debug("Adding collection id %lld named %s", collection.id(),
++                      collection.name().toLocal8Bit().data());
++            collections->addItem(collection.name());
+             idList.append(collection.id());
+         }
+     }
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index 7738ce43f99c..06bab807ebdd 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -1,26 +1,36 @@
-{stdenv, fetchurl, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper}:
+{stdenv, fetchurl, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper, ncurses
+, enableX11 ? true}:
 
+let
+  nativeCode = if stdenv.system == "armv5tel-linux" then false else true;
+in
 stdenv.mkDerivation (rec {
 
-  name = "unison-2.32.52";
+  name = "unison-2.40.63";
   src = fetchurl {
     url = "http://www.seas.upenn.edu/~bcpierce/unison/download/releases/${name}/${name}.tar.gz";
-    sha256 = "11844yh1gpjjapn8pvc14hla7g70spwqy6h61qk2is83mpafahhm";
+    sha256 = "17fd2bg5jxwbib87j6j2bjpwdm66whqm1fq46v70hfby79j00vkf";
   };
 
-  buildInputs = [ocaml makeWrapper];
+  buildInputs = [ ocaml makeWrapper ncurses ];
+
+  preBuild = if enableX11 then ''
+    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" Makefile.OCaml
+  '' else "";
+
+  makeFlags = "INSTALLDIR=$(out)/bin/" + (if enableX11 then " UISTYLE=gtk2" else "")
+    + (if ! nativeCode then " NATIVE=false" else "");
 
-  preBuild = ''
-    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I ${lablgtk}/lib/ocaml/lablgtk2|" Makefile.OCaml
-  '';
-  makeFlags = "UISTYLE=gtk2 INSTALLDIR=$(out)/bin/";
   preInstall = "ensureDir $out/bin";
-  postInstall = ''
+
+  postInstall = if enableX11 then ''
     for i in $(cd $out/bin && ls); do
       wrapProgram $out/bin/$i \
         --run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")"
     done
-  '';
+  '' else "";
+
+  dontStrip = if ! nativeCode then true else false;
 
   meta = {
     homepage = http://www.cis.upenn.edu/~bcpierce/unison/;
diff --git a/pkgs/applications/office/abiword/default.nix b/pkgs/applications/office/abiword/default.nix
index 6e3d57b78a8b..fdfd60e98370 100644
--- a/pkgs/applications/office/abiword/default.nix
+++ b/pkgs/applications/office/abiword/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk, libglade, libgnomecanvas, fribidi
-, libpng, popt, libgsf, enchant, wv, librsvg, bzip2
+, libpng, popt, libgsf, enchant, wv, librsvg, bzip2, libjpeg
 }:
 
 stdenv.mkDerivation {
@@ -12,6 +12,6 @@ stdenv.mkDerivation {
 
   buildInputs =
     [ pkgconfig gtk libglade librsvg bzip2 libgnomecanvas fribidi libpng popt
-      libgsf enchant wv
+      libgsf enchant wv libjpeg
     ];
 }
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 213e3fd0a457..3e20a350a791 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -1,39 +1,55 @@
-{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk
-, libglade, libgnomeui, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant
-, gettext, intltool, perl, guile, slibGuile, swig, isocodes, bzip2
-, makeWrapper }:
+{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx
+, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
+, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper
+}:
 
-stdenv.mkDerivation rec {
-  name = "gnucash-2.2.9";
+/* If you experience GConf errors when running GnuCash on NixOS, see
+ * http://wiki.nixos.org/wiki/Solve_GConf_errors_when_running_GNOME_applications
+ * for a possible solution.
+ */
+
+let
+  name = "gnucash-2.4.7";
+in
+stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
-    url = "http://ftp.at.gnucash.org/pub/gnucash/gnucash/sources/stable/${name}.tar.bz2";
-    sha256 = "0sj83mmshx50122n1i3y782p4b54k37n7sb4vldmqmhwww32925i";
+    url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
+    sha256 = "eeb3b17f9081a544f8705db735df88ab3f468642a1d01552ea4e36bcb5b0730e";
   };
 
   buildInputs = [
-    pkgconfig libxml2 gconf glib gtk
-    libglade libgnomeui libgtkhtml gtkhtml libgnomeprint goffice enchant
-    gettext intltool perl guile slibGuile swig isocodes bzip2 makeWrapper
+    pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml
+    libgnomeprint goffice enchant gettext intltool perl guile slibGuile
+    swig isocodes bzip2 makeWrapper libofx
   ];
 
-  preConfigure = ''
-    # The `.gnucash' directory, used by the test suite.
-    export GNC_DOT_DIR="$PWD/dot-gnucash"
-    echo "\$GNC_DOT_DIR set to \`$GNC_DOT_DIR'"
-  '';
+  configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx";
 
   postInstall = ''
+    sed -i $out/bin/update-gnucash-gconf                                \
+       -e 's|--config-source=[^ ]* --install-schema-file|--makefile-install-rule|'
     for prog in "$out/bin/"*
     do
-      wrapProgram "$prog"                                       \
-        --set SCHEME_LIBRARY_PATH "$SCHEME_LIBRARY_PATH"        \
-        --prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH"
+      wrapProgram "$prog"                                               \
+        --set SCHEME_LIBRARY_PATH "$SCHEME_LIBRARY_PATH"                \
+        --prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH"                 \
+        --prefix LD_LIBRARY_PATH ":" "${libgnomeui}/lib/libglade/2.0"   \
+        --prefix LD_LIBRARY_PATH ":" "${libbonoboui}/lib/libglade/2.0"  \
+        --set GCONF_CONFIG_SOURCE 'xml::~/.gconf'                       \
+        --prefix PATH ":" "${gconf}/bin"                                \
+        --suffix PATH ":" "$out/bin"
     done
   '';
 
+  # The following settings fix failures in the test suite. It's not required otherwise.
+  NIX_LDFLAGS = "-rpath=${guile}/lib";
+  preCheck = "export GNC_DOT_DIR=$PWD/dot-gnucash";
   doCheck = true;
 
+  enableParallelBuilding = true;
+
   meta = {
     description = "GnuCash, a personal and small-business financial-accounting application";
 
@@ -52,7 +68,7 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnucash.org/;
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
     platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/applications/office/hledger-interest/default.nix b/pkgs/applications/office/hledger-interest/default.nix
new file mode 100644
index 000000000000..aea3a1f6aa1e
--- /dev/null
+++ b/pkgs/applications/office/hledger-interest/default.nix
@@ -0,0 +1,20 @@
+{ cabal, hledgerLib, mtl, time }:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-interest";
+  version = "1.2";
+  sha256 = "1r5x6z0k33fpvqba6zlkhpm7b0rwwnli4q100psms89x0rrj7y2d";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ hledgerLib mtl time ];
+  meta = {
+    homepage = "http://github.com/peti/hledger-interest";
+    description = "computes interest for a given account";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
index cfea3a2cb4e6..2994ba729e6a 100644
--- a/pkgs/applications/office/homebank/default.nix
+++ b/pkgs/applications/office/homebank/default.nix
@@ -2,7 +2,7 @@
 
 let
    download_root = "http://homebank.free.fr/public/";
-   name = "homebank-4.3";
+   name = "homebank-4.4";
    lastrelease = download_root + name + ".tar.gz";
    oldrelease = download_root + "old/" + name + ".tar.gz";
 in
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     urls = [ lastrelease oldrelease ];
-    sha256 = "1r4bvyc2wnizjjc27hap6b4b01zjfp1x0rygylvi5n29jy6r2fn6";
+    sha256 = "1lp7vhimn7aa2b4ik857w7d7rbbqcwlsffk8s8lw4fjyaxrr7f0k";
   };
 
   buildInputs = [ pkgconfig gtk libofx intltool ];
diff --git a/pkgs/applications/office/keepnote/default.nix b/pkgs/applications/office/keepnote/default.nix
index dc7946d1e82e..514b8fd3151e 100644
--- a/pkgs/applications/office/keepnote/default.nix
+++ b/pkgs/applications/office/keepnote/default.nix
@@ -1,14 +1,15 @@
-{stdenv, fetchurl, buildPythonPackage, pygtk}:
+{ stdenv, fetchurl, buildPythonPackage, pythonPackages, pygtk }:
 
 buildPythonPackage {
   name = "keepnote-0.6.5";
+  namePrefix = "";
 
   src = fetchurl {
     url = http://rasm.ods.org/keepnote/download/keepnote-0.6.5.tar.gz;
     sha256 = "0kipcy90r50z4m9p8pyy9wi4dknsiwdrgy974xgakris2rh4lafw";
   };
 
-  propagatedBuildInputs = [ pygtk ];
+  propagatedBuildInputs = [ pythonPackages.sqlite3 pygtk ];
 
   # Testing fails.
   doCheck = false;
diff --git a/pkgs/applications/office/koffice/default.nix b/pkgs/applications/office/koffice/default.nix
index 4679c231e162..784b60070352 100644
--- a/pkgs/applications/office/koffice/default.nix
+++ b/pkgs/applications/office/koffice/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
         sha256 = "11h4rxdrv5vakym5786vr4bysi4627m53qqvk1vhxf3rkawvcafj";
       })
       ./wpd.patch
+      ./krita-exiv-0.21.diff
     ];
 
   buildInputs = [ cmake qt4 perl lcms exiv2 libxml2 libxslt boost glew
diff --git a/pkgs/applications/office/koffice/krita-exiv-0.21.diff b/pkgs/applications/office/koffice/krita-exiv-0.21.diff
new file mode 100644
index 000000000000..b8da1bd586c7
--- /dev/null
+++ b/pkgs/applications/office/koffice/krita-exiv-0.21.diff
@@ -0,0 +1,81 @@
+commit 7f6b2f2b9b2be1e4f257582a04b194c69f705bc7
+Author: Casper Boemann <cbr@boemann.dk>
+Date:   Sat Dec 4 10:44:02 2010 +0000
+
+    ------------------------------------------------------------------------
+    r1203267 | rempt | 2010-12-03 14:20:03 +0100 (Fri, 03 Dec 2010) | 1 line
+    Changed paths:
+       M /trunk/koffice/krita/ui/kis_aboutdata.h
+    
+    correct url for animtim
+    
+    ------------------------------------------------------------------------
+    r1203281 | uzak | 2010-12-03 14:43:32 +0100 (Fri, 03 Dec 2010) | 2 lines
+    Changed paths:
+       M /trunk/koffice/filters/kpresenter/powerpoint/pptstyle.cpp
+    
+    PPT: Fine tuned processing of the TextCFException structure for MS Office 2007.
+    
+    
+    ------------------------------------------------------------------------
+    r1203296 | danders | 2010-12-03 15:44:01 +0100 (Fri, 03 Dec 2010) | 3 lines
+    Changed paths:
+       M /trunk/koffice/kplato/libs/kernel/kptaccount.cpp
+    
+    Fix data loss on xml load.
+    BUG: 258685
+    
+    
+    ------------------------------------------------------------------------
+    r1203344 | bero | 2010-12-03 18:08:24 +0100 (Fri, 03 Dec 2010) | 2 lines
+    Changed paths:
+       M /trunk/koffice/krita/ui/kisexiv2/kis_exif_io.cpp
+    
+    Fix build with exiv2 0.21
+    
+    
+    
+    svn path=/branches/work/koffice-essen/; revision=1203491
+
+diff krita/ui/kisexiv2/kis_exif_io.cpp krita/ui/kisexiv2/kis_exif_io.cpp
+index 6eb7f30..c85da65 100644
+--- krita/ui/kisexiv2/kis_exif_io.cpp
++++ krita/ui/kisexiv2/kis_exif_io.cpp
+@@ -406,7 +406,11 @@ bool KisExifIO::saveTo(KisMetaData::Store* store, QIODevice* ioDevice, HeaderTyp
+                 v = kmdIntOrderedArrayToExifArray(entry.value());
+             } else if (exivKey == "Exif.Image.Artist") { // load as dc:creator
+                 KisMetaData::Value creator = entry.value().asArray()[0];
++#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
+                 v = kmdValueToExivValue(creator, Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
++#else
++                v = kmdValueToExivValue(creator, exifKey.defaultTypeId());
++#endif
+             } else if (exivKey == "Exif.Photo.OECF") {
+                 v = kmdOECFStructureToExifOECF(entry.value());
+             } else if (exivKey == "Exif.Photo.DeviceSettingDescription") {
+@@ -419,13 +423,25 @@ bool KisExifIO::saveTo(KisMetaData::Store* store, QIODevice* ioDevice, HeaderTyp
+                 Q_ASSERT(entry.value().type() == KisMetaData::Value::LangArray);
+                 QMap<QString, KisMetaData::Value> langArr = entry.value().asLangArray();
+                 if (langArr.contains("x-default")) {
++#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
+                     v = kmdValueToExivValue(langArr.value("x-default"), Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
++#else
++                    v = kmdValueToExivValue(langArr.value("x-default"), exifKey.defaultTypeId());
++#endif
+                 } else if (langArr.size() > 0) {
++#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
+                     v = kmdValueToExivValue(langArr.begin().value(), Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
++#else
++                    v = kmdValueToExivValue(langArr.begin().value(), exifKey.defaultTypeId());
++#endif
+                 }
+             } else {
+                 dbgFile << exifKey.tag();
++#if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 20
+                 v = kmdValueToExivValue(entry.value(), Exiv2::ExifTags::tagType(exifKey.tag(), exifKey.ifdId()));
++#else
++                v = kmdValueToExivValue(entry.value(), exifKey.defaultTypeId());
++#endif
+             }
+             if (v && v->typeId() != Exiv2::invalidTypeId) {
+                 dbgFile << "Saving key" << exivKey; // << " of KMD value" << entry.value();
diff --git a/pkgs/applications/office/ledger/3.0.nix b/pkgs/applications/office/ledger/3.0.nix
new file mode 100644
index 000000000000..6c3a46943953
--- /dev/null
+++ b/pkgs/applications/office/ledger/3.0.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchgit, python, autoconf, automake, libtool, gettext, emacs, gmp
+, pcre, expat, boost, mpfr, git, texinfo }:
+
+let
+  rev = "cf35984971341b8a8688";
+in
+stdenv.mkDerivation {
+  name = "ledger3-${rev}";
+
+  src = fetchgit {
+    url = "git://github.com/jwiegley/ledger.git";
+    inherit rev;
+    sha256 = "4078983db9fc8d232fa71a31b47e505c531971b4515d6ef723e7d333a2352d2a";
+  };
+
+  buildInputs = [
+    python autoconf automake libtool gettext emacs gmp pcre expat boost mpfr
+    git texinfo
+  ];
+
+  buildPhase = ''
+    sed -i acprep \
+      -e 's|search_prefixes = .*|search_prefixes = ["${boost}"]|'
+    export MAKEFLAGS="-j$NIX_BUILD_CORES -l$NIX_BUILD_CORES"
+    python acprep update --no-pch --prefix=$out
+  '';
+
+  doCheck = true;
+
+  meta = {
+    homepage = "http://ledger-cli.org/";
+    description = "A double-entry accounting system with a command-line reporting interface";
+    license = "BSD";
+
+    longDescription = ''
+      Ledger is a powerful, double-entry accounting system that is accessed
+      from the UNIX command-line. This may put off some users, as there is
+      no flashy UI, but for those who want unparalleled reporting access to
+      their data, there really is no alternative.
+    '';
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix
index 14121e6281f4..1bc8e586e33f 100644
--- a/pkgs/applications/office/ledger/default.nix
+++ b/pkgs/applications/office/ledger/default.nix
@@ -1,48 +1,53 @@
-# TODO: fix a problem with patchelf(?)
-
-{stdenv, fetchurl, emacs, gmp, pcre}:
+# Patchelf fails to hard-code the library paths to ledger's
+# libamounts.so and libledger-2.6.3 shared objects:
+#
+# $ ldd ~/.nix-profile/bin/ledger
+#         linux-vdso.so.1 =>  (0x00007fff513ff000)
+#         libamounts.so.0 => not found
+#         libledger-2.6.3.so => not found
+#         libstdc++.so.6 => /nix/store/3r8kfi33y3lbrsvlx8vzwm74h8178y35-gcc-4.5.1/lib/../lib64/libstdc++.so.6 (0x00007f1f0feee000)
+#         libpcre.so.0 => /nix/store/kfhy189arpj3wrfzpgw8p9ac4g4hfgca-pcre-8.10/lib/libpcre.so.0 (0x00007f1f0fcd3000)
+#         libgmp.so.3 => /nix/store/ji6py9m9w2ray1bmpkmgig9llj1i2ggf-gmp-4.3.2/lib/libgmp.so.3 (0x00007f1f0fa7f000)
+#         libm.so.6 => /nix/store/vxycd107wjbhcj720hzkw2px7s7kr724-glibc-2.12.2/lib/libm.so.6 (0x00007f1f0f7fd000)
+#         libgcc_s.so.1 => /nix/store/3r8kfi33y3lbrsvlx8vzwm74h8178y35-gcc-4.5.1/lib/../lib64/libgcc_s.so.1 (0x00007f1f0f5e8000)
+#         libc.so.6 => /nix/store/vxycd107wjbhcj720hzkw2px7s7kr724-glibc-2.12.2/lib/libc.so.6 (0x00007f1f0f27d000)
+#         /nix/store/vxycd107wjbhcj720hzkw2px7s7kr724-glibc-2.12.2/lib/ld-linux-x86-64.so.2 (0x00007f1f101ef000)
+#
+# Fortunately, libtools builds the program with proper paths hard-coded
+# alread, so we don't need patchelf. Phew!
+
+{stdenv, fetchurl, emacs, gmp, pcre, expat}:
 
 let
-
-  pname = "ledger";
-  version = "2.6.1";
-  name = "${pname}-${version}";
-
+  name = "ledger-2.6.3";
 in
-
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${name}.tar.gz";
-    sha256 = "96830d77d3aa6bf6c5778f5dd52169f9b5203fb7daad0e12831abeb35b14f27a";
+    url = "https://github.com/downloads/jwiegley/ledger/${name}.tar.gz";
+    sha256 = "05zpnypcwgck7lwk00pbdlcwa347xsqifxh4zsbbn01m98bx1v5k";
   };
 
-  buildInputs = [ emacs gmp pcre ];
-
-  patches = [ ./const.patch ];
+  buildInputs = [ emacs gmp pcre expat ];
 
-  # Something goes wrong with pathelf...
-  # this is a small workaround: adds a small shell script for
-  # setting LD_LIBRARY_PATH
-  postInstall = ''
-    cd $out/bin
-    mv ledger ledger.bin
-    echo "#!/bin/sh" > ledger
-    echo "LD_LIBRARY_PATH=$out/lib $out/bin/ledger.bin "'"$@"' >> ledger
-    chmod +x ledger
-  '';
+  configureFlags = "CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3";
+  dontPatchELF = true;
+  doCheck = true;
 
   meta = {
-    description =
-     "A double-entry accounting system with a command-line reporting interface";
+    homepage = "http://ledger-cli.org/";
+    description = "A double-entry accounting system with a command-line reporting interface";
+    license = "BSD";
+
     longDescription = ''
       Ledger is a powerful, double-entry accounting system that is accessed
       from the UNIX command-line. This may put off some users, as there is
       no flashy UI, but for those who want unparalleled reporting access to
       their data, there really is no alternative.
     '';
-    homepage = http://wiki.github.com/jwiegley/ledger;
-    license = "BSD";
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/applications/office/openoffice/default.nix b/pkgs/applications/office/openoffice/default.nix
index 7c27bef0e451..5bc5cbf8c9b3 100644
--- a/pkgs/applications/office/openoffice/default.nix
+++ b/pkgs/applications/office/openoffice/default.nix
@@ -7,6 +7,7 @@
 }:
 
 let version = "3.2.1"; in
+
 stdenv.mkDerivation rec {
   name = "openoffice.org-${version}";
   builder = ./builder.sh;
@@ -19,7 +20,7 @@ stdenv.mkDerivation rec {
       sha256 = "0gj2hinhnzkazh44k1an05x5cj7n6721f2grqrkjh31cm38r9p6i";
     };
 
-  patches = [ ./oo.patch  ./root-required.patch ];
+  patches = [ ./oo.patch ./root-required.patch ./xlib.patch ];
 
   postPatch =
     /* Compiling with GCC 4.5 fails:
diff --git a/pkgs/applications/office/openoffice/go-oo.nix b/pkgs/applications/office/openoffice/go-oo.nix
index 35e39ff1cc79..241c2ff2a130 100644
--- a/pkgs/applications/office/openoffice/go-oo.nix
+++ b/pkgs/applications/office/openoffice/go-oo.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
     done
     sed '/-x $WGET/d' -i download
     ./download
+
     # Needed to find genccode
     PATH=$PATH:${icu}/sbin
 
@@ -53,6 +54,9 @@ stdenv.mkDerivation rec {
 
     set -x
     pushd build/${tag}
+
+    patch -p1 < ${./xlib.patch}
+
     # Fix svtools: hardcoded jpeg path
     sed -i -e 's,^JPEG3RDLIB=.*,JPEG3RDLIB=${libjpeg}/lib/libjpeg.so,' solenv/inc/libs.mk
     # Fix sysui: wants to create a tar for root
@@ -64,6 +68,7 @@ stdenv.mkDerivation rec {
     # Fix redland: wants to set rpath to /usr/local/lib
     sed -i -e 's,^CONFIGURE_FLAGS.*,& --prefix='$TMPDIR, redland/redland/makefile.mk \
       redland/raptor/makefile.mk redland/rasqal/makefile.mk
+
     popd
 
     set +x
diff --git a/pkgs/applications/office/openoffice/xlib.patch b/pkgs/applications/office/openoffice/xlib.patch
new file mode 100644
index 000000000000..d5f0ff9aa209
--- /dev/null
+++ b/pkgs/applications/office/openoffice/xlib.patch
@@ -0,0 +1,22 @@
+https://bugs.freedesktop.org/show_bug.cgi?id=31322
+
+diff -rc OOO320_m19-orig//vcl/unx/inc/dtint.hxx OOO320_m19//vcl/unx/inc/dtint.hxx
+*** OOO320_m19-orig//vcl/unx/inc/dtint.hxx	2010-05-26 20:34:28.000000000 +0200
+--- OOO320_m19//vcl/unx/inc/dtint.hxx	2011-02-15 17:04:32.134813676 +0100
+***************
+*** 36,42 ****
+  class SalDisplay;
+  class AllSettings;
+  
+! #ifndef _XLIB_H_
+  // forwards from X
+  struct Display;
+  struct XEvent;
+--- 36,42 ----
+  class SalDisplay;
+  class AllSettings;
+  
+! #if !defined(_XLIB_H_) && !defined(_X11_XLIB_H_)
+  // forwards from X
+  struct Display;
+  struct XEvent;
diff --git a/pkgs/applications/science/astronomy/gravit/default.nix b/pkgs/applications/science/astronomy/gravit/default.nix
new file mode 100644
index 000000000000..8af963f84bc1
--- /dev/null
+++ b/pkgs/applications/science/astronomy/gravit/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, mesa, lua5_0 }:
+
+let
+  name = "gravit-0.4.2";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "http://gravit.slowchop.com/dist/${name}.tar.gz";
+    sha256 = "f37f3ac256a4acbf575f709addaae8cb01eda4f85537affa28c45f2df6fddb07";
+  };
+
+  buildInputs = [mesa SDL SDL_ttf SDL_image lua5_0];
+
+  configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3";
+
+  postInstall = ''
+    mv $out/etc/gravit $out/share/gravit/sample-config
+    rmdir $out/etc
+  '';
+
+  meta = {
+    homepage = "http://gravit.slowchop.com";
+    description = "A beautiful OpenGL-based gravity simulator";
+    license = "GPLv2";
+
+    longDescription = ''
+          Gravit is a gravity simulator which runs under Linux, Windows and
+      Mac OS X. It uses Newtonian physics using the Barnes-Hut N-body
+      algorithm. Although the main goal of Gravit is to be as accurate
+      as possible, it also creates beautiful looking gravity patterns.
+      It records the history of each particle so it can animate and
+      display a path of its travels. At any stage you can rotate your
+      view in 3D and zoom in and out.
+    '';
+
+    platforms = stdenv.lib.platforms.mesaPlatforms;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
new file mode 100644
index 000000000000..acf7721489a7
--- /dev/null
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, cmake, freetype, libpng, mesa, gettext, openssl, qt4, perl, libiconv}:
+
+let
+  name = "stellarium-0.11.0";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/stellarium/${name}.tar.gz";
+    sha256 = "dbedf47dd0744fb325d67d63d1279101be7f4259af2a5e8027f1072012dd2587";
+  };
+
+  buildInputs = [ cmake freetype libpng mesa gettext openssl qt4 perl libiconv ];
+
+  cmakeFlags = "-DINTL_INCLUDE_DIR= -DINTL_LIBRARIES=";
+  preConfigure = ''
+    sed -i -e '/typedef void (\*__GLXextFuncPtr)(void);/d' src/core/external/GLee.h
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "an free open source planetarium";
+    homepage = http://stellarium.org/;
+    license = "GPL2";
+
+    platforms = stdenv.lib.platforms.linux; # should be mesaPlatforms, but we don't have qt on darwin
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/applications/science/xplanet/default.nix b/pkgs/applications/science/astronomy/xplanet/default.nix
index 15e04c3835c3..15e04c3835c3 100644
--- a/pkgs/applications/science/xplanet/default.nix
+++ b/pkgs/applications/science/astronomy/xplanet/default.nix
diff --git a/pkgs/applications/science/chemistry/avogadro/default.nix b/pkgs/applications/science/chemistry/avogadro/default.nix
new file mode 100644
index 000000000000..702f4c28912f
--- /dev/null
+++ b/pkgs/applications/science/chemistry/avogadro/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel }:
+
+stdenv.mkDerivation rec {
+  name = "avogadro-1.0.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/avogadro/${name}.tar.bz2";
+    sha256 = "0s44r78vm7hf4cs13d2qki3gf178gjj1ihph6rs04g6s4figvdpg";
+  };
+
+  buildInputs = [ qt4 eigen zlib openbabel ];
+
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    inherit (qt4.meta) platforms;
+  };
+}
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index 87a18c20e990..72c3f3e24356 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, gtk, gperf, pkgconfig, bzip2, xz, tcl, tk, judy} :
 stdenv.mkDerivation rec {
-  name = "gtkwave-3.3.11";
+  name = "gtkwave-3.3.20";
 
   src = fetchurl {
     url = "mirror://sourceforge/gtkwave/${name}.tar.gz";
-    sha256 = "1krhxdpzj2ma3xisbk0d9yzhlk1i60hgkkfycc2nsqqirqrvdpbr";
+    sha256 = "0r2yh8a5rrxjzvykdmqlb098wws5c9k255saf2bsdchnigs8il3n";
   };
 
   buildInputs = [ gtk gperf pkgconfig bzip2 xz tcl tk judy];
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index a804d9f84e6a..35395bd25d1e 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -4,7 +4,7 @@
 {stdenv, fetchurl, ocaml, findlib, camlp5, lablgtk, ncurses}:
 
 let
-  version = "8.3";
+  version = "8.3pl1";
 in
 
 stdenv.mkDerivation {
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://coq.inria.fr/V${version}/files/coq-${version}.tar.gz";
-    sha256 = "02iy4rxz1n1kc85fb3vs4xpxqfxjw87y2gvmi39fxrj8742qx0dx";
+    sha256 = "0a791gsbf17y2wi0a376n78pxkhpl0lkzifhy5d3mx3lpn376j9s";
   };
 
   buildInputs = [ ocaml findlib camlp5 ncurses lablgtk ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
     configureFlagsArray=(
       -camldir ${ocaml}/bin
       -camlp5dir $(ocamlfind query camlp5)
-      -lablgtkdir ${lablgtk}/lib/ocaml/lablgtk2 -opt -coqide opt
+      -lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -opt -coqide opt
     )
   '';
 
@@ -38,9 +38,12 @@ stdenv.mkDerivation {
     substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
     substituteInPlace scripts/coqmktop.ml --replace \
       "\"-I\"; \"+lablgtk2\"" \
-      "\"-I\"; \"${lablgtk}/lib/ocaml/lablgtk2\"; \"-I\"; \"${lablgtk}/lib/ocaml/stublibs\""
+      "\"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)\"; \"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/stublibs)\""
   '';
 
+  # This post install step is needed to build ssrcoqide from the ssreflect package
+  # It could be made optional, but I see little harm in including it in the default
+  # distribution -- roconnor
   postInstall = ''
    cp ide/*.cmi ide/ide.*a $out/lib/coq/ide/
   '';
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index f923095f857e..d835e351cac6 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -1,43 +1,36 @@
-{stdenv, writeText, writeTextFile, ocaml, findlib, camlp5_transitional, hol_light_sources}:
+{stdenv, fetchsvn, writeScript, ocaml, findlib, camlp5}:
 
-let
-  version = hol_light_sources.version;
+stdenv.mkDerivation rec {
+  name = "hol_light-20110813";
+  src = fetchsvn {
+    url = http://hol-light.googlecode.com/svn/trunk;
+    rev = "102";
+    sha256 = "5b972672db6aa1838dc5d130accd9ab6a62030c6b0c1dc4b69e42088b1ae86c9";
+  };
 
-  camlp5 = camlp5_transitional;
+  buildInputs = [ ocaml findlib camlp5 ];
 
-  hol_light_src_dir = "${hol_light_sources}/lib/hol_light/src";
+  start_script = ''
+    #!/bin/sh
+    cd "$out/lib/hol_light"
+    exec ${ocaml}/bin/ocaml -I "$(ocamlfind query camlp5)" -init make.ml
+  '';
 
-  pa_j_cmo = stdenv.mkDerivation {
-    name = "pa_j.cmo";
-    inherit ocaml camlp5; 
-    buildInputs = [ ocaml camlp5 findlib ];
-    buildCommand = ''
-      ocamlc -c \
-        -pp "camlp5r pa_lexer.cmo pa_extend.cmo q_MLast.cmo" \
-        -I "$(ocamlfind query camlp5)" \
-        -o $out \
-        "${hol_light_src_dir}/pa_j_`ocamlc -version | cut -c1-4`.ml"
-      '';
-    };
+  buildPhase = ''
+    make pa_j.ml
+    ocamlc -c \
+      -pp "camlp5r pa_lexer.cmo pa_extend.cmo q_MLast.cmo" \
+      -I "$(ocamlfind query camlp5)" \
+      pa_j.ml
+  '';
 
-  start_ml = writeText "start.ml" ''
-    Topdirs.dir_directory "${hol_light_src_dir}";;
-    Topdirs.dir_directory ("${camlp5}/lib/ocaml/"^Sys.ocaml_version^"/site-lib/camlp5");;
-    Topdirs.dir_load Format.std_formatter "camlp5o.cma";;
-    Topdirs.dir_load Format.std_formatter "${pa_j_cmo}";;
-    #use "${hol_light_src_dir}/make.ml";;
+  installPhase = ''
+    ensureDir "$out/lib/hol_light" "$out/bin"
+    cp -a  . $out/lib/hol_light
+    echo "${start_script}" > "$out/bin/hol_light"
+    chmod a+x "$out/bin/hol_light"
   '';
-in
-writeTextFile {
-  name = "hol_light-${version}";
-  destination = "/bin/start_hol_light";
-  executable = true;
-  text = ''
-      #!/bin/sh
-      exec ${ocaml}/bin/ocaml -init ${start_ml}
-    '';
-} // {
-  inherit (hol_light_sources) version src;
+
   meta = {
     description = "An interactive theorem prover based on Higher-Order Logic.";
     longDescription = ''
diff --git a/pkgs/applications/science/logic/hol_light/dmtcp_checkpoint.nix b/pkgs/applications/science/logic/hol_light/dmtcp_checkpoint.nix
deleted file mode 100644
index 9071d63c298a..000000000000
--- a/pkgs/applications/science/logic/hol_light/dmtcp_checkpoint.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{stdenv, writeTextFile, hol_light, dmtcp}:
-let
-  mkRestartScript = checkpointFile:
-    let filename = "hol_light_${checkpointFile.variant}_dmtcp"; in
-    writeTextFile {
-      name = "${filename}-${hol_light.version}";
-      destination = "/bin/${filename}";
-      executable = true;
-      text = ''
-        #!/bin/sh
-	exec ${dmtcp}/bin/dmtcp_restart --quiet ${checkpointFile}
-      '';
-    };
-
-  mkCkptFile =
-    { variant
-    , banner
-    , loads
-    , startCkpt ? null
-    , buildCommand ? ''
-        cp ${startCkpt} hol_light_restart.ckpt
-        (echo "$loadScript" | dmtcp_restart --quiet hol_light_restart.ckpt) || exit 0
-        cp hol_light_restart.ckpt $out
-      ''
-    }:
-    stdenv.mkDerivation rec {
-      name = "hol_light_${variant}_dmtcp.checkpoint-${hol_light.version}";
-      inherit variant banner buildCommand;
-      buildInputs = [ dmtcp hol_light ];
-      loadScript = ''
-        ${loads}
-        dmtcp_checkpoint "${banner}";;
-      '';
-    };
-in
-rec {
-  hol_light_core_dmtcp = mkRestartScript hol_light_core_dmtcp_ckpt;
-  hol_light_sosa_dmtcp = mkRestartScript hol_light_sosa_dmtcp_ckpt;
-  hol_light_card_dmtcp = mkRestartScript hol_light_card_dmtcp_ckpt;
-  hol_light_multivariate_dmtcp = mkRestartScript hol_light_multivariate_dmtcp_ckpt;
-  hol_light_complex_dmtcp = mkRestartScript hol_light_complex_dmtcp_ckpt;
-
-  hol_light_core_dmtcp_ckpt = mkCkptFile rec {
-    variant = "core";
-    banner = "";
-    loads = ''
-      #use "${./dmtcp_selfdestruct.ml}";;
-    '';
-    buildCommand = ''
-      (echo "$loadScript" | dmtcp_checkpoint --quiet ${hol_light}/bin/start_hol_light) || exit 0
-      mv ckpt* $out
-    '';
-  };
-
-  hol_light_multivariate_dmtcp_ckpt = mkCkptFile {
-    variant = "multivariate";
-    banner = "Preloaded with multivariate analysis";
-    loads = ''
-      loadt "Multivariate/make.ml";;
-    '';
-    startCkpt = hol_light_core_dmtcp_ckpt;
-  };
-
-  hol_light_sosa_dmtcp_ckpt = mkCkptFile {
-    variant = "sosa";
-    banner = "Preloaded with analysis and SOS";
-    loads = ''
-      loadt "Library/analysis.ml";;
-      loadt "Library/transc.ml";;
-      loadt "Examples/sos.ml";;
-      loadt "update_database.ml";;
-    '';
-    startCkpt = hol_light_core_dmtcp_ckpt;
-  };
-
-  hol_light_card_dmtcp_ckpt = mkCkptFile {
-    variant = "card";
-    banner = "Preloaded with cardinal arithmetic";
-    loads = ''
-      loadt "Library/card.ml";;
-      loadt "update_database.ml";;
-    '';
-    startCkpt = hol_light_core_dmtcp_ckpt;
-  };
-
-  hol_light_complex_dmtcp_ckpt = mkCkptFile {
-    variant = "complex";
-    banner = "Preloaded with multivariate-based complex analysis";
-    loads = ''
-      loadt "Multivariate/complexes.ml";;
-      loadt "Multivariate/canal.ml";;
-      loadt "Multivariate/transcendentals.ml";;
-      loadt "Multivariate/realanalysis.ml";;
-      loadt "Multivariate/cauchy.ml";;
-      loadt "Multivariate/complex_database.ml";;
-    '';
-    startCkpt = hol_light_multivariate_dmtcp_ckpt;
-  };
-}
diff --git a/pkgs/applications/science/logic/hol_light/dmtcp_selfdestruct.ml b/pkgs/applications/science/logic/hol_light/dmtcp_selfdestruct.ml
deleted file mode 100644
index f85a7a6c5fdf..000000000000
--- a/pkgs/applications/science/logic/hol_light/dmtcp_selfdestruct.ml
+++ /dev/null
@@ -1,19 +0,0 @@
-(* ------------------------------------------------------------------------- *)
-(* Create a standalone HOL image. Assumes that we are running under Linux    *)
-(* and have the program "dmtcp" available to create checkpoints.             *)
-(* ------------------------------------------------------------------------- *)
-
-let dmtcp_checkpoint, dmtcp_selfdestruct =
-  let call_dmtcp opts bannerstring =
-    let longer_banner = startup_banner ^ " with DMTCP" in
-    let complete_banner =
-      if bannerstring = "" then longer_banner
-      else longer_banner^"\n        "^bannerstring in
-    (Gc.compact(); Unix.sleep 1;
-     Format.print_string "Checkpointing..."; Format.print_newline();
-     try ignore(Unix.system ("dmtcp_command -bc " ^ opts))
-     with Unix.Unix_error _ -> ();
-     Format.print_string complete_banner;
-     Format.print_newline(); Format.print_newline())
-  in
-  call_dmtcp "", call_dmtcp "-q";;
diff --git a/pkgs/applications/science/logic/hol_light/parser_setup.patch b/pkgs/applications/science/logic/hol_light/parser_setup.patch
deleted file mode 100644
index 0ad17ca1a0b0..000000000000
--- a/pkgs/applications/science/logic/hol_light/parser_setup.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Nuar hol_light/hol.ml hol_light.nixos/hol.ml
---- hol_light/hol.ml	2010-11-03 23:09:01.000000000 +0100
-+++ hol_light.nixos/hol.ml	2010-11-03 23:10:31.000000000 +0100
-@@ -11,8 +11,8 @@
- 
- let hol_version = "2.20++";;
- 
--let hol_dir = ref
--  (try Sys.getenv "HOLLIGHT_DIR" with Not_found -> Sys.getcwd());;
-+let hol_dir = ref "@HOL_LIGHT_SRC_DIR@";;
-+Topdirs.dir_directory "@HOL_LIGHT_SRC_DIR@";;
- 
- (* ------------------------------------------------------------------------- *)
- (* Should eventually change to "ref(Filename.temp_dir_name)".                *)
-@@ -23,19 +23,6 @@
- let temp_path = ref "/tmp";;
- 
- (* ------------------------------------------------------------------------- *)
--(* Load in parsing extensions.                                               *)
--(* For Ocaml < 3.10, use the built-in camlp4                                 *)
--(* and for Ocaml >= 3.10, use camlp5 instead.                                *)
--(* ------------------------------------------------------------------------- *)
--
--if let v = String.sub Sys.ocaml_version 0 4 in v >= "3.10"
--then (Topdirs.dir_directory "+camlp5";
--      Topdirs.dir_load Format.std_formatter "camlp5o.cma")
--else (Topdirs.dir_load Format.std_formatter "camlp4o.cma");;
--
--Topdirs.dir_load Format.std_formatter (Filename.concat (!hol_dir) "pa_j.cmo");;
--
--(* ------------------------------------------------------------------------- *)
- (* Load files from system and/or user-settable directories.                  *)
- (* Paths map initial "$/" to !hol_dir dynamically; use $$ to get the actual  *)
- (* $ character at the start of a directory.                                  *)
diff --git a/pkgs/applications/science/logic/hol_light/sources.nix b/pkgs/applications/science/logic/hol_light/sources.nix
deleted file mode 100644
index b45ca4a90349..000000000000
--- a/pkgs/applications/science/logic/hol_light/sources.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{stdenv, fetchsvn}:
-
-stdenv.mkDerivation rec {
-  name = "hol_light_sources-${version}";
-  version = "20101029";
-
-  src = fetchsvn {
-    url = http://hol-light.googlecode.com/svn/trunk;
-    rev = "64";
-    sha256 = "91e9cac62586039b13c11af245f85a743e299892b24b39d3c7b2ee13157e87c9";
-  };
-
-  buildCommand = ''
-    export HOL_DIR="$out/lib/hol_light"
-    ensureDir "$HOL_DIR"
-    cp -a "${src}" "$HOL_DIR/src"
-    cd "$HOL_DIR/src"
-    chmod +wX -R .
-    patch -p1 < ${./parser_setup.patch}
-    substituteInPlace hol.ml --subst-var-by HOL_LIGHT_SRC_DIR "$HOL_DIR/src"
-  '';
-
-  meta = {
-    description = "Sources for the HOL Light theorem prover";
-    homepage = http://www.cl.cam.ac.uk/~jrh13/hol-light/;
-    license = "BSD";
-  };
-}
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index b9e756e0423b..5705262f3771 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -3,7 +3,7 @@
 
 let
   pname = "Isabelle";
-  version = "2009-2";
+  version = "2011";
   name = "${pname}${version}";
   theories = ["HOL" "FOL" "ZF"];
 in
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.cl.cam.ac.uk/research/hvg/${pname}/dist/${name}.tar.gz";
-    sha256 = "f92a275b78bd8844de47a5902e339b58f3b768c07a7fb19d8e606b68499d5ac4";
+    sha256 = "ea85eb2a859891be387f020b2e45f8c9a0bd1d8bbc3902f28a429e9c61cb0b6a";
   };
 
   buildInputs = [ perl polyml nettools ];
diff --git a/pkgs/applications/science/logic/isabelle/settings.patch b/pkgs/applications/science/logic/isabelle/settings.patch
index dc9c611d4886..bf509a4bac46 100644
--- a/pkgs/applications/science/logic/isabelle/settings.patch
+++ b/pkgs/applications/science/logic/isabelle/settings.patch
@@ -1,34 +1,32 @@
-diff -Naur Isabelle2009-1/etc/settings Isabelle2009-1-patched/etc/settings
---- Isabelle2009-1/etc/settings	2009-12-02 12:04:07.000000000 +0100
-+++ Isabelle2009-1-patched/etc/settings	2009-12-04 16:15:40.000000000 +0100
-@@ -16,15 +16,8 @@
- # Only one of the sections below should be activated.
+diff -Nuar Isabelle2011/etc/settings Isabelle2011-fix/etc/settings
+--- Isabelle2011/etc/settings	2011-01-30 13:02:18.000000000 +0100
++++ Isabelle2011-fix/etc/settings	2011-05-14 22:56:04.000000000 +0200
+@@ -17,13 +17,7 @@
  
  # Poly/ML 5.x (automated settings)
--POLY_HOME="$(type -p poly)"; [ -n "$POLY_HOME" ] && POLY_HOME="$(dirname "$POLY_HOME")"
  ML_PLATFORM="$ISABELLE_PLATFORM"
--ML_HOME=$(choosefrom \
+-ML_HOME="$(choosefrom \
 -  "$ISABELLE_HOME/contrib/polyml/$ML_PLATFORM" \
 -  "$ISABELLE_HOME/../polyml/$ML_PLATFORM" \
 -  "/usr/local/polyml/$ML_PLATFORM" \
 -  "/usr/share/polyml/$ML_PLATFORM" \
 -  "/opt/polyml/$ML_PLATFORM" \
--  $POLY_HOME)
+-  "")"
 +ML_HOME=@ML_HOME@
  ML_SYSTEM=$("$ISABELLE_HOME/lib/scripts/polyml-version")
  ML_OPTIONS="-H 200"
  ML_SOURCES="$ML_HOME/../src"
-@@ -185,13 +178,7 @@
+@@ -175,13 +169,7 @@
  ###
  
  # Proof General home, look in a variety of places
--PROOFGENERAL_HOME=$(choosefrom \
+-PROOFGENERAL_HOME="$(choosefrom \
 -  "$ISABELLE_HOME/contrib/ProofGeneral" \
 -  "$ISABELLE_HOME/../ProofGeneral" \
 -  "/usr/local/ProofGeneral" \
 -  "/usr/share/ProofGeneral" \
 -  "/opt/ProofGeneral" \
--  "")
+-  "")"
 +PROOFGENERAL_HOME=@PROOFGENERAL_HOME@
  
  PROOFGENERAL_OPTIONS=""
diff --git a/pkgs/applications/science/logic/leo2/default.nix b/pkgs/applications/science/logic/leo2/default.nix
index eb3a13593480..04ab9a5b5ab3 100644
--- a/pkgs/applications/science/logic/leo2/default.nix
+++ b/pkgs/applications/science/logic/leo2/default.nix
@@ -11,10 +11,10 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="leo2";
-    version="1.2.6";
+    version="1.2.8";
     name="${baseName}_v${version}";
     url="http://www.ags.uni-sb.de/~leo/${name}.tgz";
-    hash="0gjgcm6nb9kzdl0y72sgvf2w2q92s1ix70lh6wjz9lj2qdf7gi1z";
+    hash="d46a94f5991623386eb9061cfb0d748e258359a8c690fded173d45303e0e9e3a";
   };
 in
 rec {
diff --git a/pkgs/applications/science/logic/matita/Makefile.patch b/pkgs/applications/science/logic/matita/Makefile.patch
new file mode 100644
index 000000000000..64c9a13f2d07
--- /dev/null
+++ b/pkgs/applications/science/logic/matita/Makefile.patch
@@ -0,0 +1,11 @@
+--- matita-0.5.8/Makefile	2009-12-01 18:21:00.000000000 -0500
++++ matita-0.5.8/Makefile	2010-09-16 10:33:59.665461260 -0400
+@@ -38,7 +38,7 @@
+ uninstall: $(foreach d,$(SUBDIRS),rec@uninstall@$(d))
+ 
+ rec@%:
+-	$(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*)) DESTDIR=$(shell pwd)/$(DESTDIR)
++	$(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*))
+ 
+ # {{{ Distribution stuff
+ 
diff --git a/pkgs/applications/science/logic/matita/configure.patch b/pkgs/applications/science/logic/matita/configure.patch
new file mode 100644
index 000000000000..9a3bbbb13f52
--- /dev/null
+++ b/pkgs/applications/science/logic/matita/configure.patch
@@ -0,0 +1,36 @@
+--- zzz/matita-0.5.8/configure	2009-12-01 18:21:00.000000000 -0500
++++ matita-0.5.8/configure	2010-09-07 19:57:29.732139550 -0400
+@@ -1895,6 +1895,7 @@
+ # look for METAS dir
+ 
+ LIBSPATH="`pwd`/components"
++OLDCAMLPATH="$OCAMLPATH"
+ OCAMLPATH="$LIBSPATH/METAS"
+ 
+ # creating META.*
+@@ -1917,7 +1918,7 @@
+ gdome2 \
+ http \
+ lablgtk2 \
+-lablgtksourceview2.gtksourceview2 \
++lablgtk2.gtksourceview \
+ lablgtkmathview \
+ mysql \
+ netstring \
+@@ -1951,14 +1952,14 @@
+ $FINDLIB_CREQUIRES \
+ lablgtk2.glade \
+ lablgtkmathview \
+-lablgtksourceview2.gtksourceview2 \
++lablgtk2.gtksourceview \
+ helm-xmldiff \
+ "
+ for r in $FINDLIB_LIBSREQUIRES $FINDLIB_REQUIRES
+ do
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $r ocaml library" >&5
+ $as_echo_n "checking for $r ocaml library... " >&6; }
+-  if OCAMLPATH=$OCAMLPATH $OCAMLFIND query $r &> /dev/null; then
++  if OCAMLPATH=$OCAMLPATH:$OLDCAMLPATH $OCAMLFIND query $r &> /dev/null; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+   else
diff --git a/pkgs/applications/science/logic/matita/default.nix b/pkgs/applications/science/logic/matita/default.nix
new file mode 100644
index 000000000000..6ac672193e27
--- /dev/null
+++ b/pkgs/applications/science/logic/matita/default.nix
@@ -0,0 +1,54 @@
+{stdenv, fetchurl, ocaml, camlp5, findlib, gdome2, ocaml_expat, gmetadom, ocaml_http, lablgtk, lablgtkmathview, ocaml_mysql, ocaml_sqlite3, ocamlnet, ulex08, camlzip, ocaml_pcre }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  version = "0.5.8";
+  pname = "matita";
+
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://matita.cs.unibo.it/FILES/${pname}-${version}.orig.tar.gz";
+    sha256 = "04sxklfak71khy1f07ks5c6163jbpxv6fmaw03fx8gwwlvpmzglh";
+  };
+
+  buildInputs = [ocaml camlp5 findlib gdome2 ocaml_expat gmetadom ocaml_http lablgtk lablgtkmathview ocaml_mysql ocaml_sqlite3 ocamlnet ulex08 camlzip ocaml_pcre ];
+
+  postPatch = ''
+    BASH=$(type -tp bash)
+    substituteInPlace components/Makefile --replace "SHELL=/bin/bash" "SHELL=$BASH"
+    substituteInPlace matita/Makefile --replace "SHELL=/bin/bash" "SHELL=$BASH"
+    substituteInPlace configure --replace "ulex08" "ulex"
+    substituteInPlace components/METAS/meta.helm-content_pres.src --replace "ulex08" "ulex"
+    substituteInPlace components/content_pres/Makefile --replace "ulex08" "ulex"
+    substituteInPlace components/METAS/meta.helm-grafite_parser.src --replace "ulex08" "ulex"
+    substituteInPlace components/grafite_parser/Makefile --replace "ulex08" "ulex"
+    substituteInPlace configure --replace "zip" "camlzip"
+    substituteInPlace components/METAS/meta.helm-getter.src --replace "zip" "camlzip"
+    substituteInPlace components/METAS/meta.helm-xml.src --replace "zip" "camlzip"
+  '';
+
+  patches = [ ./configure.patch ./Makefile.patch ];
+
+  preConfigure = ''
+    # Setup for findlib.
+    OCAMLPATH=$(pwd)/components/METAS:$OCAMLPATH
+    RTDIR=$out/share/matita
+    export configureFlags="--with-runtime-dir=$RTDIR"
+  '';
+
+  postInstall = ''
+    ensureDir $out/bin
+    ln -vs $RTDIR/matita $RTDIR/matitac $RTDIR/matitaclean $RTDIR/matitadep $RTDIR/matitawiki $out/bin
+  '';
+
+  meta = {
+    homepage = http://matita.cs.unibo.it/;
+    description = "Matita is an experimental, interactive theorem prover";
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/applications/science/logic/ssreflect/default.nix b/pkgs/applications/science/logic/ssreflect/default.nix
index 61901d545d7a..5a51fe2136a1 100644
--- a/pkgs/applications/science/logic/ssreflect/default.nix
+++ b/pkgs/applications/science/logic/ssreflect/default.nix
@@ -1,13 +1,12 @@
 # TODO:
-# - ssrcoqide does not build successfully (missing coqide libraries in the coq installation).
-# - ssrcoq needs to be invoked with the explicit path to the ssreflect theory
-#   e.g.. ssrcoq -I /nix/store/rp09dlb2y2hpddb0xa7fyrgjlzb284ar-ssreflect-1.2/lib/coq/user-contrib/theories/
+# - coq needs to be invoked with the explicit path to the ssreflect theory
+#   e.g. coqide -R ~/.nix-profile/lib/coq/user-contrib/ ''
 
 {stdenv, fetchurl, ocaml, camlp5, coq}:
 
 let
   pname = "ssreflect";
-  version = "1.2";
+  version = "1.3pl1";
   name = "${pname}-${version}";
   webpage = http://www.msr-inria.inria.fr/Projects/math-components;
 in
@@ -16,18 +15,12 @@ stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
-    url = "${webpage}/${name}.tgz";
-    sha256 = "0800b085e6a0caec5093c6c02aacdd8dfd9cc282177e8586f14f9a9e15f64d0b";
+    url = "${webpage}/${name}.tar.gz";
+    sha256 = "0ykrhqb68aanl5d4dmn0vnx8m34gg0jsbdhwx2852rqi7r00b9ri";
   };
 
   buildInputs = [ ocaml camlp5 coq ];
 
-  preBuild = ''
-    coq_makefile -f Make -o Makefile
-    substituteInPlace Makefile \
-      --replace 'install -D $$i $(COQLIB)' 'install -D $$i '$out'/lib/coq'
-  '';
-
   # this fails
   /*
   postBuild = ''
@@ -36,10 +29,9 @@ stdenv.mkDerivation {
   '';
   */
 
-  postInstall = ''
+  installPhase = ''
+    COQLIB=$out/lib/coq make -f Makefile.coq install -e
     ensureDir $out/bin
-    #cp -a bin/ssrcoq bin/ssrcoqide $out/bin
-    cp -a bin/ssrcoq $out/bin
   '';
 
   meta = {
diff --git a/pkgs/applications/science/logic/tptp/default.nix b/pkgs/applications/science/logic/tptp/default.nix
new file mode 100644
index 000000000000..3211b6ebdc01
--- /dev/null
+++ b/pkgs/applications/science/logic/tptp/default.nix
@@ -0,0 +1,87 @@
+x@{builderDefsPackage
+  , yap, tcsh, perl, patchelf, pkgsi686Linux
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["pkgsi686Linux"];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="TPTP";
+    version="5.1.0";
+    name="${baseName}-${version}";
+    url="http://www.cs.miami.edu/~tptp/TPTP/Distribution/TPTP-v${version}.tgz";
+    hash="1wh2k575nn51ykg1jnwfwjqhg5x42k5vvn2spq09px26vhs4yksy";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["goTarget" "doUnpack" "fixPlace" "setVars" "installScripts" 
+    "patchBinaries" "makeLinks"];
+
+  goTarget = a.fullDepEntry ''
+    ensureDir "$out"/share/
+    cd "$out"/share/
+  '' ["defEnsureDir" "minInit"];
+
+  fixPlace = a.fullDepEntry ''
+    cd ..
+    mv TPTP-* tptp
+    cd tptp
+  '' ["minInit" "doUnpack"];
+
+  setVars = a.noDepEntry ''
+    export TPTP="$PWD"
+  '';
+
+  installScripts = a.fullDepEntry ''
+    tcsh "$out/share/tptp/Scripts/tptp2T_install" -default
+
+    sed -e 's@^ */bin/@@' -i TPTP2X/*
+
+    tcsh "$out/share/tptp/TPTP2X/tptp2X_install" -default
+  '' ["addInputs"];
+
+  makeLinks = a.fullDepEntry ''
+    ensureDir "$out/bin"
+    ln -s "../share/tptp/TPTP2X/tptp2X" "$out/bin"
+    ln -s "../share/tptp/Scripts/tptp2T" "$out/bin"
+    ln -s "../share/tptp/Scripts/tptp4X" "$out/bin"
+  '' ["defEnsureDir" "minInit"];
+
+  patchBinaries = a.fullDepEntry ''
+    patchelf --set-interpreter "${pkgsi686Linux.glibc}"/lib/ld-linux.so.* \
+      "Scripts/tptp4X"
+  '' ["addInputs"];
+      
+  meta = {
+    description = "Thousands of problems for theorem provers and tools";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    # A GiB of data. Installation is unpacking and editing a few files.
+    # No sense in letting Hydra build it.
+    # Also, it is unclear what is covered by "verbatim" - we will edit configs
+    platforms = with a.lib.platforms;
+      [];
+    license = "verbatim-redistribution";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://tptp.org/";
+    };
+  };
+}) x
+
diff --git a/pkgs/applications/science/math/ecm/default.nix b/pkgs/applications/science/math/ecm/default.nix
new file mode 100644
index 000000000000..5d378a48dd9e
--- /dev/null
+++ b/pkgs/applications/science/math/ecm/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, gmp}:
+
+let
+  pname = "ecm";
+  version = "6.2.3";
+  name = "${pname}-${version}";
+in
+
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+      url = https://gforge.inria.fr/frs/download.php/22124/ecm-6.2.3.tar.gz;
+      sha256 = "1iwwhbz5vwl7j6dyh292hahc8yy16pq9mmm7mxy49zhxd81vy08p";
+    };
+
+  buildInputs = [ gmp ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Elliptic Curve Method for Integer Factorization";
+    license = stdenv.lib.licenses.gpl2Plus;
+    homepage = http://ecm.gforge.inria.fr/;
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/applications/science/math/eukleides/default.nix b/pkgs/applications/science/math/eukleides/default.nix
new file mode 100644
index 000000000000..9f65bcb8c148
--- /dev/null
+++ b/pkgs/applications/science/math/eukleides/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, bison, flex, texinfo, readline, texLive }:
+
+let
+  name    = "eukleides";
+  version = "1.5.4";
+in
+stdenv.mkDerivation {
+  name = "${name}-${version}";
+
+  src = fetchurl {
+    url = "http://www.eukleides.org/files/${name}-${version}.tar.bz2";
+    sha256 = "0s8cyh75hdj89v6kpm3z24i48yzpkr8qf0cwxbs9ijxj1i38ki0q";
+  };
+
+  buildInputs = [bison flex texinfo readline texLive];
+
+  preConfigure = "sed -i 's/ginstall-info/install-info/g' doc/Makefile";
+  installPhase = "ensureDir $out/bin ; make PREFIX=$out install";
+
+  meta = {
+    description = "Geometry Drawing Language";
+    homepage = "http://www.eukleides.org/";
+    license = "GPLv2";
+
+    longDescription = ''
+      Eukleides is a computer language devoted to elementary plane
+      geometry. It aims to be a fairly comprehensive system to create
+      geometric figures, either static or dynamic. Eukleides allows to
+      handle basic types of data: numbers and strings, as well as
+      geometric types of data: points, vectors, sets (of points), lines,
+      circles and conics.
+    '';
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/applications/science/math/jags/default.nix b/pkgs/applications/science/math/jags/default.nix
new file mode 100644
index 000000000000..3043df15da74
--- /dev/null
+++ b/pkgs/applications/science/math/jags/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl, gfortran, liblapack, blas}:
+
+stdenv.mkDerivation rec {
+  name = "JAGS-2.2.0";
+  src = fetchurl {
+    url = "mirror://sourceforge/mcmc-jags/${name}.tar.gz";
+    sha256 = "016xml4k99lmdwwjiabxin95k9p3q2zh4pcci8wwcqwlq5y205b6";
+  };
+  buildInputs = [gfortran liblapack blas];
+
+  meta = {
+    description = "JAGS: Just Another Gibbs Sampler";
+    license     = "GPL2";
+    homepage    = http://www-ice.iarc.fr/~martyn/software/jags/;
+    maintainers = [stdenv.lib.maintainers.andres];
+  };
+}
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index f99c1e46162e..f8f21d8909b4 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -1,22 +1,40 @@
-{ stdenv, fetchurl, clisp }:
+{ stdenv, fetchurl, sbcl, texinfo, perl, makeWrapper, rlwrap ? null, tk ? null, gnuplot ? null }:
 
 let
-    name    = "maxima";
-    version = "5.22.1";
+  name    = "maxima";
+  version = "5.25.0";
+
+  searchPath =
+    stdenv.lib.makeSearchPath "bin"
+      (stdenv.lib.filter (x: x != null) [ sbcl rlwrap tk gnuplot ]);
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
-    sha256 = "0sdrv3lra6j3ylaqsblnd3x7rq4ybafyj7rb114ycadpx2qf06lq";
+    sha256 = "49c90fb809f5027787600050503476193db3620fd9517f620b82ad492ba30c0a";
   };
 
-  preConfigure = ''
-    configureFlags="--infodir=$out/share/info --mandir=$out/share/man"
+  buildInputs = [sbcl texinfo perl makeWrapper];
+
+  postInstall = ''
+    # Make sure that maxima can find its runtime dependencies.
+    for prog in "$out/bin/"*; do
+      wrapProgram "$prog" --prefix PATH ":" "${searchPath}"
+    done
+    # Move emacs modules and documentation into the right place.
+    ensureDir $out/share/emacs $out/share/doc
+    ln -s ../maxima/${version}/emacs $out/share/emacs/site-lisp
+    ln -s ../maxima/${version}/doc $out/share/doc/maxima
   '';
 
-  buildInputs = [clisp];
+  # The regression test suite has minor failures, but curiously enough
+  # this doesn't seem to abort the build process:
+  # <http://sourceforge.net/tracker/?func=detail&aid=3365831&group_id=4933&atid=104933>.
+  doCheck = true;
+
+  enableParallelBuilding = true;
 
   meta = {
     description = "Maxima computer algebra system";
diff --git a/pkgs/applications/science/math/msieve/default.nix b/pkgs/applications/science/math/msieve/default.nix
new file mode 100644
index 000000000000..baee2f23d4ca
--- /dev/null
+++ b/pkgs/applications/science/math/msieve/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, zlib, gmp, ecm }:
+
+stdenv.mkDerivation {
+  name = "msieve-1.48";
+
+  src = fetchurl {
+      url = mirror://sourceforge/msieve/msieve/Msieve%20v1.48/msieve148.tar.gz;
+      sha256 = "05cm23mpfsbwssqda243sbi8m31j783qx89x9gl7sy8a4dnv7h63";
+    };
+
+  buildInputs = [ zlib gmp ecm ];
+
+  ECM = if ecm == null then "0" else "1";
+
+  buildFlags = if stdenv.system == "x86_64-linux" then "x86_64"
+               else if stdenv.system == "i686-linux" then "x86"
+               else "generic";
+
+  installPhase = ''ensureDir $out/bin/
+                   cp msieve $out/bin/'';
+
+  meta = {
+    description = "a C library implementing a suite of algorithms to factor large integers";
+    license = stdenv.lib.licenses.publicDomain;
+    homepage = http://msieve.sourceforge.net/;
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix
index 62763ac2198a..43291d792b72 100644
--- a/pkgs/applications/science/math/pari/default.nix
+++ b/pkgs/applications/science/math/pari/default.nix
@@ -11,10 +11,10 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="pari";
-    version="2.3.5";
+    version="2.5.0";
     name="${baseName}-${version}";
     url="http://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz";
-    hash="124xr2jdz2c15v45i1zvgylng44lhf23729a1mk7ci1vywdaxpa7";
+    hash="18ipxj4hzj7s3fqz878fiypkzrkbjj8wvbygz9j8c3ya06q27jax";
   };
 in
 rec {
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index ece6eb985178..6bd6e9266e6b 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -1,22 +1,29 @@
-{ stdenv, fetchurl, maxima, wxGTK }:
-
-# TODO: Build the correct ${maxima}/bin/maxima store path into wxMaxima so that
-#       it can run that binary without relying on $PATH, /etc/wxMaxima.conf, or
-#       ~/.wxMaxima.
+{ stdenv, fetchurl, maxima, wxGTK, makeWrapper }:
 
 let
-    name    = "wxmaxima";
-    version = "0.8.6";
+  name    = "wxmaxima";
+  version = "11.04.0";
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/wxMaxima-${version}.tar.gz";
-    sha256 = "09w6gai0jfhl959yrdcdikz5l9kdjshasjk404vl19nfnivdbj9f";
+    sha256 = "1dfwh5ka125wr6wxzyiwz16lk8kaf09rb6lldzryjwh8zi7yw8dm";
   };
 
-  buildInputs = [maxima wxGTK];
+  buildInputs = [wxGTK maxima makeWrapper];
+
+  postInstall = ''
+    # Make sure that wxmaxima can find its runtime dependencies.
+    for prog in "$out/bin/"*; do
+      wrapProgram "$prog" --prefix PATH ":" "${maxima}/bin"
+    done
+  '';
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
 
   meta = {
     description = "Cross platform GUI for the computer algebra system Maxima.";
diff --git a/pkgs/applications/science/misc/tulip/configure-opengl.patch b/pkgs/applications/science/misc/tulip/configure-opengl.patch
deleted file mode 100644
index e5346ef07283..000000000000
--- a/pkgs/applications/science/misc/tulip/configure-opengl.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-Remove broken detection of OpenGL and GLEW.  See
-<http://sourceforge.net/tracker/?func=detail&aid=3015936&group_id=61223&atid=496518>.
-
---- tulip-3.3.1/acinclude.m4	2010-01-18 20:34:02.000000000 +0100
-+++ tulip-3.3.1/acinclude.m4	2010-06-14 16:25:25.000000000 +0200
-@@ -353,68 +353,8 @@ AC_ARG_WITH(gl-libraries,
-     [  ac_gl_libraries="$withval"
-     ])
- 
--AC_CACHE_VAL(ac_cv_have_gl,
--[
--if test ${VAR_WIN32} = 1
--then
--gl_incdirs=" /mingw/include $ac_gl_includes $GLDIR/include /usr/include /usr/X11R6/include/X11 /usr/X11R6/include $x_includes "
--else
--gl_incdirs=" $ac_gl_includes $GLDIR/include /usr/include /usr/X11R6/include/X11 /usr/X11R6/include $x_includes "
--fi
--AC_FIND_FILE(GL/gl.h, $gl_incdirs, gl_incdir)
--ac_gl_includes="$gl_incdir"
--
--if test ${VAR_WIN32} = 1
--then
--gl_libdirs="$GLDIR $ac_gl_libraries $GLLIB /usr/X11R6/lib /usr/lib /usr/local/lib $x_libraries "
--else
--gl_libdirs="$ac_gl_libraries $GLLIB /usr/X11R6/lib64 /usr/lib64 /usr/local/lib64/usr/X11R6/lib /usr/lib /usr/local/lib $x_libraries "
--fi
--
--test -n "$GLDIR" && gl_libdirs="$GLDIR/lib64 $GLDIR/lib $GLDIR $gl_libdirs"
--test=NONE
--gl_libdir=NONE
--for dir in $gl_libdirs; do
--if test ${VAR_WIN32} = 1
--then
--  try="ls -1 $dir/*opengl*"
--else
--  try="ls -1 $dir/libGL*"
--fi
--  if test=`eval $try 2> /dev/null`; then 
--    gl_libdir=$dir
--    if test ${VAR_WIN32} = 0 ; then 	 
--      try="ls -1 $gl_libdir/libGLEW.*" 	 
--      if test=`eval $try 2> /dev/null`; then break; else AC_MSG_ERROR([ libGLEW not found , please install it in $gl_libdir ]); fi 	 
--    else 	 
--      break 	 
--    fi
--  else 
--    echo "tried $dir" >&AC_FD_CC
--  fi
--done
--ac_gl_libraries="$gl_libdir"
- ])
- 
--eval "$ac_cv_have_gl"
--if test "$ac_gl_libraries" = NONE; then
--  AC_MSG_ERROR([ Not found , put your GLDIR environnement variable to the OpenGL directory ]);
--else
--  ac_cv_have_gl="have_gl=yes \
--  ac_gl_includes=$ac_gl_includes ac_gl_libraries=$ac_gl_libraries"
--  AC_MSG_RESULT([ libraries $ac_gl_libraries, headers $ac_gl_includes ])  
--  gl_libraries="$ac_gl_libraries"
--  gl_includes="$ac_gl_includes"
--if test ${VAR_MACOSX} = 1
--then
--  GL_INCLUDES="-I$ac_gl_includes"
--  GL_LDFLAGS=""
--else
--  GL_INCLUDES="-I$ac_gl_includes"	
--  GL_LDFLAGS="-L$ac_gl_libraries"
--fi
--fi
--
- dnl MAC PORT
- if test ${VAR_MACOSX} = 1
- then
-
diff --git a/pkgs/applications/science/misc/tulip/default.nix b/pkgs/applications/science/misc/tulip/default.nix
index 3bca42023e9f..b213c14cc1a5 100644
--- a/pkgs/applications/science/misc/tulip/default.nix
+++ b/pkgs/applications/science/misc/tulip/default.nix
@@ -1,31 +1,23 @@
 { fetchurl, stdenv, libxml2, freetype, mesa, glew, qt
-, autoconf, automake, libtool }:
+, autoconf, automake, libtool, cmake, makeWrapper }:
 
-let version = "3.4.0"; in
+let version = "3.5.0"; in
 stdenv.mkDerivation rec {
   name = "tulip-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/auber/tulip/tulip-${version}/${name}.tar.bz2";
-    sha256 = "2889113f773ba539472d501fb4f45dbf5eb76e02c949dfa74c63f6f815a2baab";
+    url = "mirror://sourceforge/auber/tulip/tulip-${version}/${name}-src.tar.gz";
+    sha256 = "0wl0wqjlifpay61pn7dxr3dl5r4a7v80f5g277p6s06ibvn2p3ln";
   };
 
-  patches = [ ./configure-opengl.patch ];
-
-  preConfigure =
-    '' export CPATH="${mesa}/include:${glew}/include"
-       export LIBRARY_PATH="${mesa}/lib:${glew}/lib"
-       export QTDIR="${qt}"
-       export LDFLAGS="-lGLEW"
-
-       rm -vf aclocal.m4 ltmain.sh
-       autoreconf -fi
-    '';
-
   buildInputs = [ libxml2 freetype glew ]
-    ++ [ autoconf automake libtool ];
+    ++ [ autoconf automake libtool cmake qt makeWrapper ];
   propagagedBuildInputs = [ mesa qt ];
 
+  postInstall=''
+    wrapProgram "$out/bin/tulip"
+  '';
+
   # FIXME: "make check" needs Docbook's DTD 4.4, among other things.
   doCheck = false;
 
diff --git a/pkgs/applications/taxes/aangifte-2010/default.nix b/pkgs/applications/taxes/aangifte-2010/default.nix
new file mode 100644
index 000000000000..cd8a3b62269b
--- /dev/null
+++ b/pkgs/applications/taxes/aangifte-2010/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, xdg_utils, libX11, libXext, libSM }:
+
+stdenv.mkDerivation {
+  name = "aangifte2010-1";
+  
+  src = fetchurl {
+    url = http://download.belastingdienst.nl/belastingdienst/apps/linux/ib2010_linux.tar.gz;
+    sha256 = "15mingjyqjvy4k6ws6qlhaaw8dj7336b54zg7mj70ig7jskjkz5h";
+  };
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  buildInputs = [ makeWrapper ];
+
+  buildPhase =
+    ''
+      for i in bin/*; do
+          patchelf \
+              --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+              --set-rpath ${stdenv.lib.makeLibraryPath [ libX11 libXext libSM ]}:$(cat $NIX_GCC/nix-support/orig-gcc)/lib \
+              $i
+      done
+    '';
+
+  installPhase =
+    ''
+      ensureDir $out
+      cp -prvd * $out/
+      wrapProgram $out/bin/ib2010ux --prefix PATH : ${xdg_utils}/bin
+    '';
+
+  meta = {
+    description = "Elektronische aangifte IB 2010 (Dutch Tax Return Program)";
+    url = http://www.belastingdienst.nl/particulier/aangifte2009/download/;
+  };
+}
diff --git a/pkgs/applications/version-management/bazaar/default.nix b/pkgs/applications/version-management/bazaar/default.nix
index 46a09ccf422c..8eb28ea04c73 100644
--- a/pkgs/applications/version-management/bazaar/default.nix
+++ b/pkgs/applications/version-management/bazaar/default.nix
@@ -1,30 +1,27 @@
-{stdenv, fetchurl, python, makeWrapper}:
+{ stdenv, fetchurl, pythonPackages }:
 
 stdenv.mkDerivation rec {
-  version = "2.2";
-  release = ".0";
+  version = "2.3";
+  release = ".1";
   name = "bazaar-${version}${release}";
 
   src = fetchurl {
     url = "http://launchpad.net/bzr/${version}/${version}${release}/+download/bzr-${version}${release}.tar.gz";
-    sha256 = "64cd6c23097884e40686adc7f0ad4a8200e2292bdc5e0caba3563b6f5c32bacf";
+    sha256 = "07kx41w4gqv68bcykdflsg68wvpmcyqknzyb4vr1zqlf27hahp53";
   };
 
-  buildInputs = [python makeWrapper];
+  buildInputs = [ pythonPackages.python pythonPackages.wrapPython ];
+
+  # Readline support is needed by bzrtools.
+  pythonPath = [ pythonPackages.ssl pythonPackages.readline ];
 
   installPhase = ''
     python setup.py install --prefix=$out
-    wrapProgram $out/bin/bzr --prefix PYTHONPATH : "$(toPythonPath $out)"
+    wrapPythonPrograms
   '';
 
-  passthru = {
-    # If someone wants to assert python features..
-    inherit python;
-  };
-
   meta = {
     homepage = http://bazaar-vcs.org/;
     description = "A distributed version control system that Just Works";
   };
-
 }
diff --git a/pkgs/applications/version-management/bazaar/tools.nix b/pkgs/applications/version-management/bazaar/tools.nix
index 5e5292cf1306..5a4b706f418a 100644
--- a/pkgs/applications/version-management/bazaar/tools.nix
+++ b/pkgs/applications/version-management/bazaar/tools.nix
@@ -1,9 +1,5 @@
 args : with args; 
 
-if ! bazaar.python.readlineSupport then 
-  throw "Bazaar Tools require readline support in python."
-else
-
 rec {
   version = "2.2.0";
   src = fetchurl {
diff --git a/pkgs/applications/version-management/darcs/darcs-2.nix b/pkgs/applications/version-management/darcs/darcs-2.nix
deleted file mode 100644
index eb7c3f066e9d..000000000000
--- a/pkgs/applications/version-management/darcs/darcs-2.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{cabal, curl, html, mtl, parsec, regexCompat, haskeline, hashedStorage, zlib, tar, text} :
-
-cabal.mkDerivation (self : {
-  pname = "darcs";
-  name = self.fname;
-  version = "2.5";
-  sha256 = "0i99z3wsfc1hhr0a0ax7254gj3i69yg8cb9lhp55wl6lfqvpzcnh";
-
-  propagatedBuildInputs = [
-    curl html parsec regexCompat haskeline hashedStorage zlib tar text
-  ];
-
-  meta = {
-    homepage = http://darcs.net/;
-    description = "Patch-based version management system";
-    license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-
-})
diff --git a/pkgs/applications/version-management/darcs/default.nix b/pkgs/applications/version-management/darcs/default.nix
new file mode 100644
index 000000000000..e3f1742ee594
--- /dev/null
+++ b/pkgs/applications/version-management/darcs/default.nix
@@ -0,0 +1,27 @@
+{ cabal, curl, extensibleExceptions, hashedStorage, haskeline, html
+, HTTP, mmap, mtl, network, parsec, random, regexCompat, tar
+, terminfo, text, zlib
+}:
+
+cabal.mkDerivation (self: {
+  pname = "darcs";
+  version = "2.5.2";
+  sha256 = "11mk1xcrxk2x5c0s96s19wb4xvhjl9s59bdqcrj8f4w09zbgjlw9";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    extensibleExceptions hashedStorage haskeline html HTTP mmap mtl
+    network parsec random regexCompat tar terminfo text zlib
+  ];
+  extraLibraries = [ curl ];
+  meta = {
+    homepage = "http://darcs.net/";
+    description = "a distributed, interactive, smart revision control system";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index 5feb8a429e33..002226292b02 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -1,15 +1,16 @@
 {stdenv, fetchurl, zlib, openssl, tcl}:
 
 let
-  version = "20101207133137";
+  version = "1.18";
+  filedate = "20110713230341";
 in
 
 stdenv.mkDerivation {
   name = "fossil-${version}";
 
   src = fetchurl {
-    url = "http://www.fossil-scm.org/download/fossil-src-${version}.tar.gz";
-    sha256 = "1yx35gq9ialvnvjn1r5yar4zxgy0rkxzyz9paxwy8qan3qb53mwz";
+    url = "http://www.fossil-scm.org/download/fossil-src-${filedate}.tar.gz";
+    sha256 = "065hp5hppzjzvvk9g8zaqbfms011rkiimydnfsgkp4s8jlc2h6dc";
   };
 
   buildInputs = [ zlib openssl ];
@@ -17,6 +18,8 @@ stdenv.mkDerivation {
 
   doCheck = true;
 
+  configurePhase = ":";
+
   checkTarget = "test";
 
   installPhase = ''
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 419918e983ee..53e4bfbe83b6 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -4,18 +4,16 @@
 args: with args; with pkgs;
 let
   inherit (pkgs) stdenv fetchurl subversion;
-  config = getPkgConfig "git";
 in
 rec {
 
   git = lib.makeOverridable (import ./git) {
     inherit fetchurl stdenv curl openssl zlib expat perl python gettext gnugrep
-      asciidoc texinfo xmlto docbook2x
-      docbook_xsl docbook_xml_dtd_45 libxslt
+      asciidoc texinfo xmlto docbook2x docbook_xsl docbook_xml_dtd_45 libxslt
       cpio tcl tk makeWrapper subversion;
-    svnSupport = config "svnSupport" false; # for git-svn support
-    guiSupport = config "guiSupport" false;
-    sendEmailSupport = config "sendEmailSupport" false;
+    svnSupport = false;		# for git-svn support
+    guiSupport = false;		# requires tcl/tk
+    sendEmailSupport = false;	# requires plenty of perl libraries
     perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey];
     smtpPerlLibs = [
       perlPackages.NetSMTP perlPackages.NetSMTPSSL
@@ -25,23 +23,34 @@ rec {
     ];
   };
 
+  # Git with SVN support, but without GUI.
+  gitSVN = lowPrio (appendToName "with-svn" (git.override {
+    svnSupport = true;
+  }));
+
   # The full-featured Git.
-  gitFull = git.override {
+  gitFull = appendToName "full" (git.override {
     svnSupport = true;
     guiSupport = true;
     sendEmailSupport = stdenv.isDarwin == false;
-  };
+  });
 
   gitGit = import ./git/git-git.nix {
     inherit fetchurl sourceFromHead stdenv curl openssl zlib expat perl gettext
       asciidoc texinfo xmlto docbook2x
       docbook_xsl docbook_xml_dtd_45 libxslt
       cpio tcl tk makeWrapper subversion autoconf;
-    svnSupport = config "svnSupport" false; # for git-svn support
-    guiSupport = config "guiSupport" false;
+    svnSupport = false;
+    guiSupport = false;
     perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
   };
 
+  gitAnnex = lib.makeOverridable (import ./git-annex) {
+    inherit stdenv fetchurl libuuid rsync findutils curl perl git ikiwiki which;
+    inherit (haskellPackages) ghc MissingH utf8String QuickCheck2 pcreLight SHA dataenc
+      HTTP testpack monadControl;
+  };
+
   qgit = import ./qgit {
     inherit fetchurl stdenv;
     inherit (xlibs) libXext libX11;
@@ -56,37 +65,11 @@ rec {
 
 
   stgit = import ./stgit {
-        inherit fetchurl stdenv python git;
+    inherit fetchurl stdenv python git;
   };
 
-  topGit = stdenv.mkDerivation rec {
-    name = "topgit-0.8-32-g8b0f1f9";
-
-    src = fetchurl {
-      url = "http://repo.or.cz/w/topgit.git/snapshot/${name}.zip";
-      sha256 = "0v3binh7wc2di57w6rdnlww30ryszzsklfdmm61sl1ildyl1klk4";
-    };
-
-    buildInputs = [unzip];
-    configurePhase = "export prefix=$out";
-
-    postInstall = ''
-      mkdir -p "$out/share/doc/${name}"
-      cp -v README "$out/share/doc/${name}"
-
-      mkdir -p $out/etc/bash_completion.d
-      make prefix=$out \
-        install
-      mv contrib/tg-completion.bash $out/etc/bash_completion.d
-    '';
-
-    meta = {
-      description = "TopGit aims to make handling of large amount of interdependent topic branches easier";
-      maintainers = [ lib.maintainers.marcweber lib.maintainers.ludo lib.maintainers.simons ];
-      homepage = http://repo.or.cz/w/topgit.git;
-      license = "GPLv2";
-      platforms = stdenv.lib.platforms.unix;
-    };
+  topGit = lib.makeOverridable (import ./topgit) {
+    inherit stdenv fetchurl unzip;
   };
 
   tig = stdenv.mkDerivation {
@@ -116,12 +99,16 @@ rec {
     inherit fetchgit stdenv perl;
   };
 
+  svn2git = import ./svn2git {
+    inherit stdenv fetchgit qt47 subversion apr;
+  };
+
   gitSubtree = stdenv.mkDerivation {
-    name = "git-subtree-0.3";
+    name = "git-subtree-0.4";
     src = fetchurl {
-      url = "http://github.com/apenwarr/git-subtree/tarball/v0.3";
+      url = "http://github.com/apenwarr/git-subtree/tarball/v0.4";
 #      sha256 = "0y57lpbcc2142jgrr4lflyb9xgzs9x33r7g4b919ncn3alb95vdr";
-      sha256 = "f2ccac1e9cff4c35d989dc2a5581133c96b72d96c6a5ed89e51b6446dadac03f";
+      sha256 = "19s8352igwh7x1nqgdfs7rgxahw9cnfv7zmpzpd63m1r3l2945d4";
     };
     unpackCmd = "gzip -d < $curSrc | tar xvf -";
     buildInputs = [ git asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt ];
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
new file mode 100644
index 000000000000..d72b1868b039
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, ghc, libuuid, rsync, findutils, curl, perl, MissingH, utf8String
+, QuickCheck2, pcreLight, SHA, dataenc, HTTP, testpack, git, ikiwiki, which
+, monadControl }:
+
+let
+  version = "3.20110819";
+in
+stdenv.mkDerivation {
+  name = "git-annex-${version}";
+
+  src = fetchurl {
+    url = "http://ftp.de.debian.org/debian/pool/main/g/git-annex/git-annex_${version}.tar.gz";
+    sha256 = "1442ba4ff35ec8f92f336a5f1055d7ad8306348871a9697262f4f2af3b3c0943";
+  };
+
+  buildInputs = [ghc libuuid rsync findutils curl perl MissingH utf8String QuickCheck2 pcreLight
+    SHA dataenc HTTP testpack git ikiwiki which monadControl];
+
+  checkTarget = "test";
+  doCheck = true;
+
+  preConfigure = ''
+    makeFlagsArray=( PREFIX=$out )
+    sed -i -e 's|#!/usr/bin/perl|#!${perl}/bin/perl|' mdwn2man
+  '';
+
+  meta = {
+    homepage = "http://git-annex.branchable.com/";
+    description = "Manage files with git without checking them into git";
+    license = "GPLv3+";
+
+    longDescription = ''
+      Git-annex allows managing files with git, without checking the
+      file contents into git. While that may seem paradoxical, it is
+      useful when dealing with files larger than git can currently
+      easily handle, whether due to limitations in memory, checksumming
+      time, or disk space.
+
+      Even without file content tracking, being able to manage files
+      with git, move files around and delete files with versioned
+      directory trees, and use branches and distributed clones, are all
+      very handy reasons to use git. And annexed files can co-exist in
+      the same git repository with regularly versioned files, which is
+      convenient for maintaining documents, Makefiles, etc that are
+      associated with annexed files but that benefit from full revision
+      control.
+    '';
+
+    platforms = ghc.meta.platforms;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 5ed6275caf70..ee207788875b 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -12,11 +12,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "git-1.7.3.2";
+  name = "git-1.7.6";
 
   src = fetchurl {
     url = "mirror://kernel/software/scm/git/${name}.tar.bz2";
-    sha256 = "0w9yappfl0jb88fk28vv680p33c2j4b0afzl1q2mcq0igjygck5w";
+    sha256 = "778795cece63cd758192378f3a999870cea290181b3a4c9de573c77192561082";
   };
 
   patches = [ ./docbook2texi.patch ];
@@ -41,16 +41,25 @@ stdenv.mkDerivation rec {
         chmod +x $1
       }
 
-      # Install Emacs mode.
-      echo "installing Emacs mode..."
+      # Install contrib stuff.
+      ensureDir $out/share/git
+      mv contrib $out/share/git/
       ensureDir $out/share/emacs/site-lisp
-      cp -p contrib/emacs/*.el $out/share/emacs/site-lisp
+      ln -s "$out/share/git/contrib/emacs/"*.el $out/share/emacs/site-lisp/
+      ensureDir $out/etc/bash_completion.d
+      ln -s $out/share/git/contrib/completion/git-completion.bash $out/etc/bash_completion.d/
 
       # grep is a runtime dependence, need to patch so that it's found
       substituteInPlace $out/libexec/git-core/git-sh-setup \
           --replace ' grep' ' ${gnugrep}/bin/grep' \
           --replace ' egrep' ' ${gnugrep}/bin/egrep'
-    '' # */
+
+      # Fix references to the perl binary. Note that the tab character
+      # in the patterns is important.
+      sed -i -e 's|	perl -ne|	${perl}/bin/perl -ne|g' \
+             -e 's|	perl -e|	${perl}/bin/perl -e|g' \
+             $out/libexec/git-core/{git-am,git-submodule}
+    ''
 
    + (if svnSupport then
 
@@ -84,41 +93,37 @@ stdenv.mkDerivation rec {
 
    + (if guiSupport then ''
        # Wrap Tcl/Tk programs
-       for prog in bin/gitk bin/git
-       do
-         wrapProgram "$out/$prog"                       \
-                     --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}" \
-                     --prefix PATH : "${tk}/bin"
+       for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do
+         sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \
+                -e "s|exec wish|exec '${tk}/bin/wish'|g" \
+		"$out/$prog"
        done
      '' else ''
-      # Don't wrap Tcl/Tk, replace them by notification scripts
-       for prog in bin/gitk libexec/git-core/git-gui
-       do
+       # Don't wrap Tcl/Tk, replace them by notification scripts
+       for prog in bin/gitk libexec/git-core/git-gui; do
          notSupported "$out/$prog" \
                       "reinstall with config git = { guiSupport = true; } set"
        done
      '')
 
-   + ''# install bash completion script
-      d="$out/etc/bash_completion.d"
-      ensureDir $d; cp contrib/completion/git-completion.bash "$d"
-     ''
    # Don't know why hardlinks aren't created. git installs the same executable
    # multiple times into $out so replace duplicates by symlinks because I
    # haven't tested whether the nix distribution system can handle hardlinks.
    # This reduces the size of $out from 115MB down to 13MB on x86_64-linux!
-   + ''#
+   + ''
       declare -A seen
-      find $out -type f | while read f; do
+      shopt -s globstar
+      for f in "$out/"**; do
+        if [ -L "$f" ]; then continue; fi
+        test -f "$f" || continue
         sum=$(md5sum "$f");
         sum=''\${sum/ */}
         if [ -z "''\${seen["$sum"]}" ]; then
           seen["$sum"]="$f"
         else
-          rm "$f"; ln -s "''\${seen["$sum"]}" "$f"
+          rm "$f"; ln -v -s "''\${seen["$sum"]}" "$f"
         fi
       done
-
      '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/version-management/git-and-tools/git2cl/default.nix b/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
index 026fc18c8018..f3fc8c9b6e98 100644
--- a/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
@@ -1,19 +1,22 @@
-{ fetchgit
-, stdenv
-, perl
-}:
-stdenv.mkDerivation rec {
+{ fetchgit, stdenv, perl }:
+
+stdenv.mkDerivation {
   name = "git2cl";
 
   src = fetchgit {
-    url = git://git.sv.gnu.org/git2cl.git;
+    url = "git://repo.or.cz/git2cl.git";
     rev = "8373c9f74993e218a08819cbcdbab3f3564bbeba";
     sha256 = "b0d39379640c8a12821442431e2121f7908ce1cc88ec8ec6bede218ea8c21f2f";
   };
 
-  buildCommand = ''
-    ensureDir $out/bin
-    cp ${src}/git2cl $out/bin
-    sed -i 's|/usr/bin/perl|${perl}/bin/perl|' $out/bin/git2cl
+  buildInputs = [ perl ];
+  installPhase = ''
+    install -D -m755 git2cl $out/bin/git2cl
+    install -D -m644 README $out/share/doc/git2cl/README
   '';
+
+  meta = {
+    homepage = "http://josefsson.org/git2cl/";
+    description = "convert git logs to GNU style ChangeLog files";
+  };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
new file mode 100644
index 000000000000..ae928fa2d4d5
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, qt47, subversion, apr}:
+
+stdenv.mkDerivation rec {
+  name = "svn2git";
+
+  src = fetchgit {
+    url = http://git.gitorious.org/svn2git/svn2git.git;
+    rev = "197979b6a641b8b5fa4856c700b1235491c73a41";
+    sha256 = "7be1a8f5822aff2d4ea7f415dce0b4fa8c6a82310acf24e628c5f1ada2d2d613";
+  };
+
+  buildPhase = ''
+    sed -i 's|/bin/cat|cat|' ./src/repository.cpp
+    qmake
+    make CXXFLAGS='-I${apr}/include/apr-1 -I${subversion}/include/subversion-1 -DVER="\"${src.rev}\""'
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp svn-all-fast-export $out/bin
+  '';
+
+  buildInputs = [subversion apr qt47];
+  
+}
diff --git a/pkgs/applications/version-management/git-and-tools/topgit/default.nix b/pkgs/applications/version-management/git-and-tools/topgit/default.nix
new file mode 100644
index 000000000000..ef8bb1b4dcfd
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/topgit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, unzip }:
+
+let
+  version = "0.8-45-gd279e29";
+  lib = stdenv.lib;
+in
+stdenv.mkDerivation {
+  name = "topgit-${version}";
+
+  src = fetchurl {
+    url = "http://repo.or.cz/w/topgit.git/snapshot/topgit-${version}.zip";
+    sha256 = "0vzrng1w2k7m4z0x9h6zbrcf33dx08ly8fnbxzz3ms2k2dbsmpl6";
+  };
+
+  buildInputs = [unzip];
+  configurePhase = "export prefix=$out";
+
+  postInstall = ''
+    ensureDir "$out/share/doc/topgit-${version}"
+    cp README "$out/share/doc/topgit-${version}/"
+    ensureDir "$out/etc/bash_completion.d"
+    make prefix="$out" install
+    mv "contrib/tg-completion.bash" "$out/etc/bash_completion.d/"
+  '';
+
+  meta = {
+    description = "TopGit aims to make handling of large amount of interdependent topic branches easier";
+    maintainers = [ lib.maintainers.marcweber lib.maintainers.ludo lib.maintainers.simons ];
+    homepage = http://repo.or.cz/w/topgit.git;
+    license = "GPLv2";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/version-management/kdesvn/default.nix b/pkgs/applications/version-management/kdesvn/default.nix
index b6893ba17e14..10a590e941b4 100644
--- a/pkgs/applications/version-management/kdesvn/default.nix
+++ b/pkgs/applications/version-management/kdesvn/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, lib, cmake, qt4, perl, gettext, apr, aprutil, subversion, db4
-, kdelibs, automoc4, phonon, kdebase}:
+, kdelibs, automoc4, phonon, kde_baseapps }:
 
 stdenv.mkDerivation {
   name = "kdesvn-1.5.5";
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 9a4c58d11c48..d131841618ec 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -1,18 +1,23 @@
 {stdenv, fetchurl, pygtk, python, intltool, scrollkeeper, makeWrapper }:
 
+let
+  minor = "1.5";
+  version = "${minor}.1";
+in
+
 stdenv.mkDerivation {
-  name = "meld-1.3.1";
+  name = "meld-${version}";
 
   src = fetchurl {
-    url = http://ftp.gnome.org/pub/gnome/sources/meld/1.3/meld-1.3.1.tar.bz2;
-    sha256 = "0iqnj3qb9l7z12akgmf64fr2xqirsqxflvj60xqcqr5vd5c763nn";
+    url = "http://ftp.gnome.org/pub/gnome/sources/meld/${minor}/meld-${version}.tar.bz2";
+    sha256 = "0ykj3rb5hvcr4dmc52mz8q3iknrsh042v1x7yvffgs6yibakcac2";
   };
 
   buildInputs = [ pygtk python intltool scrollkeeper makeWrapper ];
 
   patchPhase = ''
     sed -e s,/usr/local,$out, -i INSTALL
-    sed -e 's,#!.*,#!${python}/bin/python,' -i meld
+    sed -e 's,#!.*,#!${python}/bin/python,' -i bin/meld
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index f3d18036d079..eca4dfea17ee 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchurl, python, makeWrapper
-, guiSupport ? false, tk ? null }:
+{ stdenv, fetchurl, python, makeWrapper, docutils
+, guiSupport ? false, tk ? null, ssl }:
 
 stdenv.mkDerivation rec {
-  name = "mercurial-1.6.4";
-  
+  name = "mercurial-1.9";
+
   src = fetchurl {
-    url = "http://www.selenic.com/mercurial/release/${name}.tar.gz";
-    sha256 = "04c8vj942ys71dn0bjga33i0qi5hybjjhq087xd0jp29ijzxp3hy";
+    url = "http://mercurial.selenic.com/release/${name}.tar.gz";
+    sha256 = "1q1307rv5cyv7qalwkampy1h2f92j4d46v4x9647ljljs8f4n7ki";
   };
 
   inherit python; # pass it so that the same version can be used in hg2git
 
-  buildInputs = [ python makeWrapper ];
-  
+  buildInputs = [ python makeWrapper docutils ];
+
   makeFlags = "PREFIX=$(out)";
-  
+
   postInstall = (stdenv.lib.optionalString guiSupport
     ''
       ensureDir $out/etc/mercurial
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     ''
       for i in $(cd $out/bin && ls); do
         wrapProgram $out/bin/$i \
-          --prefix PYTHONPATH : "$(toPythonPath $out)" \
+          --prefix PYTHONPATH : "$(toPythonPath "$out ${ssl}")" \
           $WRAP_TK
       done
 
diff --git a/pkgs/applications/version-management/monotone-viz/mtn-head.nix b/pkgs/applications/version-management/monotone-viz/mtn-head.nix
index 5cb2d3beed57..b9a2daade5b5 100644
--- a/pkgs/applications/version-management/monotone-viz/mtn-head.nix
+++ b/pkgs/applications/version-management/monotone-viz/mtn-head.nix
@@ -11,7 +11,7 @@ rec {
 
   buildInputs = [ocaml lablgtk libgnomecanvas gtk graphviz glib 
     pkgconfig autoconf automake libtool];
-  configureFlags = ["--with-lablgtk-dir=${lablgtk}/lib/ocaml/lablgtk2"];
+  configureFlags = ["--with-lablgtk-dir=$(echo ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2)"];
 
   /* doConfigure should be specified separately */
   phaseNames = ["doAutoconf" "doPatch" "doConfigure" "doMakeInstall"];
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix
index fbd36417bfcc..70dd669e30fd 100644
--- a/pkgs/applications/version-management/monotone/default.nix
+++ b/pkgs/applications/version-management/monotone/default.nix
@@ -1,25 +1,33 @@
-{stdenv, fetchurl, boost, zlib, botan, libidn,
-  lua, pcre, sqlite, perl, pkgconfig}:
+{ stdenv, fetchurl, boost, zlib, botan, libidn
+, lua, pcre, sqlite, perl, pkgconfig }:
 
-let 
-  version = "0.99.1";
-  perlVersion = builtins.substring 5 10 perl.name;
-in stdenv.mkDerivation rec {
+let
+  version = "1.0";
+  perlVersion = (builtins.parseDrvName perl.name).version;
+in
+
+assert perlVersion != "";
+
+stdenv.mkDerivation rec {
   name = "monotone-${version}";
+
   src = fetchurl {
-    url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.gz";
-    sha256 = "189h5f6gqd4ng0qmzi3xwnj17nnpxm2vzras216ar6b5yc9bnki0";
+    url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.bz2";
+    sha256 = "5c530bc4652b2c08b5291659f0c130618a14780f075f981e947952dcaefc31dc";
   };
+
   buildInputs = [boost zlib botan libidn lua pcre sqlite pkgconfig];
+
   postInstall = ''
     ensureDir $out/share/${name}
     cp -rv contrib/ $out/share/${name}/contrib
     ensureDir $out/lib/perl5/site_perl/${perlVersion}
     cp -v contrib/Monotone.pm $out/lib/perl5/site_perl/${perlVersion}
   '';
+
   meta = {
     description = "A free distributed version control system";
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 95d21e2f7a6c..e1604ccc2e76 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -19,13 +19,13 @@ assert compressionSupport -> neon.compressionSupport;
 
 stdenv.mkDerivation rec {
 
-  version = "1.6.15";
+  version = "1.6.17";
 
   name = "subversion-${version}";
 
   src = fetchurl {
     url = "http://subversion.tigris.org/downloads/${name}.tar.bz2";
-    sha1 = "b6fadf944a94b86f989f07bc2d781be41df017bf";
+    sha1 = "6e3ed7c87d98fdf5f0a999050ab601dcec6155a1";
   };
 
   buildInputs = [ zlib apr aprutil sqlite ]
diff --git a/pkgs/applications/version-management/veracity/default.nix b/pkgs/applications/version-management/veracity/default.nix
index 3005da5aba69..82a588f6a1ed 100644
--- a/pkgs/applications/version-management/veracity/default.nix
+++ b/pkgs/applications/version-management/veracity/default.nix
@@ -2,13 +2,14 @@ x@{builderDefsPackage
   , cmake, curl, patch, zlib, icu, sqlite, libuuid
   , readline, openssl, spidermonkey_1_8_0rc1
   , nspr, nss
+  , runTests ? false
   , ...}:
 builderDefsPackage
 (a :  
 let 
   s = import ./src-for-default.nix;
   helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+    ["runTests"];
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
     
@@ -19,19 +20,35 @@ rec {
   inherit (s) name;
   inherit buildInputs;
 
-  phaseNames = ["prepare_sgneeds" "dump0" "prepareMakefiles" "doMake" "doDeploy"];
+  phaseNames = ["prepare_sgneeds" "dump0" "prepareMakefiles" "doMake" "doTest" "doDeploy"];
 
   dump0 = (a.doDump "0");
 
+  runTests = a.stdenv.lib.attrByPath ["runTests"] false a;
+
+  doTest = a.fullDepEntry (if runTests then ''
+    sed -e "s@/bin/bash@${a.stdenv.shell}@" -i $(find .. -type f)
+    mkdir pseudo-home
+    export HOME=$PWD/pseudo-home
+    make test || true
+  '' else "") ["doMake" "minInit"];
+
   prepare_sgneeds = a.fullDepEntry (''
+    ensureDir "$out/sgneeds/include/spidermonkey"
     for d in bin include lib; do 
       ensureDir "$out/sgneeds/$d"
+      ensureDir "$out/sgneeds/$d"
       for p in "${spidermonkey_1_8_0rc1}"; do
         for f in "$p"/"$d"/*; do
 	  ln -sf "$f" "$out"/sgneeds/"$d"
 	done
       done
     done
+      for p in  "${spidermonkey_1_8_0rc1}/include" "${spidermonkey_1_8_0rc1}/include/js"; do
+        for f in "$p"/*; do
+	  ln -sf "$f" "$out"/sgneeds/include/spidermonkey/
+	done
+      done
 
     ensureDir "$out/sgneeds/include/sgbrings"
     ln -s "$out/sgneeds/include/js" "$out/sgneeds/include/sgbrings/js"
@@ -41,14 +58,19 @@ rec {
     done
 
     export SGNEEDS_DIR="$out"/sgneeds/
+    export VVTHIRDPARTY="$out"/sgneeds/
+
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$out/sgneeds/include"
   '') ["minInit" "defEnsureDir"];
 
   prepareMakefiles = a.fullDepEntry ''
+    sed -e 's@ /bin/uname @ uname @g' -i CMakeLists.txt
+    sed -e 's@ /bin/uname @ uname @g' -i common-CMakeLists.txt
     cd ..
     mkdir build
     cd build
     export NIX_LDFLAGS="$NIX_LDFLAGS -lssl"
-    cmake -G "Unix Makefiles" -D SGNEEDS_DIR="$SGNEEDS_DIR" ../veracity*
+    cmake -G "Unix Makefiles" -D SGNEEDS_DIR="$SGNEEDS_DIR" -D VVTHIRDPARTY="$VVTHIRDPARTY" -D SPIDERMONKEY_INCDIR="${a.spidermonkey_1_8_0rc1}/include" -D SPIDERMONKEY_LIB="${a.spidermonkey_1_8_0rc1}/lib/libjs.so" ../veracity*
   '' ["minInit" "addInputs" "doUnpack"];
 
   doDeploy = a.fullDepEntry ''
@@ -56,6 +78,10 @@ rec {
     cp -r .. "$out/share/veracity/build-dir"
     ln -s "$out/share/veracity/build-dir/build/src/cmd/vv" "$out/bin"
     ln -s "$out/share/veracity/build-dir/build/src/script/vscript" "$out/bin"
+    ${if runTests then "" else '' 
+      rm -rf  "$out/share/veracity/build-dir/veracity/testsuite" 
+      rm -rf  "$out/share/veracity/build-dir/build/testsuite" 
+    ''}
   '' ["doMake" "minInit" "defEnsureDir"];
 
   meta = {
diff --git a/pkgs/applications/version-management/veracity/src-for-default.nix b/pkgs/applications/version-management/veracity/src-for-default.nix
index 010c3acd929a..504d260204cd 100644
--- a/pkgs/applications/version-management/veracity/src-for-default.nix
+++ b/pkgs/applications/version-management/veracity/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="0.5.5.10353";
-   name="veracity-0.5.5.10353";
-   hash="06clsn9li6bxdihmzcjd6ch5n6n5wgydd0sw76mk0ljy7s9ylhjr";
-   url="http://download-us.sourcegear.com/Veracity/nightly/veracity-source-${version}.tar.gz";
-   advertisedUrl="http://download-us.sourcegear.com/Veracity/nightly/veracity-source-0.5.5.10353.tar.gz";
+   version="1.0.0.10517";
+   name="veracity-1.0.0.10517";
+   hash="08bka5zzn7i7c3dm3xp57n3szvm9msmi7mq1zynqb6i210qix79g";
+   url="http://download.sourcegear.com/Veracity/release/1.0.0.10517/veracity-source-${version}.tar.gz";
+   advertisedUrl="http://download.sourcegear.com/Veracity/release/1.0.0.10517/veracity-source-1.0.0.10517.tar.gz";
   
   
 }
diff --git a/pkgs/applications/version-management/veracity/src-info-for-default.nix b/pkgs/applications/version-management/veracity/src-info-for-default.nix
index dac6c65e85c6..cf4936ffc554 100644
--- a/pkgs/applications/version-management/veracity/src-info-for-default.nix
+++ b/pkgs/applications/version-management/veracity/src-info-for-default.nix
@@ -1,5 +1,5 @@
 {
-  #downloadPage = "http://sourcegear.com/veracity/downloads.html";
-  downloadPage = "http://download-us.sourcegear.com/Veracity/nightly/index.html";
+  downloadPage = "http://veracity-scm.org/downloads.html";
+  #downloadPage = "http://download-us.sourcegear.com/Veracity/nightly/index.html";
   baseName = "veracity";
 }
diff --git a/pkgs/applications/video/MPlayer/default.nix b/pkgs/applications/video/MPlayer/default.nix
index 11391cea975b..348a5e7e3237 100644
--- a/pkgs/applications/video/MPlayer/default.nix
+++ b/pkgs/applications/video/MPlayer/default.nix
@@ -1,6 +1,6 @@
 { alsaSupport ? true, xvSupport ? true, theoraSupport ? true, cacaSupport ? true
 , xineramaSupport ? true, randrSupport ? true, dvdnavSupport ? true
-, stdenv, fetchurl, x11, freetype, fontconfig, zlib
+, stdenv, fetchurl, fetchsvn, fetchgit, x11, freetype, fontconfig, zlib
 , alsaLib ? null, libXv ? null, libtheora ? null, libcaca ? null
 , libXinerama ? null, libXrandr ? null, libdvdnav ? null
 , cdparanoia ? null, cddaSupport ? true
@@ -49,29 +49,50 @@ let
 
   codecs = if codecs_src != null then stdenv.mkDerivation {
     name = "MPlayer-codecs-essential-20071007";
-  
+
     src = codecs_src;
 
     installPhase = ''
       mkdir $out
       cp -prv * $out
     '';
-  
+
     meta = {
       license = "unfree";
     };
   } else null;
+  
+  ffmpegGit = fetchgit {
+    url = "git://git.videolan.org/ffmpeg.git";
+    rev = "80d156d";
+    sha256 = "6d0124621491b8adc5f1bfb426ab137efc72dab99a89835aa3c30b970cb14004";
+  };
+  
+  mplayerRev = "33472";
 
-in  
+in
 
 stdenv.mkDerivation rec {
-  name = "MPlayer-1.0-pre20101227";
+  name = "mplayer-r${mplayerRev}";
+
+  src = fetchsvn {
+    # Old kind of URL:
+    # url = http://nixos.org/tarballs/mplayer-snapshot-20101227.tar.bz2;
+    # Snapshot I took on 20110423
 
-  src = fetchurl {
-    url = http://nixos.org/tarballs/mplayer-snapshot-20101227.tar.bz2;
-    sha256 = "0q9rvjz3byvs0qlnb9jbnw3qs6c3vdcqaqxm1rnql8kqic442hv2";
+    #Transient
+    #url = http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2;
+    #sha256 = "cc1b3fda75b172f02c3f46581cfb2c17f4090997fe9314ad046e464a76b858bb";
+
+    url = "svn://svn.mplayerhq.hu/mplayer/trunk";
+    rev = "${mplayerRev}";
+    sha256 = "01b0b5x6li8c2m2mam7mabmk02npvprcwrim00a51sdlvqxh309v";
   };
 
+  prePatch = ''
+    sed -i /^_install_strip/d configure
+  '';
+
   buildInputs =
     [ freetype zlib pkgconfig ]
     ++ stdenv.lib.optional x11Support [ libX11 libXext mesa ]
@@ -94,6 +115,16 @@ stdenv.mkDerivation rec {
 
   buildNativeInputs = [ yasm ];
 
+  preConfigure = ''
+    cp -r ${ffmpegGit} ffmpeg
+    chmod u+w -R ffmpeg
+    sed -ie '1i#include "libavutil/intreadwrite.h"' ffmpeg/libavcodec/libmp3lame.c
+  '';
+
+  postConfigure = ''
+    echo CONFIG_MPEGAUDIODSP=yes >> config.mak
+  '';
+
   configureFlags = ''
     ${if cacaSupport then "--enable-caca" else "--disable-caca"}
     ${if dvdnavSupport then "--enable-dvdnav --enable-dvdread --disable-dvdread-internal" else ""}
@@ -103,6 +134,9 @@ stdenv.mkDerivation rec {
     ${if x11Support then "--enable-x11" else ""}
     --disable-xanim
     --disable-ivtv
+    --enable-vidix
+    --enable-fbdev
+    --disable-ossaudio
   '';
 
   NIX_LDFLAGS = if x11Support then "-lX11 -lXext" else "";
@@ -115,14 +149,15 @@ stdenv.mkDerivation rec {
     '';
 
   crossAttrs = {
-    preConfigure = ''
+    dontSetConfigureCross = true;
+    # Some things (vidix) are nanonote specific. Once someone cares, we can make options from them.
+    preConfigure = preConfigure + ''
       configureFlags="`echo $configureFlags |
-        sed -e 's/--build[^ ]\+//' \
-        -e 's/--host[^ ]\+//' \
-        -e 's/--codecsdir[^ ]\+//' \
+        sed -e 's/--codecsdir[^ ]\+//' \
         -e 's/--enable-runtime-cpudetection//' `"
       configureFlags="$configureFlags --target=${stdenv.cross.arch}-linux
-        --cc=$crossConfig-gcc --as=$crossConfig-as"
+        --enable-cross-compile --cc=$crossConfig-gcc --as=$crossConfig-as
+        --disable-vidix-pcidb --with-vidix-drivers=no --host-cc=gcc"
     '';
   };
 
diff --git a/pkgs/applications/video/bangarang/default.nix b/pkgs/applications/video/bangarang/default.nix
index 7784fc439135..e6ff1770c46d 100644
--- a/pkgs/applications/video/bangarang/default.nix
+++ b/pkgs/applications/video/bangarang/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, soprano, kdemultimedia, taglib, glibc, gettext }:
 stdenv.mkDerivation rec {
-  name = "bangarang-1.0.1";
+  name = "bangarang-2.0";
 
   src = fetchurl {
     url = "http://bangarangissuetracking.googlecode.com/files/${name}.tar.gz";
-    sha256 = "0a89w6zqyzcb34vp3qmyp1mdm2k0igm71b5sh11xnikjvs3k7c33";
+    sha256 = "1fixqx56k0mk0faz35rzpdg6zaa0mvm4548rg0g7fhafl35fxzlz";
   };
 
   buildInputs = [ cmake qt4 kdelibs automoc4 phonon soprano kdemultimedia taglib glibc gettext ];
diff --git a/pkgs/applications/video/cinelerra/default.nix b/pkgs/applications/video/cinelerra/default.nix
index 58a84d91b83e..83736d039327 100644
--- a/pkgs/applications/video/cinelerra/default.nix
+++ b/pkgs/applications/video/cinelerra/default.nix
@@ -1,39 +1,43 @@
-{ stdenv, fetchurl, sourceFromHead, autoconf, automake, libtool
+{ stdenv, fetchgit, sourceFromHead, autoconf, automake, libtool
 , pkgconfig, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
 , libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
-, libtiff, freetype, mjpegtools, x264, gettext, openexr, esound 
-, libXxf86vm, libXv, libXi, libX11, xextproto, libtheora, libpng
-, libdv, nasm, perl, e2fsprogs }:
+, libtiff, freetype, mjpegtools, x264, gettext, openexr, esound
+, libXext, libXxf86vm, libXv, libXi, libX11, xextproto, libtheora, libpng
+, libdv, libuuid, file, nasm, perl }:
         
 stdenv.mkDerivation {
   name = "cinelerra-git";
 
-  # REGION AUTO UPDATE:    { name="cinelerra"; type="git"; url="git://git.cinelerra.org/j6t/cinelerra.git"; }
-  src= sourceFromHead "cinelerra-9f9adf2ad5472886d5bc43a05c6aa8077cabd967.tar.gz"
-               (fetchurl { url = "http://mawercer.de/~nix/repos/cinelerra-9f9adf2ad5472886d5bc43a05c6aa8077cabd967.tar.gz"; sha256 = "0b264e2a770d2257550c9a23883a060afcaff12293fe43828954e7373f5f4fb4"; });
-  # END
+  # # REGION AUTO UPDATE:    { name="cinelerra"; type="git"; url="git://git.cinelerra.org/j6t/cinelerra.git"; }
+  # src= sourceFromHead "cinelerra-9f9adf2ad5472886d5bc43a05c6aa8077cabd967.tar.gz"
+  #              (fetchurl { url = "http://mawercer.de/~nix/repos/cinelerra-9f9adf2ad5472886d5bc43a05c6aa8077cabd967.tar.gz"; sha256 = "0b264e2a770d2257550c9a23883a060afcaff12293fe43828954e7373f5f4fb4"; });
+  # # END
 
-  # touch confi.rpath: work around bug in automake 1.10 ?
+  src = fetchgit {
+    url = "git://git.cinelerra.org/j6t/cinelerra.git";
+    rev = "01dc4375a0fb65d10dd95151473d0e195239175f";
+    sha256 = "afb406a5637e4d0afad94e62ffd3af5b61e39f75aba9c08521523d00a0a5fec5";
+  };
+
+  # touch config.rpath: work around bug in automake 1.10 ?
   preConfigure = ''
     find -type f -print0 | xargs --null sed -e "s@/usr/bin/perl@${perl}/bin/perl@" -i
     touch config.rpath
     ./autogen.sh
+    sed -i -e "s@/usr/bin/file@${file}/bin/file@" ./configure
   '';
-  
-  configureFlags = [ "--enable-freetype2" ];
 
   buildInputs =
     [ automake
-      autoconf libtool pkgconfig
+      autoconf libtool pkgconfig file
       faad2 faac
       a52dec alsaLib   fftw lame libavc1394 libiec61883
       libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
       mjpegtools x264 gettext openexr esound 
-      libXxf86vm libXv libXi libX11 xextproto
-      libtheora libpng libdv
+      libXext libXxf86vm libXv libXi libX11 xextproto
+      libtheora libpng libdv libuuid
       nasm
       perl
-      e2fsprogs
     ];
 
   meta = { 
diff --git a/pkgs/applications/video/gnash/default.nix b/pkgs/applications/video/gnash/default.nix
index 00369be6c993..81b33849887c 100644
--- a/pkgs/applications/video/gnash/default.nix
+++ b/pkgs/applications/video/gnash/default.nix
@@ -3,19 +3,21 @@
 , gstFfmpeg, speex
 , libogg, libxml2, libjpeg, mesa, libpng, libungif, libtool
 , boost, freetype, agg, dbus, curl, pkgconfig, gettext
-, glib, gtk, gtkglext, x11, ming, dejagnu, python
-, lib, makeWrapper }:
+, glib, gtk, gtkglext, x11, ming, dejagnu, python, perl
+, freefont_ttf, haxe, swftools
+, lib, makeWrapper
+, xulrunner }:
 
 assert stdenv ? glibc;
 
-let version = "0.8.8"; in
+let version = "0.8.9"; in
 
 stdenv.mkDerivation rec {
   name = "gnash-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/gnash/${version}/${name}.tar.bz2";
-    sha256 = "0872qrgzpy76lxq5b2xigyzaghn53xrpqba2qp3nrk8yz20lpb6w";
+    sha256 = "1ga8khwaympj4fphhpyqx6ddcikv0zmcpnlykcipny1xy33bs3gr";
   };
 
   patchPhase = ''
@@ -32,19 +34,27 @@ stdenv.mkDerivation rec {
     do
       sed -i "$file" -es'|/tmp/|$TMPDIR/|g'
     done
+
+    # Provide a default font.
+    sed -i "configure" \
+        -e 's|/usr/share/fonts/truetype/freefont/|${freefont_ttf}/share/fonts/truetype/|g'
   '';
 
+  enableParallelBuilding = true;
+
   # XXX: KDE is supported as well so we could make it available optionally.
   buildInputs = [
     gettext x11 SDL SDL_mixer gstreamer gstPluginsBase gstPluginsGood
     gstFfmpeg speex libtool
     libogg libxml2 libjpeg mesa libpng libungif boost freetype agg
     dbus curl pkgconfig glib gtk gtkglext
+    xulrunner
     makeWrapper
+  ]
 
-    # For the test suite
-    ming dejagnu python
-  ];
+  ++ (stdenv.lib.optionals doCheck [
+        ming dejagnu python perl haxe swftools
+      ]);
 
   preConfigure =
     '' configureFlags="                                         \
@@ -58,12 +68,15 @@ stdenv.mkDerivation rec {
        # Work around this using GCC's $CPATH variable.
        export CPATH="${gstPluginsBase}/include/gstreamer-0.10:${gstPluginsGood}/include/gstreamer-0.10"
        echo "\$CPATH set to \`$CPATH'"
+
+       echo "\$GST_PLUGIN_PATH set to \`$GST_PLUGIN_PATH'"
     '';
 
   # Make sure `gtk-gnash' gets `libXext' in its `RPATH'.
   NIX_LDFLAGS="-lX11 -lXext";
 
-  doCheck = true;
+  # XXX: Tests currently fail.
+  doCheck = false;
 
   preInstall = ''ensureDir $out/plugins'';
   postInstall = ''
diff --git a/pkgs/applications/video/gnome-mplayer/default.nix b/pkgs/applications/video/gnome-mplayer/default.nix
index 0d86e902efdb..7c1d13fd79d9 100644
--- a/pkgs/applications/video/gnome-mplayer/default.nix
+++ b/pkgs/applications/video/gnome-mplayer/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, pkgconfig, glib, gtk, dbus, dbus_glib, GConf}:
 
 stdenv.mkDerivation rec {
-  name = "gnome-mplayer-0.9.99.rc1";
+  name = "gnome-mplayer-1.0.4";
 
   src = fetchurl {
     url = "http://gnome-mplayer.googlecode.com/files/${name}.tar.gz";
-    sha256 = "00fbcjpashrld8bpvm63q9ms17kjnj3rrn1ghsfyqi2swpwzk2k1";
+    sha256 = "1k5yplsvddcm7xza5h4nfb6vibzjcqsk8gzis890alizk07f5xp2";
   };
 
   buildInputs = [pkgconfig glib gtk dbus dbus_glib GConf];
diff --git a/pkgs/applications/video/kdenlive/default.nix b/pkgs/applications/video/kdenlive/default.nix
index 38f843c447f5..6db6e630d325 100644
--- a/pkgs/applications/video/kdenlive/default.nix
+++ b/pkgs/applications/video/kdenlive/default.nix
@@ -1,15 +1,19 @@
-{stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon, mlt, gettext,
-shared_mime_info, soprano}:
+{ stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon, mlt, gettext
+, qimageblitz, qjson, shared_mime_info, soprano }:
+
+stdenv.mkDerivation rec {
+  name = "kdenlive-${version}";
+  version = "0.8";
 
-stdenv.mkDerivation {
-  name = "kdenlive-0.7.8";
   src = fetchurl {
-    url = mirror://sourceforge/kdenlive/kdenlive-0.7.8.tar.gz;
-    sha256 = "10bwmhh3kzdbq1nzq8s5ln7ydrzg41d1rihj5kdmf5hb91az8mvx";
+    url = "mirror://sourceforge/kdenlive/${name}.tar.gz";
+    sha256 = "18e3390c9eb7124af5cd43819c679374aec46dcaf1fc5cdb43918db470c1076f";
   };
 
+  patches = [ ./kdenlive-newmlt.patch ];
+
   buildInputs = [ cmake qt4 perl kdelibs automoc4 phonon mlt gettext
-    shared_mime_info soprano ];
+    qimageblitz qjson shared_mime_info soprano ];
 
   meta = {
     description = "Free and open source video editor";
diff --git a/pkgs/applications/video/kdenlive/kdenlive-newmlt.patch b/pkgs/applications/video/kdenlive/kdenlive-newmlt.patch
new file mode 100644
index 000000000000..b3a772a7ac6e
--- /dev/null
+++ b/pkgs/applications/video/kdenlive/kdenlive-newmlt.patch
@@ -0,0 +1,70 @@
+From http://kdenlive.org/forum/cant-start-kdnlive-sdl-module-missing-mlt
+
+Kdenlive 0.8 tries to detect mlt by reading from stderr, but between
+mlt 0.7.2 and 0.7.4 mlt this has changed from stderr to stdout.
+===================================================================
+--- kdenlive-0.8/src.orig/wizard.cpp	2011-04-26 21:44:22.000000000 +0200
++++ kdenlive-0.8/src/wizard.cpp	2011-07-21 18:22:18.470831892 +0200
+@@ -214,7 +214,7 @@
+         button(QWizard::NextButton)->setEnabled(false);
+     } else {
+         checkProcess.waitForFinished();
+-        QByteArray result = checkProcess.readAllStandardError();
++        QByteArray result = checkProcess.readAllStandardOutput();
+
+         // Check MLT avformat module
+         QTreeWidgetItem *avformatItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Avformat module (FFmpeg)"));
+@@ -246,7 +246,7 @@
+                     kDebug() << "// Error querying MLT's version";
+                 } else {
+                     checkProcess.waitForFinished();
+-                    mltVersion = checkProcess.readAllStandardError();
++                    mltVersion = checkProcess.readAllStandardOutput();
+                     mltVersion = mltVersion.section('\n', 0, 0).simplified();
+                     mltVersion = mltVersion.section(' ', -1).simplified();
+                     version = 1000 * mltVersion.section('.', 0, 0).toInt() + 100 * mltVersion.section('.', 1, 1).toInt() + mltVersion.section('.', 2, 2).toInt();
+@@ -275,7 +275,7 @@
+                     kDebug() << "// Error parsing MLT's avformat codecs";
+                 } else {
+                     checkProcess2.waitForFinished();
+-                    QByteArray codecList = checkProcess2.readAllStandardError();
++                    QByteArray codecList = checkProcess2.readAllStandardOutput();
+                     QString acodecList(codecList);
+                     QStringList result;
+                     QStringList alist = acodecList.split('\n', QString::SkipEmptyParts);
+@@ -292,7 +292,7 @@
+                     kDebug() << "// Error parsing MLT's avformat codecs";
+                 } else {
+                     checkProcess2.waitForFinished();
+-                    QByteArray codecList = checkProcess2.readAllStandardError();
++                    QByteArray codecList = checkProcess2.readAllStandardOutput();
+                     QString vcodecList(codecList);
+                     QStringList result;
+                     QStringList vlist = vcodecList.split('\n', QString::SkipEmptyParts);
+@@ -309,7 +309,7 @@
+                     kDebug() << "// Error parsing MLT's avformat codecs";
+                 } else {
+                     checkProcess2.waitForFinished();
+-                    QByteArray codecList = checkProcess2.readAllStandardError();
++                    QByteArray codecList = checkProcess2.readAllStandardOutput();
+                     QString vcodecList(codecList);
+                     QStringList result;
+                     QStringList vlist = vcodecList.split('\n', QString::SkipEmptyParts);
+@@ -606,7 +606,7 @@
+
+     checkProcess.waitForFinished();
+
+-    QByteArray result = checkProcess.readAllStandardError();
++    QByteArray result = checkProcess.readAllStandardOutput();
+     if (!result.contains("- avformat")) errorMessage.append(i18n("MLT's avformat (FFMPEG) module not found. Please check your FFMPEG and MLT install. Kdenlive will not work until this issue is fixed.") + "\n");*/
+
+     QProcess checkProcess2;
+@@ -616,7 +616,7 @@
+
+     checkProcess2.waitForFinished();
+
+-    QByteArray result = checkProcess2.readAllStandardError();
++    QByteArray result = checkProcess2.readAllStandardOutput();
+     if (!result.contains("sdl") || !result.contains("sdl_preview")) errorMessage.append(i18n("MLT's SDL module not found. Please check your MLT install. Kdenlive will not work until this issue is fixed.") + '\n');
+
+     if (!errorMessage.isEmpty()) {
diff --git a/pkgs/applications/video/kino/default.nix b/pkgs/applications/video/kino/default.nix
index cac769d60de3..696c1e4738c3 100644
--- a/pkgs/applications/video/kino/default.nix
+++ b/pkgs/applications/video/kino/default.nix
@@ -50,21 +50,23 @@
 #AMR-WB float support      no
 #AMR-WB IF2 support        no
 
+{ stdenv, fetchurl, gtk, libglade, libxml2, libraw1394, libsamplerate, libdv
+, pkgconfig, perl, perlXMLParser, libavc1394, libiec61883, libXv, gettext
+, libX11, glib, cairo, intltool, ffmpeg
+}:
 
-args: with args;
 stdenv.mkDerivation {
-  name = "kino-1.2.0";
-
-  phases = "unpackPhase configurePhase buildPhase installPhase";
+  name = "kino-1.3.4";
 
   src = fetchurl {
-    url = http://downloads.sourceforge.net/kino/kino-1.2.0.tar.gz;
-    sha256 = "15q1qmii5a2zbrrrg8iba2d1rjzaisa75zvxjhrs86jwglpn4lp9";
+    url = http://downloads.sourceforge.net/kino/kino-1.3.4.tar.gz;
+    sha256 = "020s05k0ma83rq2kfs8x474pqicaqp9spar81qc816ddfrnh8k8i";
   };
 
   buildInputs = [ gtk libglade libxml2 libraw1394 libsamplerate libdv 
-      pkgconfig perl perlXMLParser libavc1394 libiec61883 x11 libXv gettext libX11 glib cairo ]; # TODOoptional packages 
+      pkgconfig perl perlXMLParser libavc1394 libiec61883 intltool libXv gettext libX11 glib cairo ffmpeg ]; # TODOoptional packages 
 
+  configureFlags = "--enable-local-ffmpeg=no";
   #preConfigure = "
   #  grep 11 env-vars
   #  ex
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
new file mode 100644
index 000000000000..7355266b9349
--- /dev/null
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl
+, libmatroska
+, flac
+, libvorbis
+, file
+, boost
+, lzo
+, xdg_utils
+, expat
+, wxGTK
+, zlib
+, ruby
+, gettext
+}:
+
+stdenv.mkDerivation rec {
+  name = "mkvtoolnix-4.4.0";
+
+  src = fetchurl {
+    url = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${name}.tar.bz2";
+    sha256 = "0apgmah1d4dh5x1phr4n5vgwmy0w1nym9pydzh4kdgcs167l8n6l";
+  };
+
+  buildInputs = [ libmatroska flac libvorbis file boost lzo xdg_utils expat wxGTK zlib ruby gettext ];
+
+  configureFlags = "--with-boost-libdir=${boost}/lib";
+  buildPhase = ''
+    ruby ./drake
+  '';
+
+  installPhase = ''
+    ruby ./drake install
+  '';
+
+  meta = {
+    description = "Cross-platform tools for Matroska";
+    homepage = http://www.bunkus.org/videotools/mkvtoolnix/;
+  };
+}
+
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 21a2313ce16b..ce7b233fdd20 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -1,32 +1,39 @@
 { stdenv, fetchurl, perl, xlibs, libdvdnav
-, zlib, a52dec, libmad, faad2, ffmpeg, alsa
+, zlib, a52dec, libmad, faad2, ffmpeg, alsaLib
 , pkgconfig, dbus, hal, fribidi, qt4, freefont_ttf
 , libvorbis, libtheora, speex, lua, libgcrypt, libupnp
+, libcaca, pulseaudio, flac, schroedinger, libxml2, librsvg
+, mpeg2dec, udev, gnutls, avahi, libcddb, jackaudio, SDL, SDL_image
+, libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, liboggz
+, libass, libva
 }:
 
-stdenv.mkDerivation {
-  name = "vlc-1.1.0";
+stdenv.mkDerivation rec {
+  name = "vlc-${version}";
+  version = "1.1.11";
+
+  patchPhase = ''sed -e "s@/bin/echo@echo@g" -i configure'';
 
   src = fetchurl {
-    url = http://download.videolan.org/pub/videolan/vlc/1.1.0/vlc-1.1.0.tar.bz2;
-    sha256 = "1j7icg7a2lr99kpc3sjjdp3z7128y6afnvxsafxlnih0qif2ryx9";
+    url = "mirror://sourceforge/vlc/${name}.tar.bz2";
+    sha256 = "1jz1yklvh5apy2ygqwnyq61mhg09h0fn32hdygxfsaxq12z609b8";
   };
 
   buildInputs = [
-    perl xlibs.xlibs xlibs.libXv zlib a52dec libmad faad2 ffmpeg
-    alsa libdvdnav libdvdnav.libdvdread pkgconfig dbus hal fribidi qt4
-    libvorbis libtheora speex lua libgcrypt libupnp
-  ];
+    perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
+    pkgconfig dbus hal fribidi qt4 libvorbis libtheora speex lua libgcrypt
+    libupnp libcaca pulseaudio flac schroedinger libxml2 librsvg mpeg2dec
+    udev gnutls avahi libcddb jackaudio SDL SDL_image libmtp unzip taglib
+    libkate libtiger libv4l samba liboggz libass
+  ]
+  ++ (with xlibs; [ xlibs.xlibs libXv libXvMC libXpm xcbutil libva ]);
 
   configureFlags = [ "--enable-alsa"
     "--disable-glx"
     "--disable-remoteosd"
-    "--enable-faad"
-    "--enable-theora"
-    "--enable-vorbis"
-    "--enable-speex"
     "--disable-dbus"
     "--disable-dbus-control"
+    "--with-kde-solid=$out/share/apps/solid/actions"
   ];
 
   preBuild = ''
diff --git a/pkgs/applications/virtualization/nova/client.nix b/pkgs/applications/virtualization/nova/client.nix
new file mode 100644
index 000000000000..84858c416c88
--- /dev/null
+++ b/pkgs/applications/virtualization/nova/client.nix
@@ -0,0 +1,20 @@
+{ fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "novaclient-2.4.3";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://pypi.python.org/packages/source/p/python-novaclient/python-${name}.tar.gz";
+    md5 = "c4be4adf371d1a84ce1581af365a53d0";
+  };
+
+  pythonPath = [ pythonPackages.prettytable pythonPackages.argparse pythonPackages.httplib2 pythonPackages.ssl ];
+
+  buildInputs = [ pythonPackages.mock pythonPackages.nose ];
+
+  meta = {
+    homepage = https://github.com/rackspace/python-novaclient;
+    description = "Client library and command line tool for the OpenStack Nova API";
+  };
+}
diff --git a/pkgs/applications/virtualization/nova/convert.patch b/pkgs/applications/virtualization/nova/convert.patch
new file mode 100644
index 000000000000..f11c9a7fc4f2
--- /dev/null
+++ b/pkgs/applications/virtualization/nova/convert.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' nova-2011.2-orig//bin/nova-manage nova-2011.2//bin/nova-manage
+--- nova-2011.2-orig//bin/nova-manage	2011-04-15 04:57:52.000000000 +0200
++++ nova-2011.2//bin/nova-manage	2011-06-09 18:28:39.063299654 +0200
+@@ -1009,7 +1009,7 @@
+         if (FLAGS.image_service == 'nova.image.local.LocalImageService'
+             and directory == os.path.abspath(FLAGS.images_path)):
+             new_dir = "%s_bak" % directory
+-            os.move(directory, new_dir)
++            os.rename(directory, new_dir)
+             os.mkdir(directory)
+             directory = new_dir
+         for fn in glob.glob("%s/*/info.json" % directory):
diff --git a/pkgs/applications/virtualization/nova/default.nix b/pkgs/applications/virtualization/nova/default.nix
new file mode 100644
index 000000000000..a9a36ffca4fe
--- /dev/null
+++ b/pkgs/applications/virtualization/nova/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl, novaclient }:
+
+with stdenv.lib;
+
+let version = "2011.2"; in
+
+stdenv.mkDerivation rec {
+  name = "nova-${version}";
+
+  src = fetchurl {
+    url = "http://launchpad.net/nova/cactus/${version}/+download/nova-${version}.tar.gz";
+    sha256 = "1s2w0rm332y9x34ngjz8sys9sbldg857rx9d6r3nb1ik979fx8p7";
+  };
+
+  patches =
+    [ ./convert.patch ];
+
+  pythonPath = with pythonPackages;
+    [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes
+      paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
+      distutils_extra simplejson readline glance cheetah lockfile httplib2
+      # !!! should libvirt be a build-time dependency?  Note that
+      # libxml2Python is a dependency of libvirt.py. 
+      libvirt libxml2Python
+      novaclient
+    ];
+
+  buildInputs =
+    [ pythonPackages.python 
+      pythonPackages.wrapPython
+      pythonPackages.mox
+      intltool
+    ] ++ pythonPath;
+
+  PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
+
+  preConfigure =
+    ''
+      # Set the built-in state location to something sensible.
+      sed -i nova/flags.py \
+        -e "/DEFINE.*'state_path'/ s|../|/var/lib/nova|"
+
+      substituteInPlace nova/virt/images.py --replace /usr/bin/curl ${curl}/bin/curl
+
+      substituteInPlace nova/api/ec2/cloud.py \
+        --replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh
+    '';
+  
+  buildPhase = "python setup.py build";
+
+  installPhase =
+    ''    
+      p=$(toPythonPath $out)
+      export PYTHONPATH=$p:$PYTHONPATH
+      mkdir -p $p
+      python setup.py install --prefix=$out
+
+      # Nova doesn't like to be called ".nova-foo-wrapped" because it
+      # computes some stuff from its own argv[0].  So put the wrapped
+      # programs in $out/libexec under their original names.
+      mkdir -p $out/libexec/nova
+      
+      wrapProgram() {
+          local prog="$1"
+          local hidden=$out/libexec/nova/$(basename "$prog")
+          mv $prog $hidden
+          makeWrapper $hidden $prog "$@"
+      }
+      
+      wrapPythonPrograms
+
+      cp -prvd etc $out/etc
+
+      # Nova makes some weird assumptions about where to find its own
+      # programs relative to the Python directory.
+      ln -sfn $out/bin $out/lib/${pythonPackages.python.libPrefix}/site-packages/bin
+
+      # Install the certificate generation script.
+      cp nova/CA/genrootca.sh $out/libexec/nova/
+      cp nova/CA/openssl.cnf.tmpl $out/libexec/nova/
+
+      # Allow nova-manage etc. to find the proper configuration file.
+      ln -s /etc/nova/nova.conf $out/libexec/nova/nova.conf
+    '';
+
+  doCheck = false; # !!! fix
+
+  checkPhase = "python setup.py test";
+    
+  meta = {
+    homepage = http://nova.openstack.org/;
+    description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller";
+  };
+}
diff --git a/pkgs/applications/virtualization/qemu/0.13.nix b/pkgs/applications/virtualization/qemu/0.13.nix
index 45961f950cf8..e1b636749696 100644
--- a/pkgs/applications/virtualization/qemu/0.13.nix
+++ b/pkgs/applications/virtualization/qemu/0.13.nix
@@ -1,15 +1,15 @@
-{stdenv, fetchurl, SDL, zlib, which}:
+{ stdenv, fetchurl, SDL, zlib, which, ncurses }:
 
 stdenv.mkDerivation rec {
   name = "qemu-0.13.0";
 
   src = fetchurl {
-    url = "http://download.savannah.gnu.org/releases/qemu/${name}.tar.gz";
+    url = "mirror://savannah/releases/qemu/${name}.tar.gz";
     sha256 = "0xyqbwy78218ja6r9ya5p37j8hcd81l4cpw3ghvnxsjwn18mhvqy";
   };
-  
-  buildInputs = [SDL zlib which];
-  
+
+  buildInputs = [ SDL zlib which ncurses ];
+
   meta = {
     description = "QEmu processor emulator";
     license = "GPLv2+";
diff --git a/pkgs/applications/virtualization/virt-viewer/default.nix b/pkgs/applications/virtualization/virt-viewer/default.nix
new file mode 100644
index 000000000000..90e92a3e68de
--- /dev/null
+++ b/pkgs/applications/virtualization/virt-viewer/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , gnome, gtk, glib, libxml2, pkgconfig, libvirt, gtkvnc, cyrus_sasl, libtasn1
+  , gnupg, libgcrypt, perl
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["gnome"];
+
+  buildInputs = (map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames)))
+    ++ [gnome.libglade];
+  sourceInfo = rec {
+    baseName="virt-viewer";
+    version="0.2.0";
+    name="${baseName}-${version}";
+    url="http://virt-manager.org/download/sources/${baseName}/${name}.tar.gz";
+    hash="0lhkmp4kn0s2z8241lqf2fdi55jg9iclr5hjw3m4wzaznpiajwlp";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A viewer for remote virtual machines";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://virt-manager.org/download.html";
+    };
+  };
+}) x
+
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 5d89d33a81b6..0cb4999bce64 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -1,31 +1,36 @@
 { stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
 , libXcursor, qt4, libIDL, SDL, hal, libcap, zlib, libpng, glib, kernel
 , python, which, alsaLib, curl, gawk
+, xorriso, makeself, perl, jdk
 }:
 
+let version = "4.1.0"; in
+
 stdenv.mkDerivation {
-  name = "virtualbox-3.2.8-${kernel.version}";
+  name = "virtualbox-${version}-${kernel.version}";
 
   src = fetchurl {
-    url = http://download.virtualbox.org/virtualbox/3.2.8/VirtualBox-3.2.8-OSE.tar.bz2;
-    sha256 = "00qvgaqg4gsabrc0rba5rh0jxqrjzk2vn6qbkc6nlxvngha95klh";
+    url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
+    sha256 = "1pi066xnjgr3fl42i1vc1pbwic9l4m1k6mzs4ip41fz99w59xfzp";
   };
 
-  buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL hal libcap glib kernel python alsaLib curl pam];
+  buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL hal libcap glib kernel python alsaLib curl pam xorriso makeself perl jdk ];
 
   patchPhase = "
     set -x
     MODULES_BUILD_DIR=`echo ${kernel}/lib/modules/*/build`
     sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \\
+        -e 's@MKISOFS --version@MKISOFS -version@' \\
         -i configure
     ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 
     ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 
+    find . -type f | xargs sed 's/depmod -a/true/' -i
     export USER=nix
     set +x
   ";
 
   configurePhase = ''
-    ./configure --with-qt4-dir=${qt4} --disable-python --disable-pulse --disable-hardening
+    ./configure --with-qt4-dir=${qt4} --disable-python --disable-pulse --disable-hardening --with-mkisofs=${xorriso}/bin/xorrisofs
     sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
         -i AutoConfig.kmk
     sed -e 's@arch/x86/@@' \
@@ -34,7 +39,10 @@ stdenv.mkDerivation {
     cat >> AutoConfig.kmk << END_PATHS
     VBOX_PATH_APP_PRIVATE := $out
     VBOX_PATH_APP_DOCS := $out/doc
+    VBOX_JAVA_HOME := ${jdk}
     END_PATHS
+    echo "VBOX_WITH_DOCS :=" >> LocalConfig.kmk
+    echo "VBOX_WITH_WARNINGS_AS_ERRORS :=" >> LocalConfig.kmk
   '';
 
   buildPhase = ''
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index eb8a91551426..9dfe9c26c0de 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,11 +1,13 @@
 { stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
 , libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor}:
 
+let version = "4.1.0"; in
+
 stdenv.mkDerivation {
-  name = "VirtualBox-GuestAdditions-3.2.8";
+  name = "VirtualBox-GuestAdditions-${version}";
   src = fetchurl {
-    url = http://download.virtualbox.org/virtualbox/3.2.8/VBoxGuestAdditions_3.2.8.iso;
-    sha256 = "1pyfgrcdmw6zf3yxgzcd8c5qzqqn62bz4085ka453gfmi9d65lys";
+    url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
+    sha256 = "0azj08l0457cjl5v2ddgb5kz8gblsi7cgjgdmyiszvlqpyfbh98w";
   };
   KERN_DIR = "${kernel}/lib/modules/*/build";
   buildInputs = [ patchelf cdrkit makeWrapper ];
@@ -17,22 +19,25 @@ stdenv.mkDerivation {
   '';
   
   buildCommand = ''
-    ${if stdenv.system == "i686-linux" then ''
-        isoinfo -J -i $src -x /VBoxLinuxAdditions-x86.run > ./VBoxLinuxAdditions-x86.run
-        chmod 755 ./VBoxLinuxAdditions-x86.run
-        ./VBoxLinuxAdditions-x86.run --noexec --keep
-      ''
-      else if stdenv.system == "x86_64-linux" then ''
-        isoinfo -J -i $src -x /VBoxLinuxAdditions-amd64.run > ./VBoxLinuxAdditions-amd64.run
-        chmod 755 ./VBoxLinuxAdditions-amd64.run
-	./VBoxLinuxAdditions-amd64.run --noexec --keep
+    ${if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then ''
+        isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
+        chmod 755 ./VBoxLinuxAdditions.run
+	./VBoxLinuxAdditions.run --noexec --keep
       ''
       else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
     }
     
     # Unpack files
     cd install
-    tar xfvj VBoxGuestAdditions.tar.bz2
+    ${if stdenv.system == "i686-linux" then ''
+        tar xfvj VBoxGuestAdditions-x86.tar.bz2
+      ''
+      else if stdenv.system == "x86_64-linux" then ''
+        tar xfvj VBoxGuestAdditions-amd64.tar.bz2
+      ''
+      else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
+    }
+
     
     # Build kernel modules    
     cd src        
@@ -40,10 +45,11 @@ stdenv.mkDerivation {
     for i in *
     do
 	cd $i
-	sed -i -e "s/depmod/echo/g" Makefile
+	find . -type f | xargs sed 's/depmod -a/true/' -i
 	make
 	cd ..
     done
+
     cd ..
     
     # Change the interpreter for various binaries
@@ -99,8 +105,8 @@ stdenv.mkDerivation {
     
     # Install Xorg drivers
     ensureDir $out/lib/xorg/modules/{drivers,input}
-    install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_18.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
-    install -m 644 lib/VBoxGuestAdditions/vboxmouse_drv_18.so $out/lib/xorg/modules/input/vboxmouse_drv.so
+    install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_19.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
+    install -m 644 lib/VBoxGuestAdditions/vboxmouse_drv_19.so $out/lib/xorg/modules/input/vboxmouse_drv.so
     
     # Install kernel modules
     cd src
@@ -110,8 +116,8 @@ stdenv.mkDerivation {
         cd $i
 	kernelVersion=$(cd ${kernel}/lib/modules; ls)
 	export MODULE_DIR=$out/lib/modules/$kernelVersion/misc
-	sed -i -e "s|-o root||g" \
-	       -e "s|-g root||g" Makefile
+	find . -type f | xargs sed -i -e "s|-o root||g" \
+	                              -e "s|-g root||g"
 	make install
 	cd ..
     done    
diff --git a/pkgs/applications/virtualization/xen/default.nix b/pkgs/applications/virtualization/xen/default.nix
index 4c93a277e984..9b8cff7d9c65 100644
--- a/pkgs/applications/virtualization/xen/default.nix
+++ b/pkgs/applications/virtualization/xen/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, which, zlib, pkgconfig, SDL, openssl, python
+{ stdenv, fetchurl, which, zlib, pkgconfig, SDL, openssl
 , libuuid, gettext, ncurses, dev86, iasl, pciutils, bzip2, xz
-, lvm2, utillinux, procps, texinfo, perl }:
+, lvm2, utillinux, procps, texinfo, perl, pythonPackages }:
 
 with stdenv.lib;
 
@@ -50,10 +50,13 @@ stdenv.mkDerivation {
     ];
 
   buildInputs =
-    [ which zlib pkgconfig SDL openssl python libuuid gettext ncurses
+    [ which zlib pkgconfig SDL openssl libuuid gettext ncurses
       dev86 iasl pciutils bzip2 xz texinfo perl
+      pythonPackages.python pythonPackages.wrapPython
     ];
 
+  pythonPath = [ pythonPackages.curses ];
+
   makeFlags = "PREFIX=$(out) CONFIG_DIR=/etc";
 
   buildFlags = "xen tools stubdom";
@@ -117,23 +120,12 @@ stdenv.mkDerivation {
 
   installPhase =
     ''
-      cp -prvd dist/install/nix/store/* $out
+      mkdir -p $out
+      cp -prvd dist/install/nix/store/*/* $out/
       cp -prvd dist/install/boot $out/boot
       cp -prvd dist/install/etc $out/etc
       cp -dR docs/man1 docs/man5 $out/share/man/
-    ''; # */
-
-  postFixup =
-    ''
-      # Set the Python search path in all Python scripts.
-      for fn in $(grep -l '#!.*python' $out/bin/* $out/sbin/*); do
-          sed -i "$fn" -e "1 a import sys\nsys.path = ['$out/lib/python2.6/site-packages'] + sys.path"
-      done
-
-      # Remove calls to `env'.
-      for fn in $(grep -l '#!.*/env.*python' $out/bin/* $out/sbin/*); do
-          sed -i "$fn" -e "1 s^/nix/store/.*/env.*python^${python}/bin/python^"
-      done
+      wrapPythonPrograms
     ''; # */
 
   meta = {
diff --git a/pkgs/applications/window-managers/awesome/cmake284.patch b/pkgs/applications/window-managers/awesome/cmake284.patch
new file mode 100644
index 000000000000..4af70227805f
--- /dev/null
+++ b/pkgs/applications/window-managers/awesome/cmake284.patch
@@ -0,0 +1,40 @@
+From 1aedd853fcaeeafadd24512f84e6e269f5db0b4e Mon Sep 17 00:00:00 2001
+From: Thomas Moschny <thomas.moschny@gmx.de>
+Date: Mon, 21 Feb 2011 17:58:04 +0100
+Subject: [PATCH] Normalize icon path names (fixes #869).
+
+The elements in ${icon_sources}, as returned by file(GLOB ...) contain
+double slashes, could be a bug in cmake. This causes building with
+cmake 2.8.4 to fail, due to dependency problems lateron.
+
+This patch works around the issue by normalizing all path names in
+${icon_sources} while appending them to ${ALL_ICONS}, thereby removing
+the double slashes.
+---
+ CMakeLists.txt |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 64be9b9..472bec2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -244,14 +244,15 @@ endif()
+ 
+ # {{{ Theme icons
+ file(GLOB icon_sources RELATIVE ${SOURCE_DIR} ${SOURCE_DIR}/themes/*/titlebar/*.png)
+-set(ALL_ICONS ${icon_sources})
+ 
+ foreach(icon ${icon_sources})
+     # Copy all icons to the build dir to simplify the following code.
+     # Source paths are interpreted relative to ${SOURCE_DIR}, target paths
+     # relative to ${BUILD_DIR}.
+     get_filename_component(icon_path ${icon} PATH)
++    get_filename_component(icon_name ${icon} NAME)
+     file(COPY ${icon} DESTINATION ${icon_path})
++    set(ALL_ICONS ${ALL_ICONS} "${icon_path}/${icon_name}")
+ endforeach()
+ 
+ macro(a_icon_convert match replacement input)
+-- 
+1.7.3.4
+
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index 4bc0610082b6..b94b350a8482 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -3,12 +3,16 @@
 , libstartup_notification, libev, asciidoc, xmlto, dbus, docbook_xsl
 , docbook_xml_dtd_45, libxslt, coreutils}:
 
+let
+  version = "3.4.9";
+in
+
 stdenv.mkDerivation rec {
-  name = "awesome-3.4.8";
+  name = "awesome-${version}";
  
   src = fetchurl {
-    url = http://awesome.naquadah.org/download/awesome-3.4.8.tar.xz;
-    sha256 = "1mrdk8q0kj1p7zp5mchr2zl3cnja4z4ir0wx3yz5y361py5bjy78";
+    url = "http://awesome.naquadah.org/download/awesome-${version}.tar.xz";
+    sha256 = "0382v482904xv295l0gvhwzc64b7631miiv8wyq7jxmwqf2vfbp7";
   };
  
   buildInputs = [ xz cmake gperf imagemagick pkgconfig lua glib cairo pango
@@ -18,13 +22,15 @@ stdenv.mkDerivation rec {
   # We use coreutils for 'env', that will allow then finding 'bash' or 'zsh' in
   # the awesome lua code. I prefered that instead of adding 'bash' or 'zsh' as
   # dependencies.
-  patchPhase = ''
+  prePatch = ''
     # Fix the tab completion (supporting bash or zsh)
     sed s,/usr/bin/env,${coreutils}/bin/env, -i lib/awful/completion.lua.in
     # Remove the 'root' PATH override (I don't know why they have that)
     sed /WHOAMI/d -i utils/awsetbg
   '';
 
+  patches = [ ./cmake284.patch ];
+
   # Somehow libev does not get into the rpath, although it should.
   # Something may be wrong in the gcc wrapper.
   preBuild = ''
@@ -38,5 +44,7 @@ stdenv.mkDerivation rec {
     homepage = http://awesome.naquadah.org/;
     description = "Highly configurable, dynamic window manager for X";
     license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/window-managers/compiz/core.nix b/pkgs/applications/window-managers/compiz/core.nix
index ef5279613d09..d4a5b79b7fb3 100644
--- a/pkgs/applications/window-managers/compiz/core.nix
+++ b/pkgs/applications/window-managers/compiz/core.nix
@@ -16,6 +16,9 @@ stdenv.mkDerivation {
       # directories to be overriden through $COMPIZ_PLUGINDIR and
       # $COMPIZ_METADATADIR, respectively.
       ./plugindir-core.patch
+
+      # Fix compilation with recent GTK versions.
+      ./gdk-deprecated.patch
     ];
 
   buildInputs =
diff --git a/pkgs/applications/window-managers/compiz/gdk-deprecated.patch b/pkgs/applications/window-managers/compiz/gdk-deprecated.patch
new file mode 100644
index 000000000000..d80a5514ee9d
--- /dev/null
+++ b/pkgs/applications/window-managers/compiz/gdk-deprecated.patch
@@ -0,0 +1,14 @@
+diff -ru -x '*~' compiz-0.8.6-orig//gtk/window-decorator/gtk-window-decorator.c compiz-0.8.6//gtk/window-decorator/gtk-window-decorator.c
+--- compiz-0.8.6-orig//gtk/window-decorator/gtk-window-decorator.c	2010-03-28 14:15:35.000000000 +0200
++++ compiz-0.8.6//gtk/window-decorator/gtk-window-decorator.c	2011-03-14 11:00:00.000000000 +0100
+@@ -31,10 +31,6 @@
+ #include <X11/extensions/Xrender.h>
+ #include <X11/Xregion.h>
+ 
+-#ifndef GDK_DISABLE_DEPRECATED
+-#define GDK_DISABLE_DEPRECATED
+-#endif
+-
+ #ifndef GTK_DISABLE_DEPRECATED
+ #define GTK_DISABLE_DEPRECATED
+ #endif
diff --git a/pkgs/applications/window-managers/dwm/default.nix b/pkgs/applications/window-managers/dwm/default.nix
index cca60332d06c..1427eec54f6c 100644
--- a/pkgs/applications/window-managers/dwm/default.nix
+++ b/pkgs/applications/window-managers/dwm/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libX11, libXinerama, patches ? []}:
 
 stdenv.mkDerivation rec {
-  name = "dwm-5.8.2";
+  name = "dwm-5.9";
  
   src = fetchurl {
     url = "http://dl.suckless.org/dwm/${name}.tar.gz";
-    sha256 = "0rlv72fls2k4s48a0mw7mxa05d4qdxgs8pqbkyqkpzz3jb3kn965";
+    sha256 = "0cp25zqgaqj5k1mlvgxnc5jqi252chqjc5v0fzpqbhrklaidbk9d";
   };
  
   buildInputs = [ libX11 libXinerama ];
diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix
index 02096cd6141f..632bc50c8690 100644
--- a/pkgs/applications/window-managers/icewm/default.nix
+++ b/pkgs/applications/window-managers/icewm/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, gettext, libjpeg, libtiff, libungif, libpng, imlib, xlibs, automake, pkgconfig,
-  gtk }:
+{ stdenv, fetchurl, gettext, libjpeg, libtiff, libungif, libpng, imlib
+, xlibs, automake, pkgconfig, gtk }:
 
 stdenv.mkDerivation rec {
   name = "icewm-1.3.6";
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
     sha256 = "1pr7rc10rddwvy4ncng4mf5fpxd1nqjsw34xba9ngsg32rg57b91";
   };
 
+  NIX_LDFLAGS = "-lfontconfig";
+
   # The fuloong2f is not supported by 1.3.6 still
   preConfigure = ''
     cp ${automake}/share/automake*/config.{sub,guess} .
diff --git a/pkgs/applications/window-managers/jwm/default.nix b/pkgs/applications/window-managers/jwm/default.nix
index e52cb91ec4bc..57e6ecf17492 100644
--- a/pkgs/applications/window-managers/jwm/default.nix
+++ b/pkgs/applications/window-managers/jwm/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, libX11, libXext, libXinerama, libXpm, libXft }:
+{ stdenv, fetchurl, libX11, libXext, libXinerama, libXpm, libXft, freetype,
+  fontconfig }:
 
 stdenv.mkDerivation {
   name = "jwm-2.0.1";
@@ -8,7 +9,13 @@ stdenv.mkDerivation {
      sha256 = "1ix5y00cmg3cyazl0adzgv49140zxaf2dpngyg1dyy4ma6ysdmnw";
   };
 
-  buildInputs = [ libX11 libXext libXinerama libXpm libXft ];
+  buildInputs = [ libX11 libXext libXinerama libXpm libXft freetype 
+    fontconfig ];
+
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2 "
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lXft -lfreetype -lfontconfig "
+  '';
 
   postInstall =
     ''
diff --git a/pkgs/applications/window-managers/ratpoison/default.nix b/pkgs/applications/window-managers/ratpoison/default.nix
index cec59ab6f6bf..77a998b9f74c 100644
--- a/pkgs/applications/window-managers/ratpoison/default.nix
+++ b/pkgs/applications/window-managers/ratpoison/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, libX11, inputproto, libXt, libXpm, libXft, fontconfig
-, libXtst, xextproto, readline, libXi, pkgconfig, autoconf, automake }:
+{ stdenv, fetchurl, libX11, inputproto, libXt, libXpm, libXft, fontconfig, freetype
+, libXtst, xextproto, readline, libXi, pkgconfig, perl, autoconf, automake }:
 
 stdenv.mkDerivation rec {
   name = "ratpoison-1.4.5";
@@ -16,13 +16,13 @@ stdenv.mkDerivation rec {
        })
     ];
 
-  preConfigure = "autoreconf -vf";
+  preConfigure = "autoreconf -vf";	# needed because of the patch above
 
+  NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2"; # urgh
+  
   buildInputs =
-    [ libX11 inputproto libXt
-      libXpm libXft fontconfig libXtst
-      xextproto readline libXi pkgconfig
-      autoconf automake  # needed because of the patch above
+    [ libX11 inputproto libXt libXpm libXft fontconfig freetype libXtst
+      xextproto readline libXi pkgconfig perl autoconf automake
     ];
 
   meta = {
@@ -46,8 +46,7 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.nongnu.org/ratpoison/;
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
-
diff --git a/pkgs/applications/window-managers/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix
new file mode 100644
index 000000000000..ce66f7d9bcc0
--- /dev/null
+++ b/pkgs/applications/window-managers/trayer/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, gdk_pixbuf, gtk, libXmu }:
+
+stdenv.mkDerivation rec {
+  name = "trayer-1.1.3";
+
+  buildInputs = [ pkgconfig gdk_pixbuf gtk libXmu ];
+
+  src = fetchurl {
+          url = "https://github.com/sargon/trayer-srg/tarball/${name}";
+          name = "${name}.tar.gz";
+          sha256 = "03be5ea47278ecdb6ffb1d3b5115a855a6eccd6aa6702b84e89ee047ddd76558";
+        };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = {
+    homepage = http://github.com/sargon/trayer-srg;
+
+    license = "bsd";
+
+    description = "A lightweight GTK2-based systray for UNIX desktop";
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/window-managers/xmonad/default.nix b/pkgs/applications/window-managers/xmonad/default.nix
index 52cfe1e9798d..76b9b37456e2 100644
--- a/pkgs/applications/window-managers/xmonad/default.nix
+++ b/pkgs/applications/window-managers/xmonad/default.nix
@@ -1,14 +1,21 @@
-{cabal, X11, mtl, xmessage}:
+{cabal, X11, mtl, xmessage, syb}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xmonad";
   name = "${self.fname}";
-  version = "0.9.1";
-  sha256 = "014201200e8a521ee3a0d8c0727392916a7549207b91064fb456f8c660609927";
-  propagatedBuildInputs = [X11 mtl];
+  version = "0.9.2";
+  sha256 = "07w5k3pqmybjn0zh2nr1glp69685xg2fhj3z9zxb37x5nzss7kdd";
+  noHaddock = true;
+  propagatedBuildInputs = [X11 mtl syb];
   meta = {
-    description = "xmonad is a tiling window manager for X";
-    homepage = http://xmonad.org/;
+    homepage = "http://xmonad.org";
+    description = "A tiling window manager";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 
   preConfigure = '' 
diff --git a/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix b/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
index 1c0619356e05..7ca5e2b17fd1 100644
--- a/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
@@ -1,12 +1,22 @@
-{cabal, xmonad, X11, utf8String, X11Xft}:
+{ cabal, extensibleExceptions, mtl, random, utf8String, X11, X11Xft
+, xmonad
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xmonad-contrib";
-  name = "${self.fname}";
-  version = "0.9.1";
-  sha256 = "b4ca1d71d12903be76187ce58898697086e7af3ef73468987cb7ef03b076ec47";
-  propagatedBuildInputs = [X11 xmonad utf8String X11Xft];
+  version = "0.9.2";
+  sha256 = "06hg5j4w8iz62wmyygq4c7xcbi9dxlhhh3dbic438cjk7c0w1h5p";
+  buildDepends = [
+    extensibleExceptions mtl random utf8String X11 X11Xft xmonad
+  ];
   meta = {
-    description = "a huge extension library for xmonad";
+    homepage = "http://xmonad.org/";
+    description = "Third party extensions for xmonad";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/applications/window-managers/xmonad/xmonad-extras.nix b/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
new file mode 100644
index 000000000000..6d9b2a420fbe
--- /dev/null
+++ b/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
@@ -0,0 +1,21 @@
+{cabal, xmonad, xmonadContrib, X11, utf8String, X11Xft,
+ parsec, split}:
+
+cabal.mkDerivation (self: {
+  pname = "xmonad-extras";
+  version = "0.9.2";
+  sha256 = "54b41a4c59ff3d68b3a214d727fb5675fa7c1b90090d99e58ecae62b3dfdd701";
+  propagatedBuildInputs =
+    [X11 xmonad xmonadContrib utf8String X11Xft parsec split];
+  noHaddock = true;
+  meta = {
+    homepage = "http://projects.haskell.org/xmonad-extras";
+    description = "Third party extensions for xmonad with wacky dependencies";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/build-support/builder-defs/builder-defs.nix b/pkgs/build-support/builder-defs/builder-defs.nix
index c3f7d384845c..58c439e4316e 100644
--- a/pkgs/build-support/builder-defs/builder-defs.nix
+++ b/pkgs/build-support/builder-defs/builder-defs.nix
@@ -26,6 +26,7 @@ let inherit (builtins) head tail trace; in
                 else if (hasSuffixHack ".zip" s) || (hasSuffixHack ".ZIP" s) then "zip"
                 else if (hasSuffixHack "-cvs-export" s) then "cvs-dir"
                 else if (hasSuffixHack ".nar.bz2" s) then "narbz2"
+                else if (hasSuffixHack ".rpm" s) then "rpm"
 
                 # Mostly for manually specified directories..
                 else if (hasSuffixHack "/" s) then "dir"
@@ -234,7 +235,12 @@ let inherit (builtins) head tail trace; in
         " else if (archiveType s) == "narbz2" then "
                 bzip2 <${s} | nix-store --restore \$PWD/\$(basename ${s} .nar.bz2)
                 cd \$(basename ${s} .nar.bz2)
-        " else if (archiveType s) == "plain-bz2" then "
+        " else if (archiveType s) == "rpm" then ''
+                rpm2cpio ${s} > ${s}.cpio
+                cpio -iv < ${s}.cpio
+		test -f *.tar.* && tar -xvf *.tar.*
+		test -d */ && cd */
+        '' else if (archiveType s) == "plain-bz2" then "
                 mkdir \$PWD/\$(basename ${s} .bz2)
                 NAME=\$(basename ${s} .bz2)
                 bzip2 -d <${s} > \$PWD/\$(basename ${s} .bz2)/\${NAME#*-}
@@ -329,6 +335,8 @@ let inherit (builtins) head tail trace; in
 
         doDump = n: noDepEntry "echo Dump number ${n}; set";
 
+	saveEnv = noDepEntry ''export > $TMP/env-vars'';
+
 	doDumpBuildInputs = noDepEntry (''
 	  echo "${toString realBuildInputs}"
 	'');
@@ -384,14 +392,31 @@ let inherit (builtins) head tail trace; in
                 echo '${toString (attrByPath ["propagatedBuildInputs"] [] args)}' >\$out/nix-support/propagated-build-inputs
         ") ["minInit" "defEnsureDir"];
 
-        cmakeFlags = "";
+        cmakeFlags = attrByPath ["cmakeFlags"] [] args;
+
+        cmakeRPathFlag = if (attrByPath ["cmakeSkipRpath "] true args) then " -DCMAKE_SKIP_BUILD_RPATH=ON " else "";
+
+        cmakeBuildDir = attrByPath ["cmakeBuildDir"] "build" args;
 
 	doCmake = fullDepEntry (''
-          mkdir build
-	  cd build
-	  cmake -D CMAKE_INSTALL_PREFIX="$out" ${toString cmakeFlags} ..
+          mkdir ${cmakeBuildDir}
+	  cd ${cmakeBuildDir}
+	  cmake -D CMAKE_INSTALL_PREFIX="$out" ${cmakeRPathFlag}${toString cmakeFlags} ..
 	'') ["minInit" "addInputs" "doUnpack"];
 
+	doScons = fullDepEntry (''
+		ensureDir $out
+		${if (attrByPath ["sconsCleanEnv"] false args)
+		 then ""
+		 else ''
+                   sed -e '1iimport os' -i SConstruct
+                   sed -e 's/env *= *Environment *.*/&; env['"'"'ENV'"'"']=os.environ;/' -i SConstruct
+		 ''
+		}
+		scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out 
+		scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out install
+	'') ["minInit" "doUnpack" "addInputs" "defEnsureDir"];
+
         /*debug = x:(trace x x);
         debugX = x:(trace (toXML x) x);*/
 
diff --git a/pkgs/build-support/builder-defs/template-auto-callable.nix b/pkgs/build-support/builder-defs/template-auto-callable.nix
index 1ff7ed0a96c4..a94a96fe5388 100644
--- a/pkgs/build-support/builder-defs/template-auto-callable.nix
+++ b/pkgs/build-support/builder-defs/template-auto-callable.nix
@@ -37,7 +37,7 @@ rec {
     ];
     platforms = with a.lib.platforms;
       (abort "Specify platforms");
-    license = "${abort ''Specify license''}";
+    license = a.lib.licenses.(abort "Specify license");
   };
   passthru = {
     updateInfo = {
diff --git a/pkgs/build-support/fetchbzr/nix-prefetch-bzr b/pkgs/build-support/fetchbzr/nix-prefetch-bzr
new file mode 100755
index 000000000000..167892fbb794
--- /dev/null
+++ b/pkgs/build-support/fetchbzr/nix-prefetch-bzr
@@ -0,0 +1,79 @@
+#! /bin/sh -e
+
+url=$1
+rev=$2
+expHash=$3
+
+hashType=$NIX_HASH_ALGO
+if test -z "$hashType"; then
+    hashType=sha256
+fi
+if test -z "$hashFormat"; then
+    hashFormat=--base32
+fi
+
+if test -z "$url"; then
+    echo "syntax: nix-prefetch-bzr URL [REVISION [EXPECTED-HASH]]" >&2
+    exit 1
+fi
+
+revarg="-r $rev"
+test -n "$rev" || revarg=""
+
+repoName=$(echo $url | sed '
+  s,.*/\([^/]\+\)/trunk/*$,\1,;t
+  s,.*/\([^/]\+\)/branches/\([^/]\+\)/*$,\1-\2,;t
+  s,.*/\([^/]\+\)/tags/\([^/]\+\)/*$,\1-\2,;t
+  s,.*/\([^/]\+\)/*$,\1,;t
+')
+dstFile=$repoName-r$rev
+test -n "$rev" || dstFile=$repoName
+
+# If the hash was given, a file with that hash may already be in the
+# store.
+if test -n "$expHash"; then
+    finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" $dstFile)
+    if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
+        finalPath=
+    fi
+    hash=$expHash
+fi
+
+
+# If we don't know the hash or a path with that hash doesn't exist,
+# download the file and add it to the store.
+if test -z "$finalPath"; then
+    tmpPath=/tmp/bzr-checkout-tmp-$$
+    tmpFile=$tmpPath/$dstFile
+    mkdir $tmpPath
+
+    trap "rm -rf $tmpPath" EXIT
+
+    # Perform the checkout.
+    if test "$NIX_PREFETCH_BZR_LEAVE_DOT_BZR" != 1
+    then
+        bzr export $revarg "$tmpFile" "$url" >&2
+    else
+        bzr checkout --lightweight $revarg "$url" "$tmpFile" >&2
+    fi
+
+    # Compute the hash.
+    hash=$(nix-hash --type $hashType $hashFormat $tmpFile)
+    if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
+
+    # Add the downloaded file to the Nix store.
+    finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile)
+
+    if test -n "$expHash" -a "$expHash" != "$hash"; then
+        echo "hash mismatch for URL \`$url'"
+        exit 1
+    fi
+fi
+
+if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
+
+echo $hash
+
+if test -n "$PRINT_PATH"; then
+    echo $finalPath
+fi
diff --git a/pkgs/build-support/fetchfile/default.nix b/pkgs/build-support/fetchfile/default.nix
index 7c811df59c5d..bdddfab2b4d6 100644
--- a/pkgs/build-support/fetchfile/default.nix
+++ b/pkgs/build-support/fetchfile/default.nix
@@ -1,5 +1,5 @@
 {stdenv}: {pathname, md5}: stdenv.mkDerivation {
-  name = baseNameOf (toString url);
+  name = baseNameOf (toString pathname);
   builder = ./builder.sh;
   pathname = pathname;
   md5 = md5;
diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh
index 794b690341e3..5c7d92698cc3 100644
--- a/pkgs/build-support/fetchgit/builder.sh
+++ b/pkgs/build-support/fetchgit/builder.sh
@@ -1,24 +1,11 @@
+# tested so far with:
+# - no revision specified and remote has a HEAD which is used
+# - revision specified and remote has a HEAD
+# - revision specified and remote without HEAD
 source $stdenv/setup
 
 header "exporting $url (rev $rev) into $out"
 
-git clone "$url" $out
-if test -n "$rev"; then
-  cd $out
-
-  # Track all remote branches so that revisions like
-  # `t/foo@{2010-05-12}' are correctly resolved.  Failing to do that,
-  # Git bails out with an "invalid reference" error.
-  for branch in $(git branch -rl | grep -v ' origin/master$')
-  do
-    git branch --track "$(echo $branch | sed -es,origin/,,g)" "$branch"
-  done
-
-  git checkout "$rev" --
-fi
-
-if test -z "$leaveDotGit"; then
-    find $out -name .git\* | xargs rm -rf
-fi
+$fetcher --builder --url "$url" --out "$out" --rev "$rev" ${leaveDotGit:+--leave-dotGit}
 
 stopNest
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index a0ad57ea3064..714740ee1bfe 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -26,6 +26,7 @@
 stdenv.mkDerivation {
   name = "git-export";
   builder = ./builder.sh;
+  fetcher = ./nix-prefetch-git;
   buildInputs = [git];
 
   outputHashAlgo = if sha256 == "" then "md5" else "sha256";
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 63d756c5807c..7082c86a2d2a 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -3,26 +3,64 @@
 url=$1
 rev=$2
 expHash=$3
-
 hashType=$NIX_HASH_ALGO
-if test -z "$hashType"; then
-    hashType=sha256
+deepClone=$NIX_PREFETCH_GIT_DEEP_CLONE
+leaveDotGit=$NIX_PREFETCH_GIT_LEAVE_DOT_GIT
+builder=
+
+if test -n "$deepClone"; then
+  deepClone=true
+else
+  deepClone=false
+fi
+
+if test "$leaveDotGit" != 1; then
+  leaveDotGit=
+else
+  leaveDotGit=true
 fi
 
+
+argi=0
+argfun=""
+for arg; do
+  if test -z "$argfun"; then
+    case $arg in
+      --out) argfun=set_out;;
+      --url) argfun=set_url;;
+      --rev) argfun=set_rev;;
+      --hash) argfun=set_hashType;;
+      --deepClone) deepClone=true;;
+      --no-deepClone) deepClone=false;;
+      --leave-dotGit) leaveDotGit=true;;
+      --keep-dotGit) leaveDotGit=;;
+      --builder) builder=true;;
+      *)
+          argi=$(($argi + 1))
+          case $argi in
+              1) url=$arg;;
+              2) rev=$arg;;
+              3) expHash=$arg;;
+              *) exit 1;;
+          esac
+          ;;
+    esac
+  else
+    case $argfun in
+      set_*)
+        var=$(echo $argfun | sed 's,^set_,,')
+        eval $var=$arg
+        ;;
+    esac
+    argfun=""
+  fi
+done
+
 if test -z "$url"; then
     echo "syntax: nix-prefetch-git URL [REVISION [EXPECTED-HASH]]" >&2
     exit 1
 fi
 
-# If the hash was given, a file with that hash may already be in the
-# store.
-if test -n "$expHash"; then
-    finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" git-export)
-    if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
-        finalPath=
-    fi
-    hash=$expHash
-fi
 
 init_remote(){
     local url=$1;
@@ -51,8 +89,8 @@ checkout_hash(){
         hash=$(hash_from_ref $ref);
     fi;
 
-    git fetch origin || return 1
-    git checkout $hash || return 1
+    git fetch ${builder:+--progress} origin || return 1
+    git checkout -b fetchgit $hash || return 1
 }
 
 # Fetch only a branch/tag and checkout it.
@@ -60,7 +98,7 @@ checkout_ref(){
     local hash="$1";
     local ref="$2";
 
-    if test -n "$NIX_PREFETCH_GIT_DEEP_CLONE"; then
+    if "$deepClone"; then
 	# The caller explicitly asked for a deep clone.  Deep clones
 	# allow "git describe" and similar tools to work.  See
 	# http://thread.gmane.org/gmane.linux.distributions.nixos/3569
@@ -74,8 +112,8 @@ checkout_ref(){
 
     if test -n "$ref"; then
         # --depth option is ignored on http repository.
-        git fetch --depth 1 origin +"$ref" || return 1
-        git checkout FETCH_HEAD || return 1
+        git fetch ${builder:+--progress} --depth 1 origin +"$ref" || return 1
+        git checkout -b fetchgit FETCH_HEAD || return 1
     else
         return 1;
     fi;
@@ -120,59 +158,97 @@ clone(){
     # Checkout linked sources.
     init_submodules;
 
+    if [ -z "$builder" -a -f .topdeps ]; then
+	if tg help 2>&1 > /dev/null
+	then
+	    echo "populating TopGit branches..."
+	    tg remote --populate origin
+	else
+	    echo "WARNING: would populate TopGit branches but TopGit is not available" >&2
+	    echo "WARNING: install TopGit to fix the problem" >&2
+	fi
+    fi
+
     cd $top;
 }
 
-# If we don't know the hash or a path with that hash doesn't exist,
-# download the file and add it to the store.
-if test -z "$finalPath"; then
-
-    tmpPath=/tmp/git-checkout-tmp-$$
-    tmpFile=$tmpPath/git-export
-    mkdir $tmpPath $tmpFile
-
-    trap "rm -rf $tmpPath" EXIT
+clone_user_rev() {
+    local dir="$1"
+    local url="$2"
+    local rev="$3"
 
     # Perform the checkout.
     case "$rev" in
         HEAD|refs/*)
-            clone "$tmpFile" "$url" "" "$rev" 1>&2;;
+            clone "$dir" "$url" "" "$rev" 1>&2;;
         [0-9a-f]*)
             if test -z "$(echo $rev | tr -d 0123456789abcdef)"; then
-                clone "$tmpFile" "$url" "$rev" "" 1>&2;
+                clone "$dir" "$url" "$rev" "" 1>&2;
             else
                 echo 1>&2 "Bad commit hash or bad reference.";
                 exit 1;
             fi;;
         "")
-            clone "$tmpFile" "$url" "" "HEAD" 1>&2;;
+            clone "$dir" "$url" "" "HEAD" 1>&2;;
     esac
 
     # Allow doing additional processing before .git removal
     eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK"
-    if test "$NIX_PREFETCH_GIT_LEAVE_DOT_GIT" != 1
-    then
+    if test -z "$leaveDotGit"; then
 	echo "removing \`.git'..." >&2
-	rm -rf $tmpFile/.git
-    fi
-
-    # Compute the hash.
-    hash=$(nix-hash --type $hashType $hashFormat $tmpFile)
-    if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
-
-    # Add the downloaded file to the Nix store.
-    finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile)
-
-    if test -n "$expHash" -a "$expHash" != "$hash"; then
-        echo "hash mismatch for URL \`$url'"
-        exit 1
+        find $out -name .git\* | xargs rm -rf
     fi
-fi
-
-if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
-
-echo $hash
+}
 
-if test -n "$PRINT_PATH"; then
-    echo $finalPath
-fi
+if test -n "$builder"; then
+    mkdir $out
+    clone_user_rev "$out" "$url" "$rev"
+else
+  if test -z "$hashType"; then
+      hashType=sha256
+  fi
+
+  # If the hash was given, a file with that hash may already be in the
+  # store.
+  if -n "$expHash"; then
+      finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" git-export)
+      if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
+          finalPath=
+      fi
+      hash=$expHash
+  fi
+
+  # If we don't know the hash or a path with that hash doesn't exist,
+  # download the file and add it to the store.
+  if test -z "$finalPath"; then
+
+      tmpPath=/tmp/git-checkout-tmp-$$
+      tmpFile=$tmpPath/git-export
+      mkdir $tmpPath $tmpFile
+
+      trap "rm -rf $tmpPath" EXIT
+
+      # Perform the checkout.
+      clone_user_rev "$tmpFile" "$url" "$rev"
+
+      # Compute the hash.
+      hash=$(nix-hash --type $hashType $hashFormat $tmpFile)
+      if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
+
+      # Add the downloaded file to the Nix store.
+      finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile)
+
+      if test -n "$expHash" -a "$expHash" != "$hash"; then
+          echo "hash mismatch for URL \`$url'"
+          exit 1
+      fi
+  fi
+
+  if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
+
+  echo $hash
+
+  if test -n "$PRINT_PATH"; then
+      echo $finalPath
+  fi
+fi
\ No newline at end of file
diff --git a/pkgs/build-support/fetchgitrevision/default.nix b/pkgs/build-support/fetchgitrevision/default.nix
new file mode 100644
index 000000000000..e877648978d9
--- /dev/null
+++ b/pkgs/build-support/fetchgitrevision/default.nix
@@ -0,0 +1,10 @@
+runCommand: git: repository: branch:
+  import (runCommand "head-revision"
+    { buildInputs = [ git ];
+      dummy = builtins.currentTime;
+    }
+    ''
+      rev=$(git ls-remote ${repository} | grep "refs/${branch}$" | awk '{ print $1 }')
+      echo "[ \"$rev\" ]" > $out
+      echo Latest revision in ${branch} is $rev
+    '')
diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix
index a3a2ec4d561c..5424c87ded79 100644
--- a/pkgs/build-support/fetchhg/default.nix
+++ b/pkgs/build-support/fetchhg/default.nix
@@ -2,7 +2,7 @@
 
 # TODO: statically check if mercurial as the https support if the url starts woth https.
 stdenv.mkDerivation {
-  name = "fetchhg" + (if (name != null) then "-${name}" else "");
+  name = "hg-archive" + (if (name != null) then "-${name}" else "");
   builder = ./builder.sh;
   buildInputs = [mercurial nix];
 
diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg
index b2711392acc4..55501f41bbe8 100755
--- a/pkgs/build-support/fetchhg/nix-prefetch-hg
+++ b/pkgs/build-support/fetchhg/nix-prefetch-hg
@@ -36,14 +36,18 @@ fi
 if test -z "$finalPath"; then
 
     tmpPath=/tmp/hg-checkout-tmp-$$
-    tmpClone=$tmpPath/hg-clone
     tmpArchive=$tmpPath/hg-archive
     mkdir $tmpPath
 
     trap "rm -rf $tmpPath" EXIT
 
     # Perform the checkout.
-    hg clone -q -y -U "$url" $tmpClone >&2
+    if [[ $url != /* ]]; then
+      tmpClone=$tmpPath/hg-clone
+      hg clone -q -y -U "$url" $tmpClone >&2
+    else
+      tmpClone=$url
+    fi
     hg archive -q -y -r "$rev" --cwd $tmpClone $tmpArchive
 
 
diff --git a/pkgs/build-support/fetchmtn/default.nix b/pkgs/build-support/fetchmtn/default.nix
index 7fda2821905f..80d9091e01de 100644
--- a/pkgs/build-support/fetchmtn/default.nix
+++ b/pkgs/build-support/fetchmtn/default.nix
@@ -1,25 +1,23 @@
 # You can specify some extra mirrors and a cache DB via options
-{stdenv, monotone, defaultDBMirrors ? [], cacheDB ? ""}:
+{stdenv, monotone, defaultDBMirrors ? [], cacheDB ? "./mtn-checkout.db"}:
 # dbs is a list of strings
 # each is an url for sync
 
 # selector is mtn selector, like h:org.example.branch
 # 
-{name ? "", dbs ? [], selector ? "", branch, md5 ? "", sha1 ? "", sha256 ? ""}:
+{name ? "mtn-checkout", dbs ? [], sha256
+, selector ? "h:" + branch, branch}:
 
 stdenv.mkDerivation {
-  name = if name != "" then name else "mtn-checkout";
   builder = ./builder.sh;
-  buildInputs = [monotone];
+  buildNativeInputs = [monotone];
 
-  outputHashAlgo = if sha256 == "" then (if sha1 == "" then "md5" else "sha1") else "sha256";
+  outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = if sha256 == "" then (if sha1 == "" then md5 else sha1) else sha256;
+  outputHash = sha256;
 
   dbs = defaultDBMirrors ++ dbs;
-  cacheDB = if cacheDB != "" then cacheDB else "./mtn-checkout.db";
-  selector = if selector != "" then selector else "h:" + branch;
-  inherit branch;
+  inherit branch cacheDB name selector;
 
   impureEnvVars = [
     # We borrow these environment variables from the caller to allow
diff --git a/pkgs/build-support/fetchsvnrevision/default.nix b/pkgs/build-support/fetchsvnrevision/default.nix
new file mode 100644
index 000000000000..288451a225c7
--- /dev/null
+++ b/pkgs/build-support/fetchsvnrevision/default.nix
@@ -0,0 +1,10 @@
+runCommand: subversion: repository:
+  import (runCommand "head-revision"
+    { buildInputs = [ subversion ];
+      dummy = builtins.currentTime;
+    }
+    ''
+      rev=$(echo p | svn ls -v --depth empty  ${repository} |awk '{ print $1 }')
+      echo "[ \"$rev\" ]" > $out
+      echo Latest revision is $rev
+    '')
\ No newline at end of file
diff --git a/pkgs/build-support/fetchurl/builder.sh b/pkgs/build-support/fetchurl/builder.sh
index 3bb55aa3c90b..808bf9f7cdec 100644
--- a/pkgs/build-support/fetchurl/builder.sh
+++ b/pkgs/build-support/fetchurl/builder.sh
@@ -2,10 +2,6 @@ source $stdenv/setup
 
 source $mirrorsFile
 
-if test -n "$showURLs"; then
-    header "downloading file $name with $outputHashAlgo hash $outputHash..."
-fi
-
 
 # Curl flags to handle redirects, not use EPSV, handle cookies for
 # servers to need them during redirects, and work on SSL without a
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 2b4e382928f6..94624412d35a 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -10,6 +10,7 @@ rec {
   
   # SourceForge.
   sourceforge = [
+    http://prdownloads.sourceforge.net/
     http://heanet.dl.sourceforge.net/sourceforge/
     http://surfnet.dl.sourceforge.net/sourceforge/
     http://dfn.dl.sourceforge.net/sourceforge/
@@ -17,7 +18,6 @@ rec {
     http://ovh.dl.sourceforge.net/sourceforge/
     http://osdn.dl.sourceforge.net/sourceforge/
     http://kent.dl.sourceforge.net/sourceforge/
-    http://prdownloads.sourceforge.net/
   ];
 
   sf = sourceforge;
@@ -101,6 +101,7 @@ rec {
 
   # Mirrors of ftp://ftp.kde.org/pub/kde/.
   kde = [
+    "http://download.kde.org/download.php?url="
     http://ftp.gwdg.de/pub/x11/kde/
     ftp://ftp.heanet.ie/mirrors/ftp.kde.org/
     ftp://ftp.kde.org/pub/kde/
@@ -195,6 +196,7 @@ rec {
     http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/
     http://ftp.uni-kassel.de/opensuse/distribution/
     http://ftp.opensuse.org/pub/opensuse/distribution/
+    http://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/
     http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/
     http://opensuse.mirror.server4you.net/distribution/
     http://ftp.nsysu.edu.tw/Linux/OpenSuSE/distribution/
@@ -245,4 +247,10 @@ rec {
     ftp://ftp-archives.postgresql.org/pub/
   ];
 
+  metalab = [
+    ftp://mirrors.kernel.org/metalab/
+    ftp://ftp.gwdg.de/pub/linux/metalab/
+    ftp://ftp.xemacs.org/sites/metalab.unc.edu/
+  ];
+
 }
diff --git a/pkgs/build-support/gcc-wrapper/default.nix b/pkgs/build-support/gcc-wrapper/default.nix
index 4e486f8fc646..d3f957d18a2d 100644
--- a/pkgs/build-support/gcc-wrapper/default.nix
+++ b/pkgs/build-support/gcc-wrapper/default.nix
@@ -64,9 +64,10 @@ stdenv.mkDerivation {
     # This is not the best way to do this. I think the reference should be
     # the style in the gcc-cross-wrapper, but to keep a stable stdenv now I
     # do this sufficient if/else.
-    dynamicLinker = 
+    dynamicLinker =
       (if stdenv.cross.arch == "arm" then "ld-linux.so.3" else
        if stdenv.cross.arch == "mips" then "ld.so.1" else
+       if stdenv.lib.hasSuffix "pc-gnu" stdenv.cross.config then "ld.so.1" else
        abort "don't know the name of the dynamic linker for this platform");
   };
   
diff --git a/pkgs/build-support/kernel/paths-from-graph.pl b/pkgs/build-support/kernel/paths-from-graph.pl
index 43ce4e68db44..f18662372103 100644
--- a/pkgs/build-support/kernel/paths-from-graph.pl
+++ b/pkgs/build-support/kernel/paths-from-graph.pl
@@ -53,6 +53,7 @@ elsif ($ENV{"printRegistration"} eq "1") {
     foreach my $storePath (sort (keys %storePaths)) {
         print "$storePath\n";
         print "0000000000000000000000000000000000000000000000000000000000000000\n"; # !!! fix
+        print "0\n"; # !!! fix	
         print "\n"; # don't care about preserving the deriver
         print scalar(@{$refs{$storePath}}), "\n";
         foreach my $ref (@{$refs{$storePath}}) {
diff --git a/pkgs/build-support/release/debian-build.nix b/pkgs/build-support/release/debian-build.nix
index 75e26efa0b30..c2a194a042f6 100644
--- a/pkgs/build-support/release/debian-build.nix
+++ b/pkgs/build-support/release/debian-build.nix
@@ -47,6 +47,7 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
     '';
 
     sysInfoPhase = ''
+      [ ! -f /etc/lsb-release ] || (source /etc/lsb-release; echo "OS release: $DISTRIB_DESCRIPTION")
       echo "System/kernel: $(uname -a)"
       if test -e /etc/debian_version; then echo "Debian release: $(cat /etc/debian_version)"; fi
       header "installed Debian packages"
diff --git a/pkgs/build-support/release/nix-build.nix b/pkgs/build-support/release/nix-build.nix
index 201fe4e799d7..5c569f97ccf0 100644
--- a/pkgs/build-support/release/nix-build.nix
+++ b/pkgs/build-support/release/nix-build.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation (
               KEEPBUILDDIR="$out/`basename $TMPDIR`"
               header "Copying build directory to $KEEPBUILDDIR"
               ensureDir $KEEPBUILDDIR
-              cp -vR $TMPDIR/* $KEEPBUILDDIR
+              cp -R $TMPDIR/* $KEEPBUILDDIR
               stopNest 
           fi
       fi
diff --git a/pkgs/build-support/release/source-tarball.nix b/pkgs/build-support/release/source-tarball.nix
index 35e075893638..94566e4c4605 100644
--- a/pkgs/build-support/release/source-tarball.nix
+++ b/pkgs/build-support/release/source-tarball.nix
@@ -68,6 +68,18 @@ stdenv.mkDerivation (
 
       eval "$postAutoconf"
     '';
+
+    failureHook = ''
+      if test -n "$succeedOnFailure"; then
+          if test -n "$keepBuildDirectory"; then
+              KEEPBUILDDIR="$out/`basename $TMPDIR`"
+              header "Copying build directory to $KEEPBUILDDIR"
+              ensureDir $KEEPBUILDDIR
+              cp -R $TMPDIR/* $KEEPBUILDDIR
+              stopNest
+          fi
+      fi
+    '';
   }
 
   # Then, the caller-supplied attributes.
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 992e28476f06..5defdb55b959 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -45,12 +45,16 @@ rec {
 
 
   # Make a package that just contains a setup hook with the given contents.
-  makeSetupHook = script:
-    runCommand "hook" {}
-      ''
+  makeSetupHook = { deps ? [], substitutions ? {} }: script:
+    runCommand "hook" substitutions
+      (''
         ensureDir $out/nix-support
         cp ${script} $out/nix-support/setup-hook
-      '';
+      '' + stdenv.lib.optionalString (deps != []) ''
+        echo ${toString deps} > $out/nix-support/propagated-build-native-inputs
+      '' + stdenv.lib.optionalString (substitutions != {}) ''
+        substituteAll ${script} $out/nix-support/setup-hook
+      '');
 
 
   # Write the references (i.e. the runtime dependencies in the Nix store) of `path' to a file.
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 4e63d8082c3f..cc3d93bd561a 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -1,4 +1,8 @@
-{ pkgs }:
+{ pkgs
+, linuxKernel ? pkgs.linux
+, img ? "bzImage"
+, rootModules ? [ "cifs" "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "nls_utf8" "ext2" "ext3" "unix" ]
+}:
 
 with pkgs;
 
@@ -7,16 +11,13 @@ rec {
   # The 15 second CIFS timeout is too short if the host if heavily
   # loaded (e.g., in the Hydra build farm when it's running many jobs
   # in parallel).  So apply a patch to increase the timeout to 120s.
-  kernel = assert pkgs.linux.features.cifsTimeout; pkgs.linux;
+  kernel = assert pkgs.linux.features.cifsTimeout; linuxKernel;
 
   kvm = pkgs.qemu_kvm;
 
 
   modulesClosure = makeModulesClosure {
-    inherit kernel;
-    rootModules =
-      [ "cifs" "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon"
-        "nls_utf8" "ext2" "ext3" "unix" ];
+    inherit kernel rootModules;
   };
 
 
@@ -98,10 +99,6 @@ rec {
           set -- $(IFS==; echo $o)
           command=$2
           ;;
-        tmpDir=*)
-          set -- $(IFS==; echo $o)
-          export tmpDir=$2
-          ;;
         out=*)
           set -- $(IFS==; echo $o)
           export out=$2
@@ -133,20 +130,20 @@ rec {
       mount -t ext2 /dev/${hd} /fs
     fi
 
-    mkdir -p /fs/hostfs
-    
     mkdir -p /fs/dev
     mount -o bind /dev /fs/dev
 
-    echo "mounting host filesystem..."
-    mount -t cifs //10.0.2.4/qemu /fs/hostfs -o guest,sec=none
-
+    echo "mounting Nix store..."
     mkdir -p /fs/nix/store
-    mount -o bind /fs/hostfs/nix/store /fs/nix/store
-    
+    mount -t cifs //10.0.2.4/store /fs/nix/store -o guest,sec=none
+
     mkdir -p /fs/tmp
     mount -t tmpfs -o "mode=755" none /fs/tmp
 
+    echo "mounting host's temporary directory..."
+    mkdir -p /fs/tmp/xchg
+    mount -t cifs //10.0.2.4/xchg /fs/tmp/xchg -o guest,sec=none
+
     mkdir -p /fs/proc
     mount -t proc none /fs/proc
 
@@ -160,8 +157,8 @@ rec {
     test -n "$command"
 
     set +e
-    chroot /fs $command /tmp $out /hostfs/$tmpDir
-    echo $? > /fs/hostfs/$tmpDir/in-vm-exit
+    chroot /fs $command $out
+    echo $? > /fs/tmp/xchg/in-vm-exit
 
     mount -o remount,ro dummy /fs
 
@@ -181,14 +178,13 @@ rec {
   
   stage2Init = writeScript "vm-run-stage2" ''
     #! ${bash}/bin/sh
-    source $3/saved-env
+    source /tmp/xchg/saved-env
     
     export NIX_STORE=/nix/store
-    export NIX_BUILD_TOP="$1"
-    export TMPDIR="$1"
+    export NIX_BUILD_TOP=/tmp
+    export TMPDIR=/tmp
     export PATH=/empty
-    out="$2"
-    export ORIG_TMPDIR="$3"
+    out="$1"
     cd "$NIX_BUILD_TOP"
 
     if ! test -e /bin/sh; then
@@ -217,10 +213,10 @@ rec {
       -net nic,model=virtio \
       -chardev socket,id=samba,path=./samba \
       -net user,guestfwd=tcp:10.0.2.4:445-chardev:samba \
-      -drive file=$diskImage,if=virtio,boot=on,cache=writeback,werror=report \
-      -kernel ${kernel}/bzImage \
+      -drive file=$diskImage,if=virtio,cache=writeback,werror=report \
+      -kernel ${kernel}/${img} \
       -initrd ${initrd}/initrd \
-      -append "console=ttyS0 panic=1 command=${stage2Init} tmpDir=$TMPDIR out=$out mountDisk=$mountDisk" \
+      -append "console=ttyS0 panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk" \
       $QEMU_OPTS
   '';
 
@@ -228,6 +224,7 @@ rec {
   startSamba =
     ''
       export WHO=`whoami`
+      mkdir -p $TMPDIR/xchg
 
       cat > $TMPDIR/smb.conf <<SMB
       [global]
@@ -239,9 +236,14 @@ rec {
         log file = $TMPDIR/log.smbd
         smb passwd file = $TMPDIR/smbpasswd
         security = share
-      [qemu]
+      [store]
         force user = $WHO
-        path = /
+        path = /nix/store
+        read only = no
+        guest ok = yes
+      [xchg]
+        force user = $WHO
+        path = $TMPDIR/xchg
         read only = no
         guest ok = yes
       SMB
@@ -256,6 +258,8 @@ rec {
     export > saved-env
 
     PATH=${coreutils}/bin
+    mkdir xchg
+    mv saved-env xchg/
 
     diskImage=''${diskImage:-/dev/null}
 
@@ -273,17 +277,19 @@ rec {
     ${qemuCommand}
     EOF
 
+    mkdir -p -m 0700 $out
+
     chmod +x ./run-vm
     source ./run-vm
     
-    if ! test -e in-vm-exit; then
+    if ! test -e xchg/in-vm-exit; then
       echo "Virtual machine didn't produce an exit code."
       exit 1
     fi
     
     eval "$postVM"
 
-    exit $(cat in-vm-exit)
+    exit $(cat xchg/in-vm-exit)
   '';
 
 
@@ -342,6 +348,56 @@ rec {
     QEMU_OPTS = "-m ${toString (if attrs ? memSize then attrs.memSize else 256)}";
   });
 
+  extractFs = {file, fs ? null} :
+    with pkgs; runInLinuxVM (
+    stdenv.mkDerivation {
+      name = "extract-file";
+      buildInputs = [utillinuxng];
+      buildCommand = ''
+        ln -s ${linux}/lib /lib
+        ${module_init_tools}/sbin/modprobe loop
+        ${module_init_tools}/sbin/modprobe ext4
+        ${module_init_tools}/sbin/modprobe hfs
+        ${module_init_tools}/sbin/modprobe hfsplus
+        ${module_init_tools}/sbin/modprobe squashfs
+        ${module_init_tools}/sbin/modprobe iso9660
+        ${module_init_tools}/sbin/modprobe ufs
+        ${module_init_tools}/sbin/modprobe cramfs
+        mknod /dev/loop0 b 7 0
+
+        ensureDir $out
+        ensureDir tmp
+        mount -o loop,ro,ufstype=44bsd ${lib.optionalString (fs != null) "-t ${fs} "}${file} tmp ||
+          mount -o loop,ro ${lib.optionalString (fs != null) "-t ${fs} "}${file} tmp
+        cp -Rv tmp/* $out/ || exit 0
+      '';
+    });
+
+  extractMTDfs = {file, fs ? null} :
+    with pkgs; runInLinuxVM (
+    stdenv.mkDerivation {
+      name = "extract-file-mtd";
+      buildInputs = [utillinuxng mtdutils];
+      buildCommand = ''
+        ln -s ${linux}/lib /lib
+        ${module_init_tools}/sbin/modprobe mtd
+        ${module_init_tools}/sbin/modprobe mtdram total_size=131072
+        ${module_init_tools}/sbin/modprobe mtdchar
+        ${module_init_tools}/sbin/modprobe mtdblock
+        ${module_init_tools}/sbin/modprobe jffs2
+        ${module_init_tools}/sbin/modprobe zlib
+        mknod /dev/mtd0 c 90 0
+        mknod /dev/mtdblock0 b 31 0
+
+        ensureDir $out
+        ensureDir tmp
+
+        dd if=${file} of=/dev/mtd0
+        mount ${lib.optionalString (fs != null) "-t ${fs} "}/dev/mtdblock0 tmp
+
+        cp -R tmp/* $out/
+      '';
+    });
 
   qemuCommandGeneric = ''
     ${kvm}/bin/qemu-system-x86_64 \
@@ -429,7 +485,9 @@ rec {
      a set of RPM packages. */
     
   fillDiskWithRPMs =
-    {size ? 4096, rpms, name, fullName, preInstall ? "", postInstall ? "", runScripts ? true}:
+    { size ? 4096, rpms, name, fullName, preInstall ? "", postInstall ? ""
+    , runScripts ? true
+    }:
     
     runInLinuxVM (stdenv.mkDerivation {
       inherit name preInstall postInstall rpms;
@@ -474,7 +532,7 @@ rec {
         ${utillinux}/bin/umount /mnt
       '';
 
-      passthru = {inherit fullName;};
+      passthru = { inherit fullName; };
     });
 
 
@@ -495,7 +553,8 @@ rec {
     export out=/dummy
     export origBuilder=
     export origArgs=
-    export > $TMPDIR/saved-env
+    mkdir $TMPDIR/xchg
+    export > $TMPDIR/xchg/saved-env
     mountDisk=1
     ${qemuCommandLinux}
   '';
@@ -551,7 +610,7 @@ rec {
 
     installPhase = ''
       eval "$preInstall"
-    
+
       ensureDir $out/$outDir
       find $rpmout -name "*.rpm" -exec cp {} $out/$outDir \;
 
@@ -572,7 +631,7 @@ rec {
      strongly connected components.  See deb/deb-closure.nix. */
 
   fillDiskWithDebs =
-    {size ? 4096, debs, name, fullName, postInstall ? null}:
+    { size ? 4096, debs, name, fullName, postInstall ? null }:
     
     runInLinuxVM (stdenv.mkDerivation {
       inherit name postInstall;
@@ -629,7 +688,7 @@ rec {
           done
           chroot=$(type -tP chroot)
           PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \
-            /usr/bin/dpkg --install --force-all $debs < /dev/null
+            /usr/bin/dpkg --install --force-all $debs < /dev/null || true
         done
         
         echo "running post-install script..."
@@ -644,7 +703,7 @@ rec {
         ${utillinux}/bin/umount /mnt
       '';
 
-      passthru = {inherit fullName;};
+      passthru = { inherit fullName; };
     });
 
 
@@ -677,7 +736,7 @@ rec {
       rpms = import (rpmClosureGenerator {
         inherit name packagesList urlPrefix archs;
         packages = packages ++ extraPackages;
-      }) {inherit fetchurl;};
+      }) { inherit fetchurl; };
     };
 
 
@@ -762,10 +821,10 @@ rec {
       name = "fedora-7-i386";
       fullName = "Fedora 7 (i386)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/7/Fedora/i386/os/repodata/primary.xml.gz;
-        sha256 = "0zq7ifirj45wry7b2qkm12qhzzazal3hn610h5kwbrfr2xavs882";
+        url = mirror://fedora/linux/releases/7/Everything/i386/os/repodata/primary.xml.gz;
+        sha256 = "0ssfa01jbwdf566rsxm443yi8f9b1drgfpv51904bark4glgvs33";
       };
-      urlPrefix = mirror://fedora/linux/releases/7/Fedora/i386/os;
+      urlPrefix = mirror://fedora/linux/releases/7/Everything/i386/os;
       packages = commonFedoraPackages;
     };
     
@@ -773,10 +832,10 @@ rec {
       name = "fedora-8-i386";
       fullName = "Fedora 8 (i386)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/8/Fedora/i386/os/repodata/primary.xml.gz;
-        sha256 = "0vr9345rrk0vhs4pc9cjp8npdkqz0xqyirv84vhyfn533m9ws36f";
+        url = mirror://fedora/linux/releases/8/Everything/i386/os/repodata/primary.xml.gz;
+        sha256 = "0kwf0jcp63pygpvgvwl4w58pph24xbcy6db6fnq2f3ly5myhz53n";
       };
-      urlPrefix = mirror://fedora/linux/releases/8/Fedora/i386/os;
+      urlPrefix = mirror://fedora/linux/releases/8/Everything/i386/os;
       packages = commonFedoraPackages;
     };
 
@@ -784,10 +843,10 @@ rec {
       name = "fedora-9-i386";
       fullName = "Fedora 9 (i386)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/9/Fedora/i386/os/repodata/primary.xml.gz;
-        sha256 = "18780xgyag5acx79warcpvzlfkm0mni8xawl6jjvgxg9n3lp6zg0";
+        url = mirror://fedora/linux/releases/9/Everything/i386/os/repodata/primary.xml.gz;
+        sha256 = "1qd7wb5hfxg4mkpf4k3w49hy0qqf704dqlj3igaibyzmrn9rvk7h";
       };
-      urlPrefix = mirror://fedora/linux/releases/9/Fedora/i386/os;
+      urlPrefix = mirror://fedora/linux/releases/9/Everything/i386/os;
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
 
@@ -795,10 +854,10 @@ rec {
       name = "fedora-9-x86_64";
       fullName = "Fedora 9 (x86_64)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/9/Fedora/x86_64/os/repodata/primary.xml.gz;
-        sha256 = "0qcjigzbw29ahhkfjaw5pbpyl7mj9l349hikwv25jcnid1cbpmx7";
+        url = mirror://fedora/linux/releases/9/Everything/x86_64/os/repodata/primary.xml.gz;
+        sha256 = "1qv68i5s6gis4fbj4lxkibx8zxw5kqxapk95lvm76ml59gm7axxx";
       };
-      urlPrefix = mirror://fedora/linux/releases/9/Fedora/x86_64/os;
+      urlPrefix = mirror://fedora/linux/releases/9/Everything/x86_64/os;
       archs = ["noarch" "x86_64"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -807,10 +866,10 @@ rec {
       name = "fedora-10-i386";
       fullName = "Fedora 10 (i386)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/10/Fedora/i386/os/repodata/primary.xml.gz;
-        sha256 = "15ha8pxzvlch707mpy06c7pkr2ra2vpd5b8x30qhydvx8fgcqcx9";
+        url = mirror://fedora/linux/releases/10/Everything/i386/os/repodata/beeea88d162e76993c25b9dd8139868274ee7fa1-primary.xml.gz;
+        sha1 = "beeea88d162e76993c25b9dd8139868274ee7fa1";
       };
-      urlPrefix = mirror://fedora/linux/releases/10/Fedora/i386/os;
+      urlPrefix = mirror://fedora/linux/releases/10/Everything/i386/os;
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
 
@@ -818,10 +877,10 @@ rec {
       name = "fedora-10-x86_64";
       fullName = "Fedora 10 (x86_64)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/10/Fedora/x86_64/os/repodata/primary.xml.gz;
-        sha256 = "1pmaav6mdaw13fq99wfggbsmhcix306cimijjxh35qi7yc3wbsz4";
+        url = mirror://fedora/linux/releases/10/Everything/x86_64/os/repodata/7958210175e86b5cc843cf4bd0bc8659e445e261-primary.xml.gz;
+        sha1 = "7958210175e86b5cc843cf4bd0bc8659e445e261";
       };
-      urlPrefix = mirror://fedora/linux/releases/10/Fedora/x86_64/os;
+      urlPrefix = mirror://fedora/linux/releases/10/Everything/x86_64/os;
       archs = ["noarch" "x86_64"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -830,10 +889,10 @@ rec {
       name = "fedora-11-i386";
       fullName = "Fedora 11 (i386)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/11/Fedora/i386/os/repodata/36af1d88214b770fd3d814a5126083b8e808510c76acfdc3a234d6f7e43c2425-primary.xml.gz;
-        sha256 = "09947kjggmillb1zvb3n1i8his5qhdh1598lv39hyxsb4641vbrn";
+        url = mirror://fedora/linux/releases/11/Everything/i386/os/repodata/4a59e5ec0a3a55979f2045c9e6824b87feb1c8c3df12d893e9ee3057ba482485-primary.xml.gz;
+        sha256 = "4a59e5ec0a3a55979f2045c9e6824b87feb1c8c3df12d893e9ee3057ba482485";
       };
-      urlPrefix = mirror://fedora/linux/releases/11/Fedora/i386/os;
+      urlPrefix = mirror://fedora/linux/releases/11/Everything/i386/os;
       archs = ["noarch" "i386" "i586"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -842,10 +901,10 @@ rec {
       name = "fedora-11-x86_64";
       fullName = "Fedora 11 (x86_64)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/11/Fedora/x86_64/os/repodata/c792495863f5314329c463d51860fc74c6367f72c3cb1c132f6c3290102d68da-primary.xml.gz;
-        sha256 = "1nk85l890ckc5w9irjy3f9zkdiklzih1imb3qhll6cgmcdc4k4n7";
+        url = mirror://fedora/linux/releases/11/Everything/x86_64/os/repodata/b3e9f0d474893d14b0352deddabc7e3ee017d038614e82d7c6d7717510d6ce7e-primary.xml.gz;
+        sha256 = "b3e9f0d474893d14b0352deddabc7e3ee017d038614e82d7c6d7717510d6ce7e";
       };
-      urlPrefix = mirror://fedora/linux/releases/11/Fedora/x86_64/os;
+      urlPrefix = mirror://fedora/linux/releases/11/Everything/x86_64/os;
       archs = ["noarch" "x86_64"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -854,10 +913,10 @@ rec {
       name = "fedora-12-i386";
       fullName = "Fedora 12 (i386)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/12/Fedora/i386/os/repodata/92857daf45687583ffa0fa6f8f97c71d08c50d8b6305dfeea8a3332bf2f7f27c-primary.xml.gz;
-        sha256 = "0z7jyzr2ncx3m3pdy1b3ic6wa20xqybqyvzsl3zq6xb88nppv1cj";
+        url = mirror://fedora/linux/releases/12/Everything/i386/os/repodata/e27694b7824ee6bbf87af629950e6953eaddf91c73e489f5de690a7ecb9d726e-primary.xml.gz;
+        sha256 = "e27694b7824ee6bbf87af629950e6953eaddf91c73e489f5de690a7ecb9d726e";
       };
-      urlPrefix = mirror://fedora/linux/releases/12/Fedora/i386/os;
+      urlPrefix = mirror://fedora/linux/releases/12/Everything/i386/os;
       archs = ["noarch" "i386" "i586" "i686"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -866,10 +925,10 @@ rec {
       name = "fedora-12-x86_64";
       fullName = "Fedora 12 (x86_64)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/12/Fedora/x86_64/os/repodata/a4ebee776b3c4898086e124a512e7f8c701ab1699fd83b2dcea3d7592b5c9ff0-primary.xml.gz;
-        sha256 = "1w4zbhmmkmx3rqnkpn4zd6qilw4cgwp52jhjdq49hj1wddvyxsx4";
+        url = mirror://fedora/linux/releases/12/Everything/x86_64/os/repodata/6b142ef02acbc77f405fbfdedd82451e692a01201471665052a0e00ba8ac0959-primary.xml.gz;
+        sha256 = "6b142ef02acbc77f405fbfdedd82451e692a01201471665052a0e00ba8ac0959";
       };
-      urlPrefix = mirror://fedora/linux/releases/12/Fedora/x86_64/os;
+      urlPrefix = mirror://fedora/linux/releases/12/Everything/x86_64/os;
       archs = ["noarch" "x86_64"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -878,10 +937,10 @@ rec {
       name = "fedora-13-i386";
       fullName = "Fedora 13 (i386)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/13/Fedora/i386/os/repodata/48c649978f695e8bf6214d16ff5413f8ab303976b33d0e96e0a5706e6f870682-primary.xml.gz;
-        sha256 = "10h6hxpnww55w2b0wgdkfqwk1azq2dagy5jd47v8npk9iyblkij8";
+        url = mirror://fedora/linux/releases/13/Everything/i386/os/repodata/be70ac9e1031fd34222b2ec6cc8a337bc6fabd1d06969990955c5f358d138e35-primary.xml.gz;
+        sha256 = "be70ac9e1031fd34222b2ec6cc8a337bc6fabd1d06969990955c5f358d138e35";
       };
-      urlPrefix = mirror://fedora/linux/releases/13/Fedora/i386/os;
+      urlPrefix = mirror://fedora/linux/releases/13/Everything/i386/os;
       archs = ["noarch" "i386" "i586" "i686"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -890,10 +949,10 @@ rec {
       name = "fedora-13-x86_64";
       fullName = "Fedora 13 (x86_64)";
       packagesList = fetchurl {
-        url = mirror://fedora/linux/releases/13/Fedora/x86_64/os/repodata/ed88d22fca1c8bcc07d85bb677d5f8f45422a373a53b6dd213d57d7dfc278878-primary.xml.gz;
-        sha256 = "0y484zy7szfm2g96sfx5ffij4m7lz3apgdjvv03wr2qwr8px527d";
+        url = mirror://fedora/linux/releases/13/Everything/x86_64/os/repodata/01996e6d20b0a4bf3390767bd26709932e42c54422b39005ec2dd4ef2e8b0f3a-primary.xml.gz;
+        sha256 = "01996e6d20b0a4bf3390767bd26709932e42c54422b39005ec2dd4ef2e8b0f3a";
       };
-      urlPrefix = mirror://fedora/linux/releases/13/Fedora/x86_64/os;
+      urlPrefix = mirror://fedora/linux/releases/13/Everything/x86_64/os;
       archs = ["noarch" "x86_64"];
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
     };
@@ -1054,7 +1113,7 @@ rec {
         sha256 = "6e3e813857496f2af6cd7e6ada06b3398fa067a7992c5fd7e8bd8fa92e3548b7";
       };
       urlPrefix = mirror://ubuntu;
-      packages = commonDebPackages ++ [ "diff" ];
+      packages = commonDebPackages ++ [ "diff" "mktemp" ];
     };
  
     ubuntu910x86_64 = {
@@ -1065,7 +1124,7 @@ rec {
         sha256 = "3a604fcb0c135eeb8b95da3e90a8fd4cfeff519b858cd3c9e62ea808cb9fec40";
       };
       urlPrefix = mirror://ubuntu;
-      packages = commonDebPackages ++ [ "diff" ];
+      packages = commonDebPackages ++ [ "diff" "mktemp" ];
     };
 
     ubuntu1004i386 = {
@@ -1076,7 +1135,7 @@ rec {
         sha256 = "0e46596202a68caa754dfe0883f46047525309880c492cdd5e2d0970fcf626aa";
       };
       urlPrefix = mirror://ubuntu;
-      packages = commonDebPackages ++ [ "diffutils" ];
+      packages = commonDebPackages ++ [ "diffutils" "mktemp" ];
     };
  
     ubuntu1004x86_64 = {
@@ -1087,6 +1146,28 @@ rec {
         sha256 = "74a8f3192b0eda397d65316e0fa6cd34d5358dced41639e07d9f1047971bfef0";
       };
       urlPrefix = mirror://ubuntu;
+      packages = commonDebPackages ++ [ "diffutils" "mktemp" ];
+    };
+
+    ubuntu1010i386 = {
+      name = "ubuntu-10.04-maverick-i386";
+      fullName = "Ubuntu 10.04 Maverick (i386)";
+      packagesList = fetchurl {
+        url = mirror://ubuntu/dists/maverick/main/binary-i386/Packages.bz2;
+        sha256 = "1qjs4042y03bxbxwjs3pgrs99ba6vqvjaaz6zhaxxaqj1r12dwa0";
+      };
+      urlPrefix = mirror://ubuntu;
+      packages = commonDebPackages ++ [ "diffutils" ];
+    };
+ 
+    ubuntu1010x86_64 = {
+      name = "ubuntu-10.04-maverick-amd64";
+      fullName = "Ubuntu 10.04 Maverick (amd64)";
+      packagesList = fetchurl {
+        url = mirror://ubuntu/dists/maverick/main/binary-amd64/Packages.bz2;
+        sha256 = "1p0i4gp1bxd3zvckgnh1hx4vfc23rfgzd19dk5rmi61lzbzzqbgc";
+      };
+      urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" ];
     };
 
@@ -1113,22 +1194,44 @@ rec {
     };
 
     debian50i386 = {
-      name = "debian-5.0.5-lenny-i386";
-      fullName = "Debian 5.0.5 Lenny (i386)";
+      name = "debian-5.0.8-lenny-i386";
+      fullName = "Debian 5.0.8 Lenny (i386)";
       packagesList = fetchurl {
         url = mirror://debian/dists/lenny/main/binary-i386/Packages.bz2;
-        sha256 = "1nzd0r44lnvw2bmshqpbhghs84fxbcr1jkg55d37v4d09gsdmln0";
+        sha256 = "0dcvd8ivn71dwln7mx5dbqj30v4cqmc61lj21ry05karkglb5scg";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
     };
         
     debian50x86_64 = {
-      name = "debian-5.0.5-lenny-amd64";
-      fullName = "Debian 5.0.5 Lenny (amd64)";
+      name = "debian-5.0.8-lenny-amd64";
+      fullName = "Debian 5.0.8 Lenny (amd64)";
       packagesList = fetchurl {
         url = mirror://debian/dists/lenny/main/binary-amd64/Packages.bz2;
-        sha256 = "04hab4ybjilppr1hwnl4k50vr5y88w7zn6v22phfrsrxf23nrlv3";
+        sha256 = "1wrqjfcqfs7q5i7jnr8115zsjlhzxxm2x41agp546d3wpj68k938";
+      };
+      urlPrefix = mirror://debian;
+      packages = commonDebianPackages;
+    };
+
+    debian60i386 = {
+      name = "debian-6.0.2.1-squeeze-i386";
+      fullName = "Debian 6.0.2.1 Squeeze (i386)";
+      packagesList = fetchurl {
+        url = mirror://debian/dists/squeeze/main/binary-i386/Packages.bz2;
+        sha256 = "0fv1vkyaci489a8np1aaqbrwnc2d0as39hadyj9dswhm7zgfvmk1";
+      };
+      urlPrefix = mirror://debian;
+      packages = commonDebianPackages;
+    };
+        
+    debian60x86_64 = {
+      name = "debian-6.0.2.1-squeeze-amd64";
+      fullName = "Debian 6.0.2.1 Squeeze (amd64)";
+      packagesList = fetchurl {
+        url = mirror://debian/dists/squeeze/main/binary-amd64/Packages.bz2;
+        sha256 = "1hvaqsmd801syifqwhpd1aqv30xg33z8g74k5pqcqhxqzah653d5";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
@@ -1211,11 +1314,9 @@ rec {
     # Needed because it provides /etc/login.defs, whose absence causes
     # the "passwd" post-installs script to fail.
     "login"
-    # For shutting up some messages during some post-install scripts:
-    "mktemp"
   ];
 
-  commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" ];
+  commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" "mktemp" ];
   
 
   /* A set of functions that build the Linux distributions specified
diff --git a/pkgs/build-support/vm/test.nix b/pkgs/build-support/vm/test.nix
index be1ff5d1a92d..c742a05aa112 100644
--- a/pkgs/build-support/vm/test.nix
+++ b/pkgs/build-support/vm/test.nix
@@ -32,7 +32,7 @@ rec {
     '';
   });
 
-
+/*
   testFreeBSD = runInGenericVM {
     name = "aterm-freebsd";
     src = aterm242fixes.src;
@@ -65,6 +65,6 @@ rec {
       make install
     '';
   };
-  
+*/  
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/data/documentation/man-pages-posix/default.nix b/pkgs/data/documentation/man-pages-posix/default.nix
new file mode 100644
index 000000000000..8c126db07929
--- /dev/null
+++ b/pkgs/data/documentation/man-pages-posix/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "man-pages-posix-2003a";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/man-pages-posix-2003-a.tar.bz2";
+    sha256 = "1sj97lbj27w935f9ia91ih1mwlz4j3qcr3d3nkvcxm6cpfvv2mg3";
+  };
+
+  preBuild =
+    ''
+      makeFlagsArray=(MANDIR=$out/share/man)
+    '';
+
+  meta = {
+    description = "POSIX man-pages (0p, 1p, 3p)";
+    homepage = http://kernel.org/pub/linux/docs/manpages/;
+  };
+}
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 6fba5e429e79..71c66a0794b0 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -1,11 +1,11 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "man-pages-3.25";
+  name = "man-pages-3.32";
   
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/Archive/${name}.tar.bz2";
-    sha256 = "1cq3zijmbsnjshkm78kffgqrdsxgg7ypvcf2digdyy0s9himnvwc";
+    sha256 = "1qr1k6kgx7i4gni9w2h610k2aa2bqdk7p08bmqslfwrzpmkkiawn";
   };
 
   preBuild =
diff --git a/pkgs/data/documentation/pthread-man-pages/default.nix b/pkgs/data/documentation/pthread-man-pages/default.nix
index bd29b0384a16..a19c8bf8e9a3 100644
--- a/pkgs/data/documentation/pthread-man-pages/default.nix
+++ b/pkgs/data/documentation/pthread-man-pages/default.nix
@@ -7,14 +7,14 @@
 
 { fetchurl, stdenv, perl }:
 
-let version = "2.3.6";
+let version = "2.5";
 in
   stdenv.mkDerivation rec {
     name = "pthread-man-pages-${version}";
 
     src = fetchurl {
       url = "mirror://gnu/glibc/glibc-linuxthreads-${version}.tar.bz2";
-      sha256 = "0f56msimlyfmragqa69jd39rb47h09l9b0agn67k1rfi8yic8fvc";
+      sha256 = "0b5xg7ba64d1gbqw4k1qk96qgy7h2y4qksr0qx8v7a14c6xaw9zf";
     };
 
     buildInputs = [ perl ];
diff --git a/pkgs/data/fonts/cm-unicode/default.nix b/pkgs/data/fonts/cm-unicode/default.nix
new file mode 100644
index 000000000000..b8f7f7c6d3ef
--- /dev/null
+++ b/pkgs/data/fonts/cm-unicode/default.nix
@@ -0,0 +1,44 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    version="0.6.3a";
+    baseName="cm-unicode";
+    name="${baseName}-${version}";
+    url="ftp://canopus.iacp.dvo.ru/pub/Font/cm_unicode/${name}-otf.tar.gz";
+    hash="1018gmvh7wl7sm6f3fqd917syd1yy0gz3pxmrc9lkxckcr7wz0zp";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["doUnpack" "installFonts"];
+
+  meta = {
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      all;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://canopus.iacp.dvo.ru/~panov/cm-unicode/download.html";
+    };
+  };
+}) x
+
diff --git a/pkgs/data/fonts/gentium/default.nix b/pkgs/data/fonts/gentium/default.nix
new file mode 100644
index 000000000000..a4e8099db963
--- /dev/null
+++ b/pkgs/data/fonts/gentium/default.nix
@@ -0,0 +1,46 @@
+x@{builderDefsPackage
+  , unzip
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    version="1.504";
+    baseName="GentiumPlus";
+    name="${baseName}-${version}";
+    url="http://scripts.sil.org/cms/scripts/render_download.php?&format=file&media_id=${name}.zip&filename=${name}";
+    hash="04kslaqbscpfrc6igkifcv1nkrclrm35hqpapjhw9102wpq12fpr";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+    name = "${sourceInfo.name}.zip";
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["addInputs" "doUnpack" "installFonts"];
+
+  meta = {
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      all;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://scripts.sil.org/cms/scripts/page.php?item_id=Gentium_download";
+    };
+  };
+}) x
+
diff --git a/pkgs/data/fonts/libertine/2.7.bin.nix b/pkgs/data/fonts/libertine/2.7.bin.nix
deleted file mode 100644
index b4e8bb9b6d12..000000000000
--- a/pkgs/data/fonts/libertine/2.7.bin.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-args: with args;
-rec{
-  src = fetchurl {
-    url = http://downloads.sourceforge.net/linuxlibertine/LinLibertineFont-2.7.tgz;
-    sha256 = "06xm3np2xx41fr2yc00q0z2qy9s6p860f18ns1f1f00vi54dm4c5";
-  };
-
-  buildInputs = [];
-  phaseNames = ["doUnpack" "installFonts"];
-
-  name = "linux-libertine-2.7";
-  meta = {
-    description = "Linux Libertine Fonts";
-    homepage = http://linuxlibertine.sf.net;
-  };
-}
-
diff --git a/pkgs/data/fonts/libertine/2.7.nix b/pkgs/data/fonts/libertine/default.nix
index a5c212aff864..a0ed5f757974 100644
--- a/pkgs/data/fonts/libertine/2.7.nix
+++ b/pkgs/data/fonts/libertine/default.nix
@@ -1,8 +1,8 @@
 args : with args; 
 rec {
   src = fetchurl {
-    url = http://downloads.sourceforge.net/linuxlibertine/LinLibertineSRC-2.7.tgz;
-    sha256 = "1czc3pil4zrii6qh6zk0g6hj6axj20gfnpbbdfrzm703wm9w70ic";
+    url = http://downloads.sourceforge.net/linuxlibertine/5.0.0/LinLibertineSRC_2011_05_22.tgz;
+    sha256 = "1cr0kvvlqrcmaxfl6szfp3m93mcnhmypx33dxmdm3xdxxkab74vg";
   };
 
   buildInputs = [fontforge];
@@ -15,7 +15,11 @@ rec {
     ScaleToEm(1000);
   '';
 
-  name = "linux-libertine-2.7";
+  doUnpack = fullDepEntry ''
+    tar xf ${src}
+  '' ["minInit"];
+
+  name = "linux-libertine-5.0.0";
   meta = {
     description = "Linux Libertine Fonts";
     homepage = http://linuxlibertine.sf.net;
diff --git a/pkgs/data/fonts/oldstandard/default.nix b/pkgs/data/fonts/oldstandard/default.nix
new file mode 100644
index 000000000000..ad25ac7fd954
--- /dev/null
+++ b/pkgs/data/fonts/oldstandard/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , unzip
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    version="2.2";
+    baseName="oldstandard";
+    name="${baseName}-${version}";
+    url="http://www.thessalonica.org.ru/downloads/${name}.otf.zip";
+    hash="0xhbksrh9mv1cs6dl2mc8l6sypialy9wirkjr54nf7s9bcynv1h6";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["doUnpack" "installFonts"];
+
+  doUnpack = a.fullDepEntry ''
+    unzip ${src}
+  '' ["addInputs"];
+      
+  meta = {
+    description = "An old-style font";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      all;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.thessalonica.org.ru/ru/fonts-download.html";
+    };
+  };
+}) x
+
diff --git a/pkgs/data/fonts/tempora-lgc/default.nix b/pkgs/data/fonts/tempora-lgc/default.nix
new file mode 100644
index 000000000000..16642d695666
--- /dev/null
+++ b/pkgs/data/fonts/tempora-lgc/default.nix
@@ -0,0 +1,49 @@
+x@{builderDefsPackage
+  , unzip
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    version="0.2";
+    baseName="tempora-lgc";
+    name="${baseName}-${version}";
+    url="http://www.thessalonica.org.ru/downloads/${baseName}.otf.zip";
+    hash="18n5ml2chc1bhrv43i64sz2dz1zc2dw087wcwn5l9ysqsmf0387i";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["doUnpack" "installFonts"];
+
+  doUnpack = a.fullDepEntry ''
+    unzip ${src}
+  '' ["addInputs"];
+      
+  meta = {
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      all;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.thessalonica.org.ru/ru/fonts-download.html";
+    };
+  };
+}) x
+
diff --git a/pkgs/data/fonts/theano/default.nix b/pkgs/data/fonts/theano/default.nix
new file mode 100644
index 000000000000..ca560c72a8ec
--- /dev/null
+++ b/pkgs/data/fonts/theano/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , unzip
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    version="2.0";
+    baseName="theano";
+    name="${baseName}-${version}";
+    url="http://www.thessalonica.org.ru/downloads/${name}.otf.zip";
+    hash="1xiykqbbiawvfk33639awmgdn25b8s2k7vpwncl17bzlk887b4z6";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["doUnpack" "installFonts"];
+
+  doUnpack = a.fullDepEntry ''
+    unzip ${src}
+  '' ["addInputs"];
+      
+  meta = {
+    description = "An old-style font";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      all;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.thessalonica.org.ru/ru/fonts-download.html";
+    };
+  };
+}) x
+
diff --git a/pkgs/data/misc/shared-desktop-ontologies/default.nix b/pkgs/data/misc/shared-desktop-ontologies/default.nix
index b4713794a03e..d86538b42d53 100644
--- a/pkgs/data/misc/shared-desktop-ontologies/default.nix
+++ b/pkgs/data/misc/shared-desktop-ontologies/default.nix
@@ -1,12 +1,15 @@
-{stdenv, fetchurl, cmake}:
+{ stdenv, fetchurl, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "shared-desktop-ontologies-0.5";
+  name = "shared-desktop-ontologies-0.7.1";
+  
   src = fetchurl {
-    url = "mirror://sf/oscaf/${name}.tar.bz2";
-    sha256 = "1a1gs2b314133rg7vzwvnqbxchf7xgs0jpkydid5l2wz98m7j17r";
+    url = "mirror://sourceforge/oscaf/${name}.tar.bz2";
+    sha256 = "1b38amxr4b0n6cyy9l3lgzyjsky172cjphjr0iscahrlrc0h4phy";
   };
+  
   buildInputs = [ cmake ];
+  
   meta = with stdenv.lib; {
     description = "Ontologies necessary for the Nepomuk semantic desktop";
     longDescription = ''
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index d30572f2ce5a..ecceb428a23d 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -2,11 +2,11 @@
 , libxml2, glib}:
 
 stdenv.mkDerivation rec {
-  name = "shared-mime-info-0.71";
+  name = "shared-mime-info-0.90";
 
   src = fetchurl {
     url = "http://freedesktop.org/~hadess/${name}.tar.bz2";
-    sha256 = "1d8f97f17de77ae0d8a3a4ef357280ef444da87f4ce19170392712d0c2f6d04f";
+    sha256 = "0113nzs2bs6vw69mxss5k3sn11bjn602jm2q0hd67pkjii5gijaj";
   };
 
   buildInputs = [
diff --git a/pkgs/data/misc/xkeyboard-config/default.nix b/pkgs/data/misc/xkeyboard-config/default.nix
index 61fc028f5438..63357fb45a32 100644
--- a/pkgs/data/misc/xkeyboard-config/default.nix
+++ b/pkgs/data/misc/xkeyboard-config/default.nix
@@ -1,14 +1,14 @@
-{stdenv, fetchurl, perl, perlXMLParser, xkbcomp, gettext, intltool}:
+{ stdenv, fetchurl, perl, perlXMLParser, xkbcomp, gettext, intltool  }:
 
 stdenv.mkDerivation rec {
-  name = "xkeyboard-config-1.9";
+  name = "xkeyboard-config-2.1";
 
   src = fetchurl {
     url = "mirror://xorg/individual/data/xkeyboard-config/${name}.tar.bz2";
-    sha256 = "0df2iad598pxw3fzkx10f7irqah0fgawx262d07s04x0whn9ql9b";
+    sha256 = "0x9hkb4iqz64gcabzkdcfy4p78sdhnpjwh54g8wx5bdgy9087vpr";
   };
 
-  buildInputs = [perl perlXMLParser xkbcomp gettext intltool];
+  buildInputs = [ perl perlXMLParser xkbcomp gettext intltool ];
 
   patches = [ ./eo.patch ];
 
diff --git a/pkgs/desktops/gnome-2.28/default.nix b/pkgs/desktops/gnome-2.28/default.nix
index 7e8c41920527..db458df1e644 100644
--- a/pkgs/desktops/gnome-2.28/default.nix
+++ b/pkgs/desktops/gnome-2.28/default.nix
@@ -84,6 +84,11 @@ pkgs.makeOverridable
     inherit intltool libart_lgpl libglade;
   };
 
+  libgnomecanvasmm = import ./platform/libgnomecanvasmm {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit libgnomecanvas gtkmm;
+  };
+
   # for git-head builds
   gnome_common = import platform/gnome-common {
     inherit (pkgs) stdenv fetchgit pkgconfig
@@ -137,6 +142,11 @@ pkgs.makeOverridable
     inherit intltool libbonobo ORBit2;
   };
 
+  glib_networking = import ./platform/glib-networking {
+    inherit (pkgs) stdenv fetchurl pkgconfig glib libtool intltool gnutls
+      libproxy libgcrypt libtasn1;
+  };
+
   gtk_doc = import ./platform/gtk-doc {
     inherit (pkgs) stdenv fetchurl pkgconfig perl python libxml2 libxslt;
     inherit (pkgs) docbook_xml_dtd_43 docbook_xsl dblatex;
@@ -183,12 +193,6 @@ pkgs.makeOverridable
     inherit GConf gnome_keyring;
   };
 
-  libsoup_2_31 = import ./desktop/libsoup/2.31.nix {
-    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 gnutls libproxy sqlite curl;
-    inherit (pkgs.gtkLibs) glib;
-    inherit GConf gnome_keyring;
-  };
-
   libwnck = import ./desktop/libwnck {
     inherit (pkgs) stdenv fetchurl pkgconfig;
     inherit (pkgs.xlibs) libX11;
@@ -209,7 +213,7 @@ pkgs.makeOverridable
   };
 
   libgweather = import ./desktop/libgweather {
-    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 libtasn1;
+    inherit (pkgs) stdenv fetchurl pkgconfig libxml2 libtasn1 nettle gmp;
     inherit (pkgs.gtkLibs) gtk;
     inherit intltool GConf libsoup;
   };
diff --git a/pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix b/pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix
index a19c8e5fcd0d..64dbd8e1a6f3 100644
--- a/pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix
+++ b/pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix
@@ -2,10 +2,10 @@
   libxml2, perl, intltool, gettext}:
 
 stdenv.mkDerivation {
-  name = "gtksourceview-2.8.1";
+  name = "gtksourceview-2.9.9";
   src = fetchurl {
-    url = mirror://gnome/sources/gtksourceview/2.8/gtksourceview-2.8.1.tar.bz2;
-    sha256 = "02irdw8sz374d3k51sx21hm7vmpkcwrhmnpp3v6afa2jcwi84zp6";
+    url = mirror://gnome/sources/gtksourceview/2.9/gtksourceview-2.9.9.tar.bz2;
+    sha256 = "0d0i586nj8jsqqfcjcvaj0yzc3sid3s1a4y62xr0qbddkbn1wllj";
   };
   buildInputs = [pkgconfig atk cairo glib gtk pango libxml2 perl intltool
     gettext];
diff --git a/pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix b/pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix
index 45aaf5c3d2fa..736857fca930 100644
--- a/pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix
+++ b/pkgs/desktops/gnome-2.28/desktop/libgweather/default.nix
@@ -1,13 +1,14 @@
-{stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup, libtasn1}:
+{stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup, libtasn1, nettle, gmp}:
 
+#Is this really necessary?
 assert stdenv ? glibc;
 
-stdenv.mkDerivation {
-  name = "libgweather-2.28.0";
+stdenv.mkDerivation rec {
+  name = "libgweather-2.30.3";
   src = fetchurl {
-    url = mirror://gnome/sources/libgweather/2.28/libgweather-2.28.0.tar.bz2;
-    sha256 = "0m4ncqzf13037zvyihydif1asgp6pnzdkmx5qnmffzb1gd6qxzb5";
+    url = "mirror://gnome/sources/libgweather/2.30/${name}.tar.bz2";
+    sha256 = "0k16lpdyy8as8wgc5dqpy5b8i9i4mrl77qx8db23fgs2c533fddq";
   };
   configureFlags = "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo";
-  buildInputs = [ pkgconfig libxml2 gtk intltool GConf libsoup libtasn1 ];
+  buildInputs = [ pkgconfig libxml2 gtk intltool GConf libsoup libtasn1 nettle gmp ];
 }
diff --git a/pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix b/pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix
index 3e201efe6cbd..3472f606f863 100644
--- a/pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix
+++ b/pkgs/desktops/gnome-2.28/desktop/librsvg/default.nix
@@ -6,5 +6,6 @@ stdenv.mkDerivation {
     url = mirror://gnome/sources/librsvg/2.26/librsvg-2.26.0.tar.bz2;
     sha256 = "1sivagvlyr58hxgazr6pyq3yfxbg0wrv7rgzsk5xi631v3qbbjpx";
   };
-  buildInputs = [ pkgconfig libxml2 libgsf bzip2 glib gtk libcroco ];
+  buildInputs = [ pkgconfig libxml2 libgsf bzip2 libcroco ];
+  propagatedBuildInputs = [ glib gtk ];
 }
diff --git a/pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.gnutls.patch b/pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.gnutls.patch
deleted file mode 100644
index de4b94f09572..000000000000
--- a/pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.gnutls.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/libsoup/soup-gnutls.c b/libsoup/soup-gnutls.c
---- a/libsoup/soup-gnutls.c
-+++ b/libsoup/soup-gnutls.c
-@@ -477,7 +477,7 @@ soup_ssl_wrap_iochannel (GIOChannel *sock, gboolean non_blocking,
-		goto THROW_CREATE_ERROR;
-
-	/* See http://bugzilla.gnome.org/show_bug.cgi?id=581342 */
--	if (gnutls_priority_set_direct (session, "NORMAL:!VERS-TLS1.1:!VERS-TLS1.0", NULL) != 0)
-+	if (gnutls_priority_set_direct (session, "NORMAL:!VERS-TLS1.2:!VERS-TLS1.1:!VERS-TLS1.0", NULL) != 0)
-		goto THROW_CREATE_ERROR;
-
-	if (gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE,
diff --git a/pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.nix b/pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.nix
deleted file mode 100644
index 6ddc76e0f4be..000000000000
--- a/pkgs/desktops/gnome-2.28/desktop/libsoup/2.31.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, libxml2, gnutls, libproxy, sqlite, curl, 
-  glib, GConf, gnome_keyring}:
-
-stdenv.mkDerivation {
-  name = "libsoup-2.31.2";
-  src = fetchurl {
-    url = mirror://gnome/sources/libsoup/2.31/libsoup-2.31.2.tar.bz2;
-    sha256 = "ae52e970deb0ca5e890d87cf55e555249c086bd56ae1fff69599174ca0075379";
-  };
-  patches = [./2.31.gnutls.patch];
-  buildInputs = [ pkgconfig libxml2 gnutls libproxy sqlite curl 
-    glib GConf gnome_keyring ];
-}
diff --git a/pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix b/pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix
index 584b583a2fd2..34d185bfe027 100644
--- a/pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix
+++ b/pkgs/desktops/gnome-2.28/desktop/libsoup/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, pkgconfig, libxml2, gnutls, libproxy, sqlite, curl, 
   glib, GConf, gnome_keyring}:
 
-stdenv.mkDerivation {
-  name = "libsoup-2.28.2";
+stdenv.mkDerivation rec {
+  name = "libsoup-2.33.6";
   src = fetchurl {
-    url = mirror://gnome/sources/libsoup/2.28/libsoup-2.28.2.tar.bz2;
-    sha256 = "002kxjh6dwpps4iwly1bazxlzgqhkfszqqy26mp1gy2il3lzrlcx";
+    url = "mirror://gnome/sources/libsoup/2.33/${name}.tar.bz2";
+    sha256 = "988f7897fe125a77a5946b2fd6d47d7374fd94a1406e810482cfff6a52a6a923";
   };
   buildInputs = [ pkgconfig libxml2 gnutls libproxy sqlite curl 
     glib GConf gnome_keyring ];
diff --git a/pkgs/desktops/gnome-2.28/desktop/vte/cursor.patch b/pkgs/desktops/gnome-2.28/desktop/vte/cursor.patch
deleted file mode 100644
index c152f6b656a0..000000000000
--- a/pkgs/desktops/gnome-2.28/desktop/vte/cursor.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Fix invisible cursor in xfce's terminal.
-
-http://bugzilla.xfce.org/show_bug.cgi?id=6423
-http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/vte/current/SOURCES/vte-0.25.1-cursor.patch?view=markup&pathrev=565638
-
-diff -p -up vte-0.25.1/src/vte.c.cursor vte-0.25.1/src/vte.c
---- vte-0.25.1/src/vte.c.cursor	2010-05-03 05:28:46.000000000 -0300
-+++ vte-0.25.1/src/vte.c	2010-08-03 14:06:29.000000000 -0300
-@@ -8752,6 +8752,10 @@ vte_terminal_determine_colors(VteTermina
- 	if (highlight && !cursor && terminal->pvt->highlight_color_set) {
- 		*fore = cell ? cell->attr.fore : VTE_DEF_FG;
- 		*back = VTE_DEF_HL;
-+	} else
-+	if (reverse ^ ((cell != NULL) && (cell->attr.reverse))) {
-+		*fore = cell ? cell->attr.back : VTE_DEF_BG;
-+		*back = cell ? cell->attr.fore : VTE_DEF_FG;
- 	} else {
- 		*fore = cell ? cell->attr.fore : VTE_DEF_FG;
- 		*back = cell ? cell->attr.back : VTE_DEF_BG;
-@@ -8782,13 +8786,6 @@ vte_terminal_determine_colors(VteTermina
- 		}
- 	}
- 
--	if (reverse ^ ((cell != NULL) && (cell->attr.reverse))) {
--	  int tmp;
--	  tmp = *fore;
--	  *fore = *back;
--	  *back = tmp;
--	}
--
- 	if (!cursor && cell && cell->attr.invisible) {
- 		*fore = *back;
- 	}
diff --git a/pkgs/desktops/gnome-2.28/desktop/vte/default.nix b/pkgs/desktops/gnome-2.28/desktop/vte/default.nix
index b7d93622c7d6..c061a2684792 100644
--- a/pkgs/desktops/gnome-2.28/desktop/vte/default.nix
+++ b/pkgs/desktops/gnome-2.28/desktop/vte/default.nix
@@ -2,15 +2,13 @@
 , pythonSupport ? false, python}:
 
 stdenv.mkDerivation rec {
-  name = "vte-0.25.1";
+  name = "vte-0.28.0";
   
   src = fetchurl {
-    url = "http://ftp.gnome.org/pub/gnome/sources/vte/0.25/${name}.tar.bz2";
-    sha256 = "105f5ifyg09nh5p6fw2w7c0n9wd8vw9cvwlh6zg49ibsar893qi5";
+    url = "http://ftp.gnome.org/pub/gnome/sources/vte/0.28/${name}.tar.bz2";
+    sha256 = "0blmblvjr35xajr0a07zcd58lk6x2hzympx17biw2mcym9kcarql";
   };
 
-  patches = [ ./cursor.patch ];
-  
   buildInputs = [ intltool pkgconfig glib gtk ncurses ] ++
                 stdenv.lib.optional pythonSupport python;
                 
diff --git a/pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix b/pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix
new file mode 100644
index 000000000000..5b7f590b29ca
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, pkgconfig, glib, libtool, intltool, gnutls, libproxy
+  , libgcrypt, libtasn1
+  }:
+
+stdenv.mkDerivation {
+  name = "glib-networking-2.28.5";
+  
+  src = fetchurl {
+    url = mirror://gnome/sources/glib-networking/2.28/glib-networking-2.28.5.tar.bz2;
+    sha256 = "959ffeb91fee17c1b0fb2aa82872c3daae0230de93708b2ebabeb92b747d7876";
+  };
+
+  configureFlags = [
+    "--without-ca-certificates"
+  ];
+  
+  preBuild = ''
+    sed -e "s@${glib}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile)
+  '';
+
+  buildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ glib libtool intltool gnutls libproxy libgcrypt 
+    libtasn1];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/gtkhtml/01_remove-disable-deprecated.patch b/pkgs/desktops/gnome-2.28/platform/gtkhtml/01_remove-disable-deprecated.patch
new file mode 100644
index 000000000000..1d9a179d236b
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/gtkhtml/01_remove-disable-deprecated.patch
@@ -0,0 +1,17 @@
+diff -Naur gtkhtml-3.32.2-orig/configure gtkhtml-3.32.2/configure
+--- gtkhtml-3.32.2-orig/configure	2011-02-05 23:12:31.000000000 -0500
++++ gtkhtml-3.32.2/configure	2011-04-22 13:03:18.228874636 -0400
+@@ -5761,12 +5761,7 @@
+ 
+ if test "x${enable_deprecated_flags}" = "xyes"; then
+ 
+-  list="-DG_DISABLE_DEPRECATED
+-		-DPANGO_DISABLE_DEPRECATED
+-		-DGDK_DISABLE_DEPRECATED
+-		-DGDK_PIXBUF_DISABLE_DEPRECATED
+-		-DGTK_DISABLE_DEPRECATED
+-		-DGNOME_DISABLE_DEPRECATED"
++  list=""
+   flags_supported=""
+   flags_unsupported=""
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported compiler flags" >&5
diff --git a/pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix b/pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix
index a6a99c35310d..49161c1a7455 100644
--- a/pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix
+++ b/pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix
@@ -2,12 +2,16 @@
 GConf, enchant, isocodes, gnome_icon_theme }:
 
 stdenv.mkDerivation rec {
-  name = "gtkhtml-3.29.92.1";
+  name = "gtkhtml-3.32.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtkhtml/3.29/${name}.tar.bz2";
-    sha256 = "a34fe24af0f591db95010475c21a461985ef4479b2e91602bc745a9accfeef77";
+    url = "mirror://gnome/sources/gtkhtml/3.32/${name}.tar.bz2";
+    sha256 = "17z3jwvpn8waz7bhwrk7a6vs9pad6sqmlxxcqwvxxq89ywy0ail7";
   };
 
+  #From Debian, fixes build issue described here:
+  #http://www.mail-archive.com/debian-bugs-rc@lists.debian.org/msg250091.html
+  patches = [ ./01_remove-disable-deprecated.patch ];
+
   buildInputs = [pkgconfig gtk intltool GConf enchant isocodes gnome_icon_theme ];
 }
diff --git a/pkgs/desktops/gnome-2.28/platform/libgnomecanvasmm/default.nix b/pkgs/desktops/gnome-2.28/platform/libgnomecanvasmm/default.nix
new file mode 100644
index 000000000000..4d0f3061c450
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libgnomecanvasmm/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, libgnomecanvas, gtkmm }:
+
+stdenv.mkDerivation {
+  name = "libgnomecanvasmm-2.26.0";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/libgnomecanvasmm/2.26/libgnomecanvasmm-2.26.0.tar.bz2;
+    sha256 = "996577f97f459a574919e15ba7fee6af8cda38a87a98289e9a4f54752d83e918";
+  };
+
+  buildInputs = [ pkgconfig libgnomecanvas gtkmm ];
+}
diff --git a/pkgs/desktops/kde-4.4/accessibility/default.nix b/pkgs/desktops/kde-4.4/accessibility/default.nix
deleted file mode 100644
index ac69952f09a1..000000000000
--- a/pkgs/desktops/kde-4.4/accessibility/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl, lib, cmake, qt4, perl, alsaLib, libXi, libXtst, kdelibs, automoc4, phonon}:
-
-stdenv.mkDerivation {
-  name = "kdeaccessibility-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdeaccessibility-4.4.5.tar.bz2;
-    sha256 = "1j8ndr7hjkqka64kyy7whxg9vzxyym0a6pd1wbr6hp1a99mhz4jv";
-  };
-  # Missing: speechd, I was too lazy to implement this
-  buildInputs = [ cmake qt4 perl alsaLib libXi libXtst kdelibs automoc4 phonon ];
-  meta = {
-    description = "KDE accessibility tools";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/admin/builder.sh b/pkgs/desktops/kde-4.4/admin/builder.sh
deleted file mode 100644
index 09cb930f0498..000000000000
--- a/pkgs/desktops/kde-4.4/admin/builder.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-source $stdenv/setup
-
-myPatchPhase()
-{
-    for i in system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py system-config-printer-kde/system-config-printer-kde.py
-    do
-	sed -i -e "s|/usr/share/system-config-printer|$system_config_printer/share/system-config-printer|" $i
-    done
-    
-    sed -i -e "s|import cupshelpers.ppds, cupshelpers.cupshelpers|import ppds, cupshelpers|" system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py
-}
-patchPhase=myPatchPhase
-genericBuild
diff --git a/pkgs/desktops/kde-4.4/admin/default.nix b/pkgs/desktops/kde-4.4/admin/default.nix
deleted file mode 100644
index 978c3be26c41..000000000000
--- a/pkgs/desktops/kde-4.4/admin/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, pkgconfig, perl, python
-, sip, pyqt4, pycups, rhpl, system_config_printer
-, kdelibs, kdepimlibs, kdebindings, automoc4, phonon}:
-
-stdenv.mkDerivation {
-  name = "kdeadmin-4.4.5";
-  
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdeadmin-4.4.5.tar.bz2;
-    sha256 = "1jmjvjjpkcjqdxyxc4n5z3l3p4hy8par06n7xicbzx9a1mzj71wy";
-  };
-  
-  builder = ./builder.sh;
-  
-  inherit system_config_printer;
-  
-  PYTHONPATH = "${pycups}/lib/python2.6/site-packages";
-  
-  buildInputs = [ cmake qt4 pkgconfig perl python sip pyqt4 pycups rhpl system_config_printer
-                  kdelibs kdepimlibs kdebindings automoc4 phonon ];
-                  
-  meta = {
-    description = "KDE Administration Utilities";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/artwork/default.nix b/pkgs/desktops/kde-4.4/artwork/default.nix
deleted file mode 100644
index d1ef167951d7..000000000000
--- a/pkgs/desktops/kde-4.4/artwork/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, xscreensaver
-, kdelibs, kdebase_workspace, automoc4, phonon, strigi, eigen}:
-
-stdenv.mkDerivation {
-  name = "kdeartwork-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdeartwork-4.4.5.tar.bz2;
-    sha256 = "1m12rj83wp36a3ii8frx52jk7hi7g8rb451n4g9hg5rdbllcfs93";
-  };
-  buildInputs = [ cmake qt4 perl xscreensaver
-                  kdelibs kdebase_workspace automoc4 phonon strigi eigen ];
-  meta = {
-    description = "KDE artwork";
-    longDescription = "Contains various artwork for KDE such as backgrounds, icons and screensavers";
-    license = "LGPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/base-runtime/default.nix b/pkgs/desktops/kde-4.4/base-runtime/default.nix
deleted file mode 100644
index afe2b28ff844..000000000000
--- a/pkgs/desktops/kde-4.4/base-runtime/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, perl, bzip2, xz, qt4, alsaLib, xineLib, samba, shared_mime_info, exiv2, libssh
-, kdelibs, automoc4, phonon, strigi, soprano, cluceneCore, attica, virtuoso, makeWrapper }:
-
-stdenv.mkDerivation {
-  name = "kdebase-runtime-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdebase-runtime-4.4.5.tar.bz2;
-    sha256 = "0a0lg0vkdq8v3rydg6n6nk3gqc3vn3sz2rn5gzm0vd2k5wyy8frx";
-  };
-
-/*  CLUCENE_HOME=cluceneCore;*/
-  buildInputs = [ cmake perl bzip2 xz qt4 alsaLib xineLib samba stdenv.gcc.libc shared_mime_info exiv2 libssh
-                  kdelibs automoc4 phonon strigi soprano cluceneCore attica makeWrapper];
-
-  postInstall = ''
-    wrapProgram "$out/bin/nepomukservicestub" --prefix LD_LIBRARY_PATH : "${virtuoso}/lib" \
-        --prefix PATH : "${virtuoso}/bin"
-  '';
-
-  meta = {
-    description = "KDE runtime";
-    longDescription = "Libraries and tools which supports running KDE desktop applications";
-    license = "LGPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/base-workspace/default.nix b/pkgs/desktops/kde-4.4/base-workspace/default.nix
deleted file mode 100644
index 577ed62812fa..000000000000
--- a/pkgs/desktops/kde-4.4/base-workspace/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, perl, python, pam, consolekit
-, qt4, sip, pyqt4, kdelibs, kdepimlibs, kdebindings
-, libXi, libXau, libXdmcp, libXtst, libXcomposite, libXdamage, libXScrnSaver
-, lm_sensors, libxklavier, libusb, libpthreadstubs, boost
-, automoc4, phonon, strigi, soprano, qimageblitz, akonadi, polkit_qt
-, bluez
-}:
-
-stdenv.mkDerivation {
-  name = "kdebase-workspace-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdebase-workspace-4.4.5.tar.bz2;
-    sha256 = "1ri0ghvbnjflpqzwgyhs3bl17gh2cvjffkcd6w0yymarv6n5sisk";
-  };
-  buildInputs = [ cmake perl python qt4 pam consolekit sip pyqt4 kdelibs libXtst
-    kdepimlibs kdebindings boost libusb stdenv.gcc.libc libXi libXau libXdmcp
-    libXcomposite libXdamage libXScrnSaver lm_sensors libxklavier automoc4
-    phonon strigi soprano qimageblitz akonadi polkit_qt libpthreadstubs bluez ];
-  patchPhase=''
-    sed -i -e 's|''${PYTHON_SITE_PACKAGES_DIR}|''${CMAKE_INSTALL_PREFIX}/lib/python2.6/site-packages|' \
-      plasma/generic/scriptengines/python/CMakeLists.txt
-  '';
-  meta = {
-    description = "KDE Workspace";
-    longDescription = "KDE base components that are only required to work with X11 such KDM and KWin";
-    license = "GPL";
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/base/default.nix b/pkgs/desktops/kde-4.4/base/default.nix
deleted file mode 100644
index ef31022d016a..000000000000
--- a/pkgs/desktops/kde-4.4/base/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, perl, qt4, kdelibs, pciutils, libraw1394
-, kdebase_workspace
-, automoc4, phonon, strigi, qimageblitz, soprano}:
-
-stdenv.mkDerivation {
-  name = "kdebase-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdebase-4.4.5.tar.bz2;
-    sha256 = "1q3bmpskrfqddyywn895xdp9p53hbd7siabvla7w6z35azi9fpn9";
-  };
-  buildInputs = [ cmake perl qt4 kdelibs pciutils stdenv.gcc.libc libraw1394
-                  kdebase_workspace automoc4 phonon strigi qimageblitz soprano ];
-  meta = {
-    description = "KDE Base components";
-    longDescription = "Applications that form the KDE desktop, like Plasma, System Settings, Konqueror, Dolphin, Kate, and Konsole";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/bindings/default.nix b/pkgs/desktops/kde-4.4/bindings/default.nix
deleted file mode 100644
index e0003ec461c9..000000000000
--- a/pkgs/desktops/kde-4.4/bindings/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, perl, python, sip, pyqt4, zlib, libpng, freetype, fontconfig, qt4, boost
-, kdelibs, kdepimlibs, automoc4, phonon, soprano, akonadi, qimageblitz, attica, polkit_qt
-}:
-
-# This function will only build the pykde4 module. I don't need the other bindings and
-# some bindings are even broken.
-
-stdenv.mkDerivation {
-  name = "kdebindings-4.4.5";
-  
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdebindings-4.4.5.tar.bz2;
-    sha256 = "0l8lk8vl68jc82lai4ljlm9ph53q4fn0ki0jq45lizdmqjgvahy4";
-  };
-
-  patches =
-    [ (fetchurl {
-        url = "http://bugs.gentoo.org/attachment.cgi?id=238975";
-        sha256 = "0vng8j8fhbq5ys8hy0bcvi6x2bym9j65dh61m2c1dr3z7rsx2bqb";
-      })
-    ];
-  
-  # Disable smoke because I don't need it and gives us an error
-  cmakeFlags = [ "-DENABLE_SMOKE=OFF" ];
-  preConfigure = ''
-    cmakeFlags="$cmakeFlags -DPYTHON_SITE_PACKAGES_DIR=$out/lib/${python.libPrefix}/site-packages"
-    cmakeFlags="$cmakeFlags -DSIP_DEFAULT_SIP_DIR=$out/share/sip"
-  '';
-  
-  # Okular seems also an optional depenedency which I left out
-  buildInputs = [ cmake perl python sip pyqt4 zlib libpng freetype fontconfig qt4 boost
-		  kdelibs kdepimlibs automoc4 phonon soprano akonadi qimageblitz attica polkit_qt ];
-  meta = {
-    description = "KDE bindings";
-    longDescription = "Provides KDE bindings for several languages such as Java, Smoke and Python";
-    license = "LGPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/default.nix b/pkgs/desktops/kde-4.4/default.nix
deleted file mode 100644
index 9e64b0b7c5fd..000000000000
--- a/pkgs/desktops/kde-4.4/default.nix
+++ /dev/null
@@ -1,231 +0,0 @@
-pkgs:
-
-pkgs.recurseIntoAttrs (rec {
-  inherit (pkgs) qt4 stdenv;
-
-### SUPPORT
-  automoc4 = import ./support/automoc4 {
-    inherit (pkgs) stdenv fetchurl lib cmake;
-    inherit (pkgs) qt4;
-  };
-
-  phonon = import ./support/phonon {
-    inherit (pkgs) stdenv fetchurl cmake pkgconfig;
-    inherit (pkgs) qt4 xineLib;
-    pulseaudio = if pkgs.getConfig ["phonon" "pulseaudioSupport"] true then pkgs.pulseaudio else null;
-    inherit (pkgs.gst_all) gstreamer gstPluginsBase;
-    inherit (pkgs.xlibs) libXau libXdmcp libpthreadstubs;
-    inherit automoc4;
-  };
-
-  strigi = import ./support/strigi {
-    inherit (pkgs) stdenv fetchurl lib cmake perl;
-    inherit (pkgs) bzip2 qt4 libxml2 expat exiv2 cluceneCore;
-  };
-  
-  soprano = import ./support/soprano {
-    inherit (pkgs) stdenv fetchurl lib cmake;
-    inherit (pkgs) qt4 cluceneCore redland libiodbc;
-  };
-  
-  qimageblitz = import ./support/qimageblitz {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4;
-  };
-  
-  qca2 = import ./support/qca2 {
-    inherit (pkgs) stdenv fetchurl which qt4;
-  };
-
-  qca2_ossl = import ./support/qca2/ossl.nix {
-    inherit (pkgs) stdenv fetchurl fetchsvn qt4 openssl;
-    inherit qca2;
-  };
-  
-  akonadi = import ./support/akonadi {
-    inherit (pkgs) stdenv fetchurl cmake qt4 shared_mime_info libxslt boost mysql;
-    inherit automoc4 soprano;
-  };
-  
-  eigen = import ./support/eigen {
-    inherit (pkgs) stdenv fetchurl lib cmake;
-  };
-  
-  polkit_qt = import ./support/polkit-qt {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 policykit;
-    inherit automoc4;
-  };
-  
-  attica = import ./support/attica {
-    inherit (pkgs) stdenv fetchurl cmake qt4;
-  };
-  
-### LIBS
-  kdelibs = import ./libs {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl bzip2 pcre fam libxml2 libxslt;
-    inherit (pkgs) xz flex bison giflib jasper openexr aspell avahi shared_mime_info
-      kerberos acl attr shared_desktop_ontologies enchant;
-    inherit (pkgs.xlibs) libXScrnSaver;
-    inherit automoc4 phonon strigi soprano qca2 attica polkit_qt;
-  };
-  
-### BASE  
-  kdebase_workspace = import ./base-workspace {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl python pam sip pyqt4;
-    inherit (pkgs) lm_sensors libxklavier libusb boost consolekit;
-    inherit (pkgs.xlibs) libXi libXau libXdmcp libXtst libXcomposite libXdamage libXScrnSaver libpthreadstubs;
-    inherit kdelibs kdepimlibs kdebindings;
-    inherit automoc4 phonon strigi soprano qimageblitz akonadi polkit_qt;
-    inherit (pkgs) bluez;
-  };
-  
-  kdebase = import ./base {
-    inherit (pkgs) stdenv fetchurl lib cmake perl qt4 pciutils libraw1394;
-    inherit kdelibs kdebase_workspace;
-    inherit automoc4 phonon strigi qimageblitz soprano;
-  };
-  
-  kdebase_runtime = import ./base-runtime {
-    inherit (pkgs) stdenv fetchurl lib cmake perl bzip2 xz qt4 exiv2 libssh makeWrapper;
-    inherit (pkgs) shared_mime_info xineLib alsaLib samba cluceneCore virtuoso;
-    inherit kdelibs attica;
-    inherit automoc4 phonon strigi soprano;
-  };
-
-  oxygen_icons = import ./oxygen-icons {
-    inherit (pkgs) stdenv fetchurl lib cmake;
-  };
-  
-### ADDITIONAL
-
-  kdepimlibs = import ./pimlibs {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl boost cyrus_sasl gpgme;
-    inherit (pkgs) libical openldap shared_mime_info;
-    inherit kdelibs;
-    inherit automoc4 phonon akonadi;
-  };
-  
-  kdeadmin = import ./admin {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 pkgconfig perl python sip pyqt4 pycups rhpl system_config_printer;
-    inherit kdelibs kdepimlibs kdebindings;
-    inherit automoc4 phonon;
-  };
-  
-  kdeartwork = import ./artwork {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl xscreensaver;
-    inherit kdelibs kdebase_workspace;
-    inherit automoc4 phonon strigi eigen;
-  };
-  
-  kdeaccessibility = import ./accessibility {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl alsaLib;
-    inherit (pkgs.xlibs) libXi libXtst;
-    inherit kdelibs;
-    inherit automoc4 phonon;
-  };
-  
-  kdeedu = import ./edu {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl libxml2 libxslt openbabel boost;
-    inherit (pkgs) readline gmm gsl xplanet libspectre;
-    inherit kdelibs attica;
-    inherit automoc4 phonon eigen;
-  };
-  
-  kdegraphics = import ./graphics {
-    inherit (pkgs) stdenv fetchurl lib cmake perl qt4 exiv2 lcms saneBackends libgphoto2;
-    inherit (pkgs) libspectre djvulibre chmlib shared_mime_info;
-    inherit (pkgs.xlibs) libXxf86vm;
-    poppler = pkgs.popplerQt4;
-    inherit kdelibs;
-    inherit automoc4 phonon strigi qimageblitz soprano qca2;
-  };
-  
-  kdemultimedia = import ./multimedia {
-    inherit (pkgs) stdenv fetchurl lib cmake perl qt4;
-    inherit (pkgs) alsaLib xineLib libvorbis flac taglib cdparanoia lame;
-    inherit kdelibs;
-    inherit automoc4 phonon;
-  };
-  
-  kdenetwork = import ./network {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl gmp speex libxml2 libxslt sqlite alsaLib;
-    inherit (pkgs) libidn libvncserver libmsn giflib gpgme boost libv4l libotr;
-    inherit (pkgs.xlibs) libXi libXtst libXdamage libXxf86vm;
-    inherit kdelibs kdepimlibs;
-    inherit automoc4 phonon qca2 soprano qimageblitz strigi;
-  };
-  
-  kdepim = import ./pim {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl boost gpgme libassuan libgpgerror libxslt;
-    inherit (pkgs) shared_mime_info;
-    inherit (pkgs.xlibs) libXScrnSaver;
-    inherit kdelibs kdepimlibs kdepim_runtime;
-    inherit automoc4 phonon akonadi strigi soprano qca2;
-  };
-  
-  kdepim_runtime = import ./pim-runtime {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl libxml2 libxslt boost;
-    inherit (pkgs) shared_mime_info;
-    inherit kdelibs kdepimlibs;
-    inherit automoc4 phonon akonadi soprano strigi;
-  };
-  
-  kdeplasma_addons = import ./plasma-addons {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl python shared_mime_info;
-    inherit (pkgs.xlibs) libXtst libXi;    
-    inherit kdelibs kdebase_workspace kdepimlibs kdebase kdegraphics kdeedu;
-    inherit automoc4 phonon soprano eigen qimageblitz attica qca2;
-  };
-  
-  kdegames = import ./games {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl shared_mime_info;
-    inherit kdelibs;
-    inherit automoc4 phonon qca2;
-  };
-
-  kdetoys = import ./toys {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl;
-    inherit kdelibs kdebase_workspace;
-    inherit automoc4 phonon;
-  };
-    
-  kdeutils = import ./utils {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl python gmp libzip libarchive xz sip pyqt4 pycups rhpl system_config_printer;
-    inherit kdelibs kdepimlibs kdebase kdebindings;
-    inherit automoc4 phonon qimageblitz qca2;
-  };
-  
-### DEVELOPMENT
-
-  kdebindings = import ./bindings {
-    inherit (pkgs) stdenv fetchurl cmake perl lib python sip zlib libpng pyqt4 freetype fontconfig qt4 boost;
-    inherit kdelibs kdepimlibs automoc4 phonon soprano akonadi qimageblitz attica polkit_qt;
-  };
-  
-  kdesdk = import ./sdk {
-    inherit (pkgs) stdenv fetchurl cmake qt4 perl libxml2 libxslt boost
-      subversion apr aprutil shared_mime_info hunspell;
-    inherit kdelibs kdepimlibs;
-    inherit automoc4 phonon strigi;
-  };
-  
-  kdewebdev = import ./webdev {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl libxml2 libxslt boost;
-    inherit kdelibs kdepimlibs;
-    inherit automoc4 phonon;
-  };
-
-#### EXTRA GEAR
-
-  k3b = import ./extragear/k3b {
-    inherit (pkgs) stdenv fetchurl cmake qt4 perl shared_mime_info libvorbis taglib gettext;
-    inherit (pkgs) ffmpeg flac libsamplerate libdvdread lame libsndfile libmad;
-    inherit kdelibs kdemultimedia;
-    inherit automoc4 phonon;
-  };
-
-  l10n = pkgs.recurseIntoAttrs (import ./l10n {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl gettext;
-    inherit kdelibs;
-    inherit automoc4 phonon;
-  });
-})
diff --git a/pkgs/desktops/kde-4.4/edu/default.nix b/pkgs/desktops/kde-4.4/edu/default.nix
deleted file mode 100644
index becfb421f253..000000000000
--- a/pkgs/desktops/kde-4.4/edu/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, libxml2, libxslt, openbabel, boost, readline, gmm, gsl
-, xplanet, libspectre
-, kdelibs, automoc4, phonon, eigen, attica}:
-
-stdenv.mkDerivation {
-  name = "kdeedu-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdeedu-4.4.5.tar.bz2;
-    sha256 = "1n5r50w6510jr2l7faxkbz684bj1aw7s2arxqvasfs51hn2jl9qk";
-  };
-#TODO: facile, indi, boost.python, cfitsio, R, qalculate
-  buildInputs = [ cmake qt4 perl libxml2 libxslt openbabel boost readline gmm gsl xplanet
-                  kdelibs automoc4 phonon eigen attica libspectre ];
-  meta = {
-    description = "KDE Educative software";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/extragear/k3b/default.nix b/pkgs/desktops/kde-4.4/extragear/k3b/default.nix
deleted file mode 100644
index 835dbe69593b..000000000000
--- a/pkgs/desktops/kde-4.4/extragear/k3b/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, perl, shared_mime_info, libvorbis, taglib
-, ffmpeg, flac, libsamplerate, libdvdread, lame, libsndfile, libmad, gettext
-, kdelibs, kdemultimedia
-, automoc4, phonon
-}:
-
-stdenv.mkDerivation {
-  name = "k3b-2.0.0";
-  src = fetchurl {
-    url = mirror://sourceforge/k3b/k3b-2.0.0.tar.bz2;
-    sha256 = "0jrl4z9k5ml82xd903n4dm68fvmrkyp3k7c17b2494y2gawzqwfz";
-  };
-  buildInputs = [ cmake qt4 perl shared_mime_info libvorbis taglib 
-                  ffmpeg flac libsamplerate libdvdread lame libsndfile
-		  libmad gettext stdenv.gcc.libc
-                  kdelibs kdemultimedia automoc4 phonon ];
-  meta = {
-    description = "CD/DVD Burning Application for KDE";
-    license = "GPLv2+";
-    maintainers = [ stdenv.lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/games/default.nix b/pkgs/desktops/kde-4.4/games/default.nix
deleted file mode 100644
index aea958f185a8..000000000000
--- a/pkgs/desktops/kde-4.4/games/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl, lib, cmake, qt4, perl, shared_mime_info, kdelibs, automoc4, phonon, qca2}:
-
-stdenv.mkDerivation {
-  name = "kdegames-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdegames-4.4.5.tar.bz2;
-    sha256 = "02p4ggwk1rdxljax2iry7hirh90llcbqwynccxz4n4j6q219k6d3";
-  };
-  buildInputs = [ cmake qt4 perl shared_mime_info kdelibs automoc4 phonon qca2 ];
-  meta = {
-    description = "KDE Games";
-    homepage = http://www.kde.org;
-    license = "GPL";
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/graphics/default.nix b/pkgs/desktops/kde-4.4/graphics/default.nix
deleted file mode 100644
index 5f5b7330a465..000000000000
--- a/pkgs/desktops/kde-4.4/graphics/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, cmake, lib, perl, qt4, exiv2, lcms, saneBackends, libgphoto2
-, libspectre, poppler, djvulibre, chmlib, shared_mime_info, libXxf86vm
-, kdelibs, automoc4, phonon, strigi, qimageblitz, soprano, qca2}:
-
-stdenv.mkDerivation {
-  name = "kdegraphics-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdegraphics-4.4.5.tar.bz2;
-    sha256 = "1y9ndv0gajhyqiavm4zml6dyn1czrpan03wcn4civkcsgrm3gz8y";
-  };
-  buildInputs = [ cmake perl qt4 exiv2 lcms saneBackends libgphoto2 libspectre poppler chmlib
-                  shared_mime_info stdenv.gcc.libc libXxf86vm
-                  kdelibs automoc4 phonon strigi qimageblitz soprano qca2
-                  djvulibre];
-  meta = {
-    description = "KDE graphics utilities";
-    longDescription = ''
-      Contains various graphics utilities such as the Gwenview image viewer and
-      Okular a document reader.
-    '';
-    license = "GPL";
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/l10n/default.nix b/pkgs/desktops/kde-4.4/l10n/default.nix
deleted file mode 100644
index 589b8ac040a4..000000000000
--- a/pkgs/desktops/kde-4.4/l10n/default.nix
+++ /dev/null
@@ -1,366 +0,0 @@
-# THIS IS A GENERATED FILE.  DO NOT EDIT!
-{stdenv, fetchurl, lib, cmake, qt4, perl, gettext, kdelibs, automoc4, phonon}:
-
-let
-
-  deriv = attr : stdenv.mkDerivation {
-    name = "kde-l10n-${attr.lang}-4.4.5";
-    src = fetchurl {
-      url = attr.url;
-      sha256 = attr.sha256;
-    };
-    buildInputs = [ cmake qt4 perl gettext kdelibs automoc4 phonon ];
-    cmakeFlagsArray = [ "-DGETTEXT_INCLUDE_DIR=${gettext}/include" ];
-    meta = {
-      description = "KDE l10n for ${attr.lang}";
-      license = "GPL";
-      homepage = http://www.kde.org;
-    };
-  };
-
-in
-{
-
-  ar = deriv {
-    lang = "ar";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ar-4.4.5.tar.bz2";
-    sha256 = "1nc5kpy4cq7cjck6dfzql9djmnimz0khngscdrl8yhahg78sndq7";
-  };
-
-  bg = deriv {
-    lang = "bg";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-bg-4.4.5.tar.bz2";
-    sha256 = "136llbcv3955ih33ih0j2ccbnj4whc9jidf9flr7kpkz5pin4k11";
-  };
-
-  ca = deriv {
-    lang = "ca";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ca-4.4.5.tar.bz2";
-    sha256 = "1qc9ka78qcmy0pq9q7xa61lmcfz77picxlzs0g46npv073kyn4xp";
-  };
-
-  cs = deriv {
-    lang = "cs";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-cs-4.4.5.tar.bz2";
-    sha256 = "0q9cay61sv6rrsim3v91n8xbpsc0qm97sbhgaa6p5s63xpvpjzp8";
-  };
-
-  csb = deriv {
-    lang = "csb";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-csb-4.4.5.tar.bz2";
-    sha256 = "1yy1jdjskz96nha1lmxy4yjl8wfljp4qgzydxw2pcac54hr6wgxr";
-  };
-
-  da = deriv {
-    lang = "da";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-da-4.4.5.tar.bz2";
-    sha256 = "0qdqa31i0vyg95dqbwg3zyprzdgq7xmvk3iax5dsi9q2bms1cxq5";
-  };
-
-  de = deriv {
-    lang = "de";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-de-4.4.5.tar.bz2";
-    sha256 = "0562srr33k648q8xc3865j9clrwqj8ihv7n6f7dmnbkcn93jcp5x";
-  };
-
-  el = deriv {
-    lang = "el";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-el-4.4.5.tar.bz2";
-    sha256 = "1rc7cap8xb28bv7f1fk3m1mbylixy246zq4srws0pawdfdm9k5nj";
-  };
-
-  en_GB = deriv {
-    lang = "en_GB";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-en_GB-4.4.5.tar.bz2";
-    sha256 = "0zpj06jx77fviv90k56br94fn28bimfhva3r12idr6fli5il99y5";
-  };
-
-  eo = deriv {
-    lang = "eo";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-eo-4.4.5.tar.bz2";
-    sha256 = "1mwmlg4dxk1alzq768j07ccyflil60dm63d6008s2hg4jw0pgpkr";
-  };
-
-  es = deriv {
-    lang = "es";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-es-4.4.5.tar.bz2";
-    sha256 = "0flddrdkys6p7cd5vfakdl2g7vpc6h277a4phszmlnssfr2jlhib";
-  };
-
-  et = deriv {
-    lang = "et";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-et-4.4.5.tar.bz2";
-    sha256 = "0vpn8ylr336i9hax24jvxxy284gaw7jcxwqxgkqc3c7fl9nji7xz";
-  };
-
-  eu = deriv {
-    lang = "eu";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-eu-4.4.5.tar.bz2";
-    sha256 = "0q0h2q73jha1vgk60b1ycfh2ci5vavscva9a1xl42rzkxrqzp7bw";
-  };
-
-  fi = deriv {
-    lang = "fi";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-fi-4.4.5.tar.bz2";
-    sha256 = "19anfv3jxlnzs6mx5qlfj9v6nxxpbn2g5vppj771y7ir2wgx79gx";
-  };
-
-  fr = deriv {
-    lang = "fr";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-fr-4.4.5.tar.bz2";
-    sha256 = "09qzm6zr8rjsr50bxr3cnsfj4l4qpzf1dmkx3qk0vvvmagry23vy";
-  };
-
-  fy = deriv {
-    lang = "fy";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-fy-4.4.5.tar.bz2";
-    sha256 = "01pa23gxy0a3jsnsdvsbgsfdfvwiancyx3w4fw3gx4b4j9y9gfry";
-  };
-
-  ga = deriv {
-    lang = "ga";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ga-4.4.5.tar.bz2";
-    sha256 = "0dfq497v8shzr2r1nqs093nyd32ka74wznp20z2wgsw8yfylgbhs";
-  };
-
-  gl = deriv {
-    lang = "gl";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-gl-4.4.5.tar.bz2";
-    sha256 = "0lp443wpi7gj7i078mxbxswk4niziqc5iyw4mx94cm4g0h2k3cba";
-  };
-
-  gu = deriv {
-    lang = "gu";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-gu-4.4.5.tar.bz2";
-    sha256 = "0s959r1c5klh0cr6mczmmfzsgvzyihpacia46q8ckvjddx7zmb0b";
-  };
-
-  he = deriv {
-    lang = "he";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-he-4.4.5.tar.bz2";
-    sha256 = "090s786g9f1jas8dqsh7hqx5idzckd0lg5gz1v7fx254qnfmj6rx";
-  };
-
-  hi = deriv {
-    lang = "hi";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-hi-4.4.5.tar.bz2";
-    sha256 = "1ysw8h7v0a2idf13jxi46k1b28vg8yl11hfzin4ihfbr5q03fqck";
-  };
-
-  hr = deriv {
-    lang = "hr";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-hr-4.4.5.tar.bz2";
-    sha256 = "0fh7mfzy41mx0c3mvrv2rdwmk82mrlb84azzvfsanznzk74pnbgr";
-  };
-
-  hu = deriv {
-    lang = "hu";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-hu-4.4.5.tar.bz2";
-    sha256 = "1yw91mzc4mcjzqk7syxkxybby6ay02z8ssbhbjm8vb52mh1a9js7";
-  };
-
-  id = deriv {
-    lang = "id";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-id-4.4.5.tar.bz2";
-    sha256 = "1ds4ncfb4xp0bd0dijichgp289abhm10f285bwnanzzjn442i4x6";
-  };
-
-  is = deriv {
-    lang = "is";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-is-4.4.5.tar.bz2";
-    sha256 = "07xx45wy1n5kqg6fwdl27w1kpvqs6djj6yv6lxq2vbh5di3h5zpj";
-  };
-
-  it = deriv {
-    lang = "it";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-it-4.4.5.tar.bz2";
-    sha256 = "1agl195pkxh55669gmcnd97z3bd9ff1c448d8rnq2rqr0xysj1mr";
-  };
-
-  ja = deriv {
-    lang = "ja";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ja-4.4.5.tar.bz2";
-    sha256 = "0axra17rpv5hdr83yvd0n3kgp51frkf5b5kfg1bg7sf44kn9fhv5";
-  };
-
-  kk = deriv {
-    lang = "kk";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-kk-4.4.5.tar.bz2";
-    sha256 = "1gkli53ryfbb64b9x2fl76cid98m99lxszn0cczfmfdvjlc0vgxr";
-  };
-
-  km = deriv {
-    lang = "km";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-km-4.4.5.tar.bz2";
-    sha256 = "0113z5560zsjr9jrgh58nch9h4xlqclld2zqc8yah90i7jpas3aq";
-  };
-
-  kn = deriv {
-    lang = "kn";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-kn-4.4.5.tar.bz2";
-    sha256 = "0m6gz9sl21hfnpk3z8y33aqfv17z1x1b8j24jf88qvl01nsk4889";
-  };
-
-  ko = deriv {
-    lang = "ko";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ko-4.4.5.tar.bz2";
-    sha256 = "0j30rj155fcd0wmbkbbwm2vybb9x3g6dq3mipmf1zipm1nm7m64l";
-  };
-
-  lt = deriv {
-    lang = "lt";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-lt-4.4.5.tar.bz2";
-    sha256 = "10swp16mab3kh393dcwn1k9qm5jrcqigixrw39hlbsyaw9jf9j37";
-  };
-
-  lv = deriv {
-    lang = "lv";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-lv-4.4.5.tar.bz2";
-    sha256 = "0niyc9awcdfnx3gi63vw83ni1nb870384f4wyhmms8zdkvca5hjc";
-  };
-
-  mai = deriv {
-    lang = "mai";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-mai-4.4.5.tar.bz2";
-    sha256 = "1clmcpqj4m7mwf2v62500jqjb94gpmlzxjp3cflraf9w4nmvv66a";
-  };
-
-  mk = deriv {
-    lang = "mk";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-mk-4.4.5.tar.bz2";
-    sha256 = "09gbk50bw7d8hpj0jwyz0wzd34fq7h9r35vj6750vpv7pbyz4l7q";
-  };
-
-  ml = deriv {
-    lang = "ml";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ml-4.4.5.tar.bz2";
-    sha256 = "1bsr4civp003wgnpl790z5cfh1rayn7xc6lvvrpk4hrcr2b5skj9";
-  };
-
-  nb = deriv {
-    lang = "nb";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-nb-4.4.5.tar.bz2";
-    sha256 = "1i9chazhp0s22rva0swkvd7zpl5my6pbgckn5fj924fkbs6336jl";
-  };
-
-  nds = deriv {
-    lang = "nds";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-nds-4.4.5.tar.bz2";
-    sha256 = "0kyn8mn8jm03sd56q6hm884ywshl5i6wy9vmskaqpclp9y6xbwlc";
-  };
-
-  nl = deriv {
-    lang = "nl";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-nl-4.4.5.tar.bz2";
-    sha256 = "0fnssviivx8xdg9vq5iy44al6dz82mg3p41ngkyghh25xfm0iswr";
-  };
-
-  nn = deriv {
-    lang = "nn";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-nn-4.4.5.tar.bz2";
-    sha256 = "0mfr3jqx1nrd3gf4319c29f3hhks9b2hn7r6bidwsmipar8b3pgd";
-  };
-
-  pa = deriv {
-    lang = "pa";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-pa-4.4.5.tar.bz2";
-    sha256 = "0aciihaprzndn5j4d8dsc2b13sq1xac89j6r0assbvhgmix06844";
-  };
-
-  pl = deriv {
-    lang = "pl";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-pl-4.4.5.tar.bz2";
-    sha256 = "1xq63d020k8fyqc0akpm3kvqrvg2g91r679ny51n13xmdcq59y1f";
-  };
-
-  pt = deriv {
-    lang = "pt";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-pt-4.4.5.tar.bz2";
-    sha256 = "0bkmw9rs7wzlycvih0ma97a3n1ly4x8cyv5c682rf3ykvnmkv1n1";
-  };
-
-  pt_BR = deriv {
-    lang = "pt_BR";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-pt_BR-4.4.5.tar.bz2";
-    sha256 = "1c4y5d7s2yvydnr0dmgnr0g871mblvkx0higzwivknd54nzf6fba";
-  };
-
-  ro = deriv {
-    lang = "ro";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ro-4.4.5.tar.bz2";
-    sha256 = "1lmz85a011m0f0cq7pj4ni2q3p3dzqqbgmii63hrn29ss4kvvkyw";
-  };
-
-  ru = deriv {
-    lang = "ru";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-ru-4.4.5.tar.bz2";
-    sha256 = "09ywm943k2v0cj3a82wrayi05m4gx2vvjff37v5hj4fxxw8785sv";
-  };
-
-  si = deriv {
-    lang = "si";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-si-4.4.5.tar.bz2";
-    sha256 = "0x3c9qp2crfghws0dckhjgjs3znvbj1pzllipj587snj2m43a1m8";
-  };
-
-  sk = deriv {
-    lang = "sk";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-sk-4.4.5.tar.bz2";
-    sha256 = "11dl6g4gyf62sxgxa1mpd6j78alkavsvqbjs46pv4jzl0c6z586z";
-  };
-
-  sl = deriv {
-    lang = "sl";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-sl-4.4.5.tar.bz2";
-    sha256 = "1p73g5bgyfzkfk8z6fi3kp2zs9hax4hwsf526hzs73v3z9prki9d";
-  };
-
-  sr = deriv {
-    lang = "sr";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-sr-4.4.5.tar.bz2";
-    sha256 = "1db60arnzpn9ca3zjnvfgx2sr5dw49w6z7ff6knpi88kzalv1w1i";
-  };
-
-  sv = deriv {
-    lang = "sv";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-sv-4.4.5.tar.bz2";
-    sha256 = "1ilpfca451xy6ls86l1pvd7srs3075h70kysyn1q4h9j18gfy03q";
-  };
-
-  tg = deriv {
-    lang = "tg";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-tg-4.4.5.tar.bz2";
-    sha256 = "0a0rvjqlvlzd99k1c04qmhkwg5814qcnjanx4dryqj5ridv2l2k1";
-  };
-
-  tr = deriv {
-    lang = "tr";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-tr-4.4.5.tar.bz2";
-    sha256 = "1im41dvwrf9bhk3yqprxbzjz7ark1kpc3bbix49c6fbmgkvfn2h5";
-  };
-
-  uk = deriv {
-    lang = "uk";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-uk-4.4.5.tar.bz2";
-    sha256 = "1ik51g3bgj4vvy3wzdnm7p2liwrkk3nrszydl7j2024fzj2vfyd2";
-  };
-
-  wa = deriv {
-    lang = "wa";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-wa-4.4.5.tar.bz2";
-    sha256 = "0mcv8rf54vxfq8ql4h8b573xdlw9x6j740zq7ki1qscvgrcj03g0";
-  };
-
-  zh_CN = deriv {
-    lang = "zh_CN";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-zh_CN-4.4.5.tar.bz2";
-    sha256 = "0w42x6dwnhz8668smgk3ld8bb7dvx60py4q7fj50qmipkb8vwh20";
-  };
-
-  zh_TW = deriv {
-    lang = "zh_TW";
-    url = "mirror://kde/stable/4.4.5/src/kde-l10n/kde-l10n-zh_TW-4.4.5.tar.bz2";
-    sha256 = "19hvc57s37kpby1hjy6w5xi37a9n23rfxb53aj2lvdbar8ac9lci";
-  };
-
-}
diff --git a/pkgs/desktops/kde-4.4/l10n/generate-expr-from-tarballs.pl b/pkgs/desktops/kde-4.4/l10n/generate-expr-from-tarballs.pl
deleted file mode 100755
index 32dbfa1488db..000000000000
--- a/pkgs/desktops/kde-4.4/l10n/generate-expr-from-tarballs.pl
+++ /dev/null
@@ -1,101 +0,0 @@
-#! /usr/bin/perl -w
-
-# Typical command to generate the list of tarballs:
-
-# export i="mirror://kde/stable/4.4.2/src/kde-l10n/"; 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.list
-# manually update extra.list
-# then run: cat tarballs-7.4.list extra.list old.list | perl ./generate-expr-from-tarballs.pl
-
-use strict;
-
-my $tmpDir = "/tmp/xorg-unpack";
-
-
-my %pkgURLs;
-my %pkgHashes;
-my %pkgNames;
-
-my $downloadCache = "./download-cache";
-$ENV{'NIX_DOWNLOAD_CACHE'} = $downloadCache;
-mkdir $downloadCache, 0755;
-
-while (<>) {
-    chomp;
-    my $tarball = "$_";
-    print "\nDOING TARBALL $tarball\n";
-
-    $tarball =~ /\/((?:(?:[A-Za-z0-9_]|(?:-[^0-9])|(?:-[0-9]*[a-z]))+))[^\/]*$/;
-    die unless defined $1;
-    my $pkg = $1;
-    $pkg =~ s/kde-l10n-//g;
-
-    $tarball =~ /\/([^\/]*)\.tar\.bz2$/;
-    my $pkgName = $pkg;
-
-    print "  $pkg $pkgName\n";
-
-    if (defined $pkgNames{$pkg}) {
-	print "  SKIPPING\n";
-	next;
-    }
-
-    $pkgNames{$pkg} = $pkgName;
-    $pkgURLs{$pkg} = $tarball;
-
-    my ($hash, $path) = `PRINT_PATH=1 QUIET=1 nix-prefetch-url '$tarball'`;
-    chomp $hash;
-    chomp $path;
-    $pkgHashes{$pkg} = $hash;
-
-    print "done\n";
-}
-
-
-print "\nWRITE OUT\n";
-
-open OUT, ">default.nix";
-
-print OUT "";
-print OUT <<EOF;
-# THIS IS A GENERATED FILE.  DO NOT EDIT!
-{stdenv, fetchurl, lib, cmake, qt4, perl, gettext, kdelibs, automoc4, phonon}:
-
-let
-
-  deriv = attr : stdenv.mkDerivation {
-    name = "kde-l10n-\${attr.lang}-4.4.2";
-    src = fetchurl {
-      url = attr.url;
-      sha256 = attr.sha256;
-    };
-    buildInputs = [ cmake qt4 perl gettext kdelibs automoc4 phonon ];
-    cmakeFlagsArray = [ "-DGETTEXT_INCLUDE_DIR=\${gettext}/include" ];
-    meta = {
-      description = "KDE l10n for \${attr.lang}";
-      license = "GPL";
-      homepage = http://www.kde.org;
-    };
-  };
-
-in
-{
-
-EOF
-
-
-foreach my $pkg (sort (keys %pkgNames)) {
-    print "$pkg\n";
-    
-    print OUT <<EOF;
-  $pkgNames{$pkg} = deriv {
-    lang = "$pkgNames{$pkg}";
-    url = "$pkgURLs{$pkg}";
-    sha256 = "$pkgHashes{$pkg}";
-  };
-
-EOF
-}
-
-print OUT "}\n";
-
-close OUT;
diff --git a/pkgs/desktops/kde-4.4/libs/default.nix b/pkgs/desktops/kde-4.4/libs/default.nix
deleted file mode 100644
index abe4dfd143ad..000000000000
--- a/pkgs/desktops/kde-4.4/libs/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchurl, cmake, lib, perl
-, qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
-, xz, flex, bison, openexr, aspell, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
-, automoc4, phonon, strigi, soprano, qca2, attica, polkit_qt, enchant
-}:
-
-stdenv.mkDerivation {
-  name = "kdelibs-4.4.5";
-
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdelibs-4.4.5.tar.bz2;
-    sha256 = "11b0iif35bn8izr94590bgxkyy8ri572mjqlajzh988bww1r5mqi";
-  };
-
-  buildInputs = [
-    cmake perl qt4 xz flex bison bzip2 pcre fam libxml2 libxslt
-    shared_mime_info giflib jasper /*openexr*/ aspell avahi kerberos acl attr
-    libXScrnSaver enchant
-    automoc4 phonon strigi soprano qca2 attica polkit_qt
-  ];
-
-  propagatedBuildInputs = [ stdenv.gcc.libc shared_desktop_ontologies ];
-
-  # cmake fails to find acl.h because of C++-style comment
-  cmakeFlags = [ "-DHAVE_ACL_LIBACL_H=ON" "-DHAVE_SYS_ACL_H=ON" ];
-
-  meta = {
-    description = "KDE libraries";
-    license = "LGPL";
-    homepage = http://www.kde.org;
-    maintainers = [ lib.maintainers.sander lib.maintainers.urkud ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/multimedia/default.nix b/pkgs/desktops/kde-4.4/multimedia/default.nix
deleted file mode 100644
index 5a6a7eaf0301..000000000000
--- a/pkgs/desktops/kde-4.4/multimedia/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, perl, qt4, alsaLib, libvorbis, xineLib, taglib, flac, cdparanoia, lame
-, kdelibs, automoc4, phonon}:
-
-stdenv.mkDerivation {
-  name = "kdemultimedia-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdemultimedia-4.4.5.tar.bz2;
-    sha256 = "186la58w7572s47yrs01q3qk0ffiqn9357a6gdk8263x9myc2xkz";
-  };
-  buildInputs = [ cmake perl qt4 alsaLib libvorbis xineLib flac taglib cdparanoia lame
-                  kdelibs automoc4 phonon ];
-  meta = {
-    description = "KDE Multimedia";
-    longDescription = ''
-      Contains various Multimedia utilties for KDE such as a movie player and sound volume mixer.
-    '';
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/network/default.nix b/pkgs/desktops/kde-4.4/network/default.nix
deleted file mode 100644
index f9ecfd3723e9..000000000000
--- a/pkgs/desktops/kde-4.4/network/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, speex, gmp, libxml2, libxslt, sqlite, alsaLib, libidn
-, libvncserver, libmsn, giflib, gpgme, boost, libv4l, libotr
-, libXi, libXtst, libXdamage, libXxf86vm
-, kdelibs, kdepimlibs, automoc4, phonon, qca2, soprano, qimageblitz, strigi}:
-
-stdenv.mkDerivation {
-  name = "kdenetwork-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdenetwork-4.4.5.tar.bz2;
-    sha256 = "1rpf5kmcc3cw7vlj9g8px19b5vr4hnza8r78bw1g8i7vwcng57ya";
-  };
-  buildInputs = [ cmake qt4 perl speex gmp libxml2 libxslt sqlite alsaLib libidn
-                  libvncserver libmsn giflib gpgme boost stdenv.gcc.libc libv4l
-                  libotr libXi libXtst libXdamage libXxf86vm
-                  kdelibs kdepimlibs automoc4 phonon qca2 soprano qimageblitz strigi ];
-  meta = {
-    description = "KDE network utilities";
-    longDescription = "Various network utilities for KDE such as a messenger client and network configuration interface";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/oxygen-icons/default.nix b/pkgs/desktops/kde-4.4/oxygen-icons/default.nix
deleted file mode 100644
index 2c9b69c8a314..000000000000
--- a/pkgs/desktops/kde-4.4/oxygen-icons/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl, lib, cmake}:
-
-stdenv.mkDerivation {
-  name = "oxygen-icons-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/oxygen-icons-4.4.5.tar.bz2;
-    sha256 = "15nfh8zl54a7b3pyqjiabv82srkp7c8gl9fpsy9ydw742lvs0pr7";
-  };
-  buildInputs = [ cmake ];
-  meta = {
-    description = "KDE Oxygen theme icons";
-    longDescription = "Contains icons for the KDE Oxygen theme, which is the default icon theme since KDE 4.3";
-    license = "GPL";
-    maintainers = [ lib.maintainers.sander ];
-    platforms = lib.platforms.all;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/pim-runtime/builder.sh b/pkgs/desktops/kde-4.4/pim-runtime/builder.sh
deleted file mode 100644
index 02848d64669a..000000000000
--- a/pkgs/desktops/kde-4.4/pim-runtime/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source $stdenv/setup
-
-myPatchPhase()
-{
-    sed -i -e "s|\${KDE4_DBUS_INTERFACES_DIR}|$out/share/dbus-1|" resources/maildir/CMakeLists.txt
-}
-patchPhase=myPatchPhase
-genericBuild
diff --git a/pkgs/desktops/kde-4.4/pim-runtime/default.nix b/pkgs/desktops/kde-4.4/pim-runtime/default.nix
deleted file mode 100644
index 7333a62ad501..000000000000
--- a/pkgs/desktops/kde-4.4/pim-runtime/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, libxml2, libxslt, boost, shared_mime_info
-, kdelibs, kdepimlibs
-, automoc4, phonon, akonadi, soprano, strigi}:
-
-stdenv.mkDerivation {
-  name = "kdepim-runtime-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdepim-runtime-4.4.5.tar.bz2;
-    sha256 = "1yisz7vfj51l4hs4f0ry0shas5r7m7p0iqr1458yasad9icq94j7";
-  };
-  buildInputs = [ cmake qt4 perl libxml2 libxslt boost shared_mime_info
-                  kdelibs kdepimlibs
-		  automoc4 phonon akonadi soprano strigi ];
-  builder = ./builder.sh;
-  meta = {
-    description = "KDE PIM runtime";
-    homepage = http://www.kde.org;
-    license = "GPL";
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/pim/builder.sh b/pkgs/desktops/kde-4.4/pim/builder.sh
deleted file mode 100644
index acc357c8a94c..000000000000
--- a/pkgs/desktops/kde-4.4/pim/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source $stdenv/setup
-
-myPatchPhase()
-{
-    find .. -name CMakeLists.txt | xargs sed -i -e "s@DESTINATION \${KDE4_DBUS_INTERFACES_DIR}@DESTINATION \${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces/@"
-}
-patchPhase=myPatchPhase
-genericBuild
diff --git a/pkgs/desktops/kde-4.4/pim/default.nix b/pkgs/desktops/kde-4.4/pim/default.nix
deleted file mode 100644
index 29151117d138..000000000000
--- a/pkgs/desktops/kde-4.4/pim/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, boost, gpgme, libassuan, libgpgerror, libxslt
-, shared_mime_info, libXScrnSaver
-, kdelibs, kdepimlibs, kdepim_runtime, automoc4, phonon, akonadi, strigi, soprano, qca2}:
-
-stdenv.mkDerivation {
-  name = "kdepim-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdepim-4.4.5.tar.bz2;
-    sha256 = "0n95wjk1ly7zfn9wv589a9hrc0r7wvik7jrvsgimnxr0rapxk3bp";
-  };
-
-  cmakeFlags = "-DBUILD_kleopatra=OFF"; # doesn't build with new boost
-  buildInputs = [ cmake qt4 perl boost gpgme stdenv.gcc.libc libassuan libgpgerror libxslt
-                  shared_mime_info libXScrnSaver
-                  kdelibs kdepimlibs automoc4 phonon akonadi strigi soprano qca2 ];
-  patchPhase = ''
-      find .. -name CMakeLists.txt | xargs sed -i -e "s@DESTINATION \''${KDE4_DBUS_INTERFACES_DIR}@DESTINATION \''${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces/@"
-  '';
-  postInstall = ''
-      mkdir -p $out/nix-support/
-      echo ${akonadi} ${kdepimlibs} ${kdepim_runtime} > $out/nix-support/propagated-user-env-packages
-  '';
-  meta = {
-    description = "KDE PIM tools";
-    longDescription = ''
-      Contains various personal information management tools for KDE, such as an organizer
-    '';
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/pimlibs/default.nix b/pkgs/desktops/kde-4.4/pimlibs/default.nix
deleted file mode 100644
index 6f42be04f442..000000000000
--- a/pkgs/desktops/kde-4.4/pimlibs/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
-, kdelibs, automoc4, phonon, akonadi}:
-
-stdenv.mkDerivation {
-  name = "kdepimlibs-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdepimlibs-4.4.5.tar.bz2;
-    sha256 = "06ibdg8cxhc9p4ywxa8f7kb0bnv0789qiapifvdfdr3zc8m0nj24";
-  };
-  buildInputs = [ cmake qt4 perl boost cyrus_sasl gpgme stdenv.gcc.libc libical openldap shared_mime_info
-                  kdelibs automoc4 phonon akonadi ];
-  meta = {
-    description = "KDE PIM libraries";
-    license = "LGPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/plasma-addons/builder.sh b/pkgs/desktops/kde-4.4/plasma-addons/builder.sh
deleted file mode 100644
index 7e56e26e0534..000000000000
--- a/pkgs/desktops/kde-4.4/plasma-addons/builder.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-source $stdenv/setup
-
-myPatchPhase()
-{
-    sed -i -e "s@\${DBUS_INTERFACES_INSTALL_DIR}@\$ENV{kdebase_workspace}/share/dbus-1/interfaces@" applets/lancelot/app/src/CMakeLists.txt
-}
-
-patchPhase=myPatchPhase
-genericBuild
diff --git a/pkgs/desktops/kde-4.4/plasma-addons/default.nix b/pkgs/desktops/kde-4.4/plasma-addons/default.nix
deleted file mode 100644
index 4613852b7ad2..000000000000
--- a/pkgs/desktops/kde-4.4/plasma-addons/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, python, shared_mime_info, libXtst, libXi
-, kdelibs, kdebase_workspace, kdepimlibs, kdebase, kdegraphics, kdeedu
-, automoc4, phonon, soprano, eigen, qimageblitz, attica, qca2}:
-
-stdenv.mkDerivation {
-  name = "kdeplasma-addons-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdeplasma-addons-4.4.5.tar.bz2;
-    sha256 = "1wrgnfag4bn27kii3rzrzadw0xc869miml0kxsxcj9ryqppxbfxd";
-  };
-  inherit kdebase_workspace;
-  builder = ./builder.sh;
-  KDEDIRS="${kdeedu}";
-  buildInputs = [ cmake qt4 perl python shared_mime_info libXtst libXi
-                  kdelibs kdebase_workspace kdepimlibs kdebase kdegraphics kdeedu
-		  automoc4 qca2 phonon soprano eigen qimageblitz attica ];
-  meta = {
-    description = "KDE Plasma Addons";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/sdk/builder.sh b/pkgs/desktops/kde-4.4/sdk/builder.sh
deleted file mode 100644
index a83d7d44c0d5..000000000000
--- a/pkgs/desktops/kde-4.4/sdk/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source $stdenv/setup
-
-myPatchPhase()
-{
-    sed -i -e "s|\${SVN_INCLUDES}|\${SVN_INCLUDES} $aprutil/include/apr-1|" kioslave/svn/CMakeLists.txt
-}
-patchPhase=myPatchPhase
-genericBuild
diff --git a/pkgs/desktops/kde-4.4/sdk/default.nix b/pkgs/desktops/kde-4.4/sdk/default.nix
deleted file mode 100644
index 0d472cdd5e1e..000000000000
--- a/pkgs/desktops/kde-4.4/sdk/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, perl, libxml2, libxslt, boost, subversion, apr, aprutil
-, shared_mime_info, hunspell
-, kdelibs, kdepimlibs, automoc4, phonon, strigi}:
-
-stdenv.mkDerivation {
-  name = "kdesdk-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdesdk-4.4.5.tar.bz2;
-    sha256 = "0ykj09ln8rqdsjrix21j4yghzx6rkfkca4q3133sp7h8y56plqrw";
-  };
-  builder=./builder.sh;
-  inherit aprutil;
-  buildInputs = [ cmake qt4 perl libxml2 libxslt boost subversion apr aprutil shared_mime_info
-                  kdelibs kdepimlibs automoc4 phonon strigi hunspell];
-  meta = with stdenv.lib; {
-    description = "KDE SDK";
-    longDescription = "Contains various development utilities such as the Umbrello UML modeler and Cerivisia CVS front-end";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/akonadi/default.nix b/pkgs/desktops/kde-4.4/support/akonadi/default.nix
deleted file mode 100644
index b93f65b9a6a6..000000000000
--- a/pkgs/desktops/kde-4.4/support/akonadi/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, mysql, automoc4, soprano}:
-
-stdenv.mkDerivation rec {
-  name = "akonadi-1.3.85";
-  src = fetchurl {
-    url = "http://download.akonadi-project.org/${name}.tar.bz2";
-    sha256 = "1d2ancspavp4qg717hj56j1likb0ifdr65q1awbc2ghqqgd9znck";
-  };
-  patches = [ ./fix-broken-datadir-parameter.patch ];
-  buildInputs = [ cmake qt4 shared_mime_info libxslt boost mysql automoc4 soprano ];
-  meta = with stdenv.lib; {
-    description = "KDE PIM Storage Service";
-    license = "LGPL";
-    homepage = http://pim.kde.org/akonadi;
-    maintainers = [ maintainers.sander maintainers.urkud ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch b/pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch
deleted file mode 100644
index fa33329d4b0f..000000000000
--- a/pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix broken datadir parameter.
-
---- akonadi-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-06-09 03:41:30.000000000 -0430
-+++ akonadi-local-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-08-11 00:21:20.547181479 -0430
-@@ -250,11 +250,10 @@
-   // synthesize the mysqld command
-   QStringList arguments;
-   arguments << QString::fromLatin1( "--defaults-file=%1/mysql.conf" ).arg( akDir );
-+  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
- #ifndef Q_WS_WIN
--  arguments << QString::fromLatin1( "--datadir" ) << QString::fromLatin1( "%1/" ).arg( dataDir );
-   arguments << QString::fromLatin1( "--socket=%1/mysql.socket" ).arg( miscDir );
- #else
--  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
-   arguments << QString::fromLatin1( "--shared-memory" );
- #endif
- 
diff --git a/pkgs/desktops/kde-4.4/support/attica/default.nix b/pkgs/desktops/kde-4.4/support/attica/default.nix
deleted file mode 100644
index 5c62f34efb28..000000000000
--- a/pkgs/desktops/kde-4.4/support/attica/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl, cmake, qt4}:
-
-stdenv.mkDerivation rec {
-  name = "attica-0.1.4";
-  src = fetchurl {
-    url = "mirror://kde/stable/attica/${name}.tar.bz2";
-    sha256 = "0frarnrnbli3f5ji90swgw05g88w1f5777ais345wc8lkvqg9ix1";
-  };
-  buildInputs = [ cmake qt4 ];
-  meta = with stdenv.lib; {
-    description = "A library to access Open Collaboration Service providers";
-    license = "LGPL";
-    maintainers = [ maintainers.sander maintainers.urkud ];
-    platforms = qt4.meta.platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/automoc4/default.nix b/pkgs/desktops/kde-4.4/support/automoc4/default.nix
deleted file mode 100644
index bd6c5c3b1496..000000000000
--- a/pkgs/desktops/kde-4.4/support/automoc4/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{stdenv, fetchurl, lib, cmake, qt4}:
-
-stdenv.mkDerivation {
-  name = "automoc4-0.9.88";
-  src = fetchurl {
-    url = mirror://kde/stable/automoc4/0.9.88/automoc4-0.9.88.tar.bz2;
-    md5 = "91bf517cb940109180ecd07bc90c69ec";
-  };
-  buildInputs = [ cmake qt4 ];
-  meta = {
-    description = "KDE Meta Object Compiler";
-    license = "BSD";
-    maintainers = [ lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/eigen/default.nix b/pkgs/desktops/kde-4.4/support/eigen/default.nix
deleted file mode 100644
index e78a27af19ca..000000000000
--- a/pkgs/desktops/kde-4.4/support/eigen/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl, lib, cmake}:
-
-stdenv.mkDerivation {
-  name = "eigen-2.0.15";
-  src = fetchurl {
-    url = http://bitbucket.org/eigen/eigen/get/2.0.15.tar.bz2;
-    sha256 = "1a00hqyig4rc7nkz97xv23q7k0vdkzvgd0jkayk61fn9aqcrky79";
-  };
-  buildInputs = [ cmake ];  
-  meta = {
-    description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
-    license = "LGPL";
-    homepage = http://eigen.tuxfamily.org;
-    maintainers = [ lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/phonon/default.nix b/pkgs/desktops/kde-4.4/support/phonon/default.nix
deleted file mode 100644
index 7023e4ca490d..000000000000
--- a/pkgs/desktops/kde-4.4/support/phonon/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, automoc4, pkgconfig
-, libXau, libXdmcp, libpthreadstubs
-, gstreamer, gstPluginsBase, xineLib, pulseaudio}:
-
-let
-  v = "4.4.2";
-  stable = true;
-in
-
-stdenv.mkDerivation rec {
-  name = "phonon-${v}";
-  src = fetchurl {
-    url = "mirror://kde/${if stable then "" else "un"}stable/phonon/${v}/${name}.tar.bz2";
-    sha256 = "11ilv692yqzvk93y3n2zp9qvqc2xi0npz8vbqa1b60b268zlqh7i";
-  };
-  buildInputs = [ cmake qt4 libXau libXdmcp libpthreadstubs gstreamer
-    gstPluginsBase xineLib automoc4 pulseaudio pkgconfig ];
-  meta = with stdenv.lib; {
-    platforms = platforms.linux;
-    description = "KDE Multimedia API";
-    longDescription = "KDE Multimedia API which abstracts over various backends such as GStreamer and Xine";
-    license = "LGPL";
-    homepage = http://phonon.kde.org;
-    maintainers = [ maintainers.sander maintainers.urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/phonon/phonon-4.4.1-gst-plugins-include.patch b/pkgs/desktops/kde-4.4/support/phonon/phonon-4.4.1-gst-plugins-include.patch
deleted file mode 100644
index 46782840570c..000000000000
--- a/pkgs/desktops/kde-4.4/support/phonon/phonon-4.4.1-gst-plugins-include.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-From 1e3a6c25bc258021899c0a31ea9b68ea656d8f6b Mon Sep 17 00:00:00 2001
-From: Yury G. Kudryashov <urkud.urkud@gmail.com>
-Date: Sat, 8 May 2010 18:42:35 +0400
-Subject: [PATCH] Find include directories as well
-
-Makes it possible to compile phonon if gstreamer and gst-plugins-base are
-installed into different prefixes. Theoretically, should work even if each
-plugin is installed into dedicated prefix, but this feature is not tested.
----
- cmake/FindGStreamerPlugins.cmake |  160 +++++++++++++++-----------------------
- gstreamer/CMakeLists.txt         |    4 +-
- gstreamer/ConfigureChecks.cmake  |   10 +-
- 3 files changed, 72 insertions(+), 102 deletions(-)
-
-diff --git a/cmake/FindGStreamerPlugins.cmake b/cmake/FindGStreamerPlugins.cmake
-index f6d70d5..9e7a4d0 100644
---- a/cmake/FindGStreamerPlugins.cmake
-+++ b/cmake/FindGStreamerPlugins.cmake
-@@ -2,19 +2,63 @@
- # Once done this will define
- #
- #  GSTREAMERPLUGINSBASE_FOUND - system has GStreamer_Plugins
--#  GSTREAMERPLUGINSBASE_INCLUDE_DIR - the GStreamer_Plugins include directory
-+#  GSTREAMERPLUGINSBASE_INCLUDE_DIRS - the GStreamer_Plugins include directories
- #  GSTREAMERPLUGINSBASE_LIBRARIES - the libraries needed to use GStreamer_Plugins
--#  GSTREAMERPLUGINSBASE_DEFINITIONS - Compiler switches required for using GStreamer_Plugins
-+#
-+# The following variables are set for each plugin PLUGINNAME:
-+#
-+#  GSTREAMER_PLUGIN_PLUGINNAME_FOUND - plugin is found
-+#  GSTREAMER_PLUGIN_PLUGINNAME_INCLUDE_DIR - plugin include directory
-+#  GSTREAMER_PLUGIN_PLUGINNAME_LIBRARY - the library needed to use plugin
- #
- #  (c)2009 Nokia Corporation
-+#  (c)2010 Yury G. Kudryashov <urkud@ya.ru>
- 
- FIND_PACKAGE(PkgConfig REQUIRED)
- 
- IF (NOT WIN32)
-    # don't make this check required - otherwise you can't use macro_optional_find_package on this one
--   PKG_CHECK_MODULES( PKG_GSTREAMER gstreamer-plugins-base-0.10 )
-+   PKG_CHECK_MODULES( PKG_GSTREAMER_PLUGINSBASE gstreamer-plugins-base-0.10 )
- ENDIF (NOT WIN32)
- 
-+MACRO(MACRO_FIND_GSTREAMER_PLUGIN _plugin _header)
-+   STRING(TOUPPER ${_plugin} _upper)
-+   IF (NOT WIN32)
-+      # don't make this check required - otherwise you can't use macro_optional_find_package on this one
-+      PKG_CHECK_MODULES( PKG_GSTREAMER_${_upper} gstreamer-${_plugin}-0.10 )
-+   ENDIF (NOT WIN32)
-+
-+   FIND_LIBRARY(GSTREAMER_PLUGIN_${_upper}_LIBRARY NAMES gst${_plugin}-0.10
-+      PATHS
-+      ${PKG_GSTREAMER_PLUGINSBASE_LIBRARY_DIRS}
-+      ${PKG_GSTREAMER_${_upper}_LIBRARY_DIRS}
-+      )
-+
-+   FIND_PATH(GSTREAMER_PLUGIN_${_upper}_INCLUDE_DIR
-+       NAMES gst/${_plugin}/${_header}
-+       PATHS
-+       ${PKG_GSTREAMER_PLUGINSBASE_INCLUDE_DIRS}
-+       ${PKG_GSTREAMER_${_upper}_INCLUDE_DIRS}
-+       )
-+
-+   IF(GSTREAMER_PLUGIN_${_upper}_LIBRARY AND GSTREAMER_PLUGIN_${_upper}_INCLUDE_DIR)
-+      SET(GSTREAMER_PLUGIN_${_upper}_FOUND TRUE)
-+      LIST(APPEND GSTREAMERPLUGINSBASE_INCLUDE_DIRS GSTREAMER_${_upper}_INCLUDE_DIR)
-+      LIST(APPEND GSTREAMERPLUGINSBASE_LIBRARIES GSTREAMER_${_upper}_LIBRARY)
-+   ELSE(GSTREAMER_PLUGIN_${_upper}_LIBRARY AND GSTREAMER_PLUGIN_${_upper}_INCLUDE_DIR)
-+      MESSAGE(STATUS "Could not find ${_plugin} plugin")
-+      MESSAGE(STATUS "${_upper} library: ${GSTREAMER_${_upper}_LIBRARY}")
-+      MESSAGE(STATUS "${_upper} include dir: ${GSTREAMER_${_upper}_INCLUDE_DIR}")
-+      SET(GSTREAMER_PLUGIN_${_upper}_FOUND FALSE)
-+      SET(GSTREAMER_PLUGIN_${_upper}_LIBRARY GSTREAMER_${_upper}_LIBRARY-NOTFOUND)
-+      SET(GSTREAMER_PLUGIN_${_upper}_INCLUDE_DIR GSTREAMER_${_upper}_INCLUDE_DIR-NOTFOUND)
-+      SET(GSTREAMERPLUGINSBASE_FOUND FALSE)
-+   ENDIF(GSTREAMER_PLUGIN_${_upper}_LIBRARY AND GSTREAMER_PLUGIN_${_upper}_INCLUDE_DIR)
-+
-+   MARK_AS_ADVANCED(GSTREAMER_PLUGIN_${_upper}_LIBRARY
-+      GSTREAMER_PLUGIN_${_upper}_INCLUDE_DIR)
-+ENDMACRO(MACRO_FIND_GSTREAMER_PLUGIN)
-+
- #
- # Base plugins:
- #  audio
-@@ -31,87 +75,21 @@ ENDIF (NOT WIN32)
- # The gstinterfaces-0.10 library is found by FindGStreamer.cmake
- #
- 
--FIND_LIBRARY(GSTREAMER_PLUGIN_AUDIO_LIBRARIES NAMES gstaudio-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_CDDA_LIBRARIES NAMES gstcdda-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_NETBUFFER_LIBRARIES NAMES gstnetbuffer-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_PBUTILS_LIBRARIES NAMES gstpbutils-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_RIFF_LIBRARIES NAMES gstriff-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_RTP_LIBRARIES NAMES gstrtp-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_RTSP_LIBRARIES NAMES gstrtsp-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_SDP_LIBRARIES NAMES gstsdp-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_TAG_LIBRARIES NAMES gsttag-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--FIND_LIBRARY(GSTREAMER_PLUGIN_VIDEO_LIBRARIES NAMES gstvideo-0.10
--   PATHS
--   ${PKG_GSTREAMER_LIBRARY_DIRS}
--   )
--
--IF (GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND
--    GSTREAMER_PLUGIN_CDDA_LIBRARIES AND
--    GSTREAMER_PLUGIN_NETBUFFER_LIBRARIES AND
--    GSTREAMER_PLUGIN_PBUTILS_LIBRARIES AND
--    GSTREAMER_PLUGIN_RIFF_LIBRARIES AND
--    GSTREAMER_PLUGIN_RTP_LIBRARIES AND
--    GSTREAMER_PLUGIN_RTSP_LIBRARIES AND
--    GSTREAMER_PLUGIN_SDP_LIBRARIES AND
--    GSTREAMER_PLUGIN_TAG_LIBRARIES AND
--    GSTREAMER_PLUGIN_VIDEO_LIBRARIES)
--   SET(GSTREAMERPLUGINSBASE_FOUND TRUE)
--ELSE (GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND
--    GSTREAMER_PLUGIN_CDDA_LIBRARIES AND
--    GSTREAMER_PLUGIN_NETBUFFER_LIBRARIES AND
--    GSTREAMER_PLUGIN_PBUTILS_LIBRARIES AND
--    GSTREAMER_PLUGIN_RIFF_LIBRARIES AND
--    GSTREAMER_PLUGIN_RTP_LIBRARIES AND
--    GSTREAMER_PLUGIN_RTSP_LIBRARIES AND
--    GSTREAMER_PLUGIN_SDP_LIBRARIES AND
--    GSTREAMER_PLUGIN_TAG_LIBRARIES AND
--    GSTREAMER_PLUGIN_VIDEO_LIBRARIES)
--   SET(GSTREAMERPLUGINSBASE_FOUND FALSE)
--ENDIF (GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND
--    GSTREAMER_PLUGIN_CDDA_LIBRARIES AND
--    GSTREAMER_PLUGIN_NETBUFFER_LIBRARIES AND
--    GSTREAMER_PLUGIN_PBUTILS_LIBRARIES AND
--    GSTREAMER_PLUGIN_RIFF_LIBRARIES AND
--    GSTREAMER_PLUGIN_RTP_LIBRARIES AND
--    GSTREAMER_PLUGIN_RTSP_LIBRARIES AND
--    GSTREAMER_PLUGIN_SDP_LIBRARIES AND
--    GSTREAMER_PLUGIN_TAG_LIBRARIES AND
--    GSTREAMER_PLUGIN_VIDEO_LIBRARIES)
-+SET(GSTREAMER_PLUGINSBASE_FOUND TRUE)
-+MACRO_FIND_GSTREAMER_PLUGIN(audio audio.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(cdda gstcddabasesrc.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(netbuffer gstnetbuffer.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(pbutils pbutils.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(riff riff-ids.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(rtp gstrtpbuffer.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(rtsp gstrtspdefs.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(sdp gstsdp.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(tag tag.h)
-+MACRO_FIND_GSTREAMER_PLUGIN(video video.h)
- 
- IF (GSTREAMERPLUGINSBASE_FOUND)
--   SET(GSTREAMERPLUGINS_FOUND TRUE)
--ELSE (GSTREAMERPLUGINSBASE_FOUND)
--   SET(GSTREAMERPLUGINS_FOUND FALSE)
--ENDIF (GSTREAMERPLUGINSBASE_FOUND)
--
--IF (GSTREAMERPLUGINS_FOUND)
-+   LIST(REMOVE_DUPLICATES GSTREAMERPLUGINSBASE_LIBRARIES)
-+   LIST(REMOVE_DUPLICATES GSTREAMERPLUGINSBASE_INCLUDE_DIRS)
-    IF (NOT GStreamer_Plugins_FIND_QUIETLY)
-       MESSAGE(STATUS "Found GStreamer Plugins:
-     ${GSTREAMER_PLUGIN_AUDIO_LIBRARIES}
-@@ -125,20 +103,10 @@ IF (GSTREAMERPLUGINS_FOUND)
-     ${GSTREAMER_PLUGIN_TAG_LIBRARIES}
-     ${GSTREAMER_PLUGIN_VIDEO_LIBRARIES}")
-    ENDIF (NOT GStreamer_Plugins_FIND_QUIETLY)
--ELSE (GSTREAMERPLUGINS_FOUND)
-+ELSE (GSTREAMERPLUGINSBASE_FOUND)
-+   SET(GSTREAMERPLUGINSBASE_LIBRARIES GSTREAMERPLUGINSBASE_LIBRARIES-NOTFOUND)
-+   SET(GSTREAMERPLUGINSBASE_INCLUDE_DIRS GSTREAMERPLUGINSBASE_INCLUDE_DIRS-NOTFOUND)
-    IF (GStreamer_Plugins_FIND_REQUIRED)
-       MESSAGE(SEND_ERROR "Could NOT find GStreamer Plugins")
-    ENDIF (GStreamer_Plugins_FIND_REQUIRED)
--ENDIF (GSTREAMERPLUGINS_FOUND)
--
--MARK_AS_ADVANCED(GSTREAMERPLUGINS_DEFINITIONS
--    GSTREAMER_PLUGIN_AUDIO_LIBRARIES
--    GSTREAMER_PLUGIN_CDDA_LIBRARIES
--    GSTREAMER_PLUGIN_NETBUFFER_LIBRARIES
--    GSTREAMER_PLUGIN_PBUTILS_LIBRARIES
--    GSTREAMER_PLUGIN_RIFF_LIBRARIES
--    GSTREAMER_PLUGIN_RTP_LIBRARIES
--    GSTREAMER_PLUGIN_RTSP_LIBRARIES
--    GSTREAMER_PLUGIN_SDP_LIBRARIES
--    GSTREAMER_PLUGIN_TAG_LIBRARIES
--    GSTREAMER_PLUGIN_VIDEO_LIBRARIES)
-+ENDIF (GSTREAMERPLUGINSBASE_FOUND)
-diff --git a/gstreamer/CMakeLists.txt b/gstreamer/CMakeLists.txt
-index d529fb6..c42710b 100644
---- a/gstreamer/CMakeLists.txt
-+++ b/gstreamer/CMakeLists.txt
-@@ -20,6 +20,8 @@ if (BUILD_PHONON_GSTREAMER)
-    include_directories(
- 	  ${CMAKE_CURRENT_BINARY_DIR}
- 	  ${GSTREAMER_INCLUDE_DIR}
-+	  ${GSTREAMER_PLUGIN_VIDEO_INCLUDE_DIR}
-+	  ${GSTREAMER_PLUGIN_AUDIO_INCLUDE_DIR}
- 	  ${GLIB2_INCLUDE_DIR}
-       ${LIBXML2_INCLUDE_DIR}
- 	  ${X11_X11_INCLUDE_PATH})
-@@ -78,7 +80,7 @@ if (BUILD_PHONON_GSTREAMER)
-       ${QT_QTOPENGL_LIBRARY}
-       ${PHONON_LIBS} ${OPENGL_gl_LIBRARY}
-       ${GSTREAMER_LIBRARIES} ${GSTREAMER_BASE_LIBRARY} ${GSTREAMER_INTERFACE_LIBRARY}
--      ${GSTREAMER_PLUGIN_VIDEO_LIBRARIES} ${GSTREAMER_PLUGIN_AUDIO_LIBRARIES}
-+      ${GSTREAMER_PLUGIN_VIDEO_LIBRARY} ${GSTREAMER_PLUGIN_AUDIO_LIBRARY}
-       ${GLIB2_LIBRARIES} ${GOBJECT_LIBRARIES})
-    if(ALSA_FOUND)
-       target_link_libraries(phonon_gstreamer ${ASOUND_LIBRARY})
-diff --git a/gstreamer/ConfigureChecks.cmake b/gstreamer/ConfigureChecks.cmake
-index 095a0e9..73616fa 100644
---- a/gstreamer/ConfigureChecks.cmake
-+++ b/gstreamer/ConfigureChecks.cmake
-@@ -16,8 +16,8 @@ macro_optional_find_package(GStreamer)
- macro_log_feature(GSTREAMER_FOUND "GStreamer" "gstreamer 0.10 is required for the multimedia backend" "http://gstreamer.freedesktop.org/modules/" FALSE "0.10")
- 
- macro_optional_find_package(GStreamerPlugins)
--macro_log_feature(GSTREAMER_PLUGIN_VIDEO_LIBRARIES "GStreamer video plugin" "The gstreamer video plugin (part of gstreamer-plugins-base 0.10) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" FALSE "0.10")
--macro_log_feature(GSTREAMER_PLUGIN_AUDIO_LIBRARIES "GStreamer audio plugin" "The gstreamer audio plugin (part of gstreamer-plugins-base 0.10) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" FALSE "0.10")
-+macro_log_feature(GSTREAMER_PLUGIN_VIDEO_FOUND "GStreamer video plugin" "The gstreamer video plugin (part of gstreamer-plugins-base 0.10) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" FALSE "0.10")
-+macro_log_feature(GSTREAMER_PLUGIN_AUDIO_FOUND "GStreamer audio plugin" "The gstreamer audio plugin (part of gstreamer-plugins-base 0.10) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" FALSE "0.10")
- 
- macro_optional_find_package(GLIB2)
- macro_log_feature(GLIB2_FOUND "GLib2" "GLib 2 is required to compile the gstreamer backend for Phonon" "http://www.gtk.org/download/" FALSE)
-@@ -31,8 +31,8 @@ macro_log_feature(LIBXML2_FOUND "LibXml2" "LibXml2 is required to compile the gs
- macro_optional_find_package(OpenGL)
- macro_log_feature(OPENGL_FOUND "OpenGL" "OpenGL support is required to compile the gstreamer backend for Phonon" "" FALSE)
- 
--if (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-+if (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-    set(BUILD_PHONON_GSTREAMER TRUE)
--else (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-+else (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-    set(BUILD_PHONON_GSTREAMER FALSE)
--endif (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-+endif (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
--- 
-1.7.1
-
diff --git a/pkgs/desktops/kde-4.4/support/polkit-qt/default.nix b/pkgs/desktops/kde-4.4/support/polkit-qt/default.nix
deleted file mode 100644
index 441321a42d2e..000000000000
--- a/pkgs/desktops/kde-4.4/support/polkit-qt/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl, cmake, qt4, policykit, automoc4, lib}:
-
-stdenv.mkDerivation {
-  name = "polkit-qt-0.9.3";
-  src = fetchurl {
-    url = mirror://kde/stable/apps/KDE4.x/admin/polkit-qt-0.9.3.tar.bz2;
-    sha256 = "08mz8p98nlxnxy1l751jg1010vgjq2f2d6n4cj27jvihqkpbaixn";
-  };
-  buildInputs = [ cmake automoc4 ];
-  propagatedBuildInputs = [ qt4 policykit ];
-  meta = {
-    description = "Qt PolicyKit bindings";
-    license = "LGPL";
-    maintainers = [ lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/qca2/default.nix b/pkgs/desktops/kde-4.4/support/qca2/default.nix
deleted file mode 100644
index a55f7c8cb431..000000000000
--- a/pkgs/desktops/kde-4.4/support/qca2/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{stdenv, fetchurl, which, qt4}:
-
-stdenv.mkDerivation {
-  name = "qca-2.0.2";
-  src = fetchurl {
-    url = http://delta.affinix.com/download/qca/2.0/qca-2.0.2.tar.bz2;
-    sha256 = "49b5474450104a2298747c243de1451ab7a6aeed4bf7df43ffa4b7128a2837b8";
-  };
-  buildInputs = [ which qt4 ];
-  preBuild = ''
-    sed -i include/QtCrypto/qca_publickey.h -e '/EMSA3_Raw/a,\
-            EMSA3_SHA224,     ///< SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA256,     ///< SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA384,     ///< SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA512      ///< SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding'
-  '';
-  meta = with stdenv.lib; {
-    description = "Qt Cryptographic Architecture";
-    license = "LGPL";
-    homepage = http://delta.affinix.com/qca;
-    maintainers = [ maintainers.sander maintainers.urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/qca2/ossl-remove-whirlpool.patch b/pkgs/desktops/kde-4.4/support/qca2/ossl-remove-whirlpool.patch
deleted file mode 100644
index fa4eb4016227..000000000000
--- a/pkgs/desktops/kde-4.4/support/qca2/ossl-remove-whirlpool.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-Source: Upstream, SVN r864423
-Upstream: Yes
-Reason: Fix compilation w/ >=dev-libs/openssl-0.9.8g
-
-
-From 883f1057b31387e7cbfe66f6b3cf5781a6ca49fb Mon Sep 17 00:00:00 2001
-From: infiniti <infiniti@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
-Date: Wed, 24 Sep 2008 19:22:26 +0000
-Subject: [PATCH] remove whirlpool usage.  the algorithm is missing on at least 0.9.8g and
- 0.9.8i, even though there's an OBJ_whirlpool definition in 0.9.8i.
-
-git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/qca@864423 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
----
- plugins/qca-ossl/qca-ossl.cpp |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/qca-ossl.cpp b/qca-ossl.cpp
-index 746a863..f9efd84 100644
---- a/qca-ossl.cpp
-+++ b/qca-ossl.cpp
-@@ -6616,9 +6616,11 @@ static QStringList all_hash_types()
- #ifdef SHA512_DIGEST_LENGTH
- 	list += "sha512";
- #endif
-+/*
- #ifdef OBJ_whirlpool
- 	list += "whirlpool";
- #endif
-+*/
- 	return list;
- }
- 
-@@ -6863,10 +6865,12 @@ public:
- 		else if ( type == "sha512" )
- 			return new opensslHashContext( EVP_sha512(), this, type);
- #endif
-+/*
- #ifdef OBJ_whirlpool
- 		else if ( type == "whirlpool" )
- 			return new opensslHashContext( EVP_whirlpool(), this, type);
- #endif
-+*/
- 		else if ( type == "pbkdf1(sha1)" )
- 			return new opensslPbkdf1Context( EVP_sha1(), this, type );
- 		else if ( type == "pbkdf1(md2)" )
--- 
-1.6.0.4
-
-
-From 70730a58fe6d9ba5b50b8971424663ba52947e4c Mon Sep 17 00:00:00 2001
-From: infiniti <infiniti@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
-Date: Wed, 24 Sep 2008 19:23:30 +0000
-Subject: [PATCH] fix warning
-
-git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/qca@864425 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
----
- plugins/qca-ossl/qca-ossl.cpp |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/qca-ossl.cpp b/qca-ossl.cpp
-index f9efd84..1790364 100644
---- a/qca-ossl.cpp
-+++ b/qca-ossl.cpp
-@@ -327,7 +327,7 @@ static X509_EXTENSION *new_subject_key_id(X509 *cert)
- 	X509V3_CTX ctx;
- 	X509V3_set_ctx_nodb(&ctx);
- 	X509V3_set_ctx(&ctx, NULL, cert, NULL, NULL, 0);
--	X509_EXTENSION *ex = X509V3_EXT_conf_nid(NULL, &ctx, NID_subject_key_identifier, "hash");
-+	X509_EXTENSION *ex = X509V3_EXT_conf_nid(NULL, &ctx, NID_subject_key_identifier, (char *)"hash");
- 	return ex;
- }
- 
--- 
-1.6.0.4
diff --git a/pkgs/desktops/kde-4.4/support/qca2/ossl.nix b/pkgs/desktops/kde-4.4/support/qca2/ossl.nix
deleted file mode 100644
index bfaa320618c7..000000000000
--- a/pkgs/desktops/kde-4.4/support/qca2/ossl.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{stdenv, fetchurl, fetchsvn, qt4, qca2, openssl}:
-
-stdenv.mkDerivation rec {
-  version = "2.0.0-beta3";
-  name = "qca-ossl-${version}";
-  src = fetchurl {
-    url = "http://delta.affinix.com/download/qca/2.0/plugins/${name}.tar.bz2";
-    sha256 = "0yy68racvx3clybry2i1bw5bz9yhxr40p3xqagxxb15ihvsrzq08";
-  };
-  # SVN version has stabilized and has a lot of fixes for fresh OpenSSL
-  # Take the main source from there
-  svn_src = fetchsvn {
-    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/qca/plugins/qca-ossl ; 
-    rev = 1115936;
-    sha256 =  "ef2c0307e8834e1e7cb23b6fea1cc22486328a37186301a6c11161b1c93d834b";
-  };
-  buildInputs = [ qt4 qca2 openssl ];
-  dontAddPrefix = true;
-  configureFlags="--no-separate-debug-info --with-qca=${qca2}
-    --with-openssl-inc=${openssl}/include --with-openssl-lib=${openssl}/lib";
-  preConfigure=''
-    cp ${svn_src}/qca-ossl.cpp .
-
-    configureFlags="$configureFlags --plugins-path=$out/lib/qt4/plugins"
-  '';
-  meta = with stdenv.lib; {
-    description = "Qt Cryptographic Architecture OpenSSL plugin";
-    license = "LGPL";
-    homepage = http://delta.affinix.com/qca;
-    maintainers = [ maintainers.urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/qimageblitz/default.nix b/pkgs/desktops/kde-4.4/support/qimageblitz/default.nix
deleted file mode 100644
index 34cbe36b5da5..000000000000
--- a/pkgs/desktops/kde-4.4/support/qimageblitz/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl, lib, cmake, qt4}:
-
-stdenv.mkDerivation {
-  name = "qimageblitz-0.0.4";
-  src = fetchurl {
-    url = mirror://sourceforge/qimageblitz/qimageblitz-0.0.4.tar.bz2;
-    md5 = "cb87c7f1c0455e8984ee4830f1e749cf";
-  };
-  buildInputs = [ cmake qt4 ];
-  meta = {
-    description = "Graphical effect and filter library for KDE4";
-    license = "BSD";
-    homepage = http://qimageblitz.sourceforge.net;
-    maintainers = [ lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/soprano/default.nix b/pkgs/desktops/kde-4.4/support/soprano/default.nix
deleted file mode 100644
index 938fa05f2c12..000000000000
--- a/pkgs/desktops/kde-4.4/support/soprano/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{stdenv, fetchurl, lib, cmake, qt4, cluceneCore, redland, libiodbc}:
-
-stdenv.mkDerivation rec {
-  name = "soprano-2.4.4";
-  
-  src = fetchurl {
-    url = "mirror://sf/soprano/${name}.tar.bz2";
-    sha256 = "02qi616w6kli75ibkrvjc88spx6hi8ahlf3c926bi4lh5h73pjkq";
-  };
-  
-  # We disable the Java backends, since we do not need them and they make the closure size much bigger
-  buildInputs = [ cmake qt4 cluceneCore redland libiodbc ];
-
-  meta = {
-    homepage = http://soprano.sourceforge.net/;
-    description = "An object-oriented C++/Qt4 framework for RDF data";
-    license = "LGPL";
-    maintainers = with lib.maintainers; [ sander urkud ];
-    platforms = qt4.meta.platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/support/strigi/default.nix b/pkgs/desktops/kde-4.4/support/strigi/default.nix
deleted file mode 100644
index 93778e7c9841..000000000000
--- a/pkgs/desktops/kde-4.4/support/strigi/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, bzip2, libxml2, expat, exiv2
-, cluceneCore
-}:
-
-stdenv.mkDerivation rec {
-  name = "strigi-0.7.1";
-  
-  src = fetchurl {
-    url = "http://www.vandenoever.info/software/strigi/${name}.tar.bz2";
-    sha256 = "1cra4jlpd7cdvckwalfjrf2224qvhbkmxdd3sn02q9jhv830b0yi";
-  };
-  includeAllQtDirs=true;
-  
-  CLUCENE_HOME = cluceneCore;
-  
-  # Dependencies such as SQLite and FAM are unreliable in this release
-  buildInputs = [
-    cmake perl qt4 bzip2 stdenv.gcc.libc libxml2 expat exiv2 cluceneCore
-  ];
-
-  meta = {
-    homepage = http://strigi.sourceforge.net;
-    description = "A very fast and efficient crawler to index data on your harddrive";
-    license = "LGPL";
-    maintainers = [ lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/toys/default.nix b/pkgs/desktops/kde-4.4/toys/default.nix
deleted file mode 100644
index 30428c947da1..000000000000
--- a/pkgs/desktops/kde-4.4/toys/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, kdebase_workspace, automoc4, phonon}:
-
-stdenv.mkDerivation {
-  name = "kdetoys-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdetoys-4.4.5.tar.bz2;
-    sha256 = "0cydhkgx2aqn2z0hjd7kg0da18niq89xixfhc7sq4g92xc9fryq1";
-  };
-  buildInputs = [ cmake qt4 perl kdelibs kdebase_workspace automoc4 phonon ];
-  meta = {
-    description = "KDE Toys";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/updatekde.sh b/pkgs/desktops/kde-4.4/updatekde.sh
deleted file mode 100755
index ac3297e905d8..000000000000
--- a/pkgs/desktops/kde-4.4/updatekde.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-
-if [ $# -ne 2 ]; then
-  echo Run this in the kde expressions directory
-  echo usage: $0 oldversion newversion
-  echo example: $0 4.3.4 4.3.5
-  echo
-  echo This will not update the l10n expressions, which have their own generator.
-  echo This code supposes that the sha* assignations happen in the immediately next
-  echo line to the url assignation.
-  exit 1
-fi
-
-OLD=$1
-NEW=$2
-
-
-# Regexp to match for the old version
-regexp_old="$(echo $OLD | sed -e 's/\./\\./g')"
-
-
-# stdin: the result of grep -1 "\<url" $filename
-# $1: the filename grepped, because this will modify it.
-function updateinfile() {
-  local newhash oldhash
-  local file=$1
-  echo File: $file
-  while read line; do
-    if echo "$line" | grep -q -e "$regexp_old"; then
-      url=$(echo "$line" | sed 's/.*\<url *= *"\?\(.*\)"\?.*;.*/\1/')
-      echo - Url: "$url"
-      newurl=$(echo $url | sed s/"$regexp_old"/$NEW/g)
-      echo - New Url: "$newurl"
-      newhash=$(nix-prefetch-url "$newurl")
-      if [ $? -ne 0 ]; then
-         echo Error downloading
-         exit 1;
-      fi
-      echo - New Hash: "$newhash"
-    elif echo "$line" | grep -q -e '\<sha[0-9]\+ *='; then
-      oldhash=$(echo "$line" | sed 's/.*"\(.*\)".*/\1/')
-      echo - Oldhash: $oldhash
-      # Update the old hash in the file for the new hash
-      sed -i 's/\(.*\)sha.*'$oldhash'.*/\1sha256 = "'$newhash'";/g' $file
-    fi
-  done
-  sed -i s/"$regexp_old"/$NEW/g $file
-}
-
-
-# stdin: the nix files, which have 'fetchurl' calls downloading the old version files
-function updatefiles() {
-  while read A; do
-    # If the file has the old version in it...
-    if grep -q -e "$regexp_old" $A; then
-
-      # Pass the url parameters and the surrounding shaXXX = expression to updateinfile
-      grep -1 "\<url\>" $A > tmp;
-      < tmp updateinfile $A
-    fi
-  done
-}
-
-# Apply the version update to all nix files but l10n from '.'
-find . -\( -name *.nix -and -not -path "*l10n*" -\) | updatefiles
diff --git a/pkgs/desktops/kde-4.4/utils/builder.sh b/pkgs/desktops/kde-4.4/utils/builder.sh
deleted file mode 100644
index c1ec2b7e1cd8..000000000000
--- a/pkgs/desktops/kde-4.4/utils/builder.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-source $stdenv/setup
-
-myPatchPhase()
-{
-    for i in printer-applet/cmake-modules/FindSystemConfigPrinter.py printer-applet/printer-applet.py
-    do
-	sed -i -e "s|/usr/share/system-config-printer|$system_config_printer/share/system-config-printer|" $i
-    done
-    
-    sed -i -e "s|import cupshelpers.ppds, cupshelpers.cupshelpers|import ppds, cupshelpers|" printer-applet/cmake-modules/FindSystemConfigPrinter.py
-}
-patchPhase=myPatchPhase
-genericBuild
diff --git a/pkgs/desktops/kde-4.4/utils/default.nix b/pkgs/desktops/kde-4.4/utils/default.nix
deleted file mode 100644
index a3bd6c57ada0..000000000000
--- a/pkgs/desktops/kde-4.4/utils/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, gmp, python, libzip, libarchive, xz
-, sip, pyqt4, pycups, rhpl, system_config_printer
-, kdelibs, kdepimlibs, kdebase, kdebindings, automoc4, phonon, qimageblitz, qca2}:
-
-stdenv.mkDerivation {
-  name = "kdeutils-4.4.5";
-  
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdeutils-4.4.5.tar.bz2;
-    sha256 = "159464yv5l0ra6h7l2ihfc3i4sr62229837zi6n9x4bfmd5pvvq7";
-  };
-  
-  builder = ./builder.sh;
-  
-  inherit system_config_printer;
-  
-  buildInputs = [ cmake qt4 perl gmp python libzip libarchive xz sip pyqt4 pycups rhpl system_config_printer
-                  kdelibs kdepimlibs kdebase kdebindings automoc4 phonon qimageblitz qca2 ];
-                  
-  meta = {
-    description = "KDE Utilities";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.4/webdev/default.nix b/pkgs/desktops/kde-4.4/webdev/default.nix
deleted file mode 100644
index 2c1746a69057..000000000000
--- a/pkgs/desktops/kde-4.4/webdev/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, libxml2, libxslt, boost
-, kdelibs, kdepimlibs, automoc4, phonon}:
-
-stdenv.mkDerivation {
-  name = "kdewebdev-4.4.5";
-  src = fetchurl {
-    url = mirror://kde/stable/4.4.5/src/kdewebdev-4.4.5.tar.bz2;
-    sha256 = "1yqn08xlzbcqrna76wqjmp58x28n3k47705znzqvh951ljdxds85";
-  };
-  buildInputs = [ cmake qt4 perl libxml2 libxslt boost kdelibs kdepimlibs automoc4 phonon ];
-  meta = {
-    description = "KDE Web development utilities";
-    license = "GPL";
-    homepage = http://www.kde.org;
-    inherit (kdelibs.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.5/accessibility/color-schemes.nix b/pkgs/desktops/kde-4.5/accessibility/color-schemes.nix
index 1fdc02daaf8f..0be6cf2c6d5b 100644
--- a/pkgs/desktops/kde-4.5/accessibility/color-schemes.nix
+++ b/pkgs/desktops/kde-4.5/accessibility/color-schemes.nix
@@ -8,7 +8,6 @@ kde.package {
     kde = {
       name = "ColorSchemes";
       module = "kdeaccessibility";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/accessibility/icon-themes.nix b/pkgs/desktops/kde-4.5/accessibility/icon-themes.nix
index 7fc795b595bd..40e8a21d0e6a 100644
--- a/pkgs/desktops/kde-4.5/accessibility/icon-themes.nix
+++ b/pkgs/desktops/kde-4.5/accessibility/icon-themes.nix
@@ -8,7 +8,6 @@ kde.package {
     kde = {
       name = "IconThemes";
       module = "kdeaccessibility";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/accessibility/jovie.nix b/pkgs/desktops/kde-4.5/accessibility/jovie.nix
index 139895ff3cdb..5fc138ca5c3f 100644
--- a/pkgs/desktops/kde-4.5/accessibility/jovie.nix
+++ b/pkgs/desktops/kde-4.5/accessibility/jovie.nix
@@ -10,7 +10,6 @@ kde.package {
       name = "jovie";
       module = "kdeaccessibility";
       version = "0.6.0";
-      release = "4.5.4";
       versionFile = "jovie/jovie/main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/accessibility/kmag.nix b/pkgs/desktops/kde-4.5/accessibility/kmag.nix
index 960958837168..84cad4d1e546 100644
--- a/pkgs/desktops/kde-4.5/accessibility/kmag.nix
+++ b/pkgs/desktops/kde-4.5/accessibility/kmag.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "kmag";
       module = "kdeaccessibility";
       version = "1.0";
-      release = "4.5.4";
       versionFile = "kmag/version.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/accessibility/kmousetool.nix b/pkgs/desktops/kde-4.5/accessibility/kmousetool.nix
index 7c6fb234a17d..308aaad07e14 100644
--- a/pkgs/desktops/kde-4.5/accessibility/kmousetool.nix
+++ b/pkgs/desktops/kde-4.5/accessibility/kmousetool.nix
@@ -9,9 +9,7 @@ kde.package {
       name = "kmousetool";
       module = "kdeaccessibility";
       version = "1.12";
-      release = "4.5.4";
       versionFile = "kmousetool/kmousetool/version.h";
     };
   };
 }
-
diff --git a/pkgs/desktops/kde-4.5/accessibility/kmouth.nix b/pkgs/desktops/kde-4.5/accessibility/kmouth.nix
index 3626c63e1435..e576dfb68238 100644
--- a/pkgs/desktops/kde-4.5/accessibility/kmouth.nix
+++ b/pkgs/desktops/kde-4.5/accessibility/kmouth.nix
@@ -9,8 +9,6 @@ kde.package {
       name = "kmouth";
       module = "kdeaccessibility";
       version = "1.1.1";
-      release = "4.5.4";
-      versionFile = "kmouth/version.h";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/admin/default.nix b/pkgs/desktops/kde-4.5/admin/default.nix
index 6e0793f4df49..c3b5a70b1dc5 100644
--- a/pkgs/desktops/kde-4.5/admin/default.nix
+++ b/pkgs/desktops/kde-4.5/admin/default.nix
@@ -18,9 +18,6 @@ kde.package {
   meta = {
     description = "KDE Administration Utilities";
     license = "GPL";
-    kde = {
-      name = "kdeadmin";
-      version = "4.5.4";
-    };
+    kde.name = "kdeadmin";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/aurorae.nix b/pkgs/desktops/kde-4.5/artwork/aurorae.nix
index fc79a54c352f..183914bf231a 100644
--- a/pkgs/desktops/kde-4.5/artwork/aurorae.nix
+++ b/pkgs/desktops/kde-4.5/artwork/aurorae.nix
@@ -1,14 +1,14 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "aurorae-themes-${meta.kde.version}";
+  name = "aurorae-themes-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
+  
   meta = {
     kde = {
       name = "aurorae";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/color-schemes.nix b/pkgs/desktops/kde-4.5/artwork/color-schemes.nix
index 8643c22a33ac..7d20acb3a81e 100644
--- a/pkgs/desktops/kde-4.5/artwork/color-schemes.nix
+++ b/pkgs/desktops/kde-4.5/artwork/color-schemes.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-color-schemes-${meta.kde.version}";
+  name = "kde-color-schemes-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "ColorSchemes";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/desktop-themes.nix b/pkgs/desktops/kde-4.5/artwork/desktop-themes.nix
index 417f96ecc1cd..760acd029283 100644
--- a/pkgs/desktops/kde-4.5/artwork/desktop-themes.nix
+++ b/pkgs/desktops/kde-4.5/artwork/desktop-themes.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-desktop-themes-${meta.kde.version}";
+  name = "kde-desktop-themes-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "desktopthemes";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/emoticons.nix b/pkgs/desktops/kde-4.5/artwork/emoticons.nix
index 64dc90a95c6a..05d40947a94a 100644
--- a/pkgs/desktops/kde-4.5/artwork/emoticons.nix
+++ b/pkgs/desktops/kde-4.5/artwork/emoticons.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-emotion-icons-${meta.kde.version}";
+  name = "kde-emotion-icons-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "emoticons";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/high-resolution-wallpapers.nix b/pkgs/desktops/kde-4.5/artwork/high-resolution-wallpapers.nix
index 0f1b782c9394..17e0af4c86f2 100644
--- a/pkgs/desktops/kde-4.5/artwork/high-resolution-wallpapers.nix
+++ b/pkgs/desktops/kde-4.5/artwork/high-resolution-wallpapers.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-wallpapers-high-resolution-${meta.kde.version}";
+  name = "kde-wallpapers-high-resolution-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "HighResolutionWallpapers";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/kscreensaver.nix b/pkgs/desktops/kde-4.5/artwork/kscreensaver.nix
index 0390231a816a..ca7e65b9f39b 100644
--- a/pkgs/desktops/kde-4.5/artwork/kscreensaver.nix
+++ b/pkgs/desktops/kde-4.5/artwork/kscreensaver.nix
@@ -4,12 +4,11 @@ kde.package rec {
   buildInputs = [ cmake automoc4 kdelibs xscreensaver kdebase_workspace eigen ];
   preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
   meta = {
-    description = "KDE screen saver and savers";
+    description = "KDE screensavers";
     kde = {
       name = "kscreensaver";
       module = "kdeartwork";
       version = "1.0";
-      release = "4.5.4";
       versionFile = "kscreensaver/kpartsaver/kpartsaver.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/artwork/nuvola-icon-theme.nix b/pkgs/desktops/kde-4.5/artwork/nuvola-icon-theme.nix
index a105148845df..8bd1f4011367 100644
--- a/pkgs/desktops/kde-4.5/artwork/nuvola-icon-theme.nix
+++ b/pkgs/desktops/kde-4.5/artwork/nuvola-icon-theme.nix
@@ -1,8 +1,9 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "nuvola-icon-theme-${meta.kde.version}";
-# Sources contain primary and kdeclassic as well but they're not installed
+  name = "nuvola-icon-theme-${kde.release}";
+  
+  # Sources contain primary and kdeclassic as well but they're not installed
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -10,7 +11,6 @@ kde.package rec {
     kde = {
       name = "IconThemes";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/phase-style.nix b/pkgs/desktops/kde-4.5/artwork/phase-style.nix
index 0c05c263c30d..c4295b668100 100644
--- a/pkgs/desktops/kde-4.5/artwork/phase-style.nix
+++ b/pkgs/desktops/kde-4.5/artwork/phase-style.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-style-phase-${meta.kde.version}";
+  name = "kde-style-phase-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "styles";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/sounds.nix b/pkgs/desktops/kde-4.5/artwork/sounds.nix
index ca708d98f81f..e0824503281b 100644
--- a/pkgs/desktops/kde-4.5/artwork/sounds.nix
+++ b/pkgs/desktops/kde-4.5/artwork/sounds.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-sounds-${meta.kde.version}";
+  name = "kde-sounds-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "sounds";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/wallpapers.nix b/pkgs/desktops/kde-4.5/artwork/wallpapers.nix
index 705ff5762b5b..e2cad0b71781 100644
--- a/pkgs/desktops/kde-4.5/artwork/wallpapers.nix
+++ b/pkgs/desktops/kde-4.5/artwork/wallpapers.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-wallpapers-${meta.kde.version}";
+  name = "kde-wallpapers-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "wallpapers";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/artwork/weather-wallpapers.nix b/pkgs/desktops/kde-4.5/artwork/weather-wallpapers.nix
index bc495d2a8ff5..b4354c10f874 100644
--- a/pkgs/desktops/kde-4.5/artwork/weather-wallpapers.nix
+++ b/pkgs/desktops/kde-4.5/artwork/weather-wallpapers.nix
@@ -1,7 +1,7 @@
 { cmake, kde, automoc4, kdelibs }:
 
 kde.package rec {
-  name = "kde-weather-wallpapers-${meta.kde.version}";
+  name = "kde-weather-wallpapers-${kde.release}";
 
   buildInputs = [ cmake automoc4 kdelibs ];
   meta = {
@@ -9,7 +9,6 @@ kde.package rec {
     kde = {
       name = "WeatherWallpapers";
       module = "kdeartwork";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/base-runtime/default.nix b/pkgs/desktops/kde-4.5/base-runtime/default.nix
index 8cc432be6956..293bc8dd04d6 100644
--- a/pkgs/desktops/kde-4.5/base-runtime/default.nix
+++ b/pkgs/desktops/kde-4.5/base-runtime/default.nix
@@ -19,9 +19,6 @@ kde.package {
     description = "KDE runtime";
     longDescription = "Libraries and tools which supports running KDE desktop applications";
     license = "LGPL";
-    kde = {
-      name = "kdebase-runtime";
-      version = "4.5.4";
-    };
+    kde.name = "kdebase-runtime";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/base-workspace/default.nix b/pkgs/desktops/kde-4.5/base-workspace/default.nix
index 9c4c5ead3602..0fbafd2e4071 100644
--- a/pkgs/desktops/kde-4.5/base-workspace/default.nix
+++ b/pkgs/desktops/kde-4.5/base-workspace/default.nix
@@ -3,7 +3,7 @@
 , libXi, libXau, libXdmcp, libXtst, libXcomposite, libXdamage, libXScrnSaver
 , lm_sensors, libxklavier, libusb, libpthreadstubs, boost
 , automoc4, strigi, soprano, qimageblitz, akonadi
-, libdbusmenu_qt, libqalculate, pciutils, libraw1394, bluez
+, libdbusmenu_qt, libqalculate, pciutils, libraw1394, bluez, networkmanager
 }:
 
 kde.package {
@@ -13,15 +13,19 @@ kde.package {
     kdepimlibs kdebindings boost libusb libXi libXau libXdmcp libraw1394
     libXcomposite libXdamage libXScrnSaver lm_sensors libxklavier automoc4
     strigi soprano qimageblitz akonadi libpthreadstubs libdbusmenu_qt libqalculate
-    pciutils bluez ];
+    pciutils bluez networkmanager ];
+
+  patches =
+    [ # Don't do compositing with the software GLX driver, since it's
+      # completely broken (corrupt output, server crashes, etc.).
+      # (NixOS/121)
+      ./no-software-compositing.patch
+    ];
 
   meta = {
     description = "KDE base platform-specific components";
     longDescription = "KDE base components that are only required to work with X11 such KDM and KWin";
     license = "GPL";
-    kde = {
-      name = "kdebase-workspace";
-      version = "4.5.4";
-    };
+    kde.name = "kdebase-workspace";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/base-workspace/no-software-compositing.patch b/pkgs/desktops/kde-4.5/base-workspace/no-software-compositing.patch
new file mode 100644
index 000000000000..7c9e102bc95a
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base-workspace/no-software-compositing.patch
@@ -0,0 +1,17 @@
+diff -ru -x '*~' kdebase-workspace-4.5.5-orig//kwin/compositingprefs.cpp kdebase-workspace-4.5.5/kwin/compositingprefs.cpp
+--- kdebase-workspace-4.5.5-orig//kwin/compositingprefs.cpp	2010-06-24 18:28:18.000000000 +0200
++++ kdebase-workspace-4.5.5/kwin/compositingprefs.cpp	2011-03-11 16:33:07.296566718 +0100
+@@ -314,9 +314,10 @@
+     //else if( mDriver == "radeon" )
+     //    {
+     //    }
+-    //else if( mDriver == "software" )
+-    //    {
+-    //    }
++    else if( mDriver == "software" )
++        {
++        mRecommendCompositing = false;
++        }
+     }
+ 
+ 
diff --git a/pkgs/desktops/kde-4.5/base/default.nix b/pkgs/desktops/kde-4.5/base/default.nix
index 545621b5ed9f..2f0c78e5f01d 100644
--- a/pkgs/desktops/kde-4.5/base/default.nix
+++ b/pkgs/desktops/kde-4.5/base/default.nix
@@ -11,9 +11,6 @@ kde.package {
     description = "KDE Base components";
     longDescription = "Applications that form the KDE desktop, like Plasma, System Settings, Konqueror, Dolphin, Kate, and Konsole";
     license = "GPL";
-    kde = {
-      name = "kdebase";
-      version = "4.5.4";
-    };
+    kde.name = "kdebase";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/bindings/default.nix b/pkgs/desktops/kde-4.5/bindings/default.nix
index 4928e883e6c9..ec4c2ecc4cb5 100644
--- a/pkgs/desktops/kde-4.5/bindings/default.nix
+++ b/pkgs/desktops/kde-4.5/bindings/default.nix
@@ -19,19 +19,16 @@ kde.package rec {
       -DCUSTOM_PERL_SITE_ARCH_DIR=$CUSTOM_PERL_SITE_ARCH_DIR
     )
   '';
-  
+
   # TODO: okular, qimageblitz, qwt5, qscintilla2, c#
   buildInputs = [ cmake perl python sip pyqt4 zlib libpng freetype fontconfig qt4 boost
-          kdelibs kdepimlibs automoc4 soprano akonadi attica polkit_qt_1 ruby ];
+          kdelibs kdepimlibs automoc4 soprano attica polkit_qt_1 ruby ];
 
   meta = {
     description = "KDE bindings";
     longDescription = "Provides KDE bindings for several languages such as Java, Smoke and Python";
     license = "LGPL";
-    kde = {
-      name = "kdebindings";
-      version = "4.5.4";
-    };
+    kde.name = "kdebindings";
   };
 }
 
diff --git a/pkgs/desktops/kde-4.5/default.nix b/pkgs/desktops/kde-4.5/default.nix
index 7702dbc89805..1f0fd3810717 100644
--- a/pkgs/desktops/kde-4.5/default.nix
+++ b/pkgs/desktops/kde-4.5/default.nix
@@ -1,15 +1,15 @@
-{ callPackage, recurseIntoAttrs, runCommand, stdenv, fetchurl, qt47 } :
+{ callPackage, recurseIntoAttrs, runCommand, stdenv, fetchurl, qt47, ffmpeg_0_6_90 } :
 
 let
 
-  version = "4.5.4";
+  release = "4.5.5";
 
   # Various packages (e.g. kdesdk) have been split up into many
   # smaller packages.  Some people may want to install the entire
   # package, so provide a wrapper package that recombines them.
   combinePkgs = name: pkgs:
     let pkgs' = stdenv.lib.attrValues pkgs; in
-    runCommand "${name}-${version}" ({ passthru = pkgs // { inherit pkgs; }; })
+    runCommand "${name}-${release}" ({ passthru = pkgs // { inherit pkgs; }; })
       ''
         mkdir -p $out/nix-support
         echo ${toString pkgs'} > $out/nix-support/propagated-user-env-packages
@@ -24,33 +24,23 @@ recurseIntoAttrs rec {
 
   qt4 = qt47;
 
-  phonon = null;
+  ffmpeg = ffmpeg_0_6_90;
 
-  kde = callPackage ./kde-package { };
+  shared_desktop_ontologies = callPackage ./support/shared-desktop-ontologies { };
+
+  kde = callPackage ./kde-package { inherit release; };
 
 ### SUPPORT
   akonadi = callPackage ./support/akonadi { };
 
   attica = callPackage ./support/attica { };
 
-  automoc4 = callPackage ./support/automoc4 { };
-
-  eigen = callPackage ./support/eigen { };
-
   oxygen_icons = callPackage ./support/oxygen-icons { };
 
   polkit_qt_1 = callPackage ./support/polkit-qt-1 { };
 
-  strigi = callPackage ./support/strigi { };
-
   soprano = callPackage ./support/soprano { };
 
-  qca2 = callPackage ./support/qca2 { };
-
-  qca2_ossl = callPackage ./support/qca2/ossl.nix { };
-
-  qimageblitz = callPackage ./support/qimageblitz { };
-
 ### LIBS
   kdelibs = callPackage ./libs { };
 
@@ -59,6 +49,9 @@ recurseIntoAttrs rec {
 ### BASE
   kdebase = callPackage ./base { };
 
+  # Forward compatibility.
+  kde_baseapps = kdebase;
+
   kdebase_workspace = callPackage ./base-workspace { };
 
   kdebase_runtime = callPackage ./base-runtime { };
@@ -137,7 +130,7 @@ recurseIntoAttrs rec {
     ktimer = callPackage ./utils/ktimer.nix { };
     kwallet = callPackage ./utils/kwallet.nix { };
     okteta = callPackage ./utils/okteta.nix { };
-    printer_applet = callPackage ./utils/printer-applet.nix { };
+    #printer_applet = callPackage ./utils/printer-applet.nix { };
     superkaramba = callPackage ./utils/superkaramba.nix { };
     sweeper = callPackage ./utils/sweeper.nix { };
   };
@@ -154,9 +147,10 @@ recurseIntoAttrs rec {
 
 ### DEVELOPMENT
 
-  kdebindings = callPackage ./bindings { };
+  #kdebindings = callPackage ./bindings { };
+  kdebindings = null;
 
-  l10n = callPackage ./l10n { };
+  l10n = callPackage ./l10n { inherit release; };
 
   # Make the split packages visible to `nix-env -q'.
   misc = recurseIntoAttrs
diff --git a/pkgs/desktops/kde-4.5/edu/default.nix b/pkgs/desktops/kde-4.5/edu/default.nix
index 852453df4c37..f9132de8739a 100644
--- a/pkgs/desktops/kde-4.5/edu/default.nix
+++ b/pkgs/desktops/kde-4.5/edu/default.nix
@@ -1,5 +1,5 @@
 { kde, cmake, qt4, perl, libxml2, libxslt, openbabel, boost, readline, gmm, gsl
-, xplanet, libspectre, pkgconfig, libqalculate
+, xplanet, libspectre, pkgconfig, libqalculate, python
 , kdelibs, automoc4, eigen, attica}:
 
 kde.package {
@@ -16,14 +16,17 @@ kde.package {
 
   buildInputs = [ cmake qt4 perl libxml2 libxslt openbabel boost readline gmm
     gsl xplanet kdelibs automoc4 eigen attica libspectre pkgconfig
-    libqalculate ];
+    libqalculate python ];
+
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${python}/include/${python.libPrefix}"
+    export NIX_LDFLAGS="$NIX_LDFLAGS -l${python.libPrefix} -lboost_python"
+  '';
+  cmakeFlags = '' -DBOOST_PYTHON_INCLUDES="${boost}/include" -DBOOST_PYTHON_LIBS="boost_python" -DKIG_ENABLE_PYTHON_SCRIPTING=1'';
 
   meta = {
-    description = "KDE Educative software";
+    description = "KDE educational software";
     license = "GPL";
-    kde = {
-      name = "kdeedu";
-      version = "4.5.4";
-    };
+    kde.name = "kdeedu";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/games/default.nix b/pkgs/desktops/kde-4.5/games/default.nix
index 02c7b9bf5b96..8a407b3f5721 100644
--- a/pkgs/desktops/kde-4.5/games/default.nix
+++ b/pkgs/desktops/kde-4.5/games/default.nix
@@ -7,16 +7,9 @@ kde.package {
   buildInputs = [ cmake qt4 perl shared_mime_info kdelibs automoc4 qca2
     kdebindings twisted python pyqt4 sip makeWrapper ];
 
-  postInstall = ''
-    wrapProgram $out/bin/kajongg --set PYTHONPATH $PYTHONPATH
-    wrapProgram $out/bin/kajonggserver --set PYTHONPATH $PYTHONPATH'';
-
   meta = {
     description = "KDE Games";
     license = "GPL";
-    kde = {
-      name = "kdegames";
-      version = "4.5.4";
-    };
+    kde.name = "kdegames";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/graphics/default.nix b/pkgs/desktops/kde-4.5/graphics/default.nix
index 45b588af25e2..36aeaf28019a 100644
--- a/pkgs/desktops/kde-4.5/graphics/default.nix
+++ b/pkgs/desktops/kde-4.5/graphics/default.nix
@@ -15,9 +15,6 @@ kde.package {
       Okular  document reader.
     '';
     license = "GPL";
-    kde = {
-      name = "kdegraphics";
-      version = "4.5.4";
-    };
+    kde.name = "kdegraphics";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/kde-package/default.nix b/pkgs/desktops/kde-4.5/kde-package/default.nix
index 433e12f45399..81a36fe9502d 100644
--- a/pkgs/desktops/kde-4.5/kde-package/default.nix
+++ b/pkgs/desktops/kde-4.5/kde-package/default.nix
@@ -1,10 +1,9 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, release }:
 
 rec {
-  defaultArgs = {name, stable ? true, version,
-    module ? name, release ? version, ... }:
+  inherit release;
 
-    assert (name == module) -> (release == version);
+  defaultArgs = { name, stable ? true, version ? release, module ? name, ... }:
 
     (
       {
@@ -20,6 +19,8 @@ rec {
             ).sha256;
         };
 
+        enableParallelBuilding = true;
+
         meta = {
           maintainers = with stdenv.lib.maintainers; [ sander urkud ];
           platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/desktops/kde-4.5/kde-package/manifest-4.5.4.nix b/pkgs/desktops/kde-4.5/kde-package/manifest-4.5.4.nix
deleted file mode 100644
index b00a5025fa7f..000000000000
--- a/pkgs/desktops/kde-4.5/kde-package/manifest-4.5.4.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-[
-{
-  module = "kdeaccessibility";
-  sha256 = "0jd07n143r2610a261xx193zkigs30a4p645pzyw3dsi6la8ms0r";
-}
-{
-  module = "kdeadmin";
-  sha256 = "0frf4clljqnynxv67hqypsfaifdrgbgc0zb9lcckjialc03f2kfm";
-}
-{
-  module = "kdeartwork";
-  sha256 = "08260bml12y3xwr61q2qxrp0aqcshi14h7n93b12q0m9fs8n87x0";
-}
-{
-  module = "kdebase";
-  sha256 = "1k9hla4qwrgz12g4n72c46w6b1srjnwf95zxhj2axqdw4k4hfj6z";
-}
-{
-  module = "kdebase-runtime";
-  sha256 = "0rqrx9hz266dc9l7sn2pakqy36w5919gchwc4ghb5qzira3jjg1h";
-}
-{
-  module = "kdebase-workspace";
-  sha256 = "09a4jsa3w4v4ldsh244isbbrsv350xcmd2py0sb3lvja7gf9wqhw";
-}
-{
-  module = "kdebindings";
-  sha256 = "0vx7fhg74g0b2xcaxjybxci34kyc10h1i29qsdqr1005j01cdvj0";
-}
-{
-  module = "kdeedu";
-  sha256 = "080pw86l55jfhdxm3a18qh4h1p7k6w3cb37g8ymfsyx3k3diil6x";
-}
-{
-  module = "kdegames";
-  sha256 = "12p209n673fxnm9wsgc7by46z4hs3d7b3hzwgcxggzag0kyhx3s5";
-}
-{
-  module = "kdegraphics";
-  sha256 = "1b4n1ss5pg213blqrkbk0pqchfr336rybqfkcb8scv1blx0w83qs";
-}
-{
-  module = "kdelibs";
-  sha256 = "0c4ybrpdw3dblv68mj6sa7q13kx1z64f8lpakxf6f7vw1ish2dph";
-}
-{
-  module = "kdemultimedia";
-  sha256 = "16k8l5h4m2wjpzpzflk2agmg48m1gj4fyzjp67z446lmb1m8jap7";
-}
-{
-  module = "kdenetwork";
-  sha256 = "1g0hy92ixh2nzvasjm4ms8n8jyy777d909gjv16ph8g5w2pxj61w";
-}
-{
-  module = "kdepimlibs";
-  sha256 = "1yc615qf3qihlj69glm4amdrbck33vagp5xmgnp6mny5vhvdc85b";
-}
-{
-  module = "kdeplasma-addons";
-  sha256 = "0q9r8lafc3aa15smaj1r5kcyz2jw7lpbnp6qxanllfbv7c4b37nb";
-}
-{
-  module = "kdesdk";
-  sha256 = "1ia336cfs42h8b3jahd9hb2ynahyiccx6y8dfk420xvyy024i2ra";
-}
-{
-  module = "kdetoys";
-  sha256 = "12755p77r5fv2lfr78jrvcx8vg1mnsfsb1g8hpr6b59w5hh2k2mm";
-}
-{
-  module = "kdeutils";
-  sha256 = "07g96bwy8h4ydj8gdnm1cs7vgm96s3m9c2d36d8r3w6apvh5pjkc";
-}
-{
-  module = "kdewebdev";
-  sha256 = "1ng0rbrizqmqm4l0j9xahf0dwh5674cimzkzrlgj09dl4a603xar";
-}
-{
-  module = "oxygen-icons";
-  sha256 = "0j9d4h3nl3vqwh4fi1zysahgvwd0xswqa25p8jl6hl86rnawhjcy";
-}
-]
diff --git a/pkgs/desktops/kde-4.5/kde-package/manifest-4.5.5.nix b/pkgs/desktops/kde-4.5/kde-package/manifest-4.5.5.nix
new file mode 100644
index 000000000000..43fb16cd9171
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/kde-package/manifest-4.5.5.nix
@@ -0,0 +1,82 @@
+[
+{
+  module = "kdeaccessibility";
+  sha256 = "1vlm844jx0ggp236zl3wzzq3j2s8h9cd7cg1ajvsalpcab0dp088";
+}
+{
+  module = "kdeadmin";
+  sha256 = "1dd725f1m9w1sm6fkhvsc7nkn7avk2lmkgqx183vjx1znxfpj9x3";
+}
+{
+  module = "kdeartwork";
+  sha256 = "1k22fhqch2s6ajfy906nxjhqw05a9lfibs7pdzgsrdxs5606jdyc";
+}
+{
+  module = "kdebase";
+  sha256 = "07xk16r5cw1jzilkkg2kyff0nk7n0fxrawx0n7xn4mxpzqzgjvn6";
+}
+{
+  module = "kdebase-runtime";
+  sha256 = "0kz9s3i66fzxcklm95f7vqlx3jbgpj32gbg7nxy1iyaih01vz17j";
+}
+{
+  module = "kdebase-workspace";
+  sha256 = "14c0v5bhb16syrk9hw340jb9fh48syclgnxiwzyfn7967gz9142d";
+}
+{
+  module = "kdebindings";
+  sha256 = "1iapya735cpdpdn5g8rw1m4r8jvr8kjpjbpxkhd7y750x3vjvykv";
+}
+{
+  module = "kdeedu";
+  sha256 = "0agirfgx6fwm6j2hk7xzf589gikr5y4p3sqabjrk5i6wwqjsp651";
+}
+{
+  module = "kdegames";
+  sha256 = "10jrq5cd0fjjl5bpdqjckyx1g4clxdain3xy2gcw2f40b4yk0zi4";
+}
+{
+  module = "kdegraphics";
+  sha256 = "0k475fmfmr8z86qh9qsdik5jphdsaiw4kb580mn1r4zwsn1wq8dk";
+}
+{
+  module = "kdelibs";
+  sha256 = "1yganq6m9zvf9l3cbdkgj1i4zrlq77qm3lf7nnqzpkyr6iq6sz1l";
+}
+{
+  module = "kdemultimedia";
+  sha256 = "17ma5igdq8qmsmpx8lia7xpw68441via613qs42sbm2nhqg2rp46";
+}
+{
+  module = "kdenetwork";
+  sha256 = "1w97bb5z55kllzig528ap5dmilvjgqiazn8vkj180zwi1avixqpg";
+}
+{
+  module = "kdepimlibs";
+  sha256 = "0immri4fvs9kxhaafk9i8zh630slayrd84wpwgvy1673mgxs4y4r";
+}
+{
+  module = "kdeplasma-addons";
+  sha256 = "13hhsbgfqxxh07zafy3zgky9bipyxysi5zpwmi7ljjj51n72z1wr";
+}
+{
+  module = "kdesdk";
+  sha256 = "030m2gghaxgkg8hjrzzdkibmmf34zqimi8jw979sar7c9n5nrkkg";
+}
+{
+  module = "kdetoys";
+  sha256 = "0q2cbsj2p16i0nd6swpayiq1w40l084cxvvkdqpzilkss8dcp0jf";
+}
+{
+  module = "kdeutils";
+  sha256 = "057zmfyp4lz5i2hq7n80p6zi5bf39hz3rvi1wyyw35sga76j5fvw";
+}
+{
+  module = "kdewebdev";
+  sha256 = "14k3dr9z53g98gxyzglbrmkbwgc63ifn11z0wfy2vxfrk4vhniip";
+}
+{
+  module = "oxygen-icons";
+  sha256 = "06vn8yn79kxll9f7gpsa7ihw6waj5qgz752zh9h8bycqc1m1i6nb";
+}
+]
diff --git a/pkgs/desktops/kde-4.5/l10n/default.nix b/pkgs/desktops/kde-4.5/l10n/default.nix
index 03c10cb4b8eb..e2ee8e4dc409 100644
--- a/pkgs/desktops/kde-4.5/l10n/default.nix
+++ b/pkgs/desktops/kde-4.5/l10n/default.nix
@@ -1,26 +1,18 @@
-{ stdenv, fetchurl, cmake, kdelibs, gettext, perl, automoc4 }:
+{ stdenv, fetchurl, cmake, kdelibs, gettext, perl, automoc4, release }:
 
 let
-  overrides = { };
 
-  defaultRelease = "4.5.4";
-  releases = [ "4.5.1" "4.5.2" "4.5.3" "4.5.4" ];
+  inherit (stdenv.lib) attrByPath singleton;
 
-  sanitizeString = replaceChars [ "@" "." ] [ "_" "_" ];
-  getOverride = name: attrByPath [name] {} overrides;
-
-  inherit (stdenv.lib) replaceChars attrByPath singleton;
-
-  kdeL10nDerivation = {lang, sha256, release} :
-    let
-      name = "kde-l10n-${lang}-${release}";
-      saneName = "kde-l10n-${sanitizeString lang}-${release}";
-    in
-    stdenv.mkDerivation ({
-      name = saneName;
+  kdeL10nDerivation =
+    { lang, saneName, sha256 }:
+    
+    stdenv.mkDerivation rec {
+      name = "kde-l10n-${saneName}-${release}";
+      
       src = fetchurl {
-        url = "mirror://kde/stable/${release}/src/kde-l10n/${name}.tar.bz2";
-        name = "${saneName}.tar.bz2";
+        url = "mirror://kde/stable/${release}/src/kde-l10n/kde-l10n-${lang}-${release}.tar.bz2";
+        name = "${name}.tar.bz2";
         inherit sha256;
       };
 
@@ -31,19 +23,14 @@ let
         license = "GPL";
         inherit (kdelibs.meta) maintainers platforms homepage;
       };
-    }
-    // (getOverride lang) // (getOverride name)
-  );
+    };
 
-  kdeL10nRelease = release:
-    let
-      releaseStr = sanitizeString release;
-    in
+  kdeL10nRelease =
     builtins.listToAttrs (
-      map ({lang, sha256}:
+      map ({lang, saneName, sha256}:
         {
-          name = "${sanitizeString lang}";
-          value = kdeL10nDerivation { inherit lang release sha256;};
+          name = saneName;
+          value = kdeL10nDerivation { inherit lang saneName sha256; };
         }
       ) (import (./manifest + "-${release}.nix"))
     );
@@ -52,7 +39,4 @@ in
 {
   inherit kdeL10nDerivation;
   recurseForDerivations = true;
-}
-// builtins.listToAttrs (map (r : { name = sanitizeString r; value =
-kdeL10nRelease r; }) releases)
-// (kdeL10nRelease defaultRelease)
+} // kdeL10nRelease
diff --git a/pkgs/desktops/kde-4.5/l10n/l10n-manifest.sh b/pkgs/desktops/kde-4.5/l10n/l10n-manifest.sh
index baa235e0f75f..cc0eec20aaaf 100755
--- a/pkgs/desktops/kde-4.5/l10n/l10n-manifest.sh
+++ b/pkgs/desktops/kde-4.5/l10n/l10n-manifest.sh
@@ -24,6 +24,7 @@ for i in `cd "${dir}"; ls kde-l10n-*-${release}.tar.bz2`; do
   hash=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
   echo "{"
   echo "  lang = \"${lang}\";"
+  echo "  saneName = \"$(echo $lang | sed s^@^_^g)\";"
   echo "  sha256 = \"${hash}\";"
   echo "}"
   echo $hash >&2
diff --git a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.1.nix b/pkgs/desktops/kde-4.5/l10n/manifest-4.5.1.nix
deleted file mode 100644
index 3f7e0ffc8ab4..000000000000
--- a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.1.nix
+++ /dev/null
@@ -1,218 +0,0 @@
-[
-{
-  lang = "ar";
-  sha256 = "0xgmrwlza3p2fvj66y4vc4r81r5y2n2igjaj2xmgvb2pvh4zx0ws";
-}
-{
-  lang = "bg";
-  sha256 = "1npa9y8i7j68c8sa9cd96gy4n65bkl474agibax8rdk2mniyqrn9";
-}
-{
-  lang = "ca";
-  sha256 = "0097sk50cf1cq6wnah3kiab8vkh68snzahcng2blk63gw908yfvx";
-}
-{
-  lang = "cs";
-  sha256 = "077424cbqn68rf9wb026ip1n0rq5lz1iwp4k7ih15j87ymbrd03f";
-}
-{
-  lang = "da";
-  sha256 = "0p80a2pn9hgih2y5s27z8ir8jkyz68i87sdw439c8z3pjww5dy2h";
-}
-{
-  lang = "de";
-  sha256 = "007r6wf0in22y2jc1nr1msazv6bd48136kc4q0633gn1igdhb03h";
-}
-{
-  lang = "el";
-  sha256 = "1ffgqjxgdfsjx0nwhj5yl2pn2kmc92s01wfxzdvb6kss9r53v95k";
-}
-{
-  lang = "en_GB";
-  sha256 = "1bmg1aygaarnpka9dfvxgnzwqphqaly8rfps63g03ncls7ml8ilb";
-}
-{
-  lang = "eo";
-  sha256 = "0bqrarah2pc6kjcfla117rwc0k1m23ndp4nm4ac2sygmanz1j6bk";
-}
-{
-  lang = "es";
-  sha256 = "0hr3halsjjdzlmx2rfxycacm26pxs1f3m8awahmr1dp5ngid42wn";
-}
-{
-  lang = "et";
-  sha256 = "1pj1wjnjjj052csn0ajql2i3ynpd4fc9l53zj4j3vsd177gypdjw";
-}
-{
-  lang = "eu";
-  sha256 = "0zhrqy8b7wn8vdq75dlafc91mhvqpn3cw7hn90jj99c1aazdhjpd";
-}
-{
-  lang = "fi";
-  sha256 = "0x0dhy1c7wn5wxqx2v7jyv10rc6gi6klmw0q80vp3xpfma9l16yg";
-}
-{
-  lang = "fr";
-  sha256 = "1yvzpvxdzznrj61hdbi9jgpxdb9l0i8g24q1xkswpnp87jrncpaq";
-}
-{
-  lang = "fy";
-  sha256 = "14c740yfw5v043rmqmwnb3ic0s7l2kcjy57qdqhfpmr75m4rjrvl";
-}
-{
-  lang = "ga";
-  sha256 = "0w5cj0bgyy2pna8hqcpx82n3pwzr9vzshzknz86azb8c0pwkcjdw";
-}
-{
-  lang = "gl";
-  sha256 = "00kwqzypkw0bi8nhz75a367h2filwkmc1kiiv66l2s3d4vrkdgjz";
-}
-{
-  lang = "gu";
-  sha256 = "0as072rz4k4h8b0ix8jipn6bfck8van024sz1gd6xj1bhs83wk0m";
-}
-{
-  lang = "he";
-  sha256 = "1f5j1qgkmzjagmyjxa00xmfxk5zgfms77gidg88hycrvgrxm6g59";
-}
-{
-  lang = "hi";
-  sha256 = "0sy6cis0hkddmq4jw43a7rpxjadmzrgbgyhnnhyp9m6n225rh54g";
-}
-{
-  lang = "hr";
-  sha256 = "016h7iqfkarl6p20gqcajknw3bsbqvby824fsdyrrhan82vsqd0k";
-}
-{
-  lang = "hu";
-  sha256 = "1ck6vrrvvwlcxlgmmjq4hk5dh38clqvf3fwc7ndgr4wrxlr4c94m";
-}
-{
-  lang = "ia";
-  sha256 = "13mnd7ndkfdq591da3cwj64wchq86qk265i6r7xir87gxn5m86xr";
-}
-{
-  lang = "id";
-  sha256 = "0a1rw0mx1fdmps5vfx7m8mrmsqvqkpdbpbwys9sxbxy1zcbinasr";
-}
-{
-  lang = "is";
-  sha256 = "0hinhxsq4nm4g97gcdfyx8fzx6d0syg9llww9spwpqp26myad69r";
-}
-{
-  lang = "it";
-  sha256 = "0z4kdlmyliqa6qgdxbimifp535p6nvvydpa504i9klxcywc382y5";
-}
-{
-  lang = "ja";
-  sha256 = "1vsyjgwh69wwadn27ncxmr85d1qn91xvrbfxxl8x9gqa44dzrs7k";
-}
-{
-  lang = "kk";
-  sha256 = "1nzx2djxav6hga6ha473xkqiqgv8ikh3iq3b7i20zqcsjp3lhynq";
-}
-{
-  lang = "km";
-  sha256 = "0rd36apjlgq3qvhbdq0a289hbn1hff1qbnphaisy1p1dsh3bbnw9";
-}
-{
-  lang = "kn";
-  sha256 = "0al7whnmcpiq50b56xhzxpd6zmwv79s5j62m6z537kl3ldq9is5l";
-}
-{
-  lang = "ko";
-  sha256 = "0s5y6h8nx4xp5vd39qpby303zsvi67yrbdzsgvig98gbw61szkd7";
-}
-{
-  lang = "lt";
-  sha256 = "0wmwfn7w6z1lvjgn283rcpxv8j6lh8yzkvgjmhdg2r4ys948gzz0";
-}
-{
-  lang = "lv";
-  sha256 = "1w4k7rr06m0ynl52gdikqw45754pj7z9n65pxyv88gxj5sjkzlw8";
-}
-{
-  lang = "ml";
-  sha256 = "1qgs6xwyx1sc496ybq1m1mm0wyl9fz6317p4m5jvwiicldrcx3hq";
-}
-{
-  lang = "nb";
-  sha256 = "0frnnxang8k491cnmn9lc2kbqkqr5m40c53d75l07j97jndv98y1";
-}
-{
-  lang = "nds";
-  sha256 = "1p3h86qzrrhxrvl4qryizm3j6lnq3lm1vpnnapkk04y7msz0fdpr";
-}
-{
-  lang = "nl";
-  sha256 = "0lphl2j0faalaj3mkkqv5806bg2fd6s1478cprrrkw788hvvlmzl";
-}
-{
-  lang = "nn";
-  sha256 = "06pj24zfsgbkk1jxjjs5by8czv0llfz90iq6rq4lxnc0s195isjg";
-}
-{
-  lang = "pa";
-  sha256 = "1sqqanvxzw63bdlkgvi6jlngvrshqrfl8d0jac103wvy4y4f6l5r";
-}
-{
-  lang = "pl";
-  sha256 = "13n278n3p32bphch54x7qgba268m95kmql3qgxsx8ziy8riir9mm";
-}
-{
-  lang = "pt";
-  sha256 = "12mkprpk9imda0iyi65mg4rs3w2qnyq8iszg0k7yqf7537zpv4x1";
-}
-{
-  lang = "pt_BR";
-  sha256 = "1ipn6kvc3nq84fvpb9xrpwkqjaj2sya3y1cr2ai51909yfjk5r35";
-}
-{
-  lang = "ro";
-  sha256 = "1kfyjlpkjnmv7fryr1w2a9d1dijkmhs3mqpqg0hi7316qy2z10jy";
-}
-{
-  lang = "ru";
-  sha256 = "0m62rszff2k4rffmy3h9hxhs8bf523cfinlyay663zq3bh35i6h9";
-}
-{
-  lang = "sk";
-  sha256 = "07pzslmln8yh0s8ik0bj86rhyy4w21w13pvf9z6ifapqigklw33c";
-}
-{
-  lang = "sl";
-  sha256 = "1vrdzbl5ii6paaick88dkr5fabjpi36gjwwz67kqy6d9nm44jjp1";
-}
-{
-  lang = "sr";
-  sha256 = "186ncq0hr0lrn1l6xhqwjwqrmd9xw9qa0kf9cqvj0x3j6qk4mjqf";
-}
-{
-  lang = "sv";
-  sha256 = "0r62fs75a1kfr2dsfg1zrzh0c2wgbv6jq4c1w05wcbmqvpq16ks6";
-}
-{
-  lang = "th";
-  sha256 = "1apvlcmbwhnjc3dlfjzah1ckwwhjn2rcrvgmv1rwvn9py7yfzhf5";
-}
-{
-  lang = "tr";
-  sha256 = "0zci2fqcnlj9y23sy7v8yb1nc37dfqbpj1xrfs7sfvhj12048sb0";
-}
-{
-  lang = "uk";
-  sha256 = "0p9jdz8w8xiiqhbsj90gkshcpijh2l8hfbvvqy12d1nx5wb1glp3";
-}
-{
-  lang = "wa";
-  sha256 = "06hybn2l2jlibxr6lg91p0p7nnc6lyisx0w64zar52h958mqa9p8";
-}
-{
-  lang = "zh_CN";
-  sha256 = "1f786n41yqfi02gd0n9lf30xn9djgbm26c8kqx8p7fm2b5vw28jh";
-}
-{
-  lang = "zh_TW";
-  sha256 = "065d2ggahphsffk7p8xb9p5xzm12azz84s9jll447sawwks0jgsg";
-}
-]
diff --git a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.2.nix b/pkgs/desktops/kde-4.5/l10n/manifest-4.5.2.nix
deleted file mode 100644
index cb9a45065550..000000000000
--- a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.2.nix
+++ /dev/null
@@ -1,222 +0,0 @@
-[
-{
-  lang = "ar";
-  sha256 = "1wlg38gfv77d4rfzr6ba8mcrbq1lsgvqpd1zgcfgv9m6c5i32rh0";
-}
-{
-  lang = "bg";
-  sha256 = "0dy2zirfs2aan445862srfrxkvmv9l6dk1qzk2mis8lmq7qnvv4x";
-}
-{
-  lang = "ca";
-  sha256 = "0ay15k75d44ggr6s5qxip7cwyddl91zlqgwnp71iw720iq49d4c1";
-}
-{
-  lang = "ca@valencia";
-  sha256 = "0fmcmpm3wi1qfd0lvd10d0crn7jfzf9n184x45fvqw4dkn62phdc";
-}
-{
-  lang = "cs";
-  sha256 = "0r06qh0i3il2n07bbp70gsr5p7y5gb9gd1gzy5m5g33mmnhgf2af";
-}
-{
-  lang = "da";
-  sha256 = "1dz2ixm42ndyqwjs6h3900ycq9j50l0nzahxmjfm76b9r2cbph6g";
-}
-{
-  lang = "de";
-  sha256 = "1729hhfwszairx08x0s5rbidrbxqqvlh1m6rww2j1bqv5krgadns";
-}
-{
-  lang = "el";
-  sha256 = "1is7vy7m0y3x6n5llcg4fz8qd6ddjvfxriyggw9kx1g661z25gny";
-}
-{
-  lang = "en_GB";
-  sha256 = "0nwgj99y13h3fc6ljmnmrxaj3aiwg031p4nrb49ngmh66r1c3n2r";
-}
-{
-  lang = "eo";
-  sha256 = "0w78f6n2nhalgj7i997hrkka9i252mrny8mgnq8bfwsr03lfjs9h";
-}
-{
-  lang = "es";
-  sha256 = "18cqvjw7f9kj0inhhw00b6jxgsikamr0iik7pbblra2shimpr9hh";
-}
-{
-  lang = "et";
-  sha256 = "1zrdywhc34kj09141ybr5g98bf1zqrxzazsdi51ln07pcmbrn7fd";
-}
-{
-  lang = "eu";
-  sha256 = "03ff2narllyjyl7ddqq80i88m10ma1g9l0k970vpakw2bk3qd90c";
-}
-{
-  lang = "fi";
-  sha256 = "0kpzsngspxgfgy2fdghb7syksrs4h3392xngl7g1ndr6m9wfrl33";
-}
-{
-  lang = "fr";
-  sha256 = "042jbsr7agkikyj4f3wz6vbwgalmkq75sxm9mr0hspaxqw0rdww5";
-}
-{
-  lang = "fy";
-  sha256 = "0yvqi4z98aql596pa77blrj34mxhv3q04nbp4mdiss9i6wkqxa56";
-}
-{
-  lang = "ga";
-  sha256 = "14s90f9nlk2knkf8lsxklkval39gb77ca70hcs4n571hl3hdvpd7";
-}
-{
-  lang = "gl";
-  sha256 = "0xh409ydzqzsbwq7727i5yj6irb2y75maa7kkvm9bmhpb5whn0k6";
-}
-{
-  lang = "gu";
-  sha256 = "1agly26l4z5lc0s1b4j5rdpdk9sf0ffw9zp8j4mvaz501aifq777";
-}
-{
-  lang = "he";
-  sha256 = "0z2czis29bqga9jzgrdzqf85f6k14gr1rcyawhc6ddffmb5is8pj";
-}
-{
-  lang = "hi";
-  sha256 = "0f1j6682pfajg7dlf2rqqif5s8w00wpjr688kchqdsld7byax4wf";
-}
-{
-  lang = "hr";
-  sha256 = "126f04zgnha153yzmq5263chwiz2lv910sgrh23a07k6piip20wi";
-}
-{
-  lang = "hu";
-  sha256 = "10cwzpsq42vkyb4x7sc406pjf3ryr5api0cr9vwhnnqprwr82yw3";
-}
-{
-  lang = "ia";
-  sha256 = "0gd6li2iy1l0bg9kvs19hsxlrqzfa92if7j9g90l8qml1xg0d916";
-}
-{
-  lang = "id";
-  sha256 = "1rz8h2yna7hyvv2bynf0q5zz42qs74y6z4y2ca92b0qfc4a1ai1d";
-}
-{
-  lang = "is";
-  sha256 = "1lkr67dlpskj141y7wihxdgnmkag1dalb8s0r1xixf051ax2wd2y";
-}
-{
-  lang = "it";
-  sha256 = "1pz0mlg1p9mrqb79m7dsm6lk8iicyc8jwbrvrhlsji6ahr81pybk";
-}
-{
-  lang = "ja";
-  sha256 = "12333ilhd67y8gkddpx7jzdvs10h66qi8qi4nrqb6ici6spxmb3i";
-}
-{
-  lang = "kk";
-  sha256 = "0q845ix7kadfsphvfdkz7fawh3zqmainsw321mn90n6izf8y893j";
-}
-{
-  lang = "km";
-  sha256 = "0ahmw632kqclplq5d65inglhvn5jzxdjhhpkqx32rq7sxk3qhhrf";
-}
-{
-  lang = "kn";
-  sha256 = "12lp3rbcxbqm27clm71vli2pdwyp8r2bk3a2mmvnv016pjn0vphn";
-}
-{
-  lang = "ko";
-  sha256 = "12fb0wqms571xp9mnyiv61khby71cwsf9sg05w0gjci7avwxv6w0";
-}
-{
-  lang = "lt";
-  sha256 = "1p2rg1w3b6qgzjhsmi8dsj3mh7n8wbkgp9hrwbsl8dj7l6yz9799";
-}
-{
-  lang = "lv";
-  sha256 = "0zm48nl504dwwsrn8b44ldh0dzj7j42v6r54bsfsqajzq7f857yi";
-}
-{
-  lang = "ml";
-  sha256 = "0wxsfykvsg1iz0az1jngdl26sgs73pv0si30n0835xzclcv4dflx";
-}
-{
-  lang = "nb";
-  sha256 = "1040i62nh9ldv2v5ps483r6ccp2jy6w94kijv5h01k2p82iv8f85";
-}
-{
-  lang = "nds";
-  sha256 = "1ljgdlrqwb966xpxg2fpjcqzmplhdbmd566q7k69x5fmmyxw7vn9";
-}
-{
-  lang = "nl";
-  sha256 = "08vwq4xy392bqln31lvbdgzhx50sj44mrnw920j6k2a0f1qmkar7";
-}
-{
-  lang = "nn";
-  sha256 = "1da0xrbx8p72lp6r4nrhh6q5sgfm08vak6dk9g3kssjgnjarg785";
-}
-{
-  lang = "pa";
-  sha256 = "05jkc60csj16gxxh6z5n15g65yqf2nd77sa8f00vjhx58iisvvb2";
-}
-{
-  lang = "pl";
-  sha256 = "0hi7dsrg7dln9nkfc1wichmn334303qxdkihv13fybw43xp3gznv";
-}
-{
-  lang = "pt";
-  sha256 = "17j0angzvv2mxj12jb7vv3dlmljrfhyki5clmj040z64siam0w4k";
-}
-{
-  lang = "pt_BR";
-  sha256 = "1c6i79bslyzz0skfh05152jxn5hqlbas2l9fgzh58amn5bgy6afg";
-}
-{
-  lang = "ro";
-  sha256 = "1yljfz3b7lnnlnwvqf71b22ss99an759hg3xky1nzq11kpp9a5y0";
-}
-{
-  lang = "ru";
-  sha256 = "0p1zp2bgz3afxq4r6cbr1sv56ymq0xvn249vi048knsa2sclq8bk";
-}
-{
-  lang = "sk";
-  sha256 = "1v6lx4jb78k44xgfdxih1mf1817piw1igmvkc39l7r8ci0drvdjx";
-}
-{
-  lang = "sl";
-  sha256 = "1xqyafbzas460p7vxvydw8k8gzsgaxsidy19hzanvdb5ns4j8fs2";
-}
-{
-  lang = "sr";
-  sha256 = "1yznci299164l89dq9k5wfahk5aw3y61i4bf08qn6zi5hmzsfv66";
-}
-{
-  lang = "sv";
-  sha256 = "1k5b9f9i5zn8j5nkafw4cl42rvigssz5fqmy0nv1awj87r9vd3x6";
-}
-{
-  lang = "th";
-  sha256 = "0l25jags9kfhnr0v8k5id2pl85rlxly5a74i94wzvnf0abkmy6hi";
-}
-{
-  lang = "tr";
-  sha256 = "166rw0znk906zikdxg573xykfxmwdnld2ps9c0y758n6mvl107xz";
-}
-{
-  lang = "uk";
-  sha256 = "1hlx3dnf3avcnfs55v0vq9knmf001hs00fd4rqigx8y09i8947jc";
-}
-{
-  lang = "wa";
-  sha256 = "17i73mmc1vwvjwrvz9sq45q0ax43xq3agi2d95s772kpbrf4l8qj";
-}
-{
-  lang = "zh_CN";
-  sha256 = "1xqi0rn36dm7f4j5x9gdk6ml8y3vzzm009qp8algqrzy46j864cz";
-}
-{
-  lang = "zh_TW";
-  sha256 = "1qh3vnpk6ickdqa8n9h1na16s6q7kr61f44b0qymxz2lw79ihhgz";
-}
-]
diff --git a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.3.nix b/pkgs/desktops/kde-4.5/l10n/manifest-4.5.3.nix
deleted file mode 100644
index b9b69d76a159..000000000000
--- a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.3.nix
+++ /dev/null
@@ -1,222 +0,0 @@
-[
-{
-  lang = "ar";
-  sha256 = "0i22kwm737ry3l3q9pwmbnv2ln317fz3r1z8x8i6l0czdkj5qxw6";
-}
-{
-  lang = "bg";
-  sha256 = "0qa2x3zz5aaxlm88zvrkglsisc85la6asfh5yiijc9hga27ykp16";
-}
-{
-  lang = "ca";
-  sha256 = "1ip55x72chxs9v1hr8rzi519xhfvkkbv7b4k4pc5nygpdqzj1whh";
-}
-{
-  lang = "ca@valencia";
-  sha256 = "0g8x685a2ndvm9qh2wp6kxdlhbidgsjacw80p488hizgqczakbn7";
-}
-{
-  lang = "cs";
-  sha256 = "19zx1zhd6wrkqmc6qnyj4rsll14difps0dzwnwa56l3h5ir1828v";
-}
-{
-  lang = "da";
-  sha256 = "1q50w3dmxbpczgxgl6n49lc5qqym42r1kz4h7ijqfazb5mwk9zqc";
-}
-{
-  lang = "de";
-  sha256 = "0ff4174szrxm4wn3jmkkzfr3jl0yqxkkqi3g3xj71mazsrsa1ghs";
-}
-{
-  lang = "el";
-  sha256 = "1r5m3d7cc3mi748ckmkky53j3cmw20pibczvkwcs2c65q6l0vcjc";
-}
-{
-  lang = "en_GB";
-  sha256 = "194jdjpqcpi861sxpvqagm8nammwksxyi55i75bw53p8x87i27pv";
-}
-{
-  lang = "eo";
-  sha256 = "1gbmqm9mgmps37pwr7lb140pvrmm24m6aw989qaig27gjjqpmvnx";
-}
-{
-  lang = "es";
-  sha256 = "1hnnk2zvlbppdqqbf1vi2d2c8mpw693bwb6dixba4p542ir7bi8i";
-}
-{
-  lang = "et";
-  sha256 = "0qgv7v93n4mnpcdvjxkdbvyaji1nhgj0nxby5hxrznnvgwbvfzbf";
-}
-{
-  lang = "eu";
-  sha256 = "1rmdak9pgkswrnwdpmgck2lq2cw5v3bjc8vv79mb3kyki901423g";
-}
-{
-  lang = "fi";
-  sha256 = "17s9yqadgjq2dmp28syxzzprya80j0b2l60r293k0bdkdfrgz07p";
-}
-{
-  lang = "fr";
-  sha256 = "15hh7k9dhi2mb27rihjc9dfii1ab8c1i2jbhihmjmb8hd5dm30bx";
-}
-{
-  lang = "fy";
-  sha256 = "0q5vcnimnvl3gmrqj2fr6i7fvw2bd3lrg77s03hf25crkfsd7lr8";
-}
-{
-  lang = "ga";
-  sha256 = "0cy8a0jvb0w35i3482a86rdnbbyswww9dlb57rjhw6mqwa3qp6j6";
-}
-{
-  lang = "gl";
-  sha256 = "1xdzhf6kwkz2r77i86grcdbrwxm37shaif2vjhhwgimplsh7z5s3";
-}
-{
-  lang = "gu";
-  sha256 = "1sky7kc5prg1bnkh2nhriqs33qa7rlfds9k31sf24x4jhfn75lji";
-}
-{
-  lang = "he";
-  sha256 = "0bkfwilsvvaiklgnfnyf6p1dyamwj310b9xkrdga7szrsfgrviip";
-}
-{
-  lang = "hi";
-  sha256 = "0fxz77pfv9ayx43pf037bpllhjwxdhsggl7yq5qg28d233602sxc";
-}
-{
-  lang = "hr";
-  sha256 = "16nkrdh1y9mk5rkdyl70i9dh8xam2fr23lz7p0qmjf66npjnvcz1";
-}
-{
-  lang = "hu";
-  sha256 = "141xhsxv2bk81sx3lzzd78a9qzp0qzrcp32i9d4bkmyppwiia9h2";
-}
-{
-  lang = "ia";
-  sha256 = "1hgzk2yfwjqils8zd1rv1djdjsj932mqxcl4bnfv3az4vl0ly405";
-}
-{
-  lang = "id";
-  sha256 = "12hqichrl7i3fjkqyhc2c3dp34bhjl0ps4g3vpc0m59w2vwyv4sw";
-}
-{
-  lang = "is";
-  sha256 = "1ydx8sx7dwdzava4y3aj0vfd23nfqiwq5m9aw3ayaliipacrq1dg";
-}
-{
-  lang = "it";
-  sha256 = "0z7zig48ixqs18dyi6q28k8dwn2a2giwsndignd5ck7xbi5h7rn8";
-}
-{
-  lang = "ja";
-  sha256 = "0mpch19nk8pqizq2zcs8jpxrsj2nq9lx82m58dwgmxdn3qlpklm3";
-}
-{
-  lang = "kk";
-  sha256 = "099hqac4a5z0aq3nw0znwjlxgxgpmmjb385nm2z74s3d8d4dw8bb";
-}
-{
-  lang = "km";
-  sha256 = "09lmpxv3ljm7bhhnmj94dia7ldz4sdnf9v0cs7ia83iiaw008hc9";
-}
-{
-  lang = "kn";
-  sha256 = "0bzwbncgzf3mhp7f24r9wrf8ip6d5slmvvycmyicvpwfj61dcwsx";
-}
-{
-  lang = "ko";
-  sha256 = "0saxxrzvcsjjw4jascqk8vpr8lm7xq737vabhmsfqga0262h8wzl";
-}
-{
-  lang = "lt";
-  sha256 = "1fn6dbncqdgnwgrd58jcdbc9c474kyb397djxk5lcf9gmdq7634q";
-}
-{
-  lang = "lv";
-  sha256 = "0vml848hxynic4cg3w8zadmfxs7l0qqd7xb3c7kxznrqgkra7rqs";
-}
-{
-  lang = "ml";
-  sha256 = "1d77wb1d7lsmpv2vh8jzfi4y30bd5nn8ljlfx42yfdyw9drkbm38";
-}
-{
-  lang = "nb";
-  sha256 = "1mprsawqaqb6i2nhgbvq8hp1nmfwlxvd9chfx49xas7wk209jd25";
-}
-{
-  lang = "nds";
-  sha256 = "005i6vvq6s8c9spjx0is29jj9d0x4lm766njvsgsa0mrzgfps6w7";
-}
-{
-  lang = "nl";
-  sha256 = "0f0z2ql08pgdbqig67jjxk8p1bf6fk70br9nhmsk72k2lv7abb0y";
-}
-{
-  lang = "nn";
-  sha256 = "08ajabbzrng3gn56bl0wk15rd43pwlrd0crj7c4n8aq61qgz1c1p";
-}
-{
-  lang = "pa";
-  sha256 = "099d7fhk48c3vra7bcam89ffs86iw495vxycr3679ah1bfwf8k68";
-}
-{
-  lang = "pl";
-  sha256 = "1qf6bycvzz6p0lvvkpq2lwvjiln42xrq0qhjzcb7m8zs1zan47hi";
-}
-{
-  lang = "pt";
-  sha256 = "16726ggm87y3bvyhdpvvwcw6n5s8dw5bjw5kxpz7160iljabn71a";
-}
-{
-  lang = "pt_BR";
-  sha256 = "12fp3gf0iicwv426ni7n45rbxywrv4ni73c1ljw1lahfdhmhkxsv";
-}
-{
-  lang = "ro";
-  sha256 = "0bi25kmg7jcmz8c6xlqadzv5jr6kxx8z0pbbhgbh2nl6yfjw7fm9";
-}
-{
-  lang = "ru";
-  sha256 = "0g7ibrv5x9dlhawjcmd302yg4vql31675w7cnzjcpkc9sga3i764";
-}
-{
-  lang = "sk";
-  sha256 = "0jmndf6kxqhqgfiilzfzaf9hgq6c66ndcw1lc306kcw0qv90fm1s";
-}
-{
-  lang = "sl";
-  sha256 = "1lic93q78kq831pzgzmydy6x9fgzkyrwpl5958sjpvbf2dra1xmp";
-}
-{
-  lang = "sr";
-  sha256 = "0g9cdkq7lcm2gbgsk001ywpwjwbsi8xxv90cklifgxfvqnd351gw";
-}
-{
-  lang = "sv";
-  sha256 = "0l7xqyya76np43acq3hjgvcipz0acc2iwqmwjs2hgnhbs12fny2c";
-}
-{
-  lang = "th";
-  sha256 = "1pbjxng4p35zd2aw78x3z5ycil1diah39bknmdgpily5cd3g3bg8";
-}
-{
-  lang = "tr";
-  sha256 = "1spsr67k9wmcaypk0yzqg60qq6ynw4xfi3xcsdm2vkhgcc9rk8cl";
-}
-{
-  lang = "uk";
-  sha256 = "1jii27q1m0sj3vk7ly45m9zi49l4rkr2v05z8zzfbxi2gzg02kc1";
-}
-{
-  lang = "wa";
-  sha256 = "0mqpqpwj1qnzrqyd4lc0fkhj1r42p228kg2yyy6xn2xa4na8sg2w";
-}
-{
-  lang = "zh_CN";
-  sha256 = "0hx69djrd7nvm889b5ig2hjy73m0vhzxxj7njrh21y551pcj7s0q";
-}
-{
-  lang = "zh_TW";
-  sha256 = "1axpangs004scmhq35m22axg3v6rdpidndvr1i49cxf3bhgpqpqs";
-}
-]
diff --git a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.4.nix b/pkgs/desktops/kde-4.5/l10n/manifest-4.5.4.nix
deleted file mode 100644
index 99d4e4b0d86d..000000000000
--- a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.4.nix
+++ /dev/null
@@ -1,222 +0,0 @@
-[
-{
-  lang = "ar";
-  sha256 = "1yn5dvd2d6wk12434x7v463ywz0sn1d9z2fhsbhclwzns3p07brn";
-}
-{
-  lang = "bg";
-  sha256 = "0dnhywbld5ll4wvpl42kn6bnffjr72d4wp36446ffnwkqvhwg0bm";
-}
-{
-  lang = "ca";
-  sha256 = "0i6cplf7fsr4q6yyv2y4sj1d44zd4d81h3mh6fbc0icq42im4pyq";
-}
-{
-  lang = "ca@valencia";
-  sha256 = "1p55xn6k47ag4ph8byaasp27sczh6asqj0x8677hacmm01vps4xy";
-}
-{
-  lang = "cs";
-  sha256 = "16yz0yc8b0g2kzpywi4a0xys6rkj47n45l3i4f39ycypxavqya0v";
-}
-{
-  lang = "da";
-  sha256 = "0pc4im8rd4n6wn65gwyiyl4c414kp1gspw45xzj3mssbpghhn0ic";
-}
-{
-  lang = "de";
-  sha256 = "1apdjmyb3f07rjld43yabr3bvvb8xikhlzr0zmv37y43bzbvlk9x";
-}
-{
-  lang = "el";
-  sha256 = "1irh0pjaxfx893792s3wl0k8m9cy6c428isdlnij1mdbpyg4pw9d";
-}
-{
-  lang = "en_GB";
-  sha256 = "08248znhd1pxgx6izi8pfrccm31fm083bq4i9d9f4m3b9svxj63i";
-}
-{
-  lang = "eo";
-  sha256 = "1ydizv2sggfdwlh9vlf9dzf7pwjvqj3aa1vx1wdb1qzp913kixy9";
-}
-{
-  lang = "es";
-  sha256 = "11545n83bknw6a1h1dw3sxlswhqj8mm0nm9nricrmjwxhi2r2gma";
-}
-{
-  lang = "et";
-  sha256 = "1dpk4h5yfg5ljf5l6yg5i8r4v4k5cq4dq8bdir883lwlkvzmql5j";
-}
-{
-  lang = "eu";
-  sha256 = "1qfhqbpxh1mgxbzh7l8gb0xsm9pi50mq48ya32s8a502khwwxh41";
-}
-{
-  lang = "fi";
-  sha256 = "11a03s37sd1fn0s0yx8lf369l8da3qmf6aqagrlsn3cj9rwa3pn6";
-}
-{
-  lang = "fr";
-  sha256 = "0f739jlpxfqyd41y0l5ydmdjwmn3ihvcxihl3v2cmwyaxfhvapbj";
-}
-{
-  lang = "fy";
-  sha256 = "057n58mnryjxqh3v9vyf5qysf6xilmiw1p6gnsdnmqvznccmx7j7";
-}
-{
-  lang = "ga";
-  sha256 = "1wbc9mxj7yf630x3dqabv783dv012k6xna362a7cy3pzbdr49kl2";
-}
-{
-  lang = "gl";
-  sha256 = "0vg248wbmfmcdskq60nafnkly9l3i32yz21xbwjmnvs2drwphayz";
-}
-{
-  lang = "gu";
-  sha256 = "14misxmdi5v26fql40vqwjci93l5jrjqrwd049pj5i0jnrjhy5rd";
-}
-{
-  lang = "he";
-  sha256 = "19h2ca93kqr293qjg0gy5mpgw0x3cgdmjs70k42781zl4xz1prjp";
-}
-{
-  lang = "hi";
-  sha256 = "0qhp5ml6jindbxds8mllnsyi5c0mlnmwppfdxjapg0m229f6dgh6";
-}
-{
-  lang = "hr";
-  sha256 = "08i7lg3rii1lciy42ny65k43sn4lv85jl3464rn7a91yvbk18iym";
-}
-{
-  lang = "hu";
-  sha256 = "0wfxqcjpi0yl7xsnpb5k25jl0c7haf9dr2f85wmw6iv2iamdkfmh";
-}
-{
-  lang = "ia";
-  sha256 = "1ixqr026g4fi7fbrr7wi49h3662b3jdb8nsfqs5dd41mjchk20c8";
-}
-{
-  lang = "id";
-  sha256 = "079n7q5nx5mass01dqqngvajjfs4qdcdl9d9jdzkn4fzhffpgdap";
-}
-{
-  lang = "is";
-  sha256 = "150snwlbyv7461bh6yfl8cq5dv5alxf37grdgq2zynkpnx9i3s8k";
-}
-{
-  lang = "it";
-  sha256 = "07bza0by629gywqxkxchzvlw8fs1swg7ivpr3zn48lm8ka9xqx3s";
-}
-{
-  lang = "ja";
-  sha256 = "0bpjahc276wm0fscnlffqq2m838jkir17s4v12q0zr0dmryxd7lc";
-}
-{
-  lang = "kk";
-  sha256 = "11cyklk2j6igmq71j7fcr9gg8jn99lq6z9yi77p7hn4rid7dflgp";
-}
-{
-  lang = "km";
-  sha256 = "0d7f7zz6ys3yfq3wlbk621yy7zzblzb3zv8g849mbpb5m5rl6bsg";
-}
-{
-  lang = "kn";
-  sha256 = "0hcri8am13sy7qnl0459b7cphb0jw4fc40nqw3crrdrsr8677abj";
-}
-{
-  lang = "ko";
-  sha256 = "0zz6k2xgfvb80031dinsyp6crgr1iy0iv1d0m2bq1985aa98rrih";
-}
-{
-  lang = "lt";
-  sha256 = "1knzjdhl98h8jdad5dwkqkiqs7wwib57jvs3jf0zacvqbcpchwb7";
-}
-{
-  lang = "lv";
-  sha256 = "0pm9k4ww10dnyvkgkm6n8cddwlj5431k17sbshgmgjnw9bszk798";
-}
-{
-  lang = "ml";
-  sha256 = "06j6124q2mmpjs5y3gqy7fxgldwnvq5683394s3m23n8q81yg0wj";
-}
-{
-  lang = "nb";
-  sha256 = "180vsfx87ynizzga878757qjnj1k91qad57iisw5hqcxk2fg3v22";
-}
-{
-  lang = "nds";
-  sha256 = "16i9wz1lzkqij61raffm8h4l6fjri4h9ybbgxy7nlqiqaj67jghl";
-}
-{
-  lang = "nl";
-  sha256 = "1clrmccm2vdvi9v7f2yqhhf69iln57m7hpw2638is6fs31ivyr1v";
-}
-{
-  lang = "nn";
-  sha256 = "0447v1wzbb7bvmpbcyav3gv45vv4zl9p9nj3sk45c8md1by82hc3";
-}
-{
-  lang = "pa";
-  sha256 = "1fbrfczjp2yliz13swha2f4767jwzy9bi1hb1dqi2yjhyqhj7k6p";
-}
-{
-  lang = "pl";
-  sha256 = "1xzsfrxwgf6kmfa1j5dy699rxaxmc3vpcv8zgqi96kwwhqmmwn9p";
-}
-{
-  lang = "pt";
-  sha256 = "08gdvkbqfshbgf6zwyg05g05kc7hm81s01z7p67jc2q80vkl7ahz";
-}
-{
-  lang = "pt_BR";
-  sha256 = "05x600wzp7x1hx262pmb27js146j6sv9c3mbw748q1l3c7cdp0xs";
-}
-{
-  lang = "ro";
-  sha256 = "13r08mka2j6zyz4a3ycs57zaj4ipjdv12sbag0bjwk9dx5x45xs5";
-}
-{
-  lang = "ru";
-  sha256 = "0yw8aax09yl89ab15rlc66lmx4x552hkg5fd89vnhlbk2h9v1rms";
-}
-{
-  lang = "sk";
-  sha256 = "1k905nmvbig7qmbq83y9jbgp72vg9l1mj2iahqz4r726zpqz4fxq";
-}
-{
-  lang = "sl";
-  sha256 = "1ywy35wj8aa17q7hf692dwi7s0xi8ns9p0pmfm13nz8214rbmc4q";
-}
-{
-  lang = "sr";
-  sha256 = "0rqycg08wgrcvphd4mxjsk460nflpv78r0wil4bsqfa8i774v8r0";
-}
-{
-  lang = "sv";
-  sha256 = "0rl2hdnhn9r5yk4zp1sxbxhqchs411kffs5krdym19a3kl83zp36";
-}
-{
-  lang = "th";
-  sha256 = "0n62zs6sjfdkyxs7n6hmji8bzl9y2r4gsqs0jysmjkz23y6160bh";
-}
-{
-  lang = "tr";
-  sha256 = "0phc1cbp98bilvscxnxnbzwgk85ilws5l3n3bsgbkqrh5rqz9fyn";
-}
-{
-  lang = "uk";
-  sha256 = "1hy7hriikvmpjgmxf1zw2j0hkv6f8ig8v20damcivkid3maj307g";
-}
-{
-  lang = "wa";
-  sha256 = "11zwqkv1qpqgxxqvq0y92xyq88czzyx76krx1qbc0d50mv5zk91r";
-}
-{
-  lang = "zh_CN";
-  sha256 = "0pn3xd91ka20mf35rsdyf9sp3cwf9dpxn7lradz2380mkira6mp0";
-}
-{
-  lang = "zh_TW";
-  sha256 = "0zx879d0fkgblfq6574kq4wdhip729ni8v1cjhg0v97l7pnridzk";
-}
-]
diff --git a/pkgs/desktops/kde-4.5/l10n/manifest-4.5.5.nix b/pkgs/desktops/kde-4.5/l10n/manifest-4.5.5.nix
new file mode 100644
index 000000000000..31a6a50fb77e
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/l10n/manifest-4.5.5.nix
@@ -0,0 +1,277 @@
+[
+{
+  lang = "ar";
+  saneName = "ar";
+  sha256 = "0dn4aiv48dhknp9wv7fsjdy8fhrwiwnbp65qq66nfrly51ranv8s";
+}
+{
+  lang = "bg";
+  saneName = "bg";
+  sha256 = "07srb5r4a0j2pakk8xsv7ky5s2cjd9liyzrx86xyzxpf21p83xbd";
+}
+{
+  lang = "ca";
+  saneName = "ca";
+  sha256 = "0rhs16c331cjhxjqq08hkl1c8vjg4nyy3mjfw5idh9qv05y9af5z";
+}
+{
+  lang = "ca@valencia";
+  saneName = "ca_valencia";
+  sha256 = "1cm8ynlylmpggapplfzggkd9j98nycm1mybh87pk4vqdh3vm8wm4";
+}
+{
+  lang = "cs";
+  saneName = "cs";
+  sha256 = "1rblfliw810yadmdplyg6n9ss7zzq318cfgvhscjjl0c9ndcx7x2";
+}
+{
+  lang = "da";
+  saneName = "da";
+  sha256 = "1x2wg76i3jgylr56ynj4p53kym1wmk789spsrgnh2y5zgppf1h43";
+}
+{
+  lang = "de";
+  saneName = "de";
+  sha256 = "0rmpzlxds8m527vkfkd48pgqcpdmyr86hi53b9gy1z237hjzjp2w";
+}
+{
+  lang = "el";
+  saneName = "el";
+  sha256 = "0zwgzcr6d94h9j2ghj6mxdss98cp9x6wlf1cp4v743addmjja26v";
+}
+{
+  lang = "en_GB";
+  saneName = "en_GB";
+  sha256 = "1phdg7miligjyya5srj11szijbrk67n27d2zrjninbpvj6jhmsx2";
+}
+{
+  lang = "eo";
+  saneName = "eo";
+  sha256 = "0jlf8i4csmrp6k05v3hkx8kk45kx42klfn9z9xdn8lak5ckycbrm";
+}
+{
+  lang = "es";
+  saneName = "es";
+  sha256 = "04kybzwkxsj64zqwiwir70fddf4zbfqpzfy01xhwz4fwinjl2pp0";
+}
+{
+  lang = "et";
+  saneName = "et";
+  sha256 = "1s3wg2pxp40111s3w82jpcgzz6j2103q3kdsm6s2mc5343i44bcs";
+}
+{
+  lang = "eu";
+  saneName = "eu";
+  sha256 = "1hqzdg2g8c6knwv6dqvrlk31v35p91f1hh04n41w2acxzrhl8r5p";
+}
+{
+  lang = "fi";
+  saneName = "fi";
+  sha256 = "1fagzkgcnj8wihkhkd0xbfjr4x4774xsdc3n17wy2d49kinkgxa8";
+}
+{
+  lang = "fr";
+  saneName = "fr";
+  sha256 = "14796jqhkhr60dxc0f69lavaikci6qn6avgiy1f2apfirs60lfi4";
+}
+{
+  lang = "fy";
+  saneName = "fy";
+  sha256 = "0c39sr4q4dl4rf6irs0c5km3xwaip0iw8a8pfljsd9an7bpzs9f9";
+}
+{
+  lang = "ga";
+  saneName = "ga";
+  sha256 = "1gfbi896kwrjaz4jkif3276qjx4ixjy8mybhmkc3c19crk1lvfn4";
+}
+{
+  lang = "gl";
+  saneName = "gl";
+  sha256 = "1s368cszycmn8dr4l1fycr1rswqm93d0hlxjr007hp0n07fddkiw";
+}
+{
+  lang = "gu";
+  saneName = "gu";
+  sha256 = "1ca5j72kd8dbvwvvks4zhjz92v39x7g7qpdxzqscwm5cg17arxr9";
+}
+{
+  lang = "he";
+  saneName = "he";
+  sha256 = "0wchlwvw8rhiz08kglkqpj1vjiiagqrmypgyn4jiar2ds5b3kxl9";
+}
+{
+  lang = "hi";
+  saneName = "hi";
+  sha256 = "0sdlj0w2vgvsp44jy1rgc35vyvndsybdf2xyxml8zhr48rhijnr7";
+}
+{
+  lang = "hr";
+  saneName = "hr";
+  sha256 = "1rspkmppz9mpf4lp4a2jm708ilygpxdi3crnsfvrfb3qsywxz520";
+}
+{
+  lang = "hu";
+  saneName = "hu";
+  sha256 = "12kk692z9xaks9pys9pwq1zgb817grzgrkcm943yzdr68k5mvfhm";
+}
+{
+  lang = "ia";
+  saneName = "ia";
+  sha256 = "15464pdhfjw0dvmdjvl1c23cqnxgka498xh6fy2prrkwnsk4cra5";
+}
+{
+  lang = "id";
+  saneName = "id";
+  sha256 = "1iiypv1yf6mp5hp14yr7dgvk7ydb66yyp7ayjswf78ak7cl9kc4v";
+}
+{
+  lang = "is";
+  saneName = "is";
+  sha256 = "1v182xds7y3mpbm6jy3hbxr0ld4if67mx6027izbflnydydjindk";
+}
+{
+  lang = "it";
+  saneName = "it";
+  sha256 = "1lycijcrcsfviiqj34jqmap6czps8j1nsjp0fizkk6gmicfdwyxb";
+}
+{
+  lang = "ja";
+  saneName = "ja";
+  sha256 = "12li937isc3479a70z8x32y2lqbl97y833cpcmbsxpa93c3hrzs3";
+}
+{
+  lang = "kk";
+  saneName = "kk";
+  sha256 = "1kd0a2rh35k0yl5irv8jxhycvacg7444y02czdhmpg9z40xpl73k";
+}
+{
+  lang = "km";
+  saneName = "km";
+  sha256 = "1fvn0lh3psc3ijn8j26m5likvw466kvdda5f30p3md12ydd9h15x";
+}
+{
+  lang = "kn";
+  saneName = "kn";
+  sha256 = "0n7m67rjplc8q3bw5fyignba0kglzbrqay0qmgiqzdqn8yw72vjq";
+}
+{
+  lang = "ko";
+  saneName = "ko";
+  sha256 = "0p3f9rd6wvcxac9jv23msszq03nhi4sn6i98rszh7p93rwllhrpk";
+}
+{
+  lang = "lt";
+  saneName = "lt";
+  sha256 = "19lzs8avagiydmv4rmpxmzv5dsaprf9wl6iwzk9g1lqg4x16nisw";
+}
+{
+  lang = "lv";
+  saneName = "lv";
+  sha256 = "0xqwz6gbzv142izhf4qwx9qzny8k24712k9pvr0xpak5s7sn0838";
+}
+{
+  lang = "ml";
+  saneName = "ml";
+  sha256 = "07f8j5zqa0wil5mmdpv16dw4cd6qzsqfqply4jq276g16g80ihg6";
+}
+{
+  lang = "nb";
+  saneName = "nb";
+  sha256 = "149r3y0x4yahgmln2qg085b86whdhmh6dx11cxn8r31l497a0jp7";
+}
+{
+  lang = "nds";
+  saneName = "nds";
+  sha256 = "0zly7l2bpnmxv60kyyhm8n9mkd7w66sc18i98462zk2d2l7k2xyz";
+}
+{
+  lang = "nl";
+  saneName = "nl";
+  sha256 = "0a8dp40i8mxjjf08wg6xmx88fivkqpiv2icbpl3nm8xxhxjgx462";
+}
+{
+  lang = "nn";
+  saneName = "nn";
+  sha256 = "0sa7qiiffma83p0yk31l5rkng2z1cm3m8r05jyvici5048i1sg9w";
+}
+{
+  lang = "pa";
+  saneName = "pa";
+  sha256 = "0zj88vi9spyc06vgd2hifsix8sa3lcchjjpplv5jll7dvicdw8vd";
+}
+{
+  lang = "pl";
+  saneName = "pl";
+  sha256 = "0hhrpws9nhqb6yhlnbv03150jykb7fx3wbbmjg36fh78cbqjknjd";
+}
+{
+  lang = "pt";
+  saneName = "pt";
+  sha256 = "0yck1nrmyx9zpk65znnga9jhv6mjv3gmhvlqis3fs3panp5ngdhl";
+}
+{
+  lang = "pt_BR";
+  saneName = "pt_BR";
+  sha256 = "1w14431b3n3z3yjm8l2kcbs8gpv58gj55p801mb17bdfh5dvs7r5";
+}
+{
+  lang = "ro";
+  saneName = "ro";
+  sha256 = "0fzjgifv1skmgbfng5lpajan0icg87xipq0817vy0g2izrs356k8";
+}
+{
+  lang = "ru";
+  saneName = "ru";
+  sha256 = "0021hfr1zdvym8rsccypsbci8kcjal1dfhqrj8dci8lf78bf05hn";
+}
+{
+  lang = "sk";
+  saneName = "sk";
+  sha256 = "0iq9vn16na58iak6lg3h12cblajv28bk90f80b4ki8lsz0wynqky";
+}
+{
+  lang = "sl";
+  saneName = "sl";
+  sha256 = "1pzq68bahnr8afnyxmhhsiyzn83f34xgymly1b71hkavkg5f05zz";
+}
+{
+  lang = "sr";
+  saneName = "sr";
+  sha256 = "03g69ffxgiw9fzsznkxxrmma9m7plasy7qlf15vrcp7faj0pjl7s";
+}
+{
+  lang = "sv";
+  saneName = "sv";
+  sha256 = "0i140ddjdc1l5v52inimhzgx1i9sbrb88ggg1bc6nnsk762jxn2a";
+}
+{
+  lang = "th";
+  saneName = "th";
+  sha256 = "10s7j601dzhsl40f1rifn6mazi0hgl3isalv3pak6d0b690y6lnb";
+}
+{
+  lang = "tr";
+  saneName = "tr";
+  sha256 = "061jqvcajk05cp4w4fcxdsh0drkynn170cyw0491iq6rqz2wsqsk";
+}
+{
+  lang = "uk";
+  saneName = "uk";
+  sha256 = "0xnxyavzz5f861fm7g4xqjqdr3b9k6mrjfpc5yjf4wa8g60ra2jl";
+}
+{
+  lang = "wa";
+  saneName = "wa";
+  sha256 = "0p789j8jnfpgwlbl73mcx9jpxb7h7hgmmksqhrc2ng42z2jmlv6d";
+}
+{
+  lang = "zh_CN";
+  saneName = "zh_CN";
+  sha256 = "07jqagsp54805kz30lybizbj66njslwyfzh66xrlgfx5vsbfn6sk";
+}
+{
+  lang = "zh_TW";
+  saneName = "zh_TW";
+  sha256 = "17mrvf1flqyfnla96idj87m5406mjjm696kf505y4si78nlnc6s2";
+}
+]
diff --git a/pkgs/desktops/kde-4.5/libs/default.nix b/pkgs/desktops/kde-4.5/libs/default.nix
index a0b4681769f1..c45b9ac98f80 100644
--- a/pkgs/desktops/kde-4.5/libs/default.nix
+++ b/pkgs/desktops/kde-4.5/libs/default.nix
@@ -2,7 +2,7 @@
 , qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
 , xz, flex, bison, openexr, aspell, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
 , automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt
-, docbook_xml_dtd_42, docbook_xsl, polkit_qt_1, hspell
+, docbook_xml_dtd_42, docbook_xsl, polkit_qt_1, hspell, phonon
 }:
 
 kde.package {
@@ -19,7 +19,7 @@ kde.package {
 # Split plugins from libs?
 
   propagatedBuildInputs = [ qt4 gcc.libc strigi soprano attica qca2
-    shared_desktop_ontologies ];
+    shared_desktop_ontologies phonon ];
 
   patches = [ ./polkit-install.patch ];
 
@@ -34,9 +34,6 @@ kde.package {
   meta = {
     description = "KDE libraries";
     license = "LGPL";
-    kde = {
-      name = "kdelibs";
-      version = "4.5.4";
-    };
+    kde.name = "kdelibs";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/multimedia/default.nix b/pkgs/desktops/kde-4.5/multimedia/default.nix
index eb0574a8fc55..e18257e02a1e 100644
--- a/pkgs/desktops/kde-4.5/multimedia/default.nix
+++ b/pkgs/desktops/kde-4.5/multimedia/default.nix
@@ -12,9 +12,6 @@ kde.package {
       Contains various Multimedia utilties for KDE such as a movie player and sound volume mixer.
     '';
     license = "GPL";
-    kde = {
-      name = "kdemultimedia";
-      version = "4.5.4";
-    };
+    kde.name = "kdemultimedia";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/network/default.nix b/pkgs/desktops/kde-4.5/network/default.nix
index 244935ec397e..af605f191272 100644
--- a/pkgs/desktops/kde-4.5/network/default.nix
+++ b/pkgs/desktops/kde-4.5/network/default.nix
@@ -28,9 +28,6 @@ kde.package {
     description = "KDE network utilities";
     longDescription = "Various network utilities for KDE such as a messenger client and network configuration interface";
     license = "GPL";
-    kde = {
-      name = "kdenetwork";
-      version = "4.5.4";
-    };
+    kde.name = "kdenetwork";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/pim-runtime/default.nix b/pkgs/desktops/kde-4.5/pim-runtime/default.nix
index d92f1eecc73b..6fb6a44d38d4 100644
--- a/pkgs/desktops/kde-4.5/pim-runtime/default.nix
+++ b/pkgs/desktops/kde-4.5/pim-runtime/default.nix
@@ -12,7 +12,7 @@ kde.package rec {
 
   src = fetchurl {
     url = "mirror://kde/stable/kdepim-${meta.kde.version}/src/${meta.kde.name}-${meta.kde.version}.tar.bz2";
-    sha256 = "029a0i83b2yrc1xn9as7gc9rakpxjh5cjmqcmhrrj0xwalqz490n";
+    sha256 = "0w99jv0lzajmz9gvgss8gkgffm0lpqv3r6pzfsnqhrdhcf6h853y";
   };
 
   meta = {
@@ -21,7 +21,7 @@ kde.package rec {
     license = "GPL";
     kde = {
       name = "kdepim-runtime";
-      version = "4.4.8";
+      version = "4.4.9";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/pim/default.nix b/pkgs/desktops/kde-4.5/pim/default.nix
index cdcc3dc023db..5f7d5e06c48c 100644
--- a/pkgs/desktops/kde-4.5/pim/default.nix
+++ b/pkgs/desktops/kde-4.5/pim/default.nix
@@ -16,7 +16,7 @@ kde.package rec {
 
   src = fetchurl {
     url = "mirror://kde/stable/kdepim-${meta.kde.version}/src/${meta.kde.name}-${meta.kde.version}.tar.bz2";
-    sha256 = "02nbdn8s4504ljqz0qylm1jyw4hpg5fjw3vi6sbzm522xvkax4wh";
+    sha256 = "0pr1n6k51aadi8fsk7rkv0vrfl4y6llywxjkzci6if7g300yd8r8";
   };
 
   meta = {
@@ -28,7 +28,7 @@ kde.package rec {
     homepage = http://pim.kde.org;
     kde = {
       name = "kdepim";
-      version = "4.4.8";
+      version = "4.4.9";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/pimlibs/default.nix b/pkgs/desktops/kde-4.5/pimlibs/default.nix
index cbda200c607f..a1e26384e47a 100644
--- a/pkgs/desktops/kde-4.5/pimlibs/default.nix
+++ b/pkgs/desktops/kde-4.5/pimlibs/default.nix
@@ -10,9 +10,6 @@ kde.package {
   meta = {
     description = "KDE PIM libraries";
     license = "LGPL";
-    kde = {
-      name = "kdepimlibs";
-      version = "4.5.4";
-    };
+    kde.name = "kdepimlibs";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/plasma-addons/default.nix b/pkgs/desktops/kde-4.5/plasma-addons/default.nix
index e0a31d499b0d..0a1b3aa6b1ae 100644
--- a/pkgs/desktops/kde-4.5/plasma-addons/default.nix
+++ b/pkgs/desktops/kde-4.5/plasma-addons/default.nix
@@ -15,9 +15,6 @@ kde.package {
   meta = {
     description = "KDE Plasma Addons";
     license = "GPL";
-    kde = {
-      name = "kdeplasma-addons";
-      version = "4.5.4";
-    };
+    kde.name = "kdeplasma-addons";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/cervisia.nix b/pkgs/desktops/kde-4.5/sdk/cervisia.nix
index 7a7ef2767d1c..98a45eae1d50 100644
--- a/pkgs/desktops/kde-4.5/sdk/cervisia.nix
+++ b/pkgs/desktops/kde-4.5/sdk/cervisia.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "cervisia";
       module = "kdesdk";
       version = "3.5.0";
-      release = "4.5.4";
       versionFile = "cervisia/version.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/dolphin-plugins.nix b/pkgs/desktops/kde-4.5/sdk/dolphin-plugins.nix
index d0753c8f2958..e216bfaea2a0 100644
--- a/pkgs/desktops/kde-4.5/sdk/dolphin-plugins.nix
+++ b/pkgs/desktops/kde-4.5/sdk/dolphin-plugins.nix
@@ -4,13 +4,11 @@ kde.package {
   # Needs kdebase for libkonq
   buildInputs = [ cmake kdelibs automoc4 kdebase ];
 
-
   meta = {
     description = "Git and Svn plugins for dolphin";
     kde = {
       name = "dolphin-plugins";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/kapptemplate.nix b/pkgs/desktops/kde-4.5/sdk/kapptemplate.nix
index c4ea482d78d2..12445cb9f9b8 100644
--- a/pkgs/desktops/kde-4.5/sdk/kapptemplate.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kapptemplate.nix
@@ -10,7 +10,6 @@ kde.package {
       name = "kapptemplate";
       module = "kdesdk";
       version = "0.1";
-      release = "4.5.4";
       versionFile = "kapptemplate/main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/kate.nix b/pkgs/desktops/kde-4.5/sdk/kate.nix
index 336781a44ca9..95b0fbfcdc4f 100644
--- a/pkgs/desktops/kde-4.5/sdk/kate.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kate.nix
@@ -10,7 +10,6 @@ kde.package {
       name = "kate";
       module = "kdesdk";
       version = "3.5.2"; # (release.major-1).(release.minor).(release.patch)
-      release = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/kbugbuster.nix b/pkgs/desktops/kde-4.5/sdk/kbugbuster.nix
index d02d2bf7ce77..dffb064f01ba 100644
--- a/pkgs/desktops/kde-4.5/sdk/kbugbuster.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kbugbuster.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 kdepimlibs ];
 
-
   meta = {
     description = "KDE bugzilla client";
     kde = {
       name = "kbugbuster";
       module = "kdesdk";
       version = "3.80.3";
-      release = "4.5.4";
       versionFile = "version.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/kcachegrind.nix b/pkgs/desktops/kde-4.5/sdk/kcachegrind.nix
index e4f1381e8cad..b32f46135dbb 100644
--- a/pkgs/desktops/kde-4.5/sdk/kcachegrind.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kcachegrind.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 ];
 
-
   meta = {
     description = "KDE Frontend for Callgrind/Cachegrind";
     kde = {
       name = "kcachegrind";
       module = "kdesdk";
       version = "0.6";
-      release = "4.5.4";
       versionFile = "CMakeLists.txt";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/kdeaccounts-plugin.nix b/pkgs/desktops/kde-4.5/sdk/kdeaccounts-plugin.nix
index dab7becac274..beac8a6d8f47 100644
--- a/pkgs/desktops/kde-4.5/sdk/kdeaccounts-plugin.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kdeaccounts-plugin.nix
@@ -3,13 +3,11 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 kdepimlibs ];
 
-
   meta = {
     description = "KDE accounts akonadi agent";
     kde = {
       name = "kdeaccounts-plugin";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.5/sdk/kioslave-perldoc.nix
index 0b6f262a2c7a..5c996243b524 100644
--- a/pkgs/desktops/kde-4.5/sdk/kioslave-perldoc.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kioslave-perldoc.nix
@@ -11,7 +11,6 @@ kde.package {
       name = "kioslave-perldoc";
       module = "kdesdk";
       version = "0.9.1";
-      release = "4.5.4";
       versionFile = "kioslave/perldoc/perldoc.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/kioslave-svn.nix b/pkgs/desktops/kde-4.5/sdk/kioslave-svn.nix
index 3a9bc48faf6d..d58d915a7f22 100644
--- a/pkgs/desktops/kde-4.5/sdk/kioslave-svn.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kioslave-svn.nix
@@ -11,7 +11,6 @@ kde.package {
     kde = {
       name = "kioslave-svn";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/kmtrace.nix b/pkgs/desktops/kde-4.5/sdk/kmtrace.nix
index 89927e67b80c..190a86bc2b52 100644
--- a/pkgs/desktops/kde-4.5/sdk/kmtrace.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kmtrace.nix
@@ -10,7 +10,6 @@ kde.package {
     kde = {
       name = "kmtrace";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/kompare.nix b/pkgs/desktops/kde-4.5/sdk/kompare.nix
index 4d74d182b5c9..e20fc585dd27 100644
--- a/pkgs/desktops/kde-4.5/sdk/kompare.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kompare.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 ];
 
-
   meta = {
     description = "A program to view the differences between files and optionally generate a diff";
     kde = {
       name = "kompare";
       module = "kdesdk";
       version = "4.0.0";
-      release = "4.5.4";
       versionFile = "main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/kpartloader.nix b/pkgs/desktops/kde-4.5/sdk/kpartloader.nix
index e48166617e58..25eb100dd536 100644
--- a/pkgs/desktops/kde-4.5/sdk/kpartloader.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kpartloader.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 ];
 
-
   meta = {
     description = "A test application for KParts";
     kde = {
       name = "kpartloader";
       module = "kdesdk";
       version = "1.0";
-      release = "4.5.4";
       versionFile = "kpartloader.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/kprofilemethod.nix b/pkgs/desktops/kde-4.5/sdk/kprofilemethod.nix
index a85f30345ea2..39640f921857 100644
--- a/pkgs/desktops/kde-4.5/sdk/kprofilemethod.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kprofilemethod.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 ];
 
-
   meta = {
     description = "A macros for profiling using QTime";
     longDescription = "Don't commit any code using kprofilemethod.h to KDE repositories.";
     kde = {
       name = "kprofilemethod";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/kstartperf.nix b/pkgs/desktops/kde-4.5/sdk/kstartperf.nix
index 23fa4f80cfb3..0887531fdec2 100644
--- a/pkgs/desktops/kde-4.5/sdk/kstartperf.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kstartperf.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 libtool ];
 
-
   meta = {
     description = "Measures start up time of a KDE application";
     kde = {
       name = "kstartperf";
       module = "kdesdk";
       version = "1.0";
-      release = "4.5.4";
       versionFile = "kstartperf.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/kuiviewer.nix b/pkgs/desktops/kde-4.5/sdk/kuiviewer.nix
index c75f1be1a740..377a1563d64e 100644
--- a/pkgs/desktops/kde-4.5/sdk/kuiviewer.nix
+++ b/pkgs/desktops/kde-4.5/sdk/kuiviewer.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 ];
 
-
   meta = {
     description = "Displays Qt Designer's UI files";
     kde = {
       name = "kuiviewer";
       module = "kdesdk";
       version = "0.1";
-      release = "4.5.4";
       versionFile = "main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/lokalize.nix b/pkgs/desktops/kde-4.5/sdk/lokalize.nix
index 671e5c10bf7e..ec5381ee55dd 100644
--- a/pkgs/desktops/kde-4.5/sdk/lokalize.nix
+++ b/pkgs/desktops/kde-4.5/sdk/lokalize.nix
@@ -3,17 +3,16 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 hunspell ];
 
-
   meta = {
     description = "KDE 4 Computer-aided translation system";
     longDescription = ''
       Computer-aided translation system.
-      Do not translate what had already been translated.'';
+      Do not translate what had already been translated.
+    '';
     kde = {
       name = "lokalize";
       module = "kdesdk";
       version = "1.1";
-      release = "4.5.4";
       versionFile = "src/version.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/sdk/poxml.nix b/pkgs/desktops/kde-4.5/sdk/poxml.nix
index 72e929c2bbf5..683fa77debd9 100644
--- a/pkgs/desktops/kde-4.5/sdk/poxml.nix
+++ b/pkgs/desktops/kde-4.5/sdk/poxml.nix
@@ -9,7 +9,6 @@ kde.package {
     kde = {
       name = "poxml";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/scripts.nix b/pkgs/desktops/kde-4.5/sdk/scripts.nix
index 36bdb778b58d..2bbb92625971 100644
--- a/pkgs/desktops/kde-4.5/sdk/scripts.nix
+++ b/pkgs/desktops/kde-4.5/sdk/scripts.nix
@@ -3,13 +3,11 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 ];
 
-
   meta = {
     description = "Various scripts to ease KDE development";
     kde = {
       name = "scripts";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/strigi-analyzer.nix b/pkgs/desktops/kde-4.5/sdk/strigi-analyzer.nix
index 20d484f561e8..0215a24608a5 100644
--- a/pkgs/desktops/kde-4.5/sdk/strigi-analyzer.nix
+++ b/pkgs/desktops/kde-4.5/sdk/strigi-analyzer.nix
@@ -3,13 +3,11 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 ];
 
-
   meta = {
     description = "Strigi analyzers for diff, po and ts";
     kde = {
       name = "strigi-analyzer";
       module = "kdesdk";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/sdk/umbrello.nix b/pkgs/desktops/kde-4.5/sdk/umbrello.nix
index 48a9d0fdfbd4..85e63c66e1bd 100644
--- a/pkgs/desktops/kde-4.5/sdk/umbrello.nix
+++ b/pkgs/desktops/kde-4.5/sdk/umbrello.nix
@@ -3,14 +3,12 @@
 kde.package {
   buildInputs = [ cmake kdelibs automoc4 libxml2 libxslt boost ];
 
-
   meta = {
     description = "Umbrello UML modeller";
     kde = {
       name = "umbrello";
       module = "kdesdk";
       version = "2.5.2"; # release - 200
-      release = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/support/akonadi/default.nix b/pkgs/desktops/kde-4.5/support/akonadi/default.nix
index 9e516947e833..eedd6b9f6e89 100644
--- a/pkgs/desktops/kde-4.5/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.5/support/akonadi/default.nix
@@ -1,14 +1,13 @@
 {stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, mysql, automoc4, soprano}:
 
 stdenv.mkDerivation rec {
-  name = "akonadi-1.4.0";
+  name = "akonadi-1.4.3";
   src = fetchurl {
     url = "http://download.akonadi-project.org/${name}.tar.bz2";
-    sha256 = "199fh5yqygr0xdwcnjqqms8vskigbzvwb3071r979606rrsnpnl5";
+    sha256 = "18xi66w78lsf2jf1z1vl8abps9hdv3g5msw6q1kj6xhmn4lbgjkk";
   };
   buildInputs = [ cmake qt4 shared_mime_info libxslt boost mysql automoc4 soprano ];
   patches = [ ./fix-broken-datadir-parameter.patch ];
-  postPatch = "sed -e '/Q_ASSERT.*SQLITE/d' -i qsqlite/src/qsql_sqlite.cpp";
   meta = with stdenv.lib; {
     description = "KDE PIM Storage Service";
     license = "LGPL";
diff --git a/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch b/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch
index fa33329d4b0f..09b594f4e219 100644
--- a/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch
+++ b/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch
@@ -9,7 +9,7 @@ Fix broken datadir parameter.
 +  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
  #ifndef Q_WS_WIN
 -  arguments << QString::fromLatin1( "--datadir" ) << QString::fromLatin1( "%1/" ).arg( dataDir );
-   arguments << QString::fromLatin1( "--socket=%1/mysql.socket" ).arg( miscDir );
+   arguments << QString::fromLatin1( "--socket=%1/mysql.socket" ).arg( socketDirectory );
  #else
 -  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
    arguments << QString::fromLatin1( "--shared-memory" );
diff --git a/pkgs/desktops/kde-4.5/support/attica/default.nix b/pkgs/desktops/kde-4.5/support/attica/default.nix
index 5c62f34efb28..0eff2cbb4eba 100644
--- a/pkgs/desktops/kde-4.5/support/attica/default.nix
+++ b/pkgs/desktops/kde-4.5/support/attica/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, cmake, qt4}:
 
 stdenv.mkDerivation rec {
-  name = "attica-0.1.4";
+  name = "attica-0.2.0";
   src = fetchurl {
     url = "mirror://kde/stable/attica/${name}.tar.bz2";
-    sha256 = "0frarnrnbli3f5ji90swgw05g88w1f5777ais345wc8lkvqg9ix1";
+    sha256 = "0g2la91fgdr185ah15vc91plvdwvbm6kpsyz0vk0da7ggiyg3y9a";
   };
   buildInputs = [ cmake qt4 ];
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix b/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
index 47f532ed2039..703dfe0f0cf0 100644
--- a/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
+++ b/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
@@ -3,16 +3,13 @@
 kde.package {
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "1hn65n4nznbp2ikbvyrp9ncasc6y3nxhi33x927vg01pp8frn4q1";
+  outputHash = "4c2881683f8d66114ac79a9573498e627146aa647574efb9b8f89f837e1d7b06";
 
   buildInputs = [ cmake ];
   meta = {
     description = "KDE Oxygen theme icons";
     longDescription = "Contains icons for the KDE Oxygen theme, which is the default icon theme since KDE 4.3";
     license = "GPL";
-    kde = {
-      name = "oxygen-icons";
-      version = "4.5.4";
-    };
+    kde.name = "oxygen-icons";
   };
 }
diff --git a/pkgs/desktops/kde-4.5/support/qca2/default.nix b/pkgs/desktops/kde-4.5/support/qca2/default.nix
deleted file mode 100644
index a55f7c8cb431..000000000000
--- a/pkgs/desktops/kde-4.5/support/qca2/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{stdenv, fetchurl, which, qt4}:
-
-stdenv.mkDerivation {
-  name = "qca-2.0.2";
-  src = fetchurl {
-    url = http://delta.affinix.com/download/qca/2.0/qca-2.0.2.tar.bz2;
-    sha256 = "49b5474450104a2298747c243de1451ab7a6aeed4bf7df43ffa4b7128a2837b8";
-  };
-  buildInputs = [ which qt4 ];
-  preBuild = ''
-    sed -i include/QtCrypto/qca_publickey.h -e '/EMSA3_Raw/a,\
-            EMSA3_SHA224,     ///< SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA256,     ///< SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA384,     ///< SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA512      ///< SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding'
-  '';
-  meta = with stdenv.lib; {
-    description = "Qt Cryptographic Architecture";
-    license = "LGPL";
-    homepage = http://delta.affinix.com/qca;
-    maintainers = [ maintainers.sander maintainers.urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.5/support/qca2/ossl.nix b/pkgs/desktops/kde-4.5/support/qca2/ossl.nix
deleted file mode 100644
index bfaa320618c7..000000000000
--- a/pkgs/desktops/kde-4.5/support/qca2/ossl.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{stdenv, fetchurl, fetchsvn, qt4, qca2, openssl}:
-
-stdenv.mkDerivation rec {
-  version = "2.0.0-beta3";
-  name = "qca-ossl-${version}";
-  src = fetchurl {
-    url = "http://delta.affinix.com/download/qca/2.0/plugins/${name}.tar.bz2";
-    sha256 = "0yy68racvx3clybry2i1bw5bz9yhxr40p3xqagxxb15ihvsrzq08";
-  };
-  # SVN version has stabilized and has a lot of fixes for fresh OpenSSL
-  # Take the main source from there
-  svn_src = fetchsvn {
-    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/qca/plugins/qca-ossl ; 
-    rev = 1115936;
-    sha256 =  "ef2c0307e8834e1e7cb23b6fea1cc22486328a37186301a6c11161b1c93d834b";
-  };
-  buildInputs = [ qt4 qca2 openssl ];
-  dontAddPrefix = true;
-  configureFlags="--no-separate-debug-info --with-qca=${qca2}
-    --with-openssl-inc=${openssl}/include --with-openssl-lib=${openssl}/lib";
-  preConfigure=''
-    cp ${svn_src}/qca-ossl.cpp .
-
-    configureFlags="$configureFlags --plugins-path=$out/lib/qt4/plugins"
-  '';
-  meta = with stdenv.lib; {
-    description = "Qt Cryptographic Architecture OpenSSL plugin";
-    license = "LGPL";
-    homepage = http://delta.affinix.com/qca;
-    maintainers = [ maintainers.urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix b/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix
deleted file mode 100644
index bb3d0220b432..000000000000
--- a/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{stdenv, fetchurl, lib, cmake, qt4}:
-
-let
-  pn = "qimageblitz";
-  v = "0.0.4";
-in
-
-stdenv.mkDerivation {
-  name = "${pn}-${v}";
-  src = fetchurl {
-    url = "mirror://sf/${pn}/${pn}-${v}.tar.bz2";
-    sha256 = "0pnaf3qi7rgkxzs2mssmslb3f9ya4cyx09wzwlis3ppyvf72j0p9";
-  };
-  buildInputs = [ cmake qt4 ];
-
-  meta = {
-    description = "Graphical effect and filter library for KDE4";
-    license = "BSD";
-    homepage = "http://${pn}.sourceforge.net";
-  };
-}
diff --git a/pkgs/desktops/kde-4.5/support/shared-desktop-ontologies/default.nix b/pkgs/desktops/kde-4.5/support/shared-desktop-ontologies/default.nix
new file mode 100644
index 000000000000..b4713794a03e
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/support/shared-desktop-ontologies/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, cmake}:
+
+stdenv.mkDerivation rec {
+  name = "shared-desktop-ontologies-0.5";
+  src = fetchurl {
+    url = "mirror://sf/oscaf/${name}.tar.bz2";
+    sha256 = "1a1gs2b314133rg7vzwvnqbxchf7xgs0jpkydid5l2wz98m7j17r";
+  };
+  buildInputs = [ cmake ];
+  meta = with stdenv.lib; {
+    description = "Ontologies necessary for the Nepomuk semantic desktop";
+    longDescription = ''
+      The shared-desktop-ontologies package brings the semantic web to the
+      desktop in terms of vocabulary. It contains the well known core
+      ontologies such as RDF and RDFS as well as the Nepomuk ontologies which
+      are used by projects like KDE or Strigi.
+    '';
+    platforms = platforms.all;
+    maintainers = [ maintainers.sander maintainers.urkud ];
+  };
+}
+
diff --git a/pkgs/desktops/kde-4.5/support/soprano/default.nix b/pkgs/desktops/kde-4.5/support/soprano/default.nix
index 62832861a363..8d07f352d17d 100644
--- a/pkgs/desktops/kde-4.5/support/soprano/default.nix
+++ b/pkgs/desktops/kde-4.5/support/soprano/default.nix
@@ -1,15 +1,15 @@
-{stdenv, fetchurl, cmake, qt4, cluceneCore, redland, libiodbc}:
+{ stdenv, fetchurl, cmake, qt4, clucene_core, redland, libiodbc }:
 
 stdenv.mkDerivation rec {
-  name = "soprano-2.5.2";
+  name = "soprano-2.7.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/soprano/${name}.tar.bz2";
-    sha256 = "17k17hrcwij2plms4hb0j6994ar9kcxykf699iyiggfpj1zg7nym";
+    sha256 = "1ki92wg0i9nhn1fh5mdcls5h9h3lf2k5r66snsags4x7zw0dmv2z";
   };
 
   # We disable the Java backend, since we do not need them and they make the closure size much bigger
-  buildInputs = [ cmake qt4 cluceneCore redland libiodbc ];
+  buildInputs = [ cmake qt4 clucene_core redland libiodbc ];
 
   meta = {
     homepage = http://soprano.sourceforge.net/;
diff --git a/pkgs/desktops/kde-4.5/support/strigi/default.nix b/pkgs/desktops/kde-4.5/support/strigi/default.nix
deleted file mode 100644
index 7a4cb3b664cb..000000000000
--- a/pkgs/desktops/kde-4.5/support/strigi/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, expat, exiv2
-, cluceneCore
-}:
-
-stdenv.mkDerivation rec {
-  name = "strigi-${version}";
-  version = "0.7.2";
-
-  src = fetchurl {
-    url = "http://www.vandenoever.info/software/strigi/${name}.tar.bz2";
-    sha256 = "1f1ac27cjm5m4iwsgvd7nylr0md0a95przkbpsdq7l90wjxj390w";
-  };
-  includeAllQtDirs=true;
-  
-  CLUCENE_HOME = cluceneCore;
-  
-  # Dependencies such as SQLite and FAM are unreliable in this release
-  buildInputs = [
-    cmake perl qt4 bzip2 stdenv.gcc.libc libxml2 expat exiv2 cluceneCore
-  ];
-
-  meta = {
-    homepage = http://strigi.sourceforge.net;
-    description = "A very fast and efficient crawler to index data on your harddrive";
-    license = "LGPL";
-    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
-    inherit (qt4.meta) platforms;
-  };
-}
diff --git a/pkgs/desktops/kde-4.5/toys/amor.nix b/pkgs/desktops/kde-4.5/toys/amor.nix
index e994dea08846..dec967febde5 100644
--- a/pkgs/desktops/kde-4.5/toys/amor.nix
+++ b/pkgs/desktops/kde-4.5/toys/amor.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "amor";
       module = "kdetoys";
       version = "2.4.0";
-      release = "4.5.4";
       versionFile = "src/version.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/toys/kteatime.nix b/pkgs/desktops/kde-4.5/toys/kteatime.nix
index 601de020a6c5..9df5d8ab528d 100644
--- a/pkgs/desktops/kde-4.5/toys/kteatime.nix
+++ b/pkgs/desktops/kde-4.5/toys/kteatime.nix
@@ -9,8 +9,6 @@ kde.package {
       name = "kteatime";
       module = "kdetoys";
       version = "1.2.1";
-      release = "4.5.4";
-      versionFile = "src/main.cpp";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/toys/ktux.nix b/pkgs/desktops/kde-4.5/toys/ktux.nix
index 0a2deec43e58..8d2df5974a0d 100644
--- a/pkgs/desktops/kde-4.5/toys/ktux.nix
+++ b/pkgs/desktops/kde-4.5/toys/ktux.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "ktux";
       module = "kdetoys";
       version = "1.0.1";
-      release = "4.5.4";
       versionFile = "src/sprite.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/ark.nix b/pkgs/desktops/kde-4.5/utils/ark.nix
index 0437406f72f8..6f963bdb9980 100644
--- a/pkgs/desktops/kde-4.5/utils/ark.nix
+++ b/pkgs/desktops/kde-4.5/utils/ark.nix
@@ -14,7 +14,6 @@ kde.package {
       name = "ark";
       module = "kdeutils";
       version = "2.15";
-      release = "4.5.4";
       versionFile = "app/main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/kcalc.nix b/pkgs/desktops/kde-4.5/utils/kcalc.nix
index 05aa5f752e4e..b04e6e9f9832 100644
--- a/pkgs/desktops/kde-4.5/utils/kcalc.nix
+++ b/pkgs/desktops/kde-4.5/utils/kcalc.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "kcalc";
       module = "kdeutils";
       version = "2.7";
-      release = "4.5.4";
       versionFile = "version.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/kcharselect.nix b/pkgs/desktops/kde-4.5/utils/kcharselect.nix
index 069ab67669c3..115efaa703e6 100644
--- a/pkgs/desktops/kde-4.5/utils/kcharselect.nix
+++ b/pkgs/desktops/kde-4.5/utils/kcharselect.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "kcharselect";
       module = "kdeutils";
       version = "1.7";
-      release = "4.5.4";
       versionFile = "main.cc";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/kdf.nix b/pkgs/desktops/kde-4.5/utils/kdf.nix
index 23a9bfa68959..a15341ab2dbd 100644
--- a/pkgs/desktops/kde-4.5/utils/kdf.nix
+++ b/pkgs/desktops/kde-4.5/utils/kdf.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "kdf";
       module = "kdeutils";
       version = "0.11";
-      release = "4.5.4";
       versionFile = "kdf.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/kfloppy.nix b/pkgs/desktops/kde-4.5/utils/kfloppy.nix
index f7ff38b85106..440c139e4cc6 100644
--- a/pkgs/desktops/kde-4.5/utils/kfloppy.nix
+++ b/pkgs/desktops/kde-4.5/utils/kfloppy.nix
@@ -8,7 +8,6 @@ kde.package {
     kde = {
       name = "kfloppy";
       module = "kdeutils";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/utils/kgpg.nix b/pkgs/desktops/kde-4.5/utils/kgpg.nix
index 62cf26df915e..00a2d2a87394 100644
--- a/pkgs/desktops/kde-4.5/utils/kgpg.nix
+++ b/pkgs/desktops/kde-4.5/utils/kgpg.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "kgpg";
       module = "kdeutils";
       version = "2.4.1";
-      release = "4.5.4";
       versionFile = "main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/kremotecontrol.nix b/pkgs/desktops/kde-4.5/utils/kremotecontrol.nix
index b353bdba53cf..1ea8a140dca8 100644
--- a/pkgs/desktops/kde-4.5/utils/kremotecontrol.nix
+++ b/pkgs/desktops/kde-4.5/utils/kremotecontrol.nix
@@ -8,7 +8,6 @@ kde.package {
     kde = {
       name = "kremotecontrol";
       module = "kdeutils";
-      version = "4.5.4";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.5/utils/ktimer.nix b/pkgs/desktops/kde-4.5/utils/ktimer.nix
index a2193d283b1a..9fd90e6616af 100644
--- a/pkgs/desktops/kde-4.5/utils/ktimer.nix
+++ b/pkgs/desktops/kde-4.5/utils/ktimer.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "ktimer";
       module = "kdeutils";
       version = "0.6";
-      release = "4.5.4";
       versionFile = "main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/kwallet.nix b/pkgs/desktops/kde-4.5/utils/kwallet.nix
index d8ee32ff7948..76331102227a 100644
--- a/pkgs/desktops/kde-4.5/utils/kwallet.nix
+++ b/pkgs/desktops/kde-4.5/utils/kwallet.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "kwallet";
       module = "kdeutils";
       version = "1.6";
-      release = "4.5.4";
       versionFile = "main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/okteta.nix b/pkgs/desktops/kde-4.5/utils/okteta.nix
index 1390960aefe9..0b7cb6d388de 100644
--- a/pkgs/desktops/kde-4.5/utils/okteta.nix
+++ b/pkgs/desktops/kde-4.5/utils/okteta.nix
@@ -8,8 +8,7 @@ kde.package {
     kde = {
       name = "okteta";
       module = "kdeutils";
-      version = "0.5.2";
-      release = "4.5.4";
+      version = "0.5.3";
       versionFile = "program/about.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/printer-applet.nix b/pkgs/desktops/kde-4.5/utils/printer-applet.nix
index 6b2a297a2654..ea9d6a7426cb 100644
--- a/pkgs/desktops/kde-4.5/utils/printer-applet.nix
+++ b/pkgs/desktops/kde-4.5/utils/printer-applet.nix
@@ -15,7 +15,6 @@ kde.package {
       name = "printer-applet";
       module = "kdeutils";
       version = "1.5";
-      release = "4.5.4";
       versionFile = "printer-applet.py";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/superkaramba.nix b/pkgs/desktops/kde-4.5/utils/superkaramba.nix
index 407f924e241e..e49874fc8050 100644
--- a/pkgs/desktops/kde-4.5/utils/superkaramba.nix
+++ b/pkgs/desktops/kde-4.5/utils/superkaramba.nix
@@ -11,7 +11,6 @@ kde.package {
       name = "superkaramba";
       module = "kdeutils";
       version = "0.55";
-      release = "4.5.4";
       versionFile = "src/main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/utils/sweeper.nix b/pkgs/desktops/kde-4.5/utils/sweeper.nix
index feef23c75524..3b1d73df803e 100644
--- a/pkgs/desktops/kde-4.5/utils/sweeper.nix
+++ b/pkgs/desktops/kde-4.5/utils/sweeper.nix
@@ -9,7 +9,6 @@ kde.package {
       name = "sweeper";
       module = "kdeutils";
       version = "1.5";
-      release = "4.5.4";
       versionFile = "main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/webdev/kfilereplace.nix b/pkgs/desktops/kde-4.5/webdev/kfilereplace.nix
index c90c151b3bff..ab56a26878a3 100644
--- a/pkgs/desktops/kde-4.5/webdev/kfilereplace.nix
+++ b/pkgs/desktops/kde-4.5/webdev/kfilereplace.nix
@@ -10,7 +10,6 @@ kde.package {
       name = "kfilereplace";
       module = "kdewebdev";
       version = "0.1";
-      release = "4.5.4";
       versionFile = "main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/webdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.5/webdev/kimagemapeditor.nix
index 93a06b21ae58..958e714e32c5 100644
--- a/pkgs/desktops/kde-4.5/webdev/kimagemapeditor.nix
+++ b/pkgs/desktops/kde-4.5/webdev/kimagemapeditor.nix
@@ -10,7 +10,6 @@ kde.package {
       name = "kimagemapeditor";
       module = "kdewebdev";
       version = "3.9.0";
-      release = "4.5.4";
       versionFile = "version.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/webdev/klinkstatus.nix b/pkgs/desktops/kde-4.5/webdev/klinkstatus.nix
index 8c27fbf41865..5024cb771ef0 100644
--- a/pkgs/desktops/kde-4.5/webdev/klinkstatus.nix
+++ b/pkgs/desktops/kde-4.5/webdev/klinkstatus.nix
@@ -12,7 +12,6 @@ kde.package {
       name = "klinkstatus";
       module = "kdewebdev";
       version = "0.7.0";
-      release = "4.5.4";
       versionFile = "src/main.cpp";
     };
   };
diff --git a/pkgs/desktops/kde-4.5/webdev/kommander.nix b/pkgs/desktops/kde-4.5/webdev/kommander.nix
index 0dc23b2152d2..4a761b2eabe0 100644
--- a/pkgs/desktops/kde-4.5/webdev/kommander.nix
+++ b/pkgs/desktops/kde-4.5/webdev/kommander.nix
@@ -8,8 +8,6 @@ kde.package {
     kde = {
       name = "kommander";
       module = "kdewebdev";
-      version = "1.91";
-      release = "4.5.4";
       versionFile = "lib/kommanderversion.h";
     };
   };
diff --git a/pkgs/desktops/kde-4.6/accessibility/color-schemes.nix b/pkgs/desktops/kde-4.6/accessibility/color-schemes.nix
deleted file mode 100644
index 997ad8ff4f4e..000000000000
--- a/pkgs/desktops/kde-4.6/accessibility/color-schemes.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE Accessibility color schemes";
-    kde = {
-      name = "ColorSchemes";
-      module = "kdeaccessibility";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/accessibility/icon-themes.nix b/pkgs/desktops/kde-4.6/accessibility/icon-themes.nix
deleted file mode 100644
index 2f18298f2270..000000000000
--- a/pkgs/desktops/kde-4.6/accessibility/icon-themes.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE mono icon theme";
-    kde = {
-      name = "IconThemes";
-      module = "kdeaccessibility";
-      version = "4.5.90";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.6/accessibility/jovie.nix b/pkgs/desktops/kde-4.6/accessibility/jovie.nix
deleted file mode 100644
index 9270d5fb177f..000000000000
--- a/pkgs/desktops/kde-4.6/accessibility/jovie.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-#TODO: working backend: speechd or opentts
-  meta = {
-    description = "Text-to-speech synthesis daemon";
-    kde = {
-      name = "jovie";
-      module = "kdeaccessibility";
-      version = "0.6.0";
-      release = "4.5.90";
-      versionFile = "jovie/jovie/main.cpp";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.6/accessibility/kmag.nix b/pkgs/desktops/kde-4.6/accessibility/kmag.nix
deleted file mode 100644
index 207f1d0b3cbb..000000000000
--- a/pkgs/desktops/kde-4.6/accessibility/kmag.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "Screen magnifier for KDE";
-    kde = {
-      name = "kmag";
-      module = "kdeaccessibility";
-      version = "1.0";
-      release = "4.5.90";
-      versionFile = "kmag/version.h";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.6/accessibility/kmousetool.nix b/pkgs/desktops/kde-4.6/accessibility/kmousetool.nix
deleted file mode 100644
index bb10de6e3cee..000000000000
--- a/pkgs/desktops/kde-4.6/accessibility/kmousetool.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs, libXtst }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 libXtst ];
-
-  meta = {
-    description = "A program that clicks the mouse for you";
-    kde = {
-      name = "kmousetool";
-      module = "kdeaccessibility";
-      version = "1.12";
-      release = "4.5.90";
-      versionFile = "kmousetool/kmousetool/version.h";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.6/accessibility/kmouth.nix b/pkgs/desktops/kde-4.6/accessibility/kmouth.nix
deleted file mode 100644
index 6bbee6106fda..000000000000
--- a/pkgs/desktops/kde-4.6/accessibility/kmouth.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "A type-and-say front end for speech synthesizers";
-    kde = {
-      name = "kmouth";
-      module = "kdeaccessibility";
-      version = "1.1.1";
-      release = "4.5.90";
-      versionFile = "kmouth/version.h";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.6/admin/builder.sh b/pkgs/desktops/kde-4.6/admin/builder.sh
deleted file mode 100644
index 78e29543c1f0..000000000000
--- a/pkgs/desktops/kde-4.6/admin/builder.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-source $stdenv/setup
-
-myPatchPhase()
-{
-    for i in system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py system-config-printer-kde/system-config-printer-kde.py
-    do
-	sed -i -e "s|/usr/share/system-config-printer|$system_config_printer/share/system-config-printer|" $i
-    done
-
-	sed -i -e "s|import cupshelpers.ppds, cupshelpers.cupshelpers|import ppds, cupshelpers|" system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py
-}
-patchPhase=myPatchPhase
-genericBuild
diff --git a/pkgs/desktops/kde-4.6/admin/default.nix b/pkgs/desktops/kde-4.6/admin/default.nix
deleted file mode 100644
index c4b30643ea0c..000000000000
--- a/pkgs/desktops/kde-4.6/admin/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ kde, cmake, qt4, pkgconfig, perl, python
-, sip, pyqt4, pycups, rhpl, system_config_printer
-, kdelibs, kdepimlibs, kdebindings, automoc4}:
-
-kde.package {
-
-  builder = ./builder.sh;
-
-  inherit system_config_printer;
-
-  # TODO: split, check which packages work on nixos
-
-  PYTHONPATH = "${pycups}/lib/python${python.majorVersion}/site-packages";
-
-  buildInputs = [ cmake qt4 pkgconfig perl python sip pyqt4 pycups rhpl system_config_printer
-                  kdelibs kdepimlibs kdebindings automoc4 ];
-
-  meta = {
-    description = "KDE Administration Utilities";
-    license = "GPL";
-    kde = {
-      name = "kdeadmin";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/aurorae.nix b/pkgs/desktops/kde-4.6/artwork/aurorae.nix
deleted file mode 100644
index 307cdf92ba09..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/aurorae.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "aurorae-themes-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    kde = {
-      name = "aurorae";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/color-schemes.nix b/pkgs/desktops/kde-4.6/artwork/color-schemes.nix
deleted file mode 100644
index ddf1cb776571..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/color-schemes.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-color-schemes-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "Additional KDE color schemes";
-    kde = {
-      name = "ColorSchemes";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/desktop-themes.nix b/pkgs/desktops/kde-4.6/artwork/desktop-themes.nix
deleted file mode 100644
index 4bca474f2544..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/desktop-themes.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-desktop-themes-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "Additional KDE desktop themes";
-    kde = {
-      name = "desktopthemes";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/emoticons.nix b/pkgs/desktops/kde-4.6/artwork/emoticons.nix
deleted file mode 100644
index 5ec584d4d0c6..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/emoticons.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-emotion-icons-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "Additional KDE emotion icons (smiles)";
-    kde = {
-      name = "emoticons";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/high-resolution-wallpapers.nix b/pkgs/desktops/kde-4.6/artwork/high-resolution-wallpapers.nix
deleted file mode 100644
index 562022886598..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/high-resolution-wallpapers.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-wallpapers-high-resolution-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "KDE wallpapers in high resolution";
-    kde = {
-      name = "HighResolutionWallpapers";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/kscreensaver.nix b/pkgs/desktops/kde-4.6/artwork/kscreensaver.nix
deleted file mode 100644
index b7020c0e4f89..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/kscreensaver.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ cmake, kde, automoc4, kdelibs, xscreensaver, kdebase_workspace, eigen }:
-
-kde.package rec {
-  buildInputs = [ cmake automoc4 kdelibs xscreensaver kdebase_workspace eigen ];
-  preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
-  meta = {
-    description = "KDE screen saver and savers";
-    kde = {
-      name = "kscreensaver";
-      module = "kdeartwork";
-      version = "1.0";
-      release = "4.5.90";
-      versionFile = "kscreensaver/kpartsaver/kpartsaver.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/nuvola-icon-theme.nix b/pkgs/desktops/kde-4.6/artwork/nuvola-icon-theme.nix
deleted file mode 100644
index 9719fefc33f1..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/nuvola-icon-theme.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "nuvola-icon-theme-${meta.kde.version}";
-# Sources contain primary and kdeclassic as well but they're not installed
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "KDE nuvola icon theme";
-    kde = {
-      name = "IconThemes";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/phase-style.nix b/pkgs/desktops/kde-4.6/artwork/phase-style.nix
deleted file mode 100644
index 068bc458a1a7..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/phase-style.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-style-phase-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "KDE phase style. Clean classical look";
-    kde = {
-      name = "styles";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/sounds.nix b/pkgs/desktops/kde-4.6/artwork/sounds.nix
deleted file mode 100644
index 612bf1613f9b..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/sounds.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-sounds-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "New login/logout sounds";
-    kde = {
-      name = "sounds";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/wallpapers.nix b/pkgs/desktops/kde-4.6/artwork/wallpapers.nix
deleted file mode 100644
index b46d65aa5500..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/wallpapers.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-wallpapers-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "Additional KDE wallpapers";
-    kde = {
-      name = "wallpapers";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/artwork/weather-wallpapers.nix b/pkgs/desktops/kde-4.6/artwork/weather-wallpapers.nix
deleted file mode 100644
index d4f7d1d2a2f1..000000000000
--- a/pkgs/desktops/kde-4.6/artwork/weather-wallpapers.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cmake, kde, automoc4, kdelibs }:
-
-kde.package rec {
-  name = "kde-weather-wallpapers-${meta.kde.version}";
-
-  buildInputs = [ cmake automoc4 kdelibs ];
-  meta = {
-    description = "Additional KDE wallpapers (weather)";
-    kde = {
-      name = "WeatherWallpapers";
-      module = "kdeartwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/base-runtime/default.nix b/pkgs/desktops/kde-4.6/base-runtime/default.nix
deleted file mode 100644
index 15f065f09d36..000000000000
--- a/pkgs/desktops/kde-4.6/base-runtime/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ kde, cmake, perl, bzip2, xz, qt4, alsaLib, xineLib, samba,
-  shared_mime_info, exiv2, libssh , kdelibs, automoc4, strigi, soprano,
-  cluceneCore, attica, virtuoso, makeWrapper, oxygen_icons }:
-
-kde.package {
-
-  buildInputs = [ cmake perl bzip2 xz qt4 alsaLib xineLib samba shared_mime_info
-    exiv2 libssh kdelibs automoc4 strigi soprano cluceneCore attica
-    makeWrapper];
-
-# TODO: OpenSLP, OpenEXR
-  postInstall = ''
-    rm -v $out/share/icons/default.kde4
-    wrapProgram "$out/bin/nepomukservicestub" --prefix LD_LIBRARY_PATH : "${virtuoso}/lib" \
-        --prefix PATH : "${virtuoso}/bin"
-  '';
-
-  meta = {
-    description = "KDE runtime";
-    longDescription = "Libraries and tools which supports running KDE desktop applications";
-    license = "LGPL";
-    kde = {
-      name = "kdebase-runtime";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/base-workspace/default.nix b/pkgs/desktops/kde-4.6/base-workspace/default.nix
deleted file mode 100644
index b7f3dd474881..000000000000
--- a/pkgs/desktops/kde-4.6/base-workspace/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ kde, cmake, perl, python, pam, consolekit
-, qt4, sip, pyqt4, kdelibs, kdepimlibs, kdebindings
-, libXi, libXau, libXdmcp, libXtst, libXcomposite, libXdamage, libXScrnSaver
-, lm_sensors, libxklavier, libusb, libpthreadstubs, boost
-, automoc4, strigi, soprano, qimageblitz, akonadi
-, libdbusmenu_qt, libqalculate, pciutils, libraw1394, bluez
-}:
-
-kde.package {
-
-# TODO: qedje, qzion, ggadgets, libgps
-  buildInputs = [ cmake perl python qt4 pam consolekit sip pyqt4 kdelibs libXtst
-    kdepimlibs kdebindings boost libusb libXi libXau libXdmcp libraw1394
-    libXcomposite libXdamage libXScrnSaver lm_sensors libxklavier automoc4
-    strigi soprano qimageblitz akonadi libpthreadstubs libdbusmenu_qt libqalculate
-    pciutils bluez ];
-
-  meta = {
-    description = "KDE base platform-specific components";
-    longDescription = "KDE base components that are only required to work with X11 such KDM and KWin";
-    license = "GPL";
-    kde = {
-      name = "kdebase-workspace";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/base/default.nix b/pkgs/desktops/kde-4.6/base/default.nix
deleted file mode 100644
index 973d2cf562d0..000000000000
--- a/pkgs/desktops/kde-4.6/base/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kde, cmake, perl, qt4, kdelibs, pciutils, libraw1394 , automoc4, strigi
-, qimageblitz, soprano}:
-
-kde.package {
-  preConfigure = "cd apps";
-
-  buildInputs = [ cmake perl qt4 kdelibs pciutils libraw1394 automoc4
-    strigi qimageblitz ];
-
-  meta = {
-    description = "KDE Base components";
-    longDescription = "Applications that form the KDE desktop, like Plasma, System Settings, Konqueror, Dolphin, Kate, and Konsole";
-    license = "GPL";
-    kde = {
-      name = "kdebase";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/bindings/default.nix b/pkgs/desktops/kde-4.6/bindings/default.nix
deleted file mode 100644
index 74b59926cf73..000000000000
--- a/pkgs/desktops/kde-4.6/bindings/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ kde, lib, cmake, perl, python, sip, pyqt4, zlib, libpng, freetype, fontconfig, qt4, boost
-, kdelibs, kdepimlibs, automoc4, soprano, akonadi, attica, polkit_qt_1, ruby
-}:
-
-# This function will only build the pykde4 module. I don't need the other bindings and
-# some bindings are even broken.
-
-kde.package rec {
-  patches = [ ./python-site-packages-install-dir.diff ./sip-4.11.patch ];
-
-  preConfigure = ''
-    CUSTOM_RUBY_SITE_ARCH_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitearchdir']" | sed -e "s@${ruby}@$out@")
-    CUSTOM_RUBY_SITE_LIB_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitelibdir']" | sed -e "s@${ruby}@$out@")
-    CUSTOM_PERL_SITE_ARCH_DIR=$(perl -MConfig -e 'print $Config{sitearch}' | sed -e "s@${perl}@$out@")
-    cmakeFlagsArray+=(
-      -DSIP_DEFAULT_SIP_DIR=$out/share/sip
-      -DCUSTOM_RUBY_SITE_ARCH_DIR=$CUSTOM_RUBY_SITE_ARCH_DIR
-      -DCUSTOM_RUBY_SITE_LIB_DIR=$CUSTOM_RUBY_SITE_LIB_DIR
-      -DCUSTOM_PERL_SITE_ARCH_DIR=$CUSTOM_PERL_SITE_ARCH_DIR
-    )
-  '';
-  
-  # TODO: okular, qimageblitz, qwt5, qscintilla2, c#
-  buildInputs = [ cmake perl python sip pyqt4 zlib libpng freetype fontconfig qt4 boost
-          kdelibs kdepimlibs automoc4 soprano akonadi attica polkit_qt_1 ruby ];
-
-  meta = {
-    description = "KDE bindings";
-    longDescription = "Provides KDE bindings for several languages such as Java, Smoke and Python";
-    license = "LGPL";
-    kde = {
-      name = "kdebindings";
-      version = "4.5.90";
-    };
-  };
-}
-
diff --git a/pkgs/desktops/kde-4.6/bindings/python-site-packages-install-dir.diff b/pkgs/desktops/kde-4.6/bindings/python-site-packages-install-dir.diff
deleted file mode 100644
index 7fe64e7eff55..000000000000
--- a/pkgs/desktops/kde-4.6/bindings/python-site-packages-install-dir.diff
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/python/pykde4/CMakeLists.txt b/python/pykde4/CMakeLists.txt
-index 01b69dc..375661d 100644
---- a/python/pykde4/CMakeLists.txt
-+++ b/python/pykde4/CMakeLists.txt
-@@ -188,12 +188,12 @@ IF(POLKITQT_FOUND)
-     SET(PYKDE_MODULES "${PYKDE_MODULES} polkitqt")
- ENDIF(POLKITQT_FOUND)
- 
--PYTHON_INSTALL(__init__.py ${PYTHON_SITE_PACKAGES_DIR}/PyKDE4)
-+PYTHON_INSTALL(__init__.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4)
- 
- MESSAGE(STATUS "KDE_VERSION: ${KDE_VERSION}")
- MESSAGE(STATUS "KDE4_INCLUDE_DIR: ${KDE4_INCLUDE_DIR}")
- MESSAGE(STATUS "KDE4_LIB_DIR: ${KDE4_LIB_DIR}")
--MESSAGE(STATUS "PYTHON_SITE_PACKAGES_DIR: ${PYTHON_SITE_PACKAGES_DIR}")
-+MESSAGE(STATUS "PYTHON_SITE_PACKAGES_INSTALL_DIR: ${PYTHON_SITE_PACKAGES_INSTALL_DIR}")
- 
- # Setup and install pykdeconfig.py
- 
-@@ -225,7 +225,7 @@ _pkg_config = {
-     'konsolepart':          'False',
-     'libdir':               '${LIB_DIR}',
-     'pykde_kde_sip_flags':  '${_SIP_TAGS} ${_SIP_X} ${SIP_EXTRA_OPTIONS}',
--    'pykde_mod_dir':        '${PYTHON_SITE_PACKAGES_DIR}/PyKDE4',
-+    'pykde_mod_dir':        '${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4',
-     'pykde_modules':        '${PYKDE_MODULES}',
-     'pykde_sip_dir':        '${SIP_DEFAULT_SIP_DIR}/PyKDE4',
-     'pykde_version':        kde_version_hex,
-@@ -235,7 +235,7 @@ _pkg_config = {
- _default_macros = None")
- 
- CONFIGURE_FILE(pykdeconfig.py.in ${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py)
--PYTHON_INSTALL(${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py ${PYTHON_SITE_PACKAGES_DIR}/PyKDE4)
-+PYTHON_INSTALL(${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4)
- 
- # Install the .sip files for anyone that wants to build bindings on top of PyKDE4.
- # (Don't forget the / at the end of sip/.)
-diff --git a/python/pykde4/tools/pykdeuic4/CMakeLists.txt b/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-index ea711ba..115c777 100644
---- a/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-+++ b/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-@@ -1,5 +1,9 @@
- 
--PYTHON_INSTALL(kde4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/widget-plugins/)
--PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/)
-+PYTHON_INSTALL(kde4.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/widget-plugins/)
-+PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/)
- find_path(cmake_module_dir create_exe_symlink.cmake ${CMAKE_MODULE_PATH})
--INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+IF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
-+  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+ELSE(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
-+  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${CMAKE_INSTALL_PREFIX}/${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+ENDIF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
diff --git a/pkgs/desktops/kde-4.6/bindings/sip-4.11.patch b/pkgs/desktops/kde-4.6/bindings/sip-4.11.patch
deleted file mode 100644
index 15059e2526d2..000000000000
--- a/pkgs/desktops/kde-4.6/bindings/sip-4.11.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Make kdebindings compile against sip-4.11, from KDE svn
-Index: kdebindings/python/pykde4/sip/kdecore/typedefs.sip
-===================================================================
---- kdebindings/python/pykde4/sip/kdecore/typedefs.sip	(revision 1170601)
-+++ kdebindings/python/pykde4/sip/kdecore/typedefs.sip	(revision 1170602)
-@@ -733,61 +733,6 @@
- };
- 
- 
--%MappedType QList<uint>
--{
--%TypeHeaderCode
--#include <qlist.h>
--%End
--
--%ConvertFromTypeCode
--    // Create the list.
--    PyObject *l;
--
--    if ((l = PyList_New(sipCpp->size())) == NULL)
--        return NULL;
--
--    // Set the list elements.
--    for (int i = 0; i < sipCpp->size(); ++i) {
--        PyObject *pobj;
--
--#if PY_MAJOR_VERSION >= 3
--        if ((pobj = PyLong_FromLong(sipCpp->value(i))) == NULL) {
--#else
--        if ((pobj = PyInt_FromLong(sipCpp->value(i))) == NULL) {
--#endif
--            Py_DECREF(l);
--
--            return NULL;
--        }
--
--        PyList_SET_ITEM(l, i, pobj);
--    }
--
--    return l;
--%End
--
--%ConvertToTypeCode
--    // Check the type if that is all that is required.
--    if (sipIsErr == NULL)
--        return PyList_Check(sipPy);
--
--    QList<uint> *ql = new QList<uint>;
-- 
--    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) {
--#if PY_MAJOR_VERSION >= 3
--        ql->append(PyLong_AsLong(PyList_GET_ITEM(sipPy, i)));
--#else
--        ql->append(PyInt_AsLong(PyList_GET_ITEM(sipPy, i)));
--#endif        
--    }
--    
--    *sipCppPtr = ql;
-- 
--    return sipGetState(sipTransferObj);
--%End
--};
--
--
- template <TYPE*>
- %MappedType QStack<TYPE*>
- {
diff --git a/pkgs/desktops/kde-4.6/default.nix b/pkgs/desktops/kde-4.6/default.nix
deleted file mode 100644
index 3335584a7efe..000000000000
--- a/pkgs/desktops/kde-4.6/default.nix
+++ /dev/null
@@ -1,163 +0,0 @@
-{ callPackage, recurseIntoAttrs, runCommand, stdenv, fetchurl, qt47 } :
-
-let
-
-  version = "4.5.90";
-
-  # Various packages (e.g. kdesdk) have been split up into many
-  # smaller packages.  Some people may want to install the entire
-  # package, so provide a wrapper package that recombines them.
-  combinePkgs = name: pkgs:
-    let pkgs' = stdenv.lib.attrValues pkgs; in
-    runCommand "${name}-${version}" ({ passthru = pkgs // { inherit pkgs; }; })
-      ''
-        mkdir -p $out/nix-support
-        echo ${toString pkgs'} > $out/nix-support/propagated-user-env-packages
-      '';
-
-in
-
-rec {
-  inherit callPackage stdenv;
-
-  qt4 = qt47;
-
-  phonon = null;
-
-  kde = callPackage ./kde-package { };
-
-### SUPPORT
-  akonadi = callPackage ./support/akonadi { };
-
-  attica = callPackage ./support/attica { };
-
-  automoc4 = callPackage ./support/automoc4 { };
-
-  eigen = callPackage ./support/eigen { };
-
-  oxygen_icons = callPackage ./support/oxygen-icons { };
-
-  polkit_qt_1 = callPackage ./support/polkit-qt-1 { };
-
-  strigi = callPackage ./support/strigi { };
-
-  soprano = callPackage ./support/soprano { };
-
-  qca2 = callPackage ./support/qca2 { };
-
-  qca2_ossl = callPackage ./support/qca2/ossl.nix { };
-
-  qimageblitz = callPackage ./support/qimageblitz { };
-
-### LIBS
-  kdelibs = callPackage ./libs { };
-
-  kdepimlibs = callPackage ./pimlibs { };
-
-### BASE
-  kdebase = callPackage ./base { };
-
-  kdebase_workspace = callPackage ./base-workspace { };
-
-  kdebase_runtime = callPackage ./base-runtime { };
-
-### OTHER MODULES
-
-  kdeaccessibility = combinePkgs "kdeaccessibility" {
-    colorSchemes = callPackage ./accessibility/color-schemes.nix { };
-    iconThemes = callPackage ./accessibility/icon-themes.nix { };
-    jovie = callPackage ./accessibility/jovie.nix { };
-    kmag = callPackage ./accessibility/kmag.nix { };
-    kmousetool = callPackage ./accessibility/kmousetool.nix { };
-    kmouth = callPackage ./accessibility/kmouth.nix { };
-  };
-
-  kdeadmin = callPackage ./admin { };
-  
-  kdeartwork = combinePkgs "kdeartwork" {
-    aurorae = callPackage ./artwork/aurorae.nix { };
-    colorSchemes = callPackage ./artwork/color-schemes.nix { };
-    desktop_themes = callPackage ./artwork/desktop-themes.nix { };
-    emoticons = callPackage ./artwork/emoticons.nix { };
-    high_resolution_wallpapers = callPackage ./artwork/high-resolution-wallpapers.nix { };
-    wallpapers = callPackage ./artwork/wallpapers.nix { };
-    nuvola_icon_theme = callPackage ./artwork/nuvola-icon-theme.nix { };
-    sounds = callPackage ./artwork/sounds.nix { };
-    weather_wallpapers = callPackage ./artwork/weather-wallpapers.nix { };
-    phase_style = callPackage ./artwork/phase-style.nix { };
-    kscreensaver = callPackage ./artwork/kscreensaver.nix { };
-  };
-  
-  kdeedu = callPackage ./edu { };
-  kdegames = callPackage ./games { };
-  kdegraphics = callPackage ./graphics { };
-  kdemultimedia = callPackage ./multimedia { };
-  kdenetwork = callPackage ./network { };
-  kdeplasma_addons = callPackage ./plasma-addons { };
-  
-  kdesdk = combinePkgs "kdesdk" {
-    cervisia = callPackage ./sdk/cervisia.nix { };
-    kapptemplate = callPackage ./sdk/kapptemplate.nix { };
-    kate = callPackage ./sdk/kate.nix { };
-    kcachegrind = callPackage ./sdk/kcachegrind.nix { };
-    kdeaccounts_plugin = callPackage ./sdk/kdeaccounts-plugin.nix { };
-    dolphin_plugins = callPackage ./sdk/dolphin-plugins.nix { };
-    kioslave_perldoc = callPackage ./sdk/kioslave-perldoc.nix { };
-    kioslave_svn = callPackage ./sdk/kioslave-svn.nix { };
-    strigi_analyzer = callPackage ./sdk/strigi-analyzer.nix { };
-    kbugbuster = callPackage ./sdk/kbugbuster.nix { };
-    kmtrace = callPackage ./sdk/kmtrace.nix { };
-    kompare = callPackage ./sdk/kompare.nix { };
-    kpartloader = callPackage ./sdk/kpartloader.nix { };
-    kprofilemethod = callPackage ./sdk/kprofilemethod.nix { };
-    kstartperf = callPackage ./sdk/kstartperf.nix { };
-    kuiviewer = callPackage ./sdk/kuiviewer.nix { };
-    lokalize = callPackage ./sdk/lokalize.nix { };
-    poxml = callPackage ./sdk/poxml.nix { };
-    scripts = callPackage ./sdk/scripts.nix { };
-    umbrello = callPackage ./sdk/umbrello.nix { };
-  };
-  
-  kdetoys = combinePkgs "kdetoys" {
-    amor = callPackage ./toys/amor.nix { };
-    kteatime = callPackage ./toys/kteatime.nix { };
-    ktux = callPackage ./toys/ktux.nix { };
-  };
-
-  kdeutils = combinePkgs "kdeutils" {
-    ark = callPackage ./utils/ark.nix { };
-    kcalc = callPackage ./utils/kcalc.nix { };
-    kcharselect = callPackage ./utils/kcharselect.nix { };
-    kdf = callPackage ./utils/kdf.nix { };
-    kfloppy = callPackage ./utils/kfloppy.nix { };
-    kgpg = callPackage ./utils/kgpg.nix { };
-    kremotecontrol = callPackage ./utils/kremotecontrol.nix { };
-    ktimer = callPackage ./utils/ktimer.nix { };
-    kwallet = callPackage ./utils/kwallet.nix { };
-    okteta = callPackage ./utils/okteta.nix { };
-    printer_applet = callPackage ./utils/printer-applet.nix { };
-    superkaramba = callPackage ./utils/superkaramba.nix { };
-    sweeper = callPackage ./utils/sweeper.nix { };
-  };
-
-  kdewebdev = combinePkgs "kdewebdev" {
-    klinkstatus = callPackage ./webdev/klinkstatus.nix { };
-    kommander = callPackage ./webdev/kommander.nix { };
-    kfilereplace = callPackage ./webdev/kfilereplace.nix { };
-    kimagemapeditor = callPackage ./webdev/kimagemapeditor.nix { };
-  };
-
-  kdepim_runtime = callPackage ./pim-runtime { };
-  kdepim = callPackage ./pim { };
-
-### DEVELOPMENT
-
-  kdebindings = callPackage ./bindings { };
-
-  l10n = callPackage ./l10n { };
-
-  # Make the split packages visible to `nix-env -q'.
-  misc = recurseIntoAttrs
-    (kdeaccessibility.pkgs // kdeartwork.pkgs // kdesdk.pkgs // kdetoys.pkgs // kdeutils.pkgs // kdewebdev.pkgs);
-
-}
diff --git a/pkgs/desktops/kde-4.6/edu/default.nix b/pkgs/desktops/kde-4.6/edu/default.nix
deleted file mode 100644
index e011d2cd522e..000000000000
--- a/pkgs/desktops/kde-4.6/edu/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ kde, cmake, qt4, perl, libxml2, libxslt, openbabel, boost, readline, gmm, gsl
-, xplanet, libspectre, pkgconfig, libqalculate
-, kdelibs, automoc4, eigen, attica}:
-
-kde.package {
-
-#TODO:
-#* Boost.Python (1.31 or higher)  <http://www.boost.org/> - fails to find
-# * libcfitsio0 (3.09 or higher)  <http://indi.sf.net>
-# * libindi (0.6.1 or higher)  <http://indi.sf.net>
-# * R  <http://www.r-project.org/>
-# * OCaml  <http://caml.inria.fr/>
-# * LibFacile  <http://www.recherche.enac.fr/log/facile/>
-# * Avogadro (1.0 or higher)  <http://avogadro.openmolecules.net>
-# * libgps
-
-  buildInputs = [ cmake qt4 perl libxml2 libxslt openbabel boost readline gmm
-    gsl xplanet kdelibs automoc4 eigen attica libspectre pkgconfig
-    libqalculate ];
-
-  meta = {
-    description = "KDE Educative software";
-    license = "GPL";
-    kde = {
-      name = "kdeedu";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/games/default.nix b/pkgs/desktops/kde-4.6/games/default.nix
deleted file mode 100644
index d3836ccf507a..000000000000
--- a/pkgs/desktops/kde-4.6/games/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{kde, cmake, qt4, perl, shared_mime_info, kdelibs, automoc4, qca2
-, kdebindings, twisted, python, pyqt4, sip, makeWrapper }:
-
-kde.package {
-
-# TODO: ggz
-  buildInputs = [ cmake qt4 perl shared_mime_info kdelibs automoc4 qca2
-    kdebindings twisted python pyqt4 sip makeWrapper ];
-
-  postInstall = ''
-    wrapProgram $out/bin/kajongg --set PYTHONPATH $PYTHONPATH
-    wrapProgram $out/bin/kajonggserver --set PYTHONPATH $PYTHONPATH'';
-
-  meta = {
-    description = "KDE Games";
-    license = "GPL";
-    kde = {
-      name = "kdegames";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/graphics/default.nix b/pkgs/desktops/kde-4.6/graphics/default.nix
deleted file mode 100644
index 78442145c9f1..000000000000
--- a/pkgs/desktops/kde-4.6/graphics/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ kde, cmake, lib, perl, qt4, exiv2, lcms, saneBackends, libgphoto2
-, libspectre, popplerQt4, djvulibre, chmlib, shared_mime_info, libXxf86vm
-, kdelibs, automoc4, strigi, qimageblitz, soprano, qca2, ebook_tools }:
-
-kde.package {
-
-  buildInputs = [ cmake perl qt4 exiv2 lcms saneBackends libgphoto2 libspectre
-    (popplerQt4.override { inherit qt4; }) chmlib shared_mime_info libXxf86vm
-    kdelibs automoc4 strigi qimageblitz soprano qca2 djvulibre ebook_tools ];
-
-  meta = {
-    description = "KDE graphics utilities";
-    longDescription = ''
-      Contains various graphics utilities such as Gwenview image viewer and
-      Okular  document reader.
-    '';
-    license = "GPL";
-    kde = {
-      name = "kdegraphics";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/kde-package/default.nix b/pkgs/desktops/kde-4.6/kde-package/default.nix
deleted file mode 100644
index 81fd75e8f440..000000000000
--- a/pkgs/desktops/kde-4.6/kde-package/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ stdenv, fetchurl }:
-
-rec {
-  defaultArgs = {name, stable ? null, version,
-    module ? name, release ? version, ... }:
-
-    assert (name == module) -> (release == version);
-
-    (
-      {
-        name = "${name}-${version}";
-
-        src =
-          let
-            manifest = (import (./manifest + "-${release}.nix"));
-            _stable = if stable == null then manifest.stable else stable;
-            stableString = if _stable then "stable" else "unstable";
-          in
-          fetchurl {
-            url = "mirror://kde/${stableString}/${release}/src/${module}-${release}.tar.bz2";
-            sha256 = stdenv.lib.maybeAttr
-              module
-              (throw "No module ${module} in release ${release}!")
-              manifest.packages;
-          };
-
-        meta = {
-          maintainers = with stdenv.lib.maintainers; [ sander urkud ];
-          platforms = stdenv.lib.platforms.linux;
-          homepage = if name == module
-            then http://www.kde.org
-            else assert builtins.substring 0 3 module == "kde";
-              "http://"
-              + builtins.substring 3
-                (builtins.sub (builtins.stringLength module) 3) module
-              + ".kde.org/projects/${name}";
-        };
-      } // (if module == name then { } else {
-        cmakeFlags = ''
-          -DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE
-          -DBUILD_doc=TRUE -DBUILD_${name}=TRUE'';
-      })
-    );
-
-  package = a@{meta, ...}:
-    assert a.meta ? kde;
-    let
-      default = defaultArgs a.meta.kde;
-    in
-# hand-written merge
-    stdenv.mkDerivation (
-      default
-        // removeAttrs a [ "meta" "cmakeFlags" ]
-        // {
-          meta = default.meta // a.meta;
-        }
-        // (if default ? cmakeFlags || a ? cmakeFlags then {
-          cmakeFlags =
-            (if default ? cmakeFlags then "${default.cmakeFlags}" else "")
-            + (if default ? cmakeFlags && a ? cmakeFlags then " " else "")
-            + (if a ? cmakeFlags then a.cmakeFlags else "");
-        } else { }
-      ));
-}
diff --git a/pkgs/desktops/kde-4.6/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.6/kde-package/kde-manifest.sh
deleted file mode 100755
index fbaf490e8bea..000000000000
--- a/pkgs/desktops/kde-4.6/kde-package/kde-manifest.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# Usage: download kde release to $dir, then run
-# $0 $dir
-
-dir=$1
-
-if [[ ! -d "${dir}" ]]; then
-  echo "${dir} is not a directory (or doesn't exist)!" >&2
-  exit 1
-fi
-
-release=$(ls "${dir}"/kdelibs-*.tar.bz2 | \
-	sed -e 's/.*kdelibs-//' -e 's/\.tar\.bz2//')
-
-if [[ ${release##*.} -gt 50 ]]; then
-	stable="false"
-else
-	stable="true"
-fi
-
-echo "Detected release ${release}" >&2
-
-exec > "manifest-${release}.nix"
-echo "{"
-echo "  stable = ${stable};"
-echo "  packages = builtins.listToAttrs ["
-for i in `cd "${dir}"; ls *-${release}.tar.bz2`; do
-  module=${i%-${release}.tar.bz2}
-  echo -n "${module}.. " >&2
-  hash=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
-  echo "    {"
-  echo "      name = \"${module}\";"
-  echo "      value = \"${hash}\";"
-  echo "    }"
-  echo $hash >&2
-done
-echo "  ];"
-echo "}"
diff --git a/pkgs/desktops/kde-4.6/kde-package/manifest-4.5.90.nix b/pkgs/desktops/kde-4.6/kde-package/manifest-4.5.90.nix
deleted file mode 100644
index 34ef033e4cb4..000000000000
--- a/pkgs/desktops/kde-4.6/kde-package/manifest-4.5.90.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{
-  stable = false;
-  packages = builtins.listToAttrs [
-    {
-      name = "kdeaccessibility";
-      value = "0jqfyzy3jvzyv1b6n1r589vk7qs8phng6az5jgsknhjjrhsn40hy";
-    }
-    {
-      name = "kdeadmin";
-      value = "1kk0xzf6mrhm946rsrpizzpkx59rf8xzxfj5h5lkcrajmq4xr0q8";
-    }
-    {
-      name = "kdeartwork";
-      value = "0f531rzz5ryq9irkijlb2anxm9zl933yq7q9h9im30s2w4fx31j6";
-    }
-    {
-      name = "kdebase";
-      value = "0aj5w84clbwhckpfryhcfwjnqamdmjm6mf0nf9g1qdaa2k2sfiqm";
-    }
-    {
-      name = "kdebase-runtime";
-      value = "0fhzxhj6p8nam4zi9wz998q06j70wvk1zgrb95lblfcjvs5f8ggb";
-    }
-    {
-      name = "kdebase-workspace";
-      value = "02s2bfid02js0r9400jfk6g74b0m8y7qi95ag7pj3ynn59fz9fv7";
-    }
-    {
-      name = "kdebindings";
-      value = "0ggq2djhcf74zb3wr2g1i2a72ncxs9h787sf4136ys0frxc4h898";
-    }
-    {
-      name = "kdeedu";
-      value = "172ix71977i2rm8r2fqdwrs954d0q82xf97hzpvqmjia3hp823iv";
-    }
-    {
-      name = "kdegames";
-      value = "1srk4vh9n1wh71hamzzvsgwml2j6yi959w61wbqrx9hd0vh3nfcz";
-    }
-    {
-      name = "kdegraphics";
-      value = "0d93kg8bhg2qwbpjnkgygbc8i6qc3wmdy419h15zafy6v66hfnqi";
-    }
-    {
-      name = "kdelibs";
-      value = "04n0whn0srfnqb3gr4w4g92s2vwhxhsmik5bkja4zzkkyylpg76b";
-    }
-    {
-      name = "kdemultimedia";
-      value = "1wclpg44fips943l0yiydr8bg0r0gw1j1ji8jvivcwl8mhq2qxf1";
-    }
-    {
-      name = "kdenetwork";
-      value = "13r9fpbcsl5a12rlg1cifvply4shmvsmm8c1h6bkgyw55k6m652v";
-    }
-    {
-      name = "kdepimlibs";
-      value = "1zc07iw6f78zbbnywplavjb4vdvhr14262wfx35zw3w34x3s0czb";
-    }
-    {
-      name = "kdeplasma-addons";
-      value = "0x46l5840iy6nlfzbgi711rdrrjwaxzglsd9hjs90sswqyiid1zg";
-    }
-    {
-      name = "kdesdk";
-      value = "0dgvg0pzdwk4cg0v4rmjid0lb25r0gbhciywb2whr0l4g8rnsriz";
-    }
-    {
-      name = "kdetoys";
-      value = "1kzzwz8gbd0j9758vxb0cpklgcb9szl49lpyv98bb94378syvn87";
-    }
-    {
-      name = "kdeutils";
-      value = "1c2k8vh7vyjlvq32grs32iwfgg9q9jblm2lwhlkmrl391b38fc0d";
-    }
-    {
-      name = "kdewebdev";
-      value = "15zj9jwrqfkz94hhjcic8k58d6fwrxa6xacmxpmps80j7qgik0d9";
-    }
-    {
-      name = "oxygen-icons";
-      value = "15m08kkxyqw00zhi07mqwwkghw2knf9djw2sw32rpiicg7ppfjgx";
-    }
-  ];
-}
diff --git a/pkgs/desktops/kde-4.6/l10n/default.nix b/pkgs/desktops/kde-4.6/l10n/default.nix
deleted file mode 100644
index f3b384ad91dd..000000000000
--- a/pkgs/desktops/kde-4.6/l10n/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv, fetchurl, cmake, kdelibs, gettext, perl, automoc4 }:
-
-let
-  overrides = { };
-
-  defaultRelease = "4.5.90";
-  releases = [ "4.5.90" ];
-
-  sanitizeString = replaceChars [ "@" "." ] [ "_" "_" ];
-  getOverride = name: attrByPath [name] {} overrides;
-
-  inherit (stdenv.lib) replaceChars attrByPath singleton;
-
-  kdeL10nDerivation = {lang, sha256, release} :
-    let
-      name = "kde-l10n-${lang}-${release}";
-      saneName = "kde-l10n-${sanitizeString lang}-${release}";
-    in
-    stdenv.mkDerivation ({
-      name = saneName;
-      src = fetchurl {
-        url = "mirror://kde/unstable/${release}/src/kde-l10n/${name}.tar.bz2";
-        name = "${saneName}.tar.bz2";
-        inherit sha256;
-      };
-
-      buildInputs = [ cmake perl gettext kdelibs automoc4 ];
-
-      meta = {
-        description = "KDE translation for ${lang}";
-        license = "GPL";
-        inherit (kdelibs.meta) maintainers platforms homepage;
-      };
-    }
-    // (getOverride lang) // (getOverride name)
-  );
-
-  kdeL10nRelease = release:
-    let
-      releaseStr = sanitizeString release;
-    in
-    builtins.listToAttrs (
-      map ({lang, sha256}:
-        {
-          name = "${sanitizeString lang}";
-          value = kdeL10nDerivation { inherit lang release sha256;};
-        }
-      ) (import (./manifest + "-${release}.nix"))
-    );
-
-in
-{
-  inherit kdeL10nDerivation;
-  recurseForDerivations = true;
-}
-// builtins.listToAttrs (map (r : { name = sanitizeString r; value =
-kdeL10nRelease r; }) releases)
-// (kdeL10nRelease defaultRelease)
diff --git a/pkgs/desktops/kde-4.6/l10n/manifest-4.5.90.nix b/pkgs/desktops/kde-4.6/l10n/manifest-4.5.90.nix
deleted file mode 100644
index 33f7abff71c6..000000000000
--- a/pkgs/desktops/kde-4.6/l10n/manifest-4.5.90.nix
+++ /dev/null
@@ -1,222 +0,0 @@
-[
-{
-  lang = "ar";
-  sha256 = "19mfcq1ms0k6msir8q1g70myvqiapcf6a2r8wq47achxnpkicia9";
-}
-{
-  lang = "bg";
-  sha256 = "1njbxf5y3pl9nmyj913qinaa3qr4q4v8gvwmg7mfidddrr60yniz";
-}
-{
-  lang = "ca";
-  sha256 = "1yv5220q1d3w4nmix9jzz98fhyk0516v3mr5j4pczf407mrggh3l";
-}
-{
-  lang = "ca@valencia";
-  sha256 = "047rq1g0a7dy0kdna9gd4x906dk6inb61vw0xl6kkb3kzxxp3das";
-}
-{
-  lang = "cs";
-  sha256 = "1cazhfrh9nagxi2grlwldwl4j92xhgj8lmyaxkhb893nj845z108";
-}
-{
-  lang = "da";
-  sha256 = "1cm19gp0qiq6yqdzwpv14swj8g7rkvspqgnn5b2i5f3qqr25d29g";
-}
-{
-  lang = "de";
-  sha256 = "0sr51gpyfdgai8frrr0dw7qyssc39kl3fqkjg8w8zjlsp5x6ddx5";
-}
-{
-  lang = "el";
-  sha256 = "0s6mg2diy84my66zgcs5z8xk13j2a8q71xkrvw4d1z8pbnbw4i66";
-}
-{
-  lang = "en_GB";
-  sha256 = "1n461w69gs9q86kp6xy0980ziry61idr0bk614mv58ip1myzwhgm";
-}
-{
-  lang = "eo";
-  sha256 = "1s7p0d45f30871rikx74rc238z9w239pdb4ay9nfx2618wnsrhkr";
-}
-{
-  lang = "es";
-  sha256 = "1583gkwac4ys2sz8a93km0fabqpasslas5jzkavbz1bn8ps1q0w3";
-}
-{
-  lang = "et";
-  sha256 = "00sbnyqhvsdy9y1f59ir0mpxbj6h5x7gc8hiigfzsymlm14fhf26";
-}
-{
-  lang = "eu";
-  sha256 = "1pk6dmakxzj3qqq506flyipcc1sc954lsf4zsy82ii8ki06zvrvw";
-}
-{
-  lang = "fi";
-  sha256 = "1xcdmmvf8x723ngw5xw714x86xpn66qb3pw6h0x01mlh28lprq7j";
-}
-{
-  lang = "fr";
-  sha256 = "18wbz82cnxk51vj4qpw54xcrplga7vpm7p0cw19cjwph2xs62bjl";
-}
-{
-  lang = "fy";
-  sha256 = "1n3ix81jz9716ai9xm99r2v3n64w0kqvr8iz58zlrns5k9cig1nw";
-}
-{
-  lang = "ga";
-  sha256 = "0gm5ylr0dw6slilf1xdsksx17f7kqxmagdywl3dp2fry2h6z3xrn";
-}
-{
-  lang = "gl";
-  sha256 = "132bchxzm4qkbjcf5ljwniyjiahfwkd3i01sqm57l9ssgkq88f1r";
-}
-{
-  lang = "gu";
-  sha256 = "1sg4c0ijap8aird7fwflzw2w7yhx08b8baw4453nkk28s3l0wbl8";
-}
-{
-  lang = "he";
-  sha256 = "1gjngdh6qwmwfhyxcad1xsyq0l25v88bdg4yl1m5iw5a44rvn9br";
-}
-{
-  lang = "hi";
-  sha256 = "1q5rhiwn5fp8sgdrlqh2gh1f4q60x0s5x79q31fnw4kdk5akkrbs";
-}
-{
-  lang = "hr";
-  sha256 = "0hsdh8pnir8ykdsakbii7jj2nd9g1h03s29bmbg6w4r7q39xif7i";
-}
-{
-  lang = "hu";
-  sha256 = "0zpmndlb0vp3sp7z8g233335kak3ms8gzzgn1dhqch0rs03dx9cb";
-}
-{
-  lang = "ia";
-  sha256 = "01jrkfs4jp8z4554sia73vk4js1sd32a3swhal664vdwnf62cw70";
-}
-{
-  lang = "id";
-  sha256 = "0nylab5ncqdx5s3nnq7lx3fd70crjwihkgp9hv689vz4l8g1si4z";
-}
-{
-  lang = "is";
-  sha256 = "1rj8m2qsfhrv4k99mf5sydz5mhq0anhcfi4na04l1hi7icypbz9d";
-}
-{
-  lang = "it";
-  sha256 = "1f1kd82f3pc4szbfwsyxpn115rp2fbkx98gzxpnaggb3j88vq2k9";
-}
-{
-  lang = "ja";
-  sha256 = "0axl759bpv18dl0pw52hlksgdza1y8f7jfw5zgv6rc9qks1f1f9q";
-}
-{
-  lang = "kk";
-  sha256 = "14xvnj21kqp41ayi6n1a8qbph5llf9izs5qql82lcvph3a7zdjxv";
-}
-{
-  lang = "km";
-  sha256 = "0fywr8c6cz0wp4kx56xfd93mjbgwmnmh6zv0kdq8lr9xzjfjbbvq";
-}
-{
-  lang = "kn";
-  sha256 = "13isz33r2wkir2n53fxvmadk5fp4178rxm3nlr8c0l4fqic5pj1a";
-}
-{
-  lang = "ko";
-  sha256 = "1l18crb73cg5an8isgv0iih1mc3j4ghqnfrx39bbrl5ljym78xfx";
-}
-{
-  lang = "lt";
-  sha256 = "01b50dzhxlczmjqc07ph40bz86020ll1ddzcr0285dqqxcl466hg";
-}
-{
-  lang = "lv";
-  sha256 = "0vcbl1laf0vnpks3mfghxffvnyyl4av4lgkgx9annw625aybwc5w";
-}
-{
-  lang = "ml";
-  sha256 = "06z3ihbd3mjzmr68h5bxnp2zhkfnjx7a4ldkv9hj1m4miwpa9af6";
-}
-{
-  lang = "nb";
-  sha256 = "1zp7803s50y750i59cpfq5n4m4yq7xjyqzrrajk4k2cp3kv7prv0";
-}
-{
-  lang = "nds";
-  sha256 = "1f71gl6v9nasrci17glbllyc1h8iaw69j1vf36pyzzp3jwi6y6pg";
-}
-{
-  lang = "nl";
-  sha256 = "18x4dfffyc11acl90bj5d86xvbjiq9bkszdgnmninaa6zjmmvng9";
-}
-{
-  lang = "nn";
-  sha256 = "0syb3x2mlz7lf6awa1h0lchj7qmwmdmxai2cy0h0ja3jvbh6hrsw";
-}
-{
-  lang = "pa";
-  sha256 = "1dd5bpn409b839blb5zj27gc0mg13r3d36ap80lybivqpga0c5bw";
-}
-{
-  lang = "pl";
-  sha256 = "0cmqh4f846s910jlhgc1vpzwlbry0vc4wwpx5misiybh2didhly9";
-}
-{
-  lang = "pt";
-  sha256 = "01z1bz56r1jpfwl2vhfkb8w667layv2hm163y6x4i940qfiig167";
-}
-{
-  lang = "pt_BR";
-  sha256 = "0swilj7qvsrg66xccjmyzlj4l6k88qghvdcs6m9nha3rv199p35k";
-}
-{
-  lang = "ro";
-  sha256 = "08c8ikxfmxgiwchdhayjflk4773rfan2jmjnbrixmam21x2py5ys";
-}
-{
-  lang = "ru";
-  sha256 = "01nskj9mi28xbg77shnmhc46ilx9qrnsv1rsmpblphqxs3wczpqy";
-}
-{
-  lang = "sk";
-  sha256 = "12ja66s0v85d8w5nk1c0xwfs04wq0ngxmpypc5igky90qxhg3f75";
-}
-{
-  lang = "sl";
-  sha256 = "0qqass959xcc7gg1q76w10alrj1ypxc5hg43hlbjagxy8x1nkd99";
-}
-{
-  lang = "sr";
-  sha256 = "16cq9iz2njvwm4d57f07ay4rzw66pwphblxrdrlk22fvkli1hmps";
-}
-{
-  lang = "sv";
-  sha256 = "05hskmbmr9gzfk7i3xlh6a56inmjgl26cvbkcm967mayfigxcaqp";
-}
-{
-  lang = "th";
-  sha256 = "0n9jbngj3l1crqgqv9am8bl3l3sa3x2ccna4p9ccbjyvl4xgryij";
-}
-{
-  lang = "tr";
-  sha256 = "14lfp80r9vwr4kbway2kzff3qr9dgywal6n68adam7jhagfmxifc";
-}
-{
-  lang = "uk";
-  sha256 = "1ygac3jnjw4y4jfk4r8hba1d9ppb41sq50szbh4s4cw0p77kwi91";
-}
-{
-  lang = "wa";
-  sha256 = "1pg37wyyc2fbjy1pmmk8vchk3jl0x9qahqa8bka3w24piq8k2bal";
-}
-{
-  lang = "zh_CN";
-  sha256 = "1664vjjs2nfldmzwda5p2qv9gayx1jpnr0glm87whgak1yyhwjsb";
-}
-{
-  lang = "zh_TW";
-  sha256 = "05c3m128c92gj6n0jr6d6wwbs142nwyxxj6bf0rq24pdl1m5fdn8";
-}
-]
diff --git a/pkgs/desktops/kde-4.6/libs/default.nix b/pkgs/desktops/kde-4.6/libs/default.nix
deleted file mode 100644
index 88d7391def2b..000000000000
--- a/pkgs/desktops/kde-4.6/libs/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ kde, gcc, cmake, perl
-, qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
-, xz, flex, bison, openexr, aspell, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
-, automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt
-, docbook_xml_dtd_42, docbook_xsl, polkit_qt_1, hspell, udev, grantlee
-}:
-
-kde.package {
-
-  buildInputs = [
-    cmake perl xz flex bison bzip2 pcre fam libxml2 libxslt shared_mime_info
-    giflib jasper /*openexr*/ aspell avahi kerberos acl attr libXScrnSaver
-    enchant libdbusmenu_qt polkit_qt_1 automoc4 hspell udev grantlee
-  ];
-
-# TODO:
-#   * make sonnet plugins (dictionaries) really work.
-#      There are a few hardcoded paths.
-#   * Let kdelibs find openexr
-#   * Split plugins from libs?
-#   * herqq: kdelibs tries to include HDeviceProxy which was never released
-
-  propagatedBuildInputs = [ qt4 gcc.libc strigi soprano attica qca2
-    shared_desktop_ontologies ];
-
-  # cmake fails to find acl.h because of C++-style comment
-  # TODO: OpenEXR, hspell
-  cmakeFlags = ''
-    -DHAVE_ACL_LIBACL_H=ON -DHAVE_SYS_ACL_H=ON
-    -DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook
-    -DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook
-    '';
-
-  meta = {
-    description = "KDE libraries";
-    license = "LGPL";
-    kde = {
-      name = "kdelibs";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/multimedia/default.nix b/pkgs/desktops/kde-4.6/multimedia/default.nix
deleted file mode 100644
index d3bb8a99a666..000000000000
--- a/pkgs/desktops/kde-4.6/multimedia/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ kde, cmake, perl, qt4, alsaLib, libvorbis, xineLib, taglib, flac,
-cdparanoia, lame , kdelibs, automoc4, ffmpeg, libmusicbrainz2, libtunepimp }:
-
-kde.package {
-
-  buildInputs = [ cmake perl qt4 alsaLib libvorbis xineLib flac taglib
-    cdparanoia lame kdelibs automoc4 ffmpeg libmusicbrainz2 libtunepimp ];
-
-  meta = {
-    description = "KDE Multimedia";
-    longDescription = ''
-      Contains various Multimedia utilties for KDE such as a movie player and sound volume mixer.
-    '';
-    license = "GPL";
-    kde = {
-      name = "kdemultimedia";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/network/default.nix b/pkgs/desktops/kde-4.6/network/default.nix
deleted file mode 100644
index 48ce55eed6f5..000000000000
--- a/pkgs/desktops/kde-4.6/network/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ kde, cmake, qt4, perl, speex, gmp, libxml2, libxslt, sqlite, alsaLib, libidn
-, libvncserver, libmsn, giflib, gpgme, boost, libv4l, libotr
-, libXi, libXtst, libXdamage, libXxf86vm, libktorrent, kdebase
-, kdebase_workspace
-, kdelibs, kdepimlibs, automoc4, qca2, soprano, qimageblitz, strigi}:
-
-kde.package {
-
-  buildInputs = [ cmake qt4 perl speex gmp libxml2 libxslt sqlite alsaLib libidn
-    libvncserver libmsn giflib gpgme boost libv4l libotr libXi libXtst
-    libXdamage libXxf86vm kdelibs kdepimlibs automoc4 qca2 soprano
-    qimageblitz strigi libktorrent kdebase kdebase_workspace ];
-
-  patches = [ ./log-feature.diff ];
-#TODO
-# * telepathy-qt4 (0.18 or higher)  <http://telepathy.freedesktop.org>
-# * KWebKitPart  <https://svn.kde.org/home/kde/trunk/extragear/base/kwebkitpart>
-# * libortp (0.13 or higher)  <http://www.linphone.org/index.php/eng/code_review/ortp>
-# * XMMS  <http://www.xmms.org>
-# * mediastreamer (2.3.0 or higher)  <http://www.linphone.org/index.php/eng/code_review/mediastreamer2>
-# * libmeanwhile  <http://meanwhile.sf.net>
-# * libgadu (1.8.0 or higher)  <http://toxygen.net/libgadu/>
-
-# Let cmake find libktorrent. Waiting for upstream fix
-  KDEDIRS="${libktorrent}";
-
-  meta = {
-    description = "KDE network utilities";
-    longDescription = "Various network utilities for KDE such as a messenger client and network configuration interface";
-    license = "GPL";
-    kde = {
-      name = "kdenetwork";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/pim-runtime/default.nix b/pkgs/desktops/kde-4.6/pim-runtime/default.nix
deleted file mode 100644
index d92f1eecc73b..000000000000
--- a/pkgs/desktops/kde-4.6/pim-runtime/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ kde, fetchurl, cmake, qt4, perl, libxml2, libxslt, boost, shared_mime_info
-, kdelibs, kdepimlibs
-, automoc4, phonon, akonadi, soprano, strigi}:
-
-kde.package rec {
-  buildInputs = [ cmake qt4 perl libxml2 libxslt boost shared_mime_info
-                  kdelibs kdepimlibs
-		  automoc4 phonon akonadi soprano strigi ];
-  prePatch = ''
-      find .. -name CMakeLists.txt | xargs sed -i -e "s@DESTINATION \''${KDE4_DBUS_INTERFACES_DIR}@DESTINATION \''${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces/@"
-  '';
-
-  src = fetchurl {
-    url = "mirror://kde/stable/kdepim-${meta.kde.version}/src/${meta.kde.name}-${meta.kde.version}.tar.bz2";
-    sha256 = "029a0i83b2yrc1xn9as7gc9rakpxjh5cjmqcmhrrj0xwalqz490n";
-  };
-
-  meta = {
-    description = "KDE PIM runtime";
-    homepage = http://www.kde.org;
-    license = "GPL";
-    kde = {
-      name = "kdepim-runtime";
-      version = "4.4.8";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/pim/default.nix b/pkgs/desktops/kde-4.6/pim/default.nix
deleted file mode 100644
index cdcc3dc023db..000000000000
--- a/pkgs/desktops/kde-4.6/pim/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ kde, fetchurl, cmake, perl, boost, gpgme, libassuan, libgpgerror, libxslt
-, shared_mime_info, libXScrnSaver, kdelibs, kdepimlibs, kdepim_runtime
-, automoc4, akonadi, qca2}:
-
-kde.package rec {
-
-  buildInputs = [ cmake boost gpgme libassuan libgpgerror libxslt
-    shared_mime_info libXScrnSaver kdelibs kdepimlibs automoc4 akonadi ];
-  prePatch = ''
-      find .. -name CMakeLists.txt | xargs sed -i -e "s@DESTINATION \''${KDE4_DBUS_INTERFACES_DIR}@DESTINATION \''${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces/@"
-  '';
-  postInstall = ''
-      mkdir -p $out/nix-support/
-      echo ${akonadi} ${kdepimlibs} ${kdepim_runtime} > $out/nix-support/propagated-user-env-packages
-  '';
-
-  src = fetchurl {
-    url = "mirror://kde/stable/kdepim-${meta.kde.version}/src/${meta.kde.name}-${meta.kde.version}.tar.bz2";
-    sha256 = "02nbdn8s4504ljqz0qylm1jyw4hpg5fjw3vi6sbzm522xvkax4wh";
-  };
-
-  meta = {
-    description = "KDE PIM tools";
-    longDescription = ''
-      Contains various personal information management tools for KDE, such as an organizer
-    '';
-    license = "GPL";
-    homepage = http://pim.kde.org;
-    kde = {
-      name = "kdepim";
-      version = "4.4.8";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/pimlibs/default.nix b/pkgs/desktops/kde-4.6/pimlibs/default.nix
deleted file mode 100644
index 7de75e9425b6..000000000000
--- a/pkgs/desktops/kde-4.6/pimlibs/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kde, cmake, qt4, perl, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
-, kdelibs, automoc4, akonadi, soprano}:
-
-kde.package {
-
-  buildInputs = [ cmake automoc4 perl shared_mime_info ];
-  propagatedBuildInputs = [ qt4 boost cyrus_sasl gpgme libical openldap kdelibs
-    akonadi soprano ];
-
-  meta = {
-    description = "KDE PIM libraries";
-    license = "LGPL";
-    kde = {
-      name = "kdepimlibs";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/plasma-addons/default.nix b/pkgs/desktops/kde-4.6/plasma-addons/default.nix
deleted file mode 100644
index 4b478e8f2e1a..000000000000
--- a/pkgs/desktops/kde-4.6/plasma-addons/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ kde, cmake, qt4, perl, automoc4, kdelibs, soprano, kdeedu
-, boost, eigen, kdebase_workspace, attica, python, qca2, qimageblitz
-, shared_mime_info, kdepimlibs, kdegraphics, libqalculate, libXtst }:
-# TODO: qwt, scim, MARBLE!!
-
-kde.package {
-
-  preConfigure =
-    "cp -v ${kdeedu}/share/apps/cmake/modules/FindMarble.cmake cmake";
-
-  buildInputs = [ cmake qt4 perl automoc4 kdelibs boost eigen kdebase_workspace
-    attica python qca2 qimageblitz shared_mime_info kdepimlibs kdegraphics
-    libqalculate soprano libXtst kdeedu ];
-
-  meta = {
-    description = "KDE Plasma Addons";
-    license = "GPL";
-    kde = {
-      name = "kdeplasma-addons";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/cervisia.nix b/pkgs/desktops/kde-4.6/sdk/cervisia.nix
deleted file mode 100644
index e0ff5c305970..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/cervisia.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-  meta = {
-    description = "A KDE CVS frontend";
-    kde = {
-      name = "cervisia";
-      module = "kdesdk";
-      version = "3.5.0";
-      release = "4.5.90";
-      versionFile = "cervisia/version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/dolphin-plugins.nix b/pkgs/desktops/kde-4.6/sdk/dolphin-plugins.nix
deleted file mode 100644
index 023d36e47e3c..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/dolphin-plugins.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, kdebase }:
-
-kde.package {
-  # Needs kdebase for libkonq
-  buildInputs = [ cmake kdelibs automoc4 kdebase ];
-
-
-  meta = {
-    description = "Git and Svn plugins for dolphin";
-    kde = {
-      name = "dolphin-plugins";
-      module = "kdesdk";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kapptemplate.nix b/pkgs/desktops/kde-4.6/sdk/kapptemplate.nix
deleted file mode 100644
index daf75993bdb1..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kapptemplate.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-
-  meta = {
-    description = "A KDE 4 project template generator";
-    kde = {
-      name = "kapptemplate";
-      module = "kdesdk";
-      version = "0.1";
-      release = "4.5.90";
-      versionFile = "kapptemplate/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kate.nix b/pkgs/desktops/kde-4.6/sdk/kate.nix
deleted file mode 100644
index b588a0ea1bc1..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kate.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, shared_mime_info }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 shared_mime_info ];
-
-
-  meta = {
-    description = "Kate - Advanced Text Editor";
-    kde = {
-      name = "kate";
-      module = "kdesdk";
-      version = "3.5.2"; # (release.major-1).(release.minor).(release.patch)
-      release = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kbugbuster.nix b/pkgs/desktops/kde-4.6/sdk/kbugbuster.nix
deleted file mode 100644
index 5001ee944bb1..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kbugbuster.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, kdepimlibs }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 kdepimlibs ];
-
-
-  meta = {
-    description = "KDE bugzilla client";
-    kde = {
-      name = "kbugbuster";
-      module = "kdesdk";
-      version = "3.80.3";
-      release = "4.5.90";
-      versionFile = "version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kcachegrind.nix b/pkgs/desktops/kde-4.6/sdk/kcachegrind.nix
deleted file mode 100644
index 103e2dc071c3..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kcachegrind.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-
-  meta = {
-    description = "KDE Frontend for Callgrind/Cachegrind";
-    kde = {
-      name = "kcachegrind";
-      module = "kdesdk";
-      version = "0.6";
-      release = "4.5.90";
-      versionFile = "CMakeLists.txt";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kdeaccounts-plugin.nix b/pkgs/desktops/kde-4.6/sdk/kdeaccounts-plugin.nix
deleted file mode 100644
index 4cfa3eb2a0c2..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kdeaccounts-plugin.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, kdepimlibs }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 kdepimlibs ];
-
-
-  meta = {
-    description = "KDE accounts akonadi agent";
-    kde = {
-      name = "kdeaccounts-plugin";
-      module = "kdesdk";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.6/sdk/kioslave-perldoc.nix
deleted file mode 100644
index c5a5f2b5b614..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kioslave-perldoc.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, perl }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 perl ];
-
-  cmakeFlags = "-DBUILD_kioslave=ON -DBUILD_perldoc=ON";
-
-  meta = {
-    description = "perldoc: kioslave";
-    kde = {
-      name = "kioslave-perldoc";
-      module = "kdesdk";
-      version = "0.9.1";
-      release = "4.5.90";
-      versionFile = "kioslave/perldoc/perldoc.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kioslave-svn.nix b/pkgs/desktops/kde-4.6/sdk/kioslave-svn.nix
deleted file mode 100644
index 1ca05eb5f425..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kioslave-svn.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, subversion, apr, aprutil }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 subversion apr aprutil ];
-
-  patches = [ ./find-svn.patch ];
-  cmakeFlags = "-DBUILD_kioslave=ON";
-
-  meta = {
-    description = "svn:/ kioslave";
-    kde = {
-      name = "kioslave-svn";
-      module = "kdesdk";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kmtrace.nix b/pkgs/desktops/kde-4.6/sdk/kmtrace.nix
deleted file mode 100644
index 2429a07f4002..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kmtrace.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, gcc }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-  preConfigure="export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:${gcc}:${gcc.gcc}";
-
-  meta = {
-    description = "KDE mtrace-based malloc debuger";
-    kde = {
-      name = "kmtrace";
-      module = "kdesdk";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kompare.nix b/pkgs/desktops/kde-4.6/sdk/kompare.nix
deleted file mode 100644
index 5366edfa855b..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kompare.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-
-  meta = {
-    description = "A program to view the differences between files and optionally generate a diff";
-    kde = {
-      name = "kompare";
-      module = "kdesdk";
-      version = "4.0.0";
-      release = "4.5.90";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kpartloader.nix b/pkgs/desktops/kde-4.6/sdk/kpartloader.nix
deleted file mode 100644
index 8702a7f73284..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kpartloader.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-
-  meta = {
-    description = "A test application for KParts";
-    kde = {
-      name = "kpartloader";
-      module = "kdesdk";
-      version = "1.0";
-      release = "4.5.90";
-      versionFile = "kpartloader.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kprofilemethod.nix b/pkgs/desktops/kde-4.6/sdk/kprofilemethod.nix
deleted file mode 100644
index 360a71948ace..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kprofilemethod.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-
-  meta = {
-    description = "A macros for profiling using QTime";
-    longDescription = "Don't commit any code using kprofilemethod.h to KDE repositories.";
-    kde = {
-      name = "kprofilemethod";
-      module = "kdesdk";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kstartperf.nix b/pkgs/desktops/kde-4.6/sdk/kstartperf.nix
deleted file mode 100644
index cd43be1cece4..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kstartperf.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, libtool }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 libtool ];
-
-
-  meta = {
-    description = "Measures start up time of a KDE application";
-    kde = {
-      name = "kstartperf";
-      module = "kdesdk";
-      version = "1.0";
-      release = "4.5.90";
-      versionFile = "kstartperf.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/kuiviewer.nix b/pkgs/desktops/kde-4.6/sdk/kuiviewer.nix
deleted file mode 100644
index e8ea5b5b36c3..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/kuiviewer.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-
-  meta = {
-    description = "Displays Qt Designer's UI files";
-    kde = {
-      name = "kuiviewer";
-      module = "kdesdk";
-      version = "0.1";
-      release = "4.5.90";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/lokalize.nix b/pkgs/desktops/kde-4.6/sdk/lokalize.nix
deleted file mode 100644
index 4911cb22ae44..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/lokalize.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, hunspell }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 hunspell ];
-
-
-  meta = {
-    description = "KDE 4 Computer-aided translation system";
-    longDescription = ''
-      Computer-aided translation system.
-      Do not translate what had already been translated.'';
-    kde = {
-      name = "lokalize";
-      module = "kdesdk";
-      version = "1.1";
-      release = "4.5.90";
-      versionFile = "src/version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/poxml.nix b/pkgs/desktops/kde-4.6/sdk/poxml.nix
deleted file mode 100644
index 652110b38ff3..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/poxml.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, antlr }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 antlr ];
-
-
-  meta = {
-    description = "Po<->xml tools";
-    kde = {
-      name = "poxml";
-      module = "kdesdk";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/scripts.nix b/pkgs/desktops/kde-4.6/sdk/scripts.nix
deleted file mode 100644
index 204c24cfba5f..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/scripts.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-
-  meta = {
-    description = "Various scripts to ease KDE development";
-    kde = {
-      name = "scripts";
-      module = "kdesdk";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/sdk/umbrello.nix b/pkgs/desktops/kde-4.6/sdk/umbrello.nix
deleted file mode 100644
index d465e97012bd..000000000000
--- a/pkgs/desktops/kde-4.6/sdk/umbrello.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, libxml2, libxslt, boost }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 libxml2 libxslt boost ];
-
-
-  meta = {
-    description = "Umbrello UML modeller";
-    kde = {
-      name = "umbrello";
-      module = "kdesdk";
-      version = "2.5.2"; # release - 200
-      release = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/support/akonadi/default.nix b/pkgs/desktops/kde-4.6/support/akonadi/default.nix
deleted file mode 100644
index ff4f1c15d591..000000000000
--- a/pkgs/desktops/kde-4.6/support/akonadi/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, mysql, automoc4, soprano}:
-
-stdenv.mkDerivation rec {
-  name = "akonadi-1.4.90";
-  src = fetchurl {
-    url = "http://download.akonadi-project.org/${name}.tar.bz2";
-    sha256 = "0am4m81zhq343a42s1ig5jxx47i6g1d97r546qqzdm5w542r6c00";
-  };
-  buildInputs = [ cmake qt4 shared_mime_info libxslt boost mysql automoc4 soprano ];
-  meta = with stdenv.lib; {
-    description = "KDE PIM Storage Service";
-    license = "LGPL";
-    homepage = http://pim.kde.org/akonadi;
-    maintainers = [ maintainers.sander maintainers.urkud ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/support/automoc4/default.nix b/pkgs/desktops/kde-4.6/support/automoc4/default.nix
deleted file mode 100644
index be50867cbe7a..000000000000
--- a/pkgs/desktops/kde-4.6/support/automoc4/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{stdenv, fetchurl, cmake, qt4}:
-
-stdenv.mkDerivation rec {
-  name = "automoc4-0.9.88";
-  src = fetchurl {
-    url = "mirror://kde/stable/automoc4/0.9.88/${name}.tar.bz2";
-    sha256 = "0jackvg0bdjg797qlbbyf9syylm0qjs55mllhn11vqjsq3s1ch93";
-  };
-  buildInputs = [ cmake qt4 ];
-  meta = {
-    description = "KDE Meta Object Compiler";
-    license = "BSD";
-    maintainers = [ stdenv.lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/support/eigen/default.nix b/pkgs/desktops/kde-4.6/support/eigen/default.nix
deleted file mode 100644
index e72de6c1b258..000000000000
--- a/pkgs/desktops/kde-4.6/support/eigen/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{stdenv, fetchurl, cmake}:
-
-let
-  v = "2.0.15";
-in
-stdenv.mkDerivation {
-  name = "eigen-${v}";
-  src = fetchurl {
-    url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2";
-    name = "eigen-${v}.tar.bz2";
-    sha256 = "1a00hqyig4rc7nkz97xv23q7k0vdkzvgd0jkayk61fn9aqcrky79";
-  };
-  buildInputs = [ cmake ];
-  meta = {
-    description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
-    license = "LGPL";
-    homepage = http://eigen.tuxfamily.org ;
-    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/support/oxygen-icons/default.nix b/pkgs/desktops/kde-4.6/support/oxygen-icons/default.nix
deleted file mode 100644
index fdd3786077e6..000000000000
--- a/pkgs/desktops/kde-4.6/support/oxygen-icons/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{kde, cmake}:
-
-kde.package {
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0yl5clp4dyxk6pg8lp3w3z44ayjhn7i47ww8n952mam5il6mlfl1";
-
-  buildInputs = [ cmake ];
-  meta = {
-    description = "KDE Oxygen theme icons";
-    longDescription = "Contains icons for the KDE Oxygen theme, which is the default icon theme since KDE 4.3";
-    license = "GPL";
-    kde = {
-      name = "oxygen-icons";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/support/polkit-qt-1/default.nix b/pkgs/desktops/kde-4.6/support/polkit-qt-1/default.nix
deleted file mode 100644
index 2d528c845421..000000000000
--- a/pkgs/desktops/kde-4.6/support/polkit-qt-1/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kde, fetchurl, cmake, qt4, pkgconfig, polkit, automoc4, glib }:
-
-kde.package rec {
-  buildInputs = [ cmake qt4 automoc4 ];
-  propagatedBuildInputs = [ polkit glib ];
-
-  src = fetchurl {
-    url = with meta.kde;
-      "mirror://kde/stable/apps/KDE4.x/admin/${name}-${version}.tar.bz2";
-    sha256 = "02m710q34aapbmnz1p6qwgkk5xjmm239zdl3lvjg77dh3j0w5i3r";
-  };
-
-  patches = [ ./policy-files.patch ];
-
-  meta.kde = {
-    name = "polkit-qt-1";
-    version = "0.99.0";
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/support/polkit-qt-1/policy-files.patch b/pkgs/desktops/kde-4.6/support/polkit-qt-1/policy-files.patch
deleted file mode 100644
index f179c962a586..000000000000
--- a/pkgs/desktops/kde-4.6/support/polkit-qt-1/policy-files.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2791059a4c930c7eb5e4a3233ef997e69187c4d1 Mon Sep 17 00:00:00 2001
-From: Yury G. Kudryashov <urkud.urkud@gmail.com>
-Date: Fri, 24 Dec 2010 16:00:04 +0300
-Subject: [PATCH] Don't let packages install policy files outside of their installation prefix
-
----
- PolkitQt-1Config.cmake.in |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/PolkitQt-1Config.cmake.in b/PolkitQt-1Config.cmake.in
-index 1356de7..4c55719 100644
---- a/PolkitQt-1Config.cmake.in
-+++ b/PolkitQt-1Config.cmake.in
-@@ -15,7 +15,7 @@ endif(NOT POLKITQT-1_INSTALL_DIR)
- 
- set(POLKITQT-1_INCLUDE_DIR              "@INCLUDE_INSTALL_DIR@/polkit-qt-1")
- set(POLKITQT-1_LIB_DIR                  "@LIB_INSTALL_DIR@")
--set(POLKITQT-1_POLICY_FILES_INSTALL_DIR "${POLKITQT-1_INSTALL_DIR}/share/polkit-1/actions")
-+set(POLKITQT-1_POLICY_FILES_INSTALL_DIR "share/polkit-1/actions")
- 
- # Compatibility
- if(WIN32)
--- 
-1.7.3.2
-
diff --git a/pkgs/desktops/kde-4.6/support/qca2/default.nix b/pkgs/desktops/kde-4.6/support/qca2/default.nix
deleted file mode 100644
index a55f7c8cb431..000000000000
--- a/pkgs/desktops/kde-4.6/support/qca2/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{stdenv, fetchurl, which, qt4}:
-
-stdenv.mkDerivation {
-  name = "qca-2.0.2";
-  src = fetchurl {
-    url = http://delta.affinix.com/download/qca/2.0/qca-2.0.2.tar.bz2;
-    sha256 = "49b5474450104a2298747c243de1451ab7a6aeed4bf7df43ffa4b7128a2837b8";
-  };
-  buildInputs = [ which qt4 ];
-  preBuild = ''
-    sed -i include/QtCrypto/qca_publickey.h -e '/EMSA3_Raw/a,\
-            EMSA3_SHA224,     ///< SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA256,     ///< SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA384,     ///< SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
-            EMSA3_SHA512      ///< SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding'
-  '';
-  meta = with stdenv.lib; {
-    description = "Qt Cryptographic Architecture";
-    license = "LGPL";
-    homepage = http://delta.affinix.com/qca;
-    maintainers = [ maintainers.sander maintainers.urkud ];
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/toys/amor.nix b/pkgs/desktops/kde-4.6/toys/amor.nix
deleted file mode 100644
index 2c68ffe6fa80..000000000000
--- a/pkgs/desktops/kde-4.6/toys/amor.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE creature for your desktop";
-    kde = {
-      name = "amor";
-      module = "kdetoys";
-      version = "2.4.0";
-      release = "4.5.90";
-      versionFile = "src/version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/toys/kteatime.nix b/pkgs/desktops/kde-4.6/toys/kteatime.nix
deleted file mode 100644
index 14cfcd07f589..000000000000
--- a/pkgs/desktops/kde-4.6/toys/kteatime.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE utility for making a fine cup of tea";
-    kde = {
-      name = "kteatime";
-      module = "kdetoys";
-      version = "1.2.1";
-      release = "4.5.90";
-      versionFile = "src/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/toys/ktux.nix b/pkgs/desktops/kde-4.6/toys/ktux.nix
deleted file mode 100644
index af280761865d..000000000000
--- a/pkgs/desktops/kde-4.6/toys/ktux.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, kdebase_workspace }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 kdebase_workspace ];
-
-  meta = {
-    description = "Tux Screen Saver";
-    kde = {
-      name = "ktux";
-      module = "kdetoys";
-      version = "1.0.1";
-      release = "4.5.90";
-      versionFile = "src/sprite.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/ark.nix b/pkgs/desktops/kde-4.6/utils/ark.nix
deleted file mode 100644
index eb78b2fe0109..000000000000
--- a/pkgs/desktops/kde-4.6/utils/ark.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, libarchive, xz, automoc4, qjson,
-  kdebase }:
-
-kde.package {
-  patchPhase = "cp -vn ${qjson}/share/apps/cmake/modules/FindQJSON.cmake cmake/modules";
-
-  buildInputs = [ cmake qt4 perl libarchive xz kdelibs automoc4 qjson
-    kdebase # for libkonq
-    ];
-
-  meta = {
-    description = "KDE Archiving Tool";
-    kde = {
-      name = "ark";
-      module = "kdeutils";
-      version = "2.15";
-      release = "4.5.90";
-      versionFile = "app/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/kcalc.nix b/pkgs/desktops/kde-4.6/utils/kcalc.nix
deleted file mode 100644
index dd8e6f47cdc2..000000000000
--- a/pkgs/desktops/kde-4.6/utils/kcalc.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, perl, kdelibs, qt4, automoc4, gmp }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 gmp ];
-
-  meta = {
-    description = "KDE Calculator";
-    kde = {
-      name = "kcalc";
-      module = "kdeutils";
-      version = "2.7";
-      release = "4.5.90";
-      versionFile = "version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/kcharselect.nix b/pkgs/desktops/kde-4.6/utils/kcharselect.nix
deleted file mode 100644
index 9952a5fa018d..000000000000
--- a/pkgs/desktops/kde-4.6/utils/kcharselect.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE character selection utility";
-    kde = {
-      name = "kcharselect";
-      module = "kdeutils";
-      version = "1.7";
-      release = "4.5.90";
-      versionFile = "main.cc";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/kdf.nix b/pkgs/desktops/kde-4.6/utils/kdf.nix
deleted file mode 100644
index 9e07ac65a76f..000000000000
--- a/pkgs/desktops/kde-4.6/utils/kdf.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE free disk space utility";
-    kde = {
-      name = "kdf";
-      module = "kdeutils";
-      version = "0.11";
-      release = "4.5.90";
-      versionFile = "kdf.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/kfloppy.nix b/pkgs/desktops/kde-4.6/utils/kfloppy.nix
deleted file mode 100644
index e4d32387a999..000000000000
--- a/pkgs/desktops/kde-4.6/utils/kfloppy.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "Helps you format floppies with the filesystem of your choice";
-    kde = {
-      name = "kfloppy";
-      module = "kdeutils";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/kgpg.nix b/pkgs/desktops/kde-4.6/utils/kgpg.nix
deleted file mode 100644
index 317bc384723c..000000000000
--- a/pkgs/desktops/kde-4.6/utils/kgpg.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4, kdepimlibs }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 kdepimlibs ];
-
-  meta = {
-    description = "Simple KDE GUI for gpg";
-    kde = {
-      name = "kgpg";
-      module = "kdeutils";
-      version = "2.4.1";
-      release = "4.5.90";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/kremotecontrol.nix b/pkgs/desktops/kde-4.6/utils/kremotecontrol.nix
deleted file mode 100644
index 9d6cd6ed61ee..000000000000
--- a/pkgs/desktops/kde-4.6/utils/kremotecontrol.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4, kdebase_workspace }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 kdebase_workspace ];
-
-  meta = {
-    description = "KDE remote control";
-    kde = {
-      name = "kremotecontrol";
-      module = "kdeutils";
-      version = "4.5.90";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/ktimer.nix b/pkgs/desktops/kde-4.6/utils/ktimer.nix
deleted file mode 100644
index 069985d70252..000000000000
--- a/pkgs/desktops/kde-4.6/utils/ktimer.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE Timer";
-    kde = {
-      name = "ktimer";
-      module = "kdeutils";
-      version = "0.6";
-      release = "4.5.90";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/kwallet.nix b/pkgs/desktops/kde-4.6/utils/kwallet.nix
deleted file mode 100644
index 395fe1da4486..000000000000
--- a/pkgs/desktops/kde-4.6/utils/kwallet.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "KDE Wallet (password storage) management tool";
-    kde = {
-      name = "kwallet";
-      module = "kdeutils";
-      version = "1.6";
-      release = "4.5.90";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/okteta.nix b/pkgs/desktops/kde-4.6/utils/okteta.nix
deleted file mode 100644
index 06343e7c0af4..000000000000
--- a/pkgs/desktops/kde-4.6/utils/okteta.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4, shared_mime_info, qca2 }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 shared_mime_info qca2 ];
-
-  meta = {
-    description = "KDE byte editor";
-    kde = {
-      name = "okteta";
-      module = "kdeutils";
-      version = "0.5.2";
-      release = "4.5.90";
-      versionFile = "program/about.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/printer-applet.nix b/pkgs/desktops/kde-4.6/utils/printer-applet.nix
deleted file mode 100644
index 92f6308b6238..000000000000
--- a/pkgs/desktops/kde-4.6/utils/printer-applet.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ kde, cmake, kdelibs, qt4, perl, automoc4
-, python, sip, pyqt4, pycups, rhpl, system_config_printer, kdebindings,
-  pythonDBus, makeWrapper }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 python sip pyqt4 pycups rhpl
-    system_config_printer kdebindings makeWrapper pythonDBus ];
-
-  postInstall="wrapProgram $out/bin/printer-applet --set PYTHONPATH $PYTHONPATH";
-
-  meta = {
-    description = "KDE printer applet";
-    longDescription = "Applet to view current print jobs and configure new printers";
-    kde = {
-      name = "printer-applet";
-      module = "kdeutils";
-      version = "1.5";
-      release = "4.5.90";
-      versionFile = "printer-applet.py";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/superkaramba.nix b/pkgs/desktops/kde-4.6/utils/superkaramba.nix
deleted file mode 100644
index 75ed3bc0eed5..000000000000
--- a/pkgs/desktops/kde-4.6/utils/superkaramba.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kde, cmake, perl, kdelibs, qt4, automoc4, qimageblitz, python }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 qimageblitz python ];
-
-  cmakeFlags = "-DBUILD_icons=TRUE -DBULD_plasma=TRUE";
-
-  meta = {
-    description = "A KDE Eye-candy Application";
-    kde = {
-      name = "superkaramba";
-      module = "kdeutils";
-      version = "0.55";
-      release = "4.5.90";
-      versionFile = "src/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/utils/sweeper.nix b/pkgs/desktops/kde-4.6/utils/sweeper.nix
deleted file mode 100644
index 9e702ff708cb..000000000000
--- a/pkgs/desktops/kde-4.6/utils/sweeper.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, perl, kdelibs, qt4, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 ];
-
-  meta = {
-    description = "Helps clean unwanted traces the user leaves on the system";
-    kde = {
-      name = "sweeper";
-      module = "kdeutils";
-      version = "1.5";
-      release = "4.5.90";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/webdev/kfilereplace.nix b/pkgs/desktops/kde-4.6/webdev/kfilereplace.nix
deleted file mode 100644
index e428f3597834..000000000000
--- a/pkgs/desktops/kde-4.6/webdev/kfilereplace.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, libxml2, libxslt }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 libxml2 libxslt ];
-
-  meta = {
-    description = "Batch search and replace tool";
-    homepage = http://www.kdewebdev.org;
-    kde = {
-      name = "kfilereplace";
-      module = "kdewebdev";
-      version = "0.1";
-      release = "4.5.90";
-      versionFile = "main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/webdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.6/webdev/kimagemapeditor.nix
deleted file mode 100644
index a3ae85a8f167..000000000000
--- a/pkgs/desktops/kde-4.6/webdev/kimagemapeditor.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, libxml2, libxslt }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 libxml2 libxslt ];
-
-  meta = {
-    description = "An HTML imagemap editor";
-    homepage = http://www.nongnu.org/kimagemap/;
-    kde = {
-      name = "kimagemapeditor";
-      module = "kdewebdev";
-      version = "3.9.0";
-      release = "4.5.90";
-      versionFile = "version.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/webdev/klinkstatus.nix b/pkgs/desktops/kde-4.6/webdev/klinkstatus.nix
deleted file mode 100644
index 7c419a572d3d..000000000000
--- a/pkgs/desktops/kde-4.6/webdev/klinkstatus.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, libxml2, libxslt, kdepimlibs, boost, htmlTidy,
-  ruby }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 libxml2 libxslt kdepimlibs boost
-    htmlTidy ruby ];
-
-  meta = {
-    description = "A KDE link checker";
-    homepage = http://klinkstatus.kdewebdev.org;
-    kde = {
-      name = "klinkstatus";
-      module = "kdewebdev";
-      version = "0.7.0";
-      release = "4.5.90";
-      versionFile = "src/main.cpp";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/webdev/kommander.nix b/pkgs/desktops/kde-4.6/webdev/kommander.nix
deleted file mode 100644
index c450e1d7810a..000000000000
--- a/pkgs/desktops/kde-4.6/webdev/kommander.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, kdelibs, automoc4, libxml2, libxslt }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 libxml2 libxslt ];
-
-  meta = {
-    description = "A graphical editor of scripted dialogs";
-    kde = {
-      name = "kommander";
-      module = "kdewebdev";
-      version = "1.91";
-      release = "4.5.90";
-      versionFile = "lib/kommanderversion.h";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.7/default.nix b/pkgs/desktops/kde-4.7/default.nix
new file mode 100644
index 000000000000..219d0e97ec50
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/default.nix
@@ -0,0 +1,58 @@
+{ callPackage, callPackageOrig, stdenv, qt47 }:
+
+let
+  release = "4.7.0";
+
+  # Need callPackageOrig to avoid infinite cycle
+  kde = callPackageOrig ./kde-package {
+    inherit release ignoreList extraSubpkgs callPackage;
+  };
+
+  # The list of igored individual modules
+  ignoreList = {
+    # kdeadmin/strigi-analyzer has no real code
+    kdeadmin = [ "strigi-analyzer" ];
+    # kdesdk/kioslave is splitted into kioslave-svn and kioslave-git
+    kdesdk = [ "kioslave" ];
+    # Most of kdebindings do not compile due to a bug in the buildsystem
+    kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" "perlqt"
+      "qtruby" "qyoto" "smokekde" ];
+  };
+
+  # Extra subpackages in the manifest format
+  extraSubpkgs = {
+    kdesdk =
+      [
+      {
+        name = "kioslave-svn";
+        sane = "kioslave_svn";
+        subdir = "kioslave";
+      }
+      {
+        name = "kioslave-perldoc";
+        sane = "kioslave_perldoc";
+        subdir = "kioslave";
+      }
+      ];
+  };
+
+in
+
+kde.modules // kde.individual //
+{
+  inherit (kde) manifest modules individual splittedModuleList;
+  recurseForRelease = true;
+
+  akonadi = callPackage ./support/akonadi { };
+  soprano = callPackage ./support/soprano { };
+
+  qt4 = qt47;
+
+  kdebase_workspace = kde.individual.kde_workspace;
+
+  inherit release;
+
+  full = stdenv.lib.attrValues kde.modules;
+
+  l10n = callPackage ./l10n { inherit release; };
+}
diff --git a/pkgs/desktops/kde-4.7/files/polkit-install.patch b/pkgs/desktops/kde-4.7/files/polkit-install.patch
new file mode 100644
index 000000000000..d2ecac663ec5
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/files/polkit-install.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake
+--- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake	2011-05-20 22:24:54.000000000 +0200
++++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake	2011-07-12 14:03:00.000000000 +0200
+@@ -139,7 +139,7 @@
+         ${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
+         ${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
+ 
+-    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING 
++    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING 
+         "Where policy files generated by KAuth will be installed" FORCE)
+ elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
+     set (KAUTH_COMPILING_FAKE_BACKEND TRUE)
diff --git a/pkgs/desktops/kde-4.7/kde-package/4.7.0.nix b/pkgs/desktops/kde-4.7/kde-package/4.7.0.nix
new file mode 100644
index 000000000000..b3192fadb8ba
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-package/4.7.0.nix
@@ -0,0 +1 @@
+{stable=true;hashes=builtins.listToAttrs[{name="blinken";value="1g4vpwbal6d7ypmq6l8dh17gi249cd261hsa4bjkvb0wx88i66qr";}{name="cantor";value="0xb4xja9ab4kzgzpikhlkrl68287lqdigvl6pzbh9m6g0ghlp697";}{name="gwenview";value="14a1mjcfcw4nq2c5qkvca8mgdrr31gm24l9nlkcj7p8yrpkxfykh";}{name="kalgebra";value="140528rn3zx489g1lawr1n19i3rrc58h2ii8gh46dnlfcgig13bb";}{name="kalzium";value="1vfa9kdxrdfqqfad0dp2pwi919qs5pbgdk7jmi4dccwlhgmv3226";}{name="kamera";value="02g3mh14rfyrmpa3r8m5pqzxhs4kdb3xvg34434g9r51v3am3ypk";}{name="kanagram";value="04hv13mij4kg8bifs690q4qxr4qk7dnviihlc297x434l0iz2spd";}{name="kate";value="0bd0b354a7cx8cmw2d5pbqn0an38xls86454gclyjd1ilr3l41m9";}{name="kbruch";value="169c6xq0jvp9cv6p9ypk8sryxsh711xdgbs02yiqd476ykavj3jv";}{name="kcolorchooser";value="1f7nj9ccvf1bg3nnm7xchaqvfnskkbnd1h2xd5fxmj9fz1195kqv";}{name="kdeaccessibility";value="01qx0w5dylkbxchj5kg9iawdc0rjbxv1w1dg90ld98fn583g70ws";}{name="kdeadmin";value="1zm6p65wgdn0rv9vzcm89vsiw1696g0bf7kshvwnjmsfc9whsgq3";}{name="kdeartwork";value="12cqpam82k086088i2p1318y1vjr7c8iffppnm6mkbllg2g8ydip";}{name="kde-baseapps";value="0jpi3fjsav52v6ziwdldy03akfpahaagjp3g3m015cmn9bhk2l71";}{name="kdegames";value="1n98jiax7s4m8gb2jq5vdwsg6sfkls7m4mfm627dfsqmvpcgf9k0";}{name="kdegraphics-strigi-analyzer";value="15p0wsiawhygdq9fwp451vcbxbf1sv9pvlwz3x4ma5mp8la7k4vd";}{name="kdegraphics-thumbnailers";value="1gl08an6gzdxvam9fvq5c98zm8m95h6184y0hf0zlqjzkqgg312l";}{name="kdelibs";value="1f0wmcsw0lkfaqdil2yxjfpldr0ckwy5iblkwwaad4n1b4hyssyv";}{name="kdemultimedia";value="0b53vg6gp4qv92w7y721xwbv23bzzljvyl18j05z8ig2l6m57kf5";}{name="kdenetwork";value="1ifg2hxbh80fpszm9r1jzamy65jlkqb6y8fcfa0sngwsklkxn5sh";}{name="kdepim";value="140n4q1rf2jbxmqmkwzam1fipk4k30n3wn9ik8mlqfmxm06dhgqs";}{name="kdepimlibs";value="020irkn43q999idk4kwfi9250fvk98ffi9m998ywgzfl9wps01g0";}{name="kdepim-runtime";value="11ad82hisya8ysx6p1ik6nw1hbyqwksxhimlxcrjkkjh76nphs2g";}{name="kdeplasma-addons";value="1bi7n6lav9z08pvarhsgx9wmm14mr34mvjm4vk9jszrdi7vl2ayj";}{name="kde-runtime";value="1wm91hkj8h1rbavcxwgjfsfrzhr3rs1xd6zf2kxyh1hh9fkdrx3w";}{name="kdesdk";value="04kx9srv8a4z9lic9v3f375rglpz87hhq6wppxksi9qgyc0vzqnv";}{name="kdetoys";value="1ahsk0990a3zx665mjqaljb5w392qkk1pnla5srqg57g62yhig8f";}{name="kdeutils";value="1n031c1i42bq08md156k7fhzw67b28b0a6168m9c9hnhh3483r7l";}{name="kde-wallpapers";value="1xb9k9w479xcwa4caxqn4z1h942lvx7ahy0crxkk41ra3xgw7fg9";}{name="kdewebdev";value="0v8v45rwfldk299ny0jhxqa7xsa1x0ywz7lbqc9i0m3g808ifa29";}{name="kde-workspace";value="0s1l7airb92dd4vprry39nzikarv03qfsmd2j0brif5jjfjd2c3y";}{name="kgamma";value="1xgxnb8x2iy1ikychs8bh5jplkdlk7br6yrmivzrz7s2337dlm35";}{name="kgeography";value="1pm4y5d4d0cl36wgwrkm48yk60m73ljys2awahjsfdpwxs0x42ca";}{name="khangman";value="0ccp1qsji6jjybcbc0rwkw78ypl5kwk1kb74vrnz2ss9anxky2c3";}{name="kig";value="06nk38wg43rxxdzr535vrw4f3d1v9kym5bir6vfpyay8xdxqgf5f";}{name="kimono";value="1p4scmzn0kbkpbrv27658bh56ll9zazaf3rk1p2c6lm6zglvm9gd";}{name="kiten";value="119h7fslp975r0kd7i1zmvhrfrr19rlhm4ni99pd4jxnhz05n47k";}{name="klettres";value="0znca4iqgxlmldyzmd5rf9z2c0jhmmijwxyxaqjffrphq407wms0";}{name="kmplot";value="1zyk3701mhga9d53bm8xyzbw4zn6s9ijfnp0ww2hq9dcm81w12ga";}{name="kolourpaint";value="0ckqz8fmaq92lkaxm87c2nfdjvwp4l310vnicqm2bkkmkma9p6cs";}{name="konsole";value="1apchw8n1k2xyi3h0n3w4fxwy6vx6lxhx7ll3vhfmyl8wa0gzwf5";}{name="korundum";value="1ndhbn6i5napfgp5czsbww1vknss49xhxlj6rn5ci1m5j2zfajic";}{name="kross-interpreters";value="0hzx08r60z9pl7i1hnh6q1zq4s7wmny4015b55prllaa94yb1ya2";}{name="kruler";value="1bydk587las6dx447mihkg7qmn0hn6iis20xfl4wygx7a81imnw3";}{name="ksaneplugin";value="02g4vdgz4k7rahkwss5m1vfv22rzhr6gzmzf79vrbg15mci57jzz";}{name="ksnapshot";value="1dllmx8v2qzkfhy9b3j87yjmkyl3fdkjbmdfqlk5kq2n40k3fha0";}{name="kstars";value="0qgsphimg200kapnjwqh3186z27ypszmhr4knk46jyyczmj2k4nd";}{name="ktouch";value="1w1ps11xazqvvh66v78r714283kd5icvz6dgbh7wfangpqya2g9i";}{name="kturtle";value="0xiz13nb2wgajgm2z105pywi0fcw09appp4k4wbg6nykqdcql0n5";}{name="kwordquiz";value="1rja09mvp7j264ap27m4413dy8l1867ds1w3yizlqlcrl92fby7b";}{name="libkdcraw";value="0dcplib41s5cnv5jjnx2y7d9gd4vls6qlf1vpr1iqsbhrr0az50a";}{name="libkdeedu";value="0nq2b4l5134lkyv0vzfqpp5w7vbr0b6lg88xyjlpih6n9bywiv16";}{name="libkexiv2";value="1fgawizv09vv0almb05sf5f93iqsp3w8x9nx4p9hys66qiz8n467";}{name="libkipi";value="09gpjx4vyncf6js79jf7w4w55lgnzawii40ar7ssrhnxspckbdn0";}{name="libksane";value="1ffwz2g4y12fg8pckz1a0qizziljv17zbn7g1vjf30pw8dpk0x12";}{name="marble";value="0x5yhs28g0z1s9qjmgkdidfp0hmy526l9cmqjccaqn7a61ziv0qz";}{name="mobipocket";value="06qh1xdijc4fscpbxfc7f6mmy1dkxvhx7sb4fmhk2m3z569ir2jx";}{name="okular";value="016xa6i0n1nyq1h9z8nhwc9br9k09l0c2gxhzfd9g6nf528zlbdf";}{name="oxygen-icons";value="1a4dkhay0qrbz9gz2xx3d7vbk18qyjrx9hxgdazjxr35ba6xipgc";}{name="parley";value="0zkj272wrih66mcpr27am9qnp3ab4275is06c8h6hzf5wmfq6sib";}{name="perlkde";value="0pp8ljvck68b45yxhknmyn8z1a1xnq3ahcpz8m6pfch77hlg7fhj";}{name="perlqt";value="0sw1dpxshmmdvp93x59wclslm5xza0yy0f8nmqgdns8c77g0b3k8";}{name="pykde4";value="1mdq474f4jj637k0a9jpb2vcvq4f90vwrhgjs7mqqwmvkh6vv6h0";}{name="qtruby";value="1h7m17d36y5vgaxcqwa814yxmsx19v0xh9m83cq1zznxl62sbmh1";}{name="qyoto";value="1lbdv00hd0s0m5ywjnb52wgz3hb5nx45kwpjkjrjcj1jg76rvk72";}{name="rocs";value="1ma5ylc4rvzjrn1l8rv8684map78zk73fa1a3iz996z1c5fg09wm";}{name="smokegen";value="1g05if9k9ichxlrfly5lha6n2mcihbaz681yg14cjj806s0qs53l";}{name="smokekde";value="0b8kx8a3990l6f7pf252diz7b50r81kxkhigkzkc9lzq833a2siq";}{name="smokeqt";value="0cgjdh9dr4pn1yh423mhifv2yvd283k2mhwkmfn2i0398h71a252";}{name="step";value="1pg7k60rbvr6nfq47xnj98w121703s79z8rap601xrmb8wyfhmyy";}{name="svgpart";value="0xyp4sibcdjxq2ny348m4z95bh71r3q3pm8xfwb1j50my9g8ijir";}];modules=[{module="kdegraphics";split=true;pkgs=[{name="gwenview";}{name="kamera";}{name="kcolorchooser";}{name="kdegraphics-strigi-analyzer";sane="kdegraphics_strigi_analyzer";}{name="kdegraphics-thumbnailers";sane="kdegraphics_thumbnailers";}{name="kgamma";}{name="kolourpaint";}{name="kruler";}{name="ksaneplugin";}{name="ksnapshot";}{name="libkdcraw";}{name="libkexiv2";}{name="libkipi";}{name="libksane";}{name="mobipocket";}{name="okular";}{name="svgpart";}];}{module="kdebase";split=true;pkgs=[{name="kate";}{name="kde-baseapps";sane="kde_baseapps";}{name="kde-runtime";sane="kde_runtime";}{name="kde-workspace";sane="kde_workspace";}{name="konsole";}];}{module="kdeedu";split=true;pkgs=[{name="blinken";}{name="cantor";}{name="kalgebra";}{name="kalzium";}{name="kanagram";}{name="kbruch";}{name="kgeography";}{name="khangman";}{name="kig";}{name="kiten";}{name="klettres";}{name="kmplot";}{name="kstars";}{name="ktouch";}{name="kturtle";}{name="kwordquiz";}{name="libkdeedu";}{name="marble";}{name="parley";}{name="rocs";}{name="step";}];}{module="kdebindings";split=true;pkgs=[{name="kimono";}{name="korundum";}{name="kross-interpreters";sane="kross_interpreters";}{name="perlkde";}{name="perlqt";}{name="pykde4";}{name="qtruby";}{name="qyoto";}{name="smokegen";}{name="smokekde";}{name="smokeqt";}];}{module="kdeaccessibility";split=false;pkgs=[{name="kaccessible";}{name="kmag";}{name="kmouth";}{name="kmousetool";}{name="jovie";}];}{module="kdeadmin";split=false;pkgs=[{name="strigi-analyzer";sane="strigi_analyzer";}{name="kuser";}{name="kcron";}{name="ksystemlog";}{name="system-config-printer-kde";sane="system_config_printer_kde";}];}{module="kdeartwork";split=false;pkgs=[{name="ColorSchemes";}{name="IconThemes";}{name="emoticons";}{name="kscreensaver";}{name="kwin-styles";sane="kwin_styles";}{name="sounds";}{name="styles";}{name="wallpapers";}{name="HighResolutionWallpapers";}{name="WeatherWallpapers";}{name="desktopthemes";}{name="aurorae";}];}{module="kdegames";split=false;}{module="kdelibs";split=false;}{module="kdemultimedia";split=false;}{module="kdenetwork";split=false;pkgs=[{name="kfile-plugins";sane="kfile_plugins";}{name="kget";}{name="kopete";}{name="krdc";}{name="kppp";}{name="krfb";}{name="kdnssd";}{name="filesharing";}];}{module="kdepim";split=false;}{module="kdepimlibs";split=false;}{module="kdepim-runtime";sane="kdepim_runtime";split=false;}{module="kdeplasma-addons";sane="kdeplasma_addons";split=false;}{module="kdesdk";split=false;pkgs=[{name="cervisia";}{name="lokalize";}{name="kdeaccounts-plugin";sane="kdeaccounts_plugin";}{name="dolphin-plugins-svn";sane="dolphin_plugins_svn";subdir="dolphin-plugins/svn";}{name="dolphin-plugins-git";sane="dolphin_plugins_git";subdir="dolphin-plugins/git";}{name="kcachegrind";}{name="kapptemplate";}{name="kpartloader";}{name="strigi-analyzer";sane="strigi_analyzer";}{name="kioslave";}{name="okteta";}{name="kmtrace";}{name="kompare";}{name="kprofilemethod";}{name="kstartperf";}{name="kuiviewer";}{name="poxml";}{name="scripts";}{name="umbrello";}];}{module="kdetoys";split=false;pkgs=[{name="kteatime";}{name="ktux";}{name="amor";}];}{module="kdeutils";split=false;pkgs=[{name="ark";}{name="kcalc";}{name="kremotecontrol";}{name="kdf";}{name="kfloppy";}{name="printer-applet";sane="printer_applet";}{name="filelight";}{name="kcharselect";}{name="kgpg";}{name="ktimer";}{name="kwallet";}{name="sweeper";}{name="superkaramba";}];}{module="kde-wallpapers";sane="kde_wallpapers";split=false;}{module="kdewebdev";split=false;pkgs=[{name="klinkstatus";}{name="kfilereplace";}{name="kimagemapeditor";}{name="kommander";}];}{module="oxygen-icons";sane="oxygen_icons";split=false;}];}
\ No newline at end of file
diff --git a/pkgs/desktops/kde-4.7/kde-package/default.nix b/pkgs/desktops/kde-4.7/kde-package/default.nix
new file mode 100644
index 000000000000..cd1cd5be9b97
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-package/default.nix
@@ -0,0 +1,120 @@
+{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake, automoc4
+, release, ignoreList, extraSubpkgs
+}:
+
+let
+  inherit (stdenv.lib) filter fold;
+  inherit (builtins) getAttr hasAttr remoteAttrs listToAttrs tail head;
+in
+rec {
+  manifest = import (./. + "/${release}.nix");
+
+  # src attribute for $name tarball
+  kdesrc = name: fetchurl {
+    url = "mirror://kde/" + (if manifest.stable then "" else "un")
+      + "stable/${release}/src/${name}-${release}.tar.bz2";
+    sha256 = getAttr name manifest.hashes;
+  };
+
+  # Default meta attribute
+  defMeta = {
+    homepage = http://www.kde.org;
+    inherit (qt4.meta) platforms maintainers;
+  };
+
+  # KDE package built from the whole tarball
+  # This function is used both for monolithic modules and modules which are
+  # released as individual tarballs
+  kdeMonoPkg = name: let n_ = name; in a@{meta, name ? n_, ...}:
+    stdenv.mkDerivation ({
+        name = "${name}-${release}";
+        src = kdesrc name;
+        meta = defMeta // meta;
+      } // (removeAttrs a [ "meta" "name" ]));
+
+  # kdeMonoPkg wrapper for modules splitted upstream. Used in TODO
+  kdeSplittedPkg = module: {name, sane ? name}: kdeMonoPkg name;
+
+  # Build subdirectory ${subdir} of tarball ${module}-${release}.tar.bz2
+  kdeSubdirPkg = module:
+    {name, subdir ? name, sane ? name}:
+    let name_ = name; in
+    a@{cmakeFlags ? [], name ? name_, ...}:
+    stdenv.mkDerivation ({
+      name = "${name}-${release}";
+      src = kdesrc module;
+      cmakeFlags = ["-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE"
+      "-DBUILD_doc=TRUE" "-DBUILD_${subdir}=TRUE"] ++ cmakeFlags;
+    } // (removeAttrs a [ "cmakeFlags" ]));
+
+  # A KDE monolithic module
+  kdeMonoModule = name: path: callPackage path { kde = kdeMonoPkg name; };
+
+  # Combine packages in one module.
+  # Arguments:
+  #  * pkgFun --- a function of the following signature:
+  #               module: manifest_attrs: manual_attrs: derivation;
+  #  * module --- name of the module
+  #  * pkgs --- list of packages in manifest format
+  combinePkgs = pkgFun: module: pkgs:
+    let
+      f = p@{name, ...}:
+        callPackage (./.. + "/${module}/${name}.nix") { kde = pkgFun module p; };
+      list = map f pkgs;
+      attrs = listToAttrs (map
+        ({name, sane ? name, ...}@p: { name = sane; value = f p; })
+        pkgs);
+    in
+      runCommand "${module}-${release}"
+      ({passthru = attrs // {
+         propagatedUserEnvPackages = list;
+         projects = attrs;
+       };})
+        ''
+          mkdir -pv $out/nix-support
+          echo "${toString list}" | tee $out/nix-support/propagated-user-env-packages
+        '';
+
+  # Given manifest module data, return the module
+  kdeModule = { module, sane ? module, split, pkgs ? [] }:
+    let
+      pkgs_ = filterPkgs module pkgs;
+    in
+    # Module is splitted by upstream
+    if split then combinePkgs kdeSplittedPkg module pkgs_
+    # Monolithic module
+    else if pkgs == [] then kdeMonoModule module (./.. + "/${module}.nix")
+    # Module is splitted by us
+    else combinePkgs kdeSubdirPkg module pkgs_;
+
+  # The same, as nameValuePair with sane name
+  kdeModuleNV = a@{ module, sane ? module, ... }:
+    { name = sane; value = kdeModule a; };
+
+  filterPkgs = module: (p:
+      removeNames (stdenv.lib.attrByPath [module] [] ignoreList) p
+      ++ (stdenv.lib.attrByPath [module] [] extraSubpkgs));
+
+  # Remove attrsets with x.name in subst. Optimized for empty subst.
+  removeNames = subst: big:
+    fold (s: out: filter (x: x.name != s) out) big subst;
+
+  modules = listToAttrs (map kdeModuleNV manifest.modules);
+
+  splittedModuleList =
+    let
+      splitted = filter (a: a ? pkgs) manifest.modules;
+      names = map ({module, sane ? module, ...}: sane) splitted;
+    in
+    map (m: m.projects) (stdenv.lib.attrVals names modules);
+
+  individual =
+    stdenv.lib.zipAttrsWith
+    (
+      name: list:
+      if tail list == []
+      then head list
+      else abort "Multiple modules define ${name}"
+    )
+    splittedModuleList;
+}
diff --git a/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh
new file mode 100755
index 000000000000..10ce57cee6af
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh
@@ -0,0 +1,141 @@
+#!/usr/bin/env bash
+
+# Usage: download kde release to $dir, then run
+# $0 $dir
+
+dir="$1"
+
+# Detect release number & whether it is a stable release
+if [[ ! -d "${dir}" ]]; then
+  echo "${dir} is not a directory (or doesn't exist)!" >&2
+  exit 1
+fi
+
+release=$(ls "${dir}"/kdelibs-*.tar.bz2 | \
+  sed -e 's/.*kdelibs-//' -e 's/\.tar\.bz2//')
+
+if [[ ${release##*.} -gt 50 ]]; then
+  stable="false"
+else
+  stable="true"
+fi
+
+echo "Detected release ${release}" >&2
+
+declare -A hash
+declare -A modules
+declare -a packages
+declare -a top_level
+
+# xsltproc output declares -A module
+if [[ ! -f kde_projects.xml ]]; then
+  curl -O -J http://projects.kde.org/kde_projects.xml
+fi
+eval `xsltproc kde-submodules.xslt kde_projects.xml`
+
+print_sane() {
+  echo "Called print_sane $1" >&2
+  sane="${1//[^a-z0-9_]/_}"
+  if [[ "$sane" != "$1" ]]; then
+    echo "Sane version is $sane" >&2
+    echo -n "sane=\"$sane\";"
+  fi
+}
+
+for i in `cd "${dir}"; ls *-${release}.tar.bz2`; do
+  package=${i%-${release}.tar.bz2}
+  packages+=( "$package" )
+  echo -n "${package}.. " >&2
+  hash[$package]=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
+  echo -n ${hash[$package]} >&2
+
+  if [ -n "${module[$package]}" ]; then
+    m="${module[$package]}"
+    echo " (${m})" >&2
+    modules[$m]=1
+  else
+    top_level+=( "$package" )
+    echo " (top-level)" >&2
+  fi
+  #nix-store --add-fixed sha256 "${dir}/${i}" >&2
+done
+
+
+print_pkg_hash() {
+  echo -n "{name=\"${1}\";value=\"${hash[$1]}\";}"
+}
+
+print_hashes(){
+  echo -n "hashes=builtins.listToAttrs["
+  for p in "${packages[@]}"; do print_pkg_hash "$p"; done
+  echo -n "];"
+}
+
+print_split_module(){
+  echo -n "$1:" >&2
+  echo -n "{module=\"$1\";"
+  print_sane "$1"
+  echo -n "split=true;"
+  echo -n "pkgs=["
+  for p in "${packages[@]}"; do
+    if [[ "${module[$p]}" == "$1" ]]; then
+      echo -n "{name=\"$p\";"
+      print_sane "$p"
+      echo -n "}"
+      echo -n " $p" >&2
+    fi
+  done
+  echo -n "];}"
+  echo >&2
+}
+
+print_mono_module(){
+  echo -n "{module=\"$1\";"
+  print_sane "$1"
+  echo -n "$1 ... " >&2
+  echo -n "split=false;"
+  cml="$1-$release/CMakeLists.txt"
+  tar -xf "${dir}/$1-${release}.tar.bz2" "$cml"
+  if grep '^[^#]*add_subdirectory' $cml >/dev/null; then
+    if grep '^[^#]*add_subdirectory' $cml | grep -v macro_optional_add_subdirectory >/dev/null; then
+      echo " is monolithic (has unconditionally added subdirs)" >&2
+    else
+      subdirs=( `grep '^[^#]*add_subdirectory' $cml |
+        sed -e 's/[^#]*add_subdirectory *( *\(.*\) *)/\1/' |
+        grep -v '\(doc\|cmake\)'` )
+      echo " seems splittable, subdirs: ${subdirs[*]}" >&2
+      echo -n "pkgs=["
+      for s in "${subdirs[@]}"; do
+        echo -n "{name=\"${s//\//-}\";"
+        print_sane "$s"
+        if [[ $s != "${s//\//-}" ]]; then
+          echo -n "subdir=\"$s\";"
+        fi
+        echo -n "}"
+      done
+    echo -n "];"
+    fi
+  else
+    echo " is monolithic (has no subdirs)" >&2
+  fi
+  rm $cml
+  rmdir $1-$release
+  echo -n "}"
+}
+
+print_modules(){
+  echo -n "modules=["
+  echo "Printing modules splitted by upstream" >&2
+  for m in "${!modules[@]}"; do print_split_module "$m"; done
+  echo >&2
+  echo "Printing modules not splitted by upstream (${top_level[*]})" >&2
+  for m in "${top_level[@]}"; do print_mono_module "$m"; done
+  echo -n "];"
+}
+
+echo "Writing ${release}.nix" >&2
+exec > "${release}.nix"
+echo -n "{stable=${stable};"
+print_hashes
+print_modules
+echo -n "}"
diff --git a/pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt b/pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt
new file mode 100644
index 000000000000..952a05a9d274
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-package/kde-submodules.xslt
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- xslt file for http://projects.kde.org/kde_projects.xml -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+	<xsl:output method="text" />
+	<xsl:template match="/">
+		<xsl:for-each select="kdeprojects/component[@identifier='kde']">
+			<xsl:text>declare -A module
</xsl:text>
+			<xsl:for-each select="module">
+				<xsl:variable name="module" select='@identifier' />
+				<xsl:for-each select=".//project[repo]">
+					<xsl:text>module["</xsl:text>
+					<xsl:value-of select='@identifier' />
+					<xsl:text>"]="</xsl:text>
+					<xsl:value-of select="$module" />
+					<xsl:text>"
</xsl:text>
+				</xsl:for-each>
+			</xsl:for-each>
+		</xsl:for-each>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/pkgs/desktops/kde-4.7/kde-wallpapers.nix b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
new file mode 100644
index 000000000000..60298e567fbc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-wallpapers.nix
@@ -0,0 +1,14 @@
+{ kde, kdelibs }:
+
+kde {
+
+  buildInputs = [ kdelibs ];
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "29f4e8b24435ee8c64affdc6250f59ed9f78445118fe0a4e216d89969dd2006b";
+
+  meta = {
+    description = "Wallpapers for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix
new file mode 100644
index 000000000000..d38c80c4c36a
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/jovie.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, speechd }:
+
+kde {
+  buildInputs = [ kdelibs speechd ];
+
+  meta = {
+    description = "Text-to-speech synthesis daemon";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix
new file mode 100644
index 000000000000..98fae7c983f8
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kaccessible.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, speechd }:
+
+kde {
+  buildInputs = [ kdelibs speechd ];
+
+  meta = {
+    description = "Bridge that provides accessibility services to applications";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix
new file mode 100644
index 000000000000..f3b27dacf672
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kmag.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Screen magnifier for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix
new file mode 100644
index 000000000000..42306049c5d5
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kmousetool.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs libXtst ];
+
+  meta = {
+    description = "A program that clicks the mouse for you";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix b/pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix
new file mode 100644
index 000000000000..4159501967cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeaccessibility/kmouth.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A type-and-say front end for speech synthesizers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeadmin/kcron.nix b/pkgs/desktops/kde-4.7/kdeadmin/kcron.nix
new file mode 100644
index 000000000000..bada0c1cb108
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeadmin/kcron.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix b/pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix
new file mode 100644
index 000000000000..bada0c1cb108
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeadmin/ksystemlog.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdeadmin/kuser.nix b/pkgs/desktops/kde-4.7/kdeadmin/kuser.nix
new file mode 100644
index 000000000000..571674a461ad
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeadmin/kuser.nix
@@ -0,0 +1,5 @@
+{ kde, kdelibs, kdepimlibs }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdeadmin/system-config-printer-kde.nix b/pkgs/desktops/kde-4.7/kdeadmin/system-config-printer-kde.nix
new file mode 100644
index 000000000000..2c462f67c159
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeadmin/system-config-printer-kde.nix
@@ -0,0 +1,33 @@
+{ kde, pkgconfig, pythonPackages, sip, pycups, pygobject, system_config_printer,
+  kdelibs, kdepimlibs, pykde4, cups, nettools }:
+
+let s_c_p = system_config_printer.override { withGUI = false; }; in
+kde {
+  buildInputs = [ kdelibs kdepimlibs pythonPackages.python pycups pykde4 sip
+    pygobject s_c_p ];
+
+  passthru = { system_config_printer = s_c_p; };
+
+  preConfigure =
+    ''
+      for i in system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py system-config-printer-kde/system-config-printer-kde.py; do
+        substituteInPlace $i \
+          --replace /usr/share/system-config-printer ${s_c_p}/share/system-config-printer \
+          --replace /usr/bin/cupstestppd ${cups}/bin/cupstestppd \
+          --replace /bin/hostname ${nettools}/bin/hostname
+      done
+    '';
+
+  postInstall =
+    ''
+      # Bake the required Python path into the printer configuration program.
+      res=
+      for i in $(IFS=:; echo $PYTHONPATH); do res="$res''${res:+,} '$i'"; done
+
+      sed -i $out/share/apps/system-config-printer-kde/system-config-printer-kde.py \
+          -e "1 a import sys\nsys.path = [$res] + sys.path"
+
+      mkdir -p $out/nix-support
+      echo ${pykde4} > $out/nix-support/propagated-user-env-packages
+    '';
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix b/pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix
new file mode 100644
index 000000000000..acccf66976fc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/ColorSchemes.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kde-color-schemes";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE color schemes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.6/artwork/FindXscreensaver.cmake b/pkgs/desktops/kde-4.7/kdeartwork/FindXscreensaver.cmake
index 499ed75268e9..499ed75268e9 100644
--- a/pkgs/desktops/kde-4.6/artwork/FindXscreensaver.cmake
+++ b/pkgs/desktops/kde-4.7/kdeartwork/FindXscreensaver.cmake
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix b/pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix
new file mode 100644
index 000000000000..edffca1562e1
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/HighResolutionWallpapers.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-wallpapers-high-resolution";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE wallpapers in high resolution";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix b/pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix
new file mode 100644
index 000000000000..43071e8bd142
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/IconThemes.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kdeartwork-icon-themes";
+
+  # Sources contain primary and kdeclassic as well but they're not installed
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE nuvola and mono icon themes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix b/pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix
new file mode 100644
index 000000000000..947e5e17ab0c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/WeatherWallpapers.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-weather-wallpapers";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE wallpapers (weather)";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix b/pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix
new file mode 100644
index 000000000000..4bce95217cc6
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/aurorae.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "aurorae-themes";
+
+  buildInputs = [ kdelibs ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix b/pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix
new file mode 100644
index 000000000000..93dd361af738
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/desktopthemes.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kde-desktop-themes";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE desktop themes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix b/pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix
new file mode 100644
index 000000000000..5ef9f78a7195
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/emoticons.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+  name = "kde-emotion-icons";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE emotion icons (smiles)";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
new file mode 100644
index 000000000000..cc195c8de903
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/kscreensaver.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, xscreensaver, kde_workspace, eigen, libkexiv2 }:
+
+kde {
+  buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 ];
+
+  preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
+
+  cmakeFlags = [ "-DBUILD_asciiquarium:BOOL=ON" ];
+
+  meta = {
+    description = "KDE screensavers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix b/pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix
new file mode 100644
index 000000000000..b5d769b216db
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/kwin-styles.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kde_workspace }:
+
+kde {
+  buildInputs = [ kdelibs kde_workspace ];
+
+  meta = {
+    description = "Styles for KWin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/sounds.nix b/pkgs/desktops/kde-4.7/kdeartwork/sounds.nix
new file mode 100644
index 000000000000..e98705da889e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/sounds.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-sounds";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "New login/logout sounds";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/styles.nix b/pkgs/desktops/kde-4.7/kdeartwork/styles.nix
new file mode 100644
index 000000000000..6a1306c37100
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/styles.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-style-phase";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Phase, a widget style for KDE";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix b/pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix
new file mode 100644
index 000000000000..611c6a70f6bc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeartwork/wallpapers.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde rec {
+  name = "kde-wallpapers";
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Additional KDE wallpapers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/kate.nix b/pkgs/desktops/kde-4.7/kdebase/kate.nix
new file mode 100644
index 000000000000..1ffbcf9ebf98
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/kate.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Kate, the KDE Advanced Text Editor, as well as KWrite";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix b/pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix
new file mode 100644
index 000000000000..45192e0c4600
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/kde-baseapps.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, shared_desktop_ontologies, glib, htmlTidy }:
+
+kde {
+  buildInputs = [ kdelibs shared_desktop_ontologies glib htmlTidy ];
+
+  meta = {
+    description = "Base KDE applications, including the Dolphin file manager and Konqueror web browser";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix b/pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix
new file mode 100644
index 000000000000..b8a4a21cc730
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/kde-runtime.nix
@@ -0,0 +1,22 @@
+{ kde, kdelibs, shared_desktop_ontologies, bzip2, xz, libssh, exiv2, attica,
+  libcanberra, virtuoso, makeWrapper, samba
+}:
+
+# TODO: Re-enable ntrack once it is fixed upstream
+
+kde {
+  buildInputs =
+    [ kdelibs shared_desktop_ontologies bzip2 xz libssh exiv2 attica virtuoso
+      makeWrapper samba (libcanberra.override { gtk = null; })
+    ];
+
+# Copied from kde45, Nepomuk needs it.
+  postInstall = ''
+    wrapProgram "$out/bin/nepomukservicestub" --prefix LD_LIBRARY_PATH : "${virtuoso}/lib" \
+        --prefix PATH : "${virtuoso}/bin"
+  '';
+
+  meta = {
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/kde-workspace.nix b/pkgs/desktops/kde-4.7/kdebase/kde-workspace.nix
new file mode 100644
index 000000000000..55c243f60dd9
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/kde-workspace.nix
@@ -0,0 +1,32 @@
+{ kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, shared_desktop_ontologies,
+  lm_sensors, pciutils, libraw1394, libusb, libxklavier, python, libqalculate,
+  consolekit, xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi,
+  pykde4
+}:
+
+kde {
+
+  buildInputs =
+    [ kdelibs qimageblitz libdbusmenu_qt pykde4
+      xorg.libxkbfile xorg.libXcomposite xorg.libXScrnSaver xorg.libXtst
+      xorg.libXcomposite xorg.libXdamage xorg.libXau xorg.libXdmcp
+      xorg.libpthreadstubs
+      boost gpsd shared_desktop_ontologies lm_sensors pciutils libraw1394
+      libusb python libqalculate consolekit kdepimlibs pam prison akonadi
+    ];
+
+  preConfigure =
+   ''
+     # Fix incorrect path to kde4-config.
+     substituteInPlace startkde.cmake --replace '$bindir/kde4-config' ${kdelibs}/bin/kde4-config
+
+     # Fix the path to the keyboard configuration files.
+     substituteInPlace kcontrol/keyboard/xkb_rules.cpp \
+       --replace /usr/share/X11 ${xkeyboard_config}/etc/X11
+   '';
+
+  meta = {
+    description = "KDE workspace components such as Plasma, Kwin and System Settings";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebase/konsole.nix b/pkgs/desktops/kde-4.7/kdebase/konsole.nix
new file mode 100644
index 000000000000..87ac24972bdb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebase/konsole.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs }:
+
+kde {
+
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Konsole, the KDE terminal emulator";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix
new file mode 100644
index 000000000000..13c145f32753
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/perlqt.nix
@@ -0,0 +1,10 @@
+{ kde, cmake, smokeqt, perl }:
+
+kde {
+  buildInputs = [ smokeqt perl ];
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    description = "Perl bindings for Qt library";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch b/pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch
new file mode 100644
index 000000000000..dfc2c886bba3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/pykde-purity.patch
@@ -0,0 +1,49 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c853e38..5df3253 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -73,7 +73,7 @@ INCLUDE_DIRECTORIES(
+     ${QT_QTWEBKIT_INCLUDE_DIR}
+     ${KDE4_INCLUDE_DIR}
+     ${KDE4_INCLUDE_DIR}/solid
+-    ${KDE4_INCLUDE_DIR}/phonon
++	${PHONON_INCLUDE_DIR}/phonon
+     ${KDE4_INCLUDE_DIR}/kio
+     ${KDE4_INCLUDE_DIR}/kdeprint
+     ${KDE4_INCLUDE_DIR}/kdeprint/lpr
+@@ -232,7 +232,7 @@ _pkg_config = {
+     'pykde_kde_sip_flags':  '${_SIP_TAGS} ${_SIP_X} ${SIP_EXTRA_OPTIONS}',
+     'pykde_mod_dir':        '${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyKDE4',
+     'pykde_modules':        '${PYKDE_MODULES}',
+-    'pykde_sip_dir':        '${SIP_DEFAULT_SIP_DIR}/PyKDE4',
++    'pykde_sip_dir':        '${CMAKE_INSTALL_PREFIX}/share/sip/PyKDE4',
+     'pykde_version':        kde_version_hex,
+     'pykde_version_str':    '${KDE_VERSION}'
+ }
+@@ -244,7 +244,7 @@ PYTHON_INSTALL(${CMAKE_CURRENT_BINARY_DIR}/pykdeconfig.py ${PYTHON_SITE_PACKAGES
+ 
+ # Install the .sip files for anyone that wants to build bindings on top of PyKDE4.
+ # (Don't forget the / at the end of sip/.)
+-INSTALL(DIRECTORY sip/ DESTINATION ${SIP_DEFAULT_SIP_DIR}/PyKDE4
++INSTALL(DIRECTORY sip/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/sip/PyKDE4
+     PATTERN "*~" EXCLUDE    # This sucks, why can't I just whitelist what I _do_ want?
+     PATTERN ".svn" EXCLUDE
+     PATTERN "*.in" EXCLUDE)
+diff --git a/kpythonpluginfactory/CMakeLists.txt b/kpythonpluginfactory/CMakeLists.txt
+index 41fa0fe..642d867 100644
+--- a/kpythonpluginfactory/CMakeLists.txt
++++ b/kpythonpluginfactory/CMakeLists.txt
+@@ -3,7 +3,12 @@
+ set(kpythonpluginfactory_SRCS
+     kpythonpluginfactory.cpp)
+ 
+-GET_FILENAME_COMPONENT(LIB_PYTHON ${PYTHON_LIBRARY} NAME)
++option(HARDCODE_LIB_PYTHON_PATH "Whether the path to libpython.so should be hardcoded" OFF)
++if(HARDCODE_LIB_PYTHON_PATH)
++	get_filename_component(LIB_PYTHON ${PYTHON_LIBRARY} REALPATH)
++else(HARDCODE_LIB_PYTHON_PATH)
++    get_filename_component(LIB_PYTHON ${PYTHON_LIBRARY} NAME)
++endif(HARDCODE_LIB_PYTHON_PATH)
+ ADD_DEFINITIONS(-DLIB_PYTHON=\\"${LIB_PYTHON}\\")
+ ADD_DEFINITIONS(-DKDE_DEFAULT_DEBUG_AREA=15000)
+ 
diff --git a/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix b/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
new file mode 100644
index 000000000000..1ca6efe3b920
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
@@ -0,0 +1,30 @@
+{ kde, kdelibs, python, sip, pyqt4, kdepimlibs, shared_desktop_ontologies,
+  boost, lndir }:
+
+let pydir = "lib/python${python.majorVersion}"; in
+
+kde {
+  buildInputs = [ python kdepimlibs shared_desktop_ontologies boost ];
+
+  propagatedBuildInputs = [ pyqt4 sip ];
+
+#NIX_CFLAGS_COMPILE = "-I${phonon}/include/phonon";
+
+  patches = [ ./pykde-purity.patch ];
+
+  cmakeFlags = "-DHARDCODE_LIB_PYTHON_PATH=ON";
+
+  preConfigure =
+    ''
+      # Symlink PyQt into PyKDE.  This is necessary because PyQt looks
+      # in its PyQt4/uic/widget-plugins directory for plugins, and KDE
+      # needs to install a plugin.
+      mkdir -pv $out/${pydir}
+      ${lndir}/bin/lndir ${pyqt4}/${pydir} $out/${pydir}
+    '';
+
+  meta = {
+    description = "Python bindings for KDE";
+    kde.name = "pykde4";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
new file mode 100644
index 000000000000..df26eb2717eb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokegen.nix
@@ -0,0 +1,13 @@
+{ kde, qt4, cmake }:
+
+kde {
+  buildInputs = [ qt4 ];
+  buildNativeInputs = [ cmake ];
+
+  patchPhase = "sed -e /RPATH/d -i CMakeLists.txt";
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix
new file mode 100644
index 000000000000..c49a77a48ed6
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokekde.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, smokeqt }:
+
+kde {
+  propagatedBuildInputs = [ kdelibs smokeqt ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
new file mode 100644
index 000000000000..0d0aa816a941
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/smokeqt.nix
@@ -0,0 +1,12 @@
+{ kde, qt4, cmake, phonon, qimageblitz, smokegen }:
+
+kde {
+  propagatedBuildInputs = [ qt4 phonon qimageblitz ];
+  buildNativeInputs = [ cmake ];
+  propagatedBuildNativeInputs = [ smokegen ];
+
+  meta = {
+    description = "C++ parser used to generate language bindings for Qt/KDE";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake b/pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake
new file mode 100644
index 000000000000..617eb4b24676
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/FindLibfacile.cmake
@@ -0,0 +1,32 @@
+# - Try to find Libfacile
+# Once done this will define
+#
+#  LIBFACILE_FOUND - system has Libfacile
+#  LIBFACILE_INCLUDE_DIR - the Libfacile include directory
+#  LIBFACILE_LIBRARIES - Link these to use Libfacile
+#
+# Copyright (c) 2006, Carsten Niehaus, <cniehaus@gmx.de>
+# Copyright (c) 2006, Montel Laurent, <montel@kde.org>
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+find_package(OCaml)
+
+if( OCAML_FOUND )
+   find_library(LIBFACILE_LIBRARIES NAMES facile.a
+       HINTS ${OCAMLC_DIR}
+       PATH_SUFFIXES facile ocaml/facile
+   )
+   find_path(LIBFACILE_INCLUDE_DIR NAMES facile.cmi
+       HINTS ${OCAMLC_DIR}
+       PATH_SUFFIXES facile lib/ocaml/facile
+   )
+endif(OCAML_FOUND)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Libfacile DEFAULT_MSG LIBFACILE_INCLUDE_DIR
+	LIBFACILE_LIBRARIES OCAML_FOUND)
+
+# show the LIBFACILE_INCLUDE_DIR and LIBFACILE_LIBRARIES variables only in the advanced view
+mark_as_advanced(LIBFACILE_INCLUDE_DIR LIBFACILE_LIBRARIES )
diff --git a/pkgs/desktops/kde-4.7/kdeedu/blinken.nix b/pkgs/desktops/kde-4.7/kdeedu/blinken.nix
new file mode 100644
index 000000000000..cdf9728833c2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/blinken.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Memory Enhancement Game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/cantor.nix b/pkgs/desktops/kde-4.7/kdeedu/cantor.nix
new file mode 100644
index 000000000000..8b8bbc210c75
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/cantor.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libspectre }:
+kde {
+  buildInputs = [ kdelibs libspectre ];
+
+  meta = {
+    description = "KDE Frontend to Mathematical Software";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix b/pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix
new file mode 100644
index 000000000000..f1a190332cdc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kalgebra.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdeedu, readline }:
+kde {
+  buildInputs = [ kdelibs libkdeedu readline ];
+
+  meta = {
+    description = "2D and 3D Graph Calculator";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch b/pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch
new file mode 100644
index 000000000000..3c054e8d60ab
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kalzium-feature-log.patch
@@ -0,0 +1,15 @@
+commit d96c6e70400dcd4e3514065e607388b80f96d6a1
+Author: Yury G. Kudryashov <urkud.urkud@gmail.com>
+Date:   Mon Aug 15 00:53:16 2011 +0400
+
+    Display feature log
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 132934c..eec6942 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -47,3 +47,4 @@ add_subdirectory(src)
+ add_subdirectory(data)
+ add_subdirectory(plasmoid)
+ add_subdirectory(libscience)
++macro_display_feature_log()
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kalzium.nix b/pkgs/desktops/kde-4.7/kdeedu/kalzium.nix
new file mode 100644
index 000000000000..d7d9b403b1a4
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kalzium.nix
@@ -0,0 +1,15 @@
+{ kde, kdelibs, facile, ocaml, eigen, openbabel, avogadro }:
+kde {
+  buildInputs = [ kdelibs facile ocaml eigen openbabel avogadro ];
+
+  prePatch = ''
+    cp -v ${./FindLibfacile.cmake} cmake/modules/FindLibfacile.cmake
+    sed -e 's/\+facile/''${LIBFACILE_INCLUDE_DIR}/' -i src/CMakeOCamlInstructions.cmake
+    '';
+
+  patches = [ ./kalzium-feature-log.patch ];
+
+  meta = {
+    description = "Periodic Table of Elements";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kanagram.nix b/pkgs/desktops/kde-4.7/kdeedu/kanagram.nix
new file mode 100644
index 000000000000..8759c96d78c4
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kanagram.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdeedu }:
+kde {
+  buildInputs = [ kdelibs libkdeedu ];
+
+  meta = {
+    description = "Letter Order Game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kbruch.nix b/pkgs/desktops/kde-4.7/kdeedu/kbruch.nix
new file mode 100644
index 000000000000..dc50f1e85a37
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kbruch.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Practice Fractions";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kgeography.nix b/pkgs/desktops/kde-4.7/kdeedu/kgeography.nix
new file mode 100644
index 000000000000..bd8d27c8d6e2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kgeography.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Geography Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/khangman.nix b/pkgs/desktops/kde-4.7/kdeedu/khangman.nix
new file mode 100644
index 000000000000..997b50e906a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/khangman.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs, libkdeedu }:
+kde {
+  buildInputs = [ kdelibs libkdeedu ];
+
+  meta = {
+    description = "KDE hangman game";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kig.nix b/pkgs/desktops/kde-4.7/kdeedu/kig.nix
new file mode 100644
index 000000000000..bd5ef67529cc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kig.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, boost, python}:
+kde {
+  buildInputs = [ kdelibs boost python ];
+
+  cmakeFlags = ''
+    -DBOOST_PYTHON_INCLUDES:PATH=${boost}/include;${python}/include/${python.libPrefix}
+    -DBOOST_PYTHON_LIBS=boost_python;${python.libPrefix} -DKIG_ENABLE_PYTHON_SCRIPTING=1
+    '';
+  meta = {
+    description = "KDE Interactive Geometry";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kiten.nix b/pkgs/desktops/kde-4.7/kdeedu/kiten.nix
new file mode 100644
index 000000000000..939b7a9f77a2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kiten.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Japanese Reference/Study Tool";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/klettres.nix b/pkgs/desktops/kde-4.7/kdeedu/klettres.nix
new file mode 100644
index 000000000000..7a0fa83078e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/klettres.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE alphabet tutorial";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kmplot.nix b/pkgs/desktops/kde-4.7/kdeedu/kmplot.nix
new file mode 100644
index 000000000000..18458cf6f0bf
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kmplot.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE mathematical function plotter";
+    kde = {
+      name = "kmplot";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kstars.nix b/pkgs/desktops/kde-4.7/kdeedu/kstars.nix
new file mode 100644
index 000000000000..5b5a2d621de7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kstars.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, eigen, xplanet, indilib }:
+
+kde {
+  buildInputs = [ kdelibs eigen xplanet indilib ];
+
+  meta = {
+    description = "A KDE graphical desktop planetarium";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/ktouch.nix b/pkgs/desktops/kde-4.7/kdeedu/ktouch.nix
new file mode 100644
index 000000000000..768be6f4367c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/ktouch.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Touch Typing Tutor";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kturtle.nix b/pkgs/desktops/kde-4.7/kdeedu/kturtle.nix
new file mode 100644
index 000000000000..1e1922b1410d
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kturtle.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Educational Programming Environment";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix b/pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix
new file mode 100644
index 000000000000..1b33ba2e469f
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/kwordquiz.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libkdeedu }:
+
+kde {
+  buildInputs = [ kdelibs libkdeedu ];
+
+  meta = {
+    description = "Flash Card Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix b/pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix
new file mode 100644
index 000000000000..def6c85fefe2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/libkdeedu.nix
@@ -0,0 +1,8 @@
+{ kde, kdelibs }:
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Libraries used by KDE Education applications";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/marble.nix b/pkgs/desktops/kde-4.7/kdeedu/marble.nix
new file mode 100644
index 000000000000..8bd86c91094e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/marble.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, gpsd }:
+
+kde {
+  buildInputs = [ kdelibs gpsd ];
+
+  meta = {
+    description = "Marble Virtual Globe";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/parley.nix b/pkgs/desktops/kde-4.7/kdeedu/parley.nix
new file mode 100644
index 000000000000..eccd40a598f0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/parley.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libkdeedu, libxml2, attica }:
+
+kde {
+  buildInputs = [ kdelibs libkdeedu libxml2 attica ];
+
+  meta = {
+    description = "Vocabulary Trainer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/rocs.nix b/pkgs/desktops/kde-4.7/kdeedu/rocs.nix
new file mode 100644
index 000000000000..91976b840011
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/rocs.nix
@@ -0,0 +1,14 @@
+{ kde, kdelibs, boost }:
+
+kde {
+  buildInputs = [ kdelibs (boost.override { enableExceptions = true; }) ];
+
+  NIX_CFLAGS_COMPILE = "-fexceptions";
+
+  meta = {
+    description = "A KDE graph theory viewer";
+    kde = {
+      name = "rocs";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeedu/step.nix b/pkgs/desktops/kde-4.7/kdeedu/step.nix
new file mode 100644
index 000000000000..fac9974baf18
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeedu/step.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, gsl, libqalculate, eigen }:
+
+kde {
+  buildInputs = [ kdelibs gsl libqalculate eigen ];
+
+  meta = {
+    description = "A KDE interactive physical simulator";
+    kde = {
+      name = "step";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegames.nix b/pkgs/desktops/kde-4.7/kdegames.nix
new file mode 100644
index 000000000000..3378a99d9e79
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegames.nix
@@ -0,0 +1,18 @@
+{ kde, kdelibs, qca2, twisted, pythonPackages, sip, makeWrapper, pykde4,
+  openal, libsndfile, qhull }:
+
+kde rec {
+  buildInputs = [ kdelibs qca2 pythonPackages.python pythonPackages.wrapPython
+    openal libsndfile qhull ] ++ pythonPath;
+
+  pythonPath = [ pythonPackages.twisted pykde4 ];
+
+  # TODO: ggz
+
+  postInstall = "wrapPythonPrograms";
+
+  meta = {
+    description = "KDE Games";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
new file mode 100644
index 000000000000..efc2707e7d69
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/gwenview.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, exiv2, shared_desktop_ontologies, kde_baseapps, libkipi }:
+
+kde {
+
+  buildInputs =
+    [ kdelibs exiv2 shared_desktop_ontologies kde_baseapps libkipi ];
+
+  meta = {
+    description = "Gwenview, the KDE image viewer";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kamera.nix b/pkgs/desktops/kde-4.7/kdegraphics/kamera.nix
new file mode 100644
index 000000000000..70904b17c232
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kamera.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libgphoto2 }:
+
+kde {
+  buildInputs = [ kdelibs libgphoto2 ];
+
+  meta = {
+    description = "KDE camera interface library";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix b/pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix
new file mode 100644
index 000000000000..58528cb186bb
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kcolorchooser.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A small utility to select a color";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix
new file mode 100644
index 000000000000..6001a5f363db
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-strigi-analyzer.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Strigi analyzers for various graphics file formats";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix
new file mode 100644
index 000000000000..55bf8309b2a9
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kdegraphics-thumbnailers.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libkexiv2, libkdcraw }:
+
+kde {
+  buildInputs = [ kdelibs libkexiv2 libkdcraw ];
+
+  meta = {
+    description = "Thumbnailers for various graphics file formats";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix b/pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix
new file mode 100644
index 000000000000..28d9252187e0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kgamma.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libXxf86vm }:
+
+kde {
+  buildInputs = [ kdelibs libXxf86vm ];
+
+  meta = {
+    description = "KDE monitor calibration tool";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix b/pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix
new file mode 100644
index 000000000000..5276ec09f462
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kolourpaint.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, qimageblitz }:
+
+kde {
+  buildInputs = [ kdelibs qimageblitz ];
+
+  meta = {
+    description = "KDE paint program";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/kruler.nix b/pkgs/desktops/kde-4.7/kdegraphics/kruler.nix
new file mode 100644
index 000000000000..c5c2c6e05d7c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/kruler.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE screen ruler";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix b/pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix
new file mode 100644
index 000000000000..1381ed7dd266
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/ksaneplugin.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libksane }:
+
+kde {
+  buildInputs = [ kdelibs libksane ];
+
+  meta = {
+    description = "A KScan plugin that implements the scanning through libksane";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix b/pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix
new file mode 100644
index 000000000000..f01a609e20de
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/ksnapshot.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libkipi }:
+
+kde {
+  buildInputs = [ kdelibs libkipi ];
+
+  meta = {
+    description = "KDE screenshot utility";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix b/pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix
new file mode 100644
index 000000000000..9d31cc763f21
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libkdcraw.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Library for decoding RAW images";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix b/pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix
new file mode 100644
index 000000000000..096b0a6e957b
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libkexiv2.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, exiv2 }:
+
+kde {
+  buildInputs = [ kdelibs exiv2 ];
+
+  meta = {
+    description = "Exiv2 support library";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix b/pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix
new file mode 100644
index 000000000000..6b16265e7a3e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libkipi.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Interface library to kipi-plugins";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/libksane.nix b/pkgs/desktops/kde-4.7/kdegraphics/libksane.nix
new file mode 100644
index 000000000000..b539eab38992
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/libksane.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, saneBackends }:
+
+kde {
+  buildInputs = [ kdelibs saneBackends ];
+
+  meta = {
+    description = "An image scanning library that provides a QWidget that contains all the logic needed to interface a sacanner";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix b/pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix
new file mode 100644
index 000000000000..2c2ba3796a2c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/mobipocket.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, okular }:
+
+kde {
+  buildInputs = [ kdelibs okular ];
+
+  meta = {
+    description = "A collection of plugins to handle mobipocket files";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/okular.nix b/pkgs/desktops/kde-4.7/kdegraphics/okular.nix
new file mode 100644
index 000000000000..c322767eb433
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/okular.nix
@@ -0,0 +1,12 @@
+{ chmlib, djvulibre, ebook_tools, kde, kdelibs, libspectre, popplerQt4, qca2
+, qimageblitz }:
+
+kde {
+  buildInputs =
+    [ chmlib djvulibre ebook_tools kdelibs libspectre popplerQt4 qca2 qimageblitz ];
+
+  meta = {
+    description = "Okular, the KDE document viewer";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix b/pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix
new file mode 100644
index 000000000000..a344cc4b4b46
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdegraphics/svgpart.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "SVG KPart";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdelibs.nix b/pkgs/desktops/kde-4.7/kdelibs.nix
new file mode 100644
index 000000000000..cad1988723c7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdelibs.nix
@@ -0,0 +1,39 @@
+{ kde, gcc, cmake, perl
+, qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
+, xz, openexr, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
+, automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt
+, docbook_xml_dtd_42, docbook_xsl, polkit_qt_1
+, getopt, udev, herqq, phonon, gettext
+}:
+
+kde {
+  buildInputs =
+    [
+      acl attr attica avahi bzip2 enchant fam getopt giflib herqq jasper
+      libdbusmenu_qt libXScrnSaver libxslt pcre polkit_qt_1 qca2
+      shared_desktop_ontologies udev xz libxml2
+    ];
+
+  propagatedBuildInputs = [ qt4 soprano strigi phonon ];
+
+  propagatedBuildNativeInputs = [ automoc4 cmake perl shared_mime_info ];
+
+  # TODO: make sonnet plugins (dictionaries) really work.
+  # There are a few hardcoded paths.
+  # Let kdelibs find openexr
+  # Split plugins from libs?
+
+  patches = [ ./files/polkit-install.patch ];
+
+  # cmake fails to find acl.h because of C++-style comment
+  # TODO: OpenEXR
+  cmakeFlags = [
+    "-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
+    "-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook"
+  ];
+
+  meta = {
+    description = "KDE libraries";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdemultimedia.nix b/pkgs/desktops/kde-4.7/kdemultimedia.nix
new file mode 100644
index 000000000000..b4ca7a8d2da7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdemultimedia.nix
@@ -0,0 +1,16 @@
+{ kde, alsaLib, libvorbis, taglib, flac, cdparanoia, lame, kdelibs, ffmpeg,
+  libmusicbrainz3, libtunepimp }:
+
+kde {
+
+  buildInputs =
+    # Note: kdemultimedia can use xine-lib, but it doesn't seem useful
+    # without the Phonon Xine backend.
+    [ kdelibs cdparanoia taglib libvorbis libmusicbrainz3 libtunepimp ffmpeg
+    flac lame ];
+
+  meta = {
+    description = "KDE multimedia programs such as a movie player and volume utility";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake b/pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake
new file mode 100644
index 000000000000..c40b0bed3105
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/FindmsiLBC.cmake
@@ -0,0 +1,19 @@
+# cmake macro to test msiLBC
+
+# Copyright (c) 2009-2010 Pali Rohár <pali.rohar@gmail.com>
+#
+# MSILBC_FOUND
+# MSILBC_LIBRARY
+
+include ( FindPackageHandleStandardArgs )
+
+if ( MSILBC_LIBRARY )
+	set ( MSILBC_FOUND true )
+	set ( msiLBC_FIND_QUIETLY true )
+else ( MSILBC_LIBRARY )
+	find_library ( MSILBC_LIBRARY NAMES msilbc
+		PATH_SUFFIXES mediastreamer/plugins)
+endif ( MSILBC_LIBRARY )
+
+find_package_handle_standard_args ( msiLBC DEFAULT_MSG MSILBC_LIBRARY )
+mark_as_advanced ( MSILBC_LIBRARY )
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix b/pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/filesharing.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch b/pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch
new file mode 100644
index 000000000000..ebadbfad9bac
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kdenetwork.patch
@@ -0,0 +1,24 @@
+diff -r -u kdenetwork-4.7.1.orig/CMakeLists.txt kdenetwork-4.7.1/CMakeLists.txt
+--- kdenetwork-4.7.1.orig/CMakeLists.txt	2011-03-29 15:25:42.174521812 +0400
++++ kdenetwork-4.7.1/CMakeLists.txt	2011-03-29 15:27:43.268140322 +0400
+@@ -28,7 +28,8 @@
+    set(CMAKE_REQUIRED_INCLUDES  ${KDEWIN_INCLUDES} )
+ endif (WIN32)
+ 
+-find_package(KdepimLibs REQUIRED)
++macro_optional_find_package(KdepimLibs)
++macro_log_feature(KDEPIMLIBS_FOUND "KDEPimLibs" "KDE pim-related libraries" "http://pim.kde.org.org/" FALSE "" "Required for Kopete")
+ # find_package(X11VidMode) not used at this time
+ 
+ # NX support is not ready for KDE 4.2; disabled (uwolfer)
+@@ -79,7 +80,9 @@
+ macro_optional_add_subdirectory(kfile-plugins)
+ macro_optional_add_subdirectory(kget)
+ 
+-macro_optional_add_subdirectory(kopete)
++if(KDEPIMLIBS_FOUND)
++  macro_optional_add_subdirectory(kopete)
++endif(KDEPIMLIBS_FOUND)
+ 
+ if(Q_WS_X11)
+   macro_optional_add_subdirectory(krdc)
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix b/pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kdnssd.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix b/pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix
new file mode 100644
index 000000000000..f90fd3560796
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kfile-plugins.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, boost }:
+
+kde {
+  name = "strigi-analyzer-torrent";
+
+  buildInputs = [ kdelibs boost ];
+
+  preConfigure = "mv -v strigi-analyzer kfile-plugins";
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kget.nix b/pkgs/desktops/kde-4.7/kdenetwork/kget.nix
new file mode 100644
index 000000000000..33d9ec1ca012
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kget.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, libktorrent, kde_workspace, kdepimlibs,
+  shared_desktop_ontologies, kde_baseapps, gpgme, boost, libmms, qca2 }:
+
+kde {
+  buildInputs =
+    [ kdelibs libktorrent kde_workspace shared_desktop_ontologies kdepimlibs
+      kde_baseapps gpgme boost libmms qca2
+    ];
+
+  KDEDIRS = libktorrent;
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
new file mode 100644
index 000000000000..a4b01c5f9a63
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kopete.nix
@@ -0,0 +1,21 @@
+{ kde, kdelibs, speex, libmsn, libotr, kdepimlibs, qimageblitz, libktorrent,
+  jasper, libidn, mediastreamer, msilbc, pkgconfig, libxml2, libxslt, giflib,
+  libgadu, boost, qca2, gpgme }:
+
+kde {
+  buildInputs = [ kdelibs speex libmsn libotr kdepimlibs qimageblitz libktorrent
+    jasper libidn mediastreamer msilbc libxml2 libxslt giflib libgadu boost qca2
+    gpgme ];
+
+  buildNativeInputs = [ pkgconfig ];
+
+  KDEDIRS = libktorrent;
+
+  patchPhase = "cp -v ${./FindmsiLBC.cmake} kopete/cmake/modules/FindmsiLBC.cmake";
+
+  cmakeFlags = [ "-DBUILD_skypebuttons=TRUE" ];
+
+  meta = {
+    description = "A KDE multi-protocol IM client";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/kppp.nix b/pkgs/desktops/kde-4.7/kdenetwork/kppp.nix
new file mode 100644
index 000000000000..2f32f4d6b2cd
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/kppp.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/krdc.nix b/pkgs/desktops/kde-4.7/kdenetwork/krdc.nix
new file mode 100644
index 000000000000..664b1bc45a73
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/krdc.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libvncserver }:
+
+kde {
+  buildInputs = [ kdelibs libvncserver ];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.7/kdenetwork/krfb.nix b/pkgs/desktops/kde-4.7/kdenetwork/krfb.nix
new file mode 100644
index 000000000000..80013f430d3c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdenetwork/krfb.nix
@@ -0,0 +1,7 @@
+{ kde, kdelibs, libvncserver, libXdamage, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs libvncserver libXdamage libXtst];
+
+  patches = [ ./kdenetwork.patch ];
+}
diff --git a/pkgs/desktops/kde-4.6/network/log-feature.diff b/pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff
index 6770dd399e33..6770dd399e33 100644
--- a/pkgs/desktops/kde-4.6/network/log-feature.diff
+++ b/pkgs/desktops/kde-4.7/kdenetwork/log-feature.diff
diff --git a/pkgs/desktops/kde-4.7/kdepim-runtime.nix b/pkgs/desktops/kde-4.7/kdepim-runtime.nix
new file mode 100644
index 000000000000..ef637f3f075b
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdepim-runtime.nix
@@ -0,0 +1,12 @@
+{ kde, fetchurl, cmake, kdelibs, libxml2, libxslt, boost, kdepimlibs, akonadi
+, shared_desktop_ontologies }:
+
+kde {
+  buildInputs = [ kdepimlibs akonadi boost shared_desktop_ontologies libxml2
+    libxslt ];
+
+  meta = {
+    description = "KDE PIM runtime";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdepim.nix b/pkgs/desktops/kde-4.7/kdepim.nix
new file mode 100644
index 000000000000..c21e8c112a88
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdepim.nix
@@ -0,0 +1,19 @@
+{ kde, boost, gpgme, libassuan, libxml2, libxslt, kdepimlibs, kdepim_runtime
+, akonadi, shared_desktop_ontologies, cyrus_sasl, grantlee }:
+
+kde {
+
+  buildInputs = [ kdepimlibs boost akonadi shared_desktop_ontologies libxml2
+    libxslt cyrus_sasl gpgme libassuan grantlee ];
+
+  passthru.propagatedUserEnvPackages = [ akonadi kdepimlibs kdepim_runtime ];
+
+  meta = {
+    description = "KDE PIM tools";
+    longDescription = ''
+      Contains various personal information management tools for KDE, such as an organizer.
+    '';
+    license = "GPL";
+    homepage = http://pim.kde.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdepimlibs.nix b/pkgs/desktops/kde-4.7/kdepimlibs.nix
new file mode 100644
index 000000000000..c1e22427ac79
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdepimlibs.nix
@@ -0,0 +1,14 @@
+{ kde, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
+, kdelibs, akonadi, shared_desktop_ontologies, libxml2, libxslt, prison }:
+
+kde {
+  buildInputs = [ boost gpgme shared_desktop_ontologies libical libxml2 libxslt
+    openldap cyrus_sasl akonadi prison ];
+
+  propagatedBuildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE PIM libraries";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeplasma-addons.nix b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
new file mode 100644
index 000000000000..de2cabf20e4f
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeplasma-addons.nix
@@ -0,0 +1,18 @@
+{ kde, kdelibs, marble, shared_desktop_ontologies
+, boost, eigen, kde_workspace, attica, python, qca2, qimageblitz
+, kdepimlibs, libkexiv2, libqalculate, libXtst }:
+# TODO: qwt, scim
+
+kde {
+
+  KDEDIRS=marble;
+
+  buildInputs = [ kdelibs boost eigen kde_workspace
+    attica python qca2 qimageblitz kdepimlibs
+    libqalculate libXtst shared_desktop_ontologies marble libkexiv2];
+
+  meta = {
+    description = "KDE Plasma Addons";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/cervisia.nix b/pkgs/desktops/kde-4.7/kdesdk/cervisia.nix
new file mode 100644
index 000000000000..1dabe46cd429
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/cervisia.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE CVS frontend";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix
new file mode 100644
index 000000000000..df4a0856c6b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-git.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Git plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix
new file mode 100644
index 000000000000..8032b89ff54c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/dolphin-plugins-svn.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, kde_baseapps }:
+
+kde {
+  # Needs kdebase for libkonq
+  buildInputs = [ kdelibs kde_baseapps ];
+
+  meta = {
+    description = "Svn plugin for dolphin";
+  };
+}
diff --git a/pkgs/desktops/kde-4.6/sdk/find-svn.patch b/pkgs/desktops/kde-4.7/kdesdk/find-svn.patch
index 61cb49b308f2..61cb49b308f2 100644
--- a/pkgs/desktops/kde-4.6/sdk/find-svn.patch
+++ b/pkgs/desktops/kde-4.7/kdesdk/find-svn.patch
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix b/pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix
new file mode 100644
index 000000000000..391536248dd3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kapptemplate.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A KDE 4 project template generator";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix b/pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix
new file mode 100644
index 000000000000..65d410cca48d
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kcachegrind.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Frontend for Callgrind/Cachegrind";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix b/pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix
new file mode 100644
index 000000000000..7e170ca2a2c2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kdeaccounts-plugin.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kdepimlibs }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs ];
+
+  meta = {
+    description = "KDE accounts akonadi agent";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix
new file mode 100644
index 000000000000..6a10bdf7c4bc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kioslave-perldoc.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, perl }:
+
+kde {
+  buildInputs = [ kdelibs perl ];
+
+  cmakeFlags = [ "-DBUILD_perldoc=ON" ];
+
+  meta = {
+    description = "perldoc: kioslave";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix b/pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix
new file mode 100644
index 000000000000..ec7f7a61ed56
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kioslave-svn.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, subversion, apr, aprutil }:
+
+kde {
+  buildInputs = [ kdelibs subversion apr aprutil ];
+
+  patches = [ ./find-svn.patch ];
+
+  meta = {
+    description = "Subversion kioslave";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix b/pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix
new file mode 100644
index 000000000000..d580f7fb6911
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kmtrace.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, gcc }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  preConfigure = "export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:${gcc}:${gcc.gcc}";
+
+  meta = {
+    description = "KDE mtrace-based malloc debugger";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kompare.nix b/pkgs/desktops/kde-4.7/kdesdk/kompare.nix
new file mode 100644
index 000000000000..1ddb4b8ea5b9
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kompare.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A program to view the differences between files and optionally generate a diff";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix b/pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix
new file mode 100644
index 000000000000..e7790d33c90c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kpartloader.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A test application for KParts";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix b/pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix
new file mode 100644
index 000000000000..5a6693f2f5d8
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kprofilemethod.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "A macro for profiling using QTime";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix b/pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix
new file mode 100644
index 000000000000..0c8259cd31f5
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kstartperf.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libtool }:
+
+kde {
+  buildInputs = [ kdelibs libtool ];
+
+  meta = {
+    description = "Measures start up time of a KDE application";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix b/pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix
new file mode 100644
index 000000000000..7c5089dcd37f
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/kuiviewer.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Displays Qt Designer's UI files";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/lokalize.nix b/pkgs/desktops/kde-4.7/kdesdk/lokalize.nix
new file mode 100644
index 000000000000..1565426eb1fc
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/lokalize.nix
@@ -0,0 +1,13 @@
+{ kde, kdelibs, hunspell }:
+
+kde {
+  buildInputs = [ kdelibs hunspell ];
+
+  meta = {
+    description = "KDE 4 Computer-aided translation system";
+    longDescription = ''
+      Computer-aided translation system.
+      Do not translate what had already been translated.
+    '';
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/okteta.nix b/pkgs/desktops/kde-4.7/kdesdk/okteta.nix
new file mode 100644
index 000000000000..1b53a0e03dc4
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/okteta.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, qca2 }:
+
+kde {
+  buildInputs = [ kdelibs qca2 ];
+
+# TODO: Look what does -DBUILD_mobile add
+
+  meta = {
+    description = "KDE byte editor";
+  };
+}
diff --git a/pkgs/desktops/kde-4.6/sdk/optional-docs.diff b/pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff
index f67e1f4cdd8e..f67e1f4cdd8e 100644
--- a/pkgs/desktops/kde-4.6/sdk/optional-docs.diff
+++ b/pkgs/desktops/kde-4.7/kdesdk/optional-docs.diff
diff --git a/pkgs/desktops/kde-4.7/kdesdk/poxml.nix b/pkgs/desktops/kde-4.7/kdesdk/poxml.nix
new file mode 100644
index 000000000000..1ab9ed49df56
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/poxml.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, antlr }:
+
+kde {
+  buildInputs = [ kdelibs antlr ];
+
+  meta = {
+    description = "Po<->xml tools";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdesdk/scripts.nix b/pkgs/desktops/kde-4.7/kdesdk/scripts.nix
new file mode 100644
index 000000000000..df81145e5d60
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/scripts.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Various scripts to ease KDE development";
+  };
+}
diff --git a/pkgs/desktops/kde-4.6/sdk/strigi-analyzer.nix b/pkgs/desktops/kde-4.7/kdesdk/strigi-analyzer.nix
index 88c935ade4af..0ad48c8cfdee 100644
--- a/pkgs/desktops/kde-4.6/sdk/strigi-analyzer.nix
+++ b/pkgs/desktops/kde-4.7/kdesdk/strigi-analyzer.nix
@@ -1,15 +1,13 @@
-{ kde, cmake, kdelibs, automoc4 }:
-
-kde.package {
-  buildInputs = [ cmake kdelibs automoc4 ];
+{ kde, kdelibs }:
 
+kde {
+  buildInputs = [ kdelibs ];
 
   meta = {
     description = "Strigi analyzers for diff, po and ts";
     kde = {
       name = "strigi-analyzer";
       module = "kdesdk";
-      version = "4.5.90";
     };
   };
 }
diff --git a/pkgs/desktops/kde-4.7/kdesdk/umbrello.nix b/pkgs/desktops/kde-4.7/kdesdk/umbrello.nix
new file mode 100644
index 000000000000..e83a2d9a901b
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdesdk/umbrello.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libxml2, libxslt, boost }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt boost ];
+
+  meta = {
+    description = "Umbrello UML modeller";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdetoys/amor.nix b/pkgs/desktops/kde-4.7/kdetoys/amor.nix
new file mode 100644
index 000000000000..936d63d544a9
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdetoys/amor.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE creature for your desktop";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdetoys/kteatime.nix b/pkgs/desktops/kde-4.7/kdetoys/kteatime.nix
new file mode 100644
index 000000000000..dacf54def4b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdetoys/kteatime.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE utility for making a fine cup of tea";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdetoys/ktux.nix b/pkgs/desktops/kde-4.7/kdetoys/ktux.nix
new file mode 100644
index 000000000000..108f9be7c722
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdetoys/ktux.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kde_workspace }:
+
+kde {
+  buildInputs = [ kdelibs kde_workspace ];
+
+  meta = {
+    description = "Tux Screen Saver";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/ark.nix b/pkgs/desktops/kde-4.7/kdeutils/ark.nix
new file mode 100644
index 000000000000..4449dd8228f2
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/ark.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libarchive, xz, bzip2, kde_baseapps }:
+
+kde {
+  buildInputs = [ kdelibs kde_baseapps libarchive xz bzip2 ];
+
+  meta = {
+    description = "KDE Archiving Tool";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/filelight.nix b/pkgs/desktops/kde-4.7/kdeutils/filelight.nix
new file mode 100644
index 000000000000..25ecabed27ce
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/filelight.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Tool to visualise file and directory sizes";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kcalc.nix b/pkgs/desktops/kde-4.7/kdeutils/kcalc.nix
new file mode 100644
index 000000000000..08b202e8f0e8
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kcalc.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, gmp }:
+
+kde {
+  buildInputs = [ kdelibs gmp ];
+
+  meta = {
+    description = "KDE Calculator";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix b/pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix
new file mode 100644
index 000000000000..d4c9c06f483d
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kcharselect.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE character selection utility";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kdf.nix b/pkgs/desktops/kde-4.7/kdeutils/kdf.nix
new file mode 100644
index 000000000000..3f9da58d0a62
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kdf.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE free disk space utility";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix b/pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix
new file mode 100644
index 000000000000..2434a4fa671f
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kfloppy.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Floppy disk formatting utility";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kgpg.nix b/pkgs/desktops/kde-4.7/kdeutils/kgpg.nix
new file mode 100644
index 000000000000..f3b00a5b968c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kgpg.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, kdepimlibs }:
+
+kde {
+  buildInputs = [ kdelibs kdepimlibs ];
+
+  meta = {
+    description = "Simple KDE GUI for GPG";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix b/pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix
new file mode 100644
index 000000000000..70311a789f99
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kremotecontrol.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libXtst }:
+
+kde {
+  buildInputs = [ kdelibs libXtst ];
+
+  meta = {
+    description = "KDE remote control";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/ktimer.nix b/pkgs/desktops/kde-4.7/kdeutils/ktimer.nix
new file mode 100644
index 000000000000..5700977349e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/ktimer.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Timer";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/kwallet.nix b/pkgs/desktops/kde-4.7/kdeutils/kwallet.nix
new file mode 100644
index 000000000000..9ec0e6c0396c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/kwallet.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "KDE Wallet (password storage) management tool";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix b/pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix
new file mode 100644
index 000000000000..2d937b3a4db7
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/printer-applet.nix
@@ -0,0 +1,28 @@
+{ kde, kdelibs
+, pythonPackages, sip, pyqt4, pykde4, pycups, rhpl, system_config_printer
+, pythonDBus, makeWrapper }:
+
+let s_c_p = system_config_printer.override { withGUI = false; }; in
+
+kde rec {
+  buildInputs = [ kdelibs pythonPackages.python pythonPackages.wrapPython
+    ] ++ pythonPath;
+
+  pythonPath = [ pyqt4 pykde4 pycups s_c_p ];
+
+  passthru.propagatedUserEnvPackages = [ s_c_p ];
+
+  postInstall =
+    ''
+      wrapPythonPrograms
+
+      # ‘system-config-printer’ supplies some D-Bus policy that we need.
+      mkdir -p $out/nix-support
+      echo ${s_c_p} > $out/nix-support/propagated-user-env-packages
+    '';
+
+  meta = {
+    description = "KDE printer applet";
+    longDescription = "Applet to view current print jobs and configure new printers";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix b/pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix
new file mode 100644
index 000000000000..1475ab041ac3
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/superkaramba.nix
@@ -0,0 +1,11 @@
+{ kde, kdelibs, qimageblitz }:
+
+kde {
+  buildInputs = [ kdelibs qimageblitz ];
+
+  cmakeFlags = [ "-DBUILD_icons=TRUE" "-DBULD_plasma=TRUE" ];
+
+  meta = {
+    description = "A KDE Eye-candy Application";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdeutils/sweeper.nix b/pkgs/desktops/kde-4.7/kdeutils/sweeper.nix
new file mode 100644
index 000000000000..78d56c7df30e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdeutils/sweeper.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs }:
+
+kde {
+  buildInputs = [ kdelibs ];
+
+  meta = {
+    description = "Helps clean unwanted traces the user leaves on the system";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix b/pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix
new file mode 100644
index 000000000000..c3f6129d7e5c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/kfilereplace.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libxml2, libxslt }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt ];
+
+  meta = {
+    description = "Batch search and replace tool";
+    homepage = http://www.kdewebdev.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix
new file mode 100644
index 000000000000..bececea7797e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/kimagemapeditor.nix
@@ -0,0 +1,10 @@
+{ kde, kdelibs, libxml2, libxslt }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt ];
+
+  meta = {
+    description = "An HTML imagemap editor";
+    homepage = http://www.nongnu.org/kimagemap/;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix b/pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix
new file mode 100644
index 000000000000..94adbb7fd6e0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/klinkstatus.nix
@@ -0,0 +1,12 @@
+{ kde, kdelibs, libxml2, libxslt, kdepimlibs
+, boost, htmlTidy }:
+
+kde {
+  buildInputs =
+    [ kdelibs libxml2 libxslt kdepimlibs boost htmlTidy ];
+
+  meta = {
+    description = "A KDE link checker";
+    homepage = http://klinkstatus.kdewebdev.org;
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kdewebdev/kommander.nix b/pkgs/desktops/kde-4.7/kdewebdev/kommander.nix
new file mode 100644
index 000000000000..6a870e563033
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdewebdev/kommander.nix
@@ -0,0 +1,9 @@
+{ kde, kdelibs, libxml2, libxslt }:
+
+kde {
+  buildInputs = [ kdelibs libxml2 libxslt ];
+
+  meta = {
+    description = "A graphical editor of scripted dialogs";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/kipi-plugins.nix b/pkgs/desktops/kde-4.7/kipi-plugins.nix
new file mode 100644
index 000000000000..ea237a5d718e
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kipi-plugins.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, cmake, kdelibs, qt4, automoc4, phonon, libkexiv2
+, libkdcraw, libkipi, gettext, libxml2, libxslt, qjson, qca2
+, kdepimlibs }:
+
+stdenv.mkDerivation rec {
+  name = "kipi-plugins-1.9.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/kipi/${name}.tar.bz2";
+    sha256 = "0k4k9v1rj7129n0s0i5pvv4rabx0prxqs6sca642fj95cxc6c96m";
+  };
+
+  buildInputs =
+    # Some dependencies are missing because they are very big (OpenCV,
+    # GTK).
+    [ cmake kdelibs qt4 automoc4 phonon libkexiv2 libkdcraw libkipi
+      gettext libxml2 libxslt qjson qca2 kdepimlibs
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Photo Management Program";
+    license = "GPL";
+    homepage = http://www.kipi-plugins.org;
+    inherit (kdelibs.meta) platforms;
+    maintainers = with stdenv.lib.maintainers; [ viric urkud ];
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/l10n/default.nix b/pkgs/desktops/kde-4.7/l10n/default.nix
new file mode 100644
index 000000000000..144968f66727
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/l10n/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, kdelibs, gettext, release }:
+
+let
+
+  inherit (stdenv.lib) attrByPath singleton;
+
+  kdeL10nDerivation =
+    { lang, saneName, sha256 }:
+
+    stdenv.mkDerivation rec {
+      name = "kde-l10n-${saneName}-${release}";
+
+      src = fetchurl {
+        url = "mirror://kde/stable/${release}/src/kde-l10n/kde-l10n-${lang}-${release}.tar.bz2";
+        name = "${name}.tar.bz2";
+        inherit sha256;
+      };
+
+      buildInputs = [ gettext kdelibs ];
+
+      cmakeFlags = "-Wno-dev";
+
+      meta = {
+        description = "KDE translation for ${lang}";
+        license = "GPL";
+        inherit (kdelibs.meta) maintainers platforms homepage;
+      };
+    };
+
+  kdeL10nRelease =
+    builtins.listToAttrs (
+      map ({lang, saneName, sha256}:
+        {
+          name = saneName;
+          value = kdeL10nDerivation { inherit lang saneName sha256; };
+        }
+      ) (import (./manifest + "-${release}.nix"))
+    );
+
+in
+{
+  inherit kdeL10nDerivation;
+  recurseForDerivations = true;
+} // kdeL10nRelease
diff --git a/pkgs/desktops/kde-4.6/l10n/l10n-manifest.sh b/pkgs/desktops/kde-4.7/l10n/l10n-manifest.sh
index baa235e0f75f..cc0eec20aaaf 100755
--- a/pkgs/desktops/kde-4.6/l10n/l10n-manifest.sh
+++ b/pkgs/desktops/kde-4.7/l10n/l10n-manifest.sh
@@ -24,6 +24,7 @@ for i in `cd "${dir}"; ls kde-l10n-*-${release}.tar.bz2`; do
   hash=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
   echo "{"
   echo "  lang = \"${lang}\";"
+  echo "  saneName = \"$(echo $lang | sed s^@^_^g)\";"
   echo "  sha256 = \"${hash}\";"
   echo "}"
   echo $hash >&2
diff --git a/pkgs/desktops/kde-4.7/l10n/manifest-4.7.0.nix b/pkgs/desktops/kde-4.7/l10n/manifest-4.7.0.nix
new file mode 100644
index 000000000000..d9eba5199429
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/l10n/manifest-4.7.0.nix
@@ -0,0 +1,262 @@
+[
+{
+  lang = "ar";
+  saneName = "ar";
+  sha256 = "16533377hxcb6xy92qw74yp2cvyrmi5bjxjh62xbqf7m3967nj56";
+}
+{
+  lang = "bg";
+  saneName = "bg";
+  sha256 = "06i189a8z0z7jv9mi1cvxc1k57gmfsf207m28rg30jhbd4gd5py7";
+}
+{
+  lang = "bs";
+  saneName = "bs";
+  sha256 = "1sqcd5jdl04ax6r615rqs4nlsc4xc1xsvc8cdi5pplwilsys0flm";
+}
+{
+  lang = "ca";
+  saneName = "ca";
+  sha256 = "1ghhl6yxhcjakv41lznhdp1nx9jp7g75g305cz3n26nbpwaz4mkd";
+}
+{
+  lang = "ca@valencia";
+  saneName = "ca_valencia";
+  sha256 = "16sb3kcjc7s02sg9bi3678cdv7hqn3xlpcsa07iwgxdzgh6yp6x0";
+}
+{
+  lang = "cs";
+  saneName = "cs";
+  sha256 = "1g52dbp4jwn67p90jkd209csn3nrc1aznpsay5i9919240wsb4mm";
+}
+{
+  lang = "da";
+  saneName = "da";
+  sha256 = "168hd69gznsarvxbzgs7hjmxjhhxsccwjfgvf328qbcb88n7570w";
+}
+{
+  lang = "de";
+  saneName = "de";
+  sha256 = "07a5f6k22pkps3a0n1ph80f1affmmrlxf1v6ywxdna64si97za43";
+}
+{
+  lang = "el";
+  saneName = "el";
+  sha256 = "1kv1wx91mgsrkscx6jf9sjl2li5n8z39hnbiyl9zy2364ximjb3c";
+}
+{
+  lang = "en_GB";
+  saneName = "en_GB";
+  sha256 = "12y9m2c0kaigi0qdisw7w2dxf40xz3ihqkwk2x2vbivzsd91ai44";
+}
+{
+  lang = "es";
+  saneName = "es";
+  sha256 = "0manicnw3l3kg6qmwq7894cjlwh8091nw6s1w31qvpx7grxznp4w";
+}
+{
+  lang = "et";
+  saneName = "et";
+  sha256 = "06xm411l20qqgfv12wxbz3x6daahwlzpp07n3ifi7jh6wzv1j0nh";
+}
+{
+  lang = "eu";
+  saneName = "eu";
+  sha256 = "08y65gkpq2ziylddzk44d2rp8mprr3bayxsgl4zw8plmyj6p79fs";
+}
+{
+  lang = "fi";
+  saneName = "fi";
+  sha256 = "1xdgnn06psg84a60ssd85855jw93bi787aawyrh7n77q5za8rs83";
+}
+{
+  lang = "fr";
+  saneName = "fr";
+  sha256 = "1l6ljqy5aa6wbvkywi47mvkw28whcdwcdd3hrqy8kyxf064d5lk6";
+}
+{
+  lang = "ga";
+  saneName = "ga";
+  sha256 = "1nnh11hbqvb6gxgfp086algbjiw5j4rs5fxzl74i8935qhjz12pk";
+}
+{
+  lang = "gl";
+  saneName = "gl";
+  sha256 = "0sqgcjrzr422iy9qmyyzhmwah696gkv810xh6hd71yv3416wpnjk";
+}
+{
+  lang = "he";
+  saneName = "he";
+  sha256 = "1hid5izn5g63iaz634x2x7ahylf99ccjms21461lg4w72mb732f9";
+}
+{
+  lang = "hr";
+  saneName = "hr";
+  sha256 = "0kqk28rcdawdxz1h8dph1ik49ag2nxbbq3712fpjylswqa0dh4v3";
+}
+{
+  lang = "hu";
+  saneName = "hu";
+  sha256 = "1gnsvyw412j2k9maac2sflvfnv1mf4lwaqcxrhyb5zfvz7pflfqh";
+}
+{
+  lang = "ia";
+  saneName = "ia";
+  sha256 = "03a89wb03yc57d5nxvawdzvc7qzzcwj5r1gri7p6khjbl6r5gx63";
+}
+{
+  lang = "id";
+  saneName = "id";
+  sha256 = "0r0c7yd3sq4bwqa9l3j8fc7bhdfnr14q1270l2vvn1r4r9y4myb7";
+}
+{
+  lang = "is";
+  saneName = "is";
+  sha256 = "00m3sfrcawqva93w90y29lf747b43pmcgd97n6iii2alk8z1xc6b";
+}
+{
+  lang = "it";
+  saneName = "it";
+  sha256 = "1v6gl0bbml5ddz60sc7dk0pirnjdmpiqhksbyqbmx9d650x5jpm0";
+}
+{
+  lang = "ja";
+  saneName = "ja";
+  sha256 = "0y0nwy805w0x90kfmpkldjllaq5qrs031kl2r2v67n0i2i0g48n3";
+}
+{
+  lang = "kk";
+  saneName = "kk";
+  sha256 = "06fmh05ccbx58vprw4h1f4hqsv2gjkm0y982lajgrwpswc09kdrj";
+}
+{
+  lang = "km";
+  saneName = "km";
+  sha256 = "1l17xj681m29xladp8cb6vbwprvf7l5kj8iignyyziv7sw6v5fs9";
+}
+{
+  lang = "kn";
+  saneName = "kn";
+  sha256 = "0is1yarm4r5dcm424nha7p093rzndsqmkbgrj65q8szf8pdii3pz";
+}
+{
+  lang = "ko";
+  saneName = "ko";
+  sha256 = "1fr2ln91k910qbpkxsqxaf05bdgf2mg4jj4chxygqhwv1ffxj4f0";
+}
+{
+  lang = "lt";
+  saneName = "lt";
+  sha256 = "1m8iawglrznv1qsqsw2sns6fbbv52zs2wzmz793p4n1v67ly4n75";
+}
+{
+  lang = "lv";
+  saneName = "lv";
+  sha256 = "1p89fw17nfd77klr2dkrm98xahxqprq9a1906rl7m7jdrsh44zrd";
+}
+{
+  lang = "nb";
+  saneName = "nb";
+  sha256 = "082cjvczqlvzsgzwdlyqy8qvfdfcvxgj8fy4faxv5iaqdv4hzf1j";
+}
+{
+  lang = "nds";
+  saneName = "nds";
+  sha256 = "0vhg8hkg4iad0g0jmy9qb61z7bnyw9dmpnibwpn1sypq8cy1qgax";
+}
+{
+  lang = "nl";
+  saneName = "nl";
+  sha256 = "1nvkspaycgkx639cmjp0cv81fb8fjqmfw6r7r6fhq4gjyk6awdbl";
+}
+{
+  lang = "nn";
+  saneName = "nn";
+  sha256 = "03y7c4vn9ihz65bylmabcjsjssb9wc4j4nb9slb98dm97cqn015b";
+}
+{
+  lang = "pa";
+  saneName = "pa";
+  sha256 = "0vhf2bb4ii737hmg639s0h7pl38dxrpncvgl6l2lzv2nb3g92ihk";
+}
+{
+  lang = "pl";
+  saneName = "pl";
+  sha256 = "116ii59z71v3wlp9xd5ni3zk140i4s461l1wpqxx2p8lrs6087m6";
+}
+{
+  lang = "pt";
+  saneName = "pt";
+  sha256 = "04mh52cdg63nacs5mydmx244ljq39495bai4zm7viz1b0lkwhfi8";
+}
+{
+  lang = "pt_BR";
+  saneName = "pt_BR";
+  sha256 = "1fqsgxfxmsbadk32kgxskkjvbq4wb06gq26i4h41y3cbanw11r9v";
+}
+{
+  lang = "ro";
+  saneName = "ro";
+  sha256 = "04r6avdjd4pjnq6viprm5252jyqd73wiqc419y72vpxh39rri72k";
+}
+{
+  lang = "ru";
+  saneName = "ru";
+  sha256 = "0gdy3yjczgjigr1pfmwsjscgh9q7mvz11m82axw0989kvq34ryx3";
+}
+{
+  lang = "sk";
+  saneName = "sk";
+  sha256 = "0kgg6a0xy4cnij7g576rsixkn7b0c9l782zxn2brcnqlfqzyh3b7";
+}
+{
+  lang = "sl";
+  saneName = "sl";
+  sha256 = "1yf15mcyi0k9vmrmd0fqz265dsy2xr6fhf1wl3lljb0mqsyf0a8a";
+}
+{
+  lang = "sr";
+  saneName = "sr";
+  sha256 = "1cyw5kkpwq7yzhib6dlqln21fk3zfppalhw21rnfr0ih1znpaa1p";
+}
+{
+  lang = "sv";
+  saneName = "sv";
+  sha256 = "1kaq1zlgxb5z9bpfpnpznnv3yhqjr4wgdm47b5fcg149ha6q43hp";
+}
+{
+  lang = "th";
+  saneName = "th";
+  sha256 = "1yzbxwzd624akmby1bhfm74fp6p41fq38jxs8qdsflav531nz47z";
+}
+{
+  lang = "tr";
+  saneName = "tr";
+  sha256 = "1l1q154ib9wr8brp0pk6r0n7xz8kzdbhfb803kwg0ajhjddpihim";
+}
+{
+  lang = "ug";
+  saneName = "ug";
+  sha256 = "05zcz4rwvlc1gbcm7612rlvsbjnf293kiv902rms64smd3w8237r";
+}
+{
+  lang = "uk";
+  saneName = "uk";
+  sha256 = "04b5nj9q3x2cpc03awm09ijx0qzkvmxp9wb3cj3q4mhkd8n42k6i";
+}
+{
+  lang = "wa";
+  saneName = "wa";
+  sha256 = "10w1n2cni7mqf8fyy5gq699d9nw0fma1brq5a3wfwnxhlk7hxs6a";
+}
+{
+  lang = "zh_CN";
+  saneName = "zh_CN";
+  sha256 = "15xfbyf2m3lhd6q7imsmjxv81kw1ml286dh771gg4m668j7101pq";
+}
+{
+  lang = "zh_TW";
+  saneName = "zh_TW";
+  sha256 = "0d9gw75qq37yq3icz4mjqnqqar0vrmc6aly8pybg4qw167jzzqn6";
+}
+]
diff --git a/pkgs/desktops/kde-4.7/oxygen-icons.nix b/pkgs/desktops/kde-4.7/oxygen-icons.nix
new file mode 100644
index 000000000000..b8e272c20a2c
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/oxygen-icons.nix
@@ -0,0 +1,15 @@
+{ kde, cmake }:
+
+kde {
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "7d7f352f574f5747f16ac517cbe19d0b011adb74e7a0b791705afb3addac1e96";
+
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    description = "KDE Oxygen theme icons";
+    longDescription = "Icons for KDE's default theme";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.7/support/akonadi/default.nix b/pkgs/desktops/kde-4.7/support/akonadi/default.nix
new file mode 100644
index 000000000000..486849b23aad
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/support/akonadi/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, automoc4, soprano }:
+
+stdenv.mkDerivation rec {
+  name = "akonadi-1.6.0";
+  
+  src = fetchurl {
+    url = "mirror://kde/stable/akonadi/src/${name}.tar.bz2";
+    sha256 = "0bzr6476yyinvdhrn9z8ynmi0py9zs3dfhwk3dvqxysk87svk71f";
+  };
+  
+  buildInputs = [ cmake qt4 soprano automoc4 shared_mime_info libxslt boost ];
+
+  enableParallelBuilding = true;
+  
+  meta = with stdenv.lib; {
+    description = "KDE PIM Storage Service";
+    license = "LGPL";
+    homepage = http://pim.kde.org/akonadi;
+    maintainers = [ maintainers.sander maintainers.urkud ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/kde-4.6/support/soprano/default.nix b/pkgs/desktops/kde-4.7/support/soprano/default.nix
index dc23762f2b55..8d07f352d17d 100644
--- a/pkgs/desktops/kde-4.6/support/soprano/default.nix
+++ b/pkgs/desktops/kde-4.7/support/soprano/default.nix
@@ -1,15 +1,15 @@
-{stdenv, fetchurl, cmake, qt4, cluceneCore, redland, libiodbc}:
+{ stdenv, fetchurl, cmake, qt4, clucene_core, redland, libiodbc }:
 
 stdenv.mkDerivation rec {
-  name = "soprano-2.5.63";
+  name = "soprano-2.7.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/soprano/${name}.tar.bz2";
-    sha256 = "1i69pbfykgn2bp36hn1qk9sbw1yx4fnaa31bfxfdssfxli7ik6c4";
+    sha256 = "1ki92wg0i9nhn1fh5mdcls5h9h3lf2k5r66snsags4x7zw0dmv2z";
   };
 
   # We disable the Java backend, since we do not need them and they make the closure size much bigger
-  buildInputs = [ cmake qt4 cluceneCore redland libiodbc ];
+  buildInputs = [ cmake qt4 clucene_core redland libiodbc ];
 
   meta = {
     homepage = http://soprano.sourceforge.net/;
diff --git a/pkgs/desktops/xfce-4/applications/mousepad.nix b/pkgs/desktops/xfce-4.6/applications/mousepad.nix
index 920151282a80..920151282a80 100644
--- a/pkgs/desktops/xfce-4/applications/mousepad.nix
+++ b/pkgs/desktops/xfce-4.6/applications/mousepad.nix
diff --git a/pkgs/desktops/xfce-4/applications/ristretto.nix b/pkgs/desktops/xfce-4.6/applications/ristretto.nix
index 198421e21d3f..198421e21d3f 100644
--- a/pkgs/desktops/xfce-4/applications/ristretto.nix
+++ b/pkgs/desktops/xfce-4.6/applications/ristretto.nix
diff --git a/pkgs/desktops/xfce-4/applications/terminal.nix b/pkgs/desktops/xfce-4.6/applications/terminal.nix
index bd198a12af44..bd198a12af44 100644
--- a/pkgs/desktops/xfce-4/applications/terminal.nix
+++ b/pkgs/desktops/xfce-4.6/applications/terminal.nix
diff --git a/pkgs/desktops/xfce-4/applications/xfce4-mixer.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
index db28274be072..db28274be072 100644
--- a/pkgs/desktops/xfce-4/applications/xfce4-mixer.nix
+++ b/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
diff --git a/pkgs/desktops/xfce-4/applications/xfce4-power-manager.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
index 543b7660975f..543b7660975f 100644
--- a/pkgs/desktops/xfce-4/applications/xfce4-power-manager.nix
+++ b/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
diff --git a/pkgs/desktops/xfce-4/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
index a17267a336c3..a17267a336c3 100644
--- a/pkgs/desktops/xfce-4/art/xfce4-icon-theme.nix
+++ b/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
diff --git a/pkgs/desktops/xfce-4/core/exo.nix b/pkgs/desktops/xfce-4.6/core/exo.nix
index 53fc8fa8fcdf..53fc8fa8fcdf 100644
--- a/pkgs/desktops/xfce-4/core/exo.nix
+++ b/pkgs/desktops/xfce-4.6/core/exo.nix
diff --git a/pkgs/desktops/xfce-4/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
index bab382a263f0..bab382a263f0 100644
--- a/pkgs/desktops/xfce-4/core/gtk-xfce-engine.nix
+++ b/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
diff --git a/pkgs/desktops/xfce-4/core/libxfce4menu.nix b/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
index f8a0c1ba87c9..f8a0c1ba87c9 100644
--- a/pkgs/desktops/xfce-4/core/libxfce4menu.nix
+++ b/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
diff --git a/pkgs/desktops/xfce-4/core/libxfce4util.nix b/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
index 2625966bb587..2625966bb587 100644
--- a/pkgs/desktops/xfce-4/core/libxfce4util.nix
+++ b/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
diff --git a/pkgs/desktops/xfce-4/core/libxfcegui4.nix b/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix
index 52ee3a6262fc..52ee3a6262fc 100644
--- a/pkgs/desktops/xfce-4/core/libxfcegui4.nix
+++ b/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix
diff --git a/pkgs/desktops/xfce-4/core/thunar.nix b/pkgs/desktops/xfce-4.6/core/thunar.nix
index adbbd461c5ee..adbbd461c5ee 100644
--- a/pkgs/desktops/xfce-4/core/thunar.nix
+++ b/pkgs/desktops/xfce-4.6/core/thunar.nix
diff --git a/pkgs/desktops/xfce-4/core/xfce-utils.nix b/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
index 4f520058ccf1..4f520058ccf1 100644
--- a/pkgs/desktops/xfce-4/core/xfce-utils.nix
+++ b/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
diff --git a/pkgs/desktops/xfce-4/core/xfce4-panel.nix b/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
index b8a8c1458011..b8a8c1458011 100644
--- a/pkgs/desktops/xfce-4/core/xfce4-panel.nix
+++ b/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
diff --git a/pkgs/desktops/xfce-4/core/xfce4-session.nix b/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
index dc563502542a..dc563502542a 100644
--- a/pkgs/desktops/xfce-4/core/xfce4-session.nix
+++ b/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
diff --git a/pkgs/desktops/xfce-4/core/xfce4-settings.nix b/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
index b0bfadf8e525..b0bfadf8e525 100644
--- a/pkgs/desktops/xfce-4/core/xfce4-settings.nix
+++ b/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
diff --git a/pkgs/desktops/xfce-4/core/xfconf.nix b/pkgs/desktops/xfce-4.6/core/xfconf.nix
index b4c14ef043e2..b4c14ef043e2 100644
--- a/pkgs/desktops/xfce-4/core/xfconf.nix
+++ b/pkgs/desktops/xfce-4.6/core/xfconf.nix
diff --git a/pkgs/desktops/xfce-4/core/xfdesktop.nix b/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
index 83de4ed4dfe7..83de4ed4dfe7 100644
--- a/pkgs/desktops/xfce-4/core/xfdesktop.nix
+++ b/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
diff --git a/pkgs/desktops/xfce-4/core/xfwm4.nix b/pkgs/desktops/xfce-4.6/core/xfwm4.nix
index c7bab240691e..c7bab240691e 100644
--- a/pkgs/desktops/xfce-4/core/xfwm4.nix
+++ b/pkgs/desktops/xfce-4.6/core/xfwm4.nix
diff --git a/pkgs/desktops/xfce-4/default.nix b/pkgs/desktops/xfce-4.6/default.nix
index 6f2eaf1b4bfe..6f2eaf1b4bfe 100644
--- a/pkgs/desktops/xfce-4/default.nix
+++ b/pkgs/desktops/xfce-4.6/default.nix
diff --git a/pkgs/desktops/xfce-4.8/applications/mousepad.nix b/pkgs/desktops/xfce-4.8/applications/mousepad.nix
new file mode 100644
index 000000000000..920151282a80
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/applications/mousepad.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, libxfcegui4, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "mousepad-0.2.16";
+  
+  src = fetchurl {
+    url = "http://www.xfce.org/archive/src/apps/mousepad/0.2/${name}.tar.bz2";
+    sha1 = "4e63033e0a71578f3ec9a0d2e6a505efd0424ef9";
+  };
+
+  buildInputs = [ pkgconfig intltool libxfce4util libxfcegui4 gtk ];
+
+  meta = {
+    homepage = http://www.xfce.org/projects/mousepad/;
+    description = "A simple text editor for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/applications/ristretto.nix b/pkgs/desktops/xfce-4.8/applications/ristretto.nix
new file mode 100644
index 000000000000..50a67d95ee99
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/applications/ristretto.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk, thunar
+, exo, dbus_glib, libxfce4util, libxfce4ui, xfconf }:
+
+stdenv.mkDerivation rec {
+  name = "ristretto-0.0.93";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/apps/ristretto/0.0/${name}.tar.bz2";
+    sha1 = "c71acaad169633faffe26609f9cc671b04ff52d3";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool libexif gtk thunar exo dbus_glib
+      libxfce4util libxfce4ui xfconf
+    ];
+
+  NIX_LDFLAGS = "-lX11";
+
+  meta = {
+    homepage = http://goodies.xfce.org/projects/applications/ristretto;
+    description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/applications/terminal.nix b/pkgs/desktops/xfce-4.8/applications/terminal.nix
new file mode 100644
index 000000000000..cacb775f8f11
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/applications/terminal.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl
+, pkgconfig, ncurses
+, intltool, vte
+, exo, libxfce4util
+, gtk
+}:
+
+stdenv.mkDerivation {
+  name = "xfce-terminal-0.4.8";
+  
+  src = fetchurl {
+    url = http://archive.xfce.org/src/apps/terminal/0.4/Terminal-0.4.8.tar.bz2;
+    sha1 = "2f12c3a0fffad18976d47e531d404ee308cb2f05";
+  };
+
+  buildInputs = [ pkgconfig intltool exo gtk vte libxfce4util ncurses ];
+
+  meta = {
+    homepage = http://www.xfce.org/projects/terminal;
+    description = "A modern terminal emulator primarily for the Xfce desktop environment";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix b/pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix
new file mode 100644
index 000000000000..d34a5afb36ff
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/applications/xfce4-mixer.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, gst_all, gtk
+, libxfce4util, libxfce4ui, xfce4panel, xfconf }:
+
+let
+
+  # The usual Gstreamer plugins package has a zillion dependencies
+  # that we don't need for a simple mixer, so build a minimal package.
+  gstPluginsBase = gst_all.gstPluginsBase.override {
+    minimalDeps = true;
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "xfce4-mixer-4.8.0";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/apps/xfce4-mixer/4.8/${name}.tar.bz2";
+    sha1 = "24f3401a68f10d2c620e354a6de98e09fe808665";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool glib gst_all.gstreamer gstPluginsBase gtk
+      libxfce4util libxfce4ui xfce4panel xfconf
+    ];
+
+  postInstall =
+    ''
+      mkdir -p $out/nix-support
+      echo ${gstPluginsBase} > $out/nix-support/propagated-user-env-packages
+    '';
+
+  meta = {
+    homepage = http://www.xfce.org/projects/xfce4-mixer;
+    description = "A volume control application for the Xfce desktop environment";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix b/pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix
new file mode 100644
index 000000000000..b683ef71a0a7
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/applications/xfce4-power-manager.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, xfconf
+, libxfce4ui, libxfce4util, libnotify, xfce4panel }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-power-manager-1.0.10";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/apps/xfce4-power-manager/1.0/${name}.tar.bz2";
+    sha1 = "64dd7a8fae9cd1cbcf6403d2f51f2281f38cca05";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk dbus_glib xfconf libxfce4ui libxfce4util
+      libnotify xfce4panel
+    ];
+
+  meta = {
+    homepage = http://goodies.xfce.org/projects/applications/xfce4-power-manager;
+    description = "A power manager for the Xfce Desktop Environment";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix
new file mode 100644
index 000000000000..a17267a336c3
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/art/xfce4-icon-theme.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-icon-theme-4.4.3";
+  
+  src = fetchurl {
+    url = "http://www.xfce.org/archive/src/art/xfce4-icon-theme/4.4/${name}.tar.bz2";
+    sha1 = "0c0d0c45cd4a7f609310db8e9d17c1c4a131a6e7";
+  };
+
+  buildInputs = [ pkgconfig intltool gtk ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Icons for Xfce";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/exo.nix b/pkgs/desktops/xfce-4.8/core/exo.nix
new file mode 100644
index 000000000000..468132a2a81e
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/exo.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4util }:
+
+stdenv.mkDerivation rec {
+  name = "exo-0.6.2";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/exo/0.6/${name}.tar.bz2";
+    sha1 = "2486f12c814630068665e22cdf417f0f0f05dab1";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool URI glib gtk libxfce4util ];
+
+  meta = {
+    homepage = http://www.xfce.org/projects/exo;
+    description = "Application library for the Xfce desktop environment";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/garcon.nix b/pkgs/desktops/xfce-4.8/core/garcon.nix
new file mode 100644
index 000000000000..40b40541bf14
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/garcon.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib }:
+
+stdenv.mkDerivation rec {
+  name = "garcon-0.1.8";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/garcon/0.1/${name}.tar.bz2";
+    sha1 = "e5eac6a13208c81ccad0941656c01e7a69530f03";
+  };
+
+  buildInputs = [ pkgconfig intltool glib ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Xfce menu support library";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix
new file mode 100644
index 000000000000..7cca247ae441
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/gtk-xfce-engine.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gtk-xfce-engine-2.8.1";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/gtk-xfce-engine/2.8/${name}.tar.bz2";
+    sha1 = "d7779f07cc76585be063bc25fa91e660e1fd9c97";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "GTK+ theme engine for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/libxfce4ui.nix b/pkgs/desktops/xfce-4.8/core/libxfce4ui.nix
new file mode 100644
index 000000000000..c3551d565e10
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/libxfce4ui.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
+, libstartup_notification }:
+
+stdenv.mkDerivation rec {
+  name = "libxfce4ui-4.8.0";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/libxfce4ui/4.8/${name}.tar.bz2";
+    sha1 = "107f9d8e3e583f3cf5330074e89ea72eb2a82888";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util xfconf
+      libstartup_notification
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Basic GUI library for Xfce";
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/libxfce4util.nix b/pkgs/desktops/xfce-4.8/core/libxfce4util.nix
new file mode 100644
index 000000000000..1a2b64bc8fa9
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/libxfce4util.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, glib, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "libxfce4util-4.8.1";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/libxfce4util/4.8/${name}.tar.bz2";
+    sha1 = "4d26aea58413603e2c163ff0374a6e32fc47bc4c";
+  };
+
+  buildInputs = [ pkgconfig glib intltool ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Basic utility non-GUI functions for Xfce";
+    license = "bsd";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix b/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix
new file mode 100644
index 000000000000..20e82a2c92f8
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/libxfcegui4.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
+, libglade, libstartup_notification }:
+
+stdenv.mkDerivation rec {
+  name = "libxfcegui4-4.8.1";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/libxfcegui4/4.8/${name}.tar.bz2";
+    sha1 = "246fcaa71fc8cf44dae0b4c919411231eedd662f";
+  };
+
+  # By default, libxfcegui4 tries to install into libglade's prefix.
+  # Install into our own prefix instead.
+  preConfigure =
+    ''
+      configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0"
+    '';
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util libglade
+      libstartup_notification
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Basic GUI library for Xfce";
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/thunar.nix b/pkgs/desktops/xfce-4.8/core/thunar.nix
new file mode 100644
index 000000000000..c9ab76f2920c
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/thunar.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
+, dbus_glib, libstartup_notification, xfconf, xfce4panel, udev, libnotify }:
+
+stdenv.mkDerivation rec {
+  name = "thunar-1.2.2";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/thunar/1.2/Thunar-1.2.2.tar.bz2";
+    sha1 = "314e3d53ec7be1ea578da4d842ecc8dc5958b1bd";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk exo libxfce4util libxfce4ui
+      dbus_glib libstartup_notification xfconf xfce4panel udev libnotify
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://thunar.xfce.org/;
+    description = "Xfce file manager";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce-utils.nix b/pkgs/desktops/xfce-4.8/core/xfce-utils.nix
new file mode 100644
index 000000000000..58ef4fbef2a4
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/xfce-utils.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui }:
+
+stdenv.mkDerivation rec {
+  name = "xfce-utils-4.8.2";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/xfce-utils/4.8/${name}.tar.bz2";
+    sha1 = "c9358f47f57b961fc51008cf6752d2761b4c4f25";
+  };
+
+  configureFlags = "--with-xsession-prefix=$(out)/share/xsessions --with-vendor-info=NixOS.org";
+
+  buildInputs = [ pkgconfig intltool gtk libxfce4util libxfce4ui ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Utilities and scripts for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce4-panel.nix b/pkgs/desktops/xfce-4.8/core/xfce4-panel.nix
new file mode 100644
index 000000000000..0752d18d7f21
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/xfce4-panel.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, garcon
+, libxfce4ui, xfconf, libwnck, exo }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-panel-4.8.5";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/xfce4-panel/4.8/${name}.tar.bz2";
+    sha1 = "67b9d5bc422663f60f5a05e7cfd7ca67b4542813";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util garcon libxfce4ui xfconf
+      exo libwnck
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Xfce panel";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce4-session.nix b/pkgs/desktops/xfce-4.8/core/xfce4-session.nix
new file mode 100644
index 000000000000..c6f6234f473d
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/xfce4-session.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
+, libwnck, dbus_glib, xfconf, xorg, xfce4panel }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-session-4.8.1";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/xfce4-session/4.8/${name}.tar.bz2";
+    sha1 = "a33534e53fa36a38a1f9bd164469a9fb62c765a7";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck dbus_glib
+      xfconf xorg.iceauth xfce4panel
+    ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Session manager for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfce4-settings.nix b/pkgs/desktops/xfce-4.8/core/xfce4-settings.nix
new file mode 100644
index 000000000000..3515d2553c54
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/xfce4-settings.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
+, xfconf, xorg, libnotify, libxklavier }:
+
+stdenv.mkDerivation rec {
+  name = "xfce4-settings-4.8.2";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/xfce4-settings/4.8/${name}.tar.bz2";
+    sha1 = "402afe308944a315c385d2b1ed567f997d016b61";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool exo gtk libxfce4util libxfce4ui
+      xfconf libnotify xorg.libXcursor libxklavier
+    ];
+
+  configureFlags = "--enable-pluggable-dialogs --enable-sound-settings";
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Settings manager for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfconf.nix b/pkgs/desktops/xfce-4.8/core/xfconf.nix
new file mode 100644
index 000000000000..bb351c68d280
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/xfconf.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  name = "xfconf-4.8.0";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/xfconf/4.8/${name}.tar.bz2";
+    sha1 = "3f560b11d618171805bfb9e6a8290185c7ee5dcd";
+  };
+
+  buildInputs = [ pkgconfig intltool glib libxfce4util ];
+
+  propagatedBuildInputs = [ dbus_glib ];
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Simple client-server configuration storage and query system for Xfce";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfdesktop.nix b/pkgs/desktops/xfce-4.8/core/xfdesktop.nix
new file mode 100644
index 000000000000..3742686d2e3d
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/xfdesktop.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, libxfce4util
+, libxfce4ui, libwnck, xfconf, garcon, libnotify, exo }:
+
+stdenv.mkDerivation rec {
+  name = "xfdesktop-4.8.2";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/xfdesktop/4.8/${name}.tar.bz2";
+    sha1 = "fe7d71bb502197b0353b952947826a5a50ab13bc";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk dbus_glib libxfce4util libxfce4ui libwnck xfconf
+      garcon libnotify exo
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Xfce desktop manager";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/core/xfwm4.nix b/pkgs/desktops/xfce-4.8/core/xfwm4.nix
new file mode 100644
index 000000000000..7dc3c6539094
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/core/xfwm4.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, gtk, intltool, libxfce4util
+, libxfce4ui, xfconf, libwnck, libstartup_notification, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "xfwm4-4.8.1";
+  
+  src = fetchurl {
+    url = "http://archive.xfce.org/src/xfce/xfwm4/4.8/${name}.tar.bz2";
+    sha1 = "4075a689f572ae157ed80ab3ce5be85f09dac766";
+  };
+
+  buildInputs =
+    [ pkgconfig intltool gtk libxfce4util libxfce4ui xfconf
+      libwnck libstartup_notification
+      xorg.libXcomposite xorg.libXfixes xorg.libXdamage
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.xfce.org/;
+    description = "Window manager for Xfce";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce-4.8/default.nix b/pkgs/desktops/xfce-4.8/default.nix
new file mode 100644
index 000000000000..57098b12e3e9
--- /dev/null
+++ b/pkgs/desktops/xfce-4.8/default.nix
@@ -0,0 +1,68 @@
+{ callPackage, pkgs }:
+
+rec {
+  inherit (pkgs.gtkLibs) gtk glib;
+
+  #### CORE
+
+  libxfce4util = callPackage ./core/libxfce4util.nix { };
+
+  exo = callPackage ./core/exo.nix {
+    inherit (pkgs.perlPackages) URI;
+  };
+
+  xfconf = callPackage ./core/xfconf.nix { };
+  
+  libxfcegui4 = callPackage ./core/libxfcegui4.nix {
+    inherit (pkgs.gnome) libglade;
+  };
+
+  libxfce4ui = callPackage ./core/libxfce4ui.nix { };
+
+  xfwm4 = callPackage ./core/xfwm4.nix {
+    inherit (pkgs.gnome) libwnck;
+  };
+
+  xfceutils = callPackage ./core/xfce-utils.nix { };
+
+  garcon = callPackage ./core/garcon.nix { };
+
+  xfce4panel = callPackage ./core/xfce4-panel.nix {
+    inherit (pkgs.gnome) libwnck;
+  };
+
+  xfce4session = callPackage ./core/xfce4-session.nix {
+    inherit (pkgs.gnome) libwnck;
+  };
+
+  xfce4settings = callPackage ./core/xfce4-settings.nix { };
+
+  xfdesktop = callPackage ./core/xfdesktop.nix {
+    inherit (pkgs.gnome) libwnck;
+  };
+
+  thunar = callPackage ./core/thunar.nix { };
+
+  gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
+
+  # !!! Add xfce4-appfinder
+
+  #### APPLICATIONS
+  
+  terminal = callPackage ./applications/terminal.nix {
+    inherit (pkgs.gnome) vte;
+  };
+
+  mousepad = callPackage ./applications/mousepad.nix { };
+
+  ristretto = callPackage ./applications/ristretto.nix { };
+
+  xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { };
+
+  xfce4mixer = callPackage ./applications/xfce4-mixer.nix { };
+
+  #### ART
+
+  xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { };
+  
+}
diff --git a/pkgs/development/compilers/Agda-executable/default.nix b/pkgs/development/compilers/Agda-executable/default.nix
new file mode 100644
index 000000000000..02b1f0bfa935
--- /dev/null
+++ b/pkgs/development/compilers/Agda-executable/default.nix
@@ -0,0 +1,20 @@
+{ cabal, Agda }:
+
+cabal.mkDerivation (self: {
+  pname = "Agda-executable";
+  version = "2.2.10";
+  sha256 = "0jjlbz5vaz1pasfws1cy8wvllzdzv3sxm2lfj6bckl93kdrxlpy6";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ Agda ];
+  meta = {
+    homepage = "http://wiki.portal.chalmers.se/agda/";
+    description = "Command-line program for type-checking and compiling Agda programs";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix
index be5f83941aad..c08fc3ee5852 100644
--- a/pkgs/development/compilers/ecl/default.nix
+++ b/pkgs/development/compilers/ecl/default.nix
@@ -1,11 +1,13 @@
-a :  
+{builderDefsPackage
+  , gmp, mpfr, libffi
+  , ...} @ x:
+builderDefsPackage (a :  
 let 
   s = import ./src-for-default.nix;
-  buildInputs = with a; [
-  ];
   propagatedBuildInputs = with a; [
     gmp mpfr
   ];
+  buildInputs = [ gmp libffi mpfr ];
 in
 rec {
   src = a.fetchUrlFromSrcInfo s;
@@ -35,4 +37,4 @@ rec {
     platforms = with a.lib.platforms; 
       linux;
   };
-}
+}) x
diff --git a/pkgs/development/compilers/ecl/src-for-default.nix b/pkgs/development/compilers/ecl/src-for-default.nix
index 7a90597f5c8a..4de9821c3a71 100644
--- a/pkgs/development/compilers/ecl/src-for-default.nix
+++ b/pkgs/development/compilers/ecl/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="10.4.1";
-   name="ecl-10.4.1";
-   hash="0v1wqvvi2zvvmymsgxz7yvqbxf8py6kxani2f4i3bjkayblcypah";
-   url="http://downloads.sourceforge.net/project/ecls/ecls/10.4/ecl-${version}.tar.gz";
-   advertisedUrl="http://downloads.sourceforge.net/project/ecls/ecls/10.4/ecl-10.4.1.tar.gz";
+   version="11.1.1";
+   name="ecl-11.1.1";
+   hash="01rvxpa5cwggq1p39qgjm0sdixx3l6vlnhm2h9qrwji69s3wxb18";
+   url="http://downloads.sourceforge.net/project/ecls/ecls/11.1/ecl-${version}.tar.gz";
+   advertisedUrl="http://downloads.sourceforge.net/project/ecls/ecls/11.1/ecl-11.1.1.tar.gz";
   
   
 }
diff --git a/pkgs/development/compilers/epic/default.nix b/pkgs/development/compilers/epic/default.nix
index 99c59df3b710..936710888ee1 100644
--- a/pkgs/development/compilers/epic/default.nix
+++ b/pkgs/development/compilers/epic/default.nix
@@ -1,14 +1,23 @@
-{cabal, mtl, happy, gmp, boehmgc}:
+{ cabal, boehmgc, gmp, happy, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "epic";
-  version = "0.1.5";
-  sha256 = "5a3d94e88cb85beb3c13f3b9f3c00c6768e1b067ff88d40ea63d9961a92347ff";
-  propagatedBuildInputs = [mtl];
-  extraBuildInputs = [happy gmp boehmgc];
+  version = "0.1.11";
+  sha256 = "12dz1wjaf3n8fqk46vhpnxq9z633wi6wyihcmif7amxmqv3l8zn9";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  buildTools = [ happy ];
+  extraLibraries = [ boehmgc gmp ];
+  noHaddock = true;
   meta = {
-    description = "An experimental language with full dependent types";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.dcs.st-and.ac.uk/~eb/epic.php";
+    description = "Compiler for a simple functional language";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/compilers/flapjax/default.nix b/pkgs/development/compilers/flapjax/default.nix
index 699034718996..5167bf7d795f 100644
--- a/pkgs/development/compilers/flapjax/default.nix
+++ b/pkgs/development/compilers/flapjax/default.nix
@@ -1,25 +1,30 @@
-args:
-args.stdenv.mkDerivation {
-  name = "flapjax-source-20070514";
+{cabal, fetchurl, unzip, xhtml, WebBits, WebBitsHtml, JsContracts}:
 
-  src = args.fetchurl {
-    url = http://www.flapjax-lang.org/download/20070514/flapjax-source.tar.gz;
-    sha256 = "188dafpggbfdyciqhrjaq12q0q01z1rp3mpm2iixb0mvrci14flc";
-  };
+cabal.mkDerivation ( self: {
+  pname = "flapjax";
+  version = "2.1";
 
-  phases = "unpackPhase buildPhase";
+  src = fetchurl {
+    url = https://github.com/brownplt/flapjax/zipball/Flapjax-2.1;
+    name = "flapjax-2.1.zip";
+    sha256 = "1cp9g570528a813ljnvd1lb389iz0i6511xynf6kzryv8ckc1n7v";
+  };
 
-  buildPhase  = "
-    ensureDir \$out/bin
-    cd compiler;
-    ghc --make Fjc.hs -o \$out/bin/fjc
-  ";
+  # The Makefile copies some files to update the flapjax website into
+  # missing directories; the -p is to avoid these errors.
+  preConfigure = ''
+    cd fx
+    sed -i 's/mkdir/mkdir -p/' Makefile
+    make
+    cd ../compiler
+  '';
 
-  buildInputs =(with args; [ghc] ++ libs);
+  extraBuildInputs = [ unzip JsContracts ];
+  propagatedBuildInputs = [ xhtml WebBits WebBitsHtml ];
 
   meta = { 
       description = "programming language designed around the demands of modern, client-based Web applications";
       homepage = http://www.flapjax-lang.org/;
       license = "BSD";
   };
-}
+})
diff --git a/pkgs/development/compilers/fpc/default.nix b/pkgs/development/compilers/fpc/default.nix
index 080e82c9dddb..171612fe3481 100644
--- a/pkgs/development/compilers/fpc/default.nix
+++ b/pkgs/development/compilers/fpc/default.nix
@@ -3,12 +3,12 @@
 let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
 
 stdenv.mkDerivation rec {
-  version = "2.4.2";
+  version = "2.4.4";
   name = "fpc-${version}";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/sourceforge/freepascal/fpcbuild-${version}.tar.gz";
-    sha256 = "291f18a58259a2fc5f36593052f7a950f4872fbbbfb6a19a4e0188b4d5e5efbe";
+    url = "http://downloads.sourceforge.net/sourceforge/freepascal/Source/${version}/fpcbuild-${version}.tar.gz";
+    sha256 = "ecdbc150eecc33f5734e62f1a3507421db8eba6d9074c0c5519a8fc8ffe46924";
   };
 
   buildInputs = [ startFPC gawk ];
diff --git a/pkgs/development/compilers/fpc/lazarus.nix b/pkgs/development/compilers/fpc/lazarus.nix
index 2b7e40d1ffa3..d8830c4e2496 100644
--- a/pkgs/development/compilers/fpc/lazarus.nix
+++ b/pkgs/development/compilers/fpc/lazarus.nix
@@ -1,14 +1,14 @@
 args : with args; 
 rec {
-  version = "0.9.28.2-0";
+  version = "0.9.30";
   src = fetchurl {
-    url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%200.9.28.2/lazarus-0.9.28.2-src.tar.bz2";
-    sha256 = "1zad1sylgvhpb210zxypdyng72fpjz1zdf3cpqj9dl94cwn3f4ap";
+    url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20${version}/lazarus-${version}-src.tar.bz2";
+    sha256 = "ee8ba358e996a6f436f70d15e64976789c2b8f28b2e2dbf1b737de593b4d23e3";
   };
 
   buildInputs = [fpc gtk glib libXi inputproto 
     libX11 xproto libXext xextproto pango atk
-    stdenv.gcc makeWrapper];
+    stdenv.gcc makeWrapper gdk_pixbuf];
   configureFlags = [];
   makeFlags = [
     "LAZARUS_INSTALL_DIR=$out/lazarus/"
@@ -21,7 +21,7 @@ rec {
   phaseNames = ["preBuild" "doMakeInstall" "postInstall"];
 
   preBuild = fullDepEntry (''
-    export NIX_LDFLAGS='-lXi -lX11 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lc -lXext -lpango-1.0 -latk-1.0'
+    export NIX_LDFLAGS='-lXi -lX11 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lc -lXext -lpango-1.0 -latk-1.0 -lgdk_pixbuf-2.0 -lcairo'
     export LCL_PLATFORM=gtk2
     ensureDir $out/share
     tar xf ${fpc.src} --strip-components=1 -C $out/share -m
diff --git a/pkgs/development/compilers/gambit/src-for-default.nix b/pkgs/development/compilers/gambit/src-for-default.nix
index 6ea9d6bd2fcb..83d0c764561c 100644
--- a/pkgs/development/compilers/gambit/src-for-default.nix
+++ b/pkgs/development/compilers/gambit/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="v4_6_0";
-   name="gambit-v4_6_0";
-   hash="1hnczygq25r6hi1l6lh1sd4g382j2z0ji5bdd01lhr4i07dcvipd";
+   version="v4_6_1";
+   name="gambit-v4_6_1";
+   hash="0ad6c63dg5ggaamixxinvlf3128mra8xzss5chh66lkii4dc3m7g";
    url="http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-${version}-devel.tgz";
-   advertisedUrl="http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-v4_6_0-devel.tgz";
+   advertisedUrl="http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-v4_6_1-devel.tgz";
   
   
 }
diff --git a/pkgs/development/compilers/gcc-4.1/default.nix b/pkgs/development/compilers/gcc-4.1/default.nix
index c11c76acc89c..66bf48cb6e12 100644
--- a/pkgs/development/compilers/gcc-4.1/default.nix
+++ b/pkgs/development/compilers/gcc-4.1/default.nix
@@ -37,6 +37,8 @@ stdenv.mkDerivation {
   inherit noSysDirs profiledCompiler staticCompiler;
 
   buildInputs = [gmp mpfr texinfo];
+
+  enableParallelBuilding = true;
   
   configureFlags = "
     --disable-multilib
diff --git a/pkgs/development/compilers/gcc-4.4/update-gcc.sh b/pkgs/development/compilers/gcc-4.4/update-gcc.sh
index 1fb5a0c6e5ba..6b0bbb993309 100755
--- a/pkgs/development/compilers/gcc-4.4/update-gcc.sh
+++ b/pkgs/development/compilers/gcc-4.4/update-gcc.sh
@@ -21,16 +21,18 @@ options["g++"]="langCC"
 options["fortran"]="langFortran"
 options["java"]="langJava"
 options["ada"]="langAda"
+options["go"]="langGo"
 
 cat > "$out"<<EOF
 /* Automatically generated by \`$(basename $0)', do not edit.
    For GCC ${version}.  */
-{ fetchurl, optional, version, langC, langCC, langFortran, langJava, langAda }:
+{ fetchurl, optional, version, langC, langCC, langFortran, langJava, langAda,
+  langGo }:
 
 assert version == "${version}";
 EOF
 
-for component in core g++ fortran java ada
+for component in core g++ fortran java ada go
 do
     dir="ftp.gnu.org/gnu/gcc/gcc-${version}"
     file="gcc-${component}-${version}.tar.bz2"
@@ -44,7 +46,7 @@ do
 
     rm -f "${file}" "${file}.sig"
     wget "${url}.sig"
-    gpg --verify "${file}.sig" "${path}"
+    gpg --verify "${file}.sig" "${path}" || gpg2 --verify "${file}.sig" "${path}"
     rm "${file}.sig"
 
     cat >> "$out" <<EOF
diff --git a/pkgs/development/compilers/gcc-4.6/builder.sh b/pkgs/development/compilers/gcc-4.6/builder.sh
new file mode 100644
index 000000000000..8e1b3c8e4079
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/builder.sh
@@ -0,0 +1,251 @@
+source $stdenv/setup
+
+
+export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
+mkdir $NIX_FIXINC_DUMMY
+
+
+# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
+# Thing.
+export CPP="gcc -E"
+export CXXCPP="g++ -E"
+
+if test "$staticCompiler" = "1"; then
+    EXTRA_LDFLAGS="-static"
+else
+    EXTRA_LDFLAGS=""
+fi
+
+# GCC interprets empty paths as ".", which we don't want.
+if test -z "$CPATH"; then unset CPATH; fi
+if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi
+echo "\$CPATH is \`$CPATH'"
+echo "\$LIBRARY_PATH is \`$LIBRARY_PATH'"
+
+if test "$noSysDirs" = "1"; then
+
+    if test -e $NIX_GCC/nix-support/orig-libc; then
+
+        # Figure out what extra flags to pass to the gcc compilers
+        # being generated to make sure that they use our glibc.
+        extraFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
+        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
+
+        # Use *real* header files, otherwise a limits.h is generated
+        # that does not include Glibc's limits.h (notably missing
+        # SSIZE_MAX, which breaks the build).
+        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
+
+        # The path to the Glibc binaries such as `crti.o'.
+        glibc_libdir="$(cat $NIX_GCC/nix-support/orig-libc)/lib"
+        
+    else
+        # Hack: support impure environments.
+        extraFlags="-isystem /usr/include"
+        extraLDFlags="-L/usr/lib64 -L/usr/lib"
+        glibc_libdir="/usr/lib"
+        export NIX_FIXINC_DUMMY=/usr/include
+    fi
+
+    extraFlags="-I$NIX_FIXINC_DUMMY $extraFlags"
+    extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
+
+    # BOOT_CFLAGS defaults to `-g -O2'; since we override it below,
+    # make sure to explictly add them so that files compiled with the
+    # bootstrap compiler are optimized and (optionally) contain
+    # debugging information (info "(gccinstall) Building").
+    if test -n "$dontStrip"; then
+	extraFlags="-O2 -g $extraFlags"
+    else
+	# Don't pass `-g' at all; this saves space while building.
+	extraFlags="-O2 $extraFlags"
+    fi
+
+    EXTRA_FLAGS="$extraFlags"
+    for i in $extraLDFlags; do
+        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,$i"
+    done
+
+    if test -n "$targetConfig"; then
+        # Cross-compiling, we need gcc not to read ./specs in order to build
+        # the g++ compiler (after the specs for the cross-gcc are created).
+        # Having LIBRARY_PATH= makes gcc read the specs from ., and the build
+        # breaks. Having this variable comes from the default.nix code to bring
+        # gcj in.
+        unset LIBRARY_PATH
+        unset CPATH
+        if test -z "$crossStageStatic"; then
+            EXTRA_TARGET_CFLAGS="-B${libcCross}/lib -idirafter ${libcCross}/include"
+            EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib"
+        fi
+    else
+        if test -z "$NIX_GCC_CROSS"; then
+            EXTRA_TARGET_CFLAGS="$EXTRA_FLAGS"
+            EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS"
+        else
+            # This the case of cross-building the gcc.
+            # We need special flags for the target, different than those of the build
+            # Assertion:
+            test -e $NIX_GCC_CROSS/nix-support/orig-libc
+
+            # Figure out what extra flags to pass to the gcc compilers
+            # being generated to make sure that they use our glibc.
+            extraFlags="$(cat $NIX_GCC_CROSS/nix-support/libc-cflags)"
+            extraLDFlags="$(cat $NIX_GCC_CROSS/nix-support/libc-ldflags) $(cat $NIX_GCC_CROSS/nix-support/libc-ldflags-before)"
+
+            # Use *real* header files, otherwise a limits.h is generated
+            # that does not include Glibc's limits.h (notably missing
+            # SSIZE_MAX, which breaks the build).
+            NIX_FIXINC_DUMMY_CROSS=$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/include
+
+            # The path to the Glibc binaries such as `crti.o'.
+            glibc_libdir="$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/lib"
+
+            extraFlags="-I$NIX_FIXINC_DUMMY_CROSS $extraFlags"
+            extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
+
+            EXTRA_TARGET_CFLAGS="$extraFlags"
+            for i in $extraLDFlags; do
+                EXTRA_TARGET_LDFLAGS="$EXTRA_TARGET_LDFLAGS -Wl,$i"
+            done
+        fi
+    fi
+
+
+    # CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find
+    # the startfiles.
+    # FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx
+    # for the startfiles.
+    makeFlagsArray=( \
+        "${makeFlagsArray[@]}" \
+        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
+        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
+        CFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
+        CFLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
+        FLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
+        LDFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
+        LDFLAGS_FOR_TARGET="$EXTRA_TARGET_LDFLAGS $EXTRA_TARGET_LDFLAGS" \
+        )
+
+    if test -z "$targetConfig"; then
+        makeFlagsArray=( \
+            "${makeFlagsArray[@]}" \
+            BOOT_CFLAGS="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
+            BOOT_LDFLAGS="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
+            )
+    fi
+
+    if test -n "$targetConfig" -a "$crossStageStatic" == 1; then
+        # We don't want the gcc build to assume there will be a libc providing
+        # limits.h in this stagae
+        makeFlagsArray=( \
+            "${makeFlagsArray[@]}" \
+            LIMITS_H_TEST=false \
+            )
+    else
+        makeFlagsArray=( \
+            "${makeFlagsArray[@]}" \
+            LIMITS_H_TEST=true \
+            )
+    fi
+fi
+
+if test -n "$targetConfig"; then
+    # The host strip will destroy some important details of the objects
+    dontStrip=1
+fi
+
+
+preConfigure() {
+    if test -n "$newlibSrc"; then
+        tar xvf "$newlibSrc" -C ..
+        ln -s ../newlib-*/newlib newlib
+        # Patch to get armvt5el working:
+        sed -i -e 's/ arm)/ arm*)/' newlib/configure.host
+    fi
+    # Bug - they packaged zlib
+    if test -d "zlib"; then
+        # This breaks the build without-headers, which should build only
+        # the target libgcc as target libraries.
+        # See 'configure:5370'
+        rm -Rf zlib
+    fi
+
+    if test -f "$NIX_GCC/nix-support/orig-libc"; then
+        # Patch the configure script so it finds glibc headers.  It's
+        # important for example in order not to get libssp built,
+        # because its functionality is in glibc already.
+        glibc_headers="$(cat $NIX_GCC/nix-support/orig-libc)/include"
+        sed -i \
+            -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$glibc_headers", \
+            gcc/configure
+    fi
+
+    if test -n "$crossMingw" -a -n "$crossStageStatic"; then
+        mkdir -p ../mingw
+        # --with-build-sysroot expects that:
+        cp -R $libcCross/include ../mingw
+        configureFlags="$configureFlags --with-build-sysroot=`pwd`/.."
+    fi
+
+    # Perform the build in a different directory.
+    mkdir ../build
+    cd ../build
+    configureScript=../$sourceRoot/configure
+}
+
+
+postConfigure() {
+    # Don't store the configure flags in the resulting executables.
+    sed -e '/TOPLEVEL_CONFIGURE_ARGUMENTS=/d' -i Makefile
+}
+
+
+postInstall() {
+    # Remove precompiled headers for now.  They are very big and
+    # probably not very useful yet.
+    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
+
+    # Remove `fixincl' to prevent a retained dependency on the
+    # previous gcc.
+    rm -rf $out/libexec/gcc/*/*/install-tools
+    rm -rf $out/lib/gcc/*/*/install-tools
+    
+    # More dependencies with the previous gcc or some libs (gccbug stores the build command line)
+    rm -rf $out/bin/gccbug
+    # Take out the bootstrap-tools from the rpath, as it's not needed at all having $out
+    for i in $out/libexec/gcc/*/*/*; do
+        if PREV_RPATH=`patchelf --print-rpath $i`; then
+            patchelf --set-rpath `echo $PREV_RPATH | sed 's,:[^:]*bootstrap-tools/lib,,'` $i
+        fi
+    done
+
+    # Get rid of some "fixed" header files
+    rm -rf $out/lib/gcc/*/*/include/root
+
+    # Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks.
+    for i in $out/bin/*-gcc*; do
+        if cmp -s $out/bin/gcc $i; then
+            ln -sfn gcc $i
+        fi
+    done
+
+    for i in $out/bin/c++ $out/bin/*-c++* $out/bin/*-g++*; do
+        if cmp -s $out/bin/g++ $i; then
+            ln -sfn g++ $i
+        fi
+    done
+
+    eval "$postInstallGhdl"
+}
+
+
+if test -z "$targetConfig" && test -z "$crossConfig"; then
+    if test -z "$profiledCompiler"; then
+        buildFlags="bootstrap $buildFlags"
+    else    
+        buildFlags="profiledbootstrap $buildFlags"
+    fi
+fi
+
+genericBuild
diff --git a/pkgs/development/compilers/gcc-4.6/default.nix b/pkgs/development/compilers/gcc-4.6/default.nix
new file mode 100644
index 000000000000..6b484a098774
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/default.nix
@@ -0,0 +1,448 @@
+{ stdenv, fetchurl, noSysDirs
+, langC ? true, langCC ? true, langFortran ? false, langTreelang ? false
+, langJava ? false
+, langAda ? false
+, langVhdl ? false
+, langGo ? false
+, profiledCompiler ? false
+, staticCompiler ? false
+, enableShared ? true
+, texinfo ? null
+, perl ? null # optional, for texi2pod (then pod2man); required for Java
+, gmp, mpfr, mpc, gettext, which
+, libelf                      # optional, for link-time optimizations (LTO)
+, ppl ? null, cloogppl ? null, cloog ? null # optional, for the Graphite optimization framework. Cannot pass both cloog and cloogppl
+, bison ? null, flex ? null
+, zlib ? null, boehmgc ? null
+, zip ? null, unzip ? null, pkgconfig ? null, gtk ? null, libart_lgpl ? null
+, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
+, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null
+, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null
+, gnatboot ? null
+, enableMultilib ? false
+, name ? "gcc"
+, cross ? null
+, binutilsCross ? null
+, libcCross ? null
+, crossStageStatic ? true
+, gnat ? null
+, libpthread ? null, libpthreadCross ? null  # required for GNU/Hurd
+, stripped ? true
+}:
+
+assert langTreelang -> bison != null && flex != null;
+assert langJava     -> zip != null && unzip != null
+                       && zlib != null && boehmgc != null
+                       && perl != null;  # for `--enable-java-home'
+assert langAda      -> gnatboot != null;
+assert langVhdl     -> gnat != null;
+
+# LTO needs libelf and zlib.
+assert libelf != null -> zlib != null;
+
+# Cannot use both cloog and cloog-ppl
+assert cloog != null -> cloogppl == null;
+
+with stdenv.lib;
+with builtins;
+
+let version = "4.6.1";
+    javaEcj = fetchurl {
+      # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
+      # `configure' time.
+
+      # XXX: Eventually we might want to take it from upstream.
+      url = "ftp://sourceware.org/pub/java/ecj-4.3.jar";
+      sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx";
+    };
+
+    # Antlr (optional) allows the Java `gjdoc' tool to be built.  We want a
+    # binary distribution here to allow the whole chain to be bootstrapped.
+    javaAntlr = fetchurl {
+      url = http://www.antlr.org/download/antlr-3.1.3.jar;
+      sha256 = "1f41j0y4kjydl71lqlvr73yagrs2jsg1fjymzjz66mjy7al5lh09";
+    };
+
+    xlibs = [
+      libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
+      xproto renderproto xextproto inputproto randrproto
+    ];
+
+    javaAwtGtk = langJava && gtk != null;
+
+    /* Cross-gcc settings */
+    gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
+    gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
+    gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
+    withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+    withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+    withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+    crossMingw = (cross != null && cross.libc == "msvcrt");
+
+    crossConfigureFlags =
+      "--target=${cross.config}" +
+      withArch +
+      withCpu +
+      withAbi +
+      (if (crossMingw && crossStageStatic) then
+        " --with-headers=${libcCross}/include" +
+        " --with-gcc" +
+        " --with-gnu-as" +
+        " --with-gnu-ld" +
+        " --with-gnu-ld" +
+        " --disable-shared" +
+        " --disable-nls" +
+        " --disable-debug" +
+        " --enable-sjlj-exceptions" +
+        " --enable-threads=win32" +
+        " --disable-win32-registry"
+        else if crossStageStatic then
+        " --disable-libssp --disable-nls" +
+        " --without-headers" +
+        " --disable-threads " +
+        " --disable-libmudflap " +
+        " --disable-libgomp " +
+        " --disable-libquadmath" +
+        " --disable-shared" +
+        " --disable-decimal-float" # libdecnumber requires libc
+        else
+        " --with-headers=${libcCross}/include" +
+        " --enable-__cxa_atexit" +
+        " --enable-long-long" +
+        (if crossMingw then
+          " --enable-threads=win32" +
+          " --enable-sjlj-exceptions" +
+          " --enable-hash-synchronization" +
+          " --enable-version-specific-runtime-libs" +
+          " --disable-libssp" +
+          " --disable-nls" +
+          " --with-dwarf2"
+          else
+          " --enable-threads=posix" +
+          " --enable-nls" +
+          " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
+        );
+    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+      "-stage-final";
+    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+
+in
+
+# We need all these X libraries when building AWT with GTK+.
+assert gtk != null -> (filter (x: x == null) xlibs) == [];
+
+stdenv.mkDerivation ({
+  name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
+
+  builder = ./builder.sh;
+
+  src = (import ./sources.nix) {
+    inherit fetchurl optional version;
+    inherit langC langCC langFortran langJava langAda langGo;
+  };
+
+  patches =
+    [ ]
+    ++ optional (cross != null) ./libstdc++-target.patch
+    ++ optional noSysDirs ./no-sys-dirs.patch
+    # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
+    # target libraries and tools.
+    ++ optional langAda ./gnat-cflags.patch
+    ++ optional langVhdl ./ghdl-ortho-cflags.patch
+    ;
+
+  postPatch =
+    if (stdenv.system == "i586-pc-gnu"
+        || (cross != null && cross.config == "i586-pc-gnu"
+            && libcCross != null))
+    then
+      # On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
+      # in glibc, so add the right `-I' flags to the default spec string.
+      let
+        libc = if cross != null then libcCross else stdenv.glibc;
+        gnu_h = "gcc/config/gnu.h";
+        i386_gnu_h = "gcc/config/i386/gnu.h";
+        extraCPPDeps =
+             libc.propagatedBuildInputs
+          ++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
+          ++ stdenv.lib.optional (libpthread != null) libpthread;
+        extraCPPSpec =
+          concatStrings (intersperse " "
+                          (map (x: "-I${x}/include") extraCPPDeps));
+        extraLibSpec =
+          if libpthreadCross != null
+          then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
+          else "-L${libpthread}/lib";
+      in
+        '' echo "augmenting \`CPP_SPEC' in \`${i386_gnu_h}' with \`${extraCPPSpec}'..."
+           sed -i "${i386_gnu_h}" \
+               -es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
+
+           echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
+           sed -i "${gnu_h}" \
+               -es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
+        ''
+    else if cross != null || stdenv.gcc.libc != null then
+      # On NixOS, use the right path to the dynamic linker instead of
+      # `/lib/ld*.so'.
+      let
+        libc = if (cross != null && libcCross != null) then libcCross else stdenv.gcc.libc;
+      in
+        '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
+           for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
+           do
+             grep -q LIBC_DYNAMIC_LINKER "$header" || continue
+             echo "  fixing \`$header'..."
+             sed -i "$header" \
+                 -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc}\3"|g'
+           done
+        ''
+    else null;
+
+  inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
+    libcCross crossMingw;
+
+  buildNativeInputs = [ texinfo which ]
+    ++ optional langJava perl;
+
+  buildInputs = [ gmp mpfr mpc libelf gettext ]
+    ++ (optional (ppl != null) ppl)
+    ++ (optional (cloogppl != null) cloogppl)
+    ++ (optional (cloog != null) cloog)
+    ++ (optionals langTreelang [bison flex])
+    ++ (optional (zlib != null) zlib)
+    ++ (optionals langJava [ boehmgc zip unzip ])
+    ++ (optionals javaAwtGtk [gtk pkgconfig libart_lgpl] ++ xlibs)
+    ++ (optionals (cross != null) [binutilsCross])
+    ++ (optionals langAda [gnatboot])
+    ++ (optionals langVhdl [gnat])
+    ;
+
+  configureFlagsArray = stdenv.lib.optionals
+    (ppl != null && ppl.dontDisableStatic == true)
+        [ "--with-host-libstdcxx=-lstdc++ -lgcc_s" ];
+
+  configureFlags = "
+    ${if enableMultilib then "" else "--disable-multilib"}
+    ${if enableShared then "" else "--disable-shared"}
+    ${if ppl != null then "--with-ppl=${ppl}" else ""}
+    ${if cloogppl != null then "--with-cloog=${cloogppl}" else ""}
+    ${if cloog != null then 
+      "--with-cloog=${cloog} --enable-cloog-backend=isl" 
+      else ""}
+    ${if langJava then
+      "--with-ecj-jar=${javaEcj} " +
+
+      # Follow Sun's layout for the convenience of IcedTea/OpenJDK.  See
+      # <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008888.html>.
+      "--enable-java-home --with-java-home=\${prefix}/lib/jvm/jre "
+      else ""}
+    ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
+    ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr}" else ""}
+    --with-gmp=${gmp}
+    --with-mpfr=${mpfr}
+    --with-mpc=${mpc}
+    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    --disable-libstdcxx-pch
+    --without-included-gettext
+    --with-system-zlib
+    --enable-languages=${
+      concatStrings (intersperse ","
+        (  optional langC        "c"
+        ++ optional langCC       "c++"
+        ++ optional langFortran  "fortran"
+        ++ optional langJava     "java"
+        ++ optional langTreelang "treelang"
+        ++ optional langAda      "ada"
+        ++ optional langVhdl     "vhdl"
+        ++ optional langGo       "go"
+        )
+      )
+    }
+    ${ # Trick that should be taken out once we have a mips64-linux not loongson2f
+      if cross == null && stdenv.system == "mips64-linux" then "--with-arch=loongson2f" else ""}
+    ${if langAda then " --enable-libada" else ""}
+    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross != null then crossConfigureFlags else ""}
+  ";
+
+  targetConfig = if (cross != null) then cross.config else null;
+
+  installTargets =
+    if stripped
+    then "install-strip"
+    else "install";
+
+  crossAttrs = {
+    AR = "${stdenv.cross.config}-ar";
+    LD = "${stdenv.cross.config}-ld";
+    CC = "${stdenv.cross.config}-gcc";
+    CXX = "${stdenv.cross.config}-gcc";
+    AR_FOR_TARGET = "${stdenv.cross.config}-ar";
+    LD_FOR_TARGET = "${stdenv.cross.config}-ld";
+    CC_FOR_TARGET = "${stdenv.cross.config}-gcc";
+    NM_FOR_TARGET = "${stdenv.cross.config}-nm";
+    CXX_FOR_TARGET = "${stdenv.cross.config}-g++";
+    # If we are making a cross compiler, cross != null
+    NIX_GCC_CROSS = if cross == null then "${stdenv.gccCross}" else "";
+    dontStrip = true;
+    configureFlags = ''
+      ${if enableMultilib then "" else "--disable-multilib"}
+      ${if enableShared then "" else "--disable-shared"}
+      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
+      ${if cloogppl != null then "--with-cloog=${cloogppl.hostDrv}" else ""}
+      ${if cloog != null then "--with-cloog=${cloog.hostDrv} --enable-cloog-backend=isl" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
+      --with-gmp=${gmp.hostDrv}
+      --with-mpfr=${mpfr.hostDrv}
+      --disable-libstdcxx-pch
+      --without-included-gettext
+      --with-system-zlib
+      --enable-languages=${
+        concatStrings (intersperse ","
+          (  optional langC        "c"
+          ++ optional langCC       "c++"
+          ++ optional langFortran  "fortran"
+          ++ optional langJava     "java"
+          ++ optional langTreelang "treelang"
+          ++ optional langAda      "ada"
+          ++ optional langVhdl     "vhdl"
+          ++ optional langGo       "go"
+          )
+        )
+      }
+      ${if langAda then " --enable-libada" else ""}
+      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross != null then crossConfigureFlags else ""}
+      --target=${stdenv.cross.config}
+    '';
+  };
+ 
+
+  # Needed for the cross compilation to work
+  AR = "ar";
+  LD = "ld";
+  CC = "gcc";
+
+  # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find
+  # the library headers and binaries, regarless of the language being
+  # compiled.
+
+  # Note: When building the Java AWT GTK+ peer, the build system doesn't
+  # honor `--with-gmp' et al., e.g., when building
+  # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
+  # add them to $CPATH and $LIBRARY_PATH in this case.
+  #
+  # Likewise, the LTO code doesn't find zlib.
+
+  CPATH = concatStrings
+            (intersperse ":" (map (x: x + "/include")
+                                  (optionals (zlib != null) [ zlib ]
+                                   ++ optionals langJava [ boehmgc ]
+                                   ++ optionals javaAwtGtk xlibs
+                                   ++ optionals javaAwtGtk [ gmp mpfr ]
+                                   ++ optional (libpthread != null) libpthread
+                                   ++ optional (libpthreadCross != null) libpthreadCross
+
+                                   # On GNU/Hurd glibc refers to Mach & Hurd
+                                   # headers.
+                                   ++ optionals (libcCross != null &&
+                                                 hasAttr "propagatedBuildInputs" libcCross)
+                                        libcCross.propagatedBuildInputs)));
+
+  LIBRARY_PATH = concatStrings
+                   (intersperse ":" (map (x: x + "/lib")
+                                         (optionals (zlib != null) [ zlib ]
+                                          ++ optionals langJava [ boehmgc ]
+                                          ++ optionals javaAwtGtk xlibs
+                                          ++ optionals javaAwtGtk [ gmp mpfr ]
+                                          ++ optional (libpthread != null) libpthread)));
+
+  EXTRA_TARGET_CFLAGS =
+    if cross != null && libcCross != null
+    then "-idirafter ${libcCross}/include"
+    else null;
+
+  EXTRA_TARGET_LDFLAGS =
+    if cross != null && libcCross != null
+    then "-B${libcCross}/lib -Wl,-L${libcCross}/lib" +
+         (optionalString (libpthreadCross != null)
+           " -L${libpthreadCross}/lib -Wl,${libpthreadCross.TARGET_LDFLAGS}")
+    else null;
+
+  passthru = { inherit langC langCC langAda langFortran langTreelang langVhdl
+      langGo enableMultilib version; };
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://gcc.gnu.org/;
+    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    description = "GNU Compiler Collection, version ${version}"
+      + (if stripped then "" else " (with debugging info)");
+
+    longDescription = ''
+      The GNU Compiler Collection includes compiler front ends for C, C++,
+      Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
+      as libraries for these languages (libstdc++, libgcj, libgomp,...).
+
+      GCC development is a part of the GNU Project, aiming to improve the
+      compiler used in the GNU system including the GNU/Linux variant.
+    '';
+
+    maintainers = [
+      stdenv.lib.maintainers.ludo
+      stdenv.lib.maintainers.viric
+      stdenv.lib.maintainers.shlevy
+    ];
+
+    # Volunteers needed for the {Cyg,Dar}win ports of *PPL.
+    # gnatboot is not available out of linux platforms, so we disable the darwin build
+    # for the gnat (ada compiler).
+    platforms = stdenv.lib.platforms.linux ++ optionals (langAda == false && libelf == null) [ "i686-darwin" ];
+  };
+}
+
+// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
+  makeFlags = [ "all-gcc" "all-target-libgcc" ];
+  installTargets = "install-gcc install-target-libgcc";
+}
+
+// optionalAttrs (!stripped) { dontStrip = true; NIX_STRIP_DEBUG = false; }
+
+// optionalAttrs langVhdl rec {
+  name = "ghdl-0.29";
+
+  ghdlSrc = fetchurl {
+    url = "http://ghdl.free.fr/ghdl-0.29.tar.bz2";
+    sha256 = "15mlinr1lwljwll9ampzcfcrk9bk0qpdks1kxlvb70xf9zhh2jva";
+  };
+
+  # Ghdl has some timestamps checks, storing file timestamps in '.cf' files.
+  # As we will change the timestamps to 1970-01-01 00:00:01, we also set the
+  # content of that .cf to that value. This way ghdl does not complain on
+  # the installed object files from the basic libraries (ieee, ...)
+  postInstallGhdl = ''
+    pushd $out
+    find . -name "*.cf" -exec \
+        sed 's/[0-9]*\.000" /19700101000001.000" /g' -i {} \;
+    popd
+  '';
+
+  postUnpack = ''
+    tar xvf ${ghdlSrc}
+    mv ghdl-*/vhdl gcc*/gcc
+    rm -Rf ghdl-*
+  '';
+
+  meta = {
+    homepage = "http://ghdl.free.fr/";
+    license = "GPLv2+";
+    description = "Complete VHDL simulator, using the GCC technology (gcc ${version})";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+
+})
diff --git a/pkgs/development/compilers/gcc-4.6/ghdl-ortho-cflags.patch b/pkgs/development/compilers/gcc-4.6/ghdl-ortho-cflags.patch
new file mode 100644
index 000000000000..901534591c8f
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/ghdl-ortho-cflags.patch
@@ -0,0 +1,111 @@
+diff --git a/gcc/vhdl/Make-lang.in b/gcc/vhdl/Make-lang.in
+index 8f481df..681ac59 100644
+--- a/gcc/vhdl/Make-lang.in
++++ b/gcc/vhdl/Make-lang.in
+@@ -96,7 +96,7 @@ AGCC_GCCOBJ_DIR=../
+ AGCC_INC_FLAGS=-I$(AGCC_GCCOBJ_DIR)/gcc -I$(AGCC_GCCSRC_DIR)/include \
+  -I$(AGCC_GCCSRC_DIR)/gcc -I$(AGCC_GCCSRC_DIR)/gcc/config \
+  -I$(AGCC_GCCSRC_DIR)/libcpp/include
+-AGCC_CFLAGS=-g -Wall -DIN_GCC $(AGCC_INC_FLAGS)
++AGCC_CFLAGS=-g -Wall -DIN_GCC $(AGCC_INC_FLAGS) $(CFLAGS) $(INCLUDES)
+ 
+ AGCC_LOCAL_OBJS=ortho-lang.o
+ 
+@@ -140,7 +140,7 @@ ghdl$(exeext): force
+ 
+ # Ghdl libraries.
+ ghdllib: ghdl$(exeext) $(GCC_PASSES) force
+-	$(MAKE_IN_VHDL) GRT_FLAGS="-O -g" ghdllib
++	$(MAKE_IN_VHDL) GRT_FLAGS="-O -g $(CFLAGS)" ghdllib
+ 
+ # Build hooks:
+ 
+diff --git a/gcc/vhdl/Makefile.in b/gcc/vhdl/Makefile.in
+index d754c6c..07abc4a 100644
+--- a/gcc/vhdl/Makefile.in
++++ b/gcc/vhdl/Makefile.in
+@@ -80,7 +80,8 @@ T_CPPFLAGS =
+ X_ADAFLAGS =
+ T_ADAFLAGS =
+ 
+-ADAC = $(CC)
++# Never use the bootstrapped compiler, as it may not be built for ada
++ADAC = gcc
+ 
+ ECHO = echo
+ CHMOD = chmod
+diff --git a/gcc/vhdl/ortho-lang.c b/gcc/vhdl/ortho-lang.c
+index 84aeb92..8eddd42 100644
+--- a/gcc/vhdl/ortho-lang.c
++++ b/gcc/vhdl/ortho-lang.c
+@@ -16,6 +16,7 @@
+ #include "options.h"
+ #include "real.h"
+-#include "tree-gimple.h"
++#include "gimple.h"
++#include "tree.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "target.h"
+@@ -680,38 +681,10 @@ type_for_mode (enum machine_mode mode, int unsignedp)
+ 
+ const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
+ 
+-/* Tree code classes.  */
+-
+-#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE,
+-
+-const enum tree_code_class tree_code_type[] = {
+-#include "tree.def"
+-  'x'
+-};
+-#undef DEFTREECODE
+-
+-/* Table indexed by tree code giving number of expression
+-   operands beyond the fixed part of the node structure.
+-   Not used for types or decls.  */
+-
+-#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH,
+-
+-const unsigned char tree_code_length[] = {
+-#include "tree.def"
+-  0
+-};
+-#undef DEFTREECODE
+-
+-#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) NAME,
+-const char * const tree_code_name[] = {
+-#include "tree.def"
+-  "@@dummy"
+-};
+-#undef DEFTREECODE
+ 
+ union lang_tree_node 
+   GTY((desc ("0"),
+-       chain_next ("(union lang_tree_node *) GENERIC_NEXT (&%h.generic)")))
++       chain_next ("(union lang_tree_node *) TREE_CHAIN (&%h.generic)")))
+ {
+   union tree_node GTY ((tag ("0"))) generic;
+ };
+@@ -1162,7 +1135,7 @@ new_access_type (tree dtype)
+       res = make_node (POINTER_TYPE);
+       TREE_TYPE (res) = NULL_TREE;
+       /* Seems necessary.  */
+-      TYPE_MODE (res) = Pmode;
++      SET_TYPE_MODE (res, Pmode);
+       layout_type (res);
+       return res;
+     }
+diff --git a/gcc/vhdl/Make-lang.in b/gcc/vhdl/Make-lang.in
+index e201f64..f36fb97 100644
+--- a/gcc/vhdl/Make-lang.in
++++ b/gcc/vhdl/Make-lang.in
+@@ -132,7 +132,7 @@ ghdl1$(exeext): $(AGCC_OBJS) $(AGCC_DEPS) force
+ 	 -cargs $(CFLAGS) $(GHDL_ADAFLAGS)
+ 	$(GNATMAKE) -o $@ -aI$(srcdir)/vhdl -aOvhdl ortho_gcc-main \
+ 	 -bargs -E -cargs $(CFLAGS) $(GHDL_ADAFLAGS) \
+-	 -largs $(AGCC_OBJS) $(LIBS) $(GMPLIBS)
++	 -largs $(AGCC_OBJS) $(LIBS) $(GMPLIBS) $(CLOOGLIBS) $(PPLLIBS)
+ 
+ # The driver for ghdl.
+ ghdl$(exeext): force
diff --git a/pkgs/development/compilers/gcc-4.6/gnat-cflags.patch b/pkgs/development/compilers/gcc-4.6/gnat-cflags.patch
new file mode 100644
index 000000000000..bf2acf065e9b
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/gnat-cflags.patch
@@ -0,0 +1,33 @@
+diff --git a/libada/Makefile.in b/libada/Makefile.in
+index f5057a0..337e0c6 100644
+--- a/libada/Makefile.in
++++ b/libada/Makefile.in
+@@ -55,7 +55,7 @@ GCC_WARN_CFLAGS = $(LOOSE_WARN)
+ WARN_CFLAGS = @warn_cflags@
+ 
+ TARGET_LIBGCC2_CFLAGS=
+-GNATLIBCFLAGS= -g -O2
++GNATLIBCFLAGS= -g -O2 $(CFLAGS)
+ GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
+ 	-DIN_RTS @have_getipinfo@
+ 
+--- a/gcc/ada/gcc-interface/Makefile.in
++++ b/gcc/ada/gcc-interface/Makefile.in
+@@ -105,7 +105,7 @@ ADAFLAGS = -W -Wall -gnatpg -gnata
+ SOME_ADAFLAGS =-gnata
+ FORCE_DEBUG_ADAFLAGS = -g
+ GNATLIBFLAGS = -gnatpg -nostdinc
+-GNATLIBCFLAGS = -g -O2
++GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET)
+ # Pretend that _Unwind_GetIPInfo is available for the target by default.  This
+ # should be autodetected during the configuration of libada and passed down to
+ # here, but we need something for --disable-libada and hope for the best.
+@@ -193,7 +193,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
+ # Link flags used to build gnat tools.  By default we prefer to statically
+ # link with libgcc to avoid a dependency on shared libgcc (which is tricky
+ # to deal with as it may conflict with the libgcc provided by the system).
+-GCC_LINK_FLAGS=-static-libgcc
++GCC_LINK_FLAGS=-static-libgcc $(CFLAGS_FOR_TARGET)
+ 
+ # End of variables for you to override.
+ 
diff --git a/pkgs/development/compilers/gcc-4.6/java-jvgenmain-link.patch b/pkgs/development/compilers/gcc-4.6/java-jvgenmain-link.patch
new file mode 100644
index 000000000000..2612e8bfbbbc
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/java-jvgenmain-link.patch
@@ -0,0 +1,17 @@
+The `jvgenmain' executable must be linked against `vec.o', among others,
+since it uses its vector API.
+
+--- gcc-4.3.3/gcc/java/Make-lang.in	2008-12-05 00:00:19.000000000 +0100
++++ gcc-4.3.3/gcc/java/Make-lang.in	2009-07-03 16:11:41.000000000 +0200
+@@ -109,9 +109,9 @@ jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIB
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \
+ 		$(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS)
+ 
+-jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
++jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) $(BUILD_RTL)
+ 	rm -f $@
+-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(LIBS)
++	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(BUILD_RTL) $(LIBS)
+ 
+ #
+ # Build hooks:
diff --git a/pkgs/development/compilers/gcc-4.6/libstdc++-target.patch b/pkgs/development/compilers/gcc-4.6/libstdc++-target.patch
new file mode 100644
index 000000000000..fb622b395806
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/libstdc++-target.patch
@@ -0,0 +1,32 @@
+Patch to make the target libraries 'configure' scripts find the proper CPP.
+I noticed that building the mingw32 cross compiler.
+Looking at the build script for mingw in archlinux, I think that only nixos
+needs this patch. I don't know why.
+diff --git a/Makefile.in b/Makefile.in
+index 93f66b6..d691917 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -266,6 +266,7 @@ BASE_TARGET_EXPORTS = \
+ 	AR="$(AR_FOR_TARGET)"; export AR; \
+ 	AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+ 	CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
++	CPP="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CC; \
+ 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+ 	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ 	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+@@ -291,11 +292,13 @@ BASE_TARGET_EXPORTS = \
+ RAW_CXX_TARGET_EXPORTS = \
+ 	$(BASE_TARGET_EXPORTS) \
+ 	CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
+-	CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
++	CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \
++	CXXCPP="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX;
+ 
+ NORMAL_TARGET_EXPORTS = \
+ 	$(BASE_TARGET_EXPORTS) \
+-	CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
++	CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \
++	CXXCPP="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX;
+ 
+ # Where to find GMP
+ HOST_GMPLIBS = @gmplibs@
diff --git a/pkgs/development/compilers/gcc-4.6/no-sys-dirs.patch b/pkgs/development/compilers/gcc-4.6/no-sys-dirs.patch
new file mode 100644
index 000000000000..8128fa87da5f
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/no-sys-dirs.patch
@@ -0,0 +1,54 @@
+diff -ru gcc-4.3.1-orig/gcc/cppdefault.c gcc-4.3.1/gcc/cppdefault.c
+--- gcc-4.3.1-orig/gcc/cppdefault.c	2007-07-26 10:37:01.000000000 +0200
++++ gcc-4.3.1/gcc/cppdefault.c	2008-06-25 17:48:23.000000000 +0200
+@@ -41,6 +41,10 @@
+ # undef CROSS_INCLUDE_DIR
+ #endif
+ 
++#undef LOCAL_INCLUDE_DIR
++#undef SYSTEM_INCLUDE_DIR
++#undef STANDARD_INCLUDE_DIR
++
+ const struct default_include cpp_include_defaults[]
+ #ifdef INCLUDE_DEFAULTS
+ = INCLUDE_DEFAULTS;
+diff -ru gcc-4.3.1-orig/gcc/gcc.c gcc-4.3.1/gcc/gcc.c
+--- gcc-4.3.1-orig/gcc/gcc.c	2008-03-02 23:55:19.000000000 +0100
++++ gcc-4.3.1/gcc/gcc.c	2008-06-25 17:52:53.000000000 +0200
+@@ -1478,10 +1478,10 @@
+ /* Default prefixes to attach to command names.  */
+ 
+ #ifndef STANDARD_STARTFILE_PREFIX_1
+-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
++#define STANDARD_STARTFILE_PREFIX_1 ""
+ #endif
+ #ifndef STANDARD_STARTFILE_PREFIX_2
+-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
++#define STANDARD_STARTFILE_PREFIX_2 ""
+ #endif
+ 
+ #ifdef CROSS_DIRECTORY_STRUCTURE  /* Don't use these prefixes for a cross compiler.  */
+--- gcc-4.3.1-orig/gcc/Makefile.in	2008-05-11 20:54:15.000000000 +0200
++++ gcc-4.3.1/gcc/Makefile.in	2008-06-25 17:48:23.000000000 +0200
+@@ -378,7 +378,11 @@
+ MD5_H	    = $(srcdir)/../include/md5.h
+ 
+ # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
+-NATIVE_SYSTEM_HEADER_DIR = /usr/include
++# Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
++# `fixinc' from fixing header files in /usr/include.  However,
++# NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
++# it to some dummy directory.
++NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
+ # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
+ CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
+ 
+@@ -3277,7 +3281,7 @@
+   -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
+   -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
+   -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
+-  -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
++  -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
+   -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
+   -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
+   -DPREFIX=\"$(prefix)/\" \
diff --git a/pkgs/development/compilers/gcc-4.6/sources.nix b/pkgs/development/compilers/gcc-4.6/sources.nix
new file mode 100644
index 000000000000..e91f3facb8e4
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/sources.nix
@@ -0,0 +1,31 @@
+/* Automatically generated by `update-gcc.sh', do not edit.
+   For GCC 4.6.1.  */
+{ fetchurl, optional, version, langC, langCC, langFortran, langJava, langAda,
+  langGo }:
+
+assert version == "4.6.1";
+optional /* langC */ true (fetchurl {
+  url = "mirror://gcc/releases/gcc-${version}/gcc-core-${version}.tar.bz2";
+  sha256 = "0bbb8f754a31f29013f6e9ad4c755d92bb0f154a665c4b623e86ae7174d98e33";
+}) ++
+optional langCC (fetchurl {
+  url = "mirror://gcc/releases/gcc-${version}/gcc-g++-${version}.tar.bz2";
+  sha256 = "44a91149bf4608aceb03b22209e5ec14ffe0c4003b11e3a368d6cebe5a327901";
+}) ++
+optional langFortran (fetchurl {
+  url = "mirror://gcc/releases/gcc-${version}/gcc-fortran-${version}.tar.bz2";
+  sha256 = "a0069a4452572b46cc20f1a1b52dc839b69c1d25e19c147a782e439d6be0156b";
+}) ++
+optional langJava (fetchurl {
+  url = "mirror://gcc/releases/gcc-${version}/gcc-java-${version}.tar.bz2";
+  sha256 = "728462275a0532714063803282d1ea815e35b5fd91a96f65a1f0a14da355765f";
+}) ++
+optional langAda (fetchurl {
+  url = "mirror://gcc/releases/gcc-${version}/gcc-ada-${version}.tar.bz2";
+  sha256 = "0e2958b7be2e7ec9d7847658262ce9276d6c75f91d53c48d7141848cfe3cd093";
+}) ++
+optional langGo (fetchurl {
+  url = "mirror://gcc/releases/gcc-${version}/gcc-go-${version}.tar.bz2";
+  sha256 = "9512347a76c46528d25295cd762f262c8265e99cee497dc2d66caddf9c021198";
+}) ++
+[]
diff --git a/pkgs/development/compilers/gcc-4.6/update-gcc.sh b/pkgs/development/compilers/gcc-4.6/update-gcc.sh
new file mode 120000
index 000000000000..dd7bcd60c1b4
--- /dev/null
+++ b/pkgs/development/compilers/gcc-4.6/update-gcc.sh
@@ -0,0 +1 @@
+../gcc-4.4/update-gcc.sh
\ No newline at end of file
diff --git a/pkgs/development/compilers/ghc/6.10.1-binary.nix b/pkgs/development/compilers/ghc/6.10.1-binary.nix
index 459a1b94724d..5a15cc0dff7e 100644
--- a/pkgs/development/compilers/ghc/6.10.1-binary.nix
+++ b/pkgs/development/compilers/ghc/6.10.1-binary.nix
@@ -1,6 +1,10 @@
 {stdenv, fetchurl, perl, libedit, ncurses, gmp}:
 
-assert stdenv.system == "i686-darwin" || stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
+let
+  supportedPlatforms = ["i686-darwin" "x86_64-linux" "i686-linux"];
+in
+
+assert stdenv.lib.elem stdenv.system supportedPlatforms;
 
 stdenv.mkDerivation rec {
   version = "6.10.1";
@@ -100,5 +104,5 @@ stdenv.mkDerivation rec {
         [ $(./main) == "yes" ]
       '';
 
-  meta.platforms = [ "i686-darwin" "x86_64-linux" "i686-linux"] ;
+  meta.platforms = supportedPlatforms;
 }
diff --git a/pkgs/development/compilers/ghc/6.10.1.nix b/pkgs/development/compilers/ghc/6.10.1.nix
index 6d8d6be0d66d..b53ce9aced37 100644
--- a/pkgs/development/compilers/ghc/6.10.1.nix
+++ b/pkgs/development/compilers/ghc/6.10.1.nix
@@ -2,9 +2,9 @@
 
 stdenv.mkDerivation rec {
   version = "6.10.1";
-  
+
   name = "ghc-${version}";
-  
+
   homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
@@ -23,9 +23,10 @@ stdenv.mkDerivation rec {
   meta = {
     inherit homepage;
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 
-  
+
   passthru = {
     corePackages = [
       [ "Cabal" "1.6.0.1" ]
diff --git a/pkgs/development/compilers/ghc/6.10.2-binary.nix b/pkgs/development/compilers/ghc/6.10.2-binary.nix
index 85c678ffbfba..bda8372e6c46 100644
--- a/pkgs/development/compilers/ghc/6.10.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.10.2-binary.nix
@@ -1,6 +1,10 @@
 {stdenv, fetchurl, perl, libedit, ncurses, gmp}:
 
-assert stdenv.system == "i686-darwin" || stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
+let
+  supportedPlatforms = ["x86_64-linux" "i686-linux"];
+in
+
+assert stdenv.lib.elem stdenv.system supportedPlatforms;
 
 stdenv.mkDerivation rec {
   version = "6.10.2";
@@ -20,7 +24,7 @@ stdenv.mkDerivation rec {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
         sha256 = "1rd2j7lmcfsm2rdfb5g6q0l8dz3sxadk5m3d2f69d4a6g4p4h7jj";
       }
-    else throw "cannot bootstrap GHC on this platform"; 
+    else throw "cannot bootstrap GHC on this platform";
 
   buildInputs = [perl];
 
@@ -99,4 +103,5 @@ stdenv.mkDerivation rec {
         [ $(./main) == "yes" ]
       '';
 
+  meta.platforms = supportedPlatforms;
 }
diff --git a/pkgs/development/compilers/ghc/6.10.2.nix b/pkgs/development/compilers/ghc/6.10.2.nix
index 2b2381fdc93f..2df43a4c7d75 100644
--- a/pkgs/development/compilers/ghc/6.10.2.nix
+++ b/pkgs/development/compilers/ghc/6.10.2.nix
@@ -2,9 +2,9 @@
 
 stdenv.mkDerivation rec {
   version = "6.10.2";
-  
+
   name = "ghc-${version}";
-  
+
   homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     inherit homepage;
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 
   passthru = {
diff --git a/pkgs/development/compilers/ghc/6.10.3.nix b/pkgs/development/compilers/ghc/6.10.3.nix
index 8b143d06547f..2ecf35eedfe9 100644
--- a/pkgs/development/compilers/ghc/6.10.3.nix
+++ b/pkgs/development/compilers/ghc/6.10.3.nix
@@ -2,9 +2,9 @@
 
 stdenv.mkDerivation rec {
   version = "6.10.3";
-  
+
   name = "ghc-${version}";
-  
+
   homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     inherit homepage;
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 
 
diff --git a/pkgs/development/compilers/ghc/6.10.4.nix b/pkgs/development/compilers/ghc/6.10.4.nix
index 75deccb9fc95..53fd1c522168 100644
--- a/pkgs/development/compilers/ghc/6.10.4.nix
+++ b/pkgs/development/compilers/ghc/6.10.4.nix
@@ -2,9 +2,9 @@
 
 stdenv.mkDerivation rec {
   version = "6.10.4";
-  
+
   name = "ghc-${version}";
-  
+
   homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     inherit homepage;
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 
   passthru = {
diff --git a/pkgs/development/compilers/ghc/6.11.nix b/pkgs/development/compilers/ghc/6.11.nix
index 102f3e0a1dbd..778b819aa703 100644
--- a/pkgs/development/compilers/ghc/6.11.nix
+++ b/pkgs/development/compilers/ghc/6.11.nix
@@ -2,9 +2,9 @@
 
 stdenv.mkDerivation rec {
   version = "6.11.20090916";
-  
+
   name = "ghc-${version}";
-  
+
   homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
   meta = {
     inherit homepage;
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 }
diff --git a/pkgs/development/compilers/ghc/6.12.1-binary.nix b/pkgs/development/compilers/ghc/6.12.1-binary.nix
new file mode 100644
index 000000000000..6394780eb68c
--- /dev/null
+++ b/pkgs/development/compilers/ghc/6.12.1-binary.nix
@@ -0,0 +1,109 @@
+{stdenv, fetchurl, perl, ncurses, gmp}:
+
+let
+  supportedPlatforms = ["x86_64-linux" "i686-linux"];
+in
+
+assert stdenv.lib.elem stdenv.system supportedPlatforms;
+
+stdenv.mkDerivation rec {
+  version = "6.12.1";
+
+  name = "ghc-${version}-binary";
+
+  src =
+    if stdenv.system == "i686-linux" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux-n.tar.bz2";
+        sha256 = "15kp8mnm4ig6a7k1a1j12lyhdcs75myv6ralfywjzpl27pd77gmk";
+      }
+    else if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux-n.tar.bz2";
+        sha256 = "08cb4bgyj23qsbqay4pqs81jha40njkx63ng7l827cydx2pm3qxs";
+      }
+    else throw "cannot bootstrap GHC on this platform";
+
+  buildInputs = [perl];
+
+  postUnpack =
+    # Strip is harmful, see also below. It's important that this happens
+    # first. The GHC Cabal build system makes use of strip by default and
+    # has hardcoded paths to /usr/bin/strip in many places. We replace
+    # those below, making them point to our dummy script.
+     ''
+      mkdir "$TMP/bin"
+      for i in strip; do
+        echo '#!/bin/sh' >> "$TMP/bin/$i"
+        chmod +x "$TMP/bin/$i"
+        PATH="$TMP/bin:$PATH"
+      done
+     '' +
+    # We have to patch the GMP paths for the integer-gmp package.
+     ''
+      find . -name integer-gmp.buildinfo \
+          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
+     '' +
+    # On Linux, use patchelf to modify the executables so that they can
+    # find editline/gmp.
+    (if stdenv.isLinux then ''
+      find . -type f -perm +100 \
+          -exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          --set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
+      sed -i "s|/usr/bin/perl|perl\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+      sed -i "s|/usr/bin/gcc|gcc\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+      for prog in ld ar gcc strip ranlib; do
+        find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
+      done
+     '' else "");
+
+  configurePhase = ''
+    ./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
+  '';
+
+  # Stripping combined with patchelf breaks the executables (they die
+  # with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
+  dontStrip = true;
+
+  # No building is necessary, but calling make without flags ironically
+  # calls install-strip ...
+  buildPhase = "true";
+
+  # The binaries for Darwin use frameworks, so fake those frameworks,
+  # and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
+  # that the executables work with no special setup.
+  postInstall =
+    (if stdenv.isDarwin then
+      ''
+        ensureDir $out/frameworks/GMP.framework/Versions/A
+        ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
+        ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
+        # !!! fix this
+
+        mv $out/bin $out/bin-orig
+        mkdir $out/bin
+        for i in $(cd $out/bin-orig && ls); do
+            echo \"#! $SHELL -e\" >> $out/bin/$i
+            echo \"DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i -framework-path $out/frameworks \\\"\\$@\\\"\" >> $out/bin/$i
+            chmod +x $out/bin/$i
+        done
+      '' else "")
+    +
+      ''
+        # bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
+        # sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp}/lib\",\2@" $out/lib/ghc-${version}/package.conf
+
+        # Sanity check, can ghc create executables?
+        cd $TMP
+        mkdir test-ghc; cd test-ghc
+        cat > main.hs << EOF
+          module Main where
+          main = putStrLn "yes"
+        EOF
+        $out/bin/ghc --make main.hs
+        echo compilation ok
+        [ $(./main) == "yes" ]
+      '';
+
+  meta.platforms = supportedPlatforms;
+}
diff --git a/pkgs/development/compilers/ghc/6.12.1.nix b/pkgs/development/compilers/ghc/6.12.1.nix
index 20a3a606be8a..78a000de309e 100644
--- a/pkgs/development/compilers/ghc/6.12.1.nix
+++ b/pkgs/development/compilers/ghc/6.12.1.nix
@@ -2,11 +2,8 @@
 
 stdenv.mkDerivation rec {
   version = "6.12.1";
-  
+
   name = "ghc-${version}";
-  
-  # TODO: Does this have to be here, or can it go to meta?
-  homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
     url = http://haskell.org/ghc/dist/6.12.1/ghc-6.12.1-src.tar.bz2;
@@ -33,13 +30,13 @@ stdenv.mkDerivation rec {
   stripDebugFlags=["-S" "--keep-file-symbols"];
 
   meta = {
-    inherit homepage;
+    homepage = "http://haskell.org/ghc";
     description = "The Glasgow Haskell Compiler";
     maintainers = [
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = ghc.meta.platforms;
   };
 
   # TODO: requires a comment as to what it does and why it is needed.
diff --git a/pkgs/development/compilers/ghc/6.12.2.nix b/pkgs/development/compilers/ghc/6.12.2.nix
index 13e85fcc6a4f..1a48d6cf3183 100644
--- a/pkgs/development/compilers/ghc/6.12.2.nix
+++ b/pkgs/development/compilers/ghc/6.12.2.nix
@@ -2,11 +2,8 @@
 
 stdenv.mkDerivation rec {
   version = "6.12.2";
-  
+
   name = "ghc-${version}";
-  
-  # TODO: Does this have to be here, or can it go to meta?
-  homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
     url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
@@ -33,13 +30,13 @@ stdenv.mkDerivation rec {
   stripDebugFlags=["-S" "--keep-file-symbols"];
 
   meta = {
-    inherit homepage;
+    homepage = "http://haskell.org/ghc";
     description = "The Glasgow Haskell Compiler";
     maintainers = [
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = ghc.meta.platforms;
   };
 
   # TODO: requires a comment as to what it does and why it is needed.
diff --git a/pkgs/development/compilers/ghc/6.12.3.nix b/pkgs/development/compilers/ghc/6.12.3.nix
index c6e05e8a785d..bc2d8967cd4b 100644
--- a/pkgs/development/compilers/ghc/6.12.3.nix
+++ b/pkgs/development/compilers/ghc/6.12.3.nix
@@ -2,11 +2,8 @@
 
 stdenv.mkDerivation rec {
   version = "6.12.3";
-  
+
   name = "ghc-${version}";
-  
-  # TODO: Does this have to be here, or can it go to meta?
-  homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
     url = "http://darcs.haskell.org/download/dist/${version}/${name}-src.tar.bz2";
@@ -33,13 +30,13 @@ stdenv.mkDerivation rec {
   stripDebugFlags=["-S" "--keep-file-symbols"];
 
   meta = {
-    inherit homepage;
+    homepage = "http://haskell.org/ghc";
     description = "The Glasgow Haskell Compiler";
     maintainers = [
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = ghc.meta.platforms;
   };
 
   # TODO: requires a comment as to what it does and why it is needed.
diff --git a/pkgs/development/compilers/ghc/6.4.2-binary.nix b/pkgs/development/compilers/ghc/6.4.2-binary.nix
index b20b7369d301..63cc08db34b1 100644
--- a/pkgs/development/compilers/ghc/6.4.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.4.2-binary.nix
@@ -1,6 +1,10 @@
 {stdenv, fetchurl, perl, readline, ncurses, gmp}:
 
-assert stdenv.system == "i686-darwin" || stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
+let
+  supportedPlatforms = ["i686-darwin" "x86_64-linux" "i686-linux"];
+in
+
+assert stdenv.lib.elem stdenv.system supportedPlatforms;
 
 stdenv.mkDerivation {
   name = if stdenv.system == "i686-darwin" then "ghc-6.6.1-binary" else "ghc-6.4.2-binary";
@@ -24,7 +28,7 @@ stdenv.mkDerivation {
         url = http://www.haskell.org/ghc/dist/6.6.1/ghc-6.6.1-i386-apple-darwin.tar.bz2;
         sha256 = "1drbsicanr6jlykvs4vs6gbi2q9ac1bcaxz2vzwh3pfv3lfibwia";
       }
-    else throw "cannot bootstrap GHC on this platform"; 
+    else throw "cannot bootstrap GHC on this platform";
 
   buildInputs = [perl];
 
@@ -64,4 +68,5 @@ stdenv.mkDerivation {
 
   '' else "";
 
+  meta.platforms = supportedPlatforms;
 }
diff --git a/pkgs/development/compilers/ghc/6.4.2.nix b/pkgs/development/compilers/ghc/6.4.2.nix
index 9fccf5307c50..c526e5d6cb45 100644
--- a/pkgs/development/compilers/ghc/6.4.2.nix
+++ b/pkgs/development/compilers/ghc/6.4.2.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation {
   name = "ghc-6.4.2";
-  
+
   src = fetchurl {
     url = http://www.haskell.org/ghc/dist/6.4.2/ghc-6.4.2-src.tar.bz2;
     md5 = "a394bf14e94c3bca5507d568fcc03375";
   };
-  
+
   buildInputs = [perl ghc m4];
-  
+
   propagatedBuildInputs = [readline ncurses gmp];
 
   configureFlags = "--with-gcc=${stdenv.gcc}/bin/gcc";
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
 
   meta = {
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 }
diff --git a/pkgs/development/compilers/ghc/6.6.1.nix b/pkgs/development/compilers/ghc/6.6.1.nix
index b8be216c8dc6..c54c32bfab0c 100644
--- a/pkgs/development/compilers/ghc/6.6.1.nix
+++ b/pkgs/development/compilers/ghc/6.6.1.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation (rec {
 
   meta = {
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 
   postInstall = ''
diff --git a/pkgs/development/compilers/ghc/6.8.2.nix b/pkgs/development/compilers/ghc/6.8.2.nix
index 4015d364b275..2681f325c929 100644
--- a/pkgs/development/compilers/ghc/6.8.2.nix
+++ b/pkgs/development/compilers/ghc/6.8.2.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation (rec {
 
   meta = {
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 
   configureFlags=[
diff --git a/pkgs/development/compilers/ghc/6.8.3.nix b/pkgs/development/compilers/ghc/6.8.3.nix
index e3c12cce8c78..b6900321552c 100644
--- a/pkgs/development/compilers/ghc/6.8.3.nix
+++ b/pkgs/development/compilers/ghc/6.8.3.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "The Glasgow Haskell Compiler";
+    platforms = ghc.meta.platforms;
   };
 
   configureFlags=[
diff --git a/pkgs/development/compilers/ghc/7.0.1.nix b/pkgs/development/compilers/ghc/7.0.1.nix
index d8acc3065105..db696d2b218c 100644
--- a/pkgs/development/compilers/ghc/7.0.1.nix
+++ b/pkgs/development/compilers/ghc/7.0.1.nix
@@ -2,11 +2,8 @@
 
 stdenv.mkDerivation rec {
   version = "7.0.1";
-  
+
   name = "ghc-${version}";
-  
-  # TODO: Does this have to be here, or can it go to meta?
-  homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
     url = "http://new-www.haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
@@ -33,13 +30,13 @@ stdenv.mkDerivation rec {
   stripDebugFlags=["-S" "--keep-file-symbols"];
 
   meta = {
-    inherit homepage;
+    homepage = "http://haskell.org/ghc";
     description = "The Glasgow Haskell Compiler";
     maintainers = [
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = ghc.meta.platforms;
   };
 
   # TODO: requires a comment as to what it does and why it is needed.
diff --git a/pkgs/development/compilers/ghc/7.0.2.nix b/pkgs/development/compilers/ghc/7.0.2.nix
new file mode 100644
index 000000000000..c0ba5f1fe09c
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.0.2.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl, ghc, perl, gmp, ncurses, darwinInstallNameToolUtility}:
+
+stdenv.mkDerivation rec {
+  version = "7.0.2";
+  name = "ghc-${version}";
+
+  src = fetchurl {
+    url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
+    sha256 = "f0551f1af2f008a8a14a888b70c0557e00dd04f9ae309ac91897306cd04a6668";
+  };
+
+  buildInputs = [ghc perl gmp ncurses] ++
+    (if stdenv.isDarwin then [darwinInstallNameToolUtility] else []);
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+  '';
+
+  preConfigure = ''
+    echo "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '';
+
+  configureFlags=[
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags=["-S" "--keep-file-symbols"];
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = [
+      stdenv.lib.maintainers.marcweber
+      stdenv.lib.maintainers.andres
+    ];
+    platforms = ghc.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/ghc/7.0.3.nix b/pkgs/development/compilers/ghc/7.0.3.nix
new file mode 100644
index 000000000000..f6e4d81029a2
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.0.3.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl, ghc, perl, gmp, ncurses, darwinInstallNameToolUtility}:
+
+stdenv.mkDerivation rec {
+  version = "7.0.3";
+  name = "ghc-${version}";
+
+  src = fetchurl {
+    url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
+    sha256 = "1nfc2c6bdcdfg3f3d9q5v109jrrwhz6by3qa4qi7k0xbip16jq8m";
+  };
+
+  buildInputs = [ghc perl gmp ncurses] ++
+    (if stdenv.isDarwin then [darwinInstallNameToolUtility] else []);
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+  '';
+
+  preConfigure = ''
+    echo "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '';
+
+  configureFlags=[
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags=["-S" "--keep-file-symbols"];
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = [
+      stdenv.lib.maintainers.marcweber
+      stdenv.lib.maintainers.andres
+    ];
+    platforms = ghc.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/ghc/7.0.4.nix b/pkgs/development/compilers/ghc/7.0.4.nix
new file mode 100644
index 000000000000..6f7d802fa0b0
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.0.4.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl, ghc, perl, gmp, ncurses, darwinInstallNameToolUtility}:
+
+stdenv.mkDerivation rec {
+  version = "7.0.4";
+  name = "ghc-${version}";
+
+  src = fetchurl {
+    url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
+    sha256 = "1a9b78d9d66c9c21de6c0932e36bb87406a4856f1611bf83bd44539bdc6ed0ed";
+  };
+
+  buildInputs = [ghc perl gmp ncurses] ++
+    (if stdenv.isDarwin then [darwinInstallNameToolUtility] else []);
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+  '';
+
+  preConfigure = ''
+    echo "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '';
+
+  configureFlags=[
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags=["-S" "--keep-file-symbols"];
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = [
+      stdenv.lib.maintainers.marcweber
+      stdenv.lib.maintainers.andres
+    ];
+    platforms = ghc.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/ghc/7.2.1.nix b/pkgs/development/compilers/ghc/7.2.1.nix
new file mode 100644
index 000000000000..f2c3acff59c2
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.2.1.nix
@@ -0,0 +1,44 @@
+{stdenv, fetchurl, ghc, perl, gmp, ncurses, darwinInstallNameToolUtility}:
+
+stdenv.mkDerivation rec {
+  version = "7.2.1";
+  name = "ghc-${version}";
+
+  src = fetchurl {
+    url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
+    sha256 = "099w2bvx07jq4b1k8f1hspri30wbk35dz6ilsivxr2xg661c2qjm";
+  };
+
+  buildInputs = [ghc perl gmp ncurses] ++
+    (if stdenv.isDarwin then [darwinInstallNameToolUtility] else []);
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+  '';
+
+  preConfigure = ''
+    echo "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '';
+
+  configureFlags=[
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags=["-S" "--keep-file-symbols"];
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = [
+      stdenv.lib.maintainers.marcweber
+      stdenv.lib.maintainers.andres
+      stdenv.lib.maintainers.simons
+    ];
+    platforms = ghc.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index e24e1aaebcb1..98a014912379 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -1,16 +1,16 @@
 {stdenv, fetchurl, ghc, perl, gmp, ncurses}:
 
 stdenv.mkDerivation rec {
-  version = "6.13.20100917";
-  
+  version = "7.3.20110804";
+
   name = "ghc-${version}";
-  
+
   # TODO: Does this have to be here, or can it go to meta?
   homepage = "http://haskell.org/ghc";
 
   src = fetchurl {
     url = "${homepage}/dist/current/dist/${name}-src.tar.bz2";
-    sha256 = "0b5pg6688yfzd5zfaffjp21y933vp94h94ds85gwi156f4g3bkij";
+    sha256 = "1n0prny5aaq09jp83skixla8frz5hcn8jbrc61m428q12jq1xsm7";
   };
 
   buildInputs = [ghc perl gmp ncurses];
@@ -39,46 +39,7 @@ stdenv.mkDerivation rec {
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = ghc.meta.platforms;
   };
 
-  # TODO: requires a comment as to what it does and why it is needed.
-  passthru = {
-    corePackages = [
-       [ "Cabal" "1.8.0.2" ]
-       [ "array" "0.3.0.0" ]
-       [ "base" "3.0.3.2" ]
-       [ "base" "4.2.0.0" ]
-       [ "bin-package-db" "0.0.0.0" ]
-       [ "bytestring" "0.9.1.5" ]
-       [ "containers" "0.3.0.0" ]
-       [ "directory" "1.0.1.0" ]
-       [ "dph-base" "0.4.0" ]
-       [ "dph-par" "0.4.0" ]
-       [ "dph-prim-interface" "0.4.0" ]
-       [ "dph-prim-par" "0.4.0" ]
-       [ "dph-prim-seq" "0.4.0" ]
-       [ "dph-seq" "0.4.0" ]
-       [ "extensible-exceptions" "0.1.1.1" ]
-       [ "ffi" "1.0" ]
-       [ "filepath" "1.1.0.3" ]
-       [ "ghc" "6.12.1" ]
-       [ "ghc-binary" "0.5.0.2" ]
-       [ "ghc-prim" "0.2.0.0" ]
-       [ "haskell98" "1.0.1.1" ]
-       [ "hpc" "0.5.0.4" ]
-       [ "integer-gmp" "0.2.0.0" ]
-       [ "old-locale" "1.0.0.2" ]
-       [ "old-time" "1.0.0.3" ]
-       [ "pretty" "1.0.1.1" ]
-       [ "process" "1.0.1.2" ]
-       [ "random" "1.0.0.2" ]
-       [ "rts" "1.0" ]
-       [ "syb" "0.1.0.2" ]
-       [ "template-haskell" "2.4.0.0" ]
-       [ "time" "1.1.4" ]
-       [ "unix" "2.4.0.0" ]
-       [ "utf8-string" "0.3.4" ]
-    ];
-  };
 }
diff --git a/pkgs/development/compilers/ghc/wrapper.nix b/pkgs/development/compilers/ghc/wrapper.nix
index 16441daaeedf..60342a14a61f 100644
--- a/pkgs/development/compilers/ghc/wrapper.nix
+++ b/pkgs/development/compilers/ghc/wrapper.nix
@@ -43,8 +43,8 @@ stdenv.mkDerivation {
     chmod +x $out/bin/ghc-packages
     ensureDir $out/nix-support
     ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
-  ''; 
-  
+  '';
+
   GHCGetPackages = ./ghc-get-packages.sh;
 
   inherit ghc;
diff --git a/pkgs/development/compilers/gprolog/default.nix b/pkgs/development/compilers/gprolog/default.nix
index d4d348f179ec..f7a64da73096 100644
--- a/pkgs/development/compilers/gprolog/default.nix
+++ b/pkgs/development/compilers/gprolog/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "gprolog-1.3.1";
+  name = "gprolog-1.4.0";
 
   src = fetchurl {
     urls = [
       "mirror://gnu/gprolog/${name}.tar.gz"
       "http://www.gprolog.org/${name}.tar.gz"
     ];
-    sha256 = "05n3k0yynzvpc1ir1nw5bwm6m3ail0a0r1vqdsh4fii3kndiacrw";
+    sha256 = "1l66k66ryfw1nfi2wlvsyq4cmr6mm95f4iay1fxdk3hdk3fjyjl0";
   };
 
   configurePhase = "cd src ;"
@@ -53,5 +53,8 @@ stdenv.mkDerivation rec {
     '';
 
     license = "GPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.simons ];
+    platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index 7840c56010ed..48346e991073 100644
--- a/pkgs/development/compilers/idris/default.nix
+++ b/pkgs/development/compilers/idris/default.nix
@@ -1,15 +1,22 @@
-{cabal, mtl, parsec, readline, ivor, epic, happy}:
+{ cabal, binary, epic, happy, ivor, mtl, parsec, readline }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "idris";
-  name = self.fname;
-  version = "0.1.5";
-  sha256 = "8acdfc22ba2e68b6c1832c2d5fcf11405df9416ba2c193f564b6f98710e9813e";
-  propagatedBuildInputs = [mtl parsec readline ivor epic];
-  extraBuildInputs = [happy];
+  version = "0.1.7.1";
+  sha256 = "1449fy7ld2p6ksn43bvhpa5z7j8vx4wc2szwq85wzpwfaw10d8wb";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary epic ivor mtl parsec readline ];
+  buildTools = [ happy ];
+  noHaddock = true;
   meta = {
-    description = "An experimental language with full dependent types";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.cs.st-andrews.ac.uk/~eb/Idris/";
+    description = "Dependently Typed Functional Programming Language";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/compilers/jdk/jdk6-linux.nix b/pkgs/development/compilers/jdk/jdk6-linux.nix
index 8a11e85ed98d..3f9fa139a900 100644
--- a/pkgs/development/compilers/jdk/jdk6-linux.nix
+++ b/pkgs/development/compilers/jdk/jdk6-linux.nix
@@ -28,18 +28,18 @@ in
 
 stdenv.mkDerivation {
   name =
-    if installjdk then "jdk-1.6.0_20" else "jre-1.6.0_20";
+    if installjdk then "jdk-1.6.0_24" else "jre-1.6.0_24";
 
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
-        url = http://download.java.net/dlj/binaries/jdk-6u20-dlj-linux-i586.bin;
-        sha256 = "1gjd8y7d0a07lpl6x5j8wgyagf2kspl7xs0xf1k9pd8qzlw17z6v";
+        url = http://download.java.net/dlj/binaries/jdk-6u24-dlj-linux-i586.bin;
+        sha256 = "003vf5dhizwd1pcvv6jazx59d1dwws1m87fjbjagbnnra7bka89p";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url = http://download.java.net/dlj/binaries/jdk-6u20-dlj-linux-amd64.bin;
-        sha256 = "124a5lpcqx3nh3n968rvaca0clj4crfmxlgy2db227vllc2jlj0y";
+        url = http://download.java.net/dlj/binaries/jdk-6u24-dlj-linux-amd64.bin;
+        sha256 = "17r1rv82q2zlhkillkgkxsirnkzpbsi6f2qg4sjrg0154sk6iflq";
       }
     else
       abort "jdk requires i686-linux or x86_64 linux";
diff --git a/pkgs/development/compilers/llvm/clang-include-paths-svn.patch b/pkgs/development/compilers/llvm/clang-include-paths-svn.patch
new file mode 100644
index 000000000000..85c7a12d09be
--- /dev/null
+++ b/pkgs/development/compilers/llvm/clang-include-paths-svn.patch
@@ -0,0 +1,40 @@
+diff -ru -x '*~' a/tools/clang/lib/Frontend/InitHeaderSearch.cpp b/tools/clang/lib/Frontend/InitHeaderSearch.cpp
+--- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp	2010-09-03 18:45:53.000000000 +0200
++++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp	2011-02-05 14:59:08.669573190 +0100
+@@ -480,6 +480,7 @@
+       AddPath(*i, System, false, false, false);
+     return;
+   }
+ 
++#if 0
+   switch (os) {
+   case llvm::Triple::Win32: {
+@@ -593,7 +593,9 @@
+   }
+ 
+   if ( os != llvm::Triple::RTEMS )
+     AddPath("/usr/include", System, false, false, false);
++#endif
++  AddPath(C_INCLUDE_PATH, System, false, false, false);
+ }
+ 
+ void InitHeaderSearch::
+@@ -550,6 +553,7 @@
+                                   triple);
+     return;
+   }
++#if 0  
+   // FIXME: temporary hack: hard-coded paths.
+ 
+   if (triple.isOSDarwin()) {
+@@ -769,6 +773,10 @@
+   default:
+     break;
+   }
++#endif
++  AddGnuCPlusPlusIncludePaths(
++      CPP_INCLUDE_PATH,
++      CPP_HOST, "", "", triple);
+ }
+ 
+ void InitHeaderSearch::AddDefaultSystemIncludePaths(const LangOptions &Lang,
diff --git a/pkgs/development/compilers/llvm/clang-include-paths.patch b/pkgs/development/compilers/llvm/clang-include-paths.patch
index 3c68c0018593..5c80e5821451 100644
--- a/pkgs/development/compilers/llvm/clang-include-paths.patch
+++ b/pkgs/development/compilers/llvm/clang-include-paths.patch
@@ -1,202 +1,36 @@
-diff --git a/tools/clang/lib/Frontend/InitHeaderSearch.cpp b/tools/clang/lib/Frontend/InitHeaderSearch.cpp
-index cd749d2..b5591f6 100644
---- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp
-+++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp
-@@ -393,51 +393,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple) {
+diff -ru -x '*~' a/tools/clang/lib/Frontend/InitHeaderSearch.cpp b/tools/clang/lib/Frontend/InitHeaderSearch.cpp
+--- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp	2010-09-03 18:45:53.000000000 +0200
++++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp	2011-02-05 14:59:08.669573190 +0100
+@@ -443,6 +443,7 @@
        AddPath(*i, System, false, false, false);
      return;
    }
--  llvm::Triple::OSType os = triple.getOS();
--  switch (os) {
--  case llvm::Triple::Win32:
--    {
--      std::string VSDir;
--      std::string WindowsSDKDir;
--      if (getVisualStudioDir(VSDir)) {
--        AddPath(VSDir + "\\VC\\include", System, false, false, false);
--        if (getWindowsSDKDir(WindowsSDKDir))
--          AddPath(WindowsSDKDir, System, false, false, false);
--        else
--          AddPath(VSDir + "\\VC\\PlatformSDK\\Include",
--            System, false, false, false);
--      }
--      else {
--          // Default install paths.
--        AddPath("C:/Program Files/Microsoft Visual Studio 9.0/VC/include",
--          System, false, false, false);
--        AddPath(
--        "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include",
--          System, false, false, false);
--        AddPath("C:/Program Files/Microsoft Visual Studio 8/VC/include",
--          System, false, false, false);
--        AddPath(
--        "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include",
--          System, false, false, false);
--          // For some clang developers.
--        AddPath("G:/Program Files/Microsoft Visual Studio 9.0/VC/include",
--          System, false, false, false);
--        AddPath(
--        "G:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include",
--          System, false, false, false);
--      }
--    }
--    break;
--  case llvm::Triple::MinGW64:
--  case llvm::Triple::MinGW32:
--    AddPath("c:/mingw/include", System, true, false, false);
--    break;
--  default:
--    break;
--  }
--
--  AddPath("/usr/local/include", System, true, false, false);
--  AddPath("/usr/include", System, false, false, false);
++#if 0
+   llvm::Triple::OSType os = triple.getOS();
+   switch (os) {
+   case llvm::Triple::Win32:
+@@ -532,6 +533,8 @@
+   }
+ 
+   AddPath("/usr/include", System, false, false, false);
++#endif
 +  AddPath(C_INCLUDE_PATH, System, false, false, false);
  }
  
- void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple) {
-@@ -453,144 +409,9 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(const llvm::Triple &tripl
-                                   CXX_INCLUDE_32BIT_DIR, CXX_INCLUDE_64BIT_DIR, triple);
+ void InitHeaderSearch::
+@@ -550,6 +553,7 @@
+                                   triple);
      return;
    }
--  // FIXME: temporary hack: hard-coded paths.
--  switch (os) {
--  case llvm::Triple::Cygwin:
--    AddPath("/lib/gcc/i686-pc-cygwin/3.4.4/include",
--        System, true, false, false);
--    AddPath("/lib/gcc/i686-pc-cygwin/3.4.4/include/c++",
--        System, true, false, false);
--    break;
--  case llvm::Triple::MinGW64:
--    // Try gcc 4.4.0
--    AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw64", "4.4.0");
--    // Try gcc 4.3.0
--    AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw64", "4.3.0");
--    // Fall through.
--  case llvm::Triple::MinGW32:
--    // Try gcc 4.4.0
--    AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.4.0");
--    // Try gcc 4.3.0
--    AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.3.0");
--    break;
--  case llvm::Triple::Darwin:
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
--                                "i686-apple-darwin10", "", "x86_64", triple);
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
--                                "i686-apple-darwin8", "", "", triple);
--    break;
--  case llvm::Triple::DragonFly:
--    AddPath("/usr/include/c++/4.1", System, true, false, false);
--    break;
--  case llvm::Triple::Linux:
--    // Exherbo (2010-01-25)
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3",
--                                "x86_64-pc-linux-gnu", "32", "", triple);
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3",
--                                "i686-pc-linux-gnu", "", "", triple);
--    // Debian sid
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
--                                "x86_64-linux-gnu", "32", "", triple);
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
--                                "i486-linux-gnu", "64", "", triple);
--    // Ubuntu 7.10 - Gutsy Gibbon
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.1.3",
--                                "i486-linux-gnu", "", "", triple);
--    // Ubuntu 9.04
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.3",
--                                "x86_64-linux-gnu","32", "", triple);
--    // Ubuntu 9.10
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.1",
--                                "x86_64-linux-gnu", "32", "", triple);
--    // Fedora 8
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.1.2",
--                                "i386-redhat-linux", "", "", triple);
--    // Fedora 9
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.0",
--                                "i386-redhat-linux", "", "", triple);
--    // Fedora 10
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.2",
--                                "i386-redhat-linux","", "", triple);
--
--    // Fedora 10 x86_64
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.2",
--                                "x86_64-redhat-linux", "32", "", triple);
--
--    // Fedora 11
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.1",
--                                "i586-redhat-linux","", "", triple);
--
--    // Fedora 12
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.2",
--                                "i686-redhat-linux","", "", triple);
--
--    // Fedora 12 (February-2010+)
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3",
--                                "i686-redhat-linux","", "", triple);
--      
--    // openSUSE 11.1 32 bit
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
--                                "i586-suse-linux", "", "", triple);
--    // openSUSE 11.1 64 bit
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
--                                "x86_64-suse-linux", "32", "", triple);
--    // openSUSE 11.2
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
--                                "i586-suse-linux", "", "", triple);
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
--                                "x86_64-suse-linux", "", "", triple);
--    // Arch Linux 2008-06-24
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
--                                "i686-pc-linux-gnu", "", "", triple);
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
--                                "x86_64-unknown-linux-gnu", "", "", triple);
--    // Gentoo x86 2009.1 stable
--    AddGnuCPlusPlusIncludePaths(
--      "/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4",
--      "i686-pc-linux-gnu", "", "", triple);
--    // Gentoo x86 2009.0 stable
--    AddGnuCPlusPlusIncludePaths(
--      "/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include/g++-v4",
--      "i686-pc-linux-gnu", "", "", triple);
--    // Gentoo x86 2008.0 stable
--    AddGnuCPlusPlusIncludePaths(
--      "/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/g++-v4",
--      "i686-pc-linux-gnu", "", "", triple);
--    // Ubuntu 8.10
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
--                                "i486-pc-linux-gnu", "", "", triple);
--    // Ubuntu 9.04
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
--                                "i486-linux-gnu","", "", triple);
--    // Gentoo amd64 stable
--    AddGnuCPlusPlusIncludePaths(
--        "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/g++-v4",
--        "i686-pc-linux-gnu", "", "", triple);
--        
--    // Gentoo amd64 gcc 4.3.2
--    AddGnuCPlusPlusIncludePaths(
--        "/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include/g++-v4",
--        "x86_64-pc-linux-gnu", "", "", triple);
--        
--    // Gentoo amd64 gcc 4.4.3
--    AddGnuCPlusPlusIncludePaths(
--        "/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.3/include/g++-v4",
--        "x86_64-pc-linux-gnu", "32", "", triple);
--    
--    break;
--  case llvm::Triple::FreeBSD:
--    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2", "", "", "", triple);
--    break;
--  case llvm::Triple::Solaris:
--    // Solaris - Fall though..
--  case llvm::Triple::AuroraUX:
--    // AuroraUX
--    AddGnuCPlusPlusIncludePaths("/opt/gcc4/include/c++/4.2.4",
--                                "i386-pc-solaris2.11", "", "", triple);
--    break;
--  default:
--    break;
--  }
++#if 0  
+   // FIXME: temporary hack: hard-coded paths.
+   switch (os) {
+   case llvm::Triple::Cygwin:
+@@ -769,6 +773,10 @@
+   default:
+     break;
+   }
++#endif
 +  AddGnuCPlusPlusIncludePaths(
 +      CPP_INCLUDE_PATH,
 +      CPP_HOST, "", "", triple);
diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix
index 3948f8b73764..4229e43949a3 100644
--- a/pkgs/development/compilers/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/default.nix
@@ -1,16 +1,17 @@
-{stdenv, fetchurl, fetchsvn, gcc, flex, perl, libtool, groff
-, buildClang ? false}:
+{ stdenv, fetchurl, gcc, flex, perl, libtool, groff
+, buildClang ? false }:
 
 stdenv.mkDerivation ({
-  name = "llvm-2.7";
+  name = "llvm-2.8";
+  
   src = fetchurl {
-    url    = http://llvm.org/releases/2.7/llvm-2.7.tgz;
-    sha256 = "19dwvfyxr851fjfsaxbm56gdj9mlivr37bv6h41hd8q3hpf4nrlr";
+    url    = http://llvm.org/releases/2.8/llvm-2.8.tgz;
+    sha256 = "0fyl2gk2ld28isz9bq4f6r4dhqm9vljfj3pdfwlc2v0w5xsdpb95";
   };
 
-  buildInputs = [ gcc flex perl libtool groff ];
+  buildInputs = [ gcc flex perl groff ];
 
-  configureFlags = [ "--enable-optimized" "--enable-shared" ];
+  configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static" ];
 
   meta = {
     homepage = http://llvm.org/;
@@ -20,8 +21,7 @@ stdenv.mkDerivation ({
     platforms = with stdenv.lib.platforms; all;
   };
 }
-//
-(if buildClang then 
+// stdenv.lib.optionalAttrs buildClang (
   # I write the assert because 'gcc.libc' will be evaluated although 'triplet' would not
   # evaluate properly (in the preConfigure below)
   assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
@@ -30,19 +30,19 @@ stdenv.mkDerivation ({
               else if (stdenv.system == "x86_64-linux") then "x86_64-unknown-linux-gnu"
               else throw "System not supported";
   in {
-    name = "clang-2.7";
+    name = "clang-2.8";
 
-    srcClang = fetchsvn {
-      url = http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_27;
-      rev = 105900;
-      sha256 = "fe79988950319b62d3bca34848424f20a3f33c8182507df222f2ac93fbacf671";
+    srcClang = fetchurl {
+      url = http://llvm.org/releases/2.8/clang-2.8.tgz;
+      sha256 = "1hg0vqmyr4wdy686l2bga0rpin41v0q9ds2k5659m8z6acali0zd";
     };
 
     prePatch = ''
       pushd tools
-      cp -R "$srcClang" clang
-      chmod u+w -R clang
+      unpackFile $srcClang
+      mv clang-2.8 clang
       popd
+      find
     '';
 
     patches = [ ./clang-include-paths.patch ];
@@ -63,5 +63,4 @@ stdenv.mkDerivation ({
       platforms = with stdenv.lib.platforms; linux;
     };
   }
-else {}
 ))
diff --git a/pkgs/development/compilers/llvm/dragonegg.nix b/pkgs/development/compilers/llvm/dragonegg.nix
index 4724e509a6e0..70098a19a066 100644
--- a/pkgs/development/compilers/llvm/dragonegg.nix
+++ b/pkgs/development/compilers/llvm/dragonegg.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     description = "gcc plugin that replaces gcc's optimizers and code generators by those in LLVM";
     license = "GPLv2+";
     maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; all;
+    platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/development/compilers/llvm/svn-head.nix b/pkgs/development/compilers/llvm/svn-head.nix
new file mode 100644
index 000000000000..f929815f8a21
--- /dev/null
+++ b/pkgs/development/compilers/llvm/svn-head.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl, gcc, flex, perl, libtool, groff, fetchsvn
+, buildClang ? false }:
+
+let rev =  "134309"; in
+stdenv.mkDerivation ({
+  name = "llvm-r${rev}";
+  
+  src = fetchsvn {
+    url    = "http://llvm.org/svn/llvm-project/llvm/trunk";
+    inherit rev;
+    sha256 = "136qwpcl22r5bl9y4kk94vgbha1m58xrggy7qw19lg7jkgxxj8s6";
+  };
+
+  buildInputs = [ gcc flex perl groff ];
+
+  configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static" ];
+
+  meta = {
+    homepage = http://llvm.org/;
+    description = "Collection of modular and reusable compiler and toolchain technologies";
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
+// stdenv.lib.optionalAttrs buildClang (
+  # I write the assert because 'gcc.libc' will be evaluated although 'triplet' would not
+  # evaluate properly (in the preConfigure below)
+  assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
+  let
+    triplet = if (stdenv.system == "i686-linux") then "i686-unknown-linux-gnu"
+              else if (stdenv.system == "x86_64-linux") then "x86_64-unknown-linux-gnu"
+              else throw "System not supported";
+  in rec {
+    name = "clang-r${rev}";
+
+    srcClang = fetchsvn {
+      url = http://llvm.org/svn/llvm-project/cfe/trunk;
+      inherit rev;
+      sha256 = "0afbrjakfw6zgsplxblgzr2kwjndlnr2lnqjnbj16ggam5fcnhlr";
+    };
+
+    prePatch = ''
+      cp -r ${srcClang} tools/clang
+      chmod u+rwX -R tools/clang
+    '';
+
+    patches = [ ./clang-include-paths-svn.patch ];
+
+    # Set up the header file paths
+    preConfigure = ''
+      sed -i -e 's,C_INCLUDE_PATH,"${gcc.libc}/include/",' \
+        -e 's,CPP_HOST,"${triplet}",' \
+        -e 's,CPP_INCLUDE_PATH,"${gcc.gcc}/include/c++/${gcc.gcc.version}",' \
+        tools/clang/lib/Frontend/InitHeaderSearch.cpp
+    '';
+
+    meta = {
+      homepage = http://clang.llvm.org/;
+      description = "A C language family frontend for LLVM";
+      license = "BSD";
+      maintainers = with stdenv.lib.maintainers; [viric];
+      platforms = with stdenv.lib.platforms; linux;
+    };
+  }
+))
diff --git a/pkgs/development/compilers/ocaml/3.11.1.nix b/pkgs/development/compilers/ocaml/3.11.1.nix
index 60dc51575016..0add40dcd68f 100644
--- a/pkgs/development/compilers/ocaml/3.11.1.nix
+++ b/pkgs/development/compilers/ocaml/3.11.1.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
   # Needed to avoid a SIGBUS on the final executable on mips
   NIX_CFLAGS_COMPILE = if stdenv.isMips then "-fPIC" else "";
 
+  patches = optionals stdenv.isDarwin [ ./gnused-on-osx-fix.patch ];
+
   prefixKey = "-prefix ";
   configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11 ];
   buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
diff --git a/pkgs/development/compilers/ocaml/3.12.0.nix b/pkgs/development/compilers/ocaml/3.12.0.nix
index bf767af5c9a7..6b58dccc9d56 100644
--- a/pkgs/development/compilers/ocaml/3.12.0.nix
+++ b/pkgs/development/compilers/ocaml/3.12.0.nix
@@ -52,6 +52,8 @@ stdenv.mkDerivation rec {
          generators, a pre-processor pretty-printer (camlp4) and a
          documentation generator (ocamldoc).
        '';
+
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
   };
 
 }
diff --git a/pkgs/development/compilers/ocaml/gnused-on-osx-fix.patch b/pkgs/development/compilers/ocaml/gnused-on-osx-fix.patch
new file mode 100644
index 000000000000..dc2bcb869766
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/gnused-on-osx-fix.patch
@@ -0,0 +1,9 @@
+diff -Nuar ocaml-3.11.1/ocamldoc/remove_DEBUG ocaml-3.11.1-nixpkgs/ocamldoc/remove_DEBUG
+--- ocaml-3.11.1/ocamldoc/remove_DEBUG	2004-04-15 18:18:52.000000000 +0200
++++ ocaml-3.11.1-nixpkgs/ocamldoc/remove_DEBUG	2011-01-01 17:37:07.000000000 +0100
+@@ -18,4 +18,4 @@
+ # respecting the cpp # line annotation conventions
+ 
+ echo "# 1 \"$1\""
+-LC_ALL=C sed -e '/DEBUG/s/.*//' "$1"
++grep -v 'DEBUG' "$1"
diff --git a/pkgs/development/compilers/openjdk/cppflags-include-fix.patch b/pkgs/development/compilers/openjdk/cppflags-include-fix.patch
new file mode 100644
index 000000000000..36fa9054bc62
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/cppflags-include-fix.patch
@@ -0,0 +1,16 @@
+diff -Naur openjdk-orig/jdk/make/sun/awt/mawt.gmk openjdk/jdk/make/sun/awt/mawt.gmk
+--- openjdk-orig/jdk/make/sun/awt/mawt.gmk	2011-06-27 13:19:26.000000000 -0400
++++ openjdk/jdk/make/sun/awt/mawt.gmk	2011-07-31 17:42:11.370026854 -0400
+@@ -223,12 +223,6 @@
+         -I$(PLATFORM_SRC)/native/$(PKGDIR) \
+         $(EVENT_MODEL)
+ 
+-ifeq ($(PLATFORM), linux)
+-  # Checking for the X11/extensions headers at the additional location
+-  CPPFLAGS += -I$(firstword $(wildcard $(OPENWIN_HOME)/include/X11/extensions) \
+-                        $(wildcard /usr/include/X11/extensions))
+-endif
+-
+ ifeq ($(PLATFORM), solaris)
+   CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions
+ endif
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix
new file mode 100644
index 000000000000..df56df5d5cf8
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/default.nix
@@ -0,0 +1,140 @@
+{ stdenv
+, fetchurl
+, unzip
+, zip
+, procps
+, coreutils
+, alsaLib
+, ant
+, freetype
+, cups
+, which
+, jdk
+, nettools
+, libX11
+, libXt
+, libXext
+, libXrender
+, libXtst
+, libXi
+, cpio
+, jreOnly ? false
+}:
+
+stdenv.mkDerivation rec {
+  name = "openj${if jreOnly then "re" else "dk"}-7b127";
+
+  src = fetchurl {
+    url = http://www.java.net/download/openjdk/jdk7/promoted/b147/openjdk-7-fcs-src-b147-27_jun_2011.zip;
+    sha256 = "1qhwlz9y5qmwmja4qnxg6sn3pgsg1i11fb9j41w8l26acyhk34rs";
+  };
+
+  jaxws_src_name = "jdk7-jaxws2_2_4-b03-2011_05_27.zip";
+
+  jaxws_src = fetchurl {
+    url = "http://download.java.net/glassfish/components/jax-ws/openjdk/jdk7/${jaxws_src_name}";
+    sha256 = "1mpzgr9lnbf2p3x45npcniy47kbzi3hyqqbd4w3j63sxnxcp5bh5";
+  };
+
+  jaxp_src_name = "jaxp145_01.zip";
+
+  jaxp_src = fetchurl {
+    url = "http://download.java.net/jaxp/1.4.5/${jaxp_src_name}";
+    sha256 = "1js8m1a6lcn95byplmjjs1lja1maisyl6lgfjy1jx3lqi1hlr4n5";
+  };
+
+  jaf_src_name = "jdk7-jaf-2010_08_19.zip";
+
+  jaf_src = fetchurl {
+    url = "http://java.net/downloads/jax-ws/JDK7/${jaf_src_name}";
+    sha256 = "17n0i5cgvfsd6ric70h3n7hr8aqnzd216gaq3603wrxlvggzxbp6";
+  };
+
+#  outputs = [ "out" ] ++ stdenv.lib.optionals (! jreOnly) [ "jre" ];
+
+  buildInputs = [
+    unzip
+    procps
+    ant
+    which
+    zip
+    cpio
+    nettools
+    alsaLib
+    libX11
+    libXt
+    libXext
+    libXrender
+    libXtst
+    libXi
+  ];
+
+  postUnpack = ''
+    ensureDir drops
+    cp ${jaxp_src} drops/${jaxp_src_name}
+    cp ${jaxws_src} drops/${jaxws_src_name}
+    cp ${jaf_src} drops/${jaf_src_name}
+    export DROPS_PATH=$(pwd)/drops
+
+    sed -i -e "s@/usr/bin/test@${coreutils}/bin/test@" \
+      -e "s@/bin/ls@${coreutils}/bin/ls@" \
+      openjdk/hotspot/make/linux/makefiles/sa.make 
+
+    sed -i "s@/bin/echo -e@${coreutils}/bin/echo -e@" \
+      openjdk/{jdk,corba}/make/common/shared/Defs-utils.gmk
+
+    sed -i "s@<Xrender.h>@<X11/extensions/Xrender.h>@" \
+      openjdk/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c
+  '';
+
+  patches = [
+    ./cppflags-include-fix.patch
+    ./printf-fix.patch
+    ./linux-version-check-fix.patch
+  ];
+
+  makeFlags = [
+    "SORT=${coreutils}/bin/sort"
+    "ALSA_INCLUDE=${alsaLib}/include/alsa/version.h"
+    "FREETYPE_HEADERS_PATH=${freetype}/include"
+    "FREETYPE_LIB_PATH=${freetype}/lib"
+    "MILESTONE=release"
+    "BUILD_NUMBER=b127"
+    "CUPS_HEADERS_PATH=${cups}/include"
+    "USRBIN_PATH="
+    "COMPILER_PATH="
+    "DEVTOOLS_PATH="
+    "UNIXCOMMAND_PATH="
+    "BOOTDIR=${jdk}"
+    "DROPS_DIR=$(DROPS_PATH)"
+  ];
+
+  configurePhase = ''
+    make $makeFlags sanity
+  '';
+
+  installPhase = ''
+    ensureDir $out
+    cp -av build/*/j2${if jreOnly then "re" else "sdk"}-image/* $out
+  '';
+#  '' + (if jreOnly then "" else ''
+#    if [ -z $jre ]; then
+#      exit 0
+#    fi
+#    ensureDir $jre
+#    cp -av build/*/j2re-image/* $jre
+#  '');
+
+  meta = {
+    homepage = http://openjdk.java.net/;
+
+    license = "GPLv2";
+
+    description = "The open-source Java Development Kit";
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/compilers/openjdk/linux-version-check-fix.patch b/pkgs/development/compilers/openjdk/linux-version-check-fix.patch
new file mode 100644
index 000000000000..9d749a198e3f
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/linux-version-check-fix.patch
@@ -0,0 +1,12 @@
+diff -Naur openjdk-orig/hotspot/make/linux/Makefile openjdk/hotspot/make/linux/Makefile
+--- openjdk-orig/hotspot/make/linux/Makefile	2011-06-27 12:10:07.000000000 -0400
++++ openjdk/hotspot/make/linux/Makefile	2011-08-10 20:08:40.879752771 -0400
+@@ -230,7 +230,7 @@
+ # Solaris 2.5.1, 2.6).
+ # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok.
+ 
+-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7%
++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 3%
+ OS_VERSION := $(shell uname -r)
+ EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
+ 
diff --git a/pkgs/development/compilers/openjdk/printf-fix.patch b/pkgs/development/compilers/openjdk/printf-fix.patch
new file mode 100644
index 000000000000..3d66962a1197
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/printf-fix.patch
@@ -0,0 +1,12 @@
+diff -Naur openjdk-orig/make/Defs-internal.gmk openjdk/make/Defs-internal.gmk
+--- openjdk-orig/make/Defs-internal.gmk	2011-06-27 11:44:06.000000000 -0400
++++ openjdk/make/Defs-internal.gmk	2011-07-31 18:30:15.784506762 -0400
+@@ -79,7 +79,7 @@
+ # Find all build_time_* files and print their contents in a list sorted
+ # on the name of the sub repository.
+ define ReportBuildTimes
+-$(PRINTF) "-- Build times ----------\nTarget %s\nStart %s\nEnd   %s\n%s\n%s\n-------------------------\n" \
++$(PRINTF) -- "-- Build times ----------\nTarget %s\nStart %s\nEnd   %s\n%s\n%s\n-------------------------\n" \
+ $1 \
+ "`$(CAT) $(BUILDTIMESDIR)/build_time_start_TOTAL_human_readable`" \
+ "`$(CAT) $(BUILDTIMESDIR)/build_time_end_TOTAL_human_readable`" \
diff --git a/pkgs/development/compilers/pakcs/default.nix b/pkgs/development/compilers/pakcs/default.nix
new file mode 100644
index 000000000000..8d1665844511
--- /dev/null
+++ b/pkgs/development/compilers/pakcs/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, ghc, swiProlog, syb, mtl, makeWrapper, rlwrap, tk }:
+
+stdenv.mkDerivation rec {
+  pname = "pakcs";
+  version = "1.9.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.informatik.uni-kiel.de/~pakcs/download/pakcs_src.tar.gz";
+    sha256 = "1sa6k4s5avn3qvica3a5zvb6q9vnawpp00zviqjwncwwd4a9bcwm";
+  };
+
+  buildInputs = [ ghc swiProlog syb mtl makeWrapper rlwrap tk ];
+
+  prePatch = ''
+    # Remove copying pakcsrc into $HOME.
+    sed -i '/update-pakcsrc/d' Makefile
+
+    # Remove copying pakcsinitrc into $HOME
+    sed -i '68d' configure-pakcs
+  '';
+
+  preConfigure = ''
+    # Path to GHC and SWI Prolog
+    sed -i 's@GHC=@GHC=${ghc}/bin/ghc@' bin/.pakcs_variables
+    sed -i 's@SWIPROLOG=@SWIPROLOG=${swiProlog}/bin/swipl@' bin/.pakcs_variables
+  '';
+
+  postInstall = ''
+    cp pakcsrc $out/
+    cp update-pakcsrc $out/
+    cp -r bin/ $out/
+    cp -r cpns/ $out/
+    cp -r curry2prolog/ $out/
+    cp -r docs/ $out/
+    cp -r examples/ $out/
+    cp -r include/ $out/
+    cp -r lib/ $out/
+    cp -r mccparser/ $out/
+    cp -r tools/ $out/
+    cp -r www/ $out/
+
+    # The Prolog sources must be built in their final directory.
+    (cd $out/curry2prolog/ ; make)
+
+    ensureDir $out/share/emacs/site-lisp/curry-pakcs
+    for e in $out/tools/emacs/*.el ; do
+      ln -s $out/tools/emacs/$e $out/share/emacs/site-lisp/curry-pakcs/;
+    done
+
+    sed -i 's@which@type -P@' $out/bin/.pakcs_wrapper
+
+    # Get the program name from the environment instead of the calling wrapper (for rlwrap).
+    sed -i 's@progname=`basename "$0"`@progname=$PAKCS_PROGNAME@' $out/bin/.pakcs_wrapper
+
+    wrapProgram $out/bin/.pakcs_wrapper \
+      --prefix PATH ":" "${rlwrap}/bin" \
+      --prefix PATH ":" "${tk}/bin" \
+      --run 'export PAKCS_PROGNAME=`basename "$0"`'
+  '';
+
+  meta = {
+    description = "PAKCS is an implementation of the multi-paradigm declarative language Curry.";
+    longDescription = ''
+      PAKCS is an implementation of the multi-paradigm declarative language
+      Curry jointly developed by the Portland State University, the Aachen
+      University of Technology, and the University of Kiel. Although this is
+      not a highly optimized implementation but based on a high-level
+      compilation of Curry programs into Prolog programs, it is not a toy
+      implementation but has been used for a variety of applications (e.g.,
+      graphical programming environments, an object-oriented front-end for
+      Curry, partial evaluators, database applications, HTML programming
+      with dynamic web pages, prototyping embedded systems).
+    '';
+
+    homepage = http://www.informatik.uni-kiel.de/~pakcs/;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.kkallio ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix
index ee4a446162a0..9a3d0a7deb4d 100644
--- a/pkgs/development/compilers/polyml/default.nix
+++ b/pkgs/development/compilers/polyml/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "polyml";
-  version = "5.3";
+  version = "5.4";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}.${version}.tar.gz";
-    sha256 = "154e836f4e65b5c72f8190d3c02e5ed237921cef716cb49add1e0e1e35fb2af4";
+    sha256 = "1ykbm4zk260dkdr8jl7mjaqxy98h65fq0z82k44b1fp5q8zy5d34";
   };
 
   meta = {
@@ -20,5 +20,9 @@ stdenv.mkDerivation {
     '';
     homepage = http://www.polyml.org/;
     license = "LGPL";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = [ #Add your name here!
+      stdenv.lib.maintainers.z77z
+    ];
   };
 }
diff --git a/pkgs/development/compilers/sbcl/src-for-default.nix b/pkgs/development/compilers/sbcl/src-for-default.nix
index 6521bb8c72a4..5c10638805de 100644
--- a/pkgs/development/compilers/sbcl/src-for-default.nix
+++ b/pkgs/development/compilers/sbcl/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="1.0.45";
-   name="sbcl-1.0.45";
-   hash="1asl4qy2mizj239cmgnw2dza03h7j3ysrkdavc5gnv9y4gn9miyi";
-   url="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.45/sbcl-1.0.45-source.tar.bz2";
-   advertisedUrl="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.45/sbcl-1.0.45-source.tar.bz2";
+   version="1.0.50";
+   name="sbcl-1.0.50";
+   hash="1asbb43rmrp87ia2kq66ymdlgdx3jvihlz3dlgwhlz7syd9z3wc3";
+   url="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.50/sbcl-1.0.50-source.tar.bz2";
+   advertisedUrl="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.50/sbcl-1.0.50-source.tar.bz2";
   
   
 }
diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix
index 3e11c2303111..9ce9eaebc123 100644
--- a/pkgs/development/compilers/scala/default.nix
+++ b/pkgs/development/compilers/scala/default.nix
@@ -3,11 +3,11 @@
 # at runtime, need jre or jdk
 
 stdenv.mkDerivation rec {
-  name = "scala-2.7.7";
+  name = "scala-2.8.1";
 
   src = fetchurl {
     url = "http://www.scala-lang.org/downloads/distrib/files/${name}.final.tgz";
-    md5 = "5d2294d5aab72fec869c0ba666d28b7e";
+    sha256 = "0lf76fclvd5l2as3gvzx9jc1b9narx4j046111bmbkcwqw7iw8bl";
   };
 
   installPhase = ''
diff --git a/pkgs/development/compilers/strategoxt/0.18.nix b/pkgs/development/compilers/strategoxt/0.18.nix
index a8abdf53d276..898923b48ac4 100644
--- a/pkgs/development/compilers/strategoxt/0.18.nix
+++ b/pkgs/development/compilers/strategoxt/0.18.nix
@@ -41,11 +41,11 @@ rec {
 
   
   strategoxt = stdenv.mkDerivation rec {
-    name = "strategoxt-0.18pre21134";
+    name = "strategoxt-1.8pre21839";
 
     src = fetchurl {
-      url = http://hydra.nixos.org/build/665485/download/1/strategoxt-1.8pre21134.tar.gz;
-      sha256 = "105ce9a424551cf007e354eac181aafb352713e79cf1735a73564984c3635e53";
+      url = http://hydra.nixos.org/build/1030762/download/1/strategoxt-1.8pre21839.tar.gz;
+      sha256 = "b84012ac75dfd031e5356f07ea9202b9e660de48e07de0b8e1c93ac39c073b24";
     };
 
     buildInputs = [pkgconfig aterm sdf getopt];
diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix
index 255ea1495d63..49498c2fc81c 100644
--- a/pkgs/development/compilers/swi-prolog/default.nix
+++ b/pkgs/development/compilers/swi-prolog/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, gmp, readline, openssl, libjpeg, unixODBC, zlib, libXinerama, libXft, libXpm, libSM, libXt }:
+{ stdenv, fetchurl, gmp, readline, openssl, libjpeg, unixODBC, zlib, 
+   libXinerama, libXft, libXpm, libSM, libXt, freetype, pkgconfig,
+   fontconfig }:
 
 stdenv.mkDerivation rec {
   version = "5.10.2";
@@ -9,10 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "1a3ebbcd649f429a41b64561d38423692e00524c29227432d0eb5a0e24e2a4c9";
   };
 
-  buildInputs = [gmp readline openssl libjpeg unixODBC libXinerama libXft libXpm libSM libXt zlib];
+  buildInputs = [gmp readline openssl libjpeg unixODBC libXinerama 
+    libXft libXpm libSM libXt zlib freetype pkgconfig fontconfig];
   configureFlags = "--with-world --enable-gmp --enable-shared";
   makeFlags = "world";
 
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2"
+  '';
+
   meta = {
     homepage = http://www.swi-prolog.org/;
     description = "A Prolog compiler and interpreter";
diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix
index 8f2a33fa5ae9..89501df648b7 100644
--- a/pkgs/development/compilers/urweb/default.nix
+++ b/pkgs/development/compilers/urweb/default.nix
@@ -1,29 +1,34 @@
-{ stdenv, fetchurl, file, libmhash, mlton, mysql, postgresql, sqlite }:
+{ stdenv, fetchurl, file, openssl, mlton, mysql, postgresql, sqlite }:
 
 stdenv.mkDerivation rec {
   pname = "urweb";
-  version = "20101102";
+  version = "20110715";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://www.impredicative.com/ur/${name}.tgz";
-    sha256 = "1x661z6hg8gb7v1n580kdij9mr6vv3psm28zr4mmipj2kqh66gfi";
+    sha256 = "1qaz6alabhi7jmpsj7x0x4sskkjf05619maym133y2lkgdnvhydh";
   };
 
-  buildInputs = [ stdenv.gcc file libmhash mlton mysql postgresql sqlite ];
+  buildInputs = [ stdenv.gcc file openssl mlton mysql postgresql sqlite ];
 
-  patches = [ ./remove-header-include-directory-prefix.patch ];
-
-  postPatch = ''
+  prePatch = ''
     sed -e 's@/usr/bin/file@${file}/bin/file@g' -i configure
     sed -e 's@gcc @${stdenv.gcc}/bin/gcc @g' -i src/compiler.sml
     '';
 
   preConfigure =
     ''
-      export GCCARGS="-I${mysql}/include/mysql -I${postgresql}/include -I${sqlite}/include -L${libmhash}/lib -L${mysql}/lib/mysql -L${postgresql}/lib -L${sqlite}/lib"
+      export GCCARGS="-I$out/include \
+                      -L${mysql}/lib/mysql -L${postgresql}/lib -L${sqlite}/lib";
+
+      export PGHEADER="${postgresql}/include/libpq-fe.h";
+      export MSHEADER="${mysql}/include/mysql/mysql.h";
+      export SQHEADER="${sqlite}/include/sqlite3.h";
     '';
 
+  configureFlags = "--with-openssl=${openssl}"; 
+
   dontDisableStatic = true;
 
   meta = {
diff --git a/pkgs/development/compilers/urweb/remove-header-include-directory-prefix.patch b/pkgs/development/compilers/urweb/remove-header-include-directory-prefix.patch
deleted file mode 100644
index a7c7c2da9c58..000000000000
--- a/pkgs/development/compilers/urweb/remove-header-include-directory-prefix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Naur urweb-orig/src/mysql.sml urweb-patched/src/mysql.sml
---- urweb-orig/src/mysql.sml	2010-08-23 15:36:58.665234434 -0430
-+++ urweb-patched/src/mysql.sml	2010-08-23 15:44:10.765238334 -0430
-@@ -1521,7 +1521,7 @@
- fun p_blank _ = "?"
-
- val () = addDbms {name = "mysql",
--                  header = "mysql/mysql.h",
-+                  header = "mysql.h",
-                   link = "-lmysqlclient",
-                   init = init,
-                   p_sql_type = p_sql_type,
-diff -Naur urweb-orig/src/postgres.sml urweb-patched/src/postgres.sml
---- urweb-orig/src/postgres.sml	2010-08-23 15:36:58.666253464 -0430
-+++ urweb-patched/src/postgres.sml	2010-08-23 15:43:26.216251221 -0430
-@@ -928,7 +928,7 @@
- fun p_blank (n, t) = p_cast ("$" ^ Int.toString n, t)
-
- val () = addDbms {name = "postgres",
--                  header = "postgresql/libpq-fe.h",
-+                  header = "libpq-fe.h",
-                   link = "-lpq",
-                   p_sql_type = p_sql_type,
-                   init = init,
diff --git a/pkgs/development/compilers/webdsl/default.nix b/pkgs/development/compilers/webdsl/default.nix
index ba667e17c511..a0122319aed7 100644
--- a/pkgs/development/compilers/webdsl/default.nix
+++ b/pkgs/development/compilers/webdsl/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
       strategoPackages.strategoxt strategoPackages.javafront
     ];
 
+  # This corrected a failing build on at least one 64 bit Linux system.
+  # See the comment about this here: http://webdsl.org/selectpage/Download/WebDSLOnLinux
+  preBuild = (if stdenv.system == "x86_64-linux" then "ulimit -s unlimited" else "");
+
   meta = {
     homepage = http://webdsl.org/;
     description = "A domain-specific language for developing dynamic web applications with a rich data model";
diff --git a/pkgs/development/compilers/yasm/default.nix b/pkgs/development/compilers/yasm/default.nix
index 19431de1477e..ed97e8f1b28a 100644
--- a/pkgs/development/compilers/yasm/default.nix
+++ b/pkgs/development/compilers/yasm/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "yasm-1.0.0";
+  name = "yasm-1.1.0";
   
   src = fetchurl {
-    url = http://www.tortall.net/projects/yasm/releases/yasm-1.0.0.tar.gz;
-    sha256 = "0nd95r9y5r3p9mvdyj1yhvlz9zjw0id1g470c7i1p3p0x0n6zc06";
+    url = "http://www.tortall.net/projects/yasm/releases/${name}.tar.gz";
+    sha256 = "e5d56b582f3d0c30ed5c4fc221063e4175602307ea645520889458133671c232";
   };
 
   meta = {
diff --git a/pkgs/development/guile-modules/guile-cairo/default.nix b/pkgs/development/guile-modules/guile-cairo/default.nix
index f8ff52e5ab8e..6663e00c36ee 100644
--- a/pkgs/development/guile-modules/guile-cairo/default.nix
+++ b/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -1,14 +1,14 @@
-{ fetchurl, stdenv, guile, pkgconfig, cairo, guile_lib }:
+{ fetchurl, stdenv, guile, pkgconfig, cairo, expat, guile_lib }:
 
 stdenv.mkDerivation rec {
-  name = "guile-cairo-1.4.0";
+  name = "guile-cairo-1.4.1";
 
   src = fetchurl {
     url = "http://download.gna.org/guile-cairo/${name}.tar.gz";
-    sha256 = "01wmpflfyxh239b5xvm41qn24z9k414klcqyh46r6xwvq2vd9mds";
+    sha256 = "1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x";
   };
 
-  buildInputs = [ guile pkgconfig cairo ]
+  buildInputs = [ guile pkgconfig cairo expat ]
     ++ stdenv.lib.optional doCheck guile_lib;
 
   doCheck = true;
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
          programming environment.
       '';
 
-    license = "LGPLv2+";
+    license = "LGPLv3+";
 
     homepage = http://home.gna.org/guile-cairo/;
 
diff --git a/pkgs/development/guile-modules/guile-lib/default.nix b/pkgs/development/guile-modules/guile-lib/default.nix
index eb69acdef648..593b090922ec 100644
--- a/pkgs/development/guile-modules/guile-lib/default.nix
+++ b/pkgs/development/guile-modules/guile-lib/default.nix
@@ -1,19 +1,34 @@
 {stdenv, fetchurl, guile, texinfo}:
 
+assert stdenv ? gcc && stdenv.gcc ? gcc && stdenv.gcc.gcc != null;
+
 stdenv.mkDerivation rec {
-  name = "guile-lib-0.1.9";
+  name = "guile-lib-0.2.1";
 
   src = fetchurl {
     url = "mirror://savannah/guile-lib/${name}.tar.gz";
-    sha256 = "13sc2x9x0rmfgfa69wabyhajc70yiywih9ibszjmkhxcm2zx0gan";
+    sha256 = "0ag18l7f9cpv4l577ln3f106xiggl7ndxhrqqiz7cg0w38s3cjvl";
   };
 
   buildInputs = [guile texinfo];
 
   doCheck = true;
 
+  preCheck =
+    # Make `libgcc_s.so' visible for `pthread_cancel'.
+    '' export LD_LIBRARY_PATH="$(dirname $(echo ${stdenv.gcc.gcc}/lib*/libgcc_s.so)):$LD_LIBRARY_PATH"
+    '';
+
   meta = {
     description = "Guile-Library, a collection of useful Guile Scheme modules";
+
+    longDescription =
+      '' guile-lib is intended as an accumulation place for pure-scheme Guile
+         modules, allowing for people to cooperate integrating their generic
+         Guile modules into a coherent library.  Think "a down-scaled,
+         limited-scope CPAN for Guile".
+      '';
+
     homepage = http://www.nongnu.org/guile-lib/;
     license = "GPLv3+";
 
diff --git a/pkgs/development/guile-modules/guile-ncurses/default.nix b/pkgs/development/guile-modules/guile-ncurses/default.nix
new file mode 100644
index 000000000000..b138a537809d
--- /dev/null
+++ b/pkgs/development/guile-modules/guile-ncurses/default.nix
@@ -0,0 +1,33 @@
+{ fetchurl, stdenv, guile, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "guile-ncurses-1.3";
+
+  src = fetchurl {
+    url = "mirror://gnu/guile-ncurses/${name}.tar.gz";
+    sha256 = "0chvfjrlmg99db98ra9vzwjmbypqx7d4ssm8q0kvzi0n0p9irszi";
+  };
+
+  buildInputs = [ guile ncurses ];
+
+  preConfigure =
+    '' configureFlags="$configureFlags --with-guilesitedir=$out/share/guile/site" '';
+
+  doCheck = false;  # XXX: 1 of 65 tests failed
+
+  meta = {
+    description = "GNU Guile-Ncurses, Scheme interface to the NCurses libraries";
+
+    longDescription =
+      '' GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
+         provides functions for creating text user interfaces.  The text user
+         interface functionality is built on the ncurses libraries: curses,
+         form, panel, and menu.
+      '';
+
+    license = "LGPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/development/interpreters/angelscript/default.nix b/pkgs/development/interpreters/angelscript/default.nix
new file mode 100644
index 000000000000..65ff72bae56f
--- /dev/null
+++ b/pkgs/development/interpreters/angelscript/default.nix
@@ -0,0 +1,65 @@
+x@{builderDefsPackage
+  , unzip
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="angelscript";
+    version="2.20.2";
+    name="${baseName}-${version}";
+    url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
+    hash="0s5d6av27dl6kxkzns011zwznj7r8zy5ypfhl6x9r1kzaqdkqz2a";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["prepareBuild" "doMake" "cleanLib" "doMakeInstall" "installDocs"];
+
+  prepareBuild = a.fullDepEntry ''
+    cd angelscript/projects/gnuc
+    sed -i makefile -e "s@LOCAL = .*@LOCAL = $out@"
+    ensureDir "$out/lib" "$out/bin" "$out/share" "$out/include"
+    export SHARED=1 
+    export VERSION="${version}"
+  '' ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
+
+  cleanLib = a.fullDepEntry ''
+    rm ../../lib/*
+  '' ["minInit"];
+
+  installDocs = a.fullDepEntry ''
+    ensureDir "$out/share/angelscript"
+    cp -r ../../../docs  "$out/share/angelscript"
+  '' ["defEnsureDir" "prepareBuild"];
+      
+  meta = {
+    description = "A light-weight scripting library";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.zlib;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.angelcode.com/angelscript/downloads.asp";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/interpreters/clisp/default.nix b/pkgs/development/interpreters/clisp/default.nix
index ca57be85b260..c985da9a5a2d 100644
--- a/pkgs/development/interpreters/clisp/default.nix
+++ b/pkgs/development/interpreters/clisp/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, libsigsegv, gettext, ncurses, readline, libX11
 , libXau, libXt, pcre, zlib, libXpm, xproto, libXext, xextproto
-, libffi, libffcall, coreutils }:
+, libffi, libffcall, coreutils}:
 
 stdenv.mkDerivation rec {
   v = "2.49";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     ''
-      --with-readline builddir --with-dynamic-ffi
+      --with-readline builddir --with-dynamic-ffi --with-ffcall 
       --with-module=clx/new-clx --with-module=i18n --with-module=bindings/glibc
       --with-module=pcre --with-module=rawsock --with-module=readline
       --with-module=syscalls --with-module=wildcard --with-module=zlib
diff --git a/pkgs/development/interpreters/erlang/default.nix b/pkgs/development/interpreters/erlang/default.nix
index ec7438c23416..64c8e7830b3f 100644
--- a/pkgs/development/interpreters/erlang/default.nix
+++ b/pkgs/development/interpreters/erlang/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, perl, gnum4, ncurses, openssl }:
 
-let version = "R14A"; in
+let version = "R14B02"; in
 
 stdenv.mkDerivation {
   name = "erlang-" + version;
   
   src = fetchurl {
     url = "http://www.erlang.org/download/otp_src_" + version + ".tar.gz";
-    sha256 = "170n5p6al1bxwngdmafm1c6892xjxppb96gzgki9gfb0mla6li73";
+    sha256 = "1g85a85w031jr5pmz9b0x3p11d44glkf7qpy64l9y7l2b45hb7c4";
   };
   
   buildInputs = [ perl gnum4 ncurses openssl ];
diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix
new file mode 100644
index 000000000000..7cb5d3e53642
--- /dev/null
+++ b/pkgs/development/interpreters/guile/1.8.nix
@@ -0,0 +1,55 @@
+{ fetchurl, stdenv, libtool, readline, gmp
+, gawk, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "guile-1.8.8";
+
+  src = fetchurl {
+    url = "mirror://gnu/guile/" + name + ".tar.gz";
+    sha256 = "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3";
+  };
+
+  patches = [ ./cpp-4.5.patch ];
+
+  buildNativeInputs = [ makeWrapper gawk ];
+  propagatedBuildInputs = [ readline gmp libtool ];
+  selfBuildNativeInput = true;
+
+  postInstall = ''
+    wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
+  '';
+
+  preBuild = ''
+    sed -e '/lt_dlinit/a  lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
+  '';
+
+  # Guile needs patching to preset results for the configure tests
+  # about pthreads, which work only in native builds.
+  preConfigure = ''
+    if test -n "$crossConfig"; then
+      configureFlags="--with-threads=no $configureFlags"
+    fi
+  '';
+
+  # One test fails.
+  # ERROR: file: "libtest-asmobs", message: "file not found"
+  # This is fixed here:
+  # <http://git.savannah.gnu.org/cgit/guile.git/commit/?h=branch_release-1-8&id=a0aa1e5b69d6ef0311aeea8e4b9a94eae18a1aaf>.
+  doCheck = false;
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    description = "GNU Guile, an embeddable Scheme interpreter";
+    longDescription = ''
+      GNU Guile is an interpreter for the Scheme programming language,
+      packaged as a library that can be embedded into programs to make
+      them extensible.  It supports many SRFIs.
+    '';
+
+    homepage = http://www.gnu.org/software/guile/;
+    license = "LGPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
diff --git a/pkgs/development/interpreters/guile/1.9.nix b/pkgs/development/interpreters/guile/1.9.nix
deleted file mode 100644
index 70c2e44c6283..000000000000
--- a/pkgs/development/interpreters/guile/1.9.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
-, libffi, gawk, makeWrapper, coverageAnalysis ? null }:
-
-# Do either a coverage analysis build or a standard build.
-(if coverageAnalysis != null
- then coverageAnalysis
- else stdenv.mkDerivation)
-
-rec {
-  name = "guile-1.9.13";  # This is a beta release!
-
-  src = fetchurl {
-    url = "ftp://alpha.gnu.org/gnu/guile/${name}.tar.gz";
-    sha256 = "1idrp39lnqyiw68k1mmbfrd46zqdn19crwqbg3b064p6hljypdl4";
-  };
-
-  buildInputs =
-    [ makeWrapper gawk readline libtool libunistring
-      libffi pkgconfig
-    ];
-  propagatedBuildInputs = [ gmp boehmgc ]
-
-    # XXX: These ones aren't normally needed here, but since
-    # `libguile-2.0.la' reads `-lltdl -lunistring', adding them here will add
-    # the needed `-L' flags.  As for why the `.la' file lacks the `-L' flags,
-    # see below.
-    ++ [ libtool libunistring ];
-
-  patches =
-    stdenv.lib.optionals (coverageAnalysis != null)
-      [ ./gcov-file-name.patch ./disable-gc-sensitive-tests.patch ];
-
-  postInstall = ''
-    wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
-
-    # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
-    # why `--with-libunistring-prefix' and similar options coming from
-    # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
-    sed -i "$out/lib/pkgconfig/guile-2.0.pc"    \
-        -e 's|-lunistring|-L${libunistring}/lib -lunistring|g ;
-            s|^Cflags:\(.*\)$|Cflags: -I${libunistring}/include \1|g ;
-            s|-lltdl|-L${libtool}/lib -lltdl|g'
-  '';
-
-  doCheck = true;
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    description = "GNU Guile 1.9 (alpha), an embeddable Scheme implementation";
-
-    longDescription = ''
-      GNU Guile is an implementation of the Scheme programming language, with
-      support for many SRFIs, packaged for use in a wide variety of
-      environments.  In addition to implementing the R5RS Scheme standard,
-      Guile includes a module system, full access to POSIX system calls,
-      networking support, multiple threads, dynamic 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/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index dae6a69bcb64..be8d238a97c2 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -1,55 +1,69 @@
-{ fetchurl, stdenv, libtool, readline, gmp
-, gawk, makeWrapper }:
+{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
+, libffi, gawk, makeWrapper, coverageAnalysis ? null }:
 
-stdenv.mkDerivation rec {
-  name = "guile-1.8.7";
+# Do either a coverage analysis build or a standard build.
+(if coverageAnalysis != null
+ then coverageAnalysis
+ else stdenv.mkDerivation)
+
+rec {
+  name = "guile-2.0.2";
 
   src = fetchurl {
-    url = "mirror://gnu/guile/" + name + ".tar.gz";
-    sha256 = "1czhcrn6l63xhsw3fjmv88djflqxbdpxjhgmwwvscm8rv4wn7vmz";
+    url = "mirror://gnu/guile/${name}.tar.gz";
+    sha256 = "0adiwydwb285bb7mcakfdzjgyv24lrm7pk2grgxzi66kidpm6dhx";
   };
 
-  patches = [ ./cpp-4.5.patch ];
+  buildInputs =
+    [ makeWrapper gawk readline libtool libunistring
+      libffi pkgconfig
+    ];
+  propagatedBuildInputs = [ gmp boehmgc ]
+
+    # XXX: These ones aren't normally needed here, but since
+    # `libguile-2.0.la' reads `-lltdl -lunistring', adding them here will add
+    # the needed `-L' flags.  As for why the `.la' file lacks the `-L' flags,
+    # see below.
+    ++ [ libtool libunistring ];
 
-  buildNativeInputs = [ makeWrapper gawk ];
-  propagatedBuildInputs = [ readline gmp libtool ];
-  selfBuildNativeInput = true;
+  patches =
+    stdenv.lib.optionals (coverageAnalysis != null)
+      [ ./gcov-file-name.patch ./disable-gc-sensitive-tests.patch ];
 
   postInstall = ''
     wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
-  '';
 
-  preBuild = ''
-    sed -e '/lt_dlinit/a  lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
+    # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
+    # why `--with-libunistring-prefix' and similar options coming from
+    # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
+    sed -i "$out/lib/pkgconfig/guile-2.0.pc"    \
+        -e 's|-lunistring|-L${libunistring}/lib -lunistring|g ;
+            s|^Cflags:\(.*\)$|Cflags: -I${libunistring}/include \1|g ;
+            s|-lltdl|-L${libtool}/lib -lltdl|g'
   '';
 
-  # Guile needs patching to preset results for the configure tests
-  # about pthreads, which work only in native builds.
-  preConfigure = ''
-    if test -n "$crossConfig"; then
-      configureFlags="--with-threads=no $configureFlags"
-    fi
-  '';
-
-  # One test fails.
-  # ERROR: file: "libtest-asmobs", message: "file not found"
-  # This is fixed here:
-  # <http://git.savannah.gnu.org/cgit/guile.git/commit/?h=branch_release-1-8&id=a0aa1e5b69d6ef0311aeea8e4b9a94eae18a1aaf>.
-  doCheck = false;
+  doCheck = true;
 
   setupHook = ./setup-hook.sh;
 
   meta = {
-    description = "GNU Guile, an embeddable Scheme interpreter";
+    description = "GNU Guile 2.0, an embeddable Scheme implementation";
+
     longDescription = ''
-      GNU Guile is an interpreter for the Scheme programming language,
-      packaged as a library that can be embedded into programs to make
-      them extensible.  It supports many SRFIs.
+      GNU Guile is an implementation of the Scheme programming language, with
+      support for many SRFIs, packaged for use in a wide variety of
+      environments.  In addition to implementing the R5RS Scheme standard
+      and a large subset of R6RS, Guile includes a module system, full access
+      to POSIX system calls, networking support, multiple threads, dynamic
+      linking, a foreign function call interface, and powerful string
+      processing.
     '';
 
     homepage = http://www.gnu.org/software/guile/;
-    license = "LGPLv2+";
+    license = "LGPLv3+";
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
+
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
new file mode 100644
index 000000000000..3be0e8aa1174
--- /dev/null
+++ b/pkgs/development/interpreters/j/default.nix
@@ -0,0 +1,81 @@
+x@{builderDefsPackage
+  , readline
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="j";
+    version="701_b";
+    name="${baseName}-${version}";
+    url="http://www.jsoftware.com/download/${baseName}${version}_source.tar.gz";
+    hash="1gmjlpxcd647x690c4dxnf8h6ays8ndir6cib70h3zfnkrc34cys";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doUnpack" "doBuildJ" "doDeploy"];
+
+  bits = if a.stdenv.system == "i686-linux" then 
+    "32"
+  else if a.stdenv.system == "x86_64-linux" then
+    "64"
+  else 
+    throw "Oops, unknown system: ${a.stdenv.system}";
+
+  doBuildJ = a.fullDepEntry ''
+    sed -i bin/jconfig -e 's@bits=32@bits=${bits}@g; s@readline=0@readline=1@; s@LIBREADLINE=""@LIBREADLINE=" -lreadline "@'
+    sed -i bin/build_libj -e 's@>& make.txt@ 2>\&1 | tee make.txt@'
+
+    touch *.c *.h
+    sh bin/build_jconsole
+    sh bin/build_libj
+    sh bin/build_defs
+    sh bin/build_tsdll
+
+    sed -i j/bin/profile.ijs -e "s@userx=[.] *'.j'@userx=. '/.j'@; 
+        s@bin,'/profilex.ijs'@user,'/profilex.ijs'@ ;
+	/install=./ainstall=. install,'/share/j'
+	"
+  '' ["doUnpack" "addInputs" "minInit"];
+
+  doDeploy = a.fullDepEntry ''
+    ensureDir "$out"
+    cp -r j/bin "$out/bin"
+    rm "$out/bin/profilex_template.ijs"
+    
+    ensureDir "$out/share/j"
+
+    cp -r docs j/addons j/system "$out/share/j"
+  '' ["doUnpack" "doBuildJ" "minInit" "defEnsureDir"];
+      
+  meta = {
+    description = "J programming language, an ASCII-based APL successor";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl3Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://jsoftware.com/source.htm";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/interpreters/kona/default.nix b/pkgs/development/interpreters/kona/default.nix
new file mode 100644
index 000000000000..2e433e11033f
--- /dev/null
+++ b/pkgs/development/interpreters/kona/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , fetchgit
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["fetchgit"];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+in
+rec {
+  srcDrv = a.fetchgit {
+    url = "https://github.com/kevinlawler/kona.git";
+    inherit rev;
+    sha256 = "165ff5f3d1b510a1ad73ec465b4ed1b8ef44d7affa94f952781fea212c72d891";
+  };
+
+  src = "${srcDrv}/";
+
+  rev = "fddc2688ef515a653fb6";
+  version = "git-${rev}";
+  name = "kona-${version}";
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["prepareOut" "doMakeInstall"];
+  makeFlags = ["PREFIX=\$out"];
+
+  prepareOut = a.fullDepEntry ''
+    ensureDir "$out/bin"
+  '' ["minInit" "defEnsureDir"];
+      
+  meta = {
+    description = "An interpreter of K, APL-like programming language";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "https://github.com/kevinlawler/kona";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/interpreters/lua-4/builder.sh b/pkgs/development/interpreters/lua-4/builder.sh
deleted file mode 100644
index 350f67dc9183..000000000000
--- a/pkgs/development/interpreters/lua-4/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-source $stdenv/setup
-
-buildFlags="all so sobin"
-installFlags="INSTALL_ROOT=$out"
-
-genericBuild
diff --git a/pkgs/development/interpreters/lua-4/default.nix b/pkgs/development/interpreters/lua-4/default.nix
index 9502a9a0860f..a95e4e4c35ea 100644
--- a/pkgs/development/interpreters/lua-4/default.nix
+++ b/pkgs/development/interpreters/lua-4/default.nix
@@ -1,10 +1,30 @@
-{stdenv, fetchurl}: 
+{stdenv, fetchurl}:
 
 stdenv.mkDerivation {
   name = "lua-4.0.1";
+
   src = fetchurl {
     url = http://www.lua.org/ftp/lua-4.0.1.tar.gz;
     md5 = "a31d963dbdf727f9b34eee1e0d29132c";
   };
-  builder= ./builder.sh;
+
+  configurePhase = "sed -i -e 's/CFLAGS= -O2/CFLAGS = -O3 -fPIC/' config";
+  buildFlags = "all so sobin";
+  installFlags = "INSTALL_ROOT=$$out";
+
+  meta = {
+    homepage = "http://www.lua.org";
+    description = "Lua is a powerful, fast, lightweight, embeddable scripting language.";
+    longDescription = ''
+      Lua combines simple procedural syntax with powerful data
+      description constructs based on associative arrays and extensible
+      semantics. Lua is dynamically typed, runs by interpreting bytecode
+      for a register-based virtual machine, and has automatic memory
+      management with incremental garbage collection, making it ideal
+      for configuration, scripting, and rapid prototyping.
+    '';
+    license = "MIT";
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ ];
+  };
 }
diff --git a/pkgs/development/interpreters/lua-5/5.0.3.nix b/pkgs/development/interpreters/lua-5/5.0.3.nix
new file mode 100644
index 000000000000..ff2a81401910
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/5.0.3.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "lua-5.0.3";
+
+  src = fetchurl {
+    url = http://www.lua.org/ftp/lua-5.0.3.tar.gz;
+    sha256 = "1193a61b0e08acaa6eee0eecf29709179ee49c71baebc59b682a25c3b5a45671";
+  };
+
+  configurePhase = "sed -i -e 's/MYCFLAGS=.*/MYCFLAGS=-O3 -fomit-frame-pointer -fPIC/' config";
+  buildFlags = "all so sobin";
+  installFlags = "INSTALL_ROOT=$$out";
+  installTargets = "install soinstall";
+
+  meta = {
+    homepage = "http://www.lua.org";
+    description = "Lua is a powerful, fast, lightweight, embeddable scripting language.";
+    longDescription = ''
+      Lua combines simple procedural syntax with powerful data
+      description constructs based on associative arrays and extensible
+      semantics. Lua is dynamically typed, runs by interpreting bytecode
+      for a register-based virtual machine, and has automatic memory
+      management with incremental garbage collection, making it ideal
+      for configuration, scripting, and rapid prototyping.
+    '';
+    license = "MIT";
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ ];
+  };
+}
diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix
index 594ee980bbd9..f5d4fd090159 100644
--- a/pkgs/development/interpreters/maude/default.nix
+++ b/pkgs/development/interpreters/maude/default.nix
@@ -1,29 +1,27 @@
 { stdenv, fetchurl, flex, bison, ncurses, buddy, tecla, libsigsegv, gmpxx, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "maude-2.5";
+  name = "maude-2.6";
 
   src = fetchurl {
-    url = "http://maude.cs.uiuc.edu/download/current/Maude-2.5.tar.gz";
-    sha256 = "16bvnbyi257z87crzkw9gx2kz13482hnjnik22c2p2ml4rj4lpfw";
+    url = "http://maude.cs.uiuc.edu/download/current/Maude-2.6.tar.gz";
+    sha256 = "182abzhvjvlaa21aqv7802v3bs57a4dm7cw09s3mqmih7nzpkfm5";
   };
 
   fullMaude = fetchurl {
-    url = "http://maude.cs.uiuc.edu/download/current/FM2.5/full-maude25.maude";
-    sha256 = "1d0izdbmhpifb2plnkk3cp7li2z60r8a8ppxhifmfpzi6x6pfvrd";
+    url = "http://maude.cs.uiuc.edu/download/current/FM2.6/full-maude26.maude";
+    sha256 = "1382hjwwrsdgd5yjn3ph1b5i1bhrhzvqx0v369bmcjkly9k96v6q";
   };
 
   buildInputs = [flex bison ncurses buddy tecla gmpxx libsigsegv makeWrapper];
 
   configurePhase = ''./configure --disable-dependency-tracking --prefix=$out --datadir=$out/share/maude TECLA_LIBS="-ltecla -lncursesw" CFLAGS="-O3" CXXFLAGS="-O3"'';
 
-  # The test suite is known to fail on Darwin. If maude is ever updated to a
-  # new version, this exception ought to be removed again.
-  doCheck = !stdenv.isDarwin;
+  doCheck = true;
 
   postInstall =
   ''
-    for n in $out/bin/*; do wrapProgram "$n" --suffix MAUDE_LIB ':' "$out/share/maude"; done
+    for n in "$out/bin/"*; do wrapProgram "$n" --suffix MAUDE_LIB ':' "$out/share/maude"; done
     ensureDir $out/share/maude
     cp ${fullMaude} $out/share/maude/full-maude.maude
   '';
diff --git a/pkgs/development/interpreters/php/5.2.nix b/pkgs/development/interpreters/php/5.2.nix
index 8063b1a55124..f98d178663f1 100644
--- a/pkgs/development/interpreters/php/5.2.nix
+++ b/pkgs/development/interpreters/php/5.2.nix
@@ -8,9 +8,9 @@ in
 
 composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
-  version = "5.2.14";
+  version = "5.2.17";
 
-  name = "php_configurable-${version}";
+  name = "php-${version}";
 
   buildInputs = ["flex" "bison" "pkgconfig"];
 
@@ -44,6 +44,11 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
           ];
         buildInputs = [ libxml2 ];
       };
+
+      readline = {
+        configureFlags = ["--with-readline=${readline}"];
+        buildInputs = [ readline ];
+      };
     
       sqlite = {
         configureFlags = ["--with-pdo-sqlite=${sqlite}"];
@@ -126,6 +131,7 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
     curlSupport = getConfig ["php" "curl"] true;
     gettextSupport = getConfig ["php" "gettext"] true;
     postgresqlSupport = getConfig ["php" "postgresql"] true;
+    readlineSupport = getConfig ["php" "readline"] true;
     sqliteSupport = getConfig ["php" "sqlite"] true;
     soapSupport = getConfig ["php" "soap"] true;
     zlibSupport = getConfig ["php" "zlib"] true;
@@ -151,7 +157,7 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
   src = args.fetchurl {
     url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
-    sha256 = "1l9b7iv0f6ds9x2ayclcfgjh62xbabbv11ixp5cqsyaq2ba5ynsi";
+    sha256 = "0v0i7zjp1a2c60imn58xjqcczmiglnfnwdkgwl0bfai4xh9yn6z8";
     name = "php-${version}.tar.bz2";
   };
 
diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix
index 3080a2c24cda..6e4e67069b96 100644
--- a/pkgs/development/interpreters/php/5.3.nix
+++ b/pkgs/development/interpreters/php/5.3.nix
@@ -8,9 +8,9 @@ in
 
 composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
-  version = "5.3.4";
+  version = "5.3.6";
 
-  name = "php_configurable-${version}";
+  name = "php-${version}";
 
   buildInputs = ["flex" "bison" "pkgconfig"];
 
@@ -45,6 +45,11 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
         buildInputs = [ libxml2 ];
       };
     
+      readline = {
+        configureFlags = ["--with-readline=${readline}"];
+        buildInputs = [ readline ];
+      };
+
       sqlite = {
         configureFlags = ["--with-pdo-sqlite=${sqlite}"];
         buildInputs = [ sqlite ];
@@ -126,6 +131,7 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
     curlSupport = getConfig ["php" "curl"] true;
     gettextSupport = getConfig ["php" "gettext"] true;
     postgresqlSupport = getConfig ["php" "postgresql"] true;
+    readlineSupport = getConfig ["php" "readline"] true;
     sqliteSupport = getConfig ["php" "sqlite"] true;
     soapSupport = getConfig ["php" "soap"] true;
     zlibSupport = getConfig ["php" "zlib"] true;
@@ -151,7 +157,7 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
   src = args.fetchurl {
     url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
-    sha256 = "1391yibyc7kcrnprv6g57s2m6ld6n9j2iybzvwd2srdihl8q6cm8";
+    sha256 = "161iimjsnbvzqbf6chxv778n8qqdig2y704vrkn97vp3487qibih";
     name = "php-${version}.tar.bz2";
   };
 
diff --git a/pkgs/development/interpreters/picolisp/default.nix b/pkgs/development/interpreters/picolisp/default.nix
new file mode 100644
index 000000000000..298c12d271a4
--- /dev/null
+++ b/pkgs/development/interpreters/picolisp/default.nix
@@ -0,0 +1,66 @@
+x@{builderDefsPackage
+  , jdk /* only used in bootstrap */
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="picolisp";
+    tarballBaseName="picoLisp";
+    version="3.0.5";
+    name="${baseName}-${version}";
+    tarballName="${tarballBaseName}-${version}";
+    extension="tgz";
+    url="http://www.software-lab.de/${tarballName}.${extension}";
+    hash="07w2aygllkmnfcnby3dy88n9giqsas35s77rp2lr2ll5yy2hkc0x";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doMake" "doDeploy"];
+
+  goSrcDir = if a.stdenv.system == "x86_64-linux" then 
+    "cd src64" else "cd src";
+  makeFlags = [''PREFIX=$out''];
+
+  doDeploy = a.fullDepEntry (''
+    cd ..
+
+    sed -e "s@/usr/@$out/@g" -i bin/pil
+
+    ensureDir "$out/share/picolisp" "$out/lib" "$out/bin"
+    cp -r . "$out/share/picolisp/build-dir"
+    ln -s "$out/share/picolisp/build-dir" "$out/lib/picolisp"
+    ln -s "$out/lib/picolisp/bin/picolisp" "$out/bin/picolisp"
+  '') ["minInit" "defEnsureDir" "doMake"];
+      
+  meta = {
+    description = "An interpreter for a small Lisp dialect with builtin DB";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.mit;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.software-lab.de/down.html";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/interpreters/pure/default.nix b/pkgs/development/interpreters/pure/default.nix
new file mode 100644
index 000000000000..69cb686bec27
--- /dev/null
+++ b/pkgs/development/interpreters/pure/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , llvm, gmp, mpfr, readline
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="pure";
+    project="pure-lang";
+    version="0.47";
+    name="${baseName}-${version}";
+    extension="tar.gz";
+    url="http://${project}.googlecode.com/files/${name}.${extension}";
+    hash="16j0k639kw2am4fc2h7q5sk7kx5z7nca896dakhphlb9zn9h0gbv";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A purely functional programming language based on term rewriting";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl3Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://code.google.com/p/pure-lang/downloads/list";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/interpreters/python/2.4/default.nix b/pkgs/development/interpreters/python/2.4/default.nix
deleted file mode 100644
index f9673cc68d9e..000000000000
--- a/pkgs/development/interpreters/python/2.4/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2}:
-
-assert zlibSupport -> zlib != null;
-
-with stdenv.lib;
-
-let
-
-  buildInputs =
-    optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
-    [bzip2] ++
-    optional zlibSupport zlib;
-
-in
-
-stdenv.mkDerivation {
-  name = "python-2.4.6";
-  majorVersion = "2.4";
-  version = "2.4.6";
-
-  src = fetchurl {
-    url = http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tar.bz2;
-    sha256 = "021y88a4ki07dgq19yhg6zfvmncfiz7h5b2255438i9zmlwl246s";
-  };
-
-  patches = [
-    # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
-    ./search-path.patch
-  ];
-
-  inherit buildInputs;
-  C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
-  LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
-
-  configureFlags = "--enable-shared";
-
-  preConfigure = ''
-    # Purity.
-    for i in /usr /sw /opt /pkg; do
-      substituteInPlace ./setup.py --replace $i /no-such-path
-    done
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  postInstall = ''
-    rm -rf $out/lib/python2.4/test
-  '';
-
-  passthru = {
-    inherit zlibSupport;
-    libPrefix = "python2.4";
-  };
-}
diff --git a/pkgs/development/interpreters/python/2.4/search-path.patch b/pkgs/development/interpreters/python/2.4/search-path.patch
deleted file mode 100644
index 2e7b7526c0ce..000000000000
--- a/pkgs/development/interpreters/python/2.4/search-path.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -rc Python-2.4.4-orig/setup.py Python-2.4.4/setup.py
-*** Python-2.4.4-orig/setup.py	2006-10-08 19:41:25.000000000 +0200
---- Python-2.4.4/setup.py	2007-05-27 16:04:54.000000000 +0200
-***************
-*** 279,288 ****
-          # Check for AtheOS which has libraries in non-standard locations
-          if platform == 'atheos':
-              lib_dirs += ['/system/libs', '/atheos/autolnk/lib']
--             lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep)
-              inc_dirs += ['/system/include', '/atheos/autolnk/include']
--             inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
-  
-          # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
-          if platform in ['osf1', 'unixware7', 'openunix8']:
-              lib_dirs += ['/usr/ccs/lib']
---- 279,289 ----
-          # Check for AtheOS which has libraries in non-standard locations
-          if platform == 'atheos':
-              lib_dirs += ['/system/libs', '/atheos/autolnk/lib']
-              inc_dirs += ['/system/include', '/atheos/autolnk/include']
-  
-+         lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep)
-+         inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
-+         
-          # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
-          if platform in ['osf1', 'unixware7', 'openunix8']:
-              lib_dirs += ['/usr/ccs/lib']
diff --git a/pkgs/development/interpreters/python/2.6/default.nix b/pkgs/development/interpreters/python/2.6/default.nix
index 53428de33f45..4a3c292412f1 100644
--- a/pkgs/development/interpreters/python/2.6/default.nix
+++ b/pkgs/development/interpreters/python/2.6/default.nix
@@ -1,97 +1,179 @@
 { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
-, gdbmSupport ? true, gdbm ? null
-, sqlite ? null
-, db4 ? null
-, readline ? null
-, openssl ? null
-, tk ? null
-, tcl ? null
-, libX11 ? null
-, xproto ? null
-, arch ? null
-, sw_vers ? null
-, ncurses ? null
+, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm
+, darwinArchUtility ? null, darwinSwVersUtility ? null
 }:
 
 assert zlibSupport -> zlib != null;
-assert gdbmSupport -> gdbm != null;
-assert stdenv.isDarwin -> arch != null;
-assert stdenv.isDarwin -> sw_vers != null;
+assert stdenv.isDarwin -> darwinArchUtility != null;
+assert stdenv.isDarwin -> darwinSwVersUtility != null;
 
 with stdenv.lib;
 
 let
 
   majorVersion = "2.6";
-  version = "${majorVersion}.5";
-
-  buildInputs =
-    optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
-    [bzip2]
-    ++ optional zlibSupport zlib
-    ++ optional gdbmSupport gdbm
-    ++ optional (sqlite != null) sqlite
-    ++ optional (db4 != null) db4
-    ++ optional (readline != null) readline
-    ++ optional (openssl != null) openssl
-    ++ optional (tk != null) tk
-    ++ optional (tcl != null) tcl
-    ++ optional (libX11 != null) libX11
-    ++ optional (xproto != null) xproto
-    ++ optional (arch != null) arch
-    ++ optional (sw_vers != null) sw_vers
-    ++ optional (ncurses != null) ncurses
-    ;
-
-in
-
-stdenv.mkDerivation ( {
-  name = "python-${version}";
-  inherit majorVersion version;
+  version = "${majorVersion}.6";
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "62da62eb685621ede2be1275f11b89fa0e0be578db8daa5320d0a7855c0a9ebc";
+    md5 = "cf4e6881bb84a7ce6089e4a307f71f14";
   };
+  
+  patches =
+    [ # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
+      ./search-path.patch
+
+      # Python recompiles a Python if the mtime stored *in* the
+      # pyc/pyo file differs from the mtime of the source file.  This
+      # 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
+    ];
 
-  patches = [
-    # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
-    ./search-path.patch
-  ];
-
-  inherit buildInputs;
-  C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
-  LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
-  configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
-
-  preConfigure = ''
-    # Purity.
-    for i in /usr /sw /opt /pkg; do
-      substituteInPlace ./setup.py --replace $i /no-such-path
-    done
-  '' + (if readline != null then ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"
-  '' else "");
-
-  setupHook = ./setup-hook.sh;
-
-  postInstall = ''
-    rm -rf "$out/lib/python${majorVersion}/test"
-  '';
-
-  passthru = {
-    inherit zlibSupport;
-    sqliteSupport = sqlite != null;
-    db4Support = db4 != null;
-    readlineSupport = readline != null;
-    opensslSupport = openssl != null;
-    tkSupport = (tk != null) && (tcl != null);
-    libPrefix = "python${majorVersion}";
+  buildInputs =
+    optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
+    [ bzip2 ]
+    ++ optional zlibSupport zlib
+    ++ optionals stdenv.isDarwin [ darwinArchUtility darwinSwVersUtility ];
+
+    
+  # Build the basic Python interpreter without modules that have
+  # external dependencies.
+  python = stdenv.mkDerivation {
+    name = "python-${version}";
+    
+    inherit majorVersion version src patches buildInputs;
+
+    C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
+    LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+
+    configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
+
+    preConfigure =
+      ''
+        # Purity.
+        for i in /usr /sw /opt /pkg; do
+          substituteInPlace ./setup.py --replace $i /no-such-path
+        done
+      '';
+
+    NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
+
+    setupHook = ./setup-hook.sh;
+
+    postInstall =
+      ''
+        rm -rf "$out/lib/python${majorVersion}/test"
+      '';
+
+    passthru = {
+      inherit zlibSupport;
+      libPrefix = "python${majorVersion}";
+    };
+
+    enableParallelBuilding = true;
+
+    meta = {
+      homepage = "http://python.org";
+      description = "Python -- a high-level dynamically-typed programming language";
+      longDescription = ''
+        Python is a remarkably powerful dynamic programming language that
+        is used in a wide variety of application domains. Some of its key
+        distinguishing features include: clear, readable syntax; strong
+        introspection capabilities; intuitive object orientation; natural
+        expression of procedural code; full modularity, supporting
+        hierarchical packages; exception-based error handling; and very
+        high level dynamic data types.
+      '';
+      license = "GPLv2";
+      platforms = stdenv.lib.platforms.all;
+      maintainers = [ stdenv.lib.maintainers.simons ];
+    };
   };
 
-  enableParallelBuilding = true;
 
-  meta = {
-    platforms = stdenv.lib.platforms.all;
+  # This function builds a Python module included in the main Python
+  # distribution in a separate derivation.
+  buildInternalPythonModule =
+    { moduleName
+    , internalName ? "_" + moduleName
+    , deps
+    }:
+    stdenv.mkDerivation rec {
+      name = "python-${moduleName}-${python.version}";
+
+      inherit src patches;
+
+      buildInputs = [ python ] ++ deps;
+
+      C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
+      LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+
+      configurePhase = "true";
+
+      buildPhase =
+        ''
+          # Fake the build environment that setup.py expects.
+          ln -s ${python}/include/python*/pyconfig.h .
+          ln -s ${python}/lib/python*/config/Setup Modules/
+          ln -s ${python}/lib/python*/config/Setup.local Modules/
+
+          substituteInPlace setup.py --replace 'self.extensions = extensions' \
+            'self.extensions = [ext for ext in self.extensions if ext.name in ["${internalName}"]]'
+
+          python ./setup.py build_ext
+        '';
+
+      installPhase =
+        ''
+          dest=$out/lib/${python.libPrefix}/site-packages
+          mkdir -p $dest
+          cp -p $(find . -name "*.${if stdenv.isCygwin then "dll" else "so"}") $dest/
+        '';
+    };
+
+
+  # The Python modules included in the main Python distribution, built
+  # as separate derivations.
+  modules = {
+
+    bsddb = buildInternalPythonModule {
+      moduleName = "bsddb";
+      deps = [ db4 ];
+    };
+
+    curses = buildInternalPythonModule {
+      moduleName = "curses";
+      deps = [ ncurses ];
+    };
+
+    gdbm = buildInternalPythonModule {
+      moduleName = "gdbm";
+      internalName = "gdbm";
+      deps = [ gdbm ];
+    };
+
+    sqlite3 = buildInternalPythonModule {
+      moduleName = "sqlite3";
+      deps = [ sqlite ];
+    };
+
+    ssl = buildInternalPythonModule {
+      moduleName = "ssl";
+      deps = [ openssl ];
+    };
+
+    tkinter = buildInternalPythonModule {
+      moduleName = "tkinter";
+      deps = [ tcl tk x11 ];
+    };
+
+    readline = buildInternalPythonModule {
+      moduleName = "readline";
+      internalName = "readline";
+      deps = [ readline ];
+    };
+
   };
-} // (if stdenv.isDarwin then { NIX_CFLAGS_COMPILE = "-msse2" ; patches = [./search-path.patch]; } else {} ) )
+  
+in python // { inherit modules; }
diff --git a/pkgs/development/interpreters/python/2.6/nix-store-mtime.patch b/pkgs/development/interpreters/python/2.6/nix-store-mtime.patch
new file mode 100644
index 000000000000..83f3fea1931b
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.6/nix-store-mtime.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' Python-2.7.1-orig/Python/import.c Python-2.7.1/Python/import.c
+--- Python-2.7.1-orig/Python/import.c	2010-05-20 20:37:55.000000000 +0200
++++ Python-2.7.1/Python/import.c	2011-01-04 15:55:11.000000000 +0100
+@@ -751,7 +751,7 @@
+         return NULL;
+     }
+     pyc_mtime = PyMarshal_ReadLongFromFile(fp);
+-    if (pyc_mtime != mtime) {
++    if (pyc_mtime != mtime && mtime != 1) {
+         if (Py_VerboseFlag)
+             PySys_WriteStderr("# %s has bad mtime\n", cpathname);
+         fclose(fp);
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/2.7/default.nix
index d9ec86088bb8..483a7e5fc002 100644
--- a/pkgs/development/interpreters/python/2.7/default.nix
+++ b/pkgs/development/interpreters/python/2.7/default.nix
@@ -1,110 +1,187 @@
 { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
-, gdbmSupport ? true, gdbm ? null
-, sqlite ? null
-, db4 ? null
-, readline ? null
-, openssl ? null
-, tk ? null
-, tcl ? null
-, libX11 ? null
-, xproto ? null
-, arch ? null
-, sw_vers ? null
-, ncurses ? null
+, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm
+, darwinArchUtility ? null, darwinSwVersUtility ? null
 }:
 
 assert zlibSupport -> zlib != null;
-assert gdbmSupport -> gdbm != null;
-assert stdenv.isDarwin -> arch != null;
-assert stdenv.isDarwin -> sw_vers != null;
+assert stdenv.isDarwin -> darwinArchUtility != null;
+assert stdenv.isDarwin -> darwinSwVersUtility != null;
 
 with stdenv.lib;
 
 let
 
   majorVersion = "2.7";
-  version = "${majorVersion}";
+  version = "${majorVersion}.1";
+
+  src = fetchurl {
+    url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
+    sha256 = "14i2c7yqa7ljmx2i2bb827n61q33zn23ax96czi8rbkyyny8gqw0";
+  };
+
+  patches =
+    [ # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
+      ./search-path.patch
+
+      # Python recompiles a Python if the mtime stored *in* the
+      # pyc/pyo file differs from the mtime of the source file.  This
+      # 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
+    ];
 
   buildInputs =
     optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
-    [bzip2]
+    [ bzip2 ]
     ++ optional zlibSupport zlib
-    ++ optional gdbmSupport gdbm
-    ++ optional (sqlite != null) sqlite
-    ++ optional (db4 != null) db4
-    ++ optional (readline != null) readline
-    ++ optional (openssl != null) openssl
-    ++ optional (tk != null) tk
-    ++ optional (tcl != null) tcl
-    ++ optional (libX11 != null) libX11
-    ++ optional (xproto != null) xproto
-    ++ optional (arch != null) arch
-    ++ optional (sw_vers != null) sw_vers
-    ++ optional (ncurses != null) ncurses
-    ;
-
-in
-
-stdenv.mkDerivation ( {
-  name = "python-${version}";
-  inherit majorVersion version;
+    ++ optionals stdenv.isDarwin [ darwinArchUtility darwinSwVersUtility ];
+
+  ensurePurity =
+    ''
+      # Purity.
+      for i in /usr /sw /opt /pkg; do
+        substituteInPlace ./setup.py --replace $i /no-such-path
+      done
+    '';
 
-  src = fetchurl {
-    url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "935d3316edfec5eb98c2f6930756b47b00dc27192541e62d6fd0077ffa008af8";
+  # Build the basic Python interpreter without modules that have
+  # external dependencies.
+  python = stdenv.mkDerivation {
+    name = "python-${version}";
+
+    inherit majorVersion version src patches buildInputs;
+
+    C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
+    LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+
+    configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
+
+    preConfigure = "${ensurePurity}" + optionalString stdenv.isCygwin
+      ''
+        # On Cygwin, `make install' tries to read this Makefile.
+        mkdir -p $out/lib/python${majorVersion}/config
+        touch $out/lib/python${majorVersion}/config/Makefile
+        mkdir -p $out/include/python${majorVersion}
+        touch $out/include/python${majorVersion}/pyconfig.h
+      '';
+
+    NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
+
+    setupHook = ./setup-hook.sh;
+
+    postInstall =
+      ''
+        rm -rf "$out/lib/python${majorVersion}/test"
+      '';
+
+    passthru = {
+      inherit zlibSupport;
+      libPrefix = "python${majorVersion}";
+    };
+
+    enableParallelBuilding = true;
+
+    meta = {
+      homepage = "http://python.org";
+      description = "Python -- a high-level dynamically-typed programming language";
+      longDescription = ''
+        Python is a remarkably powerful dynamic programming language that
+        is used in a wide variety of application domains. Some of its key
+        distinguishing features include: clear, readable syntax; strong
+        introspection capabilities; intuitive object orientation; natural
+        expression of procedural code; full modularity, supporting
+        hierarchical packages; exception-based error handling; and very
+        high level dynamic data types.
+      '';
+      license = "GPLv2";
+      platforms = stdenv.lib.platforms.all;
+      maintainers = [ stdenv.lib.maintainers.simons ];
+    };
   };
 
-  patches = [
-    # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
-    ./search-path.patch
-  ];
-
-  inherit buildInputs;
-  C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
-  LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
-  configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
-
-  preConfigure = ''
-    # Purity.
-    for i in /usr /sw /opt /pkg; do
-      substituteInPlace ./setup.py --replace $i /no-such-path
-    done
-  '' + (if readline != null then ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"
-  '' else "");
-
-  setupHook = ./setup-hook.sh;
-
-  postInstall = ''
-    rm -rf "$out/lib/python${majorVersion}/test"
-  '';
-
-  passthru = {
-    inherit zlibSupport;
-    sqliteSupport = sqlite != null;
-    db4Support = db4 != null;
-    readlineSupport = readline != null;
-    opensslSupport = openssl != null;
-    tkSupport = (tk != null) && (tcl != null);
-    libPrefix = "python${majorVersion}";
-  };
 
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "http://python.org";
-    description = "Python -- a high-level dynamically-typed programming language";
-    longDescription = ''
-      Python is a remarkably powerful dynamic programming language that
-      is used in a wide variety of application domains. Some of its key
-      distinguishing features include: clear, readable syntax; strong
-      introspection capabilities; intuitive object orientation; natural
-      expression of procedural code; full modularity, supporting
-      hierarchical packages; exception-based error handling; and very
-      high level dynamic data types.
-    '';
-    license = "GPLv2";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
+  # This function builds a Python module included in the main Python
+  # distribution in a separate derivation.
+  buildInternalPythonModule =
+    { moduleName
+    , internalName ? "_" + moduleName
+    , deps
+    }:
+    stdenv.mkDerivation rec {
+      name = "python-${moduleName}-${python.version}";
+
+      inherit src patches;
+
+      buildInputs = [ python ] ++ deps;
+
+      C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
+      LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+
+      configurePhase = "${ensurePurity}";
+
+      buildPhase =
+        ''
+          # Fake the build environment that setup.py expects.
+          ln -s ${python}/include/python*/pyconfig.h .
+          ln -s ${python}/lib/python*/config/Setup Modules/
+          ln -s ${python}/lib/python*/config/Setup.local Modules/
+
+          substituteInPlace setup.py --replace 'self.extensions = extensions' \
+            'self.extensions = [ext for ext in self.extensions if ext.name in ["${internalName}"]]'
+
+          python ./setup.py build_ext
+        '';
+
+      installPhase =
+        ''
+          dest=$out/lib/${python.libPrefix}/site-packages
+          mkdir -p $dest
+          cp -p $(find . -name "*.${if stdenv.isCygwin then "dll" else "so"}") $dest/
+        '';
+    };
+
+
+  # The Python modules included in the main Python distribution, built
+  # as separate derivations.
+  modules = {
+
+    bsddb = buildInternalPythonModule {
+      moduleName = "bsddb";
+      deps = [ db4 ];
+    };
+
+    curses = buildInternalPythonModule {
+      moduleName = "curses";
+      deps = [ ncurses ];
+    };
+
+    gdbm = buildInternalPythonModule {
+      moduleName = "gdbm";
+      internalName = "gdbm";
+      deps = [ gdbm ];
+    };
+
+    sqlite3 = buildInternalPythonModule {
+      moduleName = "sqlite3";
+      deps = [ sqlite ];
+    };
+
+    ssl = buildInternalPythonModule {
+      moduleName = "ssl";
+      deps = [ openssl ];
+    };
+
+    tkinter = buildInternalPythonModule {
+      moduleName = "tkinter";
+      deps = [ tcl tk x11 ];
+    };
+
+    readline = buildInternalPythonModule {
+      moduleName = "readline";
+      internalName = "readline";
+      deps = [ readline ];
+    };
+
   };
-} // (if stdenv.isDarwin then { NIX_CFLAGS_COMPILE = "-msse2" ; patches = [./search-path.patch]; } else {} ) )
+
+in python // { inherit modules; }
diff --git a/pkgs/development/interpreters/python/2.7/nix-store-mtime.patch b/pkgs/development/interpreters/python/2.7/nix-store-mtime.patch
new file mode 100644
index 000000000000..83f3fea1931b
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.7/nix-store-mtime.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' Python-2.7.1-orig/Python/import.c Python-2.7.1/Python/import.c
+--- Python-2.7.1-orig/Python/import.c	2010-05-20 20:37:55.000000000 +0200
++++ Python-2.7.1/Python/import.c	2011-01-04 15:55:11.000000000 +0100
+@@ -751,7 +751,7 @@
+         return NULL;
+     }
+     pyc_mtime = PyMarshal_ReadLongFromFile(fp);
+-    if (pyc_mtime != mtime) {
++    if (pyc_mtime != mtime && mtime != 1) {
+         if (Py_VerboseFlag)
+             PySys_WriteStderr("# %s has bad mtime\n", cpathname);
+         fclose(fp);
diff --git a/pkgs/development/interpreters/python/3.1/default.nix b/pkgs/development/interpreters/python/3.1/default.nix
index 6cfafe2c8992..e0c8ac0e1c3a 100644
--- a/pkgs/development/interpreters/python/3.1/default.nix
+++ b/pkgs/development/interpreters/python/3.1/default.nix
@@ -1,79 +1,54 @@
-{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
-, gdbmSupport ? true, gdbm ? null
-, sqlite ? null
-, db4 ? null
-, readline ? null
-, openssl ? null
-, tk ? null
-, tcl ? null
-, libX11 ? null
-, xproto ? null
-, arch ? null
-, sw_vers ? null
+{ stdenv, fetchurl
+, zlib
+, bzip2
+, gdbm
+, sqlite
+, db4
+, ncurses
+, readline
+, openssl
+, tcl, tk
+, libX11, xproto
+, arch ? null, sw_vers ? null
 }:
 
-# This derivation is mostly identical to the one that builds Python 2.x.
-# Some of these settings may not apply to the latest version. A general
-# cleanup might be worthwile.
-
-assert zlibSupport -> zlib != null;
-assert gdbmSupport -> gdbm != null;
 assert stdenv.isDarwin -> arch != null;
 assert stdenv.isDarwin -> sw_vers != null;
+assert readline != null -> ncurses != null;
 
 with stdenv.lib;
 
 let
-
   majorVersion = "3.1";
-  version = "${majorVersion}.1";
-
-  buildInputs =
-    optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
-    [bzip2]
-    ++ optional zlibSupport zlib
-    ++ optional gdbmSupport gdbm
-    ++ optional (sqlite != null) sqlite
-    ++ optional (db4 != null) db4
-    ++ optional (readline != null) readline
-    ++ optional (openssl != null) openssl
-    ++ optional (tk != null) tk
-    ++ optional (tcl != null) tcl
-    ++ optional (libX11 != null) libX11
-    ++ optional (xproto != null) xproto
-    ++ optional (arch != null) arch
-    ++ optional (sw_vers != null) sw_vers
-    ;
+  version = "${majorVersion}.3";
 
+  buildInputs = filter (p: p != null) [
+    zlib bzip2 gdbm sqlite db4 readline ncurses openssl tcl tk libX11 xproto arch sw_vers
+  ];
 in
-
-stdenv.mkDerivation ( {
+stdenv.mkDerivation {
   name = "python3-${version}";
   inherit majorVersion version;
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "1zai7damkpbzwgflrm3rc9r024kb2iiqwasb2b0kmpmsi9bw4z6q";
+    sha256 = "1jsqapgwrcqcaskyi2qdn1xj7l8x5340a137hdfshk5ya4dg9xkp";
   };
 
-  patches = [
-    # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
-    ./search-path.patch
-  ];
-
   inherit buildInputs;
+  patches = [ ./search-path.patch ];
+
   C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
   LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
   configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
 
   preConfigure = ''
-    # Purity.
-    for i in /usr /sw /opt /pkg; do
+    for i in /usr /sw /opt /pkg; do	# improve purity
       substituteInPlace ./setup.py --replace $i /no-such-path
     done
-  '' + (if readline != null then ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"
-  '' else "");
+    ${optionalString (ncurses != null) ''export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"''}
+    ${optionalString stdenv.isDarwin   ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
+  '';
 
   setupHook = ./setup-hook.sh;
 
@@ -82,7 +57,7 @@ stdenv.mkDerivation ( {
   '';
 
   passthru = {
-    inherit zlibSupport;
+    zlibSupport = zlib != null;
     sqliteSupport = sqlite != null;
     db4Support = db4 != null;
     readlineSupport = readline != null;
@@ -91,7 +66,22 @@ stdenv.mkDerivation ( {
     libPrefix = "python${majorVersion}";
   };
 
+  enableParallelBuilding = true;
+
   meta = {
+    homepage = "http://python.org";
+    description = "a high-level dynamically-typed programming language";
+    longDescription = ''
+      Python is a remarkably powerful dynamic programming language that
+      is used in a wide variety of application domains. Some of its key
+      distinguishing features include: clear, readable syntax; strong
+      introspection capabilities; intuitive object orientation; natural
+      expression of procedural code; full modularity, supporting
+      hierarchical packages; exception-based error handling; and very
+      high level dynamic data types.
+    '';
+    license = "GPLv2";
     platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
   };
-} // (if stdenv.isDarwin then { NIX_CFLAGS_COMPILE = "-msse2" ; patches = [./search-path.patch]; } else {} ) )
+}
diff --git a/pkgs/development/interpreters/python/3.1/setup-hook.sh b/pkgs/development/interpreters/python/3.1/setup-hook.sh
index 290525c35713..09a086714bb5 100644
--- a/pkgs/development/interpreters/python/3.1/setup-hook.sh
+++ b/pkgs/development/interpreters/python/3.1/setup-hook.sh
@@ -1,12 +1,12 @@
 addPythonPath() {
-    addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python2.6/site-packages
+    addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python3.1/site-packages
 }
 
 toPythonPath() {
     local paths="$1"
     local result=
     for i in $paths; do
-        p="$i/lib/python2.6/site-packages"
+        p="$i/lib/python3.1/site-packages"
         result="${result}${result:+:}$p"
     done
     echo $result
diff --git a/pkgs/development/interpreters/python/3.2/default.nix b/pkgs/development/interpreters/python/3.2/default.nix
new file mode 100644
index 000000000000..c0c2a6e422af
--- /dev/null
+++ b/pkgs/development/interpreters/python/3.2/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchurl
+, zlib
+, bzip2
+, gdbm
+, sqlite
+, db4
+, ncurses
+, readline
+, openssl
+, tcl, tk
+, libX11, xproto
+, arch ? null, sw_vers ? null
+}:
+
+assert stdenv.isDarwin -> arch != null;
+assert stdenv.isDarwin -> sw_vers != null;
+assert readline != null -> ncurses != null;
+
+with stdenv.lib;
+
+let
+  majorVersion = "3.2";
+  version = "${majorVersion}";
+
+  buildInputs = filter (p: p != null) [
+    zlib bzip2 gdbm sqlite db4 readline ncurses openssl tcl tk libX11 xproto arch sw_vers
+  ];
+in
+stdenv.mkDerivation {
+  name = "python3-${version}";
+  inherit majorVersion version;
+
+  src = fetchurl {
+    url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
+    sha256 = "06awxchnv8gai6415pgzz2x8f1xi38v8a4anz6n39ciwq7v5zzbv";
+  };
+
+  inherit buildInputs;
+
+  C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
+  LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+  configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
+
+  preConfigure = ''
+    for i in /usr /sw /opt /pkg; do	# improve purity
+      substituteInPlace ./setup.py --replace $i /no-such-path
+    done
+    ${optionalString (ncurses != null) ''export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"''}
+    ${optionalString stdenv.isDarwin   ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  postInstall = ''
+    rm -rf "$out/lib/python${majorVersion}/test"
+  '';
+
+  passthru = {
+    zlibSupport = zlib != null;
+    sqliteSupport = sqlite != null;
+    db4Support = db4 != null;
+    readlineSupport = readline != null;
+    opensslSupport = openssl != null;
+    tkSupport = (tk != null) && (tcl != null);
+    libPrefix = "python${majorVersion}";
+  };
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://python.org";
+    description = "a high-level dynamically-typed programming language";
+    longDescription = ''
+      Python is a remarkably powerful dynamic programming language that
+      is used in a wide variety of application domains. Some of its key
+      distinguishing features include: clear, readable syntax; strong
+      introspection capabilities; intuitive object orientation; natural
+      expression of procedural code; full modularity, supporting
+      hierarchical packages; exception-based error handling; and very
+      high level dynamic data types.
+    '';
+    license = "GPLv2";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/interpreters/python/2.4/setup-hook.sh b/pkgs/development/interpreters/python/3.2/setup-hook.sh
index 8334fbc21a84..09a086714bb5 100644
--- a/pkgs/development/interpreters/python/2.4/setup-hook.sh
+++ b/pkgs/development/interpreters/python/3.2/setup-hook.sh
@@ -1,12 +1,12 @@
 addPythonPath() {
-    addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python2.4/site-packages
+    addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python3.1/site-packages
 }
 
 toPythonPath() {
     local paths="$1"
     local result=
     for i in $paths; do
-        p="$i/lib/python2.4/site-packages"
+        p="$i/lib/python3.1/site-packages"
         result="${result}${result:+:}$p"
     done
     echo $result
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index 2568d3e50fe0..0b2eac45e3f7 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -1,34 +1,35 @@
-{ stdenv, fetchurl, cairo, file, libjpeg
-, libpng, libtool, libXaw, libXext, libXft, libXrender
-, libXt, libXmu, mesa, pkgconfig, which } :
+{ stdenv, fetchurl, cairo, file, pango, glib, gtk
+, which, libtool, makeWrapper, libjpeg, libpng
+, fontconfig, liberation_ttf } :
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "5.0.2";
+  version = "5.1.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://download.racket-lang.org/installers/${version}/${pname}/${name}-src-unix.tgz";
-    sha256 = "1xx0gc935mvh9b1nch7p4xscx9hjd0401rl1sdpf291nj9vmpb3k";
+    sha256 = "0dhcx6fzjc2cnhfr0j3pbq8lgxfgmhssidi62q0byiqpcm8wjd98";
   };
 
-  buildInputs = [ cairo
-                  file
-                  libjpeg
-                  libpng
-                  libtool
-                  libXaw
-                  libXext
-                  libXft
-                  libXrender
-                  libXt
-                  libXmu
-                  mesa
-                  pkgconfig
-                  which
-                ];
+  # Various racket executables do run-time searches for these.
+  ffiSharedLibs = "${glib}/lib:${cairo}/lib:${pango}/lib:${gtk}/lib:${libjpeg}/lib:${libpng}/lib";
+
+  buildInputs = [ file libtool which makeWrapper fontconfig liberation_ttf ];
 
   preConfigure = ''
+    export LD_LIBRARY_PATH=${ffiSharedLibs}:$LD_LIBRARY_PATH
+
+    # Chroot builds do not have access to /etc/fonts/fonts.conf, but the Racket bootstrap
+    # needs a working fontconfig, so here a simple standin is used.
+    mkdir chroot-fontconfig
+    cat ${fontconfig}/etc/fonts/fonts.conf > chroot-fontconfig/fonts.conf
+    sed -e 's@</fontconfig>@@' -i chroot-fontconfig/fonts.conf
+    echo "<dir>${liberation_ttf}</dir>" >> chroot-fontconfig/fonts.conf
+    echo "</fontconfig>" >> chroot-fontconfig/fonts.conf
+   
+    export FONTCONFIG_FILE=$(pwd)/chroot-fontconfig/fonts.conf
+
     cd src
     sed -e 's@/usr/bin/uname@'"$(which uname)"'@g' -i configure
     sed -e 's@/usr/bin/file@'"$(which file)"'@g' -i foreign/libffi/configure 
@@ -36,6 +37,12 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ];
 
+  postInstall = ''
+    for p in $(ls $out/bin/) ; do
+      wrapProgram $out/bin/$p --prefix LD_LIBRARY_PATH ":" "${ffiSharedLibs}" ;
+    done
+  '';
+
   meta = {
     description = "Racket (formerly called PLT Scheme) is a programming language derived from Scheme.";
     longDescription = ''
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 12f4759f85d8..fcd57205dcfe 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -12,15 +12,18 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "1.8.7-p302";
+  version = with passthru; "${majorVersion}.${minorVersion}-p${patchLevel}";
   
   name = "ruby-${version}";
   
   src = fetchurl {
     url = "ftp://ftp.ruby-lang.org/pub/ruby/1.8/${name}.tar.gz";
-    sha256 = "18a4w0n1n0sij7gkb3196dnqav5zr0c5p26f08k7cw6y0i9dz0sq";
+    sha256 = "0qf50wa1ziziagnxarj8z6yrsivrhchq1j9017ff3z2z7d31l9kc";
   };
 
+  # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
+  NROFF = "${groff}/bin/nroff";
+
   buildInputs = (ops cursesSupport [ ncurses readline ] )
     ++ (op docSupport groff )
     ++ (op zlibSupport zlib)
@@ -30,6 +33,8 @@ stdenv.mkDerivation rec {
   configureFlags = ["--enable-shared" "--enable-pthread"];
 
   installFlags = stdenv.lib.optionalString docSupport "install-doc";
+  # Bundler tries to create this directory
+  postInstall = "mkdir -pv $out/${passthru.gemPath}";
 
   meta = {
     license = "Ruby";
@@ -37,8 +42,11 @@ stdenv.mkDerivation rec {
     description = "The Ruby language";
   };
 
-  passthru = {
-    # install ruby libs into "$out/${ruby.libPath}"
-    libPath = "lib/ruby-1.8";
+  passthru = rec {
+    majorVersion = "1.8";
+    minorVersion = "7";
+    patchLevel = "330";
+    libPath = "lib/ruby/${majorVersion}";
+    gemPath = "lib/ruby/gems/${majorVersion}";
   };
 }
diff --git a/pkgs/development/interpreters/ruby/gem.nix b/pkgs/development/interpreters/ruby/gem.nix
new file mode 100644
index 000000000000..289f840aa04b
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/gem.nix
@@ -0,0 +1,52 @@
+{stdenv, fetchurl, ruby, rubygems, makeWrapper, patches, overrides}:
+
+let
+  gemDefaults = { name, basename, requiredGems, sha256, meta }:
+  {
+    buildInputs = [rubygems ruby makeWrapper];
+    unpackPhase = ":";
+    configurePhase=":";
+    bulidPhase=":";
+
+    src = fetchurl {
+      url = "http://rubygems.org/downloads/${name}.gem";
+      inherit sha256;
+    };
+
+    name = "ruby-${name}";
+
+    propagatedBuildInputs = requiredGems;
+    inherit meta;
+
+    installPhase = ''
+      export HOME=$TMP/home; mkdir -pv "$HOME"
+
+      gem install -V --ignore-dependencies \
+      -i "$out/${ruby.gemPath}" -n "$out/bin" "$src" $gemFlags -- $buildFlags
+      rm -frv $out/${ruby.gemPath}/cache # don't keep the .gem file here
+
+      addToSearchPath GEM_PATH $out/${ruby.gemPath}
+
+      for prog in $out/bin/*; do
+        wrapProgram "$prog" \
+          --prefix GEM_PATH : "$GEM_PATH" \
+          --prefix RUBYLIB : "${rubygems}/lib" \
+          --set RUBYOPT 'rubygems'
+      done
+
+      for prog in $out/gems/*/bin/*; do
+        [[ -e "$out/bin/$(basename $prog)" ]]
+      done
+
+      runHook postInstall
+    '';
+  };
+  mb = stdenv.lib.maybeAttr;
+  patchedGem = a: stdenv.mkDerivation (removeAttrs (stdenv.lib.mergeAttrsByFuncDefaults
+      ([ (gemDefaults a) ]
+      ++ (stdenv.lib.concatMap (p: [(mb a.basename {} p) (mb a.name {} p)] )
+      patches)))
+    [ "mergeAttrBy" ]);
+in
+aName: a@{ name, basename, requiredGems, sha256, meta }:
+  stdenv.lib.foldl (d: o: mb name (mb basename d o) o) (patchedGem a) overrides
diff --git a/pkgs/development/interpreters/ruby/gem_hook.patch b/pkgs/development/interpreters/ruby/gem_hook.patch
new file mode 100644
index 000000000000..07f942f505e5
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/gem_hook.patch
@@ -0,0 +1,18 @@
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index d1ef3cb..bf15652 100755
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -545,6 +545,13 @@ Results logged to #{File.join(Dir.pwd, 'gem_make.out')}
+ 
+       say path if Gem.configuration.really_verbose
+     end
++
++    if !ENV['NIX_POST_EXTRACT_FILES_HOOK'].nil?
++      print "\nrunning NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{@gem_dir}\n"
++      print `#{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{@gem_dir}`
++      print "\nrunning NIX_POST_EXTRACT_FILES_HOOK done\n"
++    end
++
+   end
+ 
+   ##
diff --git a/pkgs/development/interpreters/ruby/gem_nix_command.patch b/pkgs/development/interpreters/ruby/gem_nix_command.patch
deleted file mode 100644
index 988949608401..000000000000
--- a/pkgs/development/interpreters/ruby/gem_nix_command.patch
+++ /dev/null
@@ -1,266 +0,0 @@
-diff --git a/lib/rubygems/command_manager.rb b/lib/rubygems/command_manager.rb
-index 0a19016..ef66d30 100755
---- a/lib/rubygems/command_manager.rb
-+++ b/lib/rubygems/command_manager.rb
-@@ -70,6 +70,7 @@ class Gem::CommandManager
-     register_command :unpack
-     register_command :update
-     register_command :which
-+    register_command :nix
-   end
- 
-   ##
-
-diff --git a/lib/rubygems/commands/nix_command.rb b/lib/rubygems/commands/nix_command.rb
-new file mode 100644
-index 0000000..24f3479
---- /dev/null
-+++ b/lib/rubygems/commands/nix_command.rb
-@@ -0,0 +1,228 @@
-+require 'net/http'
-+require 'rubygems/command'
-+require 'rubygems/doc_manager'
-+require 'rubygems/install_update_options'
-+require 'rubygems/dependency_installer'
-+require 'rubygems/local_remote_options'
-+require 'rubygems/validator'
-+require 'rubygems/exceptions'
-+require 'rubygems/version_option'
-+require 'rubygems/version'
-+require 'open3'
-+
-+
-+def nixname(gem)
-+  s = "#{gem}" == gem ? gem : gem.full_name
-+  s.gsub(/[.-]/,'_')
-+end
-+
-+def nixdescription(spec)
-+  desc_from_spec = spec.description
-+  desc = desc_from_spec.sub(/[.].*/,'') # only keep first sentence
-+  desc = desc.length > 120 \
-+    ? "description = ''#{ desc[0..120] }''; # cut to 120 chars" \
-+    : "description = ''#{ desc }'';"
-+  desc = desc.sub(/'';$/,"[...]'';") if desc != desc_from_spec
-+  desc.gsub("\n"," ") # no \ns in description
-+end
-+
-+##
-+# tool creating nix expression to install gems (from ruby forge etc)
-+#
-+# this is work in progress
-+
-+class Gem::Commands::NixCommand < Gem::Command
-+
-+  include Gem::VersionOption
-+  include Gem::LocalRemoteOptions
-+  include Gem::InstallUpdateOptions
-+
-+  def initialize
-+    defaults = Gem::DependencyInstaller::DEFAULT_OPTIONS.merge({
-+    })
-+    super 'nix', 'create a nix file containing expressions of the gems', defaults
-+  end
-+
-+  def description # :nodoc:
-+    <<-EOF
-+      create a nix file containing expressions of the gems
-+      There are many gems. So it's best to only specify some target gems and
-+      take them into acocunt with their deps
-+      TODO more details
-+    EOF
-+  end
-+
-+  def usage # :nodoc:
-+    "#{program_name} GEMNAME [GEMNAME ...] [options] -- --build-flags"
-+  end
-+
-+  def arguments # :nodoc:
-+    "GEMNAME       name of gem to be added to the expressions file"
-+  end
-+
-+  def defaults_str # :nodoc:
-+    # what to put in here ? TODO (probably nothing is ok)
-+    ""
-+  end
-+
-+  def execute
-+
-+    begin
-+      @prerelease = false;
-+
-+      args = options[:args];
-+
-+      @gems_with_deps = {}
-+      @seen = {}
-+
-+      # args to dep informations
-+      args.map { |arg|
-+        if arg =~ /(.+)-?(.*)?/ then
-+          gem_name = $1
-+          version =  $2.empty? ?  Gem::Requirement.default : Gem::Version.new($2)
-+        else
-+          raise Gem::CommandLineError, "could'nt parse arg. expected: name or name-version"
-+        end
-+
-+        warn "adding #{gem_name}\n"
-+
-+        adddep(Gem::Dependency.new gem_name, version)
-+      }
-+
-+      warn " total: #{@gems_with_deps.length}"
-+
-+
-+      out = "
-+         # WARNING: automatically generated CODE
-+         # This section has been generated by gem nix #{args.join(" ")}
-+         # the gem nix command has been added by a nix patch to ruby gems
-+      "
-+      # define aliases
-+      aliases = {}
-+      @gems_with_deps.each{ |key, (spec, src, deps)|
-+        aliases[spec.name] = spec \
-+          if aliases[spec.name].nil? || aliases[spec.name].version < spec.version
-+
-+           src_url = "http://gems.rubyforge.org/gems/#{spec.full_name}.gem"
-+
-+         # [> get true mirror url reading redirect contents
-+         #  h = Net::HTTP.new('gems.rubyforge.org', 80)
-+         #  resp, data = h.get("/gems/#{spec.full_name}.gem", nil)
-+         #  if resp.code == "200" then
-+         #    src_url = "http://gems.rubyforge.org/gems/#{spec.full_name}.gem"
-+         #  else if resp.code == "302" then
-+         #      src_url = resp['location']
-+         #      print "redirection: http://gems.rubyforge.org/gems/#{spec.full_name}.gem -> #{src_url}\n"
-+         #    else
-+         #      raise Gem::DependencyError.new("unkown http return code #{resp} #{data}")
-+         #    end
-+         #  end
-+
-+         #raise Gem::DependencyError("src_url is nil, 302 redirection failed?") if src_url.nil?
-+
-+         out += "
-+  #{nixname spec} = rubyDerivation {
-+     name = \"ruby-#{spec.full_name}\"; # full_name
-+     nameNoVersion = \"#{nixname spec.name}\";
-+     propagatedBuildInputs = [ #{deps.map {|n| n.nil? ? "" : (nixname n) }.join(" ")} ];
-+     src = fetchurl {
-+       url = \"#{src_url}\";
-+       sha256 = \"#{nixhashof src_url}\";
-+     };
-+     meta = {
-+       homepage = \"#{spec.homepage}\";
-+       license = [#{spec.licenses.map{|l| "\"#{l}\""}.join(" ") }]; # one of ?
-+       #{nixdescription spec}
-+       longDescription = ''#{ spec.description }'';
-+     };
-+  };\n"
-+      }
-+
-+      out += "\n# aliases\n"
-+      aliases.each { |key, spec |
-+        out += "#{nixname key}=#{nixname spec};\n"
-+      }
-+
-+      print out
-+      exit_code = 0
-+
-+    rescue => e
-+      puts e.inspect
-+      puts e.backtrace
-+    end
-+
-+
-+  end
-+
-+  # helper funtions ================
-+  
-+  def adddep(dep)
-+    gem = find_gem_with_source(dep)
-+    raise Gem::CommandLineError, "couldn't find #{dep}" if gem.nil?
-+    full_name = gem[0].full_name
-+
-+    return if @seen[full_name]
-+    @seen[full_name] = true # there maybe circular dependencies. thus mark this gem seen as early as possible
-+
-+    # development deps can't be found. Some are old. Thus only add rutime dependencies
-+    deps = gem[0].dependencies.find_all { |d| d.type == :runtime }
-+
-+    warn " total deps of #{full_name}: #{deps.length}"
-+
-+    dep_specs = []
-+    # recurse while collecting deps
-+    deps.each {|dep_var| dep_specs.push(adddep(dep_var)) }
-+    
-+
-+    @gems_with_deps[full_name] = [
-+      gem[0], # spec
-+      gem[1], # src
-+      dep_specs # deps
-+    ]
-+    gem[0] # only return spec, no source for dep list
-+  end
-+
-+
-+  # copied from dependency_installer, stripped
-+  def find_gem_with_source(dep)
-+    gems_and_sources = []
-+
-+    # no local 
-+
-+      requirements = dep.version_requirements.requirements.map do |req, ver|
-+        req
-+      end
-+
-+      all = true
-+      found = Gem::SpecFetcher.fetcher.fetch dep, all, true, @prerelease
-+      found.reverse[0]
-+  end
-+
-+
-+  def nixhashof(src)
-+    cashfile="#{ENV['HOME']}/.nix-ruby-gems-cache"
-+    cash = {}
-+    if FileTest.exists?(cashfile)
-+      File.open(cashfile,'r') do |f| Marshal.load(f) end
-+    end
-+
-+    if cash[src].nil? then
-+      tmp="/tmp/ruby-gems-nix-tmp-file"
-+      system("nix-prefetch-url #{src.gsub(/([:= `$;])/,'\\\\\1')} > #{tmp} 2>/dev/null")
-+      if $? == 0
-+        file = File.new(tmp)
-+        hash = file.readlines().first().split("\n")[0] # remove trailing \n
-+        file.close()
-+        File.delete(tmp)
-+        cash[src] = hash
-+      else
-+        cash[src] = "no hash"
-+      end
-+
-+      File.open(cashfile, "w+") do |f| Marshal.dump(cash, f) end
-+    end
-+
-+    return cash[src]
-+  end
-+
-+end
-
-diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
-index d1ef3cb..bf15652 100755
---- a/lib/rubygems/installer.rb
-+++ b/lib/rubygems/installer.rb
-@@ -545,6 +545,13 @@ Results logged to #{File.join(Dir.pwd, 'gem_make.out')}
- 
-       say path if Gem.configuration.really_verbose
-     end
-+
-+    if !ENV['NIX_POST_EXTRACT_FILES_HOOK'].nil?
-+      print "\nrunning NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{@gem_dir}\n"
-+      print `#{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{@gem_dir}`
-+      print "\nrunning NIX_POST_EXTRACT_FILES_HOOK done\n"
-+    end
-+
-   end
- 
-   ##
diff --git a/pkgs/development/interpreters/ruby/gems.nix b/pkgs/development/interpreters/ruby/gems.nix
deleted file mode 100644
index d979fbe2d196..000000000000
--- a/pkgs/development/interpreters/ruby/gems.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-args : with args; 
-rec {
-
-  # some packages (eg ruby-debug) still require 1.8. So let's stick to that for
-  # now if nobody has different requirements
-
-  version = "1.3.7";
-  src = fetchurl {
-    url = "http://production.cf.rubygems.org/rubygems/${name}.tgz";
-    sha256 = "17bwlqxqrjrial111rn395yjx9wyxrmvmj0hgd85bxkkcap912rq";
-  };
-
-
-  buildInputs = [ruby makeWrapper];
-  configureFlags = [];
-
-  doInstall = fullDepEntry (''
-    ruby setup.rb --prefix=$out/
-    wrapProgram $out/bin/gem --prefix RUBYLIB : $out/lib:$out/lib
-    find $out -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
-  '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doPatch" "doInstall"];
-      
-  name = "rubygems-" + version;
-  meta = {
-    description = "Ruby gems package collection";
-    longDescription = ''
-      see comment in rubyLibs to get to know how to use ruby gems in nix
-    '';
-  };
-
-  # TODO don't resolve 302 redirects but make nix resolve in fetchurl and
-  # nix-prefetch-url. This should be done on stdenv-updates.
-  patches = [ ./gem_nix_command.patch /* see longDescription above */ ];
-}
diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix
new file mode 100644
index 000000000000..7f6d51b24183
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/generated.nix
@@ -0,0 +1,34 @@
+# WARNING: automatically generated file
+# Generated by 'gem nix' command that comes from 'nix' gem
+g: # Get dependencies from patched gems
+{
+  aliases = {
+    nix = g.nix_0_1_1;
+    rake = g.rake_0_8_7;
+  };
+  gem_nix_args = [ ''nix'' ''rake'' ];
+  gems = {
+    nix_0_1_1 = {
+      basename = ''nix'';
+      meta = {
+        description = ''Nix package manager interface'';
+        homepage = ''http://gitorious.org/ruby-nix'';
+        longDescription = ''Adds 'gem nix' command that dumps given set of gems to format suitable for Nix package manager'';
+      };
+      name = ''nix-0.1.1'';
+      requiredGems = [  ];
+      sha256 = ''0kwrbkkg0gxibhsz9dpd5zabcf2wqsicg28yiazyb3dc9dslk26k'';
+    };
+    rake_0_8_7 = {
+      basename = ''rake'';
+      meta = {
+        description = ''Ruby based make-like utility.'';
+        homepage = ''http://rake.rubyforge.org'';
+        longDescription = ''Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax.'';
+      };
+      name = ''rake-0.8.7'';
+      requiredGems = [  ];
+      sha256 = ''03z1zm7xwl2r9v945ambwbd9sn2smbi34xldmac7qjcmsvd7pcqh'';
+    };
+  };
+}
diff --git a/pkgs/development/interpreters/ruby/libs.nix b/pkgs/development/interpreters/ruby/libs.nix
index 8cbc25c2a47b..9aa9203f10f6 100644
--- a/pkgs/development/interpreters/ruby/libs.nix
+++ b/pkgs/development/interpreters/ruby/libs.nix
@@ -1,1160 +1,45 @@
-/* libraries and applications from rubyforge
-
-  run
-    $gem nix $EXSTING_TARGETS new-target-package
-
-  EXSTING_TARGETS can be looked up below after "has been generated by "
-
-  Don't forget add
-  export GEM_PATH=~/.nix/profile
-  export RUBYLIB=~/.nix-profile/gems/rubygems-update-1.3.4/lib/
-  export RUBYOPT=rubygems
-  to your .bashrc
-*/
-
-{pkgs, stdenv}:
-let libs =
-  let 
-    inherit (pkgs) fetchurl sourceFromHead writeScript makeWrapper;
-    ruby = pkgs.ruby; # select ruby version here
-    rubygems = pkgs.rubygemsFun ruby; # for bootstrapping
-    inherit (pkgs.lib) mergeAttrsByFuncDefaults optional;
-    inherit (builtins) hasAttr getAttr;
-
-    patchUsrBinEnv = writeScript "path-usr-bin-env" ''
-      #!/bin/sh
-      set -x
-      echo "==================="
-      find "$1" -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
-      find "$1" -type f -name "*.mk" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
-    '';
-
-    # these settings are merged into the automatically generated settings
-    # either the nameNoVersion or name must match
-    patches = {
-      sup = {
-        buildInputs = [ pkgs.ncurses pkgs.xapianBindings libs.ncursesw ];
-      };
-      sqlite3_ruby = { propagatedBuildInputs = [ pkgs.sqlite ]; };
-      rails = {
-        gemFlags = "--no-ri --no-rdoc";
-        propagatedBuildInputs = [ libs.mime_types libs.rake ];
-      };
-      ncurses = { buildInputs = [ pkgs.ncurses ]; };
-      ncursesw = { buildInputs = [ pkgs.ncurses ]; };
-      nokogiri = {
-        buildFlags=["--with-xml2-dir=${pkgs.libxml2} --with-xml2-include=${pkgs.libxml2}/include/libxml2"
-                    "--with-xslt-dir=${pkgs.libxslt}" ];
-      };
-
-      ffi = {
-        postUnpack = "onetuh";
-        propagatedBuildInputs = [ libs.rake ];
-        buildFlags=["--with-ffi-dir=${pkgs.libffi}"];
-        NIX_POST_EXTRACT_FILES_HOOK = patchUsrBinEnv;
-      };
-
-      xrefresh_server =
-      let patch = fetchurl {
-          url = "http://mawercer.de/~nix/xrefresh.diff.gz";
-          sha256 = "1f7bnmn1pgkmkml0ms15m5lx880hq2sxy7vsddb3sbzm7n1yyicq";
-        };
-      in {
-        propagatedBuildInputs = [ libs.rb_inotify ];
-
-        # monitor implementation for Linux
-        postInstall = ''
-          cd $out/gems/*;
-          cat ${patch} | gunzip | patch -p 1;
-        '';
-      };
-
-      xapian_full = {
-        buildInputs = [ libs.rake pkgs.zlib pkgs.libuuid ];
-      };
+{stdenv, getConfig, fetchurl, callPackage}:
+
+let
+  inherit (stdenv.lib) fold optional;
+  gemsMergeableFun = { generatedFuns ? [], patchFuns ? [], overrideFuns ? [] }:
+  let
+    generatedAttrs = map (f: f customGems) generatedFuns;
+    generatedGems = map (a: a.gems) generatedAttrs;
+    gem = callPackage ./gem.nix {
+      patches = map (f: callPackage f { inherit gems; }) patchFuns;
+      overrides = map (f: callPackage f { }) overrideFuns;
     };
-
-    rubyDerivation = args :
-      let completeArgs = (mergeAttrsByFuncDefaults 
-          ([{
-            buildInputs = [rubygems ruby pkgs.makeWrapper];
-            unpackPhase = ":";
-            configurePhase=":";
-            bulidPhase=":";
-
-            # TODO add some abstraction for this kind of env path concatenation. It's used multiple times
-            installPhase = ''
-              ensureDir "$out/nix-support"
-              export HOME=$TMP/home; mkdir "$HOME"
-
-              gem install -V --ignore-dependencies -i "$out" "$src" $gemFlags -- $buildFlags
-              rm -fr $out/cache # don't keep the .gem file here
-
-              THIS_RUBY_LIB=$(echo $out/gems/*/lib)
-              THIS_GEM_PATH=$out
-
-              cat >> $out/nix-support/setup-hook << EOF 
-                declare -A RUBYLIB_HASH # using bash4 hashs
-                declare -A GEM_PATH_HASH # using bash4 hashs
-
-                if [ -n "$THIS_RUBY_LIB" ]; then
-                  RUBYLIB_HASH["$THIS_RUBY_LIB"]=
-                fi
-                for path in \''${!RUBYLIB_HASH[@]}; do
-                  export RUBYLIB=\''${RUBYLIB}\''${RUBYLIB:+:}\$path
-                done
-                GEM_PATH_HASH["$THIS_GEM_PATH"]=
-                for path in \''${!GEM_PATH_HASH[@]}; do
-                  export GEM_PATH=\''${GEM_PATH}\''${GEM_PATH:+:}\$path
-                done
-              EOF
-              . $out/nix-support/setup-hook
-
-              for prog in $out/bin/*; do
-                wrapProgram "$prog" \
-                  --prefix RUBYLIB : "$RUBYLIB":${rubygems}/lib \
-                  --prefix GEM_PATH : "$GEM_PATH" \
-                  --set RUBYOPT 'rubygems'
-              done
-
-              for prog in $out/gems/*/bin/*; do
-                [ -e "$out/bin/$(basename $prog)" ] && continue || true
-                sed -i '1s@.*@#!  ${ruby}/bin/ruby@' "$prog"
-                t="$out/bin/$(basename "$prog")"
-                cat >> "$t" << EOF
-              #!/bin/sh
-              export GEM_PATH=$GEM_PATH:\$GEM_PATH
-              #export RUBYLIB=$RUBYLIB:\$RUBYLIB
-              exec $(type -p ruby) $prog "\$@"
-              EOF
-                chmod +x "$t"
-              done
-
-              runHook postInstall
-            '';
-
-
-          } args ]
-            ++ optional (hasAttr args.name patches) (getAttr args.name patches)
-            ++ optional (hasAttr args.nameNoVersion patches) (getAttr args.nameNoVersion patches)
-          )); in stdenv.mkDerivation (removeAttrs completeArgs ["mergeAttrBy"]);
+    customGems = stdenv.lib.mapAttrs gem (fold (x: y: x // y) { } generatedGems);
+    gems = fold (x: y: x // y) customGems (map (a: a.aliases) generatedAttrs);
   in
-  rec {
-
-  # ================ START automatically generated code ================
-
-         # WARNING: automatically generated CODE
-         # This section has been generated by gem nix sup chronic rubygems-update xrefresh-server rb-inotify jeweler ncursesw sqlite3-ruby rails haml bundler rake rails3-generators enumerated_attribute haml-rails jquery-rails
-         # the gem nix command has been added by a nix patch to ruby gems
-      
-  rails3_generators_0_13_0 = rubyDerivation {
-     name = "ruby-rails3-generators-0.13.0"; # full_name
-     nameNoVersion = "rails3_generators";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rails3-generators-0.13.0.gem";
-       sha256 = "0g7qylily8dkllyy201kgyczm303dmg5r64zy49isccq63iq6k3c";
-     };
-     meta = {
-       homepage = "http://github.com/indirect/rails3-generators";
-       license = []; # one of ?
-       description = ''Rails 3 compatible generators for DataMapper, Factory-girl, Authlogic, Mongomapper, Mongoid, Shoulda, Formtastic and Simp''; # cut to 120 chars
-       longDescription = ''Rails 3 compatible generators for DataMapper, Factory-girl, Authlogic, Mongomapper, Mongoid, Shoulda, Formtastic and SimpleForm'';
-     };
-  };
-
-  builder_2_1_2 = rubyDerivation {
-     name = "ruby-builder-2.1.2"; # full_name
-     nameNoVersion = "builder";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/builder-2.1.2.gem";
-       sha256 = "0hp5gsvp63mqqvi7dl95zwci916vj6l1slgz4crip1rijk3v2806";
-     };
-     meta = {
-       homepage = "http://onestepback.org";
-       license = []; # one of ?
-       description = ''Builder provides a number of builder objects that make creating structured data simple to do[...]'';
-       longDescription = ''Builder provides a number of builder objects that make creating structured data simple to do.  Currently the following builder objects are supported:  * XML Markup * XML Events'';
-     };
-  };
-
-  rake_0_8_7 = rubyDerivation {
-     name = "ruby-rake-0.8.7"; # full_name
-     nameNoVersion = "rake";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rake-0.8.7.gem";
-       sha256 = "03z1zm7xwl2r9v945ambwbd9sn2smbi34xldmac7qjcmsvd7pcqh";
-     };
-     meta = {
-       homepage = "http://rake.rubyforge.org";
-       license = []; # one of ?
-       description = ''Rake is a Make-like program implemented in Ruby[...]'';
-       longDescription = ''Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax.'';
-     };
-  };
-
-  haml_rails_0_2 = rubyDerivation {
-     name = "ruby-haml-rails-0.2"; # full_name
-     nameNoVersion = "haml_rails";
-     propagatedBuildInputs = [   ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/haml-rails-0.2.gem";
-       sha256 = "132lfx6vqiphbbhxfzss5qny92yzfbpyj0qk7dn3q5y7irvp5wha";
-     };
-     meta = {
-       homepage = "http://github.com/indirect/haml-rails";
-       license = []; # one of ?
-       description = ''Haml-rails provides Haml generators for Rails 3[...]'';
-       longDescription = ''Haml-rails provides Haml generators for Rails 3. It also enables Haml as the templating engine for you, so you don't have to screw around in your own application.rb when your Gemfile already clearly indicated what templating engine you have installed. Hurrah.'';
-     };
-  };
-
-  meta_programming_0_2_2 = rubyDerivation {
-     name = "ruby-meta_programming-0.2.2"; # full_name
-     nameNoVersion = "meta_programming";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/meta_programming-0.2.2.gem";
-       sha256 = "0k32z7ndfpravrz3hihg96x3wcdfrzsdj2pg48zkcb3gb428f2av";
-     };
-     meta = {
-       homepage = "http://github.com/jeffp/meta_programming/tree/master";
-       license = []; # one of ?
-       description = ''Collection of meta-programming methods for Ruby[...]'';
-       longDescription = ''Collection of meta-programming methods for Ruby'';
-     };
-  };
-
-  haml_3_0_18 = rubyDerivation {
-     name = "ruby-haml-3.0.18"; # full_name
-     nameNoVersion = "haml";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/haml-3.0.18.gem";
-       sha256 = "1bi951vk6fkxcc4dakwmcgbqf72zhr5bna9p8a4q4ajn3arvnq7y";
-     };
-     meta = {
-       homepage = "http://haml-lang.com/";
-       license = []; # one of ?
-       description = ''      Haml (HTML Abstraction Markup Language) is a layer on top of XHTML or XML       that's designed to express the stru''; # cut to 120 chars
-       longDescription = ''      Haml (HTML Abstraction Markup Language) is a layer on top of XHTML or XML
-      that's designed to express the structure of XHTML or XML documents
-      in a non-repetitive, elegant, easy way,
-      using indentation rather than closing tags
-      and allowing Ruby to be embedded with ease.
-      It was originally envisioned as a plugin for Ruby on Rails,
-      but it can function as a stand-alone templating engine.
-'';
-     };
-  };
-
-  polyglot_0_3_1 = rubyDerivation {
-     name = "ruby-polyglot-0.3.1"; # full_name
-     nameNoVersion = "polyglot";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/polyglot-0.3.1.gem";
-       sha256 = "1shk5hqnz7hg14y2ms16mcwd2p546wq57pci5m26qg64m28gz4xg";
-     };
-     meta = {
-       homepage = "http://polyglot.rubyforge.org";
-       license = []; # one of ?
-       description = ''Allows custom language loaders for specified file extensions to be hooked into require[...]'';
-       longDescription = ''Allows custom language loaders for specified file extensions to be hooked into require'';
-     };
-  };
-
-  arel_1_0_1 = rubyDerivation {
-     name = "ruby-arel-1.0.1"; # full_name
-     nameNoVersion = "arel";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/arel-1.0.1.gem";
-       sha256 = "117j8z0clq8001jqk4aajq3whxzn5fan4ivdsbjvcdba2wfhd7z0";
-     };
-     meta = {
-       homepage = "http://github.com/brynary/arel";
-       license = []; # one of ?
-       description = ''Arel is a Relational Algebra for Ruby of SQL queries and it 2) adapts to various RDBMS systems. It is intended to be a fr''; # cut to 120 chars
-       longDescription = ''Arel is a Relational Algebra for Ruby. It 1) simplifies the generation complex
-of SQL queries and it 2) adapts to various RDBMS systems. It is intended to be
-a framework framework; that is, you can build your own ORM with it, focusing on
-innovative object and collection modeling as opposed to database compatibility
-and query generation.'';
-     };
-  };
-
-  abstract_1_0_0 = rubyDerivation {
-     name = "ruby-abstract-1.0.0"; # full_name
-     nameNoVersion = "abstract";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/abstract-1.0.0.gem";
-       sha256 = "1gizb9kzwf3c6xip7fwa818b98c72x4jlhbm808s5pwdjbqw3h9k";
-     };
-     meta = {
-       homepage = "http://rubyforge.org/projects/abstract";
-       license = []; # one of ?
-       description = '''abstract[...]'';
-       longDescription = '''abstract.rb' is a library which enable you to define abstract method in Ruby.'';
-     };
-  };
-
-  sqlite3_ruby_1_3_1 = rubyDerivation {
-     name = "ruby-sqlite3-ruby-1.3.1"; # full_name
-     nameNoVersion = "sqlite3_ruby";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/sqlite3-ruby-1.3.1.gem";
-       sha256 = "17ci8jgnzda091my53x0qnapy673fx55fd1agf5xdkylzwb00v9q";
-     };
-     meta = {
-       homepage = "http://github.com/luislavena/sqlite3-ruby";
-       license = []; # one of ?
-       description = ''This module allows Ruby programs to interface with the SQLite3 database engine (http://www SQLite engine installed in ord''; # cut to 120 chars
-       longDescription = ''This module allows Ruby programs to interface with the SQLite3
-database engine (http://www.sqlite.org).  You must have the
-SQLite engine installed in order to build this module.
-
-Note that this module is NOT compatible with SQLite 2.x.'';
-     };
-  };
-
-  git_1_2_5 = rubyDerivation {
-     name = "ruby-git-1.2.5"; # full_name
-     nameNoVersion = "git";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/git-1.2.5.gem";
-       sha256 = "19dy8sakv4x7pnvjddqjyd4j74cji14wikhz95iaqqrc9n4z43hk";
-     };
-     meta = {
-       homepage = "http://github.com/schacon/ruby-git";
-       license = []; # one of ?
-       description = ''[...]'';
-       longDescription = '''';
-     };
-  };
-
-  rails_3_0_0 = rubyDerivation {
-     name = "ruby-rails-3.0.0"; # full_name
-     nameNoVersion = "rails";
-     propagatedBuildInputs = [ activesupport_3_0_0 actionpack_3_0_0 activerecord_3_0_0 activeresource_3_0_0 actionmailer_3_0_0 railties_3_0_0 bundler_1_0_0 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rails-3.0.0.gem";
-       sha256 = "1zjyijz5814vv1l5j4si66fcvf17jkfh6336mr4xh9vx0wa2r6js";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity[...]'';
-       longDescription = ''Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.'';
-     };
-  };
-
-  treetop_1_4_8 = rubyDerivation {
-     name = "ruby-treetop-1.4.8"; # full_name
-     nameNoVersion = "treetop";
-     propagatedBuildInputs = [ polyglot_0_3_1 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/treetop-1.4.8.gem";
-       sha256 = "10cg8dp4ljm6gfsdx9x20kk5c2vrmw5y25dfsy7s0pxn60f3s6qg";
-     };
-     meta = {
-       homepage = "http://functionalform.blogspot.com";
-       license = []; # one of ?
-       description = ''[...]'';
-       longDescription = '''';
-     };
-  };
-
-  rack_test_0_5_4 = rubyDerivation {
-     name = "ruby-rack-test-0.5.4"; # full_name
-     nameNoVersion = "rack_test";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rack-test-0.5.4.gem";
-       sha256 = "0afkvjq45v61j2y3k9dfi4r6fnj26b4ky1ggn7sdk5asq7v6dmzx";
-     };
-     meta = {
-       homepage = "http://github.com/brynary/rack-test";
-       license = []; # one of ?
-       description = ''Rack::Test is a small, simple testing API for Rack apps own or as a reusable starting point for Web frameworks and testin''; # cut to 120 chars
-       longDescription = ''Rack::Test is a small, simple testing API for Rack apps. It can be used on its
-own or as a reusable starting point for Web frameworks and testing libraries
-to build on. Most of its initial functionality is an extraction of Merb 1.0's
-request helpers feature.'';
-     };
-  };
-
-  chronic_0_2_3 = rubyDerivation {
-     name = "ruby-chronic-0.2.3"; # full_name
-     nameNoVersion = "chronic";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/chronic-0.2.3.gem";
-       sha256 = "0gm4i9iwpvsk07nzvy8fmyad4y7i284vvdrxrlbgb23lr17qpl17";
-     };
-     meta = {
-       homepage = "	http://chronic.rubyforge.org/";
-       license = []; # one of ?
-       description = ''Chronic is a natural language date/time parser written in pure Ruby[...]'';
-       longDescription = ''Chronic is a natural language date/time parser written in pure Ruby. See below for the wide variety of formats Chronic will parse.'';
-     };
-  };
-
-  ncurses_0_9_1 = rubyDerivation {
-     name = "ruby-ncurses-0.9.1"; # full_name
-     nameNoVersion = "ncurses";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/ncurses-0.9.1.gem";
-       sha256 = "0j9k3rfxglkivwnpdkbfk4acfnivfisyj8f0msf3zkid4hnj4r2h";
-     };
-     meta = {
-       homepage = "http://ncurses-ruby.berlios.de/";
-       license = []; # one of ?
-       description = ''[...]'';
-       longDescription = '''';
-     };
-  };
-
-  xapian_full_1_1_3_4 = rubyDerivation {
-     name = "ruby-xapian-full-1.1.3.4"; # full_name
-     nameNoVersion = "xapian_full";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/xapian-full-1.1.3.4.gem";
-       sha256 = "0yc08y7v5yh0lfidc0rkr072q88jvp5prv7pllv4qn4wryna8mwl";
-     };
-     meta = {
-       homepage = "";
-       license = []; # one of ?
-       description = ''Xapian bindings for Ruby without dependency on system Xapian library[...]'';
-       longDescription = ''Xapian bindings for Ruby without dependency on system Xapian library'';
-     };
-  };
-
-  i18n_0_4_1 = rubyDerivation {
-     name = "ruby-i18n-0.4.1"; # full_name
-     nameNoVersion = "i18n";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/i18n-0.4.1.gem";
-       sha256 = "0haw8102610j2vydr52y64w2dqav6amda0ddwy6vp09rr6prazkq";
-     };
-     meta = {
-       homepage = "http://github.com/svenfuchs/i18n";
-       license = []; # one of ?
-       description = ''New wave Internationalization support for Ruby[...]'';
-       longDescription = ''New wave Internationalization support for Ruby.'';
-     };
-  };
-
-  ncursesw_1_2_4_1 = rubyDerivation {
-     name = "ruby-ncursesw-1.2.4.1"; # full_name
-     nameNoVersion = "ncursesw";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/ncursesw-1.2.4.1.gem";
-       sha256 = "0cn13h14pk8yds8aklpdcpzl0z6rqifpmaz4lw29g10lgwvfv409";
-     };
-     meta = {
-       homepage = "http://ncurses-ruby.berlios.de/";
-       license = []; # one of ?
-       description = ''Hacked up version of ncurses gem that supports wide characters and ruby1[...]'';
-       longDescription = ''Hacked up version of ncurses gem that supports wide characters and ruby1.9.1. Original ncurses gem by t-peters@users.berlios.de.'';
-     };
-  };
-
-  ffi_0_6_3 = rubyDerivation {
-     name = "ruby-ffi-0.6.3"; # full_name
-     nameNoVersion = "ffi";
-     propagatedBuildInputs = [ rake_0_8_7 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/ffi-0.6.3.gem";
-       sha256 = "08qnxqcnjq4i2vv1jfwdxdlsphqjrrh7r0cw8x2q0x9vjd27ncbb";
-     };
-     meta = {
-       homepage = "http://wiki.github.com/ffi/ffi";
-       license = []; # one of ?
-       description = ''Ruby-FFI is a ruby extension for programmatically loading dynamic libraries, binding functions within them, and calling t''; # cut to 120 chars
-       longDescription = ''Ruby-FFI is a ruby extension for programmatically loading dynamic
-libraries, binding functions within them, and calling those functions
-from Ruby code. Moreover, a Ruby-FFI extension works without changes
-on Ruby and JRuby. Discover why should you write your next extension
-using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].'';
-     };
-  };
-
-  term_ansicolor_1_0_5 = rubyDerivation {
-     name = "ruby-term-ansicolor-1.0.5"; # full_name
-     nameNoVersion = "term_ansicolor";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/term-ansicolor-1.0.5.gem";
-       sha256 = "1xhcc4dkfylj14w413pmd8jhc04wj3nlw0xa6qy9h0fnbbyh6bc1";
-     };
-     meta = {
-       homepage = "http://flori.github.com/term-ansicolor";
-       license = []; # one of ?
-       description = ''[...]'';
-       longDescription = '''';
-     };
-  };
-
-  rubygems_update_1_3_7 = rubyDerivation {
-     name = "ruby-rubygems-update-1.3.7"; # full_name
-     nameNoVersion = "rubygems_update";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rubygems-update-1.3.7.gem";
-       sha256 = "0378s1nvxmmwrl8l7yx9xglm5ks1lsdjr0ms3wx127q5hm07szdg";
-     };
-     meta = {
-       homepage = "http://rubygems.org/";
-       license = []; # one of ?
-       description = ''RubyGems is a package management framework for Ruby  This gem is an update for the RubyGems software. You must have an in''; # cut to 120 chars
-       longDescription = ''RubyGems is a package management framework for Ruby.
-
-This gem is an update for the RubyGems software. You must have an
-installation of RubyGems before this update can be applied.
-
-See Gem for information on RubyGems (or `ri Gem`)
-
-To upgrade to the latest RubyGems, run:
-
-  $ gem update --system  # you might need to be an administrator or root
-
-NOTE:  RubyGems 1.1 and 1.2 have problems upgrading when there is no
-rubygems-update installed.  You will need to use the following instructions
-if you see "Nothing to update".
-
-If you have an older version of RubyGems installed, then you can still
-do it in two steps:
-
-  $ gem install rubygems-update  # again, might need to be admin/root
-  $ update_rubygems              # ... here too
-
-If you don't have any RubyGems install, there is still the pre-gem approach to
-getting software, doing it manually:
-
-1. Download from: http://rubyforge.org/frs/?group_id=126
-2. Unpack into a directory and cd there
-3. Install with: ruby setup.rb  # you may need admin/root privilege
-
-For more details and other options, see:
-
-  ruby setup.rb --help'';
-     };
-  };
-
-  trollop_1_16_2 = rubyDerivation {
-     name = "ruby-trollop-1.16.2"; # full_name
-     nameNoVersion = "trollop";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/trollop-1.16.2.gem";
-       sha256 = "0frrp90dw266h3kf9g925dppir9l7p8jxknw6dn5nz6fa6c4g5lg";
-     };
-     meta = {
-       homepage = "http://trollop.rubyforge.org";
-       license = []; # one of ?
-       description = ''Trollop is a commandline option parser for Ruby that just gets out of your way For that, you get a nice automatically-gen''; # cut to 120 chars
-       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.'';
-     };
-  };
-
-  enumerated_attribute_0_2_16 = rubyDerivation {
-     name = "ruby-enumerated_attribute-0.2.16"; # full_name
-     nameNoVersion = "enumerated_attribute";
-     propagatedBuildInputs = [ meta_programming_0_2_2 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/enumerated_attribute-0.2.16.gem";
-       sha256 = "01m9jmim5dcyayv3pznrm1y152dd4jrp2jj89m18inbn5446dzqi";
-     };
-     meta = {
-       homepage = "http://github.com/jeffp/enumerated_attribute/tree/master";
-       license = []; # one of ?
-       description = ''Enumerated model attributes and view helpers[...]'';
-       longDescription = ''Enumerated model attributes and view helpers'';
-     };
-  };
-
-  railties_3_0_0 = rubyDerivation {
-     name = "ruby-railties-3.0.0"; # full_name
-     nameNoVersion = "railties";
-     propagatedBuildInputs = [  thor_0_14_0   ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/railties-3.0.0.gem";
-       sha256 = "0zj216hvs7yjlhjk0066d5rlm1csf2rarxx6c9bpxrmabnw1rb93";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''Rails internals: application bootup, plugins, generators, and rake tasks[...]'';
-       longDescription = ''Rails internals: application bootup, plugins, generators, and rake tasks.'';
-     };
-  };
-
-  rack_mount_0_6_13 = rubyDerivation {
-     name = "ruby-rack-mount-0.6.13"; # full_name
-     nameNoVersion = "rack_mount";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rack-mount-0.6.13.gem";
-       sha256 = "133dwla6hq6a75m0la7cm26d5hvlsi02vm4lvph73d6kqazry0y6";
-     };
-     meta = {
-       homepage = "http://github.com/josh/rack-mount";
-       license = []; # one of ?
-       description = ''Stackable dynamic tree based Rack router[...]'';
-       longDescription = ''Stackable dynamic tree based Rack router'';
-     };
-  };
-
-  activemodel_3_0_0 = rubyDerivation {
-     name = "ruby-activemodel-3.0.0"; # full_name
-     nameNoVersion = "activemodel";
-     propagatedBuildInputs = [  builder_2_1_2 i18n_0_4_1 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/activemodel-3.0.0.gem";
-       sha256 = "1dp18ifh658pgdkq8fd32yw3hi99wk5in2c7pb3mjyabg4zg5mv6";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''A toolkit for building modeling frameworks like Active Record and Active Resource[...]'';
-       longDescription = ''A toolkit for building modeling frameworks like Active Record and Active Resource. Rich support for attributes, callbacks, validations, observers, serialization, internationalization, and testing.'';
-     };
-  };
-
-  gettext_2_1_0 = rubyDerivation {
-     name = "ruby-gettext-2.1.0"; # full_name
-     nameNoVersion = "gettext";
-     propagatedBuildInputs = [ locale_2_0_5 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/gettext-2.1.0.gem";
-       sha256 = "17g048gp7gh3c311l5jw2sbanma2havj4yqhaaa50b3rx72y4xwz";
-     };
-     meta = {
-       homepage = "http://gettext.rubyforge.org/";
-       license = []; # one of ?
-       description = ''        Ruby-GetText-Package is a GNU GetText-like program for Ruby         The catalog file(po-file) is same format with''; # cut to 120 chars
-       longDescription = ''        Ruby-GetText-Package 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.
-'';
-     };
-  };
-
-  lockfile_1_4_3 = rubyDerivation {
-     name = "ruby-lockfile-1.4.3"; # full_name
-     nameNoVersion = "lockfile";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/lockfile-1.4.3.gem";
-       sha256 = "0cxbyvxr3s5xsx85yghcs69d4lwwj0pg5la5cz2fp12hkk2szab3";
-     };
-     meta = {
-       homepage = "http://codeforpeople.com/lib/ruby/lockfile/";
-       license = []; # one of ?
-       description = ''[...]'';
-       longDescription = '''';
-     };
-  };
-
-  thor_0_14_0 = rubyDerivation {
-     name = "ruby-thor-0.14.0"; # full_name
-     nameNoVersion = "thor";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/thor-0.14.0.gem";
-       sha256 = "115zxz418hmmsjk1sc2f19xzd74ap066qb7p1lh539q6zkalzrj1";
-     };
-     meta = {
-       homepage = "http://yehudakatz.com";
-       license = []; # one of ?
-       description = ''A scripting framework that replaces rake, sake and rubigen[...]'';
-       longDescription = ''A scripting framework that replaces rake, sake and rubigen'';
-     };
-  };
-
-  activerecord_3_0_0 = rubyDerivation {
-     name = "ruby-activerecord-3.0.0"; # full_name
-     nameNoVersion = "activerecord";
-     propagatedBuildInputs = [   arel_1_0_1  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/activerecord-3.0.0.gem";
-       sha256 = "1l2662myqbay37xpssna149rgqjq0fq670f1hpagmh1nr0fziwlr";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''Databases on Rails[...]'';
-       longDescription = ''Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes. Strong conventions for associations, validations, aggregations, migrations, and testing come baked-in.'';
-     };
-  };
-
-  actionpack_3_0_0 = rubyDerivation {
-     name = "ruby-actionpack-3.0.0"; # full_name
-     nameNoVersion = "actionpack";
-     propagatedBuildInputs = [  activemodel_3_0_0   rack_1_2_1 rack_test_0_5_4 rack_mount_0_6_13 tzinfo_0_3_23 erubis_2_6_6 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/actionpack-3.0.0.gem";
-       sha256 = "1qjmx3alkinnfi9mdvzz3cfsfj20kf6iqvhwia167l45wqd14s7z";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''Web apps on Rails[...]'';
-       longDescription = ''Web apps on Rails. Simple, battle-tested conventions for building and testing MVC web applications. Works with any Rack-compatible server.'';
-     };
-  };
-
-  erubis_2_6_6 = rubyDerivation {
-     name = "ruby-erubis-2.6.6"; # full_name
-     nameNoVersion = "erubis";
-     propagatedBuildInputs = [ abstract_1_0_0 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/erubis-2.6.6.gem";
-       sha256 = "19yd2a4zb371b8vi11hv4p4s4s9yzp6924frc0ar9hv5kbw3nxvm";
-     };
-     meta = {
-       homepage = "http://www.kuwata-lab.com/erubis/";
-       license = []; # one of ?
-       description = ''  Erubis is an implementation of eRuby and has the following features:    * Very fast, almost three times faster than ERB''; # cut to 120 chars
-       longDescription = ''  Erubis is an implementation of eRuby and has the following features:
-
-  * Very fast, almost three times faster than ERB and about 10% faster than eruby.
-  * Multi-language support (Ruby/PHP/C/Java/Scheme/Perl/Javascript)
-  * Auto escaping support
-  * Auto trimming spaces around '&lt;% %&gt;'
-  * Embedded pattern changeable (default '&lt;% %&gt;')
-  * Enable to handle Processing Instructions (PI) as embedded pattern (ex. '&lt;?rb ... ?&gt;')
-  * Context object available and easy to combine eRuby template with YAML datafile
-  * Print statement available
-  * Easy to extend and customize in subclass
-  * Ruby on Rails support
-'';
-     };
-  };
-
-  json_pure_1_4_6 = rubyDerivation {
-     name = "ruby-json_pure-1.4.6"; # full_name
-     nameNoVersion = "json_pure";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/json_pure-1.4.6.gem";
-       sha256 = "0cd6a97nk8m7yqm0lxbgs63yxlnk4mhbmpgjjfzdw01n1gm95kfv";
-     };
-     meta = {
-       homepage = "http://flori.github.com/json";
-       license = []; # one of ?
-       description = ''This is a JSON implementation in pure Ruby[...]'';
-       longDescription = ''This is a JSON implementation in pure Ruby.'';
-     };
-  };
-
-  xrefresh_server_0_3_0 = rubyDerivation {
-     name = "ruby-xrefresh-server-0.3.0"; # full_name
-     nameNoVersion = "xrefresh_server";
-     propagatedBuildInputs = [ json_1_4_6 term_ansicolor_1_0_5 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/xrefresh-server-0.3.0.gem";
-       sha256 = "1k80hadnmaxi8q8fw879xaj0ragy4bmqjqm7zjkv9bq8njb3i0c5";
-     };
-     meta = {
-       homepage = "http://github.com/darwin/xrefresh-server";
-       license = []; # one of ?
-       description = ''XRefresh is browser refresh automation for web developers[...]'';
-       longDescription = ''XRefresh is browser refresh automation for web developers'';
-     };
-  };
-
-  bundler_1_0_0 = rubyDerivation {
-     name = "ruby-bundler-1.0.0"; # full_name
-     nameNoVersion = "bundler";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/bundler-1.0.0.gem";
-       sha256 = "0x1gsm8gqfa3czndm3v0b8v5sh08wjz1cr7xi383ipmnziimaq30";
-     };
-     meta = {
-       homepage = "http://gembundler.com";
-       license = []; # one of ?
-       description = ''Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatabl''; # cut to 120 chars
-       longDescription = ''Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably'';
-     };
-  };
-
-  actionmailer_3_0_0 = rubyDerivation {
-     name = "ruby-actionmailer-3.0.0"; # full_name
-     nameNoVersion = "actionmailer";
-     propagatedBuildInputs = [  mail_2_2_5 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/actionmailer-3.0.0.gem";
-       sha256 = "15a7ikp7b76mlnrd78cprm6p7qj2vf1zj6x8an0zwnpxy95fqn3q";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''Email on Rails[...]'';
-       longDescription = ''Email on Rails. Compose, deliver, receive, and test emails using the familiar controller/view pattern. First-class support for multipart email and attachments.'';
-     };
-  };
-
-  rack_1_2_1 = rubyDerivation {
-     name = "ruby-rack-1.2.1"; # full_name
-     nameNoVersion = "rack";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rack-1.2.1.gem";
-       sha256 = "0bwsfiprvnwxgwwbr2cwv3aca5d707bfcm2zff4d0nsnbfgll0bj";
-     };
-     meta = {
-       homepage = "http://rack.rubyforge.org";
-       license = []; # one of ?
-       description = ''Rack provides minimal, modular and adaptable interface for developing web applications in Ruby the simplest way possible,''; # cut to 120 chars
-       longDescription = ''Rack provides minimal, modular and adaptable interface for developing
-web applications in Ruby.  By wrapping HTTP requests and responses in
-the simplest way possible, it unifies and distills the API for web
-servers, web frameworks, and software in between (the so-called
-middleware) into a single method call.
-
-Also see http://rack.rubyforge.org.
-'';
-     };
-  };
-
-  rubyforge_2_0_4 = rubyDerivation {
-     name = "ruby-rubyforge-2.0.4"; # full_name
-     nameNoVersion = "rubyforge";
-     propagatedBuildInputs = [ json_pure_1_4_6 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rubyforge-2.0.4.gem";
-       sha256 = "1wdaa4nzy39yzy848fa1rybi72qlyf9vhi1ra9wpx9rpi810fwh1";
-     };
-     meta = {
-       homepage = "http://codeforpeople.rubyforge.org/rubyforge/";
-       license = []; # one of ?
-       description = ''A script which automates a limited set of rubyforge operations  * Run 'rubyforge help' for complete usage. * Setup: For f''; # cut to 120 chars
-       longDescription = ''A script which automates a limited set of rubyforge operations.
-
-* Run 'rubyforge help' for complete usage.
-* Setup: For first time users AND upgrades to 0.4.0:
-  * rubyforge setup (deletes your username and password, so run sparingly!)
-  * edit ~/.rubyforge/user-config.yml
-  * rubyforge config
-* For all rubyforge upgrades, run 'rubyforge config' to ensure you have latest.'';
-     };
-  };
-
-  json_1_4_6 = rubyDerivation {
-     name = "ruby-json-1.4.6"; # full_name
-     nameNoVersion = "json";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/json-1.4.6.gem";
-       sha256 = "1ibyw6hiclircn2f9f4kcznff4rdhcfsjxdzb4z9d9bd3ha1l96k";
-     };
-     meta = {
-       homepage = "http://flori.github.com/json";
-       license = []; # one of ?
-       description = ''This is a JSON implementation as a Ruby extension in C[...]'';
-       longDescription = ''This is a JSON implementation as a Ruby extension in C.'';
-     };
-  };
-
-  locale_2_0_5 = rubyDerivation {
-     name = "ruby-locale-2.0.5"; # full_name
-     nameNoVersion = "locale";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/locale-2.0.5.gem";
-       sha256 = "007yx9rx52as4ykkcm1aw29vgm6rk5xz8012814ynhlp1i0z1fi8";
-     };
-     meta = {
-       homepage = "http://locale.rubyforge.org/";
-       license = []; # one of ?
-       description = ''    Ruby-Locale is the pure ruby library which provides basic APIs for localization [...]'';
-       longDescription = ''    Ruby-Locale is the pure ruby library which provides basic APIs for localization.
-'';
-     };
-  };
-
-  mime_types_1_16 = rubyDerivation {
-     name = "ruby-mime-types-1.16"; # full_name
-     nameNoVersion = "mime_types";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/mime-types-1.16.gem";
-       sha256 = "1slp7g2xv9ygcapqv13qgh3g6ipx5k5c3imb5sdyh0b9ip5s34y3";
-     };
-     meta = {
-       homepage = "http://mime-types.rubyforge.org/";
-       license = []; # one of ?
-       description = ''MIME::Types for Ruby originally based on and synchronized with MIME::Types for Perl by Mark Overmeer, copyright 2001 - 20''; # cut to 120 chars
-       longDescription = ''MIME::Types for Ruby originally based on and synchronized with MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. As of version 1.15, the data format for the MIME::Type list has changed and the synchronization will no longer happen.'';
-     };
-  };
-
-  rb_inotify_0_8_1 = rubyDerivation {
-     name = "ruby-rb-inotify-0.8.1"; # full_name
-     nameNoVersion = "rb_inotify";
-     propagatedBuildInputs = [ ffi_0_6_3 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rb-inotify-0.8.1.gem";
-       sha256 = "1z67kvhb8g8cgvlcfsh2gqhzqjijg8x02nafmifz9n9md5nvscar";
-     };
-     meta = {
-       homepage = "http://github.com/nex3/rb-notify";
-       license = []; # one of ?
-       description = ''A Ruby wrapper for Linux's inotify, using FFI[...]'';
-       longDescription = ''A Ruby wrapper for Linux's inotify, using FFI'';
-     };
-  };
-
-  net_ssh_2_0_23 = rubyDerivation {
-     name = "ruby-net-ssh-2.0.23"; # full_name
-     nameNoVersion = "net_ssh";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/net-ssh-2.0.23.gem";
-       sha256 = "1fllf6mgwc213m5mn266qwhl65zc84wl8rq9m3lvbggw9mh5ynrr";
-     };
-     meta = {
-       homepage = "http://github.com/net-ssh/net-ssh";
-       license = []; # one of ?
-       description = ''Net::SSH: a pure-Ruby implementation of the SSH2 client protocol[...]'';
-       longDescription = ''Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'';
-     };
-  };
-
-  highline_1_6_1 = rubyDerivation {
-     name = "ruby-highline-1.6.1"; # full_name
-     nameNoVersion = "highline";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/highline-1.6.1.gem";
-       sha256 = "1dxlw2jcr4k1vv3sdaqi37kkh9v6cn3dq32ksz6k4yalcv6fhk7d";
-     };
-     meta = {
-       homepage = "http://highline.rubyforge.org";
-       license = []; # one of ?
-       description = ''A high-level IO library that provides validation, type conversion, and more for command-line interfaces crank out anythin''; # cut to 120 chars
-       longDescription = ''A high-level IO library that provides validation, type conversion, and more for
-command-line interfaces. HighLine also includes a complete menu system that can
-crank out anything from simple list selection to complete shells with just
-minutes of work.
-'';
-     };
-  };
-
-  activeresource_3_0_0 = rubyDerivation {
-     name = "ruby-activeresource-3.0.0"; # full_name
-     nameNoVersion = "activeresource";
-     propagatedBuildInputs = [   ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/activeresource-3.0.0.gem";
-       sha256 = "0c5dflwbhl397kifz9i0g63p72xc3jyhk7q8sswp95ijg5smyx2y";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''REST on Rails[...]'';
-       longDescription = ''REST on Rails. Wrap your RESTful web app with Ruby classes and work with them like Active Record models.'';
-     };
-  };
-
-  jeweler_1_4_0 = rubyDerivation {
-     name = "ruby-jeweler-1.4.0"; # full_name
-     nameNoVersion = "jeweler";
-     propagatedBuildInputs = [ git_1_2_5 rubyforge_2_0_4 gemcutter_0_6_1 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/jeweler-1.4.0.gem";
-       sha256 = "0hsz38wc37k1zzmy1jjvsqj6am14n410bbxk1dhq55cgapnwm3kb";
-     };
-     meta = {
-       homepage = "http://github.com/technicalpickles/jeweler";
-       license = []; # one of ?
-       description = ''Simple and opinionated helper for creating Rubygem projects on GitHub[...]'';
-       longDescription = ''Simple and opinionated helper for creating Rubygem projects on GitHub'';
-     };
-  };
-
-  gemcutter_0_6_1 = rubyDerivation {
-     name = "ruby-gemcutter-0.6.1"; # full_name
-     nameNoVersion = "gemcutter";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/gemcutter-0.6.1.gem";
-       sha256 = "01ydbsz4ys6rkaghiibf7y7sbicnc5bppb2ay3agq1rqjvgprcr0";
-     };
-     meta = {
-       homepage = "http://rubygems.org";
-       license = []; # one of ?
-       description = ''Adds several commands to RubyGems for managing gems and more on RubyGems[...]'';
-       longDescription = ''Adds several commands to RubyGems for managing gems and more on RubyGems.org.'';
-     };
-  };
-
-  mail_2_2_5 = rubyDerivation {
-     name = "ruby-mail-2.2.5"; # full_name
-     nameNoVersion = "mail";
-     propagatedBuildInputs = [   treetop_1_4_8 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/mail-2.2.5.gem";
-       sha256 = "0f6qwhwkc9hdqq5qkwzwjsqlwpvy7rcbra7pbl87l6q0mfaqiciv";
-     };
-     meta = {
-       homepage = "http://github.com/mikel/mail";
-       license = []; # one of ?
-       description = ''A really Ruby Mail handler[...]'';
-       longDescription = ''A really Ruby Mail handler.'';
-     };
-  };
-
-  sup_0_11 = rubyDerivation {
-     name = "ruby-sup-0.11"; # full_name
-     nameNoVersion = "sup";
-     propagatedBuildInputs = [ xapian_full_1_1_3_4 ncurses_0_9_1 rmail_1_0_0 highline_1_6_1 net_ssh_2_0_23 trollop_1_16_2 lockfile_1_4_3 mime_types_1_16 gettext_2_1_0 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/sup-0.11.gem";
-       sha256 = "0dijz1vl1kk4axfnry71bnl2585y1hw0n6sizg9aag7r9m13194q";
-     };
-     meta = {
-       homepage = "http://sup.rubyforge.org/";
-       license = []; # one of ?
-       description = ''Sup is a console-based email client for people with a lot of email[...]'';
-       longDescription = ''Sup is a console-based email client for people with a lot of email. It supports tagging, very fast full-text search, automatic contact-list management, and more. If you're the type of person who treats email as an extension of your long-term memory, Sup is for you.  Sup makes it easy to: - Handle massive amounts of email.  - Mix email from different sources: mbox files (even across different machines), Maildir directories, IMAP folders, POP accounts, and GMail accounts.  - Instantaneously search over your entire email collection. Search over body text, or use a query language to combine search predicates in any way.  - Handle multiple accounts. Replying to email sent to a particular account will use the correct SMTP server, signature, and from address.  - Add custom code to handle certain types of messages or to handle certain types of text within messages.  - Organize email with user-defined labels, automatically track recent contacts, and much more!  The goal of Sup is to become the email client of choice for nerds everywhere.'';
-     };
-  };
-
-  jquery_rails_0_1_2 = rubyDerivation {
-     name = "ruby-jquery-rails-0.1.2"; # full_name
-     nameNoVersion = "jquery_rails";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/jquery-rails-0.1.2.gem";
-       sha256 = "1z2qw5nmvjpgx5b79kxvi4gl102aq8brp32fpbysmzv2ghsqgvqn";
-     };
-     meta = {
-       homepage = "http://rubygems.org/gems/jquery-rails";
-       license = []; # one of ?
-       description = ''This gem provides a Rails generator to install jQuery and the jQuery-ujs driver into your Rails 3 application, and then h''; # cut to 120 chars
-       longDescription = ''This gem provides a Rails generator to install jQuery and the jQuery-ujs driver into your Rails 3 application, and then have them included automatically instead of Prototype.'';
-     };
-  };
-
-  tzinfo_0_3_23 = rubyDerivation {
-     name = "ruby-tzinfo-0.3.23"; # full_name
-     nameNoVersion = "tzinfo";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/tzinfo-0.3.23.gem";
-       sha256 = "020qk9yfc4s5mi624isn9r7hbncgk3l3ri783y7mn4ac6y4jkpgd";
-     };
-     meta = {
-       homepage = "http://tzinfo.rubyforge.org/";
-       license = []; # one of ?
-       description = ''TZInfo is a Ruby library that uses the standard tz (Olson) database to provide daylight savings aware transformations bet''; # cut to 120 chars
-       longDescription = ''TZInfo is a Ruby library that uses the standard tz (Olson) database to provide daylight savings aware transformations between times in different time zones.'';
-     };
-  };
-
-  activesupport_3_0_0 = rubyDerivation {
-     name = "ruby-activesupport-3.0.0"; # full_name
-     nameNoVersion = "activesupport";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/activesupport-3.0.0.gem";
-       sha256 = "0bad6iqqajlzy61ky4his0d4cfzq4f77qihyn6yygq9pn1ma6mvx";
-     };
-     meta = {
-       homepage = "http://www.rubyonrails.org";
-       license = []; # one of ?
-       description = ''A toolkit of support libraries and Ruby core extensions extracted from the Rails framework[...]'';
-       longDescription = ''A toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Rich support for multibyte strings, internationalization, time zones, and testing.'';
-     };
-  };
-
-  rmail_1_0_0 = rubyDerivation {
-     name = "ruby-rmail-1.0.0"; # full_name
-     nameNoVersion = "rmail";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rmail-1.0.0.gem";
-       sha256 = "0nsg7yda1gdwa96j4hlrp2s0m06vrhcc4zy5mbq7gxmlmwf9yixp";
-     };
-     meta = {
-       homepage = "http://www.rfc20.org/rubymail";
-       license = []; # one of ?
-       description = ''RMail is a lightweight mail library containing various utility classes and modules that allow ruby scripts to parse, modi''; # cut to 120 chars
-       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.'';
-     };
+  gems // {
+    merge = { generated ? null, patches ? null, overrides ? null }:
+      gemsMergeableFun {
+        generatedFuns = generatedFuns ++ optional (generated != null) generated;
+        patchFuns = patchFuns ++ optional (patches != null) patches;
+        overrideFuns = overrideFuns ++ optional (overrides != null) overrides;
+      };
   };
-
-# aliases
-rmail=rmail_1_0_0;
-tzinfo=tzinfo_0_3_23;
-jquery_rails=jquery_rails_0_1_2;
-activeresource=activeresource_3_0_0;
-term_ansicolor=term_ansicolor_1_0_5;
-rb_inotify=rb_inotify_0_8_1;
-activerecord=activerecord_3_0_0;
-rails=rails_3_0_0;
-highline=highline_1_6_1;
-rubygems_update=rubygems_update_1_3_7;
-sqlite3_ruby=sqlite3_ruby_1_3_1;
-polyglot=polyglot_0_3_1;
-haml=haml_3_0_18;
-rake=rake_0_8_7;
-sup=sup_0_11;
-thor=thor_0_14_0;
-railties=railties_3_0_0;
-treetop=treetop_1_4_8;
-mime_types=mime_types_1_16;
-rubyforge=rubyforge_2_0_4;
-abstract=abstract_1_0_0;
-mail=mail_2_2_5;
-gemcutter=gemcutter_0_6_1;
-rack=rack_1_2_1;
-activemodel=activemodel_3_0_0;
-rack_mount=rack_mount_0_6_13;
-haml_rails=haml_rails_0_2;
-rails3_generators=rails3_generators_0_13_0;
-net_ssh=net_ssh_2_0_23;
-json=json_1_4_6;
-xrefresh_server=xrefresh_server_0_3_0;
-erubis=erubis_2_6_6;
-xapian_full=xapian_full_1_1_3_4;
-ncurses=ncurses_0_9_1;
-arel=arel_1_0_1;
-jeweler=jeweler_1_4_0;
-bundler=bundler_1_0_0;
-gettext=gettext_2_1_0;
-trollop=trollop_1_16_2;
-git=git_1_2_5;
-locale=locale_2_0_5;
-actionmailer=actionmailer_3_0_0;
-json_pure=json_pure_1_4_6;
-actionpack=actionpack_3_0_0;
-i18n=i18n_0_4_1;
-chronic=chronic_0_2_3;
-rack_test=rack_test_0_5_4;
-activesupport=activesupport_3_0_0;
-lockfile=lockfile_1_4_3;
-enumerated_attribute=enumerated_attribute_0_2_16;
-ffi=ffi_0_6_3;
-meta_programming=meta_programming_0_2_2;
-builder=builder_2_1_2;
-ncursesw=ncursesw_1_2_4_1;
-  # ================ END automatically generated code ================
-  }; in libs
+in
+((gemsMergeableFun { }).merge {
+  generated = import ./generated.nix;
+  patches = import ./patches.nix;
+  overrides = import ./overrides.nix;
+}).merge (
+  let
+    localGemDir = (builtins.getEnv "HOME") + "/.nixpkgs/gems/";
+    getLocalGemFun = name:
+      let
+        file = localGemDir + name + ".nix";
+        fallback =
+          if builtins.pathExists file then import (builtins.toPath file)
+          else null;
+      in
+      getConfig [ "gems" name ] fallback;
+  in
+{
+  generated = getLocalGemFun "generated";
+  patches = getLocalGemFun "patches";
+  overrides = getLocalGemFun "overrides";
+})
diff --git a/pkgs/development/interpreters/ruby/overrides.nix b/pkgs/development/interpreters/ruby/overrides.nix
new file mode 100644
index 000000000000..01d73a19d64b
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/overrides.nix
@@ -0,0 +1,5 @@
+{ xapianBindings }:
+
+{
+  xapian_full = xapianBindings.merge { cfg = { rubySupport = true; }; };
+}
diff --git a/pkgs/development/interpreters/ruby/patches.nix b/pkgs/development/interpreters/ruby/patches.nix
new file mode 100644
index 000000000000..abcb1d0dfe4a
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/patches.nix
@@ -0,0 +1,49 @@
+{fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi, zlib,
+  libuuid, gems}:
+
+let
+  patchUsrBinEnv = writeScript "path-usr-bin-env" ''
+    #!/bin/sh
+    set -x
+    echo "==================="
+    find "$1" -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
+    find "$1" -type f -name "*.mk" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
+  '';
+in
+{
+  sup = { buildInputs = [ gems.ncursesw ]; };
+  sqlite3 = { propagatedBuildInputs = [ sqlite ]; };
+  rails = { gemFlags = "--no-ri --no-rdoc"; };
+  ncurses = { propagatedBuildInputs = [ ncurses ]; };
+  ncursesw = { propagatedBuildInputs = [ ncurses ]; };
+  nokogiri = {
+    buildFlags=["--with-xml2-dir=${libxml2} --with-xml2-include=${libxml2}/include/libxml2"
+                "--with-xslt-dir=${libxslt}" ];
+  };
+
+  ffi = {
+    postUnpack = "onetuh";
+    buildFlags=["--with-ffi-dir=${libffi}"];
+    NIX_POST_EXTRACT_FILES_HOOK = patchUsrBinEnv;
+  };
+
+  xrefresh_server =
+  let patch = fetchurl {
+      url = "http://mawercer.de/~nix/xrefresh.diff.gz";
+      sha256 = "1f7bnmn1pgkmkml0ms15m5lx880hq2sxy7vsddb3sbzm7n1yyicq";
+    };
+  in {
+    propagatedBuildInputs = [ gems.rb_inotify ];
+
+    # monitor implementation for Linux
+    postInstall = ''
+      cd $out/${ruby.gemPath}/gems/*
+      zcat ${patch} | patch -p 1
+    '';
+  };
+
+  xapian_full = {
+    buildInputs = [ gems.rake zlib libuuid ];
+    gemFlags = "--no-rdoc --no-ri";
+  };
+}
diff --git a/pkgs/development/interpreters/ruby/rubygems.nix b/pkgs/development/interpreters/ruby/rubygems.nix
new file mode 100644
index 000000000000..bfea04d1aba0
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/rubygems.nix
@@ -0,0 +1,53 @@
+args : with args; 
+rec {
+
+  # some packages (eg ruby-debug) still require 1.8. So let's stick to that for
+  # now if nobody has different requirements
+
+  version = "1.4.1";
+  src = fetchurl {
+    url = "http://production.cf.rubygems.org/rubygems/${name}.tgz";
+    sha256 = "189wg1msb4sdjvdzv9ia6q3lvjlygpp67wlbkl7cjb22bpjy4w4b";
+  };
+
+
+  buildInputs = [ruby makeWrapper];
+  configureFlags = [];
+
+  doInstall = fullDepEntry (''
+    ruby setup.rb --prefix=$out/
+    wrapProgram $out/bin/gem --prefix RUBYLIB : $out/lib
+    find $out -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
+    mkdir -pv $out/nix-support
+    cat > $out/nix-support/setup-hook <<EOF
+    export RUBYOPT=rubygems
+    addToSearchPath RUBYLIB $out/lib
+
+    addGemPath() {
+      addToSearchPath GEM_PATH \$1/${ruby.gemPath}
+    }
+
+    envHooks+=(addGemPath)
+    EOF'') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
+
+  /* doConfigure should be specified separately */
+  phaseNames = ["doPatch" "doInstall"];
+      
+  name = "rubygems-" + version;
+  meta = {
+    description = "Ruby gems package collection";
+    longDescription = ''
+      Nix can create nix packages from gems.
+
+      To use it do the following:
+      1. Install rubygems and rubyLibs.nix.
+      2. Add $your_profile/${ruby.gemPath} to GEM_PATH.
+      3. export RUBYLIB=$your_profile/lib RUBYOPT=rubygems.
+      4. Run `gem nix --[no-]user-install gem1 gem2 ...` to generate Nix
+      expression from gem repository.
+      5. Install rubyLibs.gem1 etc.
+    '';
+  };
+
+  patches = [ ./gem_hook.patch ];
+}
diff --git a/pkgs/development/libraries/SDL_gfx/default.nix b/pkgs/development/libraries/SDL_gfx/default.nix
index 7f4ee8ac20ca..1090a99915f9 100644
--- a/pkgs/development/libraries/SDL_gfx/default.nix
+++ b/pkgs/development/libraries/SDL_gfx/default.nix
@@ -1,18 +1,23 @@
 {stdenv, fetchurl, SDL} :
 
 stdenv.mkDerivation rec {
-  name = "SDL_gfx-2.0.20";
+  name = "SDL_gfx-2.0.22";
 
   src = fetchurl {
     url = "http://www.ferzkopp.net/Software/SDL_gfx-2.0/${name}.tar.gz";
-    sha256 = "0dyc1sj0ymv2ghmlgwfb2c6r07scbgmi2dfhmnddsb27y8wjqz4q";
+    sha256 = "1w1bdpyypvqg1nmbjwkqnjhmngvpjmhc0zanwgq7z4pxffzffx8m";
   };
 
   buildInputs = [ SDL ] ;
 
   configureFlags = "--disable-mmx";
 
-  postInstall = "ln -s $out/include/SDL/*.h $out/include/";
+  postInstall = ''
+    sed -i -e 's,"SDL.h",<SDL/SDL.h>,' \
+      $out/include/SDL/*.h
+    
+    ln -s $out/include/SDL/*.h $out/include/;
+  '';
 
   meta = {
     description = "SDL graphics drawing primitives and support functions";
@@ -39,6 +44,6 @@ stdenv.mkDerivation rec {
     license = "LGPLv2+";
 
     maintainers = [ stdenv.lib.maintainers.bjg ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/SDL_image/default.nix b/pkgs/development/libraries/SDL_image/default.nix
index 89cf52f7e5eb..21461cc42595 100644
--- a/pkgs/development/libraries/SDL_image/default.nix
+++ b/pkgs/development/libraries/SDL_image/default.nix
@@ -2,18 +2,26 @@
 
 stdenv.mkDerivation rec {
   pname = "SDL_image";
-  version = "1.2.6";
+  version = "1.2.10";
 
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://www.libsdl.org/projects/${pname}/release/${name}.tar.gz";
-    sha256 = "1i3f72dw3i3l6d77dk81gw57sp0629rng9k76qb37brlz7dv3z48";
+    sha256 = "0xhqw56xgc0rn3ziccirib8ai2whbbidjmvig527n9znjlg5vq3m";
   };
 
   buildInputs = [SDL libpng libjpeg libtiff libungif libXpm];
 
-  postInstall = "ln -s $out/include/SDL/SDL_image.h $out/include/";
+  postInstall = ''
+    sed -i -e 's,"SDL.h",<SDL/SDL.h>,' \
+    -e 's,"SDL_version.h",<SDL/SDL_version.h>,' \
+    -e 's,"begin_code.h",<SDL/begin_code.h>,' \
+    -e 's,"close_code.h",<SDL/close_code.h>,' \
+      $out/include/SDL/SDL_image.h
+
+    ln -sv $out/include/SDL/SDL_image.h $out/include/
+  '';
 
   meta = {
     description = "SDL image library";
diff --git a/pkgs/development/libraries/SDL_mixer/default.nix b/pkgs/development/libraries/SDL_mixer/default.nix
index 1821d746ac4e..af83f19dbbde 100644
--- a/pkgs/development/libraries/SDL_mixer/default.nix
+++ b/pkgs/development/libraries/SDL_mixer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, libogg, libvorbis }:
+{ stdenv, fetchurl, SDL, libogg, libvorbis, enableNativeMidi ? false }:
 
 stdenv.mkDerivation rec {
   pname = "SDL_mixer";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [SDL libogg libvorbis];
 
-  configureFlags = "--disable-music-ogg-shared";
+  configureFlags = "--disable-music-ogg-shared" + stdenv.lib.optionalString enableNativeMidi "--enable-music-native-midi-gpl";
 
   postInstall = "ln -s $out/include/SDL/SDL_mixer.h $out/include/";
 
diff --git a/pkgs/development/libraries/adns/1.1.nix b/pkgs/development/libraries/adns/1.1.nix
deleted file mode 100644
index 311862d3b9f9..000000000000
--- a/pkgs/development/libraries/adns/1.1.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ stdenv, fetchurl, version ? "1.1", static }:
-
-assert version == "1.1";
-
-import ./default.nix
-{
-  inherit stdenv fetchurl static version;
-  versionHash = "02plci50c7svbq15284z40c5aglydzh2zp68dj4lnigaxr6vm5vn";
-}
diff --git a/pkgs/development/libraries/adns/1.2.nix b/pkgs/development/libraries/adns/1.2.nix
deleted file mode 100644
index 1340f790ed14..000000000000
--- a/pkgs/development/libraries/adns/1.2.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ stdenv, fetchurl, version ? "1.2", static }:
-
-assert version == "1.2";
-
-import ./default.nix
-{
-  inherit stdenv fetchurl static version;
-  versionHash = "0jn03hz6q4r6x40cxc94n38mxxj45f73xqisi0sh7zmvixh3qhi2";
-}
diff --git a/pkgs/development/libraries/adns/1.3.nix b/pkgs/development/libraries/adns/1.3.nix
deleted file mode 100644
index ccc6fa563edf..000000000000
--- a/pkgs/development/libraries/adns/1.3.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ stdenv, fetchurl, version ? "1.3", static }:
-
-assert version == "1.3";
-
-import ./default.nix
-{
-  inherit stdenv fetchurl static version;
-  versionHash = "05hd7qspvlsac9bqzx86r5a1wv7x1zdmqx6pi3ddk094m0n4bqn6";
-}
diff --git a/pkgs/development/libraries/adns/1.4.nix b/pkgs/development/libraries/adns/1.4.nix
deleted file mode 100644
index d82b8aec9025..000000000000
--- a/pkgs/development/libraries/adns/1.4.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ stdenv, fetchurl, version ? "1.4", static }:
-
-assert version == "1.4";
-
-import ./default.nix
-{
-  inherit stdenv fetchurl static version;
-  versionHash = "1zm99i9fd5gfijd144ajngn6x73563355im79sqdi98pj6ir4yvi";
-}
diff --git a/pkgs/development/libraries/adns/default.nix b/pkgs/development/libraries/adns/default.nix
index d0eedef15f03..cbc4e0b8c89b 100644
--- a/pkgs/development/libraries/adns/default.nix
+++ b/pkgs/development/libraries/adns/default.nix
@@ -1,31 +1,32 @@
-{ stdenv, fetchurl, version, versionHash, static }:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation
-{
+let
+  version = "1.4";
+in
+stdenv.mkDerivation {
   name = "adns-${version}";
-  meta =
-  {
-    homepage = "http://www.chiark.greenend.org.uk/~ian/adns/";
-    description = "Asynchronous DNS Resolver Library";
-    license = "LGPL-v2";
-  };
-  src = fetchurl
-  {
-    urls =
-      [ "http://www.chiark.greenend.org.uk/~ian/adns/ftp/adns-${version}.tar.gz"
-        "ftp://ftp.chiark.greenend.org.uk/users/ian/adns/adns-${version}.tar.gz"
-        "mirror://gnu/adns/adns-${version}.tar.gz"
-      ];
-    sha256 = "${versionHash}";
+
+  src = fetchurl {
+    urls = [
+      "http://www.chiark.greenend.org.uk/~ian/adns/ftp/adns-${version}.tar.gz"
+      "ftp://ftp.chiark.greenend.org.uk/users/ian/adns/adns-${version}.tar.gz"
+      "mirror://gnu/adns/adns-${version}.tar.gz"
+    ];
+    sha256 = "1zm99i9fd5gfijd144ajngn6x73563355im79sqdi98pj6ir4yvi";
   };
-  configureFlags = if static then "--disable-dynamic" else "--enable-dynamic";
-  CPPFLAGS = "-DNDEBUG";
-  CFLAGS = "-O3";
 
-  # FIXME: The test suite fails on NixOS in a chroot.  See
+  preConfigure =
+    stdenv.lib.optionalString stdenv.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure";
+
   # http://thread.gmane.org/gmane.linux.distributions.nixos/1328 for details.
   doCheck = false;
 
-  # adns doesn't understand the automatic --disable-shared from the Cygwin stdenv.
-  cygwinConfigureEnableShared = true;
+  meta = {
+    homepage = "http://www.chiark.greenend.org.uk/~ian/adns/";
+    description = "Asynchronous DNS Resolver Library";
+    license = "LGPL-v2";
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
 }
diff --git a/pkgs/development/libraries/afflib/default.nix b/pkgs/development/libraries/afflib/default.nix
new file mode 100644
index 000000000000..a5fdafe7914f
--- /dev/null
+++ b/pkgs/development/libraries/afflib/default.nix
@@ -0,0 +1,48 @@
+x@{builderDefsPackage
+  , libewf, zlib, curl, expat, fuse, openssl
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="afflib";
+    version="3.6.12";
+    name="${baseName}-${version}";
+    url="http://afflib.org/downloads/${name}.tar.gz";
+    hash="1l13nrqjlvad112543qbyvrzai5by43zl96d3miklrhn26q9rs07";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "Advanced forensic format library";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.bsdOriginal;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://afflib.org/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/allegro/default.nix b/pkgs/development/libraries/allegro/default.nix
index 1669d083f226..e5a976c3418b 100644
--- a/pkgs/development/libraries/allegro/default.nix
+++ b/pkgs/development/libraries/allegro/default.nix
@@ -1,7 +1,7 @@
 x@{builderDefsPackage
   , texinfo, libXext, xextproto, libX11, xproto, libXpm, libXt, libXcursor
   , alsaLib, cmake, zlib, libpng, libvorbis, libXxf86dga, libXxf86misc
-  , xf86dgaproto, xf86miscproto, xf86vidmodeproto, libXxf86vm, openal
+  , xf86dgaproto, xf86miscproto, xf86vidmodeproto, libXxf86vm, openal, mesa
   , ...}:
 builderDefsPackage
 (a :  
diff --git a/pkgs/development/libraries/apr-util/default.nix b/pkgs/development/libraries/apr-util/default.nix
index c59184007e53..8a214a8f16ee 100644
--- a/pkgs/development/libraries/apr-util/default.nix
+++ b/pkgs/development/libraries/apr-util/default.nix
@@ -1,24 +1,29 @@
 { stdenv, fetchurl, apr, expat
 , bdbSupport ? false, db4 ? null
+, ldapSupport ? !stdenv.isDarwin, openldap
 }:
 
 assert bdbSupport -> db4 != null;
 
 stdenv.mkDerivation rec {
-  name = "apr-util-1.3.10";
+  name = "apr-util-1.3.12";
   
   src = fetchurl {
     url = "mirror://apache/apr/${name}.tar.bz2";
-    sha256 = "1vhps080b0f9z6ibq7xqbhdrclb89min7xwvc2zzc5wf0x4w1h0s";
+    md5 = "0f671b037ca62751a8a7005578085560";
   };
   
   configureFlags = ''
     --with-apr=${apr} --with-expat=${expat}
     ${if bdbSupport then "--with-berkeley-db=${db4}" else ""}
+    ${if ldapSupport then "--with-ldap" else ""}
   '';
+
+  propagatedBuildInputs = stdenv.lib.optional ldapSupport openldap;
   
   passthru = {
     inherit bdbSupport;
+    inherit ldapSupport;
   };
 
   meta = {
diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix
index 372f7fd9a2db..ed2ec20a9c98 100644
--- a/pkgs/development/libraries/apr/default.nix
+++ b/pkgs/development/libraries/apr/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "apr-1.4.2";
+  name = "apr-1.4.5";
 
   src = fetchurl {
     url = "mirror://apache/apr/${name}.tar.bz2";
-    sha256 = "14akizp9aq8c2qk8bj5a6n3s8hsy356prp911cmrvl4l0rqcl5r0";
+    md5 = "8b53f5a5669d0597f2da889a2f576eb6";
   };
 
   configureFlags =
diff --git a/pkgs/development/libraries/asio/default.nix b/pkgs/development/libraries/asio/default.nix
new file mode 100644
index 000000000000..acf53c708e08
--- /dev/null
+++ b/pkgs/development/libraries/asio/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, boost, openssl}:
+
+stdenv.mkDerivation rec {
+  name = "asio-1.5.3";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/asio/${name}.tar.bz2";
+    sha256 = "08fdsv1zhwbfwlx3r3dzl1371lxy5gw92ms0kqcscxqn0ycf3rlj";
+  };
+
+  propagatedBuildInputs = [ boost ];
+  buildInputs = [ openssl ];
+
+  meta = {
+    homepage = http://asio.sourceforge.net/;
+    description = "Cross-platform C++ library for network and low-level I/O programming";
+    license = "boost";
+  };
+
+}
diff --git a/pkgs/development/libraries/aspell/default.nix b/pkgs/development/libraries/aspell/default.nix
index 5ac6fce7096b..cac5ec483fe6 100644
--- a/pkgs/development/libraries/aspell/default.nix
+++ b/pkgs/development/libraries/aspell/default.nix
@@ -1,14 +1,16 @@
 {stdenv, fetchurl, perl}:
 
 stdenv.mkDerivation rec {
-  name = "aspell-0.60.6";
-  
+  name = "aspell-0.60.6.1";
+
   src = fetchurl {
     url = "ftp://ftp.gnu.org/gnu/aspell/${name}.tar.gz";
-    sha256 = "0dhfgkp2y16z0agdvhn4iaikr34l4agjz2nannqvpxkcw8h1ansg";
+    sha256 = "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm";
   };
-  
-  buildInputs = [perl];
+
+  buildInputs = [ perl ];
+
+  doCheck = true;
 
   # Note: Users should define the `ASPELL_CONF' environment variable to
   # `dict-dir $HOME/.nix-profile/lib/aspell/' so that they can access
@@ -20,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "GNU Aspell, A spell checker for many languages";
     homepage = http://aspell.net/;
-    license = "LGPL";
+    license = "LGPLv2+";
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/development/libraries/aterm/2.4.2-fixes.nix b/pkgs/development/libraries/aterm/2.4.2-fixes.nix
deleted file mode 100644
index b02da9be1ace..000000000000
--- a/pkgs/development/libraries/aterm/2.4.2-fixes.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "aterm-2.4.2-fixes-r2";
-  
-  src = fetchurl {
-    url = http://nixos.org/tarballs/aterm-2.4.2-fixes-r2.tar.bz2;
-    sha256 = "1w3bxdpc2hz29li5ssmdcz3x0fn47r7g62ns0v8nazxwf40vff4j";
-  };
-
-  patches = [
-    # Fix for http://bugzilla.sen.cwi.nl:8080/show_bug.cgi?id=841
-    ./max-long.patch
-  ];
-
-  # There are apparently still some aliasing bugs left in
-  # aterm-2.4.2-fixes-r2 (in AT_setAnnotations to be precise), but
-  # under my reading of the C standard it should be fine. Anyway, just
-  # disable strict aliasing.
-  NIX_CFLAGS_COMPILE = "-fno-strict-aliasing";
-  
-  doCheck = true;
-
-  meta = {
-    homepage = http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/ATerm;
-    license = "LGPL";
-    description = "Library for manipulation of term data structures in C";
-  };
-}
diff --git a/pkgs/development/libraries/atk/1.28.x.nix b/pkgs/development/libraries/atk/1.32.x.nix
index 753f8c59c878..99a02b228082 100644
--- a/pkgs/development/libraries/atk/1.28.x.nix
+++ b/pkgs/development/libraries/atk/1.32.x.nix
@@ -1,16 +1,18 @@
 { stdenv, fetchurl, pkgconfig, perl, glib }:
 
 stdenv.mkDerivation rec {
-  name = "atk-1.28.0";
+  name = "atk-1.32.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/atk/1.28/${name}.tar.bz2";
-    sha256 = "11zyamivv7fcj9ap3w3bn3gm89mkni9waf51fx75zmfjh3jrznp4";
+    url = "mirror://gnome/sources/atk/1.32/${name}.tar.bz2";
+    sha256 = "e9a3e598f75c4db1af914f8b052dd9f7e89e920a96cc187c18eb06b8339cb16e";
   };
 
-  buildInputs = [pkgconfig perl];
-  propagatedBuildInputs = [glib];
+  buildInputs = [ pkgconfig perl ];
+  propagatedBuildInputs = [ glib ];
 
+  postInstall = "rm -rf $out/share/gtk-doc";
+  
   meta = {
     description = "ATK, the accessibility toolkit";
 
diff --git a/pkgs/desktops/kde-4.6/support/attica/default.nix b/pkgs/development/libraries/attica/default.nix
index 0eff2cbb4eba..95de0834f292 100644
--- a/pkgs/desktops/kde-4.6/support/attica/default.nix
+++ b/pkgs/development/libraries/attica/default.nix
@@ -1,12 +1,15 @@
-{stdenv, fetchurl, cmake, qt4}:
+{ stdenv, fetchurl, cmake, qt4 }:
 
 stdenv.mkDerivation rec {
   name = "attica-0.2.0";
+  
   src = fetchurl {
     url = "mirror://kde/stable/attica/${name}.tar.bz2";
     sha256 = "0g2la91fgdr185ah15vc91plvdwvbm6kpsyz0vk0da7ggiyg3y9a";
   };
+  
   buildInputs = [ cmake qt4 ];
+  
   meta = with stdenv.lib; {
     description = "A library to access Open Collaboration Service providers";
     license = "LGPL";
diff --git a/pkgs/development/libraries/audio/vamp/default.nix b/pkgs/development/libraries/audio/vamp/default.nix
index 1bccf32b0f05..bfca4a523046 100644
--- a/pkgs/development/libraries/audio/vamp/default.nix
+++ b/pkgs/development/libraries/audio/vamp/default.nix
@@ -6,11 +6,11 @@
 rec {
 
   vampSDK = stdenv.mkDerivation {
-    name = "vamp-sdk-2.0";
+    name = "vamp-sdk-2.2.1";
 
     src = fetchurl {
-      url = mirror://sourceforge/vamp/files/vamp-plugin-sdk/2.0/vamp-plugin-sdk-2.0.tar.gz;
-      sha256 = "1bxi3dw3zb9896vsx256avzfwpad5csad36cfy5s1zmqkl130mkp";
+      url = mirror://sourceforge/vamp/vamp-plugin-sdk-2.2.1.tar.gz;
+      sha256 = "09iw6gv8aqq5v322fhi872mrhjp0a2w63966g0mks4vhh84q252p";
     };
 
     buildInputs = [pkgconfig libsndfile];
diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix
index 9e72862a5c2a..709ea3583dc1 100644
--- a/pkgs/development/libraries/avahi/default.nix
+++ b/pkgs/development/libraries/avahi/default.nix
@@ -1,6 +1,7 @@
 { fetchurl, stdenv, pkgconfig, libdaemon, dbus, perl, perlXMLParser
 , expat, gettext, intltool, glib, gtk, qt4 ? null, lib
-, qt4Support ? false }:
+, qt4Support ? false
+, withLibdnsCompat ? false }:
 
 assert qt4Support -> qt4 != null;
 
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
       "--${if qt4Support then "enable" else "disable"}-qt4"
       "--disable-python"
       "--with-distro=none" "--localstatedir=/var"
-    ];
+    ] ++ stdenv.lib.optional withLibdnsCompat "--enable-compat-libdns_sd";
 
   meta = {
     description = "Avahi, an mDNS/DNS-SD implementation";
@@ -40,7 +41,7 @@ stdenv.mkDerivation rec {
     homepage = http://avahi.org;
     license = "LGPLv2+";
 
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.linux;  # arbitrary choice
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/development/libraries/boehm-gc/cygwin-pthread-dl.patch b/pkgs/development/libraries/boehm-gc/cygwin-pthread-dl.patch
deleted file mode 100644
index 9515dc237d3f..000000000000
--- a/pkgs/development/libraries/boehm-gc/cygwin-pthread-dl.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Don't pass "-lpthread -ldl" on Cygwin.  See
-http://thread.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/3219
-for details.
-
---- gc-7.1/configure	2008-05-04 02:52:50.000000000 +0200
-+++ gc-7.1/configure	2009-09-18 16:23:30.000000000 +0200
-@@ -4859,7 +4859,7 @@
- 	cat >>confdefs.h <<\_ACEOF
- #define THREAD_LOCAL_ALLOC 1
- _ACEOF
--
-+	THREADDLLIBS=""
- 	win32_threads=true
- 	;;
-      *-*-darwin*)
-@@ -5934,6 +5934,7 @@
- # dyld calls anyway
- case "$host" in
-   *-*-darwin*) ;;
-+  *-*-cygwin*) ;;
-   *)
-     { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
- echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-
diff --git a/pkgs/development/libraries/boehm-gc/default.nix b/pkgs/development/libraries/boehm-gc/default.nix
index 6d1074165b5d..a5ecc12a8b11 100644
--- a/pkgs/development/libraries/boehm-gc/default.nix
+++ b/pkgs/development/libraries/boehm-gc/default.nix
@@ -1,23 +1,17 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
-let
-  version = if stdenv.isMips then "7.2alpha4" else "7.1";
-in
-stdenv.mkDerivation ({
-  name = "boehm-gc-${version}";
+stdenv.mkDerivation (rec {
+  name = "boehm-gc-7.2pre20110122";
 
   src = fetchurl {
-    url = "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-${version}.tar.gz";
-    sha256 = (if version == "7.1" then "0c5zrsdw0rsli06lahcqwwz0prgah340fhfg7ggfgvz3iw1gdkp3"
-      else if version == "7.2alpha4" then "1ya9hr1wbx0hrx29q5zy2k51ml71k9mhqzqs7f505qr9s6jsfh0b"
-      else throw "Version unknown");
+    url = "http://nixos.org/tarballs/${name}.tar.bz2";
+    sha256 = "06nf60flq6344pgic3bz83jh6pvj4k42apm3x4xwxc4d2is457ly";
   };
 
-  patches = stdenv.lib.optional (stdenv.system == "i686-cygwin")
-                        ./cygwin-pthread-dl.patch;
-
   doCheck = true;
 
+  configureFlags = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "CPPFLAGS=-D_XOPEN_SOURCE";
+
   meta = {
     description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++";
 
@@ -50,7 +44,7 @@ stdenv.mkDerivation ({
 
 //
 
-(if stdenv.system == "x86_64-darwin"
- # Fix "#error ucontext routines are deprecated, and require _XOPEN_SOURCE to be defined".
- then { configureFlags = "CPPFLAGS=-D_XOPEN_SOURCE"; }
- else {}))
+# Don't run the native `strip' when cross-compiling.
+(if (stdenv ? cross)
+ then { dontStrip = true; }
+ else { }))
diff --git a/pkgs/development/libraries/boost/default.nix b/pkgs/development/libraries/boost/1.42.nix
index c4b9f23bb230..3dbc699da4d4 100644
--- a/pkgs/development/libraries/boost/default.nix
+++ b/pkgs/development/libraries/boost/1.42.nix
@@ -33,7 +33,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "boost-1.44.0";
+  name = "boost-1.42.0";
 
   meta = {
     homepage = "http://boost.org/";
@@ -44,8 +44,8 @@ stdenv.mkDerivation {
   };
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_44_0.tar.bz2";
-    sha256 = "1nvq36mvzr1fr85q0jh86rk3bk65s1y55jgqgzfg3lcpkl12ihs5";
+    url = "mirror://sourceforge/boost/boost_1_42_0.tar.bz2";
+    sha256 = "02g6m6f7m11ig93p5sx7sfq75c15y9kn2pa3csn1bkjhs9dvj7jb";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/boost/1.44.nix b/pkgs/development/libraries/boost/1.44.nix
new file mode 100644
index 000000000000..2b516be2cbf5
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.44.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
+, enableRelease ? true
+, enableDebug ? false
+, enableSingleThreaded ? false
+, enableMultiThreaded ? true
+, enableShared ? true
+, enableStatic ? false
+, enablePIC ? false
+}:
+
+let
+
+  variant = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableRelease "release" ++
+     stdenv.lib.optional enableDebug "debug");
+
+  threading = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableSingleThreaded "single" ++
+     stdenv.lib.optional enableMultiThreaded "multi");
+
+  link = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableShared "shared" ++
+     stdenv.lib.optional enableStatic "static");
+
+  # To avoid library name collisions
+  finalLayout = if ((enableRelease && enableDebug) ||
+    (enableSingleThreaded && enableMultiThreaded) ||
+    (enableShared && enableStatic)) then
+    "tagged" else "system";
+
+  cflags = if (enablePIC) then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
+
+in
+
+stdenv.mkDerivation {
+  name = "boost-1.44.0";
+
+  meta = {
+    homepage = "http://boost.org/";
+    description = "Boost C++ Library Collection";
+    license = "boost-license";
+
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/boost/boost_1_44_0.tar.bz2";
+    sha256 = "1nvq36mvzr1fr85q0jh86rk3bk65s1y55jgqgzfg3lcpkl12ihs5";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = [icu expat zlib bzip2 python];
+
+  configureScript = "./bootstrap.sh";
+  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
+
+  buildPhase = "./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
+
+  installPhase = ":";
+
+  patches = [
+    # Patch to get rid of following error, experienced by some packages like encfs, bitcoin:
+    #    terminate called after throwing an instance of 'std::runtime_error'
+    #    what():  locale::facet::_S_create_c_locale name not valid
+    (fetchurl { 
+       url = https://svn.boost.org/trac/boost/raw-attachment/ticket/4688/boost_filesystem.patch ;
+       sha256 = "15k91ihzs6190pnryh4cl0b3c2pjpl9d790mr14x16zq52y7px2d"; 
+     })
+  ];
+  
+  crossAttrs = rec {
+    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
+    # override them.
+    propagatedBuildInputs = buildInputs;
+    # We want to substitute the contents of configureFlags, removing thus the
+    # usual --build and --host added on cross building.
+    preConfigure = ''
+      export configureFlags="--prefix=$out --without-icu"
+    '';
+    buildPhase = ''
+      set -x
+      cat << EOF > user-config.jam
+      using gcc : cross : $crossConfig-g++ ;
+      EOF
+      ./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+    '';
+  };
+}
diff --git a/pkgs/development/libraries/boost/1.46.nix b/pkgs/development/libraries/boost/1.46.nix
new file mode 100644
index 000000000000..0a64efdeb3bd
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.46.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
+, enableRelease ? true
+, enableDebug ? false
+, enableSingleThreaded ? false
+, enableMultiThreaded ? true
+, enableShared ? true
+, enableStatic ? false
+, enablePIC ? false
+}:
+
+let
+
+  variant = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableRelease "release" ++
+     stdenv.lib.optional enableDebug "debug");
+
+  threading = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableSingleThreaded "single" ++
+     stdenv.lib.optional enableMultiThreaded "multi");
+
+  link = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableShared "shared" ++
+     stdenv.lib.optional enableStatic "static");
+
+  # To avoid library name collisions
+  finalLayout = if ((enableRelease && enableDebug) ||
+    (enableSingleThreaded && enableMultiThreaded) ||
+    (enableShared && enableStatic)) then
+    "tagged" else "system";
+
+  cflags = if (enablePIC) then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
+
+in
+
+stdenv.mkDerivation {
+  name = "boost-1.46.0";
+
+  meta = {
+    homepage = "http://boost.org/";
+    description = "Boost C++ Library Collection";
+    license = "boost-license";
+
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/boost/boost_1_46_0.tar.bz2";
+    sha256 = "0ndsiv06332gbh6wj68pcnci3l5qrc5pm1ca9dkmxhpxj83zd41g";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = [icu expat zlib bzip2 python];
+
+  configureScript = "./bootstrap.sh";
+  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
+
+  buildPhase = "./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
+
+  installPhase = ":";
+
+  crossAttrs = rec {
+    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
+    # override them.
+    propagatedBuildInputs = buildInputs;
+    # We want to substitute the contents of configureFlags, removing thus the
+    # usual --build and --host added on cross building.
+    preConfigure = ''
+      export configureFlags="--prefix=$out --without-icu"
+    '';
+    buildPhase = ''
+      set -x
+      cat << EOF > user-config.jam
+      using gcc : cross : $crossConfig-g++ ;
+      EOF
+      ./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+    '';
+  };
+}
diff --git a/pkgs/development/libraries/boost/1.47.nix b/pkgs/development/libraries/boost/1.47.nix
new file mode 100644
index 000000000000..4b0c4d3f1409
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.47.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
+, enableRelease ? true
+, enableDebug ? false
+, enableSingleThreaded ? false
+, enableMultiThreaded ? true
+, enableShared ? true
+, enableStatic ? false
+, enablePIC ? false
+, enableExceptions ? false
+}:
+
+let
+
+  variant = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableRelease "release" ++
+     stdenv.lib.optional enableDebug "debug");
+
+  threading = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableSingleThreaded "single" ++
+     stdenv.lib.optional enableMultiThreaded "multi");
+
+  link = stdenv.lib.concatStringsSep ","
+    (stdenv.lib.optional enableShared "shared" ++
+     stdenv.lib.optional enableStatic "static");
+
+  # To avoid library name collisions
+  finalLayout = if ((enableRelease && enableDebug) ||
+    (enableSingleThreaded && enableMultiThreaded) ||
+    (enableShared && enableStatic)) then
+    "tagged" else "system";
+
+  cflags = if (enablePIC && enableExceptions) then
+             "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
+           else if (enablePIC) then
+             "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
+           else if (enableExceptions) then
+             "cflags=-fexceptions"
+           else
+             "";
+in
+
+stdenv.mkDerivation {
+  name = "boost-1.47.0";
+
+  meta = {
+    homepage = "http://boost.org/";
+    description = "Boost C++ Library Collection";
+    license = "boost-license";
+
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/boost/boost_1_47_0.tar.bz2";
+    sha256 = "815a5d9faac4dbd523fbcf3fe1065e443c0bbf43427c44aa423422c6ec4c2e31";
+  };
+
+  # See <http://svn.boost.org/trac/boost/ticket/4688>.
+  patches = [ ./boost_filesystem.patch ];
+
+  enableParallelBuilding = true;
+
+  buildInputs = [icu expat zlib bzip2 python];
+
+  configureScript = "./bootstrap.sh";
+  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
+
+  buildPhase = "./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
+
+  installPhase = ":";
+
+  crossAttrs = rec {
+    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
+    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
+    # override them.
+    propagatedBuildInputs = buildInputs;
+    # We want to substitute the contents of configureFlags, removing thus the
+    # usual --build and --host added on cross building.
+    preConfigure = ''
+      export configureFlags="--prefix=$out --without-icu"
+    '';
+    buildPhase = ''
+      set -x
+      cat << EOF > user-config.jam
+      using gcc : cross : $crossConfig-g++ ;
+      EOF
+      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
+    '';
+  };
+}
diff --git a/pkgs/development/libraries/boost/boost_filesystem.patch b/pkgs/development/libraries/boost/boost_filesystem.patch
new file mode 100644
index 000000000000..f32e9ed572d3
--- /dev/null
+++ b/pkgs/development/libraries/boost/boost_filesystem.patch
@@ -0,0 +1,24 @@
+diff -ubr boost_1_47_0/libs/filesystem/v2/src/v2_path.cpp boost_1_47_0-patched/libs/filesystem/v2/src/v2_path.cpp
+--- boost_1_47_0/libs/filesystem/v2/src/v2_path.cpp	2011-01-11 22:39:33.000000000 +0100
++++ boost_1_47_0-patched/libs/filesystem/v2/src/v2_path.cpp	2011-07-21 01:06:26.000000000 +0200
+@@ -45,7 +45,7 @@
+   {
+ #if !defined(macintosh) && !defined(__APPLE__) && !defined(__APPLE_CC__) 
+     // ISO C calls this "the locale-specific native environment":
+-    static std::locale lc("");
++    static std::locale lc;
+ #else  // Mac OS
+     // "All BSD system functions expect their string parameters to be in UTF-8 encoding
+     // and nothing else."
+diff -ubr boost_1_47_0/libs/filesystem/v3/src/path.cpp boost_1_47_0-patched/libs/filesystem/v3/src/path.cpp
+--- boost_1_47_0/libs/filesystem/v3/src/path.cpp	2011-07-05 16:49:42.000000000 +0200
++++ boost_1_47_0-patched/libs/filesystem/v3/src/path.cpp	2011-07-21 01:06:26.000000000 +0200
+@@ -767,7 +767,7 @@
+     // or LANG are wrong, for example), so dynamic initialization is used to ensure
+     // that exceptions can be caught.
+ 
+-    return std::locale("");
++    return std::locale();
+ 
+ #   endif
+   }
diff --git a/pkgs/development/libraries/buddy/default.nix b/pkgs/development/libraries/buddy/default.nix
index 7e10f967a663..3cfa2a250216 100644
--- a/pkgs/development/libraries/buddy/default.nix
+++ b/pkgs/development/libraries/buddy/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     description = "binary decision diagram package";
     license = "as-is";
 
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.allBut "i686-cygwin";
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/development/libraries/cairo/1.10.nix b/pkgs/development/libraries/cairo/1.10.nix
deleted file mode 100644
index f1eaf65e69cf..000000000000
--- a/pkgs/development/libraries/cairo/1.10.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ postscriptSupport ? true
-, pdfSupport ? true
-, pngSupport ? true
-, xcbSupport ? false
-, stdenv, fetchurl, pkgconfig, x11, fontconfig, freetype
-, zlib, libpng, pixman, libxcb ? null, xcbutil ? null
-}:
-
-assert postscriptSupport -> zlib != null;
-assert pngSupport -> libpng != null;
-assert xcbSupport -> libxcb != null && xcbutil != null;
-
-stdenv.mkDerivation rec {
-  name = "cairo-1.10.0";
-  
-  src = fetchurl {
-    url = "http://cairographics.org/releases/${name}.tar.gz";
-    sha256 = "1cllxp8rx5zxkfpn36ysqg1kqz5d1cvbbf2fsy440n8m8v6f8b0g";
-  };
-
-  buildInputs =
-    [ pkgconfig x11 fontconfig pixman ] ++ 
-    stdenv.lib.optionals xcbSupport [ libxcb xcbutil ];
-
-  propagatedBuildInputs =
-    [ freetype ] ++
-    stdenv.lib.optional postscriptSupport zlib ++
-    stdenv.lib.optional pngSupport libpng;
-    
-  configureFlags =
-    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'
-  '';
-
-  meta = {
-    description = "A 2D graphics library with support for multiple output devices";
-
-    longDescription = ''
-      Cairo is a 2D graphics library with support for multiple output
-      devices.  Currently supported output targets include the X
-      Window System, Quartz, Win32, image buffers, PostScript, PDF,
-      and SVG file output.  Experimental backends include OpenGL
-      (through glitz), XCB, BeOS, OS/2, and DirectFB.
-
-      Cairo is designed to produce consistent output on all output
-      media while taking advantage of display hardware acceleration
-      when available (e.g., through the X Render Extension).
-    '';
-
-    homepage = http://cairographics.org/;
-
-    licenses = [ "LGPLv2+" "MPLv1" ];
-  };
-}
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 5ca745614917..1e478b1c68d9 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -2,7 +2,7 @@
 , pdfSupport ? true
 , pngSupport ? true
 , xcbSupport ? false
-, stdenv, fetchurl, pkgconfig, x11, fontconfig, freetype
+, stdenv, fetchurl, pkgconfig, x11, fontconfig, freetype, xlibs
 , zlib, libpng, pixman, libxcb ? null, xcbutil ? null
 }:
 
@@ -11,15 +11,15 @@ assert pngSupport -> libpng != null;
 assert xcbSupport -> libxcb != null && xcbutil != null;
 
 stdenv.mkDerivation rec {
-  name = "cairo-1.8.10";
+  name = "cairo-1.10.2";
   
   src = fetchurl {
     url = "http://cairographics.org/releases/${name}.tar.gz";
-    sha1 = "fd5e8ca82ff0e8542ea4c51612cad387f2a49df3";
+    sha1 = "ccce5ae03f99c505db97c286a0c9a90a926d3c6e";
   };
 
   buildInputs =
-    [ pkgconfig x11 fontconfig pixman ] ++ 
+    [ pkgconfig x11 fontconfig pixman xlibs.libXrender ] ++ 
     stdenv.lib.optionals xcbSupport [ libxcb xcbutil ];
 
   propagatedBuildInputs =
@@ -28,8 +28,9 @@ stdenv.mkDerivation rec {
     stdenv.lib.optional pngSupport libpng;
     
   configureFlags =
-    stdenv.lib.optional xcbSupport "--enable-xcb" ++
-    stdenv.lib.optional pdfSupport "--enable-pdf";
+    [ "--enable-tee" ]
+    ++ stdenv.lib.optional xcbSupport "--enable-xcb"
+    ++ stdenv.lib.optional pdfSupport "--enable-pdf";
 
   preConfigure = ''
     # Work around broken `Requires.private' that prevents Freetype
@@ -38,6 +39,9 @@ stdenv.mkDerivation rec {
         -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
   '';
 
+  # The default `--disable-gtk-doc' is ignored.
+  postInstall = "rm -rf $out/share/gtk-doc";
+
   meta = {
     description = "A 2D graphics library with support for multiple output devices";
 
diff --git a/pkgs/development/libraries/ccrtp/1.8.nix b/pkgs/development/libraries/ccrtp/1.8.nix
new file mode 100644
index 000000000000..26e7050a60df
--- /dev/null
+++ b/pkgs/development/libraries/ccrtp/1.8.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, openssl, pkgconfig, libgcrypt, commoncpp2 }:
+
+stdenv.mkDerivation {
+  name = "ccrtp-1.8.0";
+
+  src = fetchurl {
+    url = mirror://gnu/ccrtp/ccrtp-1.8.0.tar.gz;
+    sha256 = "0wr4dandlfajhmg90nqyvwv61ikn9vdycji001310y3c4zfysprn";
+  };
+
+  buildInputs = [ openssl pkgconfig libgcrypt commoncpp2 ];
+
+  meta = { 
+    description = "GNU ccRTP is an implementation of RTP, the real-time transport protocol from the IETF";
+    homepage = "http://www.gnu.org/software/ccrtp/";
+    license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix
index 1b00e52a5b6b..8b16af379328 100644
--- a/pkgs/development/libraries/ccrtp/default.nix
+++ b/pkgs/development/libraries/ccrtp/default.nix
@@ -1,20 +1,22 @@
-{ stdenv, fetchurl, openssl, pkgconfig, libgcrypt, commoncpp2 }:
+{ stdenv, fetchurl, openssl, pkgconfig, libgcrypt, ucommon }:
 
 stdenv.mkDerivation {
-  name = "ccrtp-1.7.2";
+  name = "ccrtp-2.0.1";
 
   src = fetchurl {
-    url = mirror://gnu/ccrtp/ccrtp-1.7.2.tar.gz;
-    sha256 = "1vz759f0342ih95sc7vmzx8als7y2ddr0s3jaaj03x22r7xaqzwy";
+    url = mirror://gnu/ccrtp/ccrtp-2.0.1.tar.gz;
+    sha256 = "0wksiq55zq8yvjgzkaxyg15w9kfr4sni8a0yqk11qdqpl8x0al9x";
   };
 
-  buildInputs = [ openssl pkgconfig libgcrypt commoncpp2 ];
+  buildInputs = [ openssl pkgconfig libgcrypt ucommon ];
 
-  meta = { 
-    description = "GNU ccRTP is an implementation of RTP, the real-time transport protocol from the IETF";
-    homepage = "http://www.gnu.org/software/ccrtp/";
+  doCheck = true;
+
+  meta = {
+    description = "GNU ccRTP, an implementation of the IETF real-time transport protocol (RTP)";
+    homepage = http://www.gnu.org/software/ccrtp/;
     license = "GPLv2";
-    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    maintainers = with stdenv.lib.maintainers; [ marcweber ludo ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/celt/0.7.nix b/pkgs/development/libraries/celt/0.7.nix
new file mode 100644
index 000000000000..5c5dae866bb8
--- /dev/null
+++ b/pkgs/development/libraries/celt/0.7.nix
@@ -0,0 +1,47 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="celt";
+    version="0.7.1";
+    name="${baseName}-${version}";
+    url="http://downloads.xiph.org/releases/${baseName}/${name}.tar.gz";
+    hash="93f0e2dfb59021b19e69dc0dee855eb89f19397db1dea0d0d6f9329cff933066";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "CELT - low-delay audio codec";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.celt-codec.org/downloads/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/celt/default.nix b/pkgs/development/libraries/celt/default.nix
new file mode 100644
index 000000000000..471a47de4044
--- /dev/null
+++ b/pkgs/development/libraries/celt/default.nix
@@ -0,0 +1,47 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="celt";
+    version="0.11.1";
+    name="${baseName}-${version}";
+    url="http://downloads.xiph.org/releases/${baseName}/${name}.tar.gz";
+    hash="1gsc3pxydyzzra8w0r6hrrsalm76lrq4lw6bd283qa4bpagmghh1";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "CELT - low-delay audio codec";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.celt-codec.org/downloads/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/cln/default.nix b/pkgs/development/libraries/cln/default.nix
index 5734e2cbe53e..66629b0561b3 100644
--- a/pkgs/development/libraries/cln/default.nix
+++ b/pkgs/development/libraries/cln/default.nix
@@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
     description = "C/C++ library for numbers, a part of GiNaC";
     homepage = http://www.ginac.de/CLN/;
     maintainers = [ stdenv.lib.maintainers.urkud ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.allBut "i686-cygwin";
   };
 }
diff --git a/pkgs/development/libraries/cloog/default.nix b/pkgs/development/libraries/cloog/default.nix
new file mode 100644
index 000000000000..93af6d18b144
--- /dev/null
+++ b/pkgs/development/libraries/cloog/default.nix
@@ -0,0 +1,76 @@
+{ fetchurl, stdenv, gmp, isl, static ? false }:
+
+let
+  staticFlags =
+    assert static -> isl.dontDisableStatic == true;
+    if static then "--enable-static --disable-shared" else "";
+
+in
+
+stdenv.mkDerivation rec {
+  name = "cloog-0.16.2";
+
+  src = fetchurl {
+    url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./${name}.tar.gz";
+    sha256 = "1w9n9lsq18k65fywwbbvhkgl917053w1kvqw0xhlwcma0v59m6mx";
+  };
+
+  buildInputs = [ gmp ];
+
+  propagatedBuildInputs = [ isl ];
+
+  configureFlags = "--with-isl=system --with-isl-prefix=${isl}" + staticFlags;
+    
+  dontDisableStatic = if static then true else false;
+
+  crossAttrs = {
+    configureFlags = "--with-isl=system --with-isl-prefix=${isl.hostDrv}" + staticFlags;
+  };
+
+  doCheck = true;
+
+  meta = {
+    description = "CLooG, the Chunky Loop Generator";
+
+    longDescription = ''
+      CLooG is a free software library to generate code for scanning
+      Z-polyhedra.  That is, it finds a code (e.g., in C, FORTRAN...) that
+      reaches each integral point of one or more parameterized polyhedra.
+      CLooG has been originally written to solve the code generation problem
+      for optimizing compilers based on the polytope model.  Nevertheless it
+      is used now in various area e.g., to build control automata for
+      high-level synthesis or to find the best polynomial approximation of a
+      function.  CLooG may help in any situation where scanning polyhedra
+      matters.  While the user has full control on generated code quality,
+      CLooG is designed to avoid control overhead and to produce a very
+      effective code.
+    '';
+
+    homepage = http://www.cloog.org/;
+
+    license = "GPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+
+    /* Leads to an ICE on Cygwin:
+
+       make[3]: Entering directory `/tmp/nix-build-9q5gw5m37q5l4f0kjfv9ar8fsc9plk27-ppl-0.10.2.drv-1/ppl-0.10.2/src'
+       /bin/sh ../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  -I.. -I../src    -g -O2 -frounding-math  -W -Wall -c -o Box.lo Box.cc
+       libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c Box.cc  -DDLL_EXPORT -DPIC -o .libs/Box.o
+       In file included from checked.defs.hh:595,
+                        from Checked_Number.defs.hh:27,
+                        from Coefficient.types.hh:15,
+                        from Coefficient.defs.hh:26,
+                        from Box.defs.hh:28,
+                        from Box.cc:24:
+       checked.inlines.hh: In function `Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Checked::input_generic(Type&, std::istream&, Parma_Polyhedra_Library::Rounding_Dir)':
+       checked.inlines.hh:607: internal compiler error: in invert_truthvalue, at fold-const.c:2719
+       Please submit a full bug report,
+       with preprocessed source if appropriate.
+       See <URL:http://cygwin.com/problems.html> for instructions.
+       make[3]: *** [Box.lo] Error 1
+
+    */
+    platforms = stdenv.lib.platforms.allBut "i686-cygwin";
+  };
+}
diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix
index d2b123fade3d..666c709f7de1 100644
--- a/pkgs/development/libraries/clutter-gtk/default.nix
+++ b/pkgs/development/libraries/clutter-gtk/default.nix
@@ -1,17 +1,19 @@
 { fetchurl, stdenv, pkgconfig, clutter, gtk }:
 
 stdenv.mkDerivation rec {
-  name = "clutter-gtk-0.10.4";
+  name = "clutter-gtk-0.10.8";
 
   src = fetchurl {
     url = "http://source.clutter-project.org/sources/clutter-gtk/0.10/${name}.tar.bz2";
-    sha256 = "04mrq5ddj24zhh7dvyp9bl8510wq7qpmy3rl3wiqwl9c43gahd01";
+    sha256 = "0508x1jfnlq0zhgscysvfa7i7ljkzm23d2myikvdjwc8ar8zjrvq";
   };
 
   buildInputs = [ pkgconfig clutter gtk ];
 
   preConfigure = "export V=1";
 
+  postBuild = "rm -rf $out/share/gtk-doc";
+
   meta = {
     description = "Clutter-GTK";
 
diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix
index 205a9020511d..58fd70165d99 100644
--- a/pkgs/development/libraries/clutter/default.nix
+++ b/pkgs/development/libraries/clutter/default.nix
@@ -2,11 +2,11 @@
 , libXcomposite, cairo, glib, pango, gtk, json_glib }:
 
 stdenv.mkDerivation rec {
-  name = "clutter-1.4.0";
+  name = "clutter-1.4.2";
 
   src = fetchurl {
     url = "http://source.clutter-project.org/sources/clutter/1.4/${name}.tar.bz2";
-    sha256 = "15icq2gf2fi098lq1wqr7sq2cnb00g1ids050a5z3f43l1ajrnxw";
+    sha256 = "14l8wgk5jdwsnjf991qgzl115kjs1xywil2awlrwj1airsn6gzcj";
   };
 
   buildInputs = [ pkgconfig ];
@@ -17,7 +17,6 @@ stdenv.mkDerivation rec {
       libXi libXfixes libXdamage libXcomposite
     ];
 
-
   meta = {
     description = "Clutter, a library for creating fast, dynamic graphical user interfaces";
 
diff --git a/pkgs/development/libraries/cminpack/default.nix b/pkgs/development/libraries/cminpack/default.nix
new file mode 100644
index 000000000000..f070f2dfaef2
--- /dev/null
+++ b/pkgs/development/libraries/cminpack/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "cminpack-1.1.2";
+  
+  src = fetchurl {
+    url = http://devernay.free.fr/hacks/cminpack/cminpack-1.1.2.tar.gz;
+    sha256 = "0sd8gqk7npyiiiz2jym8q89d9gqx8fig0mnx63swkwmp4lqmmxww";
+  };
+
+  patchPhase = ''
+    sed -i s,/usr/local,$out, Makefile
+  '';
+
+  preInstall = ''
+    ensureDir $out/lib $out/include
+  '';
+
+  meta = {
+    homepage = http://devernay.free.fr/hacks/cminpack/cminpack.html;
+    license = "BSD";
+    description = "Software for solving nonlinear equations and nonlinear least squares problems";
+  };
+
+}
diff --git a/pkgs/development/libraries/coin3d/default.nix b/pkgs/development/libraries/coin3d/default.nix
new file mode 100644
index 000000000000..f676c9abaa00
--- /dev/null
+++ b/pkgs/development/libraries/coin3d/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, mesa }:
+
+stdenv.mkDerivation rec {
+  name = "coin3d-${version}";
+  version = "3.1.3";
+
+  src = fetchurl {
+    url = "http://ftp.coin3d.org/coin/src/all/Coin-${version}.tar.gz";
+    sha256 = "05ylhrcglm81dajbk132l1w892634z2i97x10fm64y1ih72phd2q";
+  };
+
+  buildInputs = [ mesa ];
+
+  meta = {
+    homepage = http://www.coin3d.org/;
+    license = "GPLv2+";
+    description = "High-level, retained-mode toolkit for effective 3D graphics development.";
+
+    maintainers = [ stdenv.lib.maintainers.viric ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/commoncpp2/default.nix b/pkgs/development/libraries/commoncpp2/default.nix
index 81fb723c70ab..0b834a5ddb32 100644
--- a/pkgs/development/libraries/commoncpp2/default.nix
+++ b/pkgs/development/libraries/commoncpp2/default.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.marcweber
                     stdenv.lib.maintainers.ludo
                   ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.allBut "i686-freebsd";
   };
 }
diff --git a/pkgs/development/libraries/cppunit/1.10.nix b/pkgs/development/libraries/cppunit/1.10.nix
new file mode 100644
index 000000000000..546f2bbba1e0
--- /dev/null
+++ b/pkgs/development/libraries/cppunit/1.10.nix
@@ -0,0 +1,12 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "cppunit-1.10.0";
+  
+  src = fetchurl {
+    url = mirror://sf/cppunit/cppunit-1.10.0.tar.gz;
+    sha256 = "08w5ljd3rbz6wzipzxqx1ma779b6k930iwjrg4bckddigrq897bg";
+  };
+
+  patches = [./include-cstdlib.patch];
+}
diff --git a/pkgs/development/libraries/cppunit/include-cstdlib.patch b/pkgs/development/libraries/cppunit/include-cstdlib.patch
new file mode 100644
index 000000000000..8a00c370ce29
--- /dev/null
+++ b/pkgs/development/libraries/cppunit/include-cstdlib.patch
@@ -0,0 +1,12 @@
+diff -rc cppunit-1.10.0/src/cppunit/TypeInfoHelper.cpp cppunit-1.10.0-2/src/cppunit/TypeInfoHelper.cpp
+*** cppunit-1.10.0/src/cppunit/TypeInfoHelper.cpp	2004-02-18 21:45:44.000000000 +0100
+--- cppunit-1.10.0-2/src/cppunit/TypeInfoHelper.cpp	2011-04-13 09:20:57.000000000 +0200
+***************
+*** 1,5 ****
+--- 1,6 ----
+  #include <cppunit/Portability.h>
+  #include <cppunit/extensions/TypeInfoHelper.h>
++ #include <cstdlib>
+  
+  #if CPPUNIT_HAVE_RTTI
+  
diff --git a/pkgs/development/libraries/db4/db4-4.7.nix b/pkgs/development/libraries/db4/db4-4.7.nix
new file mode 100644
index 000000000000..9fb0d6587c0f
--- /dev/null
+++ b/pkgs/development/libraries/db4/db4-4.7.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, cxxSupport ? true, compat185 ? true}:
+
+stdenv.mkDerivation {
+  name = "db4-4.7.25";
+  
+  builder = ./builder.sh;
+  
+  src = fetchurl {
+    url = http://download-east.oracle.com/berkeley-db/db-4.7.25.tar.gz;
+    sha256 = "0gi667v9cw22c03hddd6xd6374l0pczsd56b7pba25c9sdnxjkzi";
+  };
+  
+  configureFlags = [
+    (if cxxSupport then "--enable-cxx" else "--disable-cxx")
+    (if compat185 then "--enable-compat185" else "--disable-compat185")
+  ];
+  
+}
diff --git a/pkgs/development/libraries/db4/db4-4.8.nix b/pkgs/development/libraries/db4/db4-4.8.nix
new file mode 100644
index 000000000000..5b99f068769a
--- /dev/null
+++ b/pkgs/development/libraries/db4/db4-4.8.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, cxxSupport ? true, compat185 ? true}:
+
+stdenv.mkDerivation {
+  name = "db4-4.8.26";
+  
+  builder = ./builder.sh;
+  
+  src = fetchurl {
+    url = http://download-east.oracle.com/berkeley-db/db-4.8.26.tar.gz;
+    sha256 = "0hcxh0kb6m0wk3apjhs57p7b171zzn63rg4l3nkcavygg5gx2mgp";
+  };
+  
+  configureFlags = [
+    (if cxxSupport then "--enable-cxx" else "--disable-cxx")
+    (if compat185 then "--enable-compat185" else "--disable-compat185")
+  ];
+  
+}
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 8f8766fb6cf9..712ef36bdd7c 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, expat, libX11, libICE, libSM, useX11 ? true }:
 
 let
-  version = "1.2.24";
+  version = "1.4.14";
   
   src = fetchurl {
     url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
-    sha256 = "0j2wb79kndq4b1qqr59n1g6s0lm7yp6r9ny3skimadkh9a7p8b7i";
+    sha256 = "0xsqkq2q2hb09dcdsw0y359zvml480h79qvl9g31r7da57y7xwj7";
   };
 
   patches = [ ./ignore-missing-includedirs.patch ];
@@ -27,6 +27,11 @@ in rec {
         sed -i '/SUBDIRS/s/ tools//' Makefile.in
       '';
 
+    # 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";
+
     installFlags = "sysconfdir=$(out)/etc";
   };
 
diff --git a/pkgs/development/libraries/dotconf/default.nix b/pkgs/development/libraries/dotconf/default.nix
new file mode 100644
index 000000000000..9a71393badde
--- /dev/null
+++ b/pkgs/development/libraries/dotconf/default.nix
@@ -0,0 +1,18 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "dotconf-" + version;
+  version = "1.0.13";
+
+  src = fetchurl {
+    url = "http://www.azzit.de/dotconf/download/v1.0/dotconf-1.0.13.tar.gz";
+    sha256 = "0rcvi743jgnrq2p5gknnvsqiv47479y5gyc2g9pz7bp7v7bzlmc9";
+  };
+
+  meta = {
+    description = "A configuration parser library";
+
+    homepage = http://www.azzit.de/dotconf/;
+    license = "LGPLv21+";
+  };
+}
diff --git a/pkgs/development/libraries/dssi/default.nix b/pkgs/development/libraries/dssi/default.nix
new file mode 100644
index 000000000000..9074120d7dec
--- /dev/null
+++ b/pkgs/development/libraries/dssi/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , ladspaH, jackaudio, liblo, alsaLib, qt4, libX11, libsndfile, libSM
+  , libsamplerate, libtool, autoconf, automake, xproto, libICE
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="dssi";
+    version="1.1.0";
+    project="${baseName}";
+    name="${baseName}-${version}";
+    url="mirror://sourceforge/project/${project}/${baseName}/${version}/${name}.tar.gz";
+    hash="0lwvyrsr9dm032rrhxad30k712q3arrbn7g898n3flg26hmw58yf";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A plugin SDK for virtual instruments";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.lgpl21;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://sourceforge.net/projects/dssi/files/dssi/";
+    };
+  };
+}) x
+
diff --git a/pkgs/desktops/kde-4.5/support/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index e72de6c1b258..771ae0dff5e5 100644
--- a/pkgs/desktops/kde-4.5/support/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -1,20 +1,23 @@
 {stdenv, fetchurl, cmake}:
 
 let
-  v = "2.0.15";
+  v = "2.0.16";
 in
 stdenv.mkDerivation {
   name = "eigen-${v}";
+  
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2";
     name = "eigen-${v}.tar.bz2";
-    sha256 = "1a00hqyig4rc7nkz97xv23q7k0vdkzvgd0jkayk61fn9aqcrky79";
+    sha256 = "04lzlhl7r1yqkpq9xabm1v5vgz0z9xqf1k7indgwdw8nfyma3qar";
   };
-  buildInputs = [ cmake ];
-  meta = {
+  
+  buildNativeInputs = [ cmake ];
+  
+  meta = with stdenv.lib; {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
-    license = "LGPL";
+    license = licenses.lgpl3Plus;
     homepage = http://eigen.tuxfamily.org ;
-    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
+    maintainers = with stdenv.lib.maintainers; [ sander urkud raskin ];
   };
 }
diff --git a/pkgs/development/libraries/enet/default.nix b/pkgs/development/libraries/enet/default.nix
index c8c612fe94ea..6df906223830 100644
--- a/pkgs/development/libraries/enet/default.nix
+++ b/pkgs/development/libraries/enet/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "enet-1.3.0";
+  name = "enet-1.3.1";
   
   src = fetchurl {
     url = "http://enet.bespin.org/download/${name}.tar.gz";
-    sha256 = "0b6nv3q546mr1vr74jccd4nsad9zkmjn17kdrqxxnyc944djf310";
+    sha256 = "1faszy5jvxcbjvnqzxaxpcm0rh8xib52pgn2zm1vyc9gg957hw99";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/exosip/default.nix b/pkgs/development/libraries/exosip/default.nix
new file mode 100644
index 000000000000..905b2648dbd3
--- /dev/null
+++ b/pkgs/development/libraries/exosip/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl, libosip, openssl, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  version = "3.5.0";
+  src = fetchurl {
+    url = http://download.savannah.gnu.org/releases/exosip/libeXosip2-3.5.0.tar.gz;
+    sha256 = "1z0s8qxxvyaksnnb9srfi3aipkkb7c1rsxdywl9xyxgnlri0w0a6";
+  };
+  name = "libexosip2-${version}";
+
+  buildInputs = [ libosip openssl pkgconfig ];
+      
+  meta = {
+    license = "GPLv2+";
+    description = "Library that hides the complexity of using the SIP protocol";
+  };
+}
diff --git a/pkgs/development/libraries/expat/cve-2009-3560.patch b/pkgs/development/libraries/expat/cve-2009-3560.patch
new file mode 100644
index 000000000000..71da9e393519
--- /dev/null
+++ b/pkgs/development/libraries/expat/cve-2009-3560.patch
@@ -0,0 +1,18 @@
+From: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/expat/files/expat-2.0.1-CVE-2009-3560-revised.patch?revision=1.1
+
+http://nvd.nist.gov/nvd.cfm?cvename=CVE-2009-3560
+http://bugs.gentoo.org/show_bug.cgi?id=303727
+http://cvs.fedoraproject.org/viewvc/rpms/expat/devel/
+
+--- a/lib/xmlparse.c
++++ b/lib/xmlparse.c
+@@ -3703,6 +3703,9 @@ doProlog(XML_Parser parser,
+         return XML_ERROR_UNCLOSED_TOKEN;
+       case XML_TOK_PARTIAL_CHAR:
+         return XML_ERROR_PARTIAL_CHAR;
++      case -XML_TOK_PROLOG_S:
++        tok = -tok;
++        break;
+       case XML_TOK_NONE:
+ #ifdef XML_DTD
+         /* for internal PE NOT referenced between declarations */
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index cd546a58169c..35a2945207b4 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -1,7 +1,17 @@
-{stdenv, fetchurl}: stdenv.mkDerivation {
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
   name = "expat-2.0.1";
+  
   src = fetchurl {
     url = mirror://sourceforge/expat/expat-2.0.1.tar.gz;
     sha256 = "14sy5qx9hgjyfs743iq8ywldhp5w4n6cscqf2p4hgrw6vys60xl4";
   };
+
+  patches = [ ./cve-2009-3560.patch ];
+
+  meta = {
+    homepage = http://expat.sourceforge.net/;
+    description = "A stream-oriented XML parser library written in C";
+  };
 }
diff --git a/pkgs/development/libraries/faac/default.nix b/pkgs/development/libraries/faac/default.nix
index f133217b202a..732b591353c8 100644
--- a/pkgs/development/libraries/faac/default.nix
+++ b/pkgs/development/libraries/faac/default.nix
@@ -1,16 +1,14 @@
-{ stdenv, fetchurl, autoconf, automake, libtool }:
+{ stdenv, fetchurl, mp4v2 }:
 
-stdenv.mkDerivation {
-  name = "faac-1.26";
+stdenv.mkDerivation rec {
+  name = "faac-1.28";
 
   src = fetchurl {
-    url = http://downloads.sourceforge.net/faac/faac-1.26.tar.gz;
-    sha256 = "0ld9d8mn3yp90japzkqkicmjcggi7d8y9gn7cl1jdsb74bif4j2b";
+    url = "http://downloads.sourceforge.net/faac/${name}.tar.gz";
+    sha256 = "1pqr7nf6p2r283n0yby2czd3iy159gz8rfinkis7vcfgyjci2565";
   };
 
-  preConfigure = "./bootstrap";
-
-  buildInputs = [ autoconf automake libtool ];
+  buildInputs = [ mp4v2 ];
 
   meta = {
     description = "Open source MPEG-4 and MPEG-2 AAC encoder";
diff --git a/pkgs/development/libraries/fcgi/default.nix b/pkgs/development/libraries/fcgi/default.nix
index 81474b62dc6f..6bea14f38375 100644
--- a/pkgs/development/libraries/fcgi/default.nix
+++ b/pkgs/development/libraries/fcgi/default.nix
@@ -4,10 +4,12 @@ stdenv.mkDerivation rec {
   name = "fcgi-2.4.0";
 
   src = fetchurl {
-    url = http://www.fastcgi.com/dist/fcgi.tar.gz;
+    url = "http://www.fastcgi.com/dist/${name}.tar.gz";
     sha256 = "1f857wnl1d6jfrgfgfpz3zdaj8fch3vr13mnpcpvy8bang34bz36";
   };
 
+  patches = [ ./gcc-4.4.diff ];
+
   meta = { 
     description = "FastCGI  is a language independent, scalable, open extension to CG";
     homepage = http://www.fastcgi.com/;
diff --git a/pkgs/development/libraries/fcgi/gcc-4.4.diff b/pkgs/development/libraries/fcgi/gcc-4.4.diff
new file mode 100644
index 000000000000..c6806c12c067
--- /dev/null
+++ b/pkgs/development/libraries/fcgi/gcc-4.4.diff
@@ -0,0 +1,12 @@
+diff --git a/libfcgi/fcgio.cpp b/libfcgi/fcgio.cpp
+index 95e28ca..a7eda0e 100644
+--- a/libfcgi/fcgio.cpp
++++ b/libfcgi/fcgio.cpp
+@@ -23,6 +23,7 @@
+ #endif
+ 
+ #include <limits.h>
++#include <cstdio>
+ #include "fcgio.h"
+ 
+ using std::streambuf;
diff --git a/pkgs/development/libraries/ffmpeg/0.6.90.nix b/pkgs/development/libraries/ffmpeg/0.6.90.nix
new file mode 100644
index 000000000000..31e00b5cd789
--- /dev/null
+++ b/pkgs/development/libraries/ffmpeg/0.6.90.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, pkgconfig, yasm
+, mp3Support ? true, lame ? null
+, speexSupport ? true, speex ? null
+, theoraSupport ? true, libtheora ? null
+, vorbisSupport ? true, libvorbis ? null
+, vpxSupport ? false, libvpx ? null
+, x264Support ? true, x264 ? null
+, xvidSupport ? true, xvidcore ? null
+, faacSupport ? false, faac ? null
+}:
+
+assert speexSupport -> speex != null;
+assert theoraSupport -> libtheora != null;
+assert vorbisSupport -> libvorbis != null;
+assert vpxSupport -> libvpx != null;
+assert x264Support -> x264 != null;
+assert xvidSupport -> xvidcore != null;
+assert faacSupport -> faac != null;
+
+stdenv.mkDerivation rec {
+  name = "ffmpeg-0.6.90-rc0";
+
+  src = fetchurl {
+    url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
+    sha256 = "1xn9fmpq2cbf1bx1gxbxnas8fq02gb8bmvvg5vjjxyw9lz5zw49f";
+  };
+
+  # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
+  # the resulting library is GPL'ed, so it can only be used in GPL'ed
+  # applications.
+  configureFlags = [
+    "--enable-gpl"
+    "--enable-postproc"
+    "--enable-swscale"
+    "--disable-ffserver"
+    "--disable-ffplay"
+    "--enable-shared"
+    "--enable-runtime-cpudetect"
+  ]
+    ++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
+    ++ stdenv.lib.optional speexSupport "--enable-libspeex"
+    ++ stdenv.lib.optional theoraSupport "--enable-libtheora"
+    ++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
+    ++ stdenv.lib.optional vpxSupport "--enable-libvpx"
+    ++ stdenv.lib.optional x264Support "--enable-libx264"
+    ++ stdenv.lib.optional xvidSupport "--enable-libxvid"
+    ++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
+
+  buildInputs = [ pkgconfig lame yasm ]
+    ++ stdenv.lib.optional mp3Support lame
+    ++ stdenv.lib.optional speexSupport speex
+    ++ stdenv.lib.optional theoraSupport libtheora
+    ++ stdenv.lib.optional vorbisSupport libvorbis
+    ++ stdenv.lib.optional vpxSupport libvpx
+    ++ stdenv.lib.optional x264Support x264
+    ++ stdenv.lib.optional xvidSupport xvidcore
+    ++ stdenv.lib.optional faacSupport faac;
+
+  crossAttrs = {
+    dontSetConfigureCross = true;
+    configureFlags = configureFlags ++ [
+      "--cross-prefix=${stdenv.cross.config}-"
+      "--enable-cross-compile"
+      "--target_os=linux"
+      "--arch=${stdenv.cross.arch}"
+      ];
+  };
+
+  meta = {
+    homepage = http://www.ffmpeg.org/;
+    description = "A complete, cross-platform solution to record, convert and stream audio and video";
+  };
+}
diff --git a/pkgs/development/libraries/ffmpeg/default.nix b/pkgs/development/libraries/ffmpeg/default.nix
index d9f9d0af01de..b77b52a5e657 100644
--- a/pkgs/development/libraries/ffmpeg/default.nix
+++ b/pkgs/development/libraries/ffmpeg/default.nix
@@ -1,12 +1,28 @@
-{stdenv, fetchurl, faad2, libtheora, speex, libvorbis, x264, pkgconfig, xvidcore, lame, yasm
-, vpxSupport ? false, libvpx ? null}:
+{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2
+, mp3Support ? true, lame ? null
+, speexSupport ? true, speex ? null
+, theoraSupport ? true, libtheora ? null
+, vorbisSupport ? false, libvorbis ? null
+, vpxSupport ? false, libvpx ? null
+, x264Support ? true, x264 ? null
+, xvidSupport ? false, xvidcore ? null
+, faacSupport ? false, faac ? null
+}:
 
-stdenv.mkDerivation {
-  name = "ffmpeg-0.6";
+assert speexSupport -> speex != null;
+assert theoraSupport -> libtheora != null;
+assert vorbisSupport -> libvorbis != null;
+assert vpxSupport -> libvpx != null;
+assert x264Support -> x264 != null;
+assert xvidSupport -> xvidcore != null;
+assert faacSupport -> faac != null;
+
+stdenv.mkDerivation rec {
+  name = "ffmpeg-0.8.1";
   
   src = fetchurl {
-    url = http://www.ffmpeg.org/releases/ffmpeg-0.6.tar.bz2;
-    sha256 = "08419kg2i8j7x4mb3vm6a73fdszivj6lzh7lypxby30gfnkblc37";
+    url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
+    sha256 = "0vdq6bmrsi55p1l3dddiwyqsspb3l5dgqb87lysf5cz3sjxcfw2v";
   };
   
   # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
@@ -18,20 +34,39 @@ stdenv.mkDerivation {
     "--enable-swscale"
     "--disable-ffserver"
     "--disable-ffplay"
-    "--enable-libfaad"
     "--enable-shared"
-    "--enable-libtheora"
-    "--enable-libvorbis"
-    "--enable-libspeex"
-    "--enable-libx264"
-    "--enable-libxvid"
-    "--enable-libmp3lame"
     "--enable-runtime-cpudetect"
-  ] ++
-    stdenv.lib.optional vpxSupport "--enable-libvpx";
+  ]
+    ++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
+    ++ stdenv.lib.optional speexSupport "--enable-libspeex"
+    ++ stdenv.lib.optional theoraSupport "--enable-libtheora"
+    ++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
+    ++ stdenv.lib.optional vpxSupport "--enable-libvpx"
+    ++ stdenv.lib.optional x264Support "--enable-libx264"
+    ++ stdenv.lib.optional xvidSupport "--enable-libxvid"
+    ++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
+
+  buildInputs = [ pkgconfig lame yasm zlib bzip2 ]
+    ++ stdenv.lib.optional mp3Support lame
+    ++ stdenv.lib.optional speexSupport speex
+    ++ stdenv.lib.optional theoraSupport libtheora
+    ++ stdenv.lib.optional vorbisSupport libvorbis
+    ++ stdenv.lib.optional vpxSupport libvpx
+    ++ stdenv.lib.optional x264Support x264
+    ++ stdenv.lib.optional xvidSupport xvidcore
+    ++ stdenv.lib.optional faacSupport faac;
 
-  buildInputs = [ faad2 libtheora speex libvorbis x264 pkgconfig xvidcore lame yasm ]
-    ++ stdenv.lib.optional vpxSupport libvpx;
+  enableParallelBuilding = true;
+    
+  crossAttrs = {
+    dontSetConfigureCross = true;
+    configureFlags = configureFlags ++ [
+      "--cross-prefix=${stdenv.cross.config}-"
+      "--enable-cross-compile"
+      "--target_os=linux"
+      "--arch=${stdenv.cross.arch}"
+      ];
+  };
 
   meta = {
     homepage = http://www.ffmpeg.org/;
diff --git a/pkgs/development/libraries/flann/default.nix b/pkgs/development/libraries/flann/default.nix
new file mode 100644
index 000000000000..eaf4ed8836e3
--- /dev/null
+++ b/pkgs/development/libraries/flann/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, unzip, cmake, python}:
+
+stdenv.mkDerivation {
+  name = "flann-1.6.8";
+  
+  src = fetchurl {
+    url = http://people.cs.ubc.ca/~mariusm/uploads/FLANN/flann-1.6.8-src.zip;
+    sha256 = "0ag9k821jy0983gjrfsjnqkl5axklcih0qkpfy72h3643nin0f50";
+  };
+
+  buildInputs = [ unzip cmake python ];
+
+  meta = {
+    homepage = http://people.cs.ubc.ca/~mariusm/flann/;
+    license = "BSD";
+    description = "Fast approximate nearest neighbor searches in high dimensional spaces";
+  };
+}
diff --git a/pkgs/development/libraries/flite/default.nix b/pkgs/development/libraries/flite/default.nix
new file mode 100644
index 000000000000..6db0dc240ba3
--- /dev/null
+++ b/pkgs/development/libraries/flite/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "flite-1.4";
+
+  src = fetchurl {
+    url = "http://www.speech.cs.cmu.edu/flite/packed/${name}/${name}-release.tar.bz2";
+    sha256 = "036dagsydi0qh71ayi6jshfi3ik2md1az3gpi42md9pc18b65ij5";
+  };
+
+  buildInputs = [ pkgconfig ];
+
+  configureFlags = ''
+    --enable-shared
+  '';
+
+  meta = {
+    description = "A small, fast run-time speech synthesis engine";
+    homepage = http://www.speech.cs.cmu.edu/flite/index.html; 
+    license = "free-non-copyleft";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
+
diff --git a/pkgs/development/libraries/fltk/default.nix b/pkgs/development/libraries/fltk/default.nix
index 6b6cb2ba8790..bb835bb9c290 100644
--- a/pkgs/development/libraries/fltk/default.nix
+++ b/pkgs/development/libraries/fltk/default.nix
@@ -4,11 +4,11 @@
 let inherit (composableDerivation) edf; in
 
 composableDerivation.composableDerivation {} rec {
-  name = "fltk-2.0.x-r6970";
+  name = "fltk-2.0.x-alpha-r8550";
 
   src = fetchurl {
     url = "ftp://ftp.easysw.com/pub/fltk/snapshots/${name}.tar.bz2";
-    sha256 = "0d88c16967ca40b26a70736b0d6874046c31a9e74816806816252e4eb72a84a3";
+    sha256 = "0y9fazsv61j8dkg9aiinnw4nd68h7zxmvapmygrl4rq5ywqygng7";
   };
 
   propagatedBuildInputs = [ x11 inputproto libXi freeglut ];
diff --git a/pkgs/development/libraries/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix
index b2118eb1da42..ec381dc433a6 100644
--- a/pkgs/development/libraries/freeimage/default.nix
+++ b/pkgs/development/libraries/freeimage/default.nix
@@ -1,9 +1,9 @@
 {stdenv, fetchurl, unzip}:
 stdenv.mkDerivation {
-  name = "freeimage-3.14.1";
+  name = "freeimage-3.15.0";
   src = fetchurl {
-    url = mirror://sourceforge/freeimage/FreeImage3141.zip;
-    sha256 = "0rgzdjwzd64z5z9j4bq075h3kfqjk8ab2dwswy0lnzw9jvmbbifm";
+    url = mirror://sourceforge/freeimage/FreeImage3150.zip;
+    sha256 = "0diyj862sdqwjqb7v2nccf8cl6886v937jkw6dgszp86qpwsfx3n";
   };
   buildInputs = [ unzip ];
   prePatch = ''
@@ -12,7 +12,6 @@ stdenv.mkDerivation {
         -e 's@ldconfig@echo not running ldconfig@' \
         -i Makefile.gnu
   '';
-  patches = [ ./memset.patch ];
   preInstall = "mkdir -p $out/include $out/lib";
 
   meta = {
diff --git a/pkgs/development/libraries/freeimage/memset.patch b/pkgs/development/libraries/freeimage/memset.patch
deleted file mode 100644
index 91eabf10fdc8..000000000000
--- a/pkgs/development/libraries/freeimage/memset.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -urN a/Source/OpenEXR/Imath/ImathMatrix.h b/Source/OpenEXR/Imath/ImathMatrix.h
---- a/Source/OpenEXR/Imath/ImathMatrix.h 2010-07-17 12:48:40.000000000 +0200
-+++ b/Source/OpenEXR/Imath/ImathMatrix.h 2010-09-03 18:38:37.138598422 +0200
-@@ -49,6 +49,7 @@
- #include "ImathVec.h"

- #include "ImathShear.h"

- 

-+#include <string.h>

- #include <iostream>

- #include <iomanip>

- 

diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index cac14642a3f0..895d2585b674 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl
+{ stdenv, fetchurl, gnumake
 , # 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
 }:
 
-stdenv.mkDerivation rec {
-  name = "freetype-2.4.1";
+stdenv.mkDerivation (rec {
+  name = "freetype-2.4.4";
   
   src = fetchurl {
     url = "mirror://sourceforge/freetype/${name}.tar.bz2";
-    sha256 = "0gmyk6w7rbiiw7zjbyvkvp8wfl7q9n5576ifqq67qwsjdzlm9ja5";
+    sha256 = "1vqg93473j6jma1bxms7mczk32j8is0g9inkcmmmqdsdvk3q30jb";
   };
 
   configureFlags = "--disable-static";
@@ -26,4 +26,11 @@ stdenv.mkDerivation rec {
     homepage = http://www.freetype.org/;
     license = "GPLv2+"; # or the FreeType License (BSD + advertising clause)
   };
-}
\ No newline at end of file
+}
+
+//
+
+# FreeType requires GNU Make, which is not part of stdenv on FreeBSD.
+(if stdenv.system == "i686-freebsd"
+ then { buildInputs = [ gnumake ]; }
+ else {}))
diff --git a/pkgs/development/libraries/fribidi/default.nix b/pkgs/development/libraries/fribidi/default.nix
index c29900582c6c..71e5b91a26fa 100644
--- a/pkgs/development/libraries/fribidi/default.nix
+++ b/pkgs/development/libraries/fribidi/default.nix
@@ -1,11 +1,12 @@
 {stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "fribidi-0.10.9";
+stdenv.mkDerivation rec {
+  name = "fribidi-${version}";
+  version = "0.19.2";
   
   src = fetchurl {
-    url = http://fribidi.org/download/fribidi-0.10.9.tar.gz;
-    sha256 = "1d479wbygqmxcsyg3g7d6nmzlaa3wngy21ci5qcc5nhbyn97bz5q";
+    url = "http://fribidi.org/download/${name}.tar.gz";
+    sha256 = "0xs1yr22zw9a1qq9ygsrqam0vzqdvb0ndzvjb3i2zda8drc93ks9";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/funambol/default.nix b/pkgs/development/libraries/funambol/default.nix
new file mode 100644
index 000000000000..589ffaba3f96
--- /dev/null
+++ b/pkgs/development/libraries/funambol/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, zlib, curl, automake, libtool, autoconf, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "funambol-client-cpp-9.0.0";
+
+  src = fetchurl {
+    url = mirror://sourceforge/funambol/funambol-client-sdk-9.0.0.zip;
+    sha256 = "1667gahz30i5r8kbv7w415z0hbgm6f6pln1137l5skapi1if6r73";
+  };
+
+  postUnpack = ''sourceRoot+="/sdk/cpp/build/autotools"'';
+
+  # Upstream guys forgotten to run autoreconf...
+  preConfigure=''
+    libtoolize -c -f
+    aclocal
+    autoheader
+    automake -a -c -f --add-missing
+    autoconf -f'';
+
+  propagatedBuildInputs = [ zlib curl ];
+
+  buildNativeInputs = [ automake libtool autoconf unzip ];
+
+  meta = {
+    description = "SyncML client sdk by Funambol project";
+    homepage = http://www.funambol.com;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index 6c506df3f89f..c72a619b66e4 100644
--- a/pkgs/development/libraries/gamin/default.nix
+++ b/pkgs/development/libraries/gamin/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python, pkgconfig, glib }:
 
 stdenv.mkDerivation rec {
-  name = "gamin-0.1.9";
+  name = "gamin-0.1.10";
 
   src = fetchurl {
     url = "http://www.gnome.org/~veillard/gamin/sources/${name}.tar.gz";
-    sha256 = "0fgjfyr0nlkpdxj94a4qfm82wypljdyv1b6l56v7i9jdx0hcdqhr";
+    sha256 = "18cr51y5qacvs2fc2p1bqv32rs8bzgs6l67zhasyl45yx055y218";
   };
 
   buildInputs = [ python pkgconfig glib ];
diff --git a/pkgs/development/libraries/gdk-pixbuf/2.22.x.nix b/pkgs/development/libraries/gdk-pixbuf/2.22.x.nix
new file mode 100644
index 000000000000..e8e82367cd79
--- /dev/null
+++ b/pkgs/development/libraries/gdk-pixbuf/2.22.x.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, xlibs }:
+
+stdenv.mkDerivation rec {
+  name = "gdk-pixbuf-2.22.1";
+  
+  src = fetchurl {
+    url = "mirror://gnome/sources/gdk-pixbuf/2.22/${name}.tar.bz2";
+    sha256 = "6ce87eda24af9362307b2593c154d0b660f4e26d0abf2e71d46d0ddd55fd953d";
+  };
+
+  # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
+  buildInputs = [ pkgconfig glib libtiff libjpeg libpng xlibs.xlibs ];
+  
+  postInstall = "rm -rf $out/share/gtk-doc";
+  
+  meta = {
+    description = "A library for image loading and manipulation";
+
+    homepage = http://library.gnome.org/devel/gdk-pixbuf/;
+
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
deleted file mode 100644
index bdeea121b43e..000000000000
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, gtk, libtiff, libjpeg, libpng}:
-
-stdenv.mkDerivation rec {
-  name = "gdk-pixbuf-0.22.0";
-
-  src = fetchurl {
-    url = "ftp://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/0.22/${name}.tar.bz2";
-    md5 = "05fcb68ceaa338614ab650c775efc2f2";
-  };
-
-  buildInputs = [libtiff libjpeg libpng];
-  propagatedBuildInputs = [gtk];
-}
diff --git a/pkgs/development/libraries/gdome2/default.nix b/pkgs/development/libraries/gdome2/default.nix
new file mode 100644
index 000000000000..415a98029cc6
--- /dev/null
+++ b/pkgs/development/libraries/gdome2/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, pkgconfig, glib, libxml2, gtkdoc}:
+
+let
+  pname = "gdome2";
+  version = "0.8.1";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://gdome2.cs.unibo.it/tarball/${pname}-${version}.tar.gz";
+    sha256 = "0hyms5s3hziajp3qbwdwqjc2xcyhb783damqg8wxjpwfxyi81fzl";
+  };
+
+  buildInputs = [pkgconfig glib libxml2 gtkdoc];
+  propagatedBuildInputs = [glib libxml2];
+
+  meta = {
+    homepage = http://gdome2.cs.unibo.it/;
+    description = "DOM C library developped for the Gnome project";
+    license = "LGPLv2.1+";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix
new file mode 100644
index 000000000000..076c821ca953
--- /dev/null
+++ b/pkgs/development/libraries/geoclue/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , dbus, dbus_glib, glib, pkgconfig, libxml2, gnome, libxslt
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["gnome"];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames))
+    ++ [gnome.GConf];
+  sourceInfo = rec {
+    baseName="geoclue";
+    version="0.12.0";
+    name="${baseName}-${version}";
+    url="http://folks.o-hand.com/jku/geoclue-releases/${name}.tar.gz";
+    hash="15j619kvmdgj2hpma92mkxbzjvgn8147a7500zl3bap9g8bkylqg";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  propagatedBuildInputs = [a.dbus a.glib a.dbus_glib];
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "Geolocation framework and some data providers";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.lgpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://folks.o-hand.com/jku/geoclue-releases/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/ggz_base_libs/default.nix b/pkgs/development/libraries/ggz_base_libs/default.nix
new file mode 100644
index 000000000000..b74aa3447a3c
--- /dev/null
+++ b/pkgs/development/libraries/ggz_base_libs/default.nix
@@ -0,0 +1,53 @@
+x@{builderDefsPackage
+  , intltool, openssl, expat, libgcrypt
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="ggz-base-libs";
+    version="0.99.5";
+    name="${baseName}-snapshot-${version}";
+    url="http://mirrors.ibiblio.org/pub/mirrors/ggzgamingzone/ggz/snapshots/${name}.tar.gz";
+    hash="1cw1vg0fbj36zyggnzidx9cbjwfc1yr4zqmsipxnvns7xa2awbdk";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+
+  configureFlags = [
+    "--with-ssl-dir=${a.openssl}/"
+    "--with-tls"
+  ];
+      
+  meta = {
+    description = "GGZ Gaming zone libraries";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.ggzgamingzone.org/releases/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/glib/2.24.x.nix b/pkgs/development/libraries/glib/2.24.x.nix
index 941697875b0c..db7dbdd5c185 100644
--- a/pkgs/development/libraries/glib/2.24.x.nix
+++ b/pkgs/development/libraries/glib/2.24.x.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "glib-2.24.1";
+  name = "glib-2.24.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/2.24/${name}.tar.bz2";
-    sha256 = "014c3da960bf17117371075c16495f05f36501db990851ceea658f15d2ea6d04";
+    sha256 = "030nl16xa2ps9bklm2l81w0yamsrj5a0x7rp4h9dshinpld55srs";
   };
 
   buildInputs = [ pkgconfig gettext ]
diff --git a/pkgs/development/libraries/glib/2.22.x.nix b/pkgs/development/libraries/glib/2.28.x.nix
index f9129f7ae4a5..bae405a24267 100644
--- a/pkgs/development/libraries/glib/2.22.x.nix
+++ b/pkgs/development/libraries/glib/2.28.x.nix
@@ -1,20 +1,24 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconv}:
+{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "glib-2.22.5";
+  name = "glib-2.28.8";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glib/2.22/${name}.tar.bz2";
-    sha256 = "802be9c9ffeb631725ffd6ed35af0af309776729a7fab4fcb48f2b0b8fe7245b";
+    url = "mirror://gnome/sources/glib/2.28/${name}.tar.bz2";
+    sha256 = "222f3055d6c413417b50901008c654865e5a311c73f0ae918b0a9978d1f9466f";
   };
 
-  buildInputs = [pkgconfig gettext perl]
+  # configure script looks for d-bus but it is only needed for tests
+  buildInputs = [ pkgconfig gettext ]
                 ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
+  buildNativeInputs = [ perl ];
 
-  # The nbd package depends on a static version of this library; hence
-  # the default configure flag --disable-static is switched off.
-  dontDisableStatic = true;
-  configureFlags = "--enable-static --enable-shared";
+  propagatedBuildInputs = [ zlib ];
+
+  # glib buildsystem fails to find python, thus hardcodes python2.4 in #!
+  postInstall = ''
+    rm -rvf $out/share/gtk-doc
+    sed -e 's@python2\.4@python@' -i $out/bin/gtester-report'';
 
   meta = {
     description = "GLib, a C library of programming buildings blocks";
diff --git a/pkgs/development/libraries/glibc-2.5/binutils-ld.patch b/pkgs/development/libraries/glibc-2.5/binutils-ld.patch
new file mode 100644
index 000000000000..4cd7ab3cec34
--- /dev/null
+++ b/pkgs/development/libraries/glibc-2.5/binutils-ld.patch
@@ -0,0 +1,27 @@
+From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001
+From: Ulrich Drepper <drepper@redhat.com>
+Date: Sat, 31 Jan 2009 00:21:15 +0000
+Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to
+
+	newer linker scripts.
+---
+ ChangeLog    |    5 +++++
+ elf/Makefile |    4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 8079fe9..e44ff1d 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
+ 		  $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 |	\
+ 		  LC_ALL=C \
+ 		  sed -e '/^=========/,/^=========/!d;/^=========/d'	\
+-		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
++		      -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+ 		  > $@.lds
+ 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
+ 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
+--
+1.6.4
+
diff --git a/pkgs/development/libraries/glibc-2.5/builder.sh b/pkgs/development/libraries/glibc-2.5/builder.sh
index 4cd0132e3700..bc80af83b926 100644
--- a/pkgs/development/libraries/glibc-2.5/builder.sh
+++ b/pkgs/development/libraries/glibc-2.5/builder.sh
@@ -19,6 +19,9 @@ preConfigure() {
             --replace "@PWD@" "pwd"
     done
 
+    # Fix shell code that tries to determine whether GNU ld is recent enough.
+    substituteInPlace configure --replace '2.1[3-9]*)' '2.1[3-9]*|2.[2-9][0-9]*)'
+
     mkdir ../build
     cd ../build
 
diff --git a/pkgs/development/libraries/glibc-2.5/default.nix b/pkgs/development/libraries/glibc-2.5/default.nix
index 83447d8fe8a9..8b8c204a4803 100644
--- a/pkgs/development/libraries/glibc-2.5/default.nix
+++ b/pkgs/development/libraries/glibc-2.5/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation {
     md5 = "1fb29764a6a650a4d5b409dda227ac9f";
   };
 
-  patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ./glibc-inline.patch ./x86-fnstsw.patch ];
+  patches = [ ./glibc-pwd.patch ./glibc-getcwd-param-MAX.patch ./glibc-inline.patch
+              ./x86-fnstsw.patch ./binutils-ld.patch ./make-3-82-fix.patch ];
 
   inherit kernelHeaders installLocales;
 
diff --git a/pkgs/development/libraries/glibc-2.5/make-3-82-fix.patch b/pkgs/development/libraries/glibc-2.5/make-3-82-fix.patch
new file mode 100644
index 000000000000..816e0aa528be
--- /dev/null
+++ b/pkgs/development/libraries/glibc-2.5/make-3-82-fix.patch
@@ -0,0 +1,14 @@
+--- glibc-2.5/manual/Makefile.orig	2011-01-26 17:03:14.000000000 +0100
++++ glibc-2.5/manual/Makefile	2011-01-26 17:04:30.000000000 +0100
+@@ -232,7 +232,10 @@
+ .PHONY: stubs
+ stubs: $(objpfx)stubs
+ endif
+-$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
++$(objpfx)stubs ../po/manual.pot:
++	$(make-target-directory)
++	touch $@
++$(objpfx)stamp%:
+ 	$(make-target-directory)
+ 	touch $@
+ 
diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix
index 1970ab57c9b6..5b3d51d19767 100644
--- a/pkgs/development/libraries/glpk/default.nix
+++ b/pkgs/development/libraries/glpk/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "glpk-4.45";
+  name = "glpk-4.46";
 
   src = fetchurl {
     url = "mirror://gnu/glpk/${name}.tar.gz";
-    sha256 = "13797cvyrvhga22klap9y370dlbnh40z5cf1dfkdjdj47mhwn1wj";
+    sha256 = "0hijkq44yxbq017wxqh441zz2rpdap6x1brp122i6s7hca147gpv";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/gmime/2.2.x.nix b/pkgs/development/libraries/gmime/2.2.x.nix
deleted file mode 100644
index dc95dd2019de..000000000000
--- a/pkgs/development/libraries/gmime/2.2.x.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, zlib }:
-
-stdenv.mkDerivation rec {
-  name = "gmime-2.2.26";
-  
-  src = fetchurl {
-    url = "mirror://gnome/sources/gmime/2.2/${name}.tar.gz";
-    sha256 = "16inhq6symym9n71kxcndjwrxs2xrz63idvy64yc486wlg54aqfc";
-  };
-  
-  buildInputs = [ pkgconfig glib zlib ];
-
-  meta = {
-    homepage = http://spruce.sourceforge.net/gmime/;
-    description = "A C/C++ library for manipulating MIME messages";
-  };
-}
diff --git a/pkgs/development/libraries/gmime/default.nix b/pkgs/development/libraries/gmime/default.nix
index bd94a2633d4a..02145d08c289 100644
--- a/pkgs/development/libraries/gmime/default.nix
+++ b/pkgs/development/libraries/gmime/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "gmime-2.4.17";
+  name = "gmime-2.4.24";
   
   src = fetchurl {
     url = "mirror://gnome/sources/gmime/2.4/${name}.tar.gz";
-    sha256 = "1l1pbk0yrr7zwl90aabdhw0f9i4m6ragsfyk5qwg0hzk21abz9wd";
+    sha256 = "2f538d68e215f075d16575a6da9acb87983db9e2df0d7d403858048881a0dd15";
   };
   
   buildInputs = [ pkgconfig glib zlib ];
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://spruce.sourceforge.net/gmime/;
     description = "A C/C++ library for manipulating MIME messages";
+    maintainers = [ stdenv.lib.maintainers.chaoflow ];
   };
 }
diff --git a/pkgs/development/libraries/gmp/4.nix b/pkgs/development/libraries/gmp/4.nix
index c5a59045bbe9..4473e28585d9 100644
--- a/pkgs/development/libraries/gmp/4.nix
+++ b/pkgs/development/libraries/gmp/4.nix
@@ -4,7 +4,7 @@ let
   staticFlags = if static then " --enable-static --disable-shared" else "";
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "gmp-4.3.2";
 
   src = fetchurl {
@@ -16,7 +16,14 @@ stdenv.mkDerivation rec {
 
   # Prevent the build system from using sub-architecture-specific
   # instructions (e.g., SSE2 on i686).
-  preConfigure = "ln -sf configfsf.guess config.guess";
+  #
+  # This is not a problem for Apple machines, which are all alike.  In
+  # addition, `configfsf.guess' would return `i386-apple-darwin10.2.0' on
+  # `x86_64-darwin', leading to a 32-bit ABI build, which is undesirable.
+  preConfigure =
+    if !stdenv.isDarwin
+    then "ln -sf configfsf.guess config.guess"
+    else ''echo "Darwin host is `./config.guess`."'';
 
   configureFlags = (if cxx then "--enable-cxx" else "--disable-cxx") +
       staticFlags;
@@ -57,3 +64,10 @@ stdenv.mkDerivation rec {
     platforms = stdenv.lib.platforms.all;
   };
 }
+
+//
+
+# Don't run the native `strip' when cross-compiling.
+(if (stdenv ? cross)
+ then { dontStrip = true; }
+ else { }))
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 04676611245d..2a0fe3715b91 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -1,30 +1,33 @@
-{ fetchurl, stdenv, zlib, lzo, libtasn1, libgcrypt
+{ fetchurl, stdenv, xz, zlib, lzo, libtasn1, nettle
 , guileBindings, guile }:
 
 assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
 
-  name = "gnutls-2.10.4";
+  name = "gnutls-3.0.1";
 
   src = fetchurl {
-    url = "mirror://gnu/gnutls/${name}.tar.bz2";
-    sha256 = "1j2zfjipvzqfamyygndckjksizb5dd7f9wazvfciwrzya1jf7gxq";
+    url = "mirror://gnu/gnutls/${name}.tar.xz";
+    sha256 = "1z3dqjv8zvma2adbwbcw704zf91hazz8ilmxy91gkrdpi5z2kpz2";
   };
 
+  patches = [ ./fix-guile-priorities-test.patch ];
+
   configurePhase = ''
     ./configure --prefix="$out"                                 \
       --disable-dependency-tracking --enable-fast-install       \
+      --without-p11-kit                                         \
       --with-lzo --with-libtasn1-prefix="${libtasn1}"		\
       ${if guileBindings
         then "--enable-guile --with-guile-site-dir=\"$out/share/guile/site\""
         else ""}
   '';
 
-  buildInputs = [ zlib lzo libtasn1 ]
+  buildInputs = [ xz zlib lzo ]
     ++ stdenv.lib.optional guileBindings guile;
 
-  propagatedBuildInputs = [ libgcrypt ];
+  propagatedBuildInputs = [ nettle libtasn1 ];
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/gnutls/fix-guile-priorities-test.patch b/pkgs/development/libraries/gnutls/fix-guile-priorities-test.patch
new file mode 100644
index 000000000000..538cb6f8e419
--- /dev/null
+++ b/pkgs/development/libraries/gnutls/fix-guile-priorities-test.patch
@@ -0,0 +1,80 @@
+commit 10115e3fb9c36abcce95bd8f74d212d068cbddce (HEAD, refs/heads/gnutls_3_0_x)
+Author: Ludovic Courtès <ludo@gnu.org>
+Date:   Mon Aug 22 18:17:10 2011 +0200
+
+    guile: Fix `priorities' test to use `run-test'.
+    
+    This is a followup to commit cd7b8102316cd4151356c4b2b7909c7435593890
+    ("guile: Fix tests to match the `exit' behavior introduced in Guile
+    2.0.1.").
+
+	Modified guile/tests/priorities.scm
+diff --git a/guile/tests/priorities.scm b/guile/tests/priorities.scm
+index 1ee072b..2af837e 100644
+--- a/guile/tests/priorities.scm
++++ b/guile/tests/priorities.scm
+@@ -24,6 +24,8 @@
+ ;;;
+ 
+ (use-modules (gnutls)
++             (gnutls build tests)
++             (srfi srfi-1)
+              (srfi srfi-26))
+ 
+ (define %valid-priority-strings
+@@ -41,10 +43,7 @@
+     ("NONE:+VERS-TLS-ALL:+AES-128-CBC:"
+      . "+FAIL-HERE:+SHA1:+COMP-NULL:+SIGN-RSA-SHA1")))
+ 
+-(dynamic-wind
+-
+-    (lambda ()
+-      #t)
++(run-test
+ 
+     (lambda ()
+       (let ((s (make-session connection-end/client)))
+@@ -52,25 +51,20 @@
+         (for-each (cut set-session-priorities! s <>)
+                   %valid-priority-strings)
+ 
+-        (for-each (lambda (prefix+suffix)
+-                    (let* ((prefix (car prefix+suffix))
+-                           (suffix (cdr prefix+suffix))
+-                           (pos    (string-length prefix))
+-                           (string (string-append prefix suffix)))
+-                      (catch 'gnutls-error
+-                        (lambda ()
+-                          (let ((s (make-session connection-end/client)))
+-                            (set-session-priorities! s string)))
+-                        (lambda (key err function error-location . unused)
+-                          (or (and (eq? key 'gnutls-error)
+-                                   (eq? err error/invalid-request)
+-                                   (eq? function 'set-session-priorities!)
+-                                   (= error-location pos))
+-                              (exit 1))))))
+-                  %invalid-priority-strings)
+-
+-        (exit 0)))
+-
+-    (lambda ()
+-      ;; failure
+-      (exit 1)))
++        (every (lambda (prefix+suffix)
++                 (let* ((prefix (car prefix+suffix))
++                        (suffix (cdr prefix+suffix))
++                        (pos    (string-length prefix))
++                        (string (string-append prefix suffix)))
++                   (catch 'gnutls-error
++                     (lambda ()
++                       (let ((s (make-session connection-end/client)))
++                         ;; The following call should raise an exception.
++                         (set-session-priorities! s string)
++                         #f))
++                     (lambda (key err function error-location . unused)
++                       (and (eq? key 'gnutls-error)
++                            (eq? err error/invalid-request)
++                            (eq? function 'set-session-priorities!)
++                            (= error-location pos))))))
++               %invalid-priority-strings))))
+
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index f5fed1e16049..de9059dbd153 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -1,22 +1,27 @@
-{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python, cairo }:
+{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python }:
 
 let
   baseName = "gobject-introspection";
-  v = "0.6.10";
+  v = "0.10.8";
 in
 
 stdenv.mkDerivation rec {
   name = "${baseName}-${v}";
 
-  buildInputs = [ flex bison glib pkgconfig python cairo ];
+  buildInputs = [ flex bison glib pkgconfig python ];
   propagatedBuildInputs = [ libffi ];
-  configureFlags = "--enable-gcov";
+
+  # Tests depend on cairo, which is undesirable (it pulls in lots of
+  # other dependencies).
+  configureFlags = "--disable-tests";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${baseName}/0.6/${name}.tar.bz2";
-    sha256 = "0jwd7bybgvg6dwhg64da8k9yjrs37y5p153gaaapz5j59ld53g9n";
+    url = "mirror://gnome/sources/${baseName}/0.10/${name}.tar.bz2";
+    sha256 = "5b1387ff37f03db880a2b1cbd6c6b6dfb923a29468d4d8367c458abf7704c61e";
   };
 
+  postInstall = "rm -rf $out/share/gtk-doc";
+
   meta = with stdenv.lib; {
     maintainers = [ maintainers.urkud ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix
index 42a592bf2dcc..5f06c82c3349 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -1,11 +1,16 @@
-{stdenv, fetchurl, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan}:
+{ stdenv, fetchurl, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan }:
 
 stdenv.mkDerivation rec {
   name = "gpgme-1.3.0";
+  
   src = fetchurl {
     url = "ftp://ftp.gnupg.org/gcrypt/gpgme/${name}.tar.bz2";
     sha256 = "18g6wgiacnbj437yfsczbjxaf041ljia48dnv2qgcqb0sky41q3l";
   };
-  buildInputs = [libgpgerror gnupg pkgconfig glib pth libassuan];
+  
+  propagatedBuildInputs = [ libgpgerror glib pth libassuan ];
+
+  buildNativeInputs = [ pkgconfig ];
+
   configureFlags = "--with-gpg=${gnupg}/bin/gpg2";
 }
diff --git a/pkgs/development/libraries/grantlee/default.nix b/pkgs/development/libraries/grantlee/default.nix
index 85697aba87fc..39170dd1ca78 100644
--- a/pkgs/development/libraries/grantlee/default.nix
+++ b/pkgs/development/libraries/grantlee/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, qt4, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "grantlee-0.1.7";
+  name = "grantlee-0.1.9";
 
 # Upstream download server has country code firewall, so I made a mirror. The
 # URL of the mirror may change in the future, so don't publish it yet.
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "http://downloads.grantlee.org/${name}.tar.gz"
       "http://www.loegria.net/grantlee/${name}.tar.gz"
     ];
-    sha256 = "0gv6filg5a10kqs286bv79fpjff9qjq6czvysgci7mrk4lknra72";
+    sha256 = "112rynnd10sxw5yqbv33g7yxs79d6clfbs2xbwflsrgkbyk5iw37";
   };
 
   buildInputs = [ cmake qt4 ];
diff --git a/pkgs/development/libraries/gsasl/default.nix b/pkgs/development/libraries/gsasl/default.nix
index 2e81a4806f8c..9f71bc5e202a 100644
--- a/pkgs/development/libraries/gsasl/default.nix
+++ b/pkgs/development/libraries/gsasl/default.nix
@@ -1,13 +1,15 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv, gss, libidn }:
 
 stdenv.mkDerivation rec {
-  name = "gsasl-1.4.4";
+  name = "gsasl-1.6.1";
 
   src = fetchurl {
     url = "mirror://gnu/gsasl/${name}.tar.gz";
-    sha256 = "0xd9irff42dd5i4cr74dy0yd9ijjv9nkg6c2l1328grsn8zifwdc";
+    sha256 = "02dmras3kqik08p14mpq0lj678w7wmmaxpcvdrx116wkcgspv2z6";
   };
 
+  buildInputs = [ gss libidn ];
+
   doCheck = true;
 
   meta = {
@@ -23,7 +25,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/gsasl/;
     license = "GPLv3+";
 
-    maintainers = [ stdenv.lib.maintainers.bjg ];
+    maintainers = with stdenv.lib.maintainers; [ bjg ludo ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/gsl/default.nix b/pkgs/development/libraries/gsl/default.nix
index d479610838c0..474d2f97dd0e 100644
--- a/pkgs/development/libraries/gsl/default.nix
+++ b/pkgs/development/libraries/gsl/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "gsl-1.14";
+  name = "gsl-1.15";
 
   src = fetchurl {
     url = "mirror://gnu/gsl/${name}.tar.gz";
-    sha256 = "1yzsazwz7w9pckh7y0mnbl75ykfcv20426vrjwxwgrx1v6plfjix";
+    sha256 = "18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/gsm/default.nix b/pkgs/development/libraries/gsm/default.nix
new file mode 100644
index 000000000000..c01987bcc59d
--- /dev/null
+++ b/pkgs/development/libraries/gsm/default.nix
@@ -0,0 +1,60 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="gsm";
+    version="1.0.13";
+    name="${baseName}-${version}";
+    url="http://www.quut.com/gsm/${name}.tar.gz";
+    hash="1bcjl2h60gvr1dc5a963h3vnz9zl6n8qrfa3qmb2x3229lj1iiaj";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["createDirs" "setVars" "doMakeInstall"];
+
+  createDirs = a.fullDepEntry ''
+    ensureDir "$out/"{bin,lib,share/man,share/info,include/gsm}
+  '' ["minInit" "defEnsureDir"];
+
+  setVars = a.noDepEntry ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC"
+  '';
+
+  makeFlags = [
+    ''INSTALL_ROOT="$out"''
+    ''GSM_INSTALL_INC="$out/include/gsm"''
+  ];
+      
+  meta = {
+    description = "A GSM codec library";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.quut.com/gsm/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 723d4176e35e..0394bb5fadb4 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -1,14 +1,16 @@
-{ callPackage, pkgs }:
+{ callPackage }:
 
 rec {
-  gstreamer = callPackage ./gstreamer {
-    flex = pkgs.flex2535;
-  };
+  gstreamer = callPackage ./gstreamer { };
 
   gstPluginsBase = callPackage ./gst-plugins-base { };
 
   gstPluginsGood = callPackage ./gst-plugins-good { };
 
+  gstPluginsUgly = callPackage ./gst-plugins-ugly { };
+
+  gstPluginsBad = callPackage ./gst-plugins-bad { };
+
   gstFfmpeg = callPackage ./gst-ffmpeg { };
 
   gnonlin = callPackage ./gnonlin { };
diff --git a/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix b/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix
index 9132e6b0a8f3..0287c5b9135f 100644
--- a/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix
+++ b/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix
@@ -1,27 +1,29 @@
-{ fetchurl, stdenv, pkgconfig, gstPluginsBase, bzip2, liboil }:
+{ fetchurl, stdenv, pkgconfig, gstPluginsBase, bzip2, yasm
+, useInternalFfmpeg ? false, ffmpeg ? null }:
 
 stdenv.mkDerivation rec {
-  name = "gst-ffmpeg-0.10.11";
+  name = "gst-ffmpeg-0.10.12";
 
   src = fetchurl {
     urls = [
       "http://gstreamer.freedesktop.org/src/gst-ffmpeg/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "0bk9k9sccx9nvhjakacvq8gd6vp63x9ddmjrqkfdhkmgwlwa2dpz";
+    sha256 = "0fyppl8q18g71jd2r0mbiqk8hhrdxq43dglma06mxyjb5c80fxxi";
   };
 
-  propagatedBuildInputs = [ gstPluginsBase ];
-  
-  buildInputs = [ pkgconfig bzip2 liboil ];
+  # Upstream strongly recommends against using --with-system-ffmpeg,
+  # but we do it anyway because we're so hardcore (and we don't want
+  # multiple copies of ffmpeg).
+  configureFlags = stdenv.lib.optionalString (!useInternalFfmpeg) "--with-system-ffmpeg";
 
-  configureFlags = "--enable-ladspa";
+  buildInputs =
+    [ pkgconfig bzip2 gstPluginsBase ]
+    ++ (if useInternalFfmpeg then [ yasm ] else [ ffmpeg ]);
 
   meta = {
     homepage = "http://gstreamer.freedesktop.org/releases/gst-ffmpeg";
-
     description = "GStreamer's plug-in using FFmpeg";
-
     license = "GPLv2+";
   };
 }
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-bad/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-bad/default.nix
new file mode 100644
index 000000000000..4dec1a86ebf4
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-bad/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gstPluginsBase
+, libdvdnav, libdvdread }:
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-bad-0.10.22";
+
+  src = fetchurl {
+    urls = [
+      "${meta.homepage}/src/gst-plugins-bad/${name}.tar.bz2"
+      "mirror://gentoo/distfiles/${name}.tar.bz2"
+      ];
+    sha256 = "030728gf0zjg62yng4qy9yapaffbvkziawa28rk0gspz8cpi1xyq";
+  };
+
+  buildInputs =
+    [ pkgconfig glib gstreamer gstPluginsBase libdvdnav libdvdread ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://gstreamer.freedesktop.org;
+
+    description = "‘Bad’ (potentially low quality) plug-ins for GStreamer";
+
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix
index 4a1a2de4dace..47762660b29a 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix
@@ -8,14 +8,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-base-0.10.30";
+  name = "gst-plugins-base-0.10.35";
 
   src = fetchurl {
     urls = [
       "${meta.homepage}/src/gst-plugins-base/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "1mw5n1w7l0hgyzf75srdxlh3knfgrmddbs2ah1f97s8b710qd4v3";
+    sha256 = "00vis5kg6km26zaq1ywz7ki9xvkwpc9c5wn41d01z2i5nldz096d";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
index 65f32e44cc2a..e2eb25bfb898 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
@@ -1,26 +1,29 @@
 { fetchurl, stdenv, pkgconfig, gstPluginsBase, aalib, cairo
-, flac , hal, libjpeg, zlib, speex, libpng, libdv, libcaca, dbus
-, libiec61883, libavc1394, ladspaH, taglib, gdbm, pulseaudio
-, gnome, libcap, libtasn1, liboil
+, flac, libjpeg, zlib, speex, libpng, libdv, libcaca
+, libiec61883, libavc1394, taglib, pulseaudio
+, glib, gstreamer, bzip2
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-good-0.10.25";
+  name = "gst-plugins-good-0.10.30";
 
   src = fetchurl {
     urls = [
       "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "1xlr8rzb6pxi91g6jxhqa7cwl0kg5y21qfd9bgc4fb212867bmdm";
+    sha256 = "1xlmw211fcn60y2m5gxrryb3knqril4kk2c01b6j713xna8blb5i";
   };
 
-  propagatedBuildInputs = [gstPluginsBase aalib cairo flac hal libjpeg
-    zlib speex libpng libdv libcaca dbus.libs libiec61883 libavc1394 ladspaH
-    taglib gdbm pulseaudio gnome.libsoup libcap libtasn1 liboil];
-  buildInputs = [pkgconfig];
+  configureFlags = "--disable-oss";
 
-  configureFlags = "--enable-ladspa";
+  buildInputs =
+    [ pkgconfig glib gstreamer gstPluginsBase libavc1394 libiec61883
+      aalib libcaca cairo libdv flac libjpeg libpng pulseaudio speex
+      taglib bzip2
+    ];
+
+  enableParallelBuilding = true;
 
   meta = {
     homepage = http://gstreamer.freedesktop.org;
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-ugly/default.nix b/pkgs/development/libraries/gstreamer/gst-plugins-ugly/default.nix
new file mode 100644
index 000000000000..153ab47fb929
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gst-plugins-ugly/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gstPluginsBase
+, libmad, libdvdread, libmpeg2, libcdio, a52dec }:
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-ugly-0.10.18";
+
+  src = fetchurl {
+    urls = [
+      "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.bz2"
+      "mirror://gentoo/distfiles/${name}.tar.bz2"
+      ];
+    sha256 = "054fdkb2riy5knda39cp6w3xp9lzax52bn12cklglscjrm46ghgr";
+  };
+
+  buildInputs =
+    [ pkgconfig glib gstreamer gstPluginsBase libmad libdvdread a52dec ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://gstreamer.freedesktop.org;
+
+    description = "‘Ugly’ (potentially patent-encumbered) plug-ins for GStreamer";
+
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/gstreamer/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/gstreamer/default.nix
index 7edf0325b2ad..01d5487302ce 100644
--- a/pkgs/development/libraries/gstreamer/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/gstreamer/default.nix
@@ -1,14 +1,14 @@
 { fetchurl, stdenv, perl, bison, flex, pkgconfig, glib, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "gstreamer-0.10.30";
+  name = "gstreamer-0.10.35";
 
   src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gstreamer/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
+    urls =
+      [ "${meta.homepage}/src/gstreamer/${name}.tar.bz2"
+        "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "0ajkfkchwpk5zlcis19laqbv84mi61cn3cqbdbrpyy93whdk1vz8";
+    sha256 = "11lp13lig3c6qys80phyvsik56r9y0c95vg2jxxliqj6rnigwyw1";
   };
 
   buildInputs = [ perl bison flex pkgconfig ];
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
   # Hm, apparently --disable-gtk-doc is ignored...
   postInstall = "rm -rf $out/share/gtk-doc";
 
+  setupHook = ./setup-hook.sh;
+
   meta = {
     homepage = http://gstreamer.freedesktop.org;
 
diff --git a/pkgs/development/libraries/gtk+/2.20.x.nix b/pkgs/development/libraries/gtk+/2.20.x.nix
index 38537aae5956..53ad76ced532 100644
--- a/pkgs/development/libraries/gtk+/2.20.x.nix
+++ b/pkgs/development/libraries/gtk+/2.20.x.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig jasper ];
   
   propagatedBuildInputs =
-    [ xlibs.xlibs glib atk pango libtiff libjpeg libpng cairo xlibs.libXrandr ]
+    [ xlibs.xlibs glib atk pango libtiff libjpeg libpng cairo xlibs.libXrandr xlibs.libXrender ]
     ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
     ++ stdenv.lib.optionals cupsSupport [ cups ];
 
diff --git a/pkgs/development/libraries/gtk+/2.18.x.nix b/pkgs/development/libraries/gtk+/2.24.x.nix
index 40ba6e13b225..e4a1f0969f93 100644
--- a/pkgs/development/libraries/gtk+/2.18.x.nix
+++ b/pkgs/development/libraries/gtk+/2.24.x.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, glib, atk, pango, libtiff, libjpeg
-, libpng, cairo, perl, jasper, xlibs
+, libpng, cairo, perl, jasper, xlibs, gdk_pixbuf
 , xineramaSupport ? true
 , cupsSupport ? true, cups ? null
 }:
@@ -8,21 +8,35 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-2.18.9";
+  name = "gtk+-2.24.5";
   
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/2.18/${name}.tar.bz2";
-    sha256 = "5dcd8c406acbb8779c0b081a089fa87dfd7ab4d7d4c6075db478997ce96aa9b4";
+    url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.bz2";
+    sha256 = "f355f26003b1b42b97e584bdc475189a423fdd052088ee4bbd7aa0f989815cc8";
   };
+
+  patches =
+    [ # Fix broken icons such as the back/forward buttons in Firefox.
+      # http://bugs.gentoo.org/339319
+      ./old-icons.patch
+    ];
+
+  enableParallelBuilding = true;
   
   buildNativeInputs = [ perl ];
   buildInputs = [ pkgconfig jasper ];
   
   propagatedBuildInputs =
-    [ xlibs.xlibs glib atk pango libtiff libjpeg libpng cairo xlibs.libXrandr ]
+    [ xlibs.xlibs glib atk pango gdk_pixbuf /* libtiff libjpeg libpng */ cairo
+      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
+    ]
     ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
     ++ stdenv.lib.optionals cupsSupport [ cups ];
 
+  configureFlags = "--with-xinput=yes";
+
+  postInstall = "rm -rf $out/share/gtk-doc";
+  
   passthru = { inherit libtiff libjpeg libpng; };
 
   meta = {
diff --git a/pkgs/development/libraries/gtk+/old-icons.patch b/pkgs/development/libraries/gtk+/old-icons.patch
new file mode 100644
index 000000000000..e53d87474d07
--- /dev/null
+++ b/pkgs/development/libraries/gtk+/old-icons.patch
@@ -0,0 +1,270 @@
+diff -ru gtk+-2.24.5-orig/gtk/Makefile.in gtk+-2.24.5/gtk/Makefile.in
+--- gtk+-2.24.5-orig/gtk/Makefile.in	2011-06-16 01:56:37.000000000 +0200
++++ gtk+-2.24.5/gtk/Makefile.in	2011-07-07 15:38:06.000000000 +0200
+@@ -1616,7 +1616,173 @@
+ 	stock-icons/24/folder-remote.png 		\
+ 	stock-icons/24/user-home.png 			\
+ 	stock-icons/24/user-desktop.png 		\
+-	stock-icons/24/text-x-generic.png
++	stock-icons/24/text-x-generic.png		\
++	stock-icons/16/gtk-quit.png			\
++	stock-icons/16/gtk-info.png			\
++	stock-icons/16/gtk-file.png			\
++	stock-icons/16/gtk-open.png			\
++	stock-icons/16/gtk-print-preview.png		\
++	stock-icons/16/gtk-print.png			\
++	stock-icons/16/gtk-properties.png		\
++	stock-icons/16/gtk-revert-to-saved-ltr.png	\
++	stock-icons/16/gtk-revert-to-saved-rtl.png	\
++	stock-icons/16/gtk-save-as.png			\
++	stock-icons/16/gtk-new.png			\
++	stock-icons/16/gtk-harddisk.png			\
++	stock-icons/16/gtk-clear.png			\
++	stock-icons/16/gtk-copy.png			\
++	stock-icons/16/gtk-cut.png			\
++	stock-icons/16/gtk-delete.png			\
++	stock-icons/16/gtk-find-and-replace.png		\
++	stock-icons/16/gtk-find.png			\
++	stock-icons/16/gtk-paste.png			\
++	stock-icons/16/gtk-redo-ltr.png			\
++	stock-icons/16/gtk-redo-rtl.png			\
++	stock-icons/16/gtk-select-all.png		\
++	stock-icons/16/gtk-undo-ltr.png			\
++	stock-icons/16/gtk-undo-rtl.png			\
++	stock-icons/16/gtk-directory.png		\
++	stock-icons/16/gtk-unindent-ltr.png		\
++	stock-icons/16/gtk-unindent-rtl.png		\
++	stock-icons/16/gtk-indent-ltr.png		\
++	stock-icons/16/gtk-indent-rtl.png		\
++	stock-icons/16/gtk-justify-center.png		\
++	stock-icons/16/gtk-justify-fill.png		\
++	stock-icons/16/gtk-justify-left.png		\
++	stock-icons/16/gtk-justify-right.png		\
++	stock-icons/16/gtk-bold.png			\
++	stock-icons/16/gtk-italic.png			\
++	stock-icons/16/gtk-strikethrough.png		\
++	stock-icons/16/gtk-underline.png		\
++	stock-icons/16/gtk-goto-bottom.png		\
++	stock-icons/16/gtk-go-down.png			\
++	stock-icons/16/gtk-goto-first-ltr.png		\
++	stock-icons/16/gtk-home.png			\
++	stock-icons/16/gtk-jump-to-ltr.png		\
++	stock-icons/16/gtk-jump-to-rtl.png		\
++	stock-icons/16/gtk-goto-last-ltr.png		\
++	stock-icons/16/gtk-go-forward-ltr.png		\
++	stock-icons/16/gtk-go-back-ltr.png		\
++	stock-icons/16/gtk-goto-top.png			\
++	stock-icons/16/gtk-go-up.png			\
++	stock-icons/16/gtk-about.png			\
++	stock-icons/16/gtk-help.png			\
++	stock-icons/16/gtk-missing-image.png		\
++	stock-icons/16/gtk-add.png			\
++	stock-icons/16/gtk-remove.png			\
++	stock-icons/16/gtk-floppy.png			\
++	stock-icons/16/gtk-cdrom.png			\
++	stock-icons/16/gtk-media-pause.png		\
++	stock-icons/16/gtk-media-play-ltr.png		\
++	stock-icons/16/gtk-media-play-rtl.png		\
++	stock-icons/16/gtk-media-stop.png		\
++	stock-icons/16/gtk-media-record.png		\
++	stock-icons/16/gtk-media-rewind-ltr.png		\
++	stock-icons/16/gtk-media-forward-ltr.png	\
++	stock-icons/16/gtk-media-previous-ltr.png	\
++	stock-icons/16/gtk-media-next-ltr.png		\
++	stock-icons/16/gtk-network.png			\
++	stock-icons/16/gtk-print-error.png		\
++	stock-icons/16/gtk-print-report.png		\
++	stock-icons/16/gtk-print-paused.png		\
++	stock-icons/16/gtk-print-warning.png		\
++	stock-icons/16/gtk-stop.png			\
++	stock-icons/16/gtk-execute.png			\
++	stock-icons/16/gtk-spell-check.png		\
++	stock-icons/16/gtk-fullscreen.png		\
++	stock-icons/16/gtk-refresh.png			\
++	stock-icons/16/gtk-leave-fullscreen.png		\
++	stock-icons/16/gtk-sort-ascending.png		\
++	stock-icons/16/gtk-sort-descending.png		\
++	stock-icons/16/gtk-close.png			\
++	stock-icons/16/gtk-zoom-fit.png			\
++	stock-icons/16/gtk-zoom-in.png			\
++	stock-icons/16/gtk-zoom-100.png			\
++	stock-icons/16/gtk-zoom-out.png			\
++	stock-icons/24/gtk-quit.png			\
++	stock-icons/24/gtk-info.png			\
++	stock-icons/24/gtk-file.png			\
++	stock-icons/24/gtk-open.png			\
++	stock-icons/24/gtk-print-preview.png		\
++	stock-icons/24/gtk-print.png			\
++	stock-icons/24/gtk-properties.png		\
++	stock-icons/24/gtk-revert-to-saved-ltr.png	\
++	stock-icons/24/gtk-revert-to-saved-rtl.png	\
++	stock-icons/24/gtk-save-as.png			\
++	stock-icons/24/gtk-new.png			\
++	stock-icons/24/gtk-harddisk.png			\
++	stock-icons/24/gtk-clear.png			\
++	stock-icons/24/gtk-copy.png			\
++	stock-icons/24/gtk-cut.png			\
++	stock-icons/24/gtk-delete.png			\
++	stock-icons/24/gtk-find-and-replace.png		\
++	stock-icons/24/gtk-find.png			\
++	stock-icons/24/gtk-paste.png			\
++	stock-icons/24/gtk-redo-ltr.png			\
++	stock-icons/24/gtk-redo-rtl.png			\
++	stock-icons/24/gtk-select-all.png		\
++	stock-icons/24/gtk-undo-ltr.png			\
++	stock-icons/24/gtk-undo-rtl.png			\
++	stock-icons/24/gtk-directory.png		\
++	stock-icons/24/gtk-unindent-ltr.png		\
++	stock-icons/24/gtk-unindent-rtl.png		\
++	stock-icons/24/gtk-indent-ltr.png		\
++	stock-icons/24/gtk-indent-rtl.png		\
++	stock-icons/24/gtk-justify-center.png		\
++	stock-icons/24/gtk-justify-fill.png		\
++	stock-icons/24/gtk-justify-left.png		\
++	stock-icons/24/gtk-justify-right.png		\
++	stock-icons/24/gtk-bold.png			\
++	stock-icons/24/gtk-italic.png			\
++	stock-icons/24/gtk-strikethrough.png		\
++	stock-icons/24/gtk-underline.png		\
++	stock-icons/24/gtk-goto-bottom.png		\
++	stock-icons/24/gtk-go-down.png			\
++	stock-icons/24/gtk-goto-first-ltr.png		\
++	stock-icons/24/gtk-home.png			\
++	stock-icons/24/gtk-jump-to-ltr.png		\
++	stock-icons/24/gtk-jump-to-rtl.png		\
++	stock-icons/24/gtk-goto-last-ltr.png		\
++	stock-icons/24/gtk-go-forward-ltr.png		\
++	stock-icons/24/gtk-go-back-ltr.png		\
++	stock-icons/24/gtk-goto-top.png			\
++	stock-icons/24/gtk-go-up.png			\
++	stock-icons/24/gtk-about.png			\
++	stock-icons/24/gtk-help.png			\
++	stock-icons/24/gtk-missing-image.png		\
++	stock-icons/24/gtk-add.png			\
++	stock-icons/24/gtk-remove.png			\
++	stock-icons/24/gtk-floppy.png			\
++	stock-icons/24/gtk-cdrom.png			\
++	stock-icons/24/gtk-media-pause.png		\
++	stock-icons/24/gtk-media-play-ltr.png		\
++	stock-icons/24/gtk-media-play-rtl.png		\
++	stock-icons/24/gtk-media-stop.png		\
++	stock-icons/24/gtk-media-record.png		\
++	stock-icons/24/gtk-media-rewind-ltr.png		\
++	stock-icons/24/gtk-media-forward-ltr.png	\
++	stock-icons/24/gtk-media-previous-ltr.png	\
++	stock-icons/24/gtk-media-next-ltr.png		\
++	stock-icons/24/gtk-network.png			\
++	stock-icons/24/gtk-print-error.png		\
++	stock-icons/24/gtk-print-report.png		\
++	stock-icons/24/gtk-print-paused.png		\
++	stock-icons/24/gtk-print-warning.png		\
++	stock-icons/24/gtk-stop.png			\
++	stock-icons/24/gtk-execute.png			\
++	stock-icons/24/gtk-spell-check.png		\
++	stock-icons/24/gtk-fullscreen.png		\
++	stock-icons/24/gtk-refresh.png			\
++	stock-icons/24/gtk-leave-fullscreen.png		\
++	stock-icons/24/gtk-sort-ascending.png		\
++	stock-icons/24/gtk-sort-descending.png		\
++	stock-icons/24/gtk-close.png			\
++	stock-icons/24/gtk-zoom-fit.png			\
++	stock-icons/24/gtk-zoom-in.png			\
++	stock-icons/24/gtk-zoom-100.png			\
++	stock-icons/24/gtk-zoom-out.png			\
++	stock-icons/48/gtk-dialog-error.png
++
+ 
+ @CROSS_COMPILING_FALSE@gtk_update_icon_cache_program = \
+ @CROSS_COMPILING_FALSE@	   ./gtk-update-icon-cache
+@@ -2887,7 +3053,91 @@
+ 	   && $(LN_S) folder.png user-desktop.png 			\
+ 	   && $(RM) user-home.png 					\
+ 	   && $(LN_S) folder.png user-home.png 				\
++	   && $(LN_S) application-exit.png gtk-quit.png			\
++	   && $(LN_S) dialog-information.png gtk-info.png			\
++	   && $(LN_S) document-new.png gtk-file.png			\
++	   && $(LN_S) document-open.png gtk-open.png			\
++	   && $(LN_S) document-print-preview.png gtk-print-preview.png			\
++	   && $(LN_S) document-print.png gtk-print.png			\
++	   && $(LN_S) document-properties.png gtk-properties.png			\
++	   && $(LN_S) document-revert-ltr.png gtk-revert-to-saved-ltr.png			\
++	   && $(LN_S) document-revert-rtl.png gtk-revert-to-saved-rtl.png			\
++	   && $(LN_S) document-save-as.png gtk-save-as.png			\
++	   && $(LN_S) document-x-generic.png gtk-new.png			\
++	   && $(LN_S) drive-harddisk.png gtk-harddisk.png			\
++	   && $(LN_S) edit-clear.png gtk-clear.png			\
++	   && $(LN_S) edit-copy.png gtk-copy.png			\
++	   && $(LN_S) edit-cut.png gtk-cut.png			\
++	   && $(LN_S) edit-delete.png gtk-delete.png			\
++	   && $(LN_S) edit-find-replace.png gtk-find-and-replace.png			\
++	   && $(LN_S) edit-find.png gtk-find.png			\
++	   && $(LN_S) edit-paste.png gtk-paste.png			\
++	   && $(LN_S) edit-redo-ltr.png gtk-redo-ltr.png			\
++	   && $(LN_S) edit-redo-rtl.png gtk-redo-rtl.png			\
++	   && $(LN_S) edit-select-all.png gtk-select-all.png			\
++	   && $(LN_S) edit-undo-ltr.png gtk-undo-ltr.png			\
++	   && $(LN_S) edit-undo-rtl.png gtk-undo-rtl.png			\
++	   && $(LN_S) folder.png gtk-directory.png			\
++	   && $(LN_S) format-indent-less-ltr.png gtk-unindent-ltr.png			\
++	   && $(LN_S) format-indent-less-rtl.png gtk-unindent-rtl.png			\
++	   && $(LN_S) format-indent-more-ltr.png gtk-indent-ltr.png			\
++	   && $(LN_S) format-indent-more-rtl.png gtk-indent-rtl.png			\
++	   && $(LN_S) format-justify-center.png gtk-justify-center.png			\
++	   && $(LN_S) format-justify-fill.png gtk-justify-fill.png			\
++	   && $(LN_S) format-justify-left.png gtk-justify-left.png			\
++	   && $(LN_S) format-justify-right.png gtk-justify-right.png			\
++	   && $(LN_S) format-text-bold.png gtk-bold.png			\
++	   && $(LN_S) format-text-italic.png gtk-italic.png			\
++	   && $(LN_S) format-text-strikethrough.png gtk-strikethrough.png			\
++	   && $(LN_S) format-text-underline.png gtk-underline.png			\
++	   && $(LN_S) go-bottom.png gtk-goto-bottom.png			\
++	   && $(LN_S) go-down.png gtk-go-down.png			\
++	   && $(LN_S) go-first-ltr.png gtk-goto-first-ltr.png			\
++	   && $(LN_S) go-home.png gtk-home.png			\
++	   && $(LN_S) go-jump-ltr.png gtk-jump-to-ltr.png			\
++	   && $(LN_S) go-jump-rtl.png gtk-jump-to-rtl.png			\
++	   && $(LN_S) go-last-ltr.png gtk-goto-last-ltr.png			\
++	   && $(LN_S) go-next-ltr.png gtk-go-forward-ltr.png			\
++	   && $(LN_S) go-previous-ltr.png gtk-go-back-ltr.png			\
++	   && $(LN_S) go-top.png gtk-goto-top.png			\
++	   && $(LN_S) go-up.png gtk-go-up.png			\
++	   && $(LN_S) help-about.png gtk-about.png			\
++	   && $(LN_S) help-contents.png gtk-help.png			\
++	   && $(LN_S) image-missing.png gtk-missing-image.png			\
++	   && $(LN_S) list-add.png gtk-add.png			\
++	   && $(LN_S) list-remove.png gtk-remove.png			\
++	   && $(LN_S) media-floppy.png gtk-floppy.png			\
++	   && $(LN_S) media-optical.png gtk-cdrom.png			\
++	   && $(LN_S) media-playback-pause.png gtk-media-pause.png			\
++	   && $(LN_S) media-playback-start-ltr.png gtk-media-play-ltr.png			\
++	   && $(LN_S) media-playback-start-rtl.png gtk-media-play-rtl.png			\
++	   && $(LN_S) media-playback-stop.png gtk-media-stop.png			\
++	   && $(LN_S) media-record.png gtk-media-record.png			\
++	   && $(LN_S) media-seek-backward-ltr.png gtk-media-rewind-ltr.png			\
++	   && $(LN_S) media-seek-forward-ltr.png gtk-media-forward-ltr.png			\
++	   && $(LN_S) media-skip-backward-ltr.png gtk-media-previous-ltr.png			\
++	   && $(LN_S) media-skip-forward-ltr.png gtk-media-next-ltr.png			\
++	   && $(LN_S) network-idle.png gtk-network.png			\
++	   && $(LN_S) printer-error.png gtk-print-error.png			\
++	   && $(LN_S) printer-info.png gtk-print-report.png			\
++	   && $(LN_S) printer-paused.png gtk-print-paused.png			\
++	   && $(LN_S) printer-warning.png gtk-print-warning.png			\
++	   && $(LN_S) process-stop.png gtk-stop.png			\
++	   && $(LN_S) system-run.png gtk-execute.png			\
++	   && $(LN_S) tools-check-spelling.png gtk-spell-check.png			\
++	   && $(LN_S) view-fullscreen.png gtk-fullscreen.png			\
++	   && $(LN_S) view-refresh.png gtk-refresh.png			\
++	   && $(LN_S) view-restore.png gtk-leave-fullscreen.png			\
++	   && $(LN_S) view-sort-ascending.png gtk-sort-ascending.png			\
++	   && $(LN_S) view-sort-descending.png gtk-sort-descending.png			\
++	   && $(LN_S) window-close.png gtk-close.png			\
++	   && $(LN_S) zoom-fit-best.png gtk-zoom-fit.png			\
++	   && $(LN_S) zoom-in.png gtk-zoom-in.png			\
++	   && $(LN_S) zoom-original.png gtk-zoom-100.png			\
++	   && $(LN_S) zoom-out.png gtk-zoom-out.png			\
+ 	) done 								\
++	&& (cd stock-icons/48						\
++	   && $(LN_S) dialog-error.png gtk-dialog-error.png)		\
+ 	&& touch stamp-icons
+ 
+ gtkbuiltincache.h: @REBUILD@ stamp-icons
diff --git a/pkgs/development/libraries/gtkmathview/default.nix b/pkgs/development/libraries/gtkmathview/default.nix
new file mode 100644
index 000000000000..eaccf2fb08bc
--- /dev/null
+++ b/pkgs/development/libraries/gtkmathview/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, pkgconfig, gtk, t1lib, glib, libxml2, popt, gmetadom ? null }:
+
+let
+  pname = "gtkmathview";
+  version = "0.8.0";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://helm.cs.unibo.it/mml-widget/sources/${pname}-${version}.tar.gz";
+    sha256 = "0hwcamf5fi35frg7q6kgisc9v0prqbhsplb2gl55cg3av9sh3hqx";
+  };
+
+  buildInputs = [pkgconfig gtk t1lib glib gmetadom libxml2 popt];
+  propagatedBuildInputs = [gtk t1lib];
+
+  patches = [ ./gcc-4.3-build-fixes.patch ./gcc-4.4-build-fixes.patch ];
+
+  meta = {
+    homepage = http://helm.cs.unibo.it/mml-widget/;
+    description = "GtkMathView is a C++ rendering engine for MathML documents";
+    license = "LGPLv3+";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/libraries/gtkmathview/gcc-4.3-build-fixes.patch b/pkgs/development/libraries/gtkmathview/gcc-4.3-build-fixes.patch
new file mode 100644
index 000000000000..14ad594b38b8
--- /dev/null
+++ b/pkgs/development/libraries/gtkmathview/gcc-4.3-build-fixes.patch
@@ -0,0 +1,74 @@
+From: Stefano Zacchiroli <zack@upsilon.cc>
+Date: Fri, 11 Dec 2009 12:58:56 +0100
+Subject: [PATCH] gcc 4.3 build fixes
+
+---
+ mathmlps/main.cc                    |    1 +
+ mathmlsvg/SMS.cc                    |    1 +
+ mathmlsvg/main.cc                   |    1 +
+ src/backend/ps/T1_FontDataBase.cc   |    2 +-
+ src/engine/mathml/mathVariantAux.cc |    1 +
+ 5 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/mathmlps/main.cc b/mathmlps/main.cc
+index cc6cd1c..48339af 100644
+--- a/mathmlps/main.cc
++++ b/mathmlps/main.cc
+@@ -19,6 +19,7 @@
+ #include <config.h>
+ 
+ #include <cassert>
++#include <cstring>
+ #include <fstream>
+ 
+ #include <popt.h>
+diff --git a/mathmlsvg/SMS.cc b/mathmlsvg/SMS.cc
+index a76266e..be7add8 100644
+--- a/mathmlsvg/SMS.cc
++++ b/mathmlsvg/SMS.cc
+@@ -18,6 +18,7 @@
+ 
+ #include <config.h>
+ 
++#include <cstring>
+ #include <sstream>
+ #include "defs.h"
+ #include "AbstractLogger.hh"
+diff --git a/mathmlsvg/main.cc b/mathmlsvg/main.cc
+index 259d67e..c49e8ac 100644
+--- a/mathmlsvg/main.cc
++++ b/mathmlsvg/main.cc
+@@ -19,6 +19,7 @@
+ #include <config.h>
+ 
+ #include <cassert>
++#include <cstring>
+ #include <fstream>
+ 
+ #include <popt.h>
+diff --git a/src/backend/ps/T1_FontDataBase.cc b/src/backend/ps/T1_FontDataBase.cc
+index b6490eb..3dd436c 100644
+--- a/src/backend/ps/T1_FontDataBase.cc
++++ b/src/backend/ps/T1_FontDataBase.cc
+@@ -19,7 +19,7 @@
+ #include <t1lib.h>
+ #include <config.h>
+ #include <map>
+-#include <string>
++#include <cstring>
+ #include <stdlib.h>
+ #include <iostream>
+ #include <list>
+diff --git a/src/engine/mathml/mathVariantAux.cc b/src/engine/mathml/mathVariantAux.cc
+index 736acc1..dcf1826 100644
+--- a/src/engine/mathml/mathVariantAux.cc
++++ b/src/engine/mathml/mathVariantAux.cc
+@@ -19,6 +19,7 @@
+ #include <config.h>
+ 
+ #include <cassert>
++#include <cstring>
+ 
+ #include "mathVariantAux.hh"
+ 
+-- 
diff --git a/pkgs/development/libraries/gtkmathview/gcc-4.4-build-fixes.patch b/pkgs/development/libraries/gtkmathview/gcc-4.4-build-fixes.patch
new file mode 100644
index 000000000000..0ebd31ef2a78
--- /dev/null
+++ b/pkgs/development/libraries/gtkmathview/gcc-4.4-build-fixes.patch
@@ -0,0 +1,21 @@
+From: Stefano Zacchiroli <zack@upsilon.cc>
+Date: Fri, 11 Dec 2009 13:26:26 +0100
+Subject: [PATCH] gcc 4.4 build fixes
+
+---
+ src/common/AbstractLogger.cc |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/src/common/AbstractLogger.cc b/src/common/AbstractLogger.cc
+index 6f638fb..c5b7e3d 100644
+--- a/src/common/AbstractLogger.cc
++++ b/src/common/AbstractLogger.cc
+@@ -19,6 +19,7 @@
+ #include <config.h>
+ 
+ #include <stdarg.h>
++#include <stdio.h>
+ 
+ #include "AbstractLogger.hh"
+ 
+-- 
diff --git a/pkgs/development/libraries/gts/default.nix b/pkgs/development/libraries/gts/default.nix
new file mode 100644
index 000000000000..b3038d5eaddb
--- /dev/null
+++ b/pkgs/development/libraries/gts/default.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv, glib, pkgconfig }:
+
+
+stdenv.mkDerivation rec {
+  name = "gts-${version}";
+  version = "0.7.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gts/${name}.tar.gz";
+    sha256 = "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705";
+  };
+
+  buildInputs = [ glib pkgconfig ];
+
+  meta = {
+    homepage = http://gts.sourceforge.net/;
+    license = "LGPLv2+";
+    description = "GNU Triangulated Surface Library";
+
+    longDescription = ''
+      Library intended to provide a set of useful functions to deal with
+      3D surfaces meshed with interconnected triangles.
+    '';
+
+    maintainers = [ stdenv.lib.maintainers.viric ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/haskell/AC-Vector/default.nix b/pkgs/development/libraries/haskell/AC-Vector/default.nix
new file mode 100644
index 000000000000..e4b78876c57a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/AC-Vector/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "AC-Vector";
+  version = "2.3.2";
+  sha256 = "04ahf6ldfhvzbml9xd6yplygn8ih7b8zz7cw03hkr053g5kzylay";
+  meta = {
+    description = "Efficient geometric vectors and transformations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Agda/default.nix b/pkgs/development/libraries/haskell/Agda/default.nix
index c0493ecec992..eb40a854e32e 100644
--- a/pkgs/development/libraries/haskell/Agda/default.nix
+++ b/pkgs/development/libraries/haskell/Agda/default.nix
@@ -1,16 +1,25 @@
-{cabal, QuickCheck, binary, haskeline, haskellSrc, mtl, utf8String, xhtml, zlib,
- happy, alex}:
+{ cabal, alex, binary, happy, haskeline, haskellSrcExts, mtl
+, QuickCheck, syb, xhtml, zlib
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Agda";
-  version = "2.2.8";
-  sha256 = "06j2s7x3h5lanygd6mhhxkzjf4c0m8pw6c0s7gbmwlxqrkz9firg";
-  extraBuildInputs = [happy alex];
-  propagatedBuildInputs =
-    [QuickCheck binary haskeline haskellSrc mtl utf8String xhtml zlib];
+  version = "2.2.10";
+  sha256 = "1bh96g5c6b6jzaf3m9gm0vr64avgi86kb45p8i1vg1jbfjdbdlsw";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary haskeline haskellSrcExts mtl QuickCheck syb xhtml zlib
+  ];
+  buildTools = [ alex happy ];
   meta = {
-    description = "A dependently typed functional language and proof assistant";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://wiki.portal.chalmers.se/agda/";
+    description = "A dependently typed functional programming language and proof assistant";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/AspectAG/default.nix b/pkgs/development/libraries/haskell/AspectAG/default.nix
index 1f9737664a50..347fc5ff9c99 100644
--- a/pkgs/development/libraries/haskell/AspectAG/default.nix
+++ b/pkgs/development/libraries/haskell/AspectAG/default.nix
@@ -1,14 +1,18 @@
-{cabal, HList, mtl}:
+{ cabal, HList, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "AspectAG";
-  version = "0.2";
-  sha256 = "5184ba55bc89d4afd12d1fe5f20e5d62b3b7306e771a7418db805afb70638ce7";
-  propagatedBuildInputs = [HList mtl];
+  version = "0.3.4.1";
+  sha256 = "12iaf27crynwnnd7qm1zvvaj6zw6i6c05mb4dsq55dnhph2l356g";
+  buildDepends = [ HList mtl ];
   meta = {
+    homepage = "http://www.cs.uu.nl/wiki/bin/view/Center/AspectAG";
     description = "Attribute Grammars in the form of an EDSL";
     license = "LGPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/Boolean/default.nix b/pkgs/development/libraries/haskell/Boolean/default.nix
index 664ea6039951..720d60461694 100644
--- a/pkgs/development/libraries/haskell/Boolean/default.nix
+++ b/pkgs/development/libraries/haskell/Boolean/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Boolean";
   version = "0.0.1";
   sha256 = "dafcfb2e9d7f7aa24a3d3ceb385424176297cdf6f6044028d42d0fea1cae7765";
   meta = {
     description = "Generalized booleans";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/CS173Tourney/default.nix b/pkgs/development/libraries/haskell/CS173Tourney/default.nix
deleted file mode 100644
index 42df8754a341..000000000000
--- a/pkgs/development/libraries/haskell/CS173Tourney/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{cabal, fetchgit, json, time, hslogger, Crypto, base64string, CouchDB, WebServer, WebServerExtras}:
-
-cabal.mkDerivation (self : {
-  pname = "CS173Tourney";
-  version = "2.5.2";
-  
-  src = fetchgit {
-    url = git://github.com/arjunguha/173tourney.git;
-    rev = "dce044761b008cb685a675a1f35be6aff66fed21" ;
-    md5 = "21e5e5c2e184b4b70696d4d6c60e51d3";
-  };
-  patches = [./sendmail.patch]; 
-  propagatedBuildInputs = [json time hslogger Crypto base64string CouchDB WebServer WebServerExtras];
-  meta = {
-    description = "";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch b/pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch
deleted file mode 100644
index 7fb72c0f0ac7..000000000000
--- a/pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -rc 173tourney/server-src/Mail.hs 173tourney2/server-src/Mail.hs
-*** 173tourney/server-src/Mail.hs	2009-11-05 13:00:58.971443217 +0100
---- 173tourney2/server-src/Mail.hs	2009-11-24 10:38:38.325669644 +0100
-***************
-*** 17,23 ****
-           -> IO Bool
-  mailFrom fromAddr toAddrs subject body = do
-    (stdin,stdout,stderr,process) <- 
-!     runInteractiveCommand "/usr/sbin/sendmail -t"
-    let sendMail = do
-          hSetBinaryMode stdin False
-          hPutStrLn stdin $ "To: " ++ (concat $ intersperse ", " toAddrs)
---- 17,23 ----
-           -> IO Bool
-  mailFrom fromAddr toAddrs subject body = do
-    (stdin,stdout,stderr,process) <- 
-!     runInteractiveCommand "sendmail -t"
-    let sendMail = do
-          hSetBinaryMode stdin False
-          hPutStrLn stdin $ "To: " ++ (concat $ intersperse ", " toAddrs)
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index 6e5fdb9b787e..daf15c0cb2ee 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -1,15 +1,22 @@
-{cabal, cairo, colour, dataAccessor, dataAccessorTemplate, gtk, mtl}:
+{ cabal, cairo, colour, dataAccessor, dataAccessorTemplate, gtk
+, mtl, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Chart";
-  version = "0.13.1";
-  sha256 = "1gh8qw8xil543wssflhpjrgnig4v79vi7xizrm93a93i4n84npd5";
-  propagatedBuildInputs =
-    [cairo colour dataAccessor dataAccessorTemplate gtk mtl];
+  version = "0.14";
+  sha256 = "0ji81j4c2by5zyrdhx1s17j6kqsi3ngr9y1zh7hr9wv7jsrj3rf2";
+  buildDepends = [
+    cairo colour dataAccessor dataAccessorTemplate gtk mtl time
+  ];
   meta = {
+    homepage = "http://www.dockerz.net/software/chart.html";
     description = "A library for generating 2D Charts and Plots";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/ConfigFile/default.nix b/pkgs/development/libraries/haskell/ConfigFile/default.nix
index 3ad1f5450674..378d1e2cd376 100644
--- a/pkgs/development/libraries/haskell/ConfigFile/default.nix
+++ b/pkgs/development/libraries/haskell/ConfigFile/default.nix
@@ -1,14 +1,20 @@
-{cabal, mtl, parsec, MissingH}:
+{ cabal, MissingH, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ConfigFile";
   version = "1.0.6";
   sha256 = "339722184b86d53d8b361933e572b6e1478824c7eba3fb66b67d0eb5245cd038";
-  propagatedBuildInputs = [mtl parsec MissingH];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ MissingH mtl parsec ];
   meta = {
+    homepage = "http://software.complete.org/configfile";
     description = "Configuration file reading & writing";
     license = "LGPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/CouchDB/default.nix b/pkgs/development/libraries/haskell/CouchDB/default.nix
index 137aee52fb81..98002a4c4696 100644
--- a/pkgs/development/libraries/haskell/CouchDB/default.nix
+++ b/pkgs/development/libraries/haskell/CouchDB/default.nix
@@ -1,14 +1,18 @@
-{cabal, network, json, HTTP, mtl}:
+{ cabal, HTTP, json, mtl, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "CouchDB";
-  version = "0.8.1.1";
-  
-  sha256 = "91edc35782e43a3b8dd5c5d3c303b88c05c57ba686e9565a11fe4d060f9372d7";
-
-  propagatedBuildInputs = [network HTTP mtl json];
+  version = "0.10.1";
+  sha256 = "1ny62ab0sjrkh7mpxj0ahqrv7c8dh0n5s1g8xl0mq3yiwlrjdsim";
+  buildDepends = [ HTTP json mtl network ];
   meta = {
-    description = "";
+    homepage = "http://github.com/arjunguha/haskell-couchdb/";
+    description = "CouchDB interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/Crypto/default.nix b/pkgs/development/libraries/haskell/Crypto/default.nix
index 1a43ebd40f78..3b2eccf081bf 100644
--- a/pkgs/development/libraries/haskell/Crypto/default.nix
+++ b/pkgs/development/libraries/haskell/Crypto/default.nix
@@ -1,12 +1,19 @@
-{cabal, HUnit, QuickCheck}:
+{ cabal, HUnit, QuickCheck, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Crypto";
-  version = "4.1.0";
-  sha256 = "0984c833c5dfa6f4d56fd6fb284db7b7cef6676dc7999a1436aa856becba2b8f";
-  propagatedBuildInputs = [HUnit QuickCheck];
+  version = "4.2.3";
+  sha256 = "02wi8lyi27i8cdj8vclrl7vcng38srdzz9qpqwsc4y4lmvgg82br";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ HUnit QuickCheck random ];
   meta = {
-    description = "Several encryption algorithms for Haskell";
+    description = "Collects together existing Haskell cryptographic functions into a package";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/Diff/default.nix b/pkgs/development/libraries/haskell/Diff/default.nix
index ae408f69d4c9..f54344882bb9 100644
--- a/pkgs/development/libraries/haskell/Diff/default.nix
+++ b/pkgs/development/libraries/haskell/Diff/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Diff";
-  version = "0.1.2";
-  sha256 = "f831ce6029a75b54dd69801d865ed45284f7dacf723fe5fd81758ad03f8eef5e";
+  version = "0.1.3";
+  sha256 = "02dhy4rp3mkzm5x3h1rkdin2h8qcb7h7nhn14gl2gvl6wdykfh5w";
   meta = {
-    description = "O(ND) diff algorithm in Haskell";
+    description = "O(ND) diff algorithm in haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/GLURaw/default.nix b/pkgs/development/libraries/haskell/GLURaw/default.nix
new file mode 100644
index 000000000000..d64151260629
--- /dev/null
+++ b/pkgs/development/libraries/haskell/GLURaw/default.nix
@@ -0,0 +1,19 @@
+{ cabal, GLU, OpenGLRaw }:
+
+cabal.mkDerivation (self: {
+  pname = "GLURaw";
+  version = "1.1.0.0";
+  sha256 = "03lsskqxh2q7kbnw8hbxz5wp7zq55nwbibsb9maj4y3xpc1vprac";
+  buildDepends = [ OpenGLRaw ];
+  extraLibraries = [ GLU ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A raw binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix b/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix
new file mode 100644
index 000000000000..c07e5c371748
--- /dev/null
+++ b/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix
@@ -0,0 +1,19 @@
+{ cabal, glut, libICE, libSM, libXi, libXmu, mesa, OpenGL }:
+
+cabal.mkDerivation (self: {
+  pname = "GLUT";
+  version = "2.1.1.2";
+  sha256 = "d5ecf4b6bacc5e68ade00710df04fa158c6ed322c74362954716a0baba6bd3fb";
+  buildDepends = [ OpenGL ];
+  extraLibraries = [ glut libICE libSM libXi libXmu mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A binding for the OpenGL Utility Toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix b/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix
index 0b0b04b2a901..553ec3ab8c06 100644
--- a/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix
+++ b/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix
@@ -1,12 +1,19 @@
-{cabal, OpenGL, glut, libSM, libICE, libXmu, libXi, mesa}:
+{ cabal, glut, libICE, libSM, libXi, libXmu, mesa, OpenGL }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "GLUT";
-  version = "2.1.2.1"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
-  sha256 = "0230bfacbfb85c126f1fba45fcd8d02f20da9ee19180b5ada698224362d17264";
-  propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
+  version = "2.1.2.1";
+  sha256 = "0r3js5i468lqlsnvb04iw6gdl81gs3cgqids3xpi4p5qpynbyc02";
+  buildDepends = [ OpenGL ];
+  extraLibraries = [ glut libICE libSM libXi libXmu mesa ];
   meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
     description = "A binding for the OpenGL Utility Toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix b/pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix
new file mode 100644
index 000000000000..50440932727c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix
@@ -0,0 +1,21 @@
+{ cabal, glut, libICE, libSM, libXi, libXmu, mesa, OpenGL, StateVar
+, Tensor
+}:
+
+cabal.mkDerivation (self: {
+  pname = "GLUT";
+  version = "2.2.2.0";
+  sha256 = "0hilpjwkjvpz4sz0zqa36vmx8m1yycjnqdd721mqns7lib2fnzrx";
+  buildDepends = [ OpenGL StateVar Tensor ];
+  extraLibraries = [ glut libICE libSM libXi libXmu mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A binding for the OpenGL Utility Toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/GLUT/default.nix b/pkgs/development/libraries/haskell/GLUT/default.nix
deleted file mode 100644
index 9ccae0604f00..000000000000
--- a/pkgs/development/libraries/haskell/GLUT/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, OpenGL, glut, libSM, libICE, libXmu, libXi, mesa}:
-
-cabal.mkDerivation (self : {
-  pname = "GLUT";
-  version = "2.1.1.2"; # Haskell Platform 2009.0.0
-  sha256 = "d5ecf4b6bacc5e68ade00710df04fa158c6ed322c74362954716a0baba6bd3fb";
-  propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
-  meta = {
-    description = "A binding for the OpenGL Utility Toolkit";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/GlomeVec/default.nix b/pkgs/development/libraries/haskell/GlomeVec/default.nix
index 4ca87d9bced2..421e64ee7a24 100644
--- a/pkgs/development/libraries/haskell/GlomeVec/default.nix
+++ b/pkgs/development/libraries/haskell/GlomeVec/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "GlomeVec";
   version = "0.1.2";
   sha256 = "6023c11977bf16baf487235087e94f5a2f465e8403b8e40ab513e7879dd52639";
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Glome";
     description = "Simple 3D vector library";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Graphalyze/default.nix b/pkgs/development/libraries/haskell/Graphalyze/default.nix
index 0eca1c7edfc1..8084ada2cd68 100644
--- a/pkgs/development/libraries/haskell/Graphalyze/default.nix
+++ b/pkgs/development/libraries/haskell/Graphalyze/default.nix
@@ -1,13 +1,21 @@
-{cabal, bktrees, fgl, graphviz, pandoc}:
+{ cabal, bktrees, extensibleExceptions, fgl, graphviz, pandoc
+, random, text, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Graphalyze";
-  version = "0.10.0.1";
-  sha256 = "8f273de41c7c340d2c7c8b4797d30535e4038616055099cc52bc5d21c10d9f22";
-  propagatedBuildInputs = [bktrees fgl graphviz pandoc ];
+  version = "0.12.0.0";
+  sha256 = "0lsbwf08flaifdddbg6d3ndrb2d1wzs943hk7n0m316bvahq6kgx";
+  buildDepends = [
+    bktrees extensibleExceptions fgl graphviz pandoc random text time
+  ];
   meta = {
-    description = "A library to use graph theory analysis";
-    license = "OtherLicene";
+    description = "Graph-Theoretic Analysis library";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/HAppS/HAppS-Data.nix b/pkgs/development/libraries/haskell/HAppS/HAppS-Data.nix
deleted file mode 100644
index e41cd9515a83..000000000000
--- a/pkgs/development/libraries/haskell/HAppS/HAppS-Data.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{cabal, mtl, sybWithClass, HaXml, HAppSUtil, bytestring, binary}:
-
-cabal.mkDerivation (self : {
-    pname = "HAppS-Data";
-    version = "0.9.3";
-    sha256 = "b23c6f4a949927194e47f9781edc3b7d38513210de4a24987859d68b375bc335";
-    propagatedBuildInputs = [mtl sybWithClass HaXml HAppSUtil bytestring binary];
-    meta = {
-        description = ''HAppS data manipulation libraries'';
-        longDescription = ''
-          This package provides libraries for:
-
-            * Deriving instances for your datatypes.
-
-            * Producing default values of Haskell datatypes.
-
-            * Normalizing values of Haskell datatypes.
-
-            * Marshalling Haskell values to and from XML.
-
-            * Marshalling Haskell values to and from HTML forms.
-        '';
-        license = "free";
-    };
-})
diff --git a/pkgs/development/libraries/haskell/HAppS/HAppS-IxSet.nix b/pkgs/development/libraries/haskell/HAppS/HAppS-IxSet.nix
deleted file mode 100644
index 57aafa82eb45..000000000000
--- a/pkgs/development/libraries/haskell/HAppS/HAppS-IxSet.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl, hslogger, HAppSUtil, HAppSState, HAppSData, sybWithClass}:
-
-cabal.mkDerivation (self : {
-    pname = "HAppS-IxSet";
-    version = "0.9.3";
-    sha256 = "ebacd72e153bbcafb18bf4fa607550de98f8a991e9cfd8314b572cacf155a372";
-    propagatedBuildInputs = [mtl hslogger HAppSUtil HAppSState HAppSData sybWithClass];
-    meta = {
-        longDescription = ''Web framework'';
-        license = "free";
-    };
-})
diff --git a/pkgs/development/libraries/haskell/HAppS/HAppS-Server.nix b/pkgs/development/libraries/haskell/HAppS/HAppS-Server.nix
deleted file mode 100644
index 02b3b58f73a3..000000000000
--- a/pkgs/development/libraries/haskell/HAppS/HAppS-Server.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, HaXml, parsec, mtl, network, hslogger, HAppSData, HAppSUtil, HAppSState, HAppSIxSet, HTTP, xhtml, html, bytestring}:
-
-cabal.mkDerivation (self : {
-    pname = "HAppS-Server";
-    version = "0.9.3.1";
-    sha256 = "b03129f332c35cd558b0f32bc626321dcfa2647dd7ddf67f3403eca8c4c52038";
-    propagatedBuildInputs = [HaXml parsec mtl network hslogger HAppSData HAppSUtil HAppSState HAppSIxSet HTTP xhtml html bytestring];
-    meta = {
-        description = ''Web related tools and services.'';
-        longDescription = ''Web framework'';
-        license = "free";
-    };
-})
diff --git a/pkgs/development/libraries/haskell/HAppS/HAppS-State.nix b/pkgs/development/libraries/haskell/HAppS/HAppS-State.nix
deleted file mode 100644
index 04fea3f778a0..000000000000
--- a/pkgs/development/libraries/haskell/HAppS/HAppS-State.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, HaXml, mtl, network, stm, hslogger, HAppSUtil, HAppSData, bytestring, binary, hspread}:
-
-cabal.mkDerivation (self : {
-    pname = "HAppS-State";
-    version = "0.9.3";
-    sha256 = "5099e635f8fcf56f775947a241a24e1aab6eb6d9fee0406e6a2169c4c8b331e4";
-    propagatedBuildInputs = [HaXml mtl network stm hslogger HAppSUtil HAppSData bytestring binary hspread];
-    meta = {
-        description = ''Event-based distributed state.'';
-        longDescription = ''Web framework'';
-        license = "free";
-    };
-})
diff --git a/pkgs/development/libraries/haskell/HAppS/HAppS-Util.nix b/pkgs/development/libraries/haskell/HAppS/HAppS-Util.nix
deleted file mode 100644
index 9f55cc2fa6da..000000000000
--- a/pkgs/development/libraries/haskell/HAppS/HAppS-Util.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl, hslogger, bytestring}:
-
-cabal.mkDerivation (self : {
-    pname = "HAppS-Util";
-    version = "0.9.3";
-    sha256 = "f9120d256e37111b6203dfc4eb598dd438c87e53bb9eb37258c999dd49b8e655";
-    propagatedBuildInputs = [mtl hslogger bytestring];
-    meta = {
-        description = ''Web framework'';
-        license = "free";
-    };
-})
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix b/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix
index 4877a9fe8cb0..8ac9548d6104 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix
@@ -1,12 +1,21 @@
-{cabal, HDBC, postgresql, parsec}:
+{ cabal, HDBC, mtl, parsec, postgresql, time, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HDBC-postgresql";
-  version = "2.1.0.0";
-  sha256 = "424b491766410df73f2df87a5cd4b5f4549850cc53a2f1c937b546ff1ef1562b";
-  propagatedBuildInputs = [HDBC parsec postgresql];
+  version = "2.3.2.0";
+  sha256 = "0fwza9h2ghl70x44c4snfybnnfsj1mwlf5a1x12ddl1fbj6fx6gs";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ HDBC mtl parsec time utf8String ];
+  extraLibraries = [ postgresql ];
   meta = {
-    description = "This package provides a PostgreSQL driver for HDBC";
+    homepage = "http://software.complete.org/hdbc-postgresql";
+    description = "PostgreSQL driver for HDBC";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix b/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix
index e6aefbb825aa..aa983026c915 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix
@@ -1,12 +1,21 @@
-{cabal, HDBC, sqlite}:
+{ cabal, HDBC, mtl, sqlite, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HDBC-sqlite3";
-  version = "2.1.0.0";
-  sha256 = "a95f28fadd67ba1593cf75774308b7cfdde4a78ee5cba0a6aeb6c18723d8d67b";
-  propagatedBuildInputs = [HDBC sqlite];
+  version = "2.3.3.0";
+  sha256 = "11765nsncgyv9j6r5wpziqyhy0lxrmqbhgricbdx0c788ky75y92";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ HDBC mtl utf8String ];
+  extraLibraries = [ sqlite ];
   meta = {
-    description = "This is the Sqlite v3 driver for HDBC, the generic database access system for Haskell";
+    homepage = "http://software.complete.org/hdbc-sqlite3";
+    description = "Sqlite v3 driver for HDBC";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC.nix b/pkgs/development/libraries/haskell/HDBC/HDBC.nix
index abfa0aea85bf..30791deea1c0 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC.nix
@@ -1,12 +1,20 @@
-{cabal, HUnit, QuickCheck, mtl, time, utf8String, convertible, testpack}:
+{ cabal, convertible, mtl, text, time, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HDBC";
-  version = "2.1.1";
-  sha256 = "9a3ab307c006fb9c22089a15d190339c45de0a32e700f2d9eda70423e719197c";
-  propagatedBuildInputs =
-    [HUnit QuickCheck mtl time utf8String convertible testpack];
+  version = "2.3.1.0";
+  sha256 = "1y3qcc0ids9k3af4qkhabwg82q03a21wl4vdqhj1h0zmf08b3m6k";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ convertible mtl text time utf8String ];
   meta = {
-    description = "HDBC provides an abstraction layer between Haskell programs and SQL relational databases";
+    homepage = "https://github.com/jgoerzen/hdbc/wiki";
+    description = "Haskell Database Connectivity";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/HGL/default.nix b/pkgs/development/libraries/haskell/HGL/default.nix
index 0faf430dcde8..4b8d6e24c4b8 100644
--- a/pkgs/development/libraries/haskell/HGL/default.nix
+++ b/pkgs/development/libraries/haskell/HGL/default.nix
@@ -1,13 +1,17 @@
-{cabal, X11}:
+{ cabal, X11 }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HGL";
-  version = "3.2.0.0";
-  sha256 = "fa7cb1981f6e5a89b35e0fc2593c0945175a0d97fc3bc356cc8724fa1c881e86";
-  propagatedBuildInputs = [X11];
-  configureFlags = ''--constraint=base<4'';
+  version = "3.2.0.2";
+  sha256 = "13wcvf6bfii9pihr8m08b81fyslf5n587ds4zzgizbd8m38k81vz";
+  buildDepends = [ X11 ];
   meta = {
     description = "A simple graphics library based on X11 or Win32";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HList/default.nix b/pkgs/development/libraries/haskell/HList/default.nix
index 0e95d1771e5d..657e4899b7b2 100644
--- a/pkgs/development/libraries/haskell/HList/default.nix
+++ b/pkgs/development/libraries/haskell/HList/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HList";
   version = "0.2.3";
   sha256 = "1efbe0c2cb361ab0a9d864a09f9c58075132cb50094207260cb1363fe73c2908";
   meta = {
     description = "Heterogeneous lists";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/HStringTemplate/default.nix b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
index 0d9c34b890e6..55d2914d5bc9 100644
--- a/pkgs/development/libraries/haskell/HStringTemplate/default.nix
+++ b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
@@ -1,12 +1,21 @@
-{cabal, parsec, time, text, utf8String, parallel}:
+{ cabal, deepseq, mtl, parsec, syb, sybWithClass, text, time
+, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HStringTemplate";
-  version = "0.6.5";
-  sha256 = "e40b69e22900f381ca7fb080ea6e70d623e52e909bd7b896bc24e15c8e43252c";
-  propagatedBuildInputs = [parsec time text utf8String parallel];
+  version = "0.6.6";
+  sha256 = "1ian79az5q6m08pwb5fks52ffs4h2mq02kkcwmr6jb7i0ha2k2si";
+  buildDepends = [
+    deepseq mtl parsec syb sybWithClass text time utf8String
+  ];
   meta = {
     description = "StringTemplate implementation in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix b/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix
new file mode 100644
index 000000000000..d16db78d8f4f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix
@@ -0,0 +1,18 @@
+{ cabal, network, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "HTTP";
+  version = "3001.1.5";
+  sha256 = "e34d9f979bafbbf2e45bf90a9ee9bfd291f3c67c291a250cc0a6378431578aeb";
+  buildDepends = [ network parsec ];
+  meta = {
+    homepage = "http://www.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HTTP/3001.nix b/pkgs/development/libraries/haskell/HTTP/3001.nix
deleted file mode 100644
index d54ff70c1a4e..000000000000
--- a/pkgs/development/libraries/haskell/HTTP/3001.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl, network, parsec}:
-
-cabal.mkDerivation (self : {
-  pname = "HTTP";
-  version = "3001.1.5"; 
-  sha256 = "e34d9f979bafbbf2e45bf90a9ee9bfd291f3c67c291a250cc0a6378431578aeb";
-  propagatedBuildInputs = [mtl network parsec];
-  meta = {
-    description = "a Haskell library for client-side HTTP";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix b/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
new file mode 100644
index 000000000000..13d271dfc36f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, network, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "HTTP";
+  version = "4000.0.6";
+  sha256 = "75af1ac4dc21b10c8a1a54a33179ea822e591887bab7278360a3d6b38304d39b";
+  buildDepends = [ mtl network parsec ];
+  meta = {
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix b/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix
index 23b09543707c..fee3431829f8 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, mtl, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.0.9"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "4000.0.9";
   sha256 = "1e2b4a8b782ad1417c8755bb0d248851bc142b351366ed460e07f2945a5e95ba";
-  propagatedBuildInputs = [mtl network parsec];
+  buildDepends = [ mtl network parsec ];
   meta = {
-    description = "a Haskell library for client-side HTTP";
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix b/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix
new file mode 100644
index 000000000000..d007467e0e34
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, network, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "HTTP";
+  version = "4000.1.1";
+  sha256 = "09khx5fb673a0d7m3bl39xjdxvc60m52rmm4865cha2mby0zidy3";
+  buildDepends = [ mtl network parsec ];
+  meta = {
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.1.2.nix b/pkgs/development/libraries/haskell/HTTP/4000.1.2.nix
new file mode 100644
index 000000000000..5dcb4cbe618c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTTP/4000.1.2.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, network, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "HTTP";
+  version = "4000.1.2";
+  sha256 = "19vcy8xinrvn01caly6sg1p1yvbbf7nwq10kxmnwqssnl4h5cwn8";
+  buildDepends = [ mtl network parsec ];
+  meta = {
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HTTP/default.nix b/pkgs/development/libraries/haskell/HTTP/default.nix
deleted file mode 100644
index 3c0d9a7b8d02..000000000000
--- a/pkgs/development/libraries/haskell/HTTP/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl, network, parsec}:
-
-cabal.mkDerivation (self : {
-  pname = "HTTP";
-  version = "4000.0.6"; # Haskell Platform 2009.1.1
-  sha256 = "75af1ac4dc21b10c8a1a54a33179ea822e591887bab7278360a3d6b38304d39b";
-  propagatedBuildInputs = [mtl network parsec];
-  meta = {
-    description = "a Haskell library for client-side HTTP";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix b/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
new file mode 100644
index 000000000000..ebf561825ce0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "HUnit";
+  version = "1.2.0.3";
+  sha256 = "954f584f7c096c3ddef677e70b3811195bb4fd18dfdb4727a260ca7d7465de12";
+  meta = {
+    homepage = "http://hunit.sourceforge.net/";
+    description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix b/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix
index a2cd4665e790..ec65d160e866 100644
--- a/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HUnit";
-  version = "1.2.2.1"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "1.2.2.1";
   sha256 = "47235503b666658588181795540d29212283059b21edc42e1b4f1998e46ac853";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://hunit.sourceforge.net/";
     description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix b/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix
new file mode 100644
index 000000000000..9c58da37b503
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix
@@ -0,0 +1,19 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "HUnit";
+  version = "1.2.2.3";
+  sha256 = "158i6s014ybh5bflzspd21qzdlhdyk89yqpmk8kwc59lxjvvjsxz";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://hunit.sourceforge.net/";
+    description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix b/pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix
new file mode 100644
index 000000000000..e0dd6bd2bc17
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix
@@ -0,0 +1,19 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "HUnit";
+  version = "1.2.4.2";
+  sha256 = "0yijvrjmmz6vvgi5h1195z4psmymvhq6rr7kkd26nqbd34lbrg7x";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://hunit.sourceforge.net/";
+    description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HUnit/default.nix b/pkgs/development/libraries/haskell/HUnit/default.nix
deleted file mode 100644
index a6f66eefad67..000000000000
--- a/pkgs/development/libraries/haskell/HUnit/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "HUnit";
-  version = "1.2.0.3"; # Haskell Platform 2009.0.0
-  sha256 = "954f584f7c096c3ddef677e70b3811195bb4fd18dfdb4727a260ca7d7465de12";
-  meta = {
-    description = "A unit testing framework for Haskell";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/HaXml/1.13.3.nix b/pkgs/development/libraries/haskell/HaXml/1.13.3.nix
new file mode 100644
index 000000000000..30794498a5a2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HaXml/1.13.3.nix
@@ -0,0 +1,19 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "HaXml";
+  version = "1.13.3";
+  sha256 = "08d9wy0rg9m66dd10x0zvkl74l25vxdakz7xp3j88s2gd31jp1v0";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://www.cs.york.ac.uk/fp/HaXml/";
+    description = "Utilities for manipulating XML documents";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HaXml/1.20.2.nix b/pkgs/development/libraries/haskell/HaXml/1.20.2.nix
new file mode 100644
index 000000000000..2adab3b71593
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HaXml/1.20.2.nix
@@ -0,0 +1,20 @@
+{ cabal, polyparse, random }:
+
+cabal.mkDerivation (self: {
+  pname = "HaXml";
+  version = "1.20.2";
+  sha256 = "05kmr2ablinnrg3x1xr19g5kzzby322lblvcvhwbkv26ajwi0b63";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ polyparse random ];
+  meta = {
+    homepage = "http://www.cs.york.ac.uk/fp/HaXml/";
+    description = "Utilities for manipulating XML documents";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HaXml/1.22.3.nix b/pkgs/development/libraries/haskell/HaXml/1.22.3.nix
new file mode 100644
index 000000000000..99c692093f7f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HaXml/1.22.3.nix
@@ -0,0 +1,20 @@
+{ cabal, polyparse, random }:
+
+cabal.mkDerivation (self: {
+  pname = "HaXml";
+  version = "1.22.3";
+  sha256 = "10gbax7nih45ck5fg056gnfgzr7zyndxpvdhvx3af2wnrmilkcbh";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ polyparse random ];
+  meta = {
+    homepage = "http://www.cs.york.ac.uk/fp/HaXml/";
+    description = "Utilities for manipulating XML documents";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HaXml/1.22.5.nix b/pkgs/development/libraries/haskell/HaXml/1.22.5.nix
new file mode 100644
index 000000000000..76167c0a2655
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HaXml/1.22.5.nix
@@ -0,0 +1,20 @@
+{ cabal, polyparse, random }:
+
+cabal.mkDerivation (self: {
+  pname = "HaXml";
+  version = "1.22.5";
+  sha256 = "1ckmi8iwyaid4mcnh8117s9kq45f8r7sidh6dbhzbj0dl29rrkbz";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ polyparse random ];
+  meta = {
+    homepage = "http://www.cs.york.ac.uk/fp/HaXml/";
+    description = "Utilities for manipulating XML documents";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HaXml/default.nix b/pkgs/development/libraries/haskell/HaXml/default.nix
deleted file mode 100644
index 00a5cba60eff..000000000000
--- a/pkgs/development/libraries/haskell/HaXml/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "HaXml";
-  version = "1.13.3";
-  sha256 = "08d9wy0rg9m66dd10x0zvkl74l25vxdakz7xp3j88s2gd31jp1v0";
-  meta = {
-    description = "Haskell utilities for parsing, filtering, transforming and generating XML documents.";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/Hipmunk/default.nix b/pkgs/development/libraries/haskell/Hipmunk/default.nix
index 39dee6e8b093..537bc0ca30b1 100644
--- a/pkgs/development/libraries/haskell/Hipmunk/default.nix
+++ b/pkgs/development/libraries/haskell/Hipmunk/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, StateVar, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Hipmunk";
-  version = "0.2.1";
-  sha256 = "6482f73367526fae215808098296c3e11e39c7466a441c5c475193a3ccccd4d9";
+  version = "5.2.0.2";
+  sha256 = "18ly05q953x59smqqrhwjlfa1v6lqma0xiarmr689i63zzb7ji8z";
+  buildDepends = [ StateVar transformers ];
   meta = {
+    homepage = "http://patch-tag.com/r/felipe/hipmunk/home";
     description = "A Haskell binding for Chipmunk";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/HsSyck/default.nix b/pkgs/development/libraries/haskell/HsSyck/default.nix
index 6b1681c6b372..f27d1f97f374 100644
--- a/pkgs/development/libraries/haskell/HsSyck/default.nix
+++ b/pkgs/development/libraries/haskell/HsSyck/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal, syb, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HsSyck";
-  version = "0.45";
-  sha256 = "67d02a892cd4535a02cc3ebf7b6e9f898a64428ec6783488875ac694d7fafb79";
+  version = "0.50";
+  sha256 = "0ap675i2fngvd1nw1dk8p2fz4nbd2aq5ci8dsvpcjbp28y9j2blm";
+  buildDepends = [ syb utf8String ];
   meta = {
     description = "Fast, lightweight YAML loader and dumper";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/JsContracts/default.nix b/pkgs/development/libraries/haskell/JsContracts/default.nix
new file mode 100644
index 000000000000..51a0e127ecf9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/JsContracts/default.nix
@@ -0,0 +1,20 @@
+{ cabal, mtl, parsec, syb, WebBits, WebBitsHtml }:
+
+cabal.mkDerivation (self: {
+  pname = "JsContracts";
+  version = "0.5.3";
+  sha256 = "17l6kdpdc7lrpd9j4d2b6vklkpclshcjy6hzpi442b7pj96sn589";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl parsec syb WebBits WebBitsHtml ];
+  meta = {
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "Design-by-contract for JavaScript";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ListLike/default.nix b/pkgs/development/libraries/haskell/ListLike/default.nix
new file mode 100644
index 000000000000..476040575299
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ListLike/default.nix
@@ -0,0 +1,19 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ListLike";
+  version = "3.1.1";
+  sha256 = "16q1rsjr9rjlm8iwmr32s1yfcpw0xj34hvb8jfjqyfsail6nh9fh";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://software.complete.org/listlike";
+    description = "Generic support for list-like structures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix b/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix
index 4b67f75ad252..d006076c2476 100644
--- a/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix
+++ b/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix
@@ -1,14 +1,17 @@
-{cabal, transformers, monadsFd}:
+{ cabal, monadsFd, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MaybeT-transformers";
-  version = "0.1";
-  sha256 = "b24b78e3a895587722c9ce899f9ef07b509db1a5b3b86f5b7b0e8bc986c8fb8f";
-  propagatedBuildInputs = [transformers monadsFd];
+  version = "0.2";
+  sha256 = "189w8dpxyq7gksca6k08hb4vpanpz06c99akgzpcpjy0i7k22ily";
+  buildDepends = [ monadsFd transformers ];
   meta = {
-    description = "Support for computations with failures";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "MaybeT monad transformer using transformers instead of mtl";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/MaybeT/default.nix b/pkgs/development/libraries/haskell/MaybeT/default.nix
index 783ff85d0c25..348560508622 100644
--- a/pkgs/development/libraries/haskell/MaybeT/default.nix
+++ b/pkgs/development/libraries/haskell/MaybeT/default.nix
@@ -1,14 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MaybeT";
   version = "0.1.2";
   sha256 = "995e61165122656807d84174e5c1516340fd7ddeba6571c20751352a8476b632";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
     description = "MaybeT monad transformer";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/MemoTrie/default.nix b/pkgs/development/libraries/haskell/MemoTrie/default.nix
index f826d0b13e08..61ba44a49246 100644
--- a/pkgs/development/libraries/haskell/MemoTrie/default.nix
+++ b/pkgs/development/libraries/haskell/MemoTrie/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MemoTrie";
-  version = "0.4.9";
-  sha256 = "f17dd0b73c1a11a6edb38fb6f457b9687f2e93aa4677e90f7ec482a528ac02e7";
+  version = "0.4.10";
+  sha256 = "1hkraq33sai046gwqlabc9nkz6jbl6vgj0c6lc6j4j5h5d8v08kk";
   meta = {
+    homepage = "http://haskell.org/haskellwiki/MemoTrie";
     description = "Trie-based memo functions";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/MissingH/default.nix b/pkgs/development/libraries/haskell/MissingH/default.nix
index 252eb88c9290..ea70c41e7705 100644
--- a/pkgs/development/libraries/haskell/MissingH/default.nix
+++ b/pkgs/development/libraries/haskell/MissingH/default.nix
@@ -1,14 +1,23 @@
-{cabal, HUnit, hslogger, network, parsec, regexCompat}:
+{ cabal, hslogger, HUnit, mtl, network, parsec, random, regexCompat
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MissingH";
   version = "1.1.0.3";
   sha256 = "2d566511e8a347189cf864188d97f8406c6958c6f0a6fcf8cb1593c6bae13dbf";
-  propagatedBuildInputs = [HUnit hslogger network parsec regexCompat];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    hslogger HUnit mtl network parsec random regexCompat
+  ];
   meta = {
+    homepage = "http://software.complete.org/missingh";
     description = "Large utility library";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
index 8e228bef5ef6..bcbf6b798683 100644
--- a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
+++ b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, extensibleExceptions} :
+{ cabal, extensibleExceptions, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadCatchIO-mtl";
-  version = "0.3.0.1";
-  sha256 = "56113319439a10e338b2e3169e1df575024fbaf97827511f4856e46efbac9a07";
-  propagatedBuildInputs = [mtl extensibleExceptions];
+  version = "0.3.0.4";
+  sha256 = "0wzdrfplwa4v9miv88rg3jvf7l6gphc29lpdp5qjm5873y57jxm7";
+  buildDepends = [ extensibleExceptions mtl ];
   meta = {
+    homepage = "http://darcsden.com/jcpetruzza/MonadCatchIO-mtl";
     description = "Monad-transformer version of the Control.Exception module";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix b/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix
index 665e1687ac08..1c992f4b5719 100644
--- a/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix
+++ b/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix
@@ -1,12 +1,17 @@
-{cabal, transformers, extensibleExceptions} :
+{ cabal, extensibleExceptions, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadCatchIO-transformers";
-  version = "0.2.2.0";
-  sha256 = "7f3b45ac01ac98476d1305333435005a6876e5c04c562e94ad2426ee7ab6936d";
-  propagatedBuildInputs = [transformers extensibleExceptions];
+  version = "0.2.2.2";
+  sha256 = "083c0abwja447j0p8q0j15iv7bshchy83rfqw07b2hfy38467h9g";
+  buildDepends = [ extensibleExceptions transformers ];
   meta = {
     description = "Monad-transformer compatible version of the Control.Exception module";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/MonadPrompt/default.nix b/pkgs/development/libraries/haskell/MonadPrompt/default.nix
new file mode 100644
index 000000000000..daf961f15506
--- /dev/null
+++ b/pkgs/development/libraries/haskell/MonadPrompt/default.nix
@@ -0,0 +1,17 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "MonadPrompt";
+  version = "1.0.0.3";
+  sha256 = "0v6svyiajri7c463bz1a1x1nin5s9s7c3s7y0gjc4cn7lhgdsvf2";
+  buildDepends = [ mtl ];
+  meta = {
+    description = "MonadPrompt, implementation & examples";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/MonadRandom/default.nix b/pkgs/development/libraries/haskell/MonadRandom/default.nix
index 461f98a9033c..f9c68ce7b431 100644
--- a/pkgs/development/libraries/haskell/MonadRandom/default.nix
+++ b/pkgs/development/libraries/haskell/MonadRandom/default.nix
@@ -1,12 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadRandom";
-  version = "0.1.3";
-  sha256 = "be4dd46a93b59a5e94b58e6986934ca91feace9962a1741b6107a3dd06879fea";
-  propagatedBuildInputs = [mtl];
+  version = "0.1.6";
+  sha256 = "1429w2h66sf0cw992xj4w9clapcqgpdzmh80as7zxf8l87rarqqp";
+  buildDepends = [ mtl random ];
   meta = {
     description = "Random-number generation monad";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/ObjectName/default.nix b/pkgs/development/libraries/haskell/ObjectName/default.nix
new file mode 100755
index 000000000000..0be7c3dd22c9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ObjectName/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ObjectName";
+  version = "1.0.0.0";
+  sha256 = "0yr1aa0ail2h9qsq2bslcwwq6cxl2lzajmc1laj19r7ks62p32rm";
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "Explicitly handled object names";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/OneTuple/default.nix b/pkgs/development/libraries/haskell/OneTuple/default.nix
new file mode 100644
index 000000000000..2ecc841a8a47
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OneTuple/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "OneTuple";
+  version = "0.2.1";
+  sha256 = "1x52b68zh3k9lnps5s87kzan7dzvqp6mrwgayjq15w9dv6v78vsb";
+  meta = {
+    description = "Singleton Tuple";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/OpenAL/default.nix b/pkgs/development/libraries/haskell/OpenAL/default.nix
index 45d2394960dc..a4a77aa82441 100644
--- a/pkgs/development/libraries/haskell/OpenAL/default.nix
+++ b/pkgs/development/libraries/haskell/OpenAL/default.nix
@@ -1,12 +1,19 @@
-{cabal, OpenGL, openal}:
+{ cabal, ObjectName, openal, StateVar, Tensor }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OpenAL";
-  version = "1.3.1.1"; # Haskell Platform 2009.0.0
-  sha256 = "4875e015770feb93d5127d4b6f2338eb3957a0c36f64ccb8b3846010619f89b0";
-  propagatedBuildInputs = [OpenGL openal];
+  version = "1.4.0.0";
+  sha256 = "1vn9r8fd4zwqm8a9d8bgvi9vs1lmygn8sw1rlv819b5wmjwz3ms2";
+  buildDepends = [ ObjectName StateVar Tensor ];
+  extraLibraries = [ openal ];
   meta = {
+    homepage = "http://connect.creativelabs.com/openal/";
     description = "A binding to the OpenAL cross-platform 3D audio API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix b/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix
new file mode 100644
index 000000000000..e74fcdca0245
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix
@@ -0,0 +1,18 @@
+{ cabal, libX11, mesa }:
+
+cabal.mkDerivation (self: {
+  pname = "OpenGL";
+  version = "2.2.1.1";
+  sha256 = "926ca25cf9502cdaaeb8ade484015468cb60594e1bfbf0e04bd01235d8d9a792";
+  extraLibraries = [ libX11 mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix b/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix
index 46e0fd0dad75..65e3da59367a 100644
--- a/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix
+++ b/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix
@@ -1,12 +1,18 @@
-{cabal, mesa, libX11}:
+{ cabal, libX11, mesa }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OpenGL";
-  version = "2.2.3.0"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
-  sha256 = "a75c3277bb20fda9a4ac1eb0e838fe4b5baf92f5539466b92bd255626afb0502";
-  propagatedBuildInputs = [mesa libX11];
+  version = "2.2.3.0";
+  sha256 = "00h5zdm64mfj5fwnd52kyn9aynsbzqwfic0ymjjakz90pdvk4p57";
+  extraLibraries = [ libX11 mesa ];
   meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
     description = "A binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix b/pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix
new file mode 100644
index 000000000000..2deb96d750f5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix
@@ -0,0 +1,21 @@
+{ cabal, GLURaw, libX11, mesa, ObjectName, OpenGLRaw, StateVar
+, Tensor
+}:
+
+cabal.mkDerivation (self: {
+  pname = "OpenGL";
+  version = "2.4.0.1";
+  sha256 = "0xdclf0m7qxp4157053cbsybpy7fqiiiak0g2kyf8awr7a5736n5";
+  buildDepends = [ GLURaw ObjectName OpenGLRaw StateVar Tensor ];
+  extraLibraries = [ libX11 mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/OpenGL/default.nix b/pkgs/development/libraries/haskell/OpenGL/default.nix
deleted file mode 100644
index dc16fb9cf176..000000000000
--- a/pkgs/development/libraries/haskell/OpenGL/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mesa, libX11}:
-
-cabal.mkDerivation (self : {
-  pname = "OpenGL";
-  version = "2.2.1.1"; # Haskell Platform 2009.0.0
-  sha256 = "926ca25cf9502cdaaeb8ade484015468cb60594e1bfbf0e04bd01235d8d9a792";
-  propagatedBuildInputs = [mesa libX11];
-  meta = {
-    description = "A binding for the OpenGL graphics system";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/OpenGLRaw/default.nix b/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
new file mode 100644
index 000000000000..e4f9daf066cf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
@@ -0,0 +1,18 @@
+{ cabal, GL }:
+
+cabal.mkDerivation (self: {
+  pname = "OpenGLRaw";
+  version = "1.1.0.1";
+  sha256 = "0v6zcy4xvjj5g137rwjsh6hs0ni9dfkvsqynxv4bl5s78amppqnf";
+  extraLibraries = [ GL ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A raw binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/PSQueue/default.nix b/pkgs/development/libraries/haskell/PSQueue/default.nix
new file mode 100644
index 000000000000..ff3bd0b8fb5f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/PSQueue/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "PSQueue";
+  version = "1.1";
+  sha256 = "1k291bh8j5vpcrn6vycww2blwg7jxx9yrfmrqdanz48gs4d8gq58";
+  meta = {
+    description = "Priority Search Queue";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix
new file mode 100644
index 000000000000..a459fd953175
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix
@@ -0,0 +1,18 @@
+{ cabal, random }:
+
+cabal.mkDerivation (self: {
+  pname = "QuickCheck";
+  version = "1.2.0.0";
+  sha256 = "21672d817913ac7ab6d3fd7f102dd5d0f115a0826c95b9604c8c0b0171e8d4ed";
+  buildDepends = [ random ];
+  meta = {
+    homepage = "http://www.math.chalmers.se/~rjmh/QuickCheck/";
+    description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix
new file mode 100644
index 000000000000..c104a4be27a8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix
@@ -0,0 +1,18 @@
+{ cabal, random }:
+
+cabal.mkDerivation (self: {
+  pname = "QuickCheck";
+  version = "1.2.0.1";
+  sha256 = "1gxpvbc0ab4n35b5zcbzng8qc7y3mzgym8cj42bci984f08y1bld";
+  buildDepends = [ random ];
+  meta = {
+    homepage = "http://www.math.chalmers.se/~rjmh/QuickCheck/";
+    description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix b/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix
index 6ad15d153804..df686f71c5b6 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, extensibleExceptions, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.1.0.3"; # Haskell Platform 2010.1.0.0
+  version = "2.1.0.3";
   sha256 = "91a861233fe0a37a032d092dd5e8ec40c2c99fbbf0701081394eb244f23757b1";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ extensibleExceptions mtl random ];
   meta = {
+    homepage = "http://www.cs.chalmers.se/~koen";
     description = "Automatic testing of Haskell programs";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix
new file mode 100644
index 000000000000..828255a9860c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix
@@ -0,0 +1,18 @@
+{ cabal, extensibleExceptions, mtl, random }:
+
+cabal.mkDerivation (self: {
+  pname = "QuickCheck";
+  version = "2.1.1.1";
+  sha256 = "626a6f7a69e2bea3b4fe7c573d0bc8da8c77f97035cb2d3a5e1c9fca382b59c9";
+  buildDepends = [ extensibleExceptions mtl random ];
+  meta = {
+    homepage = "http://www.cse.chalmers.se/~koen";
+    description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
new file mode 100644
index 000000000000..ac9ac3d2a7de
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
@@ -0,0 +1,18 @@
+{ cabal, extensibleExceptions, mtl, random }:
+
+cabal.mkDerivation (self: {
+  pname = "QuickCheck";
+  version = "2.4.0.1";
+  sha256 = "1x7jc2svpxbll8qkrbswh5q59sqcjf2v5a6jnqslf5gwr5qpq18r";
+  buildDepends = [ extensibleExceptions mtl random ];
+  meta = {
+    homepage = "http://code.haskell.org/QuickCheck";
+    description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix
new file mode 100644
index 000000000000..8eb413d2b31c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix
@@ -0,0 +1,18 @@
+{ cabal, extensibleExceptions, random }:
+
+cabal.mkDerivation (self: {
+  pname = "QuickCheck";
+  version = "2.4.1.1";
+  sha256 = "06vrn0j26ai2jfl32yd3kx8by4pimcinjf23b0dyc35z2gb139wj";
+  buildDepends = [ extensibleExceptions random ];
+  meta = {
+    homepage = "http://code.haskell.org/QuickCheck";
+    description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/QuickCheck/QuickCheck-2.nix b/pkgs/development/libraries/haskell/QuickCheck/QuickCheck-2.nix
deleted file mode 100644
index f4463394ea15..000000000000
--- a/pkgs/development/libraries/haskell/QuickCheck/QuickCheck-2.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, mtl}:
-
-cabal.mkDerivation (self : {
-  pname = "QuickCheck";
-  version = "2.1.1.1"; # Haskell Platform 2010.2.0.0
-  sha256 = "626a6f7a69e2bea3b4fe7c573d0bc8da8c77f97035cb2d3a5e1c9fca382b59c9";
-  propagatedBuildInputs = [mtl];
-  meta = {
-    description = "Automatic testing of Haskell programs";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/QuickCheck/default.nix b/pkgs/development/libraries/haskell/QuickCheck/default.nix
deleted file mode 100644
index 5405e50aa6bc..000000000000
--- a/pkgs/development/libraries/haskell/QuickCheck/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "QuickCheck";
-  version = "1.2.0.0"; # Haskell Platform 2009.0.0
-  sha256 = "21672d817913ac7ab6d3fd7f102dd5d0f115a0826c95b9604c8c0b0171e8d4ed";
-  meta = {
-    description = "Automatic testing of Haskell programs";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/RSA/default.nix b/pkgs/development/libraries/haskell/RSA/default.nix
new file mode 100644
index 000000000000..7476896337c2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/RSA/default.nix
@@ -0,0 +1,19 @@
+{ cabal, binary, pureMD5, random, SHA }:
+
+cabal.mkDerivation (self: {
+  pname = "RSA";
+  version = "1.0.6.1";
+  sha256 = "1d0birzvapcsgay0wwh5v9mcd77sghj1bps9ws04ww9ga97gyp0l";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary pureMD5 random SHA ];
+  meta = {
+    description = "Implementation of RSA, using the padding schemes of PKCS#1 v2.1.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Ranged-sets/default.nix b/pkgs/development/libraries/haskell/Ranged-sets/default.nix
index 547ac31b03cd..6a6211b6263a 100644
--- a/pkgs/development/libraries/haskell/Ranged-sets/default.nix
+++ b/pkgs/development/libraries/haskell/Ranged-sets/default.nix
@@ -1,14 +1,18 @@
-{cabal, HUnit, QuickCheck}:
+{ cabal, HUnit, QuickCheck }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Ranged-sets";
-  version = "0.2.1";
-  sha256 = "dee83d2ea0ae56ff31eb7c74a0785328ca8621792c0859e223b12c17bb775f12";
-  propagatedBuildInputs = [HUnit QuickCheck];
+  version = "0.3.0";
+  sha256 = "1am0lsd3yiyn7ayk9k4ff7zdj67m0pxjl10cxi5f9hgjj4y9380l";
+  buildDepends = [ HUnit QuickCheck ];
   meta = {
+    homepage = "http://code.haskell.org/ranged-sets";
     description = "Ranged sets for Haskell";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/SDL-image/default.nix b/pkgs/development/libraries/haskell/SDL-image/default.nix
index 4555cf322b84..e6695f013580 100644
--- a/pkgs/development/libraries/haskell/SDL-image/default.nix
+++ b/pkgs/development/libraries/haskell/SDL-image/default.nix
@@ -1,12 +1,18 @@
-{cabal, SDL, SDL_image}:
+{ cabal, SDL, SDL_image }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL-image";
-  version = "0.5.2";
-  sha256 = "82765f5ed11ef2ad3eb47f59105fe5aecd8de2515d698ef9ea989dc4cec18016";
-  propagatedBuildInputs = [SDL SDL_image];
+  version = "0.6.1";
+  sha256 = "18n6al40db7xalqqr4hp0l26qxxv1kmd8mva0n7vmhg05zypf6ni";
+  buildDepends = [ SDL ];
+  extraLibraries = [ SDL_image ];
   meta = {
     description = "Binding to libSDL_image";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/SDL-mixer/default.nix b/pkgs/development/libraries/haskell/SDL-mixer/default.nix
index e1bd81d834b3..674282e30a86 100644
--- a/pkgs/development/libraries/haskell/SDL-mixer/default.nix
+++ b/pkgs/development/libraries/haskell/SDL-mixer/default.nix
@@ -1,12 +1,18 @@
-{cabal, SDL, SDL_mixer}:
+{ cabal, SDL, SDL_mixer }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL-mixer";
-  version = "0.5.5";
-  sha256 = "0e1b07a0cbe22eafff7b36f53e4ea840abad50131a867cb70d47beaf902fd185";
-  propagatedBuildInputs = [SDL SDL_mixer];
+  version = "0.6.1";
+  sha256 = "1fxp5sz0w6pr5047jjvh81wkljxsl7fca239364i50m44mpcsyn1";
+  buildDepends = [ SDL ];
+  extraLibraries = [ SDL_mixer ];
   meta = {
     description = "Binding to libSDL_mixer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/SDL-ttf/default.nix b/pkgs/development/libraries/haskell/SDL-ttf/default.nix
index 89c3a9bad8a6..f48e0dbab510 100644
--- a/pkgs/development/libraries/haskell/SDL-ttf/default.nix
+++ b/pkgs/development/libraries/haskell/SDL-ttf/default.nix
@@ -1,12 +1,18 @@
-{cabal, SDL, SDL_ttf}:
+{ cabal, SDL, SDL_ttf }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL-ttf";
-  version = "0.5.5";
-  sha256 = "577109d01fca61c103520e7bf33e45af118bcb6d15fcd6da7a8b72c43c69cbb6";
-  propagatedBuildInputs = [SDL SDL_ttf];
+  version = "0.6.1";
+  sha256 = "0n6vbigkjfvvk98bp7ys14snpd1zmbz69ndhhpnrn02h363vwkal";
+  buildDepends = [ SDL ];
+  extraLibraries = [ SDL_ttf ];
   meta = {
     description = "Binding to libSDL_ttf";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/SDL/default.nix b/pkgs/development/libraries/haskell/SDL/default.nix
index 0ffca624cd4b..8adf60f938cd 100644
--- a/pkgs/development/libraries/haskell/SDL/default.nix
+++ b/pkgs/development/libraries/haskell/SDL/default.nix
@@ -1,12 +1,17 @@
-{cabal, SDL}:
+{ cabal, SDL }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL";
-  version = "0.5.5";
-  sha256 = "cc56c723e03befd99be0a293347690ba7d2cb7fdafcbbc287f067a8cf70af172";
-  propagatedBuildInputs = [SDL];
+  version = "0.6.2";
+  sha256 = "1fqj3sw709q28rmjzcffa3k1mcp7r9cvdrrqmcppaz5yv63ychly";
+  extraLibraries = [ SDL ];
   meta = {
     description = "Binding to libSDL";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/SHA/default.nix b/pkgs/development/libraries/haskell/SHA/default.nix
index f958ec713a15..2dc931e3c033 100644
--- a/pkgs/development/libraries/haskell/SHA/default.nix
+++ b/pkgs/development/libraries/haskell/SHA/default.nix
@@ -1,12 +1,19 @@
-{cabal, binary}:
+{ cabal, binary }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SHA";
-  version = "1.4.1.1";
-  sha256 = "8ecdc91679d1aa1d4050e1124cf5af79ae2ece66aee3b907e1078d71bf03169a";
-  propagatedBuildInputs = [binary];
+  version = "1.4.1.3";
+  sha256 = "1sx68mvzb2y3dq9hk769fzp8vw4jf4hk5v45i0a9a8b31imlicf0";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary ];
   meta = {
     description = "Implementations of the SHA suite of message digest functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/SMTPClient/default.nix b/pkgs/development/libraries/haskell/SMTPClient/default.nix
index 45c8d4aeaeed..755c17eee8e9 100644
--- a/pkgs/development/libraries/haskell/SMTPClient/default.nix
+++ b/pkgs/development/libraries/haskell/SMTPClient/default.nix
@@ -1,14 +1,17 @@
-{cabal, hsemail, network}:
+{ cabal, extensibleExceptions, hsemail, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SMTPClient";
-  version = "1.0.3";
-  sha256 = "c9907834565b5b712d50c50823513675b982c8b51e7b95680a3495eccb73ce66";
-  propagatedBuildInputs = [hsemail network];
+  version = "1.0.4";
+  sha256 = "12m0qv8bf0s52yz07sipxlvas8k3xvi1d4lw6960q0nxr40ijyy2";
+  buildDepends = [ extensibleExceptions hsemail network ];
   meta = {
     description = "A simple SMTP client library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix b/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
index 9a697b95c911..c31f0e5d2898 100644
--- a/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
+++ b/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
@@ -1,12 +1,17 @@
-{cabal, Shellac, haskeline}:
+{ cabal, haskeline, mtl, Shellac }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Shellac-haskeline";
-  version = "0.2";
-  sha256 = "e3024b1915efd9841be9f405503f26c52524e7ea2a9c630ad651a9986e5329e0";
-  propagatedBuildInputs = [Shellac haskeline];
+  version = "0.2.0.1";
+  sha256 = "1xvs2ni83yyf7rx3ikmn2bkx20fyj03d03crqyyfw28mikhgv5br";
+  buildDepends = [ haskeline mtl Shellac ];
   meta = {
     description = "Haskeline backend module for Shellac";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix b/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
index 991126f709b2..20fee419fe95 100644
--- a/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
+++ b/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
@@ -1,12 +1,17 @@
-{cabal, Shellac, readline}:
+{ cabal, readline, Shellac }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Shellac-readline";
   version = "0.9";
   sha256 = "3edffecf2225c199f0a4df55e3685f7deee47755ae7f8d03f5da7fac3c2ab878";
-  propagatedBuildInputs = [Shellac readline];
+  buildDepends = [ readline Shellac ];
   meta = {
     description = "Readline backend module for Shellac";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac.nix b/pkgs/development/libraries/haskell/Shellac/Shellac.nix
index 8660bd6dc134..8f36e8ebc088 100644
--- a/pkgs/development/libraries/haskell/Shellac/Shellac.nix
+++ b/pkgs/development/libraries/haskell/Shellac/Shellac.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Shellac";
-  version = "0.9.5";
-  sha256 = "a8b07918be23b7e7c3114aed7d929f95ace37fbacd82f185358f05f337f09c70";
-  propagatedBuildInputs = [mtl];
+  version = "0.9.5.1";
+  sha256 = "19fpbh5ijy9xc3rhl9qwyan8jfnz9nsqvnsjxb7kkb7l2bpz4qfp";
+  buildDepends = [ mtl ];
   meta = {
-    description = "A framework for creating shell environments";
+    homepage = "http://www.cs.princeton.edu/~rdockins/shellac/home/";
+    description = "A framework for creating shell envinronments";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/StateVar/default.nix b/pkgs/development/libraries/haskell/StateVar/default.nix
new file mode 100755
index 000000000000..95148607b6fe
--- /dev/null
+++ b/pkgs/development/libraries/haskell/StateVar/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "StateVar";
+  version = "1.0.0.0";
+  sha256 = "1c1b6a6nn1cdnba08zzp0645wl482h7yaa69zw2l3wwyyyccjic4";
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "State variables";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Tensor/default.nix b/pkgs/development/libraries/haskell/Tensor/default.nix
new file mode 100755
index 000000000000..3856409819df
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Tensor/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "Tensor";
+  version = "1.0.0.1";
+  sha256 = "10arhk5gkn5jxpb53r80bblpk0afdax1fc2mik40hj5g5g960cp9";
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "Tensor data types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Vec/default.nix b/pkgs/development/libraries/haskell/Vec/default.nix
index 92e1a68db28d..94c157765d34 100644
--- a/pkgs/development/libraries/haskell/Vec/default.nix
+++ b/pkgs/development/libraries/haskell/Vec/default.nix
@@ -1,14 +1,18 @@
-{cabal, QuickCheck}:
+{ cabal, QuickCheck }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Vec";
-  version = "0.9.7";
-  sha256 = "a67197f4dc022d6119a790e029a9475a17bb04ad812006bb154e5da9cd8f7ac7";
-  propagatedBuildInputs = [QuickCheck];
+  version = "0.9.8";
+  sha256 = "0yaqy0p2jh2ajf8897vsxl5w6bmavixn6n5cc7w8kdnybpbdms6v";
+  buildDepends = [ QuickCheck ];
   meta = {
+    homepage = "http://graphics.cs.ucdavis.edu/~sdillard/Vec";
     description = "Fixed-length lists and low-dimensional linear algebra";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/WebBits-Html/default.nix b/pkgs/development/libraries/haskell/WebBits-Html/default.nix
new file mode 100644
index 000000000000..18371c57f082
--- /dev/null
+++ b/pkgs/development/libraries/haskell/WebBits-Html/default.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, parsec, syb, WebBits }:
+
+cabal.mkDerivation (self: {
+  pname = "WebBits-Html";
+  version = "1.0.1";
+  sha256 = "134rmm5ccfsjdr0pdwn2mf81l81rgxapa3wjjfjkxrkxq6hav35n";
+  buildDepends = [ mtl parsec syb WebBits ];
+  meta = {
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "JavaScript analysis tools";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/WebBits/1.0.nix b/pkgs/development/libraries/haskell/WebBits/1.0.nix
new file mode 100644
index 000000000000..89161608843e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/WebBits/1.0.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, parsec, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "WebBits";
+  version = "1.0";
+  sha256 = "1xqk4ajywlaq9nb9a02i7c25na5p2qbpc2k9zw93gbapppjiapsc";
+  buildDepends = [ mtl parsec syb ];
+  meta = {
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "JavaScript analysis tools";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/WebBits/default.nix b/pkgs/development/libraries/haskell/WebBits/default.nix
new file mode 100644
index 000000000000..88502db4dfff
--- /dev/null
+++ b/pkgs/development/libraries/haskell/WebBits/default.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, parsec, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "WebBits";
+  version = "2.0";
+  sha256 = "14a1rqlq925f6rdbi8yx44xszj5pvskcmw1gi1bj8hbilgmlwi7f";
+  buildDepends = [ mtl parsec syb ];
+  meta = {
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "JavaScript analysis tools";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/WebServer-Extras/default.nix b/pkgs/development/libraries/haskell/WebServer-Extras/default.nix
deleted file mode 100644
index a0fe545ee21d..000000000000
--- a/pkgs/development/libraries/haskell/WebServer-Extras/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{cabal, fetchgit, Crypto, WebServer, base64string, hslogger, json, mtl
-}:
-
-cabal.mkDerivation (self : {
-  pname = "WebServer-Extras";
-  version = "1.2";
-  
-  src = fetchgit {
-    url = git://github.com/arjunguha/haskell-web.git;
-    rev = "76c9aabd31d03f052a80a0f6999dc7c5f1b11c41" ;
-    sha256 = "afd550a4c6aeffe2f3adb38556b8e9ae198e98db17338ea6c8fa92d56c7eddb7";
-  };
-  sourceRoot = "git-export/Extras"; 
-  propagatedBuildInputs = [Crypto WebServer base64string hslogger json mtl];
-  meta = {
-    description = "";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/WebServer/default.nix b/pkgs/development/libraries/haskell/WebServer/default.nix
deleted file mode 100644
index 003a4f27ac70..000000000000
--- a/pkgs/development/libraries/haskell/WebServer/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{cabal, fetchgit, network, mtl, parsec}:
-
-cabal.mkDerivation (self : {
-  pname = "WebServer";
-  version = "1.2";
-  
-  src = fetchgit {
-    url = git://github.com/arjunguha/haskell-web.git;
-    rev = "76c9aabd31d03f052a80a0f6999dc7c5f1b11c41" ;
-    sha256 = "afd550a4c6aeffe2f3adb38556b8e9ae198e98db17338ea6c8fa92d56c7eddb7";
-  };
-
-  propagatedBuildInputs = [network mtl parsec];
-  meta = {
-    description = "";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/X11-xft/default.nix b/pkgs/development/libraries/haskell/X11-xft/default.nix
index 95327cb52883..8f90606d7a10 100644
--- a/pkgs/development/libraries/haskell/X11-xft/default.nix
+++ b/pkgs/development/libraries/haskell/X11-xft/default.nix
@@ -1,14 +1,18 @@
-{ ghc, cabal, X11, utf8String, pkgconfig, libXft }:
+{ ghc, cabal, X11, utf8String, pkgconfig, libXft, freetype, fontconfig }:
 cabal.mkDerivation (self : {
   pname = "X11-xft";
   version = "0.3";
   sha256 = "48892d0d0a90d5b47658877facabf277bf8466b7388eaf6ce163b843432a567d";
-  buildInputs = [ ghc pkgconfig libXft ];
+  buildInputs = [ ghc pkgconfig libXft freetype fontconfig ];
   propagatedBuildInputs = [ X11 utf8String ];
+  configureFlags=["--extra-include-dirs=${freetype}/include/freetype2"];
   meta = {
-    homepage = http://hackage.haskell.org/package/X11-xft;
-    description = "Haskell bindings to the Xft and some Xrender parts";
-    maintainers = with self.stdenv.lib.maintainers; [ astsmtl ];
-    platforms = with self.stdenv.lib.platforms; linux;
+    description = "Bindings to the Xft, X Free Type interface library, and some Xrender parts";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/X11/default.nix b/pkgs/development/libraries/haskell/X11/default.nix
index 214cc3aecc7d..f8eef4dcb366 100644
--- a/pkgs/development/libraries/haskell/X11/default.nix
+++ b/pkgs/development/libraries/haskell/X11/default.nix
@@ -1,4 +1,4 @@
-{cabal, libX11, xineramaSupport ? true, libXinerama ? null, libXext ? null}:
+{cabal, syb, libX11, xineramaSupport ? true, libXinerama ? null, libXext ? null}:
 
 assert xineramaSupport -> (libXinerama != null && libXext != null);
 
@@ -6,8 +6,15 @@ cabal.mkDerivation (self : {
   pname = "X11";
   version = "1.5.0.0";
   sha256 = "653ff8aa4053574a36dbb1729459df6e5a1a87a223bc3eeced8e40c6e3a5406f";
-  propagatedBuildInputs = [libX11] ++ (if xineramaSupport then [libXinerama libXext] else []);
+  propagatedBuildInputs = [libX11 syb] ++ (if xineramaSupport then [libXinerama libXext] else []);
   meta = {
-    description = "A Haskell binding to the X11 graphics library";
+    homepage = "http://code.haskell.org/X11";
+    description = "A binding to the X11 graphics library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/aeson/default.nix b/pkgs/development/libraries/haskell/aeson/default.nix
new file mode 100644
index 000000000000..1edd45f6aa22
--- /dev/null
+++ b/pkgs/development/libraries/haskell/aeson/default.nix
@@ -0,0 +1,23 @@
+{ cabal, attoparsec, blazeBuilder, blazeTextual, deepseq, hashable
+, mtl, syb, text, time, unorderedContainers, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "aeson";
+  version = "0.3.2.9";
+  sha256 = "1qaajk797zpickw4ik5lc03wnmxkrcmv3zik7n1bjqx6h37h0zqw";
+  buildDepends = [
+    attoparsec blazeBuilder blazeTextual deepseq hashable mtl syb text
+    time unorderedContainers vector
+  ];
+  meta = {
+    homepage = "http://github.com/mailrank/aeson";
+    description = "Fast JSON parsing and encoding";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ansi-terminal/default.nix b/pkgs/development/libraries/haskell/ansi-terminal/default.nix
index 1da8fd85591a..484736c70982 100644
--- a/pkgs/development/libraries/haskell/ansi-terminal/default.nix
+++ b/pkgs/development/libraries/haskell/ansi-terminal/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ansi-terminal";
-  version = "0.5.0";
-  sha256 = "ee921584bb0d6c37f48b7069709297506651fe8e2c5a22810c38072b54c2fee9";
+  version = "0.5.5";
+  sha256 = "09r4nlpmkis6cp30jkymfas13hz6ph4zqxhvigrxn6s76v7nb5a8";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://batterseapower.github.com/ansi-terminal";
     description = "Simple ANSI terminal support, with Windows compatibility";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix b/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
index b4507b5f4116..468b35136a33 100644..100755
--- a/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
+++ b/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
@@ -1,12 +1,20 @@
-{cabal, ansiTerminal}:
+{ cabal, ansiTerminal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ansi-wl-pprint";
-  version = "0.5.0";
-  sha256 = "295e6924409012e3371db1bb5c02475614fcf1ea99e6bff45a5fc84fb13b8284";
-  propagatedBuildInputs = [ansiTerminal];
+  version = "0.6.3";
+  sha256 = "1cpkfn1ld0sjysksdsxxwwy1b17s4smmzk8y88y9mb81vgwlalkl";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ansiTerminal ];
   meta = {
+    homepage = "http://github.com/batterseapower/ansi-wl-pprint";
     description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/asn1-data/default.nix b/pkgs/development/libraries/haskell/asn1-data/default.nix
new file mode 100644
index 000000000000..01229fe3f070
--- /dev/null
+++ b/pkgs/development/libraries/haskell/asn1-data/default.nix
@@ -0,0 +1,22 @@
+{ cabal, attoparsec, attoparsecEnumerator, enumerator, mtl, text }:
+
+cabal.mkDerivation (self: {
+  pname = "asn1-data";
+  version = "0.5.1";
+  sha256 = "10ci77pf0y8g7i1fwksv5na32jsy3brfdv6nzrnwih1brq6l5fn4";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsec attoparsecEnumerator enumerator mtl text
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-asn1-data";
+    description = "ASN1 data reader and writer in RAW, BER, DER and CER forms";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/async/default.nix b/pkgs/development/libraries/haskell/async/default.nix
new file mode 100755
index 000000000000..5b310f433b0a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/async/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "async";
+  version = "1.2";
+  sha256 = "a5963d36fc1ba142d18920f967190b25cf80f700d863372b6d33ad5257a1773a";
+  meta = {
+    homepage = "http://gitorious.org/async/";
+    description = "Asynchronous Computations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attempt/default.nix b/pkgs/development/libraries/haskell/attempt/default.nix
new file mode 100644
index 000000000000..52a16a8ac1cc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attempt/default.nix
@@ -0,0 +1,18 @@
+{ cabal, failure }:
+
+cabal.mkDerivation (self: {
+  pname = "attempt";
+  version = "0.3.1.1";
+  sha256 = "0yfn8mh7gy6nh689ic6sygf9d7lk44kpj2wahnljl53k6vw7smv5";
+  buildDepends = [ failure ];
+  meta = {
+    homepage = "http://github.com/snoyberg/attempt/tree/master";
+    description = "Concrete data type for handling extensible exceptions as failures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix b/pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix
new file mode 100644
index 000000000000..bcc9e8b1a6f1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix
@@ -0,0 +1,17 @@
+{ cabal, attoparsecText, enumerator, text }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec-text-enumerator";
+  version = "0.2.0.0";
+  sha256 = "149ipf5qh7wzjrnv98h6j94djr0ndzg8s4rs8h7kzbii21ynmzz5";
+  buildDepends = [ attoparsecText enumerator text ];
+  meta = {
+    description = "Convert an attoparsec-text parser into an iteratee";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec-text/default.nix b/pkgs/development/libraries/haskell/attoparsec-text/default.nix
new file mode 100644
index 000000000000..5ff16e30c18b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-text/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsec, text }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec-text";
+  version = "0.8.5.1";
+  sha256 = "1in0ziqjf2hvlv6yay2b5xkm35j1szzwdfapn5mpflv64qi33i0z";
+  buildDepends = [ attoparsec text ];
+  meta = {
+    homepage = "http://patch-tag.com/r/felipe/attoparsec-text/home";
+    description = "Fast combinator parsing for texts";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec/default.nix b/pkgs/development/libraries/haskell/attoparsec/default.nix
new file mode 100644
index 000000000000..b76545143d6a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec/default.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec";
+  version = "0.9.1.2";
+  sha256 = "0h9j4gn376k6j3v9l6pk7a4vxabkwk80043x6xlyxsh8p77jgj3v";
+  buildDepends = [ deepseq ];
+  meta = {
+    homepage = "https://bitbucket.org/bos/attoparsec";
+    description = "Fast combinator parsing for bytestrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec/enumerator.nix b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
new file mode 100644
index 000000000000..7c990332a37f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsec, enumerator }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec-enumerator";
+  version = "0.2.0.4";
+  sha256 = "14v53vppcf4k3m4kid10pg5r3zsn894f36w1y2pzlc72w81fv3gd";
+  buildDepends = [ attoparsec enumerator ];
+  meta = {
+    homepage = "http://john-millikin.com/software/attoparsec-enumerator/";
+    description = "Convert an Attoparsec parser into an iteratee";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/authenticate/default.nix b/pkgs/development/libraries/haskell/authenticate/default.nix
new file mode 100644
index 000000000000..e4457a3cdf7c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/authenticate/default.nix
@@ -0,0 +1,26 @@
+{ cabal, aeson, attoparsec, base64Bytestring, blazeBuilder
+, caseInsensitive, enumerator, failure, httpEnumerator, httpTypes
+, network, random, RSA, SHA, tagsoup, text, time, tls, transformers
+, xmlEnumerator
+}:
+
+cabal.mkDerivation (self: {
+  pname = "authenticate";
+  version = "0.9.2.2";
+  sha256 = "0rn1f458ag9mmh55hi873xg5iqypwl6vf6blyaxwbgbp6nm327iz";
+  buildDepends = [
+    aeson attoparsec base64Bytestring blazeBuilder caseInsensitive
+    enumerator failure httpEnumerator httpTypes network random RSA SHA
+    tagsoup text time tls transformers xmlEnumerator
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/authenticate/tree/master";
+    description = "Authentication methods for Haskell web applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix b/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix
new file mode 100644
index 000000000000..7fbddd1c43df
--- /dev/null
+++ b/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "base-unicode-symbols";
+  version = "0.2.2.1";
+  sha256 = "095x4mlkn7i9byg6kdp2f7z0x7sizmy4lgsi0rsabazyd3d8rr9l";
+  meta = {
+    homepage = "http://haskell.org/haskellwiki/Unicode-symbols";
+    description = "Unicode alternatives for common functions and operators";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/base64-bytestring/default.nix b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
new file mode 100644
index 000000000000..f974a72347fd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "base64-bytestring";
+  version = "0.1.0.3";
+  sha256 = "0d4j8b1d8z9qr1y446bfkj764xgilk8gw2frj0wn0717y8knvmx3";
+  meta = {
+    homepage = "https://github.com/bos/base64-bytestring";
+    description = "Fast base64 encoding and deconding for ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/base64-string/default.nix b/pkgs/development/libraries/haskell/base64-string/default.nix
index 0d14a6cd1422..e77d5b96ea79 100644
--- a/pkgs/development/libraries/haskell/base64-string/default.nix
+++ b/pkgs/development/libraries/haskell/base64-string/default.nix
@@ -1,14 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "base64-string";
-  version = "0.1";
-  
-  sha256 = "f9a6f050f5d9993313a1ceb49eba827ecf1046af51266d10b0dc899b53f13d8c";
-
-  propagatedBuildInputs = [];
+  version = "0.2";
+  sha256 = "0pkhrimabacsjalzq0y3a197fqfbspsbv8xszzg4vbb1fb59dj1y";
   meta = {
-    description = "";
+    homepage = "http://urchin.earth.li/~ian/cabal/base64-string/";
+    description = "Base64 implementation for String's";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/benchpress/default.nix b/pkgs/development/libraries/haskell/benchpress/default.nix
index 6ccc033f02e9..5b69e6d901e0 100644
--- a/pkgs/development/libraries/haskell/benchpress/default.nix
+++ b/pkgs/development/libraries/haskell/benchpress/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "benchpress";
-  version = "0.2.2";
-  sha256 = "185j2viimr1vbbgh9havdj2nskim8apih1fyvwln76jfrwypy194";
-  propagatedBuildInputs = [mtl];
+  version = "0.2.2.4";
+  sha256 = "0cabjx0gkbk5blqkm9pmnz8kmi3573367365gny4r3m431iwxgnf";
+  buildDepends = [ mtl time ];
   meta = {
-    description = "Benchmarks actions and produces statistics such as min, mean, and median execution time.";
+    homepage = "http://github.com/tibbe/benchpress";
+    description = "Micro-benchmarking with detailed statistics";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/bimap/default.nix b/pkgs/development/libraries/haskell/bimap/default.nix
index ec2dd1d36322..2b132f9cad0b 100644
--- a/pkgs/development/libraries/haskell/bimap/default.nix
+++ b/pkgs/development/libraries/haskell/bimap/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bimap";
   version = "0.2.4";
   sha256 = "d991ae393ade2191f42d8a0d659d2b9a749675735eb5b57872f577ede82565c5";
   meta = {
+    homepage = "http://code.haskell.org/bimap";
     description = "Bidirectional mapping between two key types";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/binary-shared/default.nix b/pkgs/development/libraries/haskell/binary-shared/default.nix
index 8c1bda52453c..340230b506d0 100644
--- a/pkgs/development/libraries/haskell/binary-shared/default.nix
+++ b/pkgs/development/libraries/haskell/binary-shared/default.nix
@@ -1,13 +1,18 @@
-{cabal, binary, mtl}:
+{ cabal, binary, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "binary-shared";
   version = "0.8.1";
   sha256 = "0niq6hgsawsdg3kkjgkwyrgy8w7pfkqfph5d1x5bzcjrcl982jrg";
-  propagatedBuildInputs = [binary mtl];
+  buildDepends = [ binary mtl ];
   meta = {
-    description = "Binary serialization with support for sharing identical elements";
+    homepage = "http://www.leksah.org";
+    description = "Sharing for the binary package";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
+})
diff --git a/pkgs/development/libraries/haskell/binary/default.nix b/pkgs/development/libraries/haskell/binary/default.nix
index 53aee9ca5b9e..65018a4d5c51 100644
--- a/pkgs/development/libraries/haskell/binary/default.nix
+++ b/pkgs/development/libraries/haskell/binary/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "binary";
-  version = "0.5.0.1";
-  sha256 = "1j5injgrwkjwl7lv6sqx4m033s3rrkspq690cb0ckfh267vsyig1";
+  version = "0.5.0.2";
+  sha256 = "02qkybh11psmggkqcs7f8kh4izfj44gq1wk23xhv3jbxc7gdxhp0";
   meta = {
-    description = "Efficient, pure binary serialisation using lazy ByteStrings";
+    homepage = "http://code.haskell.org/binary/";
+    description = "Binary serialisation for Haskell values using lazy ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
+})
diff --git a/pkgs/development/libraries/haskell/bitmap/default.nix b/pkgs/development/libraries/haskell/bitmap/default.nix
index aff1eea1f0c7..d89e225a5e39 100644
--- a/pkgs/development/libraries/haskell/bitmap/default.nix
+++ b/pkgs/development/libraries/haskell/bitmap/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bitmap";
   version = "0.0.1";
   sha256 = "281ad4d9234349cfd14f91977b48e2d1861c037f4b6562aa138cddd25c801a7e";
   meta = {
+    homepage = "http://code.haskell.org/~bkomuves/";
     description = "A library for handling and manipulating bitmaps";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/bktrees/default.nix b/pkgs/development/libraries/haskell/bktrees/default.nix
index 03452a99f2bb..23493e50c19c 100644
--- a/pkgs/development/libraries/haskell/bktrees/default.nix
+++ b/pkgs/development/libraries/haskell/bktrees/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bktrees";
-  version = "0.3";
-  sha256 = "ddef9fbf5114175cefe2908cd4360a4b94cbc91daac6d5194a8911bacaa1a5da";
+  version = "0.3.1";
+  sha256 = "1d2iz48n0ayn0hi9xa110pxy1mv5a4m21rmbpvs6ki1a7cv4ghn9";
   meta = {
-    description = "Burkhard-Keller trees sets implementation";
-    license = "BSD3";
+    description = "A set data structure with approximate searching";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
new file mode 100644
index 000000000000..84d667de29af
--- /dev/null
+++ b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, enumerator, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "blaze-builder-enumerator";
+  version = "0.2.0.2";
+  sha256 = "0as4mjh695jpxp9qfhpsxyr1448l0pk94sh5kk8sgxv5hfiy41k9";
+  buildDepends = [ blazeBuilder enumerator transformers ];
+  meta = {
+    homepage = "https://github.com/meiersi/blaze-builder-enumerator";
+    description = "Enumeratees for the incremental conversion of builders to bytestrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/blaze-builder/default.nix b/pkgs/development/libraries/haskell/blaze-builder/default.nix
index 3a9e8b8e4cb7..3a20e5d0cb1b 100644
--- a/pkgs/development/libraries/haskell/blaze-builder/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder/default.nix
@@ -1,13 +1,18 @@
-{cabal, text}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-builder";
-  version = "0.1";
-  sha256 = "dc4c542a39cf9e82b6a7ca99d6f460d6fa8dc4c8f648224368eac3fe054127c5";
-  propagatedBuildInputs = [text];
+  version = "0.3.0.1";
+  sha256 = "1p3xlifcr7v987zx8l2sppn9yydph332mn1xxk0yfi78a6386nfb";
+  buildDepends = [ text ];
   meta = {
-    description = "Builder to efficiently append text";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://github.com/meiersi/blaze-builder";
+    description = "Efficient buffered output";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/blaze-html/default.nix b/pkgs/development/libraries/haskell/blaze-html/default.nix
index 5c9cfeb114a8..8d1afd8c6fb0 100644
--- a/pkgs/development/libraries/haskell/blaze-html/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-html/default.nix
@@ -1,13 +1,17 @@
-{cabal, text}:
+{ cabal, blazeBuilder, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-html";
-  version = "0.1.2";
-  sha256 = "c1e65e3d23e90a3830ceee69ecfac65c7a8a045da06443fb7690609a59480f5f";
-  propagatedBuildInputs = [text];
+  version = "0.4.1.6";
+  sha256 = "084phxxdy12vi2q084k8w693m94v0pjf29zx2fk1y0n80k05ii4z";
+  buildDepends = [ blazeBuilder text ];
   meta = {
-    description = "A blazingly fast HTML combinator library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://jaspervdj.be/blaze";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/blaze-textual/default.nix b/pkgs/development/libraries/haskell/blaze-textual/default.nix
new file mode 100644
index 000000000000..0c405bac5238
--- /dev/null
+++ b/pkgs/development/libraries/haskell/blaze-textual/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, text, time, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "blaze-textual";
+  version = "0.1.0.0";
+  sha256 = "0ql25b0r4xbshqsjfndl7glq0hp2ncxb3h5zd541vsqrqrf8y4gk";
+  buildDepends = [ blazeBuilder text time vector ];
+  meta = {
+    homepage = "http://github.com/mailrank/blaze-textual";
+    description = "Fast rendering of common datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bmp/default.nix b/pkgs/development/libraries/haskell/bmp/default.nix
new file mode 100644
index 000000000000..2c08676d9c43
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bmp/default.nix
@@ -0,0 +1,18 @@
+{ cabal, binary }:
+
+cabal.mkDerivation (self: {
+  pname = "bmp";
+  version = "1.1.2.1";
+  sha256 = "01w0fbfzdmrfnmnkjkg9paagfkzsjn57rx7lf2npzp95rmljplkb";
+  buildDepends = [ binary ];
+  meta = {
+    homepage = "http://code.ouroborus.net/bmp";
+    description = "Read and write uncompressed BMP image files";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bytestring-mmap/default.nix b/pkgs/development/libraries/haskell/bytestring-mmap/default.nix
new file mode 100755
index 000000000000..cf68d1e7fa50
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bytestring-mmap/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "bytestring-mmap";
+  version = "0.2.2";
+  sha256 = "1bv9xf4cpph1cbdwv6rbmq8ppi5wjpgd97lwln5l9ky5rvnaxg3v";
+  meta = {
+    homepage = "http://code.haskell.org/~dons/code/bytestring-mmap/";
+    description = "mmap support for strict ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bytestring-nums/default.nix b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
new file mode 100644
index 000000000000..4a480b079317
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
@@ -0,0 +1,19 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "bytestring-nums";
+  version = "0.3.3";
+  sha256 = "09gdbyj5qw98j57cs9phzsbmvdm7y6j07wg908i34jklwm24nxfd";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://github.com/solidsnack/bytestring-nums";
+    description = "Parse numeric literals from ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bytestring-trie/default.nix b/pkgs/development/libraries/haskell/bytestring-trie/default.nix
new file mode 100644
index 000000000000..1dc56c420b67
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bytestring-trie/default.nix
@@ -0,0 +1,18 @@
+{ cabal, binary }:
+
+cabal.mkDerivation (self: {
+  pname = "bytestring-trie";
+  version = "0.2.3";
+  sha256 = "1zb4s7fd951swc648szrpx0ldailmdinapgbcg1zajb5c5jq57ga";
+  buildDepends = [ binary ];
+  meta = {
+    homepage = "http://code.haskell.org/~wren/";
+    description = "An efficient finite map from (byte)strings to values";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bytestring/default.nix b/pkgs/development/libraries/haskell/bytestring/default.nix
deleted file mode 100644
index c694250a8474..000000000000
--- a/pkgs/development/libraries/haskell/bytestring/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "bytestring";
-  version = "0.9.1.4";
-  name = self.fname;
-  sha256 = "00x620zkxhlmdxmb2icrq3a2wc6jichng6mn33xr2gsw102973xz";
-  extraBuildInputs = [];
-  meta = {
-    description = "A time and space-efficient implementation of byte vectors using packed Word8 arrays [..]";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/cabal/cabal.nix b/pkgs/development/libraries/haskell/cabal/cabal.nix
index d46b2580918f..3f5bac4d7e4e 100644
--- a/pkgs/development/libraries/haskell/cabal/cabal.nix
+++ b/pkgs/development/libraries/haskell/cabal/cabal.nix
@@ -1,11 +1,27 @@
 # generic builder for Cabal packages
 
-{stdenv, fetchurl, lib, ghc, enableLibraryProfiling ? false} :
+{stdenv, fetchurl, lib, pkgconfig, ghc, enableLibraryProfiling ? false} :
 {
   mkDerivation =
-    transform :
-    let dtransform =
-          self : {
+    args : # arguments for the individual package, can modify the defaults
+    let # These attributes are removed in the end. This is in order not to spoil the build
+        # environment overly, but also to keep hash-backwards-compatible with the old cabal.nix.
+        internalAttrs = [
+          "internalAttrs" "buildDepends" "buildTools" "extraLibraries" "pkgconfigDepends"
+          "isLibrary" "isExecutable"
+        ];
+
+        # Stuff happening after the user preferences have been processed. We remove
+        # internal attributes and strip null elements from the dependency lists, all
+        # in the interest of keeping hashes stable.
+        postprocess =
+          x : (removeAttrs x internalAttrs) // {
+                buildInputs           = stdenv.lib.filter (y : ! (y == null)) x.buildInputs;
+                propagatedBuildInputs = stdenv.lib.filter (y : ! (y == null)) x.propagatedBuildInputs;
+              };
+
+        defaults =
+          self : { # self is the final version of the attribute set
 
             # pname should be defined by the client to be the package basename
             # version should be defined by the client to be the package version
@@ -17,10 +33,13 @@
             # all packages with haskell- to avoid name clashes for libraries;
             # if that is not desired (for applications), name can be set to
             # fname.
-            name = if enableLibraryProfiling then
-                     "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}-profiling"
+            name = if self.isLibrary then
+                     if enableLibraryProfiling then
+                       "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}-profiling"
+                     else
+                       "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}"
                    else
-                     "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}";
+                     "${self.pname}-${self.version}";
 
             # the default download location for Cabal packages is Hackage,
             # you still have to specify the checksum
@@ -33,15 +52,32 @@
             # buildInputs can be extended by the client by using extraBuildInputs,
             # but often propagatedBuildInputs is preferable anyway
             buildInputs = [ghc] ++ self.extraBuildInputs;
-            extraBuildInputs = [];
+            extraBuildInputs = self.buildTools ++
+                               (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++
+                               (if self.isLibrary then [] else self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends);
 
             # we make sure that propagatedBuildInputs is defined, so that we don't
             # have to check for its existence
-            propagatedBuildInputs = [];
+            propagatedBuildInputs = if self.isLibrary then self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends else [];
 
             # library directories that have to be added to the Cabal files
             extraLibDirs = [];
 
+            # build-depends Cabal field
+            buildDepends = [];
+
+            # build-tools Cabal field
+            buildTools = [];
+
+            # extra-libraries Cabal field
+            extraLibraries = [];
+
+            # pkgconfig-depends Cabal field
+            pkgconfigDepends = [];
+
+            isLibrary = ! self.isExecutable;
+            isExecutable = false;
+
             libraryProfiling =
               if enableLibraryProfiling then ["--enable-library-profiling"]
                                         else ["--disable-library-profiling"];
@@ -77,7 +113,7 @@
               ./Setup build
 
               export GHC_PACKAGE_PATH=$(ghc-packages)
-              [ -n "$noHadock" ] || ./Setup haddock
+              [ -n "$noHaddock" ] || ./Setup haddock
 
               eval "$postBuild"
             '';
@@ -115,5 +151,5 @@
             # in Cabal derivations.
             inherit stdenv ghc;
           };
-    in  stdenv.mkDerivation ((rec { f = dtransform f // transform f; }).f);
+    in  stdenv.mkDerivation (postprocess ((rec { f = defaults f // args f; }).f)) ;
 }
diff --git a/pkgs/development/libraries/haskell/cairo/default.nix b/pkgs/development/libraries/haskell/cairo/default.nix
index 98fc62c05680..293f692c67f5 100644
--- a/pkgs/development/libraries/haskell/cairo/default.nix
+++ b/pkgs/development/libraries/haskell/cairo/default.nix
@@ -1,14 +1,21 @@
-{cabal, gtk2hsBuildtools, pkgconfig, glibc, cairo, zlib, mtl}:
+{ cabal, cairo, glibc, gtk2hsBuildtools, mtl, pkgconfig, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cairo";
-  version = "0.11.1";
-  sha256 = "6d7209bcdb92b09437980c51646c324f501edd2893393e48aa185462dfc07b58";
-  extraBuildInputs = [pkgconfig glibc cairo zlib gtk2hsBuildtools];
-  propagatedBuildInputs = [mtl];
+  version = "0.12.0";
+  sha256 = "0n2sqbf8wjjvm5m1igkq685vqvc0lil3gmcs3i0g9hy7lsjnlwr9";
+  buildDepends = [ mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ cairo glibc pkgconfig zlib ];
+  pkgconfigDepends = [ cairo ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the Cairo library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix b/pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix
new file mode 100644
index 000000000000..8dff7eda2847
--- /dev/null
+++ b/pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix
@@ -0,0 +1,17 @@
+{ cabal, hashable, text }:
+
+cabal.mkDerivation (self: {
+  pname = "case-insensitive";
+  version = "0.3.0.1";
+  sha256 = "0aaj7avg3rd2bvjjcny7wjdif60ikk7q49896g12jnczi5ba97ml";
+  buildDepends = [ hashable text ];
+  meta = {
+    description = "Case insensitive string comparison";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/case-insensitive/0.3.nix b/pkgs/development/libraries/haskell/case-insensitive/0.3.nix
new file mode 100644
index 000000000000..6a59c9e840b7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/case-insensitive/0.3.nix
@@ -0,0 +1,17 @@
+{ cabal, hashable, text }:
+
+cabal.mkDerivation (self: {
+  pname = "case-insensitive";
+  version = "0.3";
+  sha256 = "0k3y09ak4k0jwx7bh5awcznw064xgf6yzidq3jalif7m3c9bv5q7";
+  buildDepends = [ hashable text ];
+  meta = {
+    description = "Case insensitive string comparison";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cautious-file/default.nix b/pkgs/development/libraries/haskell/cautious-file/default.nix
index 16fe6672bc7d..f291c3e632f1 100644
--- a/pkgs/development/libraries/haskell/cautious-file/default.nix
+++ b/pkgs/development/libraries/haskell/cautious-file/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cautious-file";
-  version = "0.1.5";
-  sha256 = "0d7b7bf530476b89ffc22bf6e586402b0fd6fd5571cc941df08838c5a890ad01";
+  version = "1.0";
+  sha256 = "1s2la91vk9c99bj0ipzc4r6w81rcs4jfmn0xr1cgjab00bzj880q";
   meta = {
-    description = "Ways to write a file cautiously";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "Ways to write a file cautiously, to reduce the chances of problems such as data loss due to crashes or power failures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/cereal/default.nix b/pkgs/development/libraries/haskell/cereal/default.nix
index 2cbd4a5fe454..c035b1603f1a 100644
--- a/pkgs/development/libraries/haskell/cereal/default.nix
+++ b/pkgs/development/libraries/haskell/cereal/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cereal";
-  version = "0.2";
-  sha256 = "aa00eb88cea5616a0eb9e4b6604cb164b8bef6e86b111cbb67d51d4d3441332b";
+  version = "0.3.3.0";
+  sha256 = "0bqd5qfvbz77mq0zxgafj011hrxcanrfzvlwhf4j4dzr6yryk53y";
   meta = {
     description = "A binary serialization library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/certificate/default.nix b/pkgs/development/libraries/haskell/certificate/default.nix
new file mode 100644
index 000000000000..41646034aa0e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/certificate/default.nix
@@ -0,0 +1,20 @@
+{ cabal, asn1Data, base64Bytestring, mtl, time }:
+
+cabal.mkDerivation (self: {
+  pname = "certificate";
+  version = "0.9.1";
+  sha256 = "0hq9a0vz72kk1n3hdza36rji8vc95y667iwcsmsh5habyh6q8228";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ asn1Data base64Bytestring mtl time ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-certificate";
+    description = "Certificates and Key Reader/Writer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix
new file mode 100644
index 000000000000..9cb92640ee45
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix
@@ -0,0 +1,17 @@
+{ cabal, mtl, network, parsec, xhtml }:
+
+cabal.mkDerivation (self: {
+  pname = "cgi";
+  version = "3001.1.7.1";
+  sha256 = "7d1d710871fffbbec2a33d7288b2959ddbcfd794d47f0122127576c02550b339";
+  buildDepends = [ mtl network parsec xhtml ];
+  meta = {
+    description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix
index 89e6df5004c8..7e91e25209ee 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix
@@ -1,12 +1,17 @@
-{cabal, mtl, network, parsec, xhtml}:
+{ cabal, mtl, network, parsec, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cgi";
-  version = "3001.1.7.2"; # Haskell Platform 2010.1.0.0
+  version = "3001.1.7.2";
   sha256 = "ad35971388fa1809a5cd71bb2f051d69d753e4153b43d843b431674cf79a1c39";
-  propagatedBuildInputs = [mtl network parsec xhtml];
+  buildDepends = [ mtl network parsec xhtml ];
   meta = {
     description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix
index d425e84d692a..0c1f8d709c3b 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec, xhtml}:
+{ cabal, extensibleExceptions, mtl, network, parsec, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cgi";
-  version = "3001.1.7.3"; # Haskell Platform 2010.2.0.0
+  version = "3001.1.7.3";
   sha256 = "f1f4bc6b06e8a191db4ddb43617fee3ef37635e380d6a17c29efb5641ce91df0";
-  propagatedBuildInputs = [mtl network parsec xhtml];
+  buildDepends = [ extensibleExceptions mtl network parsec xhtml ];
   meta = {
+    homepage = "http://andersk.mit.edu/haskell/cgi/";
     description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix
new file mode 100644
index 000000000000..3621b1fac1b8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix
@@ -0,0 +1,18 @@
+{ cabal, extensibleExceptions, mtl, network, parsec, xhtml }:
+
+cabal.mkDerivation (self: {
+  pname = "cgi";
+  version = "3001.1.7.4";
+  sha256 = "1fiild4djzhyz683kwwb0k4wvhd89ihbn6vncjl270xvwj5xmrbd";
+  buildDepends = [ extensibleExceptions mtl network parsec xhtml ];
+  meta = {
+    homepage = "http://andersk.mit.edu/haskell/cgi/";
+    description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix b/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix
new file mode 100644
index 000000000000..686555330f3a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix
@@ -0,0 +1,22 @@
+{ cabal, extensibleExceptions, MonadCatchIOMtl, mtl, network
+, parsec, xhtml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "cgi";
+  version = "3001.1.8.2";
+  sha256 = "09ly7bn5ck563jq1wip5w628g74xj4p1ha9rllfdck33pqrl2mgz";
+  buildDepends = [
+    extensibleExceptions MonadCatchIOMtl mtl network parsec xhtml
+  ];
+  meta = {
+    homepage = "http://andersk.mit.edu/haskell/cgi/";
+    description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cgi/default.nix b/pkgs/development/libraries/haskell/cgi/default.nix
deleted file mode 100644
index e6e5bd91df6e..000000000000
--- a/pkgs/development/libraries/haskell/cgi/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl, network, parsec, xhtml}:
-
-cabal.mkDerivation (self : {
-  pname = "cgi";
-  version = "3001.1.7.1"; # Haskell Platform 2009.0.0
-  sha256 = "7d1d710871fffbbec2a33d7288b2959ddbcfd794d47f0122127576c02550b339";
-  propagatedBuildInputs = [mtl network parsec xhtml];
-  meta = {
-    description = "A library for writing CGI programs";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/citeproc-hs/default.nix b/pkgs/development/libraries/haskell/citeproc-hs/default.nix
new file mode 100644
index 000000000000..b09409d28df1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/citeproc-hs/default.nix
@@ -0,0 +1,23 @@
+{ cabal, hsBibutils, HTTP, json, mtl, network, pandocTypes, parsec
+, syb, time, utf8String, xml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "citeproc-hs";
+  version = "0.3.3";
+  sha256 = "0yhzqxrr7jn1h0r2vy1jmlrf0z64qcr2fl37i04rpiwzb3nc16r4";
+  buildDepends = [
+    hsBibutils HTTP json mtl network pandocTypes parsec syb time
+    utf8String xml
+  ];
+  meta = {
+    homepage = "http://gorgias.mine.nu/repos/citeproc-hs/";
+    description = "A Citation Style Language implementation in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/clientsession/default.nix b/pkgs/development/libraries/haskell/clientsession/default.nix
new file mode 100644
index 000000000000..44482d9161bd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -0,0 +1,20 @@
+{ cabal, random }:
+
+cabal.mkDerivation (self: {
+  pname = "clientsession";
+  version = "0.6.0";
+  sha256 = "0h92jjkhldn7f9b78cajfda8rprsj5scdsyl3pjpzicpvvy9g00y";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ random ];
+  meta = {
+    homepage = "http://github.com/snoyberg/clientsession/tree/master";
+    description = "Store session data in a cookie";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cmdargs/default.nix b/pkgs/development/libraries/haskell/cmdargs/default.nix
index b7d3e81160a8..4e8b236464a6 100644
--- a/pkgs/development/libraries/haskell/cmdargs/default.nix
+++ b/pkgs/development/libraries/haskell/cmdargs/default.nix
@@ -1,14 +1,20 @@
-{cabal, filepath, mtl}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cmdargs";
-  version = "0.1";
-  sha256 = "1ec8a0b49dedc0b159c4e8f6b02ae57ba918b27d8648294998a13e04cf257ebf";
-  propagatedBuildInputs = [filepath mtl];
+  version = "0.8";
+  sha256 = "0yhjg6rck1aj8gq07i9dcfxyjffxlr4lxnir2brkyahpfx5iyw9k";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ transformers ];
   meta = {
+    homepage = "http://community.haskell.org/~ndm/cmdargs/";
     description = "Command line argument processing";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cmdlib/default.nix b/pkgs/development/libraries/haskell/cmdlib/default.nix
new file mode 100644
index 000000000000..93df5ef217c2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cmdlib/default.nix
@@ -0,0 +1,19 @@
+{ cabal, mtl, split, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "cmdlib";
+  version = "0.3.3";
+  sha256 = "0gryz70d69r9pscwxmn5yr02r0zvvgj1vwc3g9klgbkipbsa7xvk";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl split syb ];
+  meta = {
+    description = "a library for command line parsing & online help";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/colorize-haskell/default.nix b/pkgs/development/libraries/haskell/colorize-haskell/default.nix
index 1b7016970fac..702ddd0b9ec6 100644
--- a/pkgs/development/libraries/haskell/colorize-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/colorize-haskell/default.nix
@@ -1,12 +1,20 @@
-{cabal, ansiTerminal, haskellLexer}:
+{ cabal, ansiTerminal, haskellLexer }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "colorize-haskell";
-  version = "1.0.0";
-  sha256 = "14c180ea3e8beb12dd289c51453bd2e3583f306799db4630c8f86cf09bbb3763";
-  propagatedBuildInputs = [ansiTerminal haskellLexer];
+  version = "1.0.1";
+  sha256 = "1v4spa6vw9igjpd1dr595z5raz5fr8f485q5w9imrv8spms46xh3";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ansiTerminal haskellLexer ];
   meta = {
-    description = "Highlight Haskell source";
+    homepage = "http://github.com/yav/colorize-haskell";
+    description = "Highligt Haskell source";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/colour/default.nix b/pkgs/development/libraries/haskell/colour/default.nix
index 661f1507ab18..51c93043e8b0 100644
--- a/pkgs/development/libraries/haskell/colour/default.nix
+++ b/pkgs/development/libraries/haskell/colour/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "colour";
   version = "2.3.1";
   sha256 = "58cf12b8abf7d01a752b1b778b64cc406903874702e3475d65c2aa35689fa49b";
   meta = {
-    description = "Data type, conversion and composition of colours";
-    license = "OtherLicense";
+    homepage = "http://www.haskell.org/haskellwiki/Colour";
+    description = "A model for human colour/color perception";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/continued-fractions/default.nix b/pkgs/development/libraries/haskell/continued-fractions/default.nix
new file mode 100755
index 000000000000..71801a324c36
--- /dev/null
+++ b/pkgs/development/libraries/haskell/continued-fractions/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "continued-fractions";
+  version = "0.9.1.0";
+  sha256 = "07g6ms68xfzd25zr2k2fpg4f4pynmq4mn7djkzrg3gbfh9gfq37q";
+  meta = {
+    homepage = "/dev/null";
+    description = "Continued fractions";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/control-monad-attempt/default.nix b/pkgs/development/libraries/haskell/control-monad-attempt/default.nix
new file mode 100644
index 000000000000..06571080b7bd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/control-monad-attempt/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attempt, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "control-monad-attempt";
+  version = "0.3.0";
+  sha256 = "1l0bqb5h2fs7vx2r8nd6kscyyrrqc0gshnxwdz9p6clfnknyqbqw";
+  buildDepends = [ attempt transformers ];
+  meta = {
+    homepage = "http://github.com/snoyberg/control-monad-attempt";
+    description = "Monad transformer for attempt";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/converge/default.nix b/pkgs/development/libraries/haskell/converge/default.nix
new file mode 100755
index 000000000000..6c1282852851
--- /dev/null
+++ b/pkgs/development/libraries/haskell/converge/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "converge";
+  version = "0.1.0.1";
+  sha256 = "0y28m7kgphknra0w2kzf0g4m2bdj604nr3f22xng46nl7kljbpvj";
+  meta = {
+    homepage = "/dev/null";
+    description = "Limit operations for converging sequences";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/convertible/default.nix b/pkgs/development/libraries/haskell/convertible/default.nix
index 24ed30810de6..5497500c0a86 100644
--- a/pkgs/development/libraries/haskell/convertible/default.nix
+++ b/pkgs/development/libraries/haskell/convertible/default.nix
@@ -1,12 +1,20 @@
-{cabal, mtl, time}:
+{ cabal, mtl, text, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "convertible";
-  version = "1.0.5";
-  sha256 = "caf75727a35cf249690f3da60fce770642c8a1fad6080f3ba57e924fbe3c9465";
-  propagatedBuildInputs = [mtl time];
+  version = "1.0.11.0";
+  sha256 = "0qkz760ddshmglmrf47a01978c9zhxfss44b6vmfkwwfcjb7da2b";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl text time ];
   meta = {
+    homepage = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/convertible";
     description = "Typeclasses and instances for converting between types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/cookie/default.nix b/pkgs/development/libraries/haskell/cookie/default.nix
new file mode 100644
index 000000000000..dce5b245a78c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cookie/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, text, time }:
+
+cabal.mkDerivation (self: {
+  pname = "cookie";
+  version = "0.3.0.1";
+  sha256 = "1gqz2q09fnbk8scd164mg02jsdh0sg5g06grr627qsjy583i2ad7";
+  buildDepends = [ blazeBuilder text time ];
+  meta = {
+    homepage = "http://github.com/snoyberg/cookie";
+    description = "HTTP cookie parsing and rendering";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cprng-aes/default.nix b/pkgs/development/libraries/haskell/cprng-aes/default.nix
new file mode 100644
index 000000000000..1c156f47a3fa
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cprng-aes/default.nix
@@ -0,0 +1,18 @@
+{ cabal, cereal, cryptoApi, cryptocipher, random }:
+
+cabal.mkDerivation (self: {
+  pname = "cprng-aes";
+  version = "0.2.1";
+  sha256 = "0q6qkvha7cckz3zjnzfsrx298arzbdavy1f73hygrd8f7n74442j";
+  buildDepends = [ cereal cryptoApi cryptocipher random ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cprng-aes";
+    description = "Crypto Pseudo Random Number Generator using AES in counter mode";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/criterion/default.nix b/pkgs/development/libraries/haskell/criterion/default.nix
index ce6b5d5e2dc5..0a7f23a38acd 100644
--- a/pkgs/development/libraries/haskell/criterion/default.nix
+++ b/pkgs/development/libraries/haskell/criterion/default.nix
@@ -1,22 +1,23 @@
-{cabal, deepseq, mtl, parallel, parsec, vector, vectorAlgorithms,
- mwcRandom, statistics, Chart, dataAccessor}:
+{ cabal, deepseq, mtl, mwcRandom, parsec, statistics, time, vector
+, vectorAlgorithms
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "criterion";
-  version = "0.5.0.5";
-  sha256 = "1b1g7a2ip07j0554cj4d0413859fbdkaxpcgq2znjz7wh8z5aabn";
-
-  propagatedBuildInputs = [
-    deepseq mtl parallel parsec vector vectorAlgorithms mwcRandom statistics
-    Chart dataAccessor
+  version = "0.5.0.10";
+  sha256 = "0sd289s7wnyg0p37j327hv55aw4a18bdv56z26v4qi3j8p2fbpbj";
+  buildDepends = [
+    deepseq mtl mwcRandom parsec statistics time vector
+    vectorAlgorithms
   ];
-
-  configureFlags = "-fchart";
-
   meta = {
     homepage = "http://bitbucket.org/bos/criterion";
     description = "Robust, reliable performance measurement and analysis";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/crypto-api/default.nix b/pkgs/development/libraries/haskell/crypto-api/default.nix
new file mode 100644
index 000000000000..e651d03b736f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/crypto-api/default.nix
@@ -0,0 +1,18 @@
+{ cabal, cereal, entropy, largeword, tagged }:
+
+cabal.mkDerivation (self: {
+  pname = "crypto-api";
+  version = "0.6.4";
+  sha256 = "1v3nnfw13r514a723lsx8d1awlad6fmv27bgp76f1ssv1garraf3";
+  buildDepends = [ cereal entropy largeword tagged ];
+  meta = {
+    homepage = "http://trac.haskell.org/crypto-api/wiki";
+    description = "A generic interface for cryptographic operations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cryptocipher/default.nix b/pkgs/development/libraries/haskell/cryptocipher/default.nix
new file mode 100644
index 000000000000..754f728aed54
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cryptocipher/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cereal, cryptoApi, primitive, tagged, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "cryptocipher";
+  version = "0.2.14";
+  sha256 = "1r91d9sqc53c628z378fyah7vvmkakvxpwbslam0yhfgp2p0l23z";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ cereal cryptoApi primitive tagged vector ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cryptocipher";
+    description = "Symmetrical Block, Stream and PubKey Ciphers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cryptohash/default.nix b/pkgs/development/libraries/haskell/cryptohash/default.nix
new file mode 100644
index 000000000000..70dbbf15ea4d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cryptohash/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cereal, cryptoApi, tagged }:
+
+cabal.mkDerivation (self: {
+  pname = "cryptohash";
+  version = "0.7.1";
+  sha256 = "1bblhqidzb8b75fk9zb1ibdssmbh1kaq20q144c9y1cas3gbn6h3";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ cereal cryptoApi tagged ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cryptohash";
+    description = "collection of crypto hashes, fast, pure and practical";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/css-text/default.nix b/pkgs/development/libraries/haskell/css-text/default.nix
new file mode 100644
index 000000000000..efd0f6419200
--- /dev/null
+++ b/pkgs/development/libraries/haskell/css-text/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsecText, text }:
+
+cabal.mkDerivation (self: {
+  pname = "css-text";
+  version = "0.1.0.1";
+  sha256 = "004ky2s6jmiliw8faja5kzp99i36qf56cixvn43n3pnq8gg26kfi";
+  buildDepends = [ attoparsecText text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "CSS parser and renderer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/csv/default.nix b/pkgs/development/libraries/haskell/csv/default.nix
index 56eefcc43a99..1539583a617d 100644
--- a/pkgs/development/libraries/haskell/csv/default.nix
+++ b/pkgs/development/libraries/haskell/csv/default.nix
@@ -1,12 +1,17 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "csv";
-  version = "0.1.1";
-  sha256 = "046e989f4bb76c9b15c33c3ec63f57a689317de8170449c9cf9e152393b7f1a0";
-  propagatedBuildInputs = [parsec];
+  version = "0.1.2";
+  sha256 = "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c";
+  buildDepends = [ parsec ];
   meta = {
     description = "CSV loader and dumper";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
index ff985fbfef8d..0238f2d311b6 100644
--- a/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
@@ -1,14 +1,18 @@
-{cabal, dataAccessor, utilityHt}:
+{ cabal, dataAccessor, utilityHt }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-accessor-template";
-  version = "0.2.1.5";
-  sha256 = "0fvf1cacvqzyl9x88h7fa0d6p94qhkvf177a84g036qjxn0khyja";
-  propagatedBuildInputs = [dataAccessor utilityHt];
+  version = "0.2.1.8";
+  sha256 = "0bx0w4vkigq20pa31sdygj4idi3iywkpclbllrw38ma1j19033zk";
+  buildDepends = [ dataAccessor utilityHt ];
   meta = {
-    description = "Utilities for accessing and manipulating the fields of records";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.haskell.org/haskellwiki/Record_access";
+    description = "Utilities for accessing and manipulating fields of records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
index 99e842444607..f6b48befd5d6 100644
--- a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
@@ -1,14 +1,18 @@
-{cabal, transformers}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-accessor";
-  version = "0.2.1.4";
-  sha256 = "1fnfbcw1fzas2sbk9yhwd05ncvgqfy47hi9xh0ygsqilx7nwkdxv";
-  propagatedBuildInputs = [transformers];
+  version = "0.2.2";
+  sha256 = "1jqd0qlv1yab83d5pdbzjw6q4a2kvbsar6kgczq0f0xn9gxm0qci";
+  buildDepends = [ transformers ];
   meta = {
-    description = "Utilities for accessing and manipulating the fields of records";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.haskell.org/haskellwiki/Record_access";
+    description = "Utilities for accessing and manipulating fields of records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/data-default/default.nix b/pkgs/development/libraries/haskell/data-default/default.nix
new file mode 100644
index 000000000000..934baf1b91b8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/data-default/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "data-default";
+  version = "0.2.0.1";
+  sha256 = "0hhrzaykwybqpig0kss4iq1i93ygb80g8i1chpr84akmvdr07w0i";
+  meta = {
+    description = "A class for types with a default value";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/data-reify/default.nix b/pkgs/development/libraries/haskell/data-reify/default.nix
index fe2e0b23d3f9..2618ef6a6906 100644
--- a/pkgs/development/libraries/haskell/data-reify/default.nix
+++ b/pkgs/development/libraries/haskell/data-reify/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-reify";
-  version = "0.5";
-  sha256 = "ca501cbde57d3b53b4def9ce3de9ecccc5136fb0575877e98e163668ebe23055";
+  version = "0.6";
+  sha256 = "0mif89mpj5zvw8czc51mfj27jw2ipxd2awnm9q13s46k6s5pv6a7";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://www.ittc.ku.edu/csdl/fpg/Tools/IOReification";
     description = "Reify a recursive data structure into an explicit graph";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/dataenc/default.nix b/pkgs/development/libraries/haskell/dataenc/default.nix
index ba4b1edcc95f..88d1b6ed0673 100644
--- a/pkgs/development/libraries/haskell/dataenc/default.nix
+++ b/pkgs/development/libraries/haskell/dataenc/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "dataenc";
-  version = "0.11.1";
-  sha256 = "1212dbed8a1b8f80140d6450a7635a4365bc5733a00e2b96d00bcc526396c6bc";
+  version = "0.14.0.2";
+  sha256 = "1zym24259d053b7vbxir2l7229gilkg81vvc0wf9605873j6gw5b";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Library/Data_encoding";
     description = "Data encoding library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/datetime/default.nix b/pkgs/development/libraries/haskell/datetime/default.nix
index 45ec971ce8ac..72f3d1c937f3 100644
--- a/pkgs/development/libraries/haskell/datetime/default.nix
+++ b/pkgs/development/libraries/haskell/datetime/default.nix
@@ -1,11 +1,18 @@
-{cabal, QuickCheck, time}:
+{ cabal, QuickCheck, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "datetime";
-  version = "0.1";
-  sha256 = "931acc70cb45922c95f2c3225d04619e19fd9c5947a66ae69e96d6e693195048";
-  propagatedBuildInputs = [QuickCheck time];
+  version = "0.2.1";
+  sha256 = "1yfg3wvi13r725dhfsmcdw4ns3cgl2ayrb5jck0q8b4crk2dlrzg";
+  buildDepends = [ QuickCheck time ];
   meta = {
-    description = "Utilities to make Data.Time.* easier to use";
+    homepage = "http://github.com/esessoms/datetime";
+    description = "Utilities to make Data.Time.* easier to use.";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix b/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix
new file mode 100644
index 000000000000..2c61618cd081
--- /dev/null
+++ b/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "deepseq";
+  version = "1.1.0.0";
+  sha256 = "947c45e7ee862159f190fb8e905c1328f7672cb9e6bf3abd1d207bbcf1eee50a";
+  meta = {
+    description = "Fully evaluate data structures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix b/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix
new file mode 100644
index 000000000000..4af1d5bff9c7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "deepseq";
+  version = "1.1.0.2";
+  sha256 = "1iqk8lc2an2rd1j9lcr76yabiz18h10lazlmdg5c528yssyd6135";
+  meta = {
+    description = "Deep evaluation of data structures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/deepseq/default.nix b/pkgs/development/libraries/haskell/deepseq/default.nix
deleted file mode 100644
index eb84d629fdb1..000000000000
--- a/pkgs/development/libraries/haskell/deepseq/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "deepseq";
-  version = "1.1.0.0"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
-  sha256 = "947c45e7ee862159f190fb8e905c1328f7672cb9e6bf3abd1d207bbcf1eee50a";
-  meta = {
-    description = "Provides a deep version of seq, for fully evaluating data structures";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix
index 7ac349e96aa2..7f28ad8b10da 100644
--- a/pkgs/development/libraries/haskell/derive/default.nix
+++ b/pkgs/development/libraries/haskell/derive/default.nix
@@ -1,11 +1,20 @@
-{cabal, haskellSrcExts, mtl, uniplate}:
+{ cabal, haskellSrcExts, syb, transformers, uniplate }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "derive";
-  version = "2.3.0.2";
-  sha256 = "bb8f62d93742d0f27c742bf09fdad73111057d9b531dda45d7f0c894b447809e";
-  propagatedBuildInputs = [haskellSrcExts mtl uniplate];
+  version = "2.5.4";
+  sha256 = "0gmj24qzh3vyvp0a44v4mf1qpkrg4d9q0m15d0yfbyzrimyjx1c7";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellSrcExts syb transformers uniplate ];
   meta = {
+    homepage = "http://community.haskell.org/~ndm/derive/";
     description = "A program and library to derive instances for data types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/digest/default.nix b/pkgs/development/libraries/haskell/digest/default.nix
index c2423be8e53c..b13f156a3e8f 100644
--- a/pkgs/development/libraries/haskell/digest/default.nix
+++ b/pkgs/development/libraries/haskell/digest/default.nix
@@ -1,12 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "digest";
-  version = "0.0.0.5";
-  sha256 = "dddfcdd325dc7d4fb1ce4772c1f5618cb20504b28dba8a78682011cba1341efd";
-  propagatedBuildInputs = [zlib];
+  version = "0.0.0.9";
+  sha256 = "15gj3iq3jm4lnkc6hnj9v8p8ia3yzbsajwf9by3b1kpl449k2h29";
+  extraLibraries = [ zlib ];
   meta = {
-    description = "Various cryptographic hashes for bytestrings: CRC32 and Adler32 for now";
+    description = "Various cryptographic hashes for bytestrings; CRC32 and Adler32 for now";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/dimensional/default.nix b/pkgs/development/libraries/haskell/dimensional/default.nix
new file mode 100644
index 000000000000..7bf37628d130
--- /dev/null
+++ b/pkgs/development/libraries/haskell/dimensional/default.nix
@@ -0,0 +1,18 @@
+{ cabal, numtype, time }:
+
+cabal.mkDerivation (self: {
+  pname = "dimensional";
+  version = "0.10.1";
+  sha256 = "0pnrqm6qny09g8iy191844d0mvvyzg1j637pvwwwhci8lzq3hfyd";
+  buildDepends = [ numtype time ];
+  meta = {
+    homepage = "http://dimensional.googlecode.com/";
+    description = "Statically checked physical dimensions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/directory-tree/default.nix b/pkgs/development/libraries/haskell/directory-tree/default.nix
new file mode 100644
index 000000000000..1e0b78c4af39
--- /dev/null
+++ b/pkgs/development/libraries/haskell/directory-tree/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "directory-tree";
+  version = "0.10.0";
+  sha256 = "08b0w9j55x6c06pri7yvv84n24inhpb4miybdnkyjkjy7r3yy7m4";
+  meta = {
+    homepage = "http://coder.bsimmons.name/blog/2009/05/directory-tree-module-released/";
+    description = "A simple directory-like tree datatype, with useful IO functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/dlist/default.nix b/pkgs/development/libraries/haskell/dlist/default.nix
new file mode 100644
index 000000000000..a88b38650c7d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/dlist/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "dlist";
+  version = "0.5";
+  sha256 = "1shr5wlpha68h82gwpndr5441847l01gh3j7szyvnmgzkr0fb027";
+  meta = {
+    homepage = "http://code.haskell.org/~dons/code/dlist/";
+    description = "Differences lists";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/dotgen/default.nix b/pkgs/development/libraries/haskell/dotgen/default.nix
index 19d0bc075132..06a3e6a09fe5 100644
--- a/pkgs/development/libraries/haskell/dotgen/default.nix
+++ b/pkgs/development/libraries/haskell/dotgen/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "dotgen";
-  version = "0.3";
-  sha256 = "1c486ffa782c4a46e66df12f5acf776a808b654d96fe0d0071d5c41111b1b7ed";
+  version = "0.4.1";
+  sha256 = "1g5ds0mqkz0lzhcp42hin08azschs3p083ikdk4d5jil8rzl7d8k";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
-    description = "A simple interface for building .dot graph files";
+    description = "A simple interface for building .dot graph files.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/double-conversion/default.nix b/pkgs/development/libraries/haskell/double-conversion/default.nix
new file mode 100644
index 000000000000..4f1bf34dc291
--- /dev/null
+++ b/pkgs/development/libraries/haskell/double-conversion/default.nix
@@ -0,0 +1,18 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "double-conversion";
+  version = "0.2.0.1";
+  sha256 = "146ijcv55k0lqlw8y4nz7p5kjpwry2jzbqmkan904pnlcfv4a60a";
+  buildDepends = [ text ];
+  meta = {
+    homepage = "https://github.com/mailrank/double-conversion";
+    description = "Fast conversion between double precision floating point and text";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/editline/default.nix b/pkgs/development/libraries/haskell/editline/default.nix
index fb06cd52a805..b8fe0d25ed41 100644
--- a/pkgs/development/libraries/haskell/editline/default.nix
+++ b/pkgs/development/libraries/haskell/editline/default.nix
@@ -1,12 +1,18 @@
-{ cabal, libedit } :
+{ cabal, libedit }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "editline";
   version = "0.2.1.0";
   sha256 = "83618e5f86074fdc11d7f5033aa2886284462941be38fa02966acc92712c46e1";
-  propagatedBuildInputs = [ libedit ];
+  extraLibraries = [ libedit ];
   meta = {
-    description = "Binding to the BSD editline library (libedit)";
+    homepage = "http://code.haskell.org/editline";
+    description = "Bindings to the editline library (libedit)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/email-validate/default.nix b/pkgs/development/libraries/haskell/email-validate/default.nix
new file mode 100644
index 000000000000..1a351edd39bb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/email-validate/default.nix
@@ -0,0 +1,18 @@
+{ cabal, parsec, ranges }:
+
+cabal.mkDerivation (self: {
+  pname = "email-validate";
+  version = "0.2.6";
+  sha256 = "1nw4r5wyck30r6n0bjxwybpkw2dqr2mp4y8fy6ypra9zhhw1jd8m";
+  buildDepends = [ parsec ranges ];
+  meta = {
+    homepage = "http://porg.es/blog/email-address-validation-simpler-faster-more-correct";
+    description = "Validating an email address string against RFC 5322";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/emgm/default.nix b/pkgs/development/libraries/haskell/emgm/default.nix
index 8082b2f8d916..0172369d1e9d 100644
--- a/pkgs/development/libraries/haskell/emgm/default.nix
+++ b/pkgs/development/libraries/haskell/emgm/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "emgm";
   version = "0.3.1";
   sha256 = "956923ec4d51f111ca6091ebccf75a1f6b99d7a173ea673cbb4787bf08f497a8";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/EMGM";
     description = "Extensible and Modular Generics for the Masses";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/entropy/default.nix b/pkgs/development/libraries/haskell/entropy/default.nix
new file mode 100644
index 000000000000..e877124b9635
--- /dev/null
+++ b/pkgs/development/libraries/haskell/entropy/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "entropy";
+  version = "0.2.1";
+  sha256 = "1qp8hvdzfgg2wk7d431qycwbn2zpzlplc1c7dbhimj1had5jscrs";
+  meta = {
+    homepage = "http://trac.haskell.org/crypto-api/wiki";
+    description = "A platform independent entropy source";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/enumerator/default.nix b/pkgs/development/libraries/haskell/enumerator/default.nix
new file mode 100644
index 000000000000..1037c570bdbb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/enumerator/default.nix
@@ -0,0 +1,18 @@
+{ cabal, text, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "enumerator";
+  version = "0.4.14";
+  sha256 = "06bvrr76y12r3i1xi1s98fc1v6mcmn8nzhbp80wgyi743ksqcr1d";
+  buildDepends = [ text transformers ];
+  meta = {
+    homepage = "https://john-millikin.com/software/enumerator/";
+    description = "Reliable, high-performance processing with left-fold enumerators";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/erf/default.nix b/pkgs/development/libraries/haskell/erf/default.nix
index 57691777564b..25d64b3faafc 100644
--- a/pkgs/development/libraries/haskell/erf/default.nix
+++ b/pkgs/development/libraries/haskell/erf/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "erf";
-  version = "1.0.0.0";
-  sha256 = "0zkb9csnfqcrzdkqqn0xihfx1k17fw9ki7y3d1di67lnlmjpkqnn";
+  version = "2.0.0.0";
+  sha256 = "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14";
   meta = {
-    description = "The error function, erf, and friends";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "The error function, erf, and related functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix
new file mode 100644
index 000000000000..8a928931e3e7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "extensible-exceptions";
+  version = "0.1.1.0";
+  sha256 = "c252dc5a505332700f041d4e1fd3d309cde6158892f9c35339bf5e67bad7f781";
+  meta = {
+    description = "Extensible exceptions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix
new file mode 100644
index 000000000000..329bb2a42c48
--- /dev/null
+++ b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "extensible-exceptions";
+  version = "0.1.1.2";
+  sha256 = "0rsdvb7k8mp88s1jjmna17qa6363vbjgvlkpncmn8516dnxhypg3";
+  meta = {
+    description = "Extensible exceptions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/default.nix b/pkgs/development/libraries/haskell/extensible-exceptions/default.nix
deleted file mode 100644
index 93857414f602..000000000000
--- a/pkgs/development/libraries/haskell/extensible-exceptions/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "extensible-exceptions";
-  version = "0.1.1.0";
-  sha256 = "c252dc5a505332700f041d4e1fd3d309cde6158892f9c35339bf5e67bad7f781";
-  meta = {
-    description = "Extensible exceptions";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/failure/default.nix b/pkgs/development/libraries/haskell/failure/default.nix
index 74f9f0c4626f..b481fb39e543 100644
--- a/pkgs/development/libraries/haskell/failure/default.nix
+++ b/pkgs/development/libraries/haskell/failure/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "failure";
-  version = "0.1.0";
-  sha256 = "08c4e51dbbc0852836ff5bf791e9c62dca748aed8554bb6271618ab3d6a04b2c";
+  version = "0.1.0.1";
+  sha256 = "15zkhnxkfsd3qf4wmcp6kcfip9ahb4s3ywnh14whmhicp9mkm3q0";
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Failure";
     description = "A simple type class for success/failure computations";
-    license = "Public Domain";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/fclabels/default.nix b/pkgs/development/libraries/haskell/fclabels/default.nix
index 4c13955a77e5..e7585b88d47e 100644
--- a/pkgs/development/libraries/haskell/fclabels/default.nix
+++ b/pkgs/development/libraries/haskell/fclabels/default.nix
@@ -1,14 +1,17 @@
-{cabal, monadsFd}:
+{ cabal, mtl, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fclabels";
-  version = "0.4.2";
-  sha256 = "d1abfd94f8970e55ed839645a58697b8beeacc5e5ea4a5861001539aa8fc28d7";
-  propagatedBuildInputs = [monadsFd];
+  version = "1.0.1";
+  sha256 = "0kmbdlf4v4651sc8igx5i1pg26xryai06l9nvp5vwsmbjcvrajcq";
+  buildDepends = [ mtl transformers ];
   meta = {
     description = "First class accessor labels";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/feed/default.nix b/pkgs/development/libraries/haskell/feed/default.nix
index 7ba92613c5e2..8ad5c4318f7d 100644
--- a/pkgs/development/libraries/haskell/feed/default.nix
+++ b/pkgs/development/libraries/haskell/feed/default.nix
@@ -1,14 +1,17 @@
-{cabal, utf8String, xml}:
+{ cabal, utf8String, xml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "feed";
-  version = "0.3.7";
-  sha256 = "c2d539f763cdce1b1498f1fd0707b12078337aff690f01e41db0b6e3569c08aa";
-  propagatedBuildInputs = [utf8String xml];
+  version = "0.3.8";
+  sha256 = "1yvigcvb8cvxfa8vb2i11xkrylqw57jwzkaji6m1wp03k80zf576";
+  buildDepends = [ utf8String xml ];
   meta = {
-    description = "Interfacing with RSS and Atom feeds";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix b/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix
new file mode 100644
index 000000000000..7299daddb14c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "fgl";
+  version = "5.4.2.2";
+  sha256 = "8232c337f0792854bf2a12a5fd1bc46726fff05d2f599053286ff873364cd7d2";
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://web.engr.oregonstate.edu/~erwig/fgl/haskell";
+    description = "Martin Erwig's Functional Graph Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix b/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix
index 0c326683a4f0..7417a32745c5 100644
--- a/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fgl";
-  version = "5.4.2.3"; # Haskell Platform 2010.2.0.0
-  sha256 = "e72142b555a5ab6c5cdced317b42e8cafdbb54b7e2e46ed14e6ca18d71d486b8";
-  propagatedBuildInputs = [mtl];
+  version = "5.4.2.3";
+  sha256 = "1f46siqqv8bc9v8nxr72nxabpzfax117ncgdvif6rax5ansl48g7";
+  buildDepends = [ mtl ];
   meta = {
+    homepage = "http://web.engr.oregonstate.edu/~erwig/fgl/haskell";
     description = "Martin Erwig's Functional Graph Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix b/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix
new file mode 100644
index 000000000000..7b6aa799944b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "fgl";
+  version = "5.4.2.4";
+  sha256 = "0rh22786f37mpsvhkv075wjh5sd0c83nlhk669xil9rd7swcr66f";
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://web.engr.oregonstate.edu/~erwig/fgl/haskell";
+    description = "Martin Erwig's Functional Graph Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/fgl/default.nix b/pkgs/development/libraries/haskell/fgl/default.nix
deleted file mode 100644
index f14031aec5f1..000000000000
--- a/pkgs/development/libraries/haskell/fgl/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl}:
-
-cabal.mkDerivation (self : {
-  pname = "fgl";
-  version = "5.4.2.2"; # Haskell Platform 2010.1.0.0
-  sha256 = "8232c337f0792854bf2a12a5fd1bc46726fff05d2f599053286ff873364cd7d2";
-  propagatedBuildInputs = [mtl];
-  meta = {
-    description = "Martin Erwig's Functional Graph Library";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/file-embed/default.nix b/pkgs/development/libraries/haskell/file-embed/default.nix
new file mode 100644
index 000000000000..d24d30adfcb4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/file-embed/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "file-embed";
+  version = "0.0.4.1";
+  sha256 = "156ydqljhxp16192s4pj6h8jcvrfmj2lnsvzy0zg394wi97bxpi2";
+  meta = {
+    homepage = "http://github.com/snoyberg/file-embed/tree/master";
+    description = "Use Template Haskell to embed file contents directly";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/filepath/default.nix b/pkgs/development/libraries/haskell/filepath/default.nix
index 08d46f0c71f6..809494c7ae98 100644
--- a/pkgs/development/libraries/haskell/filepath/default.nix
+++ b/pkgs/development/libraries/haskell/filepath/default.nix
@@ -1,12 +1,17 @@
-{ cabal} :
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "filepath";
-  version = "1.1.0.2";
-  sha256 = "1mkckshbpmgp7z97vc923x1qph8brqh9wcnb90kbv46bhiza277q";
-  propagatedBuildInputs = [];
+  version = "1.2.0.0";
+  sha256 = "14jji7byjlkzsylsnqwfsiw5vsc7nlaisqabzcw9f7nhrxkq2n20";
   meta = {
-    description = "Library for manipulating FilePath's in a cross platform way";
+    homepage = "http://www-users.cs.york.ac.uk/~ndm/filepath/";
+    description = "Library for manipulating FilePaths in a cross platform way";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/filestore/default.nix b/pkgs/development/libraries/haskell/filestore/default.nix
index 2d3fc9268575..4c4214f0317d 100644
--- a/pkgs/development/libraries/haskell/filestore/default.nix
+++ b/pkgs/development/libraries/haskell/filestore/default.nix
@@ -1,12 +1,18 @@
-{cabal, datetime, parsec, regexPosix, split, time, utf8String, xml, Diff}:
+{ cabal, Diff, parsec, split, time, utf8String, xml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "filestore";
-  version = "0.3.4.1";
-  sha256 = "ad04333fae938ae7de747457a6bdee30c6e4b700733265dbd1f4f8ee363c8230";
-  propagatedBuildInputs = [datetime parsec regexPosix split time utf8String xml Diff];
+  version = "0.4.0.4";
+  sha256 = "14rp2689gjnk9pqk2xv4m3q3icgfvbik32c2d6gx4l2y7n78dsbx";
+  buildDepends = [ Diff parsec split time utf8String xml ];
   meta = {
+    homepage = "http://johnmacfarlane.net/repos/filestore";
     description = "Interface for versioning file stores";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/fingertree/default.nix b/pkgs/development/libraries/haskell/fingertree/default.nix
index 4babd837fa31..37f66a12ba66 100644
--- a/pkgs/development/libraries/haskell/fingertree/default.nix
+++ b/pkgs/development/libraries/haskell/fingertree/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fingertree";
   version = "0.0.1.0";
   sha256 = "e80bf256506290c8f4fb44222920ae7d8405fd22e453c7a08dba49297d49328b";
   meta = {
     description = "Generic finger-tree structure, with example instances";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/flexible-defaults/default.nix b/pkgs/development/libraries/haskell/flexible-defaults/default.nix
new file mode 100755
index 000000000000..b552ab51e2e7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/flexible-defaults/default.nix
@@ -0,0 +1,18 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "flexible-defaults";
+  version = "0.0.0.2";
+  sha256 = "0hr3x4hlah6pd88xvr9lgvz1v4pyxpyv6q9zms96jkm5wc4mkbwx";
+  buildDepends = [ transformers ];
+  meta = {
+    homepage = "https://github.com/mokus0/flexible-defaults";
+    description = "Generate default function implementations for complex type classes";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/funcmp/default.nix b/pkgs/development/libraries/haskell/funcmp/default.nix
new file mode 100755
index 000000000000..d96bb075ab3c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/funcmp/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "funcmp";
+  version = "1.5";
+  sha256 = "f68807833f39178c99877321f0f335cfde12a5c4b38e6c51f33f8cab94b9e12e";
+  meta = {
+    homepage = "http://savannah.nongnu.org/projects/funcmp/";
+    description = "Functional MetaPost";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/gamma/default.nix b/pkgs/development/libraries/haskell/gamma/default.nix
new file mode 100755
index 000000000000..523b9d233cac
--- /dev/null
+++ b/pkgs/development/libraries/haskell/gamma/default.nix
@@ -0,0 +1,18 @@
+{ cabal, continuedFractions, converge, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "gamma";
+  version = "0.7.0.1";
+  sha256 = "0728b5mrzmj9hkaqvikl45jyi2p9hnkl2p6l9yv7wnw557yb0gb2";
+  buildDepends = [ continuedFractions converge vector ];
+  meta = {
+    homepage = "https://github.com/mokus0/gamma";
+    description = "Gamma function and related functions";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/gdiff/default.nix b/pkgs/development/libraries/haskell/gdiff/default.nix
index 3ea5e4877fa8..929b717f552b 100644
--- a/pkgs/development/libraries/haskell/gdiff/default.nix
+++ b/pkgs/development/libraries/haskell/gdiff/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gdiff";
   version = "1.0";
   sha256 = "35257b1090cf78f95d24c7a89920863c1d824652311fa5793693d7d06d96517b";
   meta = {
     description = "Generic diff and patch";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/get-options/default.nix b/pkgs/development/libraries/haskell/get-options/default.nix
index 1371f1719a3f..01ae75758703 100644
--- a/pkgs/development/libraries/haskell/get-options/default.nix
+++ b/pkgs/development/libraries/haskell/get-options/default.nix
@@ -2,7 +2,7 @@
 
 cabal.mkDerivation (self : {
   pname = "get-options";
-  version = "x"; # ? 
+  version = "x"; # ?
   name = self.fname;
   # REGION AUTO UPDATE:             { name="getOptions"; type="darcs"; url = "http://repetae.net/john/repos/GetOptions"; }
   src = sourceFromHead "getOptions-nrmtag1.tar.gz"
diff --git a/pkgs/development/libraries/haskell/ghc-core/default.nix b/pkgs/development/libraries/haskell/ghc-core/default.nix
index 0c1024e562b0..9995c56fd587 100644
--- a/pkgs/development/libraries/haskell/ghc-core/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-core/default.nix
@@ -1,13 +1,20 @@
-{cabal, pcreLight, colorizeHaskell}:
+{ cabal, colorizeHaskell, pcreLight }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-core";
-  version = "0.5";
-  sha256 = "9880ea553a24a1ad6585c4d69505a3b1ac90aaf0f48ca8c126f41e8f170651ef";
-  propagatedBuildInputs = [pcreLight colorizeHaskell];
-  configureFlags = ''--constraint=base<4'';
+  version = "0.5.4";
+  sha256 = "1s68m2zkpz0n927rgzg0l0r5v8pk3z03rlkd82h83agw0hzb9ng7";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ colorizeHaskell pcreLight ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/ghc-core";
     description = "Display GHC's core and assembly output in a pager";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/ghc-events/default.nix b/pkgs/development/libraries/haskell/ghc-events/default.nix
index b9d3ee4d13e8..23af9bfa7fe4 100644
--- a/pkgs/development/libraries/haskell/ghc-events/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-events/default.nix
@@ -5,9 +5,16 @@ cabal.mkDerivation (self : {
   version = "0.2.0.1";
   sha256 = "18cb82ebe143f58a25bf32ee88118a8bfb333b67a53285c2550e866f2afebbc6";
   propagatedBuildInputs = [binary mtl];
+  preConfigure = ''
+    sed -i 's|\(containers.*\) && < 0.4|\1|' ${self.pname}.cabal
+  '';
   meta = {
     description = "Library and tool for parsing .eventlog files from GHC";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/ghc-mtl/default.nix b/pkgs/development/libraries/haskell/ghc-mtl/default.nix
index 07b55c1aaa75..43a8deaf9156 100644
--- a/pkgs/development/libraries/haskell/ghc-mtl/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-mtl/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, MonadCatchIOMtl} :
+{ cabal, MonadCatchIOMtl, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-mtl";
   version = "1.0.1.0";
   sha256 = "5284e0ecf99511e6263503412faf6fa809dc577c009fde63203d46405eb1b191";
-  propagatedBuildInputs = [mtl MonadCatchIOMtl];
+  buildDepends = [ MonadCatchIOMtl mtl ];
   meta = {
+    homepage = "http://code.haskell.org/~jcpetruzza/ghc-mtl";
     description = "An mtl compatible version of the Ghc-Api monads and monad-transformers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix
new file mode 100644
index 000000000000..cd295e3476f0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ghc-paths";
+  version = "0.1.0.5";
+  sha256 = "ea9e97425894e3dbd7915e00e107e2e7fc07b6e8293fd2dd66a813f0673cba10";
+  meta = {
+    description = "Knowledge of GHC's installation directories";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix
index f8c4a29e5e1c..ae280fa54ea6 100644
--- a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix
+++ b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix
@@ -1,11 +1,16 @@
-{ cabal } :
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-paths";
   version = "0.1.0.6";
   sha256 = "95d8c0e6ce2f182d792e910149b3c81c381b7d2c2052ffc6d96128b071c55243";
   meta = {
-    description = "Knowledge of GHC's installations directories";
+    description = "Knowledge of GHC's installation directories";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix
new file mode 100644
index 000000000000..1fa7e662f022
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ghc-paths";
+  version = "0.1.0.8";
+  sha256 = "0mhc5zhbybp1vmkjsqbca51993vkpx5g8hql160m8m95apkc2wl6";
+  meta = {
+    description = "Knowledge of GHC's installation directories";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ghc-paths/default.nix b/pkgs/development/libraries/haskell/ghc-paths/default.nix
deleted file mode 100644
index dadd195acfed..000000000000
--- a/pkgs/development/libraries/haskell/ghc-paths/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ cabal } :
-
-cabal.mkDerivation (self : {
-  pname = "ghc-paths";
-  version = "0.1.0.5";
-  sha256 = "ea9e97425894e3dbd7915e00e107e2e7fc07b6e8293fd2dd66a813f0673cba10";
-  meta = {
-    description = "Knowledge of GHC's installations directories";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
index 5e001569ba8f..ce2cb87c096a 100644
--- a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
@@ -1,11 +1,18 @@
-{cabal, ghcSyb}:
+{ cabal, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-syb-utils";
-  version = "0.2.0.0";
-  sha256 = "457110f7e1f163ccf78acb898f8ca43b6a5b4595156a08a2f1a3d81f944d74a9";
-  propagatedBuildInputs = [ghcSyb];
+  version = "0.2.1.0";
+  sha256 = "02wmd4zkng38z3bhsk4w4dqj1lzznhg2p0ijwr1a0dgx8cqr490z";
+  buildDepends = [ syb ];
   meta = {
+    homepage = "http://github.com/nominolo/ghc-syb";
     description = "Scrap Your Boilerplate utilities for the GHC API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/ghc-syb/default.nix b/pkgs/development/libraries/haskell/ghc-syb/default.nix
index fa59bd8c15dd..d0a766940fe8 100644
--- a/pkgs/development/libraries/haskell/ghc-syb/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-syb/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-syb";
   version = "0.2.0.0";
   sha256 = "0052bd2ee4d92fbb010bebc7bcfd533a0b78437f1fb0834288ce979c103d9d67";
   meta = {
+    homepage = "http://github.com/nominolo/ghc-syb";
     description = "Data and Typeable instances for the GHC API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/gitit/default.nix b/pkgs/development/libraries/haskell/gitit/default.nix
index 4859a2ca0ee1..a2db60b8d0f8 100644
--- a/pkgs/development/libraries/haskell/gitit/default.nix
+++ b/pkgs/development/libraries/haskell/gitit/default.nix
@@ -1,23 +1,30 @@
-{cabal, happstackServer, happstackUtil, HStringTemplate, HTTP,
- SHA, cgi, datetime,
- filestore, highlightingKate, safe, mtl, network, pandoc, parsec,
- recaptcha, utf8String, xhtml, zlib, ConfigFile, url,
- cautiousFile, feed}:
+{ cabal, cgi, ConfigFile, feed, filestore, ghcPaths
+, happstackServer, happstackUtil, highlightingKate, hslogger
+, HStringTemplate, HTTP, json, mtl, network, pandoc, pandocTypes
+, parsec, random, recaptcha, safe, SHA, syb, time, url, utf8String
+, xhtml, xml, xssSanitize, zlib
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gitit";
-  version = "0.7.3.8";
-  sha256 = "356c82604dcfe2eec4faeb36ee46546ea3e26738780723f457366b2e35f6211a";
-  propagatedBuildInputs = [
-    HStringTemplate happstackServer happstackUtil HTTP SHA cgi datetime
-    filestore highlightingKate safe
-    mtl network pandoc parsec recaptcha utf8String xhtml zlib ConfigFile
-    url cautiousFile feed
+  version = "0.8.0.1";
+  sha256 = "0y2gcxlbb44vflj0jl3zkbsn47n7nccikxwdw6ccf9kxgcmrz0zy";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    cgi ConfigFile feed filestore ghcPaths happstackServer
+    happstackUtil highlightingKate hslogger HStringTemplate HTTP json
+    mtl network pandoc pandocTypes parsec random recaptcha safe SHA syb
+    time url utf8String xhtml xml xssSanitize zlib
   ];
   meta = {
-    description = "Wiki using HAppS, git or darcs, and pandoc";
+    homepage = "http://github.com/jgm/gitit/tree/master";
+    description = "Wiki using happstack, git or darcs, and pandoc";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/glade/default.nix b/pkgs/development/libraries/haskell/glade/default.nix
index f3152a924830..8f43af57b8dc 100644
--- a/pkgs/development/libraries/haskell/glade/default.nix
+++ b/pkgs/development/libraries/haskell/glade/default.nix
@@ -1,14 +1,23 @@
-{cabal, cairo, glib, gtk, mtl, pango, gtk2hsBuildtools, pkgconfig, gnome, glibc}:
+{ cabal, cairo, glib, glibc, gtk, gtk2hsBuildtools, gtkC, libglade
+, mtl, pango, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "glade";
-  version = "0.11.1";
-  sha256 = "0d96a8576f89a81aa1ecdaf172e42e9eb1e7b40ce1b23cff36ab473165832c6a";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools gnome.libglade gnome.gtk glibc];
-  propagatedBuildInputs = [cairo glib gtk mtl pango];
+  version = "0.12.0";
+  sha256 = "0h7l1kp9y17xqyz16kv0dvwgblph9r70wimyl8aq9gi1r4is5lmq";
+  buildDepends = [ cairo glib gtk mtl pango ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ gtkC libglade ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the glade library";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/glib/default.nix b/pkgs/development/libraries/haskell/glib/default.nix
index d56a9abe5958..9d7750e24de8 100644
--- a/pkgs/development/libraries/haskell/glib/default.nix
+++ b/pkgs/development/libraries/haskell/glib/default.nix
@@ -1,13 +1,20 @@
-{cabal, gtk2hsBuildtools, pkgconfig, glib, glibc}:
+{ cabal, glib, glibc, gtk2hsBuildtools, pkgconfig }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "glib";
-  version = "0.11.2";
-  sha256 = "e0fb5f3c22701807db364dff86d55f2a33a57d8a4e58d37a80d367bca50b3dbb";
-  extraBuildInputs = [pkgconfig glib glibc gtk2hsBuildtools];
+  version = "0.12.0";
+  sha256 = "1sqkj6adg87ccdnl9yy1p8yrv5xnfcrlaflj52nrh6anwlqy9z19";
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ glib ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the GLIB library for Gtk2Hs";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/graphviz/default.nix b/pkgs/development/libraries/haskell/graphviz/default.nix
index f747d81e6c6d..9e1ab17a940a 100644
--- a/pkgs/development/libraries/haskell/graphviz/default.nix
+++ b/pkgs/development/libraries/haskell/graphviz/default.nix
@@ -1,13 +1,25 @@
-{cabal, colour, fgl, polyparse, transformers, QuickCheck}:
+{ cabal, colour, dlist, extensibleExceptions, fgl, polyparse, text
+, transformers, wlPprintText
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "graphviz";
-  version = "2999.10.0.1";
-  sha256 = "5a3aebd3874303dcf554aef3bf511dd22e72053a9672c823d1d820d2b90ca076";
-  propagatedBuildInputs = [colour fgl polyparse transformers QuickCheck];
+  version = "2999.12.0.3";
+  sha256 = "0qvkmklf2wxac6j01fnh8r352b52xzhr8wryk1b9119wvcbli8md";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    colour dlist extensibleExceptions fgl polyparse text transformers
+    wlPprintText
+  ];
   meta = {
-    description = "Bindings for the Dot language (Graphviz)";
-    license = "BSD3";
+    homepage = "http://projects.haskell.org/graphviz/";
+    description = "Bindings to Graphviz for graph visualisation";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/gtk/default.nix b/pkgs/development/libraries/haskell/gtk/default.nix
index 5e940e4e8c5a..0b9cd20eb0ad 100644
--- a/pkgs/development/libraries/haskell/gtk/default.nix
+++ b/pkgs/development/libraries/haskell/gtk/default.nix
@@ -1,14 +1,23 @@
-{cabal, cairo, glib, mtl, pango, gtk2hsBuildtools, pkgconfig, gtk, glibc}:
+{ cabal, cairo, glib, glibc, gtk, gtk2hsBuildtools, mtl, pango
+, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gtk";
-  version = "0.11.2";
-  sha256 = "c9de86278780badbd874fb75ef01ca12a70364a9985b75f98957ba940df27aa6";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools gtk glibc];
-  propagatedBuildInputs = [cairo glib mtl pango];
+  version = "0.12.0";
+  sha256 = "1rqy0390rahdrlb1ba1hjrygwin8ynxzif5flcici22bg5ixsgs2";
+  buildDepends = [ cairo glib mtl pango ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ glib gtk ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the Gtk+ graphical user interface library";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix b/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix
index 07fa2fbf9a97..9b0fe07653c4 100644
--- a/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix
+++ b/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix
@@ -1,13 +1,20 @@
-{cabal, alex, happy}:
+{ cabal, alex, happy }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gtk2hs-buildtools";
-  version = "0.11.2";
-  sha256 = "330c52830358966bcff308f58a570e84bb0b4d6004b6f01107d55dd88faa54ad";
-  extraBuildInputs = [alex happy];
+  version = "0.12.0";
+  sha256 = "1czlmyr9zhzc0h1j0z3chv06ma77cibq2yc6h1slfphb1lkv66a8";
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ alex happy ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Tools to build the Gtk2Hs suite of User Interface libraries";
-    license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.gpl2;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/gtk2hs/default.nix b/pkgs/development/libraries/haskell/gtk2hs/default.nix
deleted file mode 100644
index b58e3e928d7f..000000000000
--- a/pkgs/development/libraries/haskell/gtk2hs/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gnome, cairo, ghc, mtl }:
-
-stdenv.mkDerivation rec {
-  pname = "gtk2hs";
-  version = "0.10.0";
-  fname = "${pname}-${version}";
-  name = "haskell-${pname}-ghc${ghc.ghc.version}-${version}";
-  
-  src = fetchurl {
-    url = http://nixos.org/tarballs/gtk2hs-0.10.0-20090419.tar.gz;
-    sha256 = "18a7cfph83yvv91ks37nrgqrn21fvww8bhb8nd8xy1mgb8lnfds1";
-  };
-  
-  propagatedBuildInputs = [mtl];
-
-  buildInputs = [
-    pkgconfig cairo ghc gnome.glib gnome.gtk gnome.libglade
-    gnome.GConf gnome.gtksourceview gnome.librsvg
-  ];
-
-  preConfigure =
-    ''
-      sed -i gio/gio.package.conf.in -e 's|@GIO_LIBDIR_CQ@|"${gnome.glib}/lib", "${gnome.glib}/lib64", @GIO_LIBDIR_CQ@|'
-      sed -i gtk/gtk.package.conf.in -e 's|@GTK_LIBDIR_CQ@|"${gnome.glib}/lib", "${gnome.glib}/lib64", @GTK_LIBDIR_CQ@|'
-    '';
-
-  configureFlags = ["--without-pkgreg"];
-
-  postInstall =
-    ''
-      local confDir=$out/lib/ghc-pkgs/ghc-${ghc.ghc.version}
-      local installedPkgConf=$confDir/${fname}.installedconf
-      ensureDir $out/bin # necessary to get it added to PATH
-      ensureDir $confDir
-      echo $installedPkgConf
-      echo '[]' > $installedPkgConf
-      for pkgConf in $out/lib/gtk2hs/*.conf; do
-        cp $pkgConf $confDir/
-        GHC_PACKAGE_PATH=$installedPkgConf ghc-pkg --global register $pkgConf --force
-      done
-    ''; # */
-
-  passthru = { inherit (gnome) gtksourceview; };
-}
diff --git a/pkgs/development/libraries/haskell/gtksourceview2/default.nix b/pkgs/development/libraries/haskell/gtksourceview2/default.nix
index f6019c54c9f7..6f69696d1f43 100644
--- a/pkgs/development/libraries/haskell/gtksourceview2/default.nix
+++ b/pkgs/development/libraries/haskell/gtksourceview2/default.nix
@@ -1,14 +1,23 @@
-{cabal, gtk2hsBuildtools, pkgconfig, gtksourceview, glib, gtk, gtkC, glibc}:
+{ cabal, glib, glibc, gtk, gtk2hsBuildtools, gtksourceview, mtl
+, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gtksourceview2";
-  version = "0.11.1";
-  sha256 = "1skb13ssp6sd06jb3nshv97wjqvwa0mnzcxgmrxwd5l21r6k1m2v";
-  extraBuildInputs = [pkgconfig gtksourceview gtkC glibc gtk2hsBuildtools];
-  propagatedBuildInputs = [glib gtk];
+  version = "0.12.2";
+  sha256 = "0l9y48kmzqzps6k54fgf0dkmmv0ppxx8amggfdswwk86zsf8j81r";
+  buildDepends = [ glib gtk mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ gtksourceview ];
   meta = {
-    description = "GtkSourceView is a text widget that extends the standard GTK+ 2.x text widget GtkTextView";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.haskell.org/gtk2hs/";
+    description = "Binding to the GtkSourceView library";
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index c5b0339fae72..1f42ba532fbc 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -1,13 +1,23 @@
-{cabal, binary, hamlet, mtl, network, pandoc, regexBase, regexTDFA, time}:
+{ cabal, binary, blazeHtml, hamlet, hopenssl, mtl, pandoc, parsec
+, regexBase, regexPcre, snapCore, snapServer, tagsoup, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "2.3";
-  sha256 = "40e57c5cf5be3c6fdc270d00ff765a2b3e11ba7e302f40146d83048aa4436116";
-  propagatedBuildInputs = [hamlet mtl network pandoc regexBase regexTDFA time];
+  version = "3.2.0.5";
+  sha256 = "1rwmdkzwshhi6b27zff42gg65vds866l68h33p4kn6pq1rns3bz4";
+  buildDepends = [
+    binary blazeHtml hamlet hopenssl mtl pandoc parsec regexBase
+    regexPcre snapCore snapServer tagsoup time
+  ];
   meta = {
-    description = "A simple static site generator library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    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
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index 90bbb999d18f..0bf489ae9830 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -1,15 +1,18 @@
-{cabal, blazeHtml, blazeBuilder, parsec, utf8String, failure, neither}:
+{ cabal, blazeBuilder, blazeHtml, failure, parsec, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hamlet";
-  version = "0.5.0";
-  sha256 = "92d8e099fa63fe218e2c8c4da56ac86b0b0bb49139467b8f12595c4436d1ad0b";
-  propagatedBuildInputs = [
-    blazeHtml blazeBuilder parsec utf8String failure neither
-  ];
+  version = "0.8.2.1";
+  sha256 = "0798ic6qap4npw2rx42xcgmi1fcbwqvyic5x6vyyf6abvxv16925";
+  buildDepends = [ blazeBuilder blazeHtml failure parsec text ];
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Haml-like template files that are compile-time checked";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-data.nix b/pkgs/development/libraries/haskell/happstack/happstack-data.nix
index de54b3ccac3e..d1603e0441a5 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-data.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-data.nix
@@ -1,17 +1,24 @@
-{cabal, mtl, sybWithClass, sybWithClassInstancesText, HaXml,
- happstackUtil, binary, text}:
+{ cabal, binary, mtl, syb, sybWithClass, sybWithClassInstancesText
+, text, time
+}:
 
-cabal.mkDerivation (self : {
-    pname = "happstack-data";
-    version = "0.5.0.2";
-    sha256 = "03795c24acc2268f39d38f18dd6cbfb92893f7de88b0443219d582a1eabdacd5";
-    propagatedBuildInputs = [
-        mtl sybWithClass sybWithClassInstancesText HaXml
-        happstackUtil binary text
+cabal.mkDerivation (self: {
+  pname = "happstack-data";
+  version = "6.0.0";
+  sha256 = "1wdvylqgy3iw41ksw2ys4f0vyak8sbk6gginljvz07rrh04klyhl";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary mtl syb sybWithClass sybWithClassInstancesText text time
+  ];
+  meta = {
+    homepage = "http://happstack.com";
+    description = "Happstack data manipulation libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
     ];
-    meta = {
-        description = "Happstack data manipulation libraries";
-        license = "BSD";
-        maintainers = [self.stdenv.lib.maintainers.andres];
-    };
+  };
 })
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-server.nix b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
index 461137c933dc..4d8e874a8bf5 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-server.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
@@ -1,16 +1,27 @@
-{cabal, HUnit, HaXml, MaybeT, parsec, sendfile, utf8String, mtl, network, hslogger, happstackData, happstackUtil, xhtml, html, zlib}:
+{ cabal, blazeHtml, extensibleExceptions, happstackData
+, happstackUtil, hslogger, html, MaybeT, mtl, network, parsec
+, sendfile, syb, text, time, utf8String, xhtml, zlib
+}:
 
-cabal.mkDerivation (self : {
-    pname = "happstack-server";
-    version = "0.5.0.2";
-    sha256 = "0184c835958bf9f29009a5aedd2c913bb1ad6ab60b80d9750849381c172dd6b6";
-    propagatedBuildInputs = [
-      HUnit HaXml MaybeT happstackData happstackUtil hslogger html
-      mtl network parsec sendfile utf8String xhtml zlib
+cabal.mkDerivation (self: {
+  pname = "happstack-server";
+  version = "6.1.6";
+  sha256 = "1z4c2bymyyvhs47ynrlp4d2cwqws2d2isiwj82c33qcmk4znargg";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    blazeHtml extensibleExceptions happstackData happstackUtil hslogger
+    html MaybeT mtl network parsec sendfile syb text time utf8String
+    xhtml zlib
+  ];
+  meta = {
+    homepage = "http://happstack.com";
+    description = "Web related tools and services";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
     ];
-    meta = {
-        description = "Web related tools and services";
-        license = "BSD";
-        maintainers = [self.stdenv.lib.maintainers.andres];
-    };
+  };
 })
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-util.nix b/pkgs/development/libraries/haskell/happstack/happstack-util.nix
index cab41882514d..de4c1b9990c6 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-util.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-util.nix
@@ -1,17 +1,25 @@
-{cabal, mtl, hslogger, HUnit, QuickCheck, strictConcurrency,
- unixCompat, SMTPClient}:
+{ cabal, extensibleExceptions, hslogger, mtl, network, parsec
+, random, time, unixCompat
+}:
 
-cabal.mkDerivation (self : {
-    pname = "happstack-util";
-    version = "0.5.0.2";
-    sha256 = "b6a84a55d6f7aec51095121a240bd6096b0df3c61c6fd25963d91190fcca4657";
-    propagatedBuildInputs = [
-      mtl hslogger HUnit QuickCheck strictConcurrency unixCompat
-      SMTPClient
+cabal.mkDerivation (self: {
+  pname = "happstack-util";
+  version = "6.0.0";
+  sha256 = "06qla74kb58q0rvlfa9k16s4crnylq99hm80xx4phlddyzn0cy4z";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    extensibleExceptions hslogger mtl network parsec random time
+    unixCompat
+  ];
+  meta = {
+    homepage = "http://happstack.com";
+    description = "Web framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
     ];
-    meta = {
-        description = "Miscellaneous utilities for Happstack packages";
-        license = "BSD";
-        maintainers = [self.stdenv.lib.maintainers.andres];
-    };
+  };
 })
diff --git a/pkgs/development/libraries/haskell/hashable/default.nix b/pkgs/development/libraries/haskell/hashable/default.nix
new file mode 100644
index 000000000000..5149da865c70
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hashable/default.nix
@@ -0,0 +1,18 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "hashable";
+  version = "1.1.2.1";
+  sha256 = "1kmx3jr9cmkbapd7gywx7zvyd22nyz2mgs8lnzspp5hi7crx3wcx";
+  buildDepends = [ text ];
+  meta = {
+    homepage = "http://github.com/tibbe/hashable";
+    description = "A class for types that can be converted to a hash value";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hashed-storage/default.nix b/pkgs/development/libraries/haskell/hashed-storage/default.nix
index 0a0409b6bf9c..dc7378ce047e 100644
--- a/pkgs/development/libraries/haskell/hashed-storage/default.nix
+++ b/pkgs/development/libraries/haskell/hashed-storage/default.nix
@@ -1,12 +1,21 @@
-{cabal, mtl, zlib, mmap, binary, dataenc}:
+{ cabal, binary, dataenc, extensibleExceptions, mmap, mtl, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hashed-storage";
-  version = "0.5.3";
-  sha256 = "0ql8hgsaazs0wxvr920vm2s2iljcnh6lnivcy3vgd5wjaw6lkd00";
-  propagatedBuildInputs = [mtl zlib mmap binary dataenc];
+  version = "0.5.8";
+  sha256 = "1730hg6h7a1b0vgr9dvish41bpgly5cjpdwhqny75fi5in7dqplh";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary dataenc extensibleExceptions mmap mtl zlib
+  ];
   meta = {
     description = "Hashed file storage support code";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/haskeline-class/default.nix b/pkgs/development/libraries/haskell/haskeline-class/default.nix
index 40b3857c03bc..acf6a6c0d4fa 100644
--- a/pkgs/development/libraries/haskell/haskeline-class/default.nix
+++ b/pkgs/development/libraries/haskell/haskeline-class/default.nix
@@ -1,12 +1,18 @@
-{cabal, haskeline, mtl}:
+{ cabal, haskeline, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskeline-class";
-  version = "0.6.1";
-  sha256 = "da954acea7ae215865a647fff776df9621ee5c5133a5f95c16b1ac5646ef0b31";
-  propagatedBuildInputs = [haskeline mtl];
+  version = "0.6.2";
+  sha256 = "0xgdq2xgw2ccyfzkj5n36s5n6km5l947d2iy4y1qms8kbc05zmfl";
+  buildDepends = [ haskeline mtl ];
   meta = {
+    homepage = "http://community.haskell.org/~aslatter/code/haskeline-class";
     description = "Class interface for working with Haskeline";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/haskeline/default.nix b/pkgs/development/libraries/haskell/haskeline/default.nix
index 646400acc5a7..12e1448c0416 100644
--- a/pkgs/development/libraries/haskell/haskeline/default.nix
+++ b/pkgs/development/libraries/haskell/haskeline/default.nix
@@ -1,12 +1,18 @@
-{cabal, extensibleExceptions, mtl, utf8String}:
+{ cabal, extensibleExceptions, mtl, terminfo, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskeline";
-  version = "0.6.2.2";
-  sha256 = "b6307563258802453d65c7e7bd1ef1c6635fefea17af3e01449192b52075b25b";
-  propagatedBuildInputs = [extensibleExceptions mtl utf8String];
+  version = "0.6.4.3";
+  sha256 = "1dlrsazprvn6xcd12k5ln536rv9sljjccrjgpq6jj6b9ziadwiwr";
+  buildDepends = [ extensibleExceptions mtl terminfo utf8String ];
   meta = {
+    homepage = "http://trac.haskell.org/haskeline";
     description = "A command-line interface for user input, written in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/haskell-lexer/default.nix b/pkgs/development/libraries/haskell/haskell-lexer/default.nix
index 1df6b90db0d8..90c4a599bc4c 100644
--- a/pkgs/development/libraries/haskell/haskell-lexer/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-lexer/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskell-lexer";
   version = "1.0";
   sha256 = "86d0c4071295c8613eb965768cb61a0c8422fc0c429a49c7a93e93a72b185b86";
   meta = {
     description = "A fully compliant Haskell 98 lexer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/haskell-platform/2009.2.0.2.nix b/pkgs/development/libraries/haskell/haskell-platform/2009.2.0.2.nix
index 87b5173620c8..e87d59582f26 100644
--- a/pkgs/development/libraries/haskell/haskell-platform/2009.2.0.2.nix
+++ b/pkgs/development/libraries/haskell/haskell-platform/2009.2.0.2.nix
@@ -1,6 +1,7 @@
 {cabal, fetchurl, GLUT, HTTP, HUnit, OpenGL, QuickCheck, cgi, fgl, editline,
  haskellSrc, html, parallel, regexBase, regexCompat, regexPosix,
- stm, time, xhtml, zlib, cabalInstall, alex, happy, haddock, ghc}:
+ stm, time, xhtml, zlib, parsec, network,
+ cabalInstall, alex, happy, haddock, ghc}:
 
 cabal.mkDerivation (self : {
   pname = "haskell-platform";
@@ -12,11 +13,12 @@ cabal.mkDerivation (self : {
   propagatedBuildInputs = [
     GLUT HTTP HUnit OpenGL QuickCheck cgi fgl editline
     haskellSrc html parallel regexBase regexCompat regexPosix
-    stm time xhtml zlib cabalInstall alex happy ghc
+    stm time xhtml zlib parsec network
+    cabalInstall alex happy ghc
   ];
   meta = {
     description = "Haskell Platform meta package";
     maintainers = [self.stdenv.lib.maintainers.andres];
   };
-})  
+})
 
diff --git a/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix b/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix
index 73b076947d28..fc7de20f6c1a 100644
--- a/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix
+++ b/pkgs/development/libraries/haskell/haskell-platform/2010.1.0.0.nix
@@ -1,6 +1,7 @@
 {cabal, fetchurl, GLUT, HTTP, HUnit, OpenGL, QuickCheck, cgi, fgl,
  haskellSrc, html, network, parallel, regexBase, regexCompat, regexPosix,
- stm, xhtml, zlib, cabalInstall, alex, happy, haddock, ghc}:
+ stm, xhtml, zlib, parsec,
+ cabalInstall, alex, happy, haddock, ghc}:
 
 cabal.mkDerivation (self : {
   pname = "haskell-platform";
@@ -12,11 +13,12 @@ cabal.mkDerivation (self : {
   propagatedBuildInputs = [
     GLUT HTTP HUnit OpenGL QuickCheck cgi fgl
     haskellSrc html network parallel regexBase regexCompat regexPosix
-    stm xhtml zlib cabalInstall alex happy ghc haddock
+    stm xhtml zlib parsec
+    cabalInstall alex happy ghc haddock
   ];
   meta = {
     description = "Haskell Platform meta package";
     maintainers = [self.stdenv.lib.maintainers.andres];
   };
-})  
+})
 
diff --git a/pkgs/development/libraries/haskell/haskell-platform/2010.2.0.0.nix b/pkgs/development/libraries/haskell/haskell-platform/2010.2.0.0.nix
index 5e39d3ddffb3..3a47f2a39c9d 100644
--- a/pkgs/development/libraries/haskell/haskell-platform/2010.2.0.0.nix
+++ b/pkgs/development/libraries/haskell/haskell-platform/2010.2.0.0.nix
@@ -1,6 +1,7 @@
 {cabal, fetchurl, GLUT, HTTP, HUnit, OpenGL, QuickCheck, cgi, fgl,
  haskellSrc, html, network, parallel, regexBase, regexCompat, regexPosix,
- stm, xhtml, zlib, cabalInstall, alex, happy, haddock, ghc}:
+ stm, xhtml, zlib, mtl, parsec, deepseq,
+ cabalInstall, alex, happy, haddock, ghc}:
 
 cabal.mkDerivation (self : {
   pname = "haskell-platform";
@@ -12,11 +13,12 @@ cabal.mkDerivation (self : {
   propagatedBuildInputs = [
     GLUT HTTP HUnit OpenGL QuickCheck cgi fgl
     haskellSrc html network parallel regexBase regexCompat regexPosix
-    stm xhtml zlib cabalInstall alex happy ghc haddock
+    stm xhtml zlib mtl parsec deepseq
+    cabalInstall alex happy ghc haddock
   ];
   meta = {
     description = "Haskell Platform meta package";
     maintainers = [self.stdenv.lib.maintainers.andres];
   };
-})  
+})
 
diff --git a/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.0.nix b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.0.nix
new file mode 100644
index 000000000000..8eb1b457aa3b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.0.nix
@@ -0,0 +1,26 @@
+{cabal, fetchurl, GLUT, HTTP, HUnit, OpenGL, QuickCheck, cgi, fgl,
+ haskellSrc, html, network, parallel, parsec, regexBase, regexCompat, regexPosix,
+ stm, syb, deepseq, text, transformers, mtl, xhtml, zlib,
+ cabalInstall, alex, happy, haddock, ghc}:
+
+cabal.mkDerivation (self : {
+  pname = "haskell-platform";
+  version = "2011.2.0.0";
+  src = fetchurl {
+    # url = "http://hackage.haskell.org/platform/${self.version}/cabal/${self.pname}-${self.version}.tar.gz";
+    url = "http://lambda.haskell.org/hp-tmp/${self.version}/cabal/${self.pname}-${self.version}.tar.gz";
+    sha256 = "01ppv8jdyvbngml9vgvrvnani6fj1nbk8mqmrkd8c508l7q9g6vb";
+  };
+  propagatedBuildInputs = [
+    GLUT HTTP HUnit OpenGL QuickCheck cgi fgl
+    haskellSrc html network parallel parsec regexBase regexCompat regexPosix
+    stm syb deepseq text transformers mtl xhtml zlib
+    cabalInstall alex happy ghc haddock
+  ];
+  noHaddock = true;
+  meta = {
+    description = "Haskell Platform meta package";
+    maintainers = [self.stdenv.lib.maintainers.andres];
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
new file mode 100644
index 000000000000..da70d32861d0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
@@ -0,0 +1,36 @@
+{cabal, fetchurl, GLUT, HTTP, HUnit, OpenGL, QuickCheck, cgi, fgl,
+ haskellSrc, html, network, parallel, parsec, regexBase, regexCompat, regexPosix,
+ stm, syb, deepseq, text, transformers, mtl, xhtml, zlib,
+ cabalInstall, alex, happy, haddock, ghc}:
+
+# This is just a meta-package. Because upstream fails to provide proper versioned
+# release tarballs that can be used for the purpose of verifying this package, we
+# just create it on the fly from a simple Setup.hs file and a .cabal file that we
+# store directly in the nixpkgs repository.
+
+cabal.mkDerivation (self : {
+  pname = "haskell-platform";
+  version = "2011.2.0.1";
+  cabalFile = ./haskell-platform-2011.2.0.1.cabal;
+  setupFile = ./Setup.hs;
+  src = null;
+  propagatedBuildInputs = [
+    GLUT HTTP HUnit OpenGL QuickCheck cgi fgl
+    haskellSrc html network parallel parsec regexBase regexCompat regexPosix
+    stm syb deepseq text transformers mtl xhtml zlib
+    cabalInstall alex happy ghc haddock
+  ];
+  unpackPhase = ''
+    sourceRoot=haskell-platform
+    mkdir $sourceRoot
+    cp ${self.cabalFile} $sourceRoot/${self.pname}.cabal
+    cp ${self.setupFile} $sourceRoot/Setup.hs
+    touch $sourceRoot/LICENSE
+  '';
+  noHaddock = true;
+  meta = {
+    description = "Haskell Platform meta package";
+    maintainers = [self.stdenv.lib.maintainers.andres];
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/haskell-platform/Setup.hs b/pkgs/development/libraries/haskell/haskell-platform/Setup.hs
new file mode 100644
index 000000000000..47fd3a5c71b1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-platform/Setup.hs
@@ -0,0 +1,10 @@
+import Distribution.Simple
+import Distribution.Simple.Program
+
+main = defaultMainWithHooks simpleUserHooks { hookedPrograms = [cabal] }
+
+cabal :: Program
+cabal = (simpleProgram "cabal-install") {
+  programFindLocation = \x -> findProgramLocation x "cabal",
+  programFindVersion  = findProgramVersion "--numeric-version" id
+}
diff --git a/pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal b/pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal
new file mode 100644
index 000000000000..fa09cb039dab
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal
@@ -0,0 +1,90 @@
+name:                haskell-platform
+version:             2011.2.0.1
+homepage:            http://haskell.org/platform
+license:             BSD3
+license-file:        LICENSE
+author:              libraries@haskell.org
+maintainer:          haskell-platform@projects.haskell.org
+category:            System
+synopsis:            The Haskell Platform
+description:
+    The Haskell Platform (HP) is the blessed set of libraries and tools on
+    which to build further Haskell libraries and applications. It is
+    intended to provide a comprehensive, stable, and quality tested base for
+    Haskell projects to work from.
+    .
+    This version specifies the following additional developer tools be
+    installed, for a system to be in full compliance:
+    . 
+    * cabal-install
+    * alex
+    * happy
+    * haddock
+
+cabal-version:       >= 1.6
+build-type:          Custom
+tested-with:         GHC ==7.0.3
+
+library
+  build-depends:
+    -- ghc 7.x
+    -- Core libraries: provided by every ghc installation
+    -- We don't include "non-API" packages here.
+    -- array                    ==0.3.0.2
+    -- base                     ==4.3.1.0
+    -- bytestring               ==0.9.1.10
+    -- Cabal                    ==1.10.1.0
+    -- containers               ==0.4.0.0
+    -- directory                ==1.1.0.0
+    -- extensible-exceptions    ==0.1.1.2
+    -- filepath                 ==1.2.0.0
+    -- haskell2010              ==1.0.0.0
+    -- haskell98                ==1.1.0.1
+    -- hpc                      ==0.5.0.6
+    -- old-locale               ==1.0.0.2
+    -- old-time                 ==1.0.0.6
+    -- pretty                   ==1.0.1.2
+    -- process                  ==1.0.1.5
+    -- random                   ==1.0.0.3
+    -- template-haskell         ==2.5.0.0
+    -- time                     ==1.2.0.3
+    -- unix                     ==XXX 2.4.2.0
+    -- Win32                    ==XXX 2.2.0.1
+
+    -- Libraries in addition to what GHC provides:
+    -- Note: newer versions of cgi need monad-catchio.
+    cgi                         ==3001.1.7.4,
+    fgl                         ==5.4.2.3,
+    GLUT                        ==2.1.2.1,
+    haskell-src                 ==1.0.1.4,
+    html                        ==1.0.1.2,
+    HUnit                       ==1.2.2.3,
+    network                     ==2.3.0.2,
+    OpenGL                      ==2.2.3.0,
+    parallel                    ==3.1.0.1,
+    parsec                      ==3.1.1,
+    QuickCheck                  ==2.4.0.1,
+    regex-base                  ==0.93.2,
+    regex-compat                ==0.93.1,
+    regex-posix                 ==0.94.4,
+    stm                         ==2.2.0.1,
+    syb                         ==0.3,
+    xhtml                       ==3000.2.0.1,
+    zlib                        ==0.5.3.1,
+    HTTP                        ==4000.1.1,
+    deepseq                     ==1.1.0.2,
+
+    -- 2011.1 proposals:
+    text                        ==0.11.0.6,
+    transformers                ==0.2.2.0,
+    mtl                         ==2.0.1.0
+
+  -- Depending on programs does not work, they are not registered
+  -- We list them to help distro packaging.
+  build-tools:
+    cabal-install ==0.10.2,
+    alex          ==2.3.5,
+    happy         ==1.18.6
+    -- hscolour      ==1.17       
+  --  haddock       ==2.9.2     -- need to use the one shipped with ghc
+
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix b/pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix
new file mode 100644
index 000000000000..649bf29f58f7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix
@@ -0,0 +1,19 @@
+{ cabal, cpphs, happy }:
+
+cabal.mkDerivation (self: {
+  pname = "haskell-src-exts";
+  version = "1.11.1";
+  sha256 = "1jqf8l81zw7x5ryf8h2n0b2636yhxkfp3j4ndbqw6hc7i5q581m6";
+  buildDepends = [ cpphs ];
+  buildTools = [ happy ];
+  meta = {
+    homepage = "http://code.haskell.org/haskell-src-exts";
+    description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix b/pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix
new file mode 100644
index 000000000000..42b69258397e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix
@@ -0,0 +1,19 @@
+{ cabal, cpphs, happy }:
+
+cabal.mkDerivation (self: {
+  pname = "haskell-src-exts";
+  version = "1.9.6";
+  sha256 = "1bdbjwhzms962ncwiszp82a8m6jkgz6d9cns5585kipy9n224d3h";
+  buildDepends = [ cpphs ];
+  buildTools = [ happy ];
+  meta = {
+    homepage = "http://code.haskell.org/haskell-src-exts";
+    description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/default.nix b/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
deleted file mode 100644
index 6b4d48c67154..000000000000
--- a/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, cpphs, happy}:
-
-cabal.mkDerivation (self : {
-  pname = "haskell-src-exts";
-  version = "1.9.0";
-  sha256 = "dedb529217dfe393f75f26b735f7dd09eea50006481f60d06e169de6f328d1da";
-  extraBuildInputs = [happy];
-  propagatedBuildInputs = [cpphs];
-  meta = {
-    description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/haskell-src-meta/default.nix b/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
index b60e55ed0ebc..62e62b786414 100644
--- a/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
@@ -1,12 +1,17 @@
-{cabal, haskellSrcExts}:
+{ cabal, haskellSrcExts, syb, thLift }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskell-src-meta";
-  version = "0.0.5";
-  sha256 = "96e55d6b5237043f8b3943b40c55e26ef6a2806d1314d784202135497e645add";
-  propagatedBuildInputs = [haskellSrcExts];
+  version = "0.4.0.2";
+  sha256 = "1i3lhik0sa34x6rnkfa9scai9cdgx05h6mrbhwsfc7p2jlsixk92";
+  buildDepends = [ haskellSrcExts syb thLift ];
   meta = {
     description = "Parse source to template-haskell abstract syntax";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix b/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix
new file mode 100644
index 000000000000..0bec73765444
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix
@@ -0,0 +1,17 @@
+{ cabal, happy }:
+
+cabal.mkDerivation (self: {
+  pname = "haskell-src";
+  version = "1.0.1.3";
+  sha256 = "a7872900acd2293775a6bdc6dc8f70438ccd80e62d2d1e2394ddff15b1883e89";
+  buildTools = [ happy ];
+  meta = {
+    description = "Manipulating Haskell source code";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix b/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix
new file mode 100644
index 000000000000..949efadea96a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix
@@ -0,0 +1,18 @@
+{ cabal, happy, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "haskell-src";
+  version = "1.0.1.4";
+  sha256 = "02h33d7970641p9vi62sgcxb5v4yaz8xx9vf2yxyvxs3hglm7f0j";
+  buildDepends = [ syb ];
+  buildTools = [ happy ];
+  meta = {
+    description = "Support for manipulating Haskell source code";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src/default.nix b/pkgs/development/libraries/haskell/haskell-src/default.nix
deleted file mode 100644
index 0cc7e888a200..000000000000
--- a/pkgs/development/libraries/haskell/haskell-src/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, happy}:
-
-cabal.mkDerivation (self : {
-  pname = "haskell-src";
-  version = "1.0.1.3"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
-  sha256 = "a7872900acd2293775a6bdc6dc8f70438ccd80e62d2d1e2394ddff15b1883e89";
-  extraBuildInputs = [happy];
-  meta = {
-    description = "Manipulating Haskell source code";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/haxr-th/default.nix b/pkgs/development/libraries/haskell/haxr-th/default.nix
index 207da9831afc..83917cf88919 100644
--- a/pkgs/development/libraries/haskell/haxr-th/default.nix
+++ b/pkgs/development/libraries/haskell/haxr-th/default.nix
@@ -1,11 +1,18 @@
-{cabal, haxr, HaXml, HTTP}:
+{ cabal, haxr }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haxr-th";
-  version = "3000.0.0";
-  sha256 = "00wqhri2fljjds6rwws0hgk7z27ii1lgvxr8db2li0780q5fa6ic";
+  version = "3000.5";
+  sha256 = "1h1g4r7c5k3rja49ip4m21f2sscn06xjxharnlyazvvs6mzfysif";
+  buildDepends = [ haxr ];
   meta = {
-    description = "Automatic deriving of XML-RPC structs for Haskell records.";
+    homepage = "http://www.haskell.org/haxr/";
+    description = "Automatic deriving of XML-RPC structs for Haskell records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-  propagatedBuildInputs = [HaXml HTTP haxr];
 })
diff --git a/pkgs/development/libraries/haskell/haxr/default.nix b/pkgs/development/libraries/haskell/haxr/default.nix
index 0f25200516bb..94070a34c185 100644
--- a/pkgs/development/libraries/haskell/haxr/default.nix
+++ b/pkgs/development/libraries/haskell/haxr/default.nix
@@ -1,12 +1,22 @@
-{cabal, HaXml, HTTP, dataenc, time}:
+{ cabal, blazeBuilder, dataenc, HaXml, HTTP, mtl, network, time
+, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haxr";
-  version = "3000.1.1.2";
-  sha256 = "c24741a92e27d851a3376158230a52782c1e2b494405ebdde1d256819598c8e8";
+  version = "3000.8.4";
+  sha256 = "0cyf1q1ngz0jqxdrvblcy9iw7l478v0rfr7bgkpq0l4brw0ca1pg";
+  buildDepends = [
+    blazeBuilder dataenc HaXml HTTP mtl network time utf8String
+  ];
   meta = {
-    description = "a Haskell library for writing XML-RPC client and server applications";
+    homepage = "http://www.haskell.org/haskellwiki/HaXR";
+    description = "XML-RPC client and server library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-  propagatedBuildInputs = [HaXml HTTP dataenc time];
 })
-
diff --git a/pkgs/development/libraries/haskell/hfuse/default.nix b/pkgs/development/libraries/haskell/hfuse/default.nix
new file mode 100644
index 000000000000..ef51afca0c71
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hfuse/default.nix
@@ -0,0 +1,23 @@
+{ cabal, fuse }:
+
+cabal.mkDerivation (self: {
+  pname = "HFuse";
+  version = "0.2.4";
+  sha256 = "1v3kfkm2rz7bvwk0j8p9rhnnsffbnkismnsq0fkgnzi5z0bz5sgv";
+  extraLibraries = [ fuse ];
+
+  preConfigure = ''
+    sed -i -e "s@  Extra-Lib-Dirs:         /usr/local/lib@  Extra-Lib-Dirs:         ${fuse}/lib@" HFuse.cabal
+  '';
+
+  meta = {
+    homepage = "https://github.com/realdesktop/hfuse";
+    description = "HFuse is a binding for the Linux FUSE library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index 48de03486092..ecaf46c0b77c 100644
--- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix
+++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
@@ -1,11 +1,20 @@
-{cabal, parsec, pcreLight, xhtml}:
+{ cabal, parsec, regexPcreBuiltin, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "highlighting-kate";
-  version = "0.2.7.1";
-  sha256 = "330c5fdc6b5dae62c12ee2455892319df12723346aa75401aea05ea0b24cf5ed";
-  propagatedBuildInputs = [parsec pcreLight xhtml];
+  version = "0.2.10";
+  sha256 = "0cw89qsslrp4zh47ics7bg79fkqnxpnyz1a9xws0xzd9xmg3zrhh";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec regexPcreBuiltin xhtml ];
   meta = {
+    homepage = "http://github.com/jgm/highlighting-kate";
     description = "Syntax highlighting";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
+})
diff --git a/pkgs/development/libraries/haskell/hint/default.nix b/pkgs/development/libraries/haskell/hint/default.nix
index 17a5518c721d..ac6e81e702e0 100644
--- a/pkgs/development/libraries/haskell/hint/default.nix
+++ b/pkgs/development/libraries/haskell/hint/default.nix
@@ -1,16 +1,23 @@
-{cabal, extensibleExceptions, filepath, ghcMtl,
- ghcPaths, haskellSrc, MonadCatchIOMtl, mtl, utf8String} :
+{ cabal, extensibleExceptions, ghcMtl, ghcPaths, haskellSrc
+, MonadCatchIOMtl, mtl, random, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hint";
-  version = "0.3.2.3";
-  sha256 = "1cc01037cfd32eb1a299ce625487411a97ce70178778d7bbd1d5fcef7d3d40c4";
-  propagatedBuildInputs = [
-    extensibleExceptions filepath ghcMtl ghcPaths haskellSrc
-    MonadCatchIOMtl mtl utf8String
+  version = "0.3.3.2";
+  sha256 = "1qm74hjz8cxypvavcw7s094zg9ic3r1ll2lj3y159ipc79cw2sn1";
+  buildDepends = [
+    extensibleExceptions ghcMtl ghcPaths haskellSrc MonadCatchIOMtl mtl
+    random utf8String
   ];
   meta = {
-    description = "An mtl compatible version of the Ghc-Api monads and monad-transformers";
+    homepage = "http://projects.haskell.org/hint";
+    description = "Runtime Haskell interpreter (GHC API wrapper)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/hjsmin/default.nix b/pkgs/development/libraries/haskell/hjsmin/default.nix
new file mode 100644
index 000000000000..f9b823eeb8b2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hjsmin/default.nix
@@ -0,0 +1,20 @@
+{ cabal, blazeBuilder, languageJavascript, text }:
+
+cabal.mkDerivation (self: {
+  pname = "hjsmin";
+  version = "0.0.14";
+  sha256 = "16053hnxnr9vsqvasbibjwjdg0jpsl5fwzgy54ac1xkh4rhp3a5i";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ blazeBuilder languageJavascript text ];
+  meta = {
+    homepage = "http://github.com/alanz/hjsmin";
+    description = "Haskell implementation of a javascript minifier";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger-chart/default.nix b/pkgs/development/libraries/haskell/hledger-chart/default.nix
new file mode 100644
index 000000000000..f20c2daf5410
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger-chart/default.nix
@@ -0,0 +1,20 @@
+{ cabal, Chart, colour, hledger, hledgerLib, safe }:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-chart";
+  version = "0.14";
+  sha256 = "fe321e4e31c72aef22945080323992a0033ae8fb48213ad7b708f86f9e2f6462";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ Chart colour hledger hledgerLib safe ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "A pie chart generator for the hledger accounting tool";
+    license = "GPL";
+    platforms = self.stdenv.lib.platforms.linux;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger-lib/default.nix b/pkgs/development/libraries/haskell/hledger-lib/default.nix
new file mode 100644
index 000000000000..569bd7c5291f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger-lib/default.nix
@@ -0,0 +1,21 @@
+{ cabal, HUnit, mtl, parsec, regexpr, safe, split, time, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-lib";
+  version = "0.14";
+  sha256 = "9a6d6ab4383800279e135e9bbcd886e95cea45232d093202c5d43e6edd1f927c";
+  buildDepends = [
+    HUnit mtl parsec regexpr safe split time utf8String
+  ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "Reusable types and utilities for the hledger accounting tool and financial apps in general";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger-vty/default.nix b/pkgs/development/libraries/haskell/hledger-vty/default.nix
new file mode 100644
index 000000000000..fa9d5ddab34d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger-vty/default.nix
@@ -0,0 +1,20 @@
+{ cabal, hledger, hledgerLib, safe, vty }:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-vty";
+  version = "0.14";
+  sha256 = "3d9972430053548a65bfe5fb39ba374d1c930c6e0cfc704be5c59de742a4287e";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ hledger hledgerLib safe vty ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "A curses-style interface for the hledger accounting tool";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger/default.nix b/pkgs/development/libraries/haskell/hledger/default.nix
new file mode 100644
index 000000000000..046ca56b3391
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger/default.nix
@@ -0,0 +1,25 @@
+{ cabal, csv, haskeline, hledgerLib, HUnit, mtl, parsec, regexpr
+, safe, split, time, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hledger";
+  version = "0.14";
+  sha256 = "1bfcb1dcc88d8cec924afbf7aefd1ccf88b7be785b522c1595b75b91f8c82d35";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    csv haskeline hledgerLib HUnit mtl parsec regexpr safe split time
+    utf8String
+  ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "A robust command-line accounting tool with a simple human-editable data format, similar to ledger";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hmatrix/default.nix b/pkgs/development/libraries/haskell/hmatrix/default.nix
index 19d1d825c3f3..bd149b5aa921 100644
--- a/pkgs/development/libraries/haskell/hmatrix/default.nix
+++ b/pkgs/development/libraries/haskell/hmatrix/default.nix
@@ -1,19 +1,24 @@
-{cabal, QuickCheck, HUnit, storableComplex, gsl, liblapack, blas, vector}:
+{ cabal, binary, blas, gsl, HUnit, liblapack, QuickCheck, random
+, storableComplex, vector
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hmatrix";
-  version = "0.9.3.0";
-  sha256 = "1p2c37j29nxq1ijs78xn7293cwjzgcl6hx8ri5qz7nijifmpcrkr";
-  propagatedBuildInputs = [QuickCheck HUnit storableComplex blas gsl liblapack vector];
-  configureFlags = "-fvector";
-  /* dirty hack to find blas at link time */
-  postConfigure = ''
-    sed -i -e "/^extra-libraries/ s/: /: blas /" hmatrix.buildinfo 
-    sed -i -e "/^extra-libraries/ s/$/ blas/" hmatrix.buildinfo
-  '';
-  extraLibDirs = "--extra-lib-dir=${blas}/lib --extra-lib-dir=${gsl}/lib --extra-lib-dir=${liblapack}/lib";
+  version = "0.11.1.0";
+  sha256 = "19915xmf6m2092s1rzwirxy0rwjcr6482y5wg4bil0afm0xjnb9n";
+  buildDepends = [
+    binary HUnit QuickCheck random storableComplex vector
+  ];
+  extraLibraries = [ blas gsl liblapack ];
   meta = {
+    homepage = "http://perception.inf.um.es/hmatrix";
     description = "Linear algebra and numerical computation";
-    maintainers = [ self.stdenv.lib.maintainers.guibert ];
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.guibert
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hopenssl/default.nix b/pkgs/development/libraries/haskell/hopenssl/default.nix
new file mode 100644
index 000000000000..fec3f5dccf49
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hopenssl/default.nix
@@ -0,0 +1,19 @@
+{ cabal, mtl, openssl }:
+
+cabal.mkDerivation (self: {
+  pname = "hopenssl";
+  version = "1.6.1";
+  sha256 = "75ba42c5e9b02c09057c5aa25f577bdfe5214533fbd2921ac555897ade85958a";
+  buildDepends = [ mtl ];
+  extraLibraries = [ openssl ];
+  meta = {
+    homepage = "http://gitorious.org/hopenssl";
+    description = "FFI bindings to OpenSSL's EVP digest interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hostname/default.nix b/pkgs/development/libraries/haskell/hostname/default.nix
new file mode 100644
index 000000000000..69653ca2699f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hostname/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "hostname";
+  version = "1.0";
+  sha256 = "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv";
+  meta = {
+    description = "A very simple package providing a cross-platform means of determining the hostname";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hp2any-core/default.nix b/pkgs/development/libraries/haskell/hp2any-core/default.nix
new file mode 100644
index 000000000000..8bc4620ac26f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hp2any-core/default.nix
@@ -0,0 +1,18 @@
+{ cabal, bytestringTrie, network, time }:
+
+cabal.mkDerivation (self: {
+  pname = "hp2any-core";
+  version = "0.10.1";
+  sha256 = "1qblsvlj4x22ml3k5mlr28r5xk9rmi7lpipd369dbvdzm0rflf03";
+  buildDepends = [ bytestringTrie network time ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Hp2any";
+    description = "Heap profiling helper library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hp2any-graph/default.nix b/pkgs/development/libraries/haskell/hp2any-graph/default.nix
new file mode 100644
index 000000000000..4dd915db7d37
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hp2any-graph/default.nix
@@ -0,0 +1,21 @@
+{ cabal, GLUT, glut, hp2anyCore, network, OpenGL, parseargs }:
+
+cabal.mkDerivation (self: {
+  pname = "hp2any-graph";
+  version = "0.5.3";
+  sha256 = "1al20pxfgkgwynrx7vr0i57342s91lcm3cnd9qjx8b6vkqmzykkq";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ GLUT hp2anyCore network OpenGL parseargs ];
+  extraLibraries = [ glut ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Hp2any";
+    description = "Real-time heap graphing utility and profile stream server with a reusable graphing module";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hs-bibutils/default.nix b/pkgs/development/libraries/haskell/hs-bibutils/default.nix
new file mode 100644
index 000000000000..ebba81acf4f6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hs-bibutils/default.nix
@@ -0,0 +1,18 @@
+{ cabal, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "hs-bibutils";
+  version = "4.12";
+  sha256 = "0akxi69as7k5c0955yla9wcl1xvcvgzpzy3p1jj781w1lf89p537";
+  buildDepends = [ syb ];
+  meta = {
+    homepage = "http://code.haskell.org/hs-bibutils";
+    description = "Haskell bindings to bibutils, the bibliography conversion utilities";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hscolour/default.nix b/pkgs/development/libraries/haskell/hscolour/default.nix
index f1593a6e7f6e..9992faf048ca 100644
--- a/pkgs/development/libraries/haskell/hscolour/default.nix
+++ b/pkgs/development/libraries/haskell/hscolour/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hscolour";
-  version = "1.17";
-  sha256 = "b645cdde1b7827dae1519a4423031b4c6bed82a8edb52aa295bea86478ce24b0";
+  version = "1.19";
+  sha256 = "17wzd1b7kd4di7djj8d203rn6r1zvd6rykpxhqv7j06kzgx2r7bz";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://code.haskell.org/~malcolm/hscolour/";
     description = "Colourise Haskell code";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hsdns/default.nix b/pkgs/development/libraries/haskell/hsdns/default.nix
new file mode 100644
index 000000000000..2a83df47f090
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hsdns/default.nix
@@ -0,0 +1,20 @@
+{ cabal, adns, network }:
+
+cabal.mkDerivation (self: {
+  pname = "hsdns";
+  version = "1.5";
+  sha256 = "2788d1ad5ef07ae5f356a460fb92316118f3a4d9c779ec27fb8243602bcf6399";
+  buildDepends = [ network ];
+  extraLibraries = [ adns ];
+  noHaddock = true;
+  meta = {
+    homepage = "http://gitorious.org/hsdns";
+    description = "Asynchronous DNS Resolver";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hsemail/default.nix b/pkgs/development/libraries/haskell/hsemail/default.nix
index bce28aa71faf..3ba0249c4df2 100644
--- a/pkgs/development/libraries/haskell/hsemail/default.nix
+++ b/pkgs/development/libraries/haskell/hsemail/default.nix
@@ -1,14 +1,18 @@
-{cabal, mtl, parsec}:
+{ cabal, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hsemail";
-  version = "1.6";
-  sha256 = "a8ba7e8cfb9213bb2ee61166bc8352e4353560d06f418a0c729aeb1d50b3a1fd";
-  propagatedBuildInputs = [mtl parsec];
+  version = "1.7.1";
+  sha256 = "0059015ab93d5facf6060404984a295090ebfc667ae5b84b283163e126805a9e";
+  buildDepends = [ mtl parsec ];
   meta = {
+    homepage = "http://gitorious.org/hsemail";
     description = "Internet Message Parsers";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/hslogger-template/default.nix b/pkgs/development/libraries/haskell/hslogger-template/default.nix
index c08cdf3736ff..4ee2f0e75df3 100644
--- a/pkgs/development/libraries/haskell/hslogger-template/default.nix
+++ b/pkgs/development/libraries/haskell/hslogger-template/default.nix
@@ -1,12 +1,17 @@
-{cabal, hslogger, mtl}:
+{ cabal, hslogger, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hslogger-template";
-  version = "1.0.0";
-  sha256 = "0lnscbilzr5avi2h831kv2xhahh7pi5g054bw0sy57a1ccm2pvs1";
-  propagatedBuildInputs = [ hslogger mtl ];
+  version = "2.0.0";
+  sha256 = "1x8c132ckxjhnhlrnm92h0hkalkrgcc91cn73kv9kvcwy9b2fqcr";
+  buildDepends = [ hslogger mtl ];
   meta = {
-    description = "Library for generating hslogger functions using Template Haskell";
+    description = "Automatic generation of hslogger functions";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/hspread/default.nix b/pkgs/development/libraries/haskell/hspread/default.nix
index cab021d15241..c1ee264ea84a 100644
--- a/pkgs/development/libraries/haskell/hspread/default.nix
+++ b/pkgs/development/libraries/haskell/hspread/default.nix
@@ -1,11 +1,17 @@
-{cabal, binary, network}:
+{ cabal, binary, extensibleExceptions, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hspread";
   version = "0.3.3";
   sha256 = "6e8a9ecc1a6b1cc767aa188e2f4c04b77b321fd14000cac8f71dd6a7b82afbfc";
-  propagatedBuildInputs = [binary network];
+  buildDepends = [ binary extensibleExceptions network ];
   meta = {
     description = "A client library for the spread toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hsyslog/default.nix b/pkgs/development/libraries/haskell/hsyslog/default.nix
new file mode 100755
index 000000000000..baa190650412
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hsyslog/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "hsyslog";
+  version = "1.4";
+  sha256 = "f3bf4bf47565cb0245afb0e8ffa3f79635b02f0032081845a5999964d828f4db";
+  meta = {
+    homepage = "http://gitorious.org/hsyslog";
+    description = "FFI interface to syslog(3) from POSIX.1-2001.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/html/1.0.1.2.nix b/pkgs/development/libraries/haskell/html/1.0.1.2.nix
new file mode 100644
index 000000000000..f420bad2959c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/html/1.0.1.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "html";
+  version = "1.0.1.2";
+  sha256 = "0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061";
+  meta = {
+    description = "HTML combinator library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/html/default.nix b/pkgs/development/libraries/haskell/html/default.nix
deleted file mode 100644
index 3540d397778f..000000000000
--- a/pkgs/development/libraries/haskell/html/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "html";
-  version = "1.0.1.2"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
-  sha256 = "0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061";
-  meta = {
-    description = "HTML combinator library";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/http-date/default.nix b/pkgs/development/libraries/haskell/http-date/default.nix
new file mode 100644
index 000000000000..e7dbaedb591d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/http-date/default.nix
@@ -0,0 +1,17 @@
+{ cabal, attoparsec }:
+
+cabal.mkDerivation (self: {
+  pname = "http-date";
+  version = "0.0.0";
+  sha256 = "0jia05636xk9k70hqjjiny5298pkb8g7mck7zybfwvigi1fppa46";
+  buildDepends = [ attoparsec ];
+  meta = {
+    description = "HTTP Date parser/formatter";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/http-enumerator/default.nix b/pkgs/development/libraries/haskell/http-enumerator/default.nix
new file mode 100644
index 000000000000..034d24afa983
--- /dev/null
+++ b/pkgs/development/libraries/haskell/http-enumerator/default.nix
@@ -0,0 +1,30 @@
+{ cabal, asn1Data, attoparsec, attoparsecEnumerator
+, base64Bytestring, blazeBuilder, blazeBuilderEnumerator
+, caseInsensitive, certificate, cprngAes, enumerator, failure
+, httpTypes, monadControl, network, tls, tlsExtra, transformers
+, utf8String, zlibEnum
+}:
+
+cabal.mkDerivation (self: {
+  pname = "http-enumerator";
+  version = "0.6.6";
+  sha256 = "0bmrj0jhjvqpx2kgpy5sz6sx17cxbpv07975n1055vgyzv1lcx07";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    asn1Data attoparsec attoparsecEnumerator base64Bytestring
+    blazeBuilder blazeBuilderEnumerator caseInsensitive certificate
+    cprngAes enumerator failure httpTypes monadControl network tls
+    tlsExtra transformers utf8String zlibEnum
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/http-enumerator";
+    description = "HTTP client package with enumerator interface and HTTPS support";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/http-types/default.nix b/pkgs/development/libraries/haskell/http-types/default.nix
new file mode 100644
index 000000000000..4966803af365
--- /dev/null
+++ b/pkgs/development/libraries/haskell/http-types/default.nix
@@ -0,0 +1,20 @@
+{ cabal, blazeBuilder, caseInsensitive, text }:
+
+cabal.mkDerivation (self: {
+  pname = "http-types";
+  version = "0.6.5.1";
+  sha256 = "1gmf5ghfm8hzifinknyk10m7ayxkn48h1l0mchi2vl6h5rg0nnca";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ blazeBuilder caseInsensitive text ];
+  meta = {
+    homepage = "https://github.com/aristidb/http-types";
+    description = "Generic HTTP types for Haskell (for both client and server code)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/httpd-shed/default.nix b/pkgs/development/libraries/haskell/httpd-shed/default.nix
index 3a1269e4d501..e56a95437dbe 100644
--- a/pkgs/development/libraries/haskell/httpd-shed/default.nix
+++ b/pkgs/development/libraries/haskell/httpd-shed/default.nix
@@ -1,12 +1,19 @@
-{cabal, network}:
+{ cabal, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "httpd-shed";
   version = "0.4";
   sha256 = "c03f784742bdc3053c7e867e587ee859a9a3adaa082d36bdb2ea69da1b02069f";
-  propagatedBuildInputs = [network];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ network ];
   meta = {
     description = "A simple web-server with an interact style API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/irc/default.nix b/pkgs/development/libraries/haskell/irc/default.nix
new file mode 100644
index 000000000000..be3818cb7d85
--- /dev/null
+++ b/pkgs/development/libraries/haskell/irc/default.nix
@@ -0,0 +1,17 @@
+{ cabal, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "irc";
+  version = "0.4.4.2";
+  sha256 = "1bbxlmb6jzz0zw18nr3d6lgd83vi9hrjahfcf1dswc946wi31s97";
+  buildDepends = [ parsec ];
+  meta = {
+    description = "A small library for parsing IRC messages";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ivor/default.nix b/pkgs/development/libraries/haskell/ivor/default.nix
index fd690e8b91b2..a7fc6b7e6e11 100644
--- a/pkgs/development/libraries/haskell/ivor/default.nix
+++ b/pkgs/development/libraries/haskell/ivor/default.nix
@@ -1,14 +1,18 @@
-{cabal, mtl, parsec, binary}:
+{ cabal, binary, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ivor";
-  version = "0.1.12";
-  sha256 = "77f17df646afbe5199d4ab0291515013ad1bda471b2690512f752b752a2905f5";
-  propagatedBuildInputs = [mtl parsec binary];
+  version = "0.1.14.1";
+  sha256 = "0r9ykfkxpwsrhsvv691r361pf79a7y511hxy2mvd6ysz1441mych";
+  buildDepends = [ binary mtl parsec ];
   meta = {
+    homepage = "http://www.dcs.st-and.ac.uk/~eb/Ivor/";
     description = "Theorem proving library based on dependent type theory";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/jpeg/default.nix b/pkgs/development/libraries/haskell/jpeg/default.nix
index f9d5b6efa8f1..872f2fb394f7 100644
--- a/pkgs/development/libraries/haskell/jpeg/default.nix
+++ b/pkgs/development/libraries/haskell/jpeg/default.nix
@@ -1,14 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "jpeg";
   version = "0.0.1";
   sha256 = "848e047cfec5781a28f472e9cd27d016362211d88dd6adb4f826c37d29d8bba6";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    description = "JPEG decompression library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "A library for decoding JPEG files written in pure Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/json/0.3.6.nix b/pkgs/development/libraries/haskell/json/0.3.6.nix
deleted file mode 100644
index e84351052c93..000000000000
--- a/pkgs/development/libraries/haskell/json/0.3.6.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl}:
-
-cabal.mkDerivation (self : {
-  pname = "json";
-  version = "0.3.6";
-  sha256 = "05047879ed0c7a9aa168a981e238da94758281af3cb1a1f78a6427322b946fd7";
-  propagatedBuildInputs = [mtl];
-  meta = {
-    description = "Support for serialising Haskell to and from JSON";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/json/default.nix b/pkgs/development/libraries/haskell/json/default.nix
index 5a59e94396b8..a318cf3c5ee1 100644
--- a/pkgs/development/libraries/haskell/json/default.nix
+++ b/pkgs/development/libraries/haskell/json/default.nix
@@ -1,12 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl, parsec, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "json";
-  version = "0.4.3";
-  sha256 = "56192d1e922cc71ad1aaf31baea8ee7e1f1b862f95bc72f60548caee4a484a87";
-  propagatedBuildInputs = [mtl];
+  version = "0.4.4";
+  sha256 = "102qmz55b2mgcca3q1c2pkcr6hz7kmpldad3f6blhmp1cz15f081";
+  buildDepends = [ mtl parsec syb ];
   meta = {
     description = "Support for serialising Haskell to and from JSON";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/jsonEnumerator/default.nix b/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
new file mode 100644
index 000000000000..a40038212850
--- /dev/null
+++ b/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
@@ -0,0 +1,23 @@
+{ cabal, blazeBuilder, blazeBuilderEnumerator, enumerator
+, jsonTypes, text, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "json-enumerator";
+  version = "0.0.1.1";
+  sha256 = "0k94x9vwwaprqbc8gay5l0vg6hjmjpjp852yncncb8kr0r344z7l";
+  buildDepends = [
+    blazeBuilder blazeBuilderEnumerator enumerator jsonTypes text
+    transformers
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/json-enumerator";
+    description = "Pure-Haskell utilities for dealing with JSON with the enumerator package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/jsonTypes/default.nix b/pkgs/development/libraries/haskell/jsonTypes/default.nix
new file mode 100644
index 000000000000..44be8624a41a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/jsonTypes/default.nix
@@ -0,0 +1,17 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "json-types";
+  version = "0.1";
+  sha256 = "088if9qv0didjyb6y1583viihjgc4nwr61qfjqdg9rzc2ya6vqdn";
+  buildDepends = [ text ];
+  meta = {
+    description = "Basic types for representing JSON";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/language-haskell-extract/default.nix b/pkgs/development/libraries/haskell/language-haskell-extract/default.nix
new file mode 100644
index 000000000000..d0ecb017dba7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/language-haskell-extract/default.nix
@@ -0,0 +1,18 @@
+{ cabal, haskellSrcExts, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "language-haskell-extract";
+  version = "0.2.1";
+  sha256 = "0lmg16g3z8cx0vb037bk4j2nr3qvybfcqfsr8l6jk57b2nz3yhbf";
+  buildDepends = [ haskellSrcExts regexPosix ];
+  meta = {
+    homepage = "http://github.com/finnsson/template-helper";
+    description = "Module to automatically extract functions from the local code";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/language-javascript/default.nix b/pkgs/development/libraries/haskell/language-javascript/default.nix
new file mode 100644
index 000000000000..68f8006d2a97
--- /dev/null
+++ b/pkgs/development/libraries/haskell/language-javascript/default.nix
@@ -0,0 +1,21 @@
+{ cabal, alex, happy, mtl, utf8Light }:
+
+cabal.mkDerivation (self: {
+  pname = "language-javascript";
+  version = "0.4.5";
+  sha256 = "0rsggjpxsvaipkibhl90qcj2w2i16g53srbb54v0hajx2msmi0ci";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl utf8Light ];
+  buildTools = [ alex happy ];
+  meta = {
+    homepage = "http://github.com/alanz/language-javascript";
+    description = "Parser for JavaScript";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/largeword/default.nix b/pkgs/development/libraries/haskell/largeword/default.nix
new file mode 100644
index 000000000000..e526c757fd7c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/largeword/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "largeword";
+  version = "1.0.0";
+  sha256 = "1122isizlx807zv26j0sx71iw39nn3sja6mr2pf4sd456m1vmx8r";
+  meta = {
+    homepage = "http://trac.haskell.org/largeword/wiki";
+    description = "Provides Word128, Word192 and Word256 and a way of producing other large words if required";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/leksah/leksah-server.nix b/pkgs/development/libraries/haskell/leksah/leksah-server.nix
index c61b89cbcc56..5f2584cfef5c 100644
--- a/pkgs/development/libraries/haskell/leksah/leksah-server.nix
+++ b/pkgs/development/libraries/haskell/leksah/leksah-server.nix
@@ -1,15 +1,25 @@
-{cabal, haddock, binary, binaryShared, deepseq, hslogger, ltk, mtl,
- network, parsec, processLeksah}:
+{ cabal, binary, binaryShared, deepseq, haddock, hslogger, ltk, mtl
+, network, parsec, processLeksah, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "leksah-server";
-  version = "0.8.0.8";
-  sha256 = "10srf3wzrnyjhw7q8lzzfqammjr9k1fgwqlkkcfkljbmsz9j0nfm";
-  propagatedBuildInputs =
-    [binary binaryShared deepseq hslogger ltk mtl network parsec processLeksah haddock];
+  version = "0.10.0.4";
+  sha256 = "0g523dkiaclk5ym16vzqiabh7mwksjqp0kbx17a899k5gzfwfjp6";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary binaryShared deepseq haddock hslogger ltk mtl network parsec
+    processLeksah time
+  ];
   meta = {
-    description = "The interface to GHC-API for leksah";
+    homepage = "http://leksah.org";
+    description = "Metadata collection for leksah";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.stdenv.lib.platforms.linux;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/leksah/process-leksah.nix b/pkgs/development/libraries/haskell/leksah/process-leksah.nix
index a5223233fd4b..39e62a93d450 100644
--- a/pkgs/development/libraries/haskell/leksah/process-leksah.nix
+++ b/pkgs/development/libraries/haskell/leksah/process-leksah.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "process-leksah";
-  version = "1.0.1.3";
-  sha256 = "1pssbpcslrl39z495gf0v2xjgy2i6qpvxbrf4p0hkvrwycr7pnd8";
+  version = "1.0.1.4";
+  sha256 = "1899ybhnsj22sir2l933lhkk9fpcgjbb4qd6gscnby28qcs5bwbv";
   meta = {
-    description = "This package contains libraries for dealing with system processes";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "Process libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/logfloat/default.nix b/pkgs/development/libraries/haskell/logfloat/default.nix
new file mode 100644
index 000000000000..5f438fb40601
--- /dev/null
+++ b/pkgs/development/libraries/haskell/logfloat/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "logfloat";
+  version = "0.12.1";
+  sha256 = "1k13jjqv4df341hcj9hzrlisfx9wrsmyqvzi6ricx341d9z4ch05";
+  meta = {
+    homepage = "http://code.haskell.org/~wren/";
+    description = "Log-domain floating point numbers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ltk/default.nix b/pkgs/development/libraries/haskell/ltk/default.nix
index dd4aaf29a1a2..103c11361e91 100644
--- a/pkgs/development/libraries/haskell/ltk/default.nix
+++ b/pkgs/development/libraries/haskell/ltk/default.nix
@@ -1,13 +1,18 @@
-{cabal, glib, gtk, haddock, mtl, parsec}:
+{ cabal, glib, gtk, haddock, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ltk";
-  version = "0.8.0.8";
-  sha256 = "172l3nvvyqqgzy43b7mjxs8vpfw0wlyl993g77zjiy8qbhlcd9mg";
-  propagatedBuildInputs = [glib gtk mtl parsec haddock];
+  version = "0.10.0.4";
+  sha256 = "1dp6dl8a0pfj6lx8n8a2y1j3c2z57k9pf81yr45qsp7wg53d6qhf";
+  buildDepends = [ glib gtk haddock mtl parsec ];
   meta = {
-    description = "UI framework used by leksah";
+    homepage = "http://www.leksah.org";
+    description = "Leksah tool kit";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.stdenv.lib.platforms.linux;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/maybench/default.nix b/pkgs/development/libraries/haskell/maybench/default.nix
deleted file mode 100644
index a1549a5a4177..000000000000
--- a/pkgs/development/libraries/haskell/maybench/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, benchpress}:
-
-cabal.mkDerivation (self : {
-  pname = "maybench";
-  version = "0.2.4";
-  sha256 = "1g7hby0ffjry60xhs09gf1n848c9n60mjjq7jf94c116x24w1gdd";
-  meta = {
-    description = "Automated benchmarking tool.";
-  };
-  propagatedBuildInputs = [benchpress];
-})
-
diff --git a/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix b/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix
new file mode 100644
index 000000000000..3153bb6f6086
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix
@@ -0,0 +1,18 @@
+{ cabal, random }:
+
+cabal.mkDerivation (self: {
+  pname = "mersenne-random-pure64";
+  version = "0.2.0.3";
+  sha256 = "0cyjfdl17n5al04vliykx0m7zncqh3201vn9b9fqfqqpmm61grqz";
+  buildDepends = [ random ];
+  meta = {
+    homepage = "http://code.haskell.org/~dons/code/mersenne-random-pure64/";
+    description = "Generate high quality pseudorandom numbers purely using a Mersenne Twister";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mime-mail/default.nix b/pkgs/development/libraries/haskell/mime-mail/default.nix
new file mode 100644
index 000000000000..7651d36aca8f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mime-mail/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, dataenc, random, text }:
+
+cabal.mkDerivation (self: {
+  pname = "mime-mail";
+  version = "0.3.0.3";
+  sha256 = "0aag2mj1jchgwgnlh6hmv9qz78qjxffn1b52nwl6257sk0qv6va6";
+  buildDepends = [ blazeBuilder dataenc random text ];
+  meta = {
+    homepage = "http://github.com/snoyberg/mime-mail";
+    description = "Compose MIME email messages";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mmap/default.nix b/pkgs/development/libraries/haskell/mmap/default.nix
index e925ce858bdf..817cae522953 100644
--- a/pkgs/development/libraries/haskell/mmap/default.nix
+++ b/pkgs/development/libraries/haskell/mmap/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mmap";
   version = "0.5.7";
   sha256 = "0f08x9kmv3a03kz5a6dpxr30nks55cs9sp55qpn2jnw31qx6hg6p";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
     description = "Memory mapped files for POSIX and Windows";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/monad-control/default.nix b/pkgs/development/libraries/haskell/monad-control/default.nix
new file mode 100644
index 000000000000..33ff47b2e050
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monad-control/default.nix
@@ -0,0 +1,18 @@
+{ cabal, baseUnicodeSymbols, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "monad-control";
+  version = "0.2.0.2";
+  sha256 = "18kakshbjr6nspc6m2ckpbi3sx7r10qmmbh8qbzibg19n9mnq2ni";
+  buildDepends = [ baseUnicodeSymbols transformers ];
+  meta = {
+    homepage = "https://github.com/basvandijk/monad-control/";
+    description = "Lift control operations, like exception catching, through monad transformers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monad-loops/default.nix b/pkgs/development/libraries/haskell/monad-loops/default.nix
new file mode 100644
index 000000000000..669df22a9510
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monad-loops/default.nix
@@ -0,0 +1,18 @@
+{ cabal, stm }:
+
+cabal.mkDerivation (self: {
+  pname = "monad-loops";
+  version = "0.3.1.1";
+  sha256 = "086aqd1x1xc6irp24z1lwhzrknw9r2wbs8fnxz6vyi75m3rqvdcv";
+  buildDepends = [ stm ];
+  meta = {
+    homepage = "http://code.haskell.org/~mokus/monad-loops";
+    description = "Monadic loops";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monad-par/default.nix b/pkgs/development/libraries/haskell/monad-par/default.nix
new file mode 100644
index 000000000000..01d6a40a4332
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monad-par/default.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq, HUnit }:
+
+cabal.mkDerivation (self: {
+  pname = "monad-par";
+  version = "0.1.0.1";
+  sha256 = "0sd5w09vi12jwzz8xgh51r27577byr6pqp15dw0z5nhf4w869qxq";
+  buildDepends = [ deepseq HUnit ];
+  meta = {
+    homepage = "https://github.com/simonmar/monad-par";
+    description = "A library for parallel programming based on a monad";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monad-peel/default.nix b/pkgs/development/libraries/haskell/monad-peel/default.nix
new file mode 100644
index 000000000000..670b6aaf79b6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monad-peel/default.nix
@@ -0,0 +1,18 @@
+{ cabal, extensibleExceptions, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "monad-peel";
+  version = "0.1";
+  sha256 = "0q56hdjgbj7ykpjx5z8qlqqkngmgm5wzm9vwcd7v675k2ywcl3ys";
+  buildDepends = [ extensibleExceptions transformers ];
+  meta = {
+    homepage = "http://andersk.mit.edu/haskell/monad-peel/";
+    description = "Lift control operations like exception catching through monad transformers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monadlab/default.nix b/pkgs/development/libraries/haskell/monadlab/default.nix
deleted file mode 100644
index b391e3a749fd..000000000000
--- a/pkgs/development/libraries/haskell/monadlab/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal, parsec}:
-
-cabal.mkDerivation (self : {
-  pname = "MonadLab";
-  version = "0.0.1";
-  sha256 = "06fdfkm79653s08ykcf3gl84cf2jl7h3vj00jv3khji5448fwsaw";
-  meta = {
-    description = "Automatically generate layered monads.";
-  };
-  propagatedBuildInputs = [parsec];
-})
diff --git a/pkgs/development/libraries/haskell/monads-fd/0.0.0.1.nix b/pkgs/development/libraries/haskell/monads-fd/0.0.0.1.nix
new file mode 100644
index 000000000000..d05201c939ca
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monads-fd/0.0.0.1.nix
@@ -0,0 +1,17 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "monads-fd";
+  version = "0.0.0.1";
+  sha256 = "7eaac97b2c91a670171f18ebeb3f73b1a45e16576851279f73ea2e1f5ec63b25";
+  buildDepends = [ transformers ];
+  meta = {
+    description = "Monad classes, using functional dependencies";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monads-fd/0.2.0.0.nix b/pkgs/development/libraries/haskell/monads-fd/0.2.0.0.nix
new file mode 100644
index 000000000000..f12df82d8445
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monads-fd/0.2.0.0.nix
@@ -0,0 +1,17 @@
+{ cabal, mtl, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "monads-fd";
+  version = "0.2.0.0";
+  sha256 = "1iqr5p3va5sxmpvydwqz2src54j5njcyrzn9p5apc60nv7yv6x4c";
+  buildDepends = [ mtl transformers ];
+  meta = {
+    description = "Monad classes, using functional dependencies";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monads-fd/default.nix b/pkgs/development/libraries/haskell/monads-fd/default.nix
deleted file mode 100644
index d84d84975ae0..000000000000
--- a/pkgs/development/libraries/haskell/monads-fd/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, transformers}:
-
-cabal.mkDerivation (self : {
-  pname = "monads-fd";
-  version = "0.0.0.1";
-  sha256 = "7eaac97b2c91a670171f18ebeb3f73b1a45e16576851279f73ea2e1f5ec63b25";
-  propagatedBuildInputs = [transformers];
-  meta = {
-    description = "Monad classes, using functional dependencies";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/mpppc/default.nix b/pkgs/development/libraries/haskell/mpppc/default.nix
index d67a37001653..31dd91a2d2f8 100644
--- a/pkgs/development/libraries/haskell/mpppc/default.nix
+++ b/pkgs/development/libraries/haskell/mpppc/default.nix
@@ -1,12 +1,17 @@
-{cabal, ansiTerminal, split, text}:
+{ cabal, ansiTerminal, split, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mpppc";
-  version = "0.1.0";
-  sha256 = "73796138cc10df77217568d59fb999567436bedefaa8579ed6648c6cfb841c86";
-  propagatedBuildInputs = [ansiTerminal split text];
+  version = "0.1.2";
+  sha256 = "1zms71wx5a6rd60xy1pv6g1kxlx0hzh36pbr5a5lkfflc583z1k5";
+  buildDepends = [ ansiTerminal split text ];
   meta = {
     description = "Multi-dimensional parametric pretty-printer with color";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix b/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix
new file mode 100644
index 000000000000..d609fc75cd78
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "mtl";
+  version = "1.1.0.2";
+  sha256 = "a225aaf2b1e337f40c31e5c42f95eec9a4608322b0e4c135d2b31b8421a58d36";
+  meta = {
+    description = "Monad transformer library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix b/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix
new file mode 100644
index 000000000000..05e84b90dd07
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "mtl";
+  version = "1.1.1.1";
+  sha256 = "157gbrgrg0l9r72nq45dkach53yncysif4qglsaql28g37djc4x6";
+  meta = {
+    description = "Monad transformer library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix b/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix
new file mode 100644
index 000000000000..dc2ddedc121e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix
@@ -0,0 +1,17 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "mtl";
+  version = "2.0.1.0";
+  sha256 = "1w6jpzyl08mringnd6gxwcl3y9q506r240vm1sv0aacml1hy8szk";
+  buildDepends = [ transformers ];
+  meta = {
+    description = "Monad classes, using functional dependencies";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mtl/default.nix b/pkgs/development/libraries/haskell/mtl/default.nix
deleted file mode 100644
index f06f92976b3b..000000000000
--- a/pkgs/development/libraries/haskell/mtl/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "mtl";
-  version = "1.1.0.2"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
-  sha256 = "a225aaf2b1e337f40c31e5c42f95eec9a4608322b0e4c135d2b31b8421a58d36";
-  meta = {
-    description = "Monad transformer library";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/mtlparse/default.nix b/pkgs/development/libraries/haskell/mtlparse/default.nix
new file mode 100644
index 000000000000..349fea712eba
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mtlparse/default.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "mtlparse";
+  version = "0.1.2";
+  sha256 = "cd85d985e4eff842b1c053a2ff507094a20995c5757acc06ea34ff07d9edd142";
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://homepage3.nifty.com/salamander/second/projects/mtlparse/";
+    description = "parse library using mtl package";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/multiplate/default.nix b/pkgs/development/libraries/haskell/multiplate/default.nix
index 3354a5873d0b..13059f0183e3 100644
--- a/pkgs/development/libraries/haskell/multiplate/default.nix
+++ b/pkgs/development/libraries/haskell/multiplate/default.nix
@@ -1,14 +1,18 @@
-{cabal, transformers}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "multiplate";
-  version = "0.0.1";
-  sha256 = "06bdj0r83arxxl6vqif9dmna140qcgvjizcyhvyqymsid605hrp4";
-  propagatedBuildInputs = [transformers];
+  version = "0.0.1.1";
+  sha256 = "00rxgkvgx1rfvk15gjyyg00vqyg4j24d8d19q6rj07j2mgfvdxw6";
+  buildDepends = [ transformers ];
   meta = {
-    description = "Lightweight generic library for mutually recursive datatypes";
-    license = "MIT";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://haskell.org/haskellwiki/Multiplate";
+    description = "Lightweight generic library for mutually recursive data types";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/multirec/0.5.1.nix b/pkgs/development/libraries/haskell/multirec/0.5.1.nix
new file mode 100644
index 000000000000..3e994f878cc6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/multirec/0.5.1.nix
@@ -0,0 +1,18 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "multirec";
+  version = "0.5.1";
+  sha256 = "0y62gb2ml0799a3f1ny5ydjc4rjwj1dgs48f5fj6hf2fpl4hk02l";
+  noHaddock = true;
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
+    description = "Generic programming for families of recursive datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/multirec/0.6.nix b/pkgs/development/libraries/haskell/multirec/0.6.nix
new file mode 100644
index 000000000000..6fb6acd58ed3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/multirec/0.6.nix
@@ -0,0 +1,18 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "multirec";
+  version = "0.6";
+  sha256 = "1k0icyz9i4hc5vfpwrv42l3q4lrnsb1bswhyyv63d9azffn5flys";
+  noHaddock = true;
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
+    description = "Generic programming for families of recursive datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/multirec/default.nix b/pkgs/development/libraries/haskell/multirec/default.nix
deleted file mode 100644
index b9b62c1763b0..000000000000
--- a/pkgs/development/libraries/haskell/multirec/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "multirec";
-  version = "0.4";
-  sha256 = "ad7a6ae90e1880b3fd79686ce8012e531b738f8f1d10ba836550fc91cfe3695e";
-  meta = {
-    description = "Generic programming with systems of recursive datatypes";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/multiset/default.nix b/pkgs/development/libraries/haskell/multiset/default.nix
index b17b2244a260..eb5df93d5bca 100644
--- a/pkgs/development/libraries/haskell/multiset/default.nix
+++ b/pkgs/development/libraries/haskell/multiset/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "multiset";
-  version = "0.2";
-  sha256 = "35d76c026bab0dbdf761c8590297d718507bb9ef93c30bce4f524efee23f5323";
+  version = "0.2.1";
+  sha256 = "0snlm6s9ikf5gngdwb7rm7v6017f5bffajv6777y56pjmd7bk9sy";
   meta = {
-    description = "A variation of Data.Set. Multisets, sometimes also called bags, can contain multiple copies of the same key";
+    description = "The Data.MultiSet container type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/murmur-hash/default.nix b/pkgs/development/libraries/haskell/murmur-hash/default.nix
new file mode 100644
index 000000000000..468c18f9051a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/murmur-hash/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "murmur-hash";
+  version = "0.1.0.4";
+  sha256 = "08nvdv3r5scqpdcivwp0d77dl4vpkgq58rzxv1xpb8r1krqy588d";
+  meta = {
+    homepage = "http://github.com/nominolo/murmur-hash";
+    description = "MurmurHash2 implementation for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mwc-random/default.nix b/pkgs/development/libraries/haskell/mwc-random/default.nix
index 1ac66ca67f23..ab762c2db63b 100644
--- a/pkgs/development/libraries/haskell/mwc-random/default.nix
+++ b/pkgs/development/libraries/haskell/mwc-random/default.nix
@@ -1,14 +1,18 @@
-{cabal, primitive, vector}:
+{ cabal, primitive, time, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mwc-random";
-  version = "0.8.0.2";
-  sha256 = "1lry31abyz6wh3x8ipclgkfc889azs7mw2ppp9kpdlx41wbzhdj6";
-  propagatedBuildInputs = [primitive vector];
+  version = "0.10.0.1";
+  sha256 = "0mmkl90rf57f2rxg3y2nibd37l9mwr2j4c71bwyvxqzfk7cylw9b";
+  buildDepends = [ primitive time vector ];
   meta = {
+    homepage = "https://github.com/bos/mwc-random";
     description = "Fast, high quality pseudo random number generation";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/neither/default.nix b/pkgs/development/libraries/haskell/neither/default.nix
index 1dfd1ca533d3..6bea3c108449 100644
--- a/pkgs/development/libraries/haskell/neither/default.nix
+++ b/pkgs/development/libraries/haskell/neither/default.nix
@@ -1,15 +1,18 @@
-{cabal, failure, mtl, transformers, MonadCatchIOMtl, MonadCatchIOTransformers}:
+{ cabal, failure, monadPeel, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "neither";
-  version = "0.0.2";
-  sha256 = "1e1b934d9d1918bd762bb8d6cde35c56883543c2d0c165a661f096c2ce5ab139";
-  propagatedBuildInputs = [
-    failure mtl transformers MonadCatchIOMtl MonadCatchIOTransformers
-  ];
+  version = "0.2.0";
+  sha256 = "0a2lyx3dvgzj4g6p69x1fma4rmwxrykji3hc4diqgc4hx02p16jh";
+  buildDepends = [ failure monadPeel transformers ];
   meta = {
-    description = "A simple type class for success/failure computations";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://github.com/snoyberg/neither";
+    description = "Provide versions of Either with good monad and applicative instances";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/network-bytestring/default.nix b/pkgs/development/libraries/haskell/network-bytestring/default.nix
deleted file mode 100644
index baf7c9097e9e..000000000000
--- a/pkgs/development/libraries/haskell/network-bytestring/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, bytestring, network}:
-
-cabal.mkDerivation (self : {
-  pname = "network-bytestring";
-  version = "0.1.2.1";
-  name = self.fname;
-  sha256 = "0l5gxwc5pg49qyxb1jy3kn9j66a6pg9frw4c7dn1mrpqicm155am";
-  extraBuildInputs = [bytestring network];
-  meta = {
-    description = "Fast, memory-efficient, low-level socket functions that use Data.ByteStrings instead of Strings";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/network/2.2.1.4.nix b/pkgs/development/libraries/haskell/network/2.2.1.4.nix
new file mode 100644
index 000000000000..7d99df9ee1c8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/network/2.2.1.4.nix
@@ -0,0 +1,17 @@
+{ cabal, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "network";
+  version = "2.2.1.4";
+  sha256 = "16a842bee5db116f754b459ef261426b6705a6d79383c6d545c9df5f6329cd25";
+  buildDepends = [ parsec ];
+  meta = {
+    description = "Networking-related facilities";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/network/2.2.1.7.nix b/pkgs/development/libraries/haskell/network/2.2.1.7.nix
index 6c740b0ef05c..ba33bc36643b 100644
--- a/pkgs/development/libraries/haskell/network/2.2.1.7.nix
+++ b/pkgs/development/libraries/haskell/network/2.2.1.7.nix
@@ -1,12 +1,17 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.2.1.7"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "2.2.1.7";
   sha256 = "0e65b28a60764245c1ab6661a3566f286feb36e0e6f0296d6cd2b84adcd45d58";
-  propagatedBuildInputs = [parsec];
+  buildDepends = [ parsec ];
   meta = {
     description = "Networking-related facilities";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/network/2.3.0.2.nix b/pkgs/development/libraries/haskell/network/2.3.0.2.nix
new file mode 100644
index 000000000000..9d2642a487d2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/network/2.3.0.2.nix
@@ -0,0 +1,18 @@
+{ cabal, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "network";
+  version = "2.3.0.2";
+  sha256 = "1s4hm0ilsd67ircrl0h5b72kwrw1imb3cj5z52h99bv7qjdbag03";
+  buildDepends = [ parsec ];
+  meta = {
+    homepage = "http://github.com/haskell/network";
+    description = "Low-level networking interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/network/2.3.0.5.nix b/pkgs/development/libraries/haskell/network/2.3.0.5.nix
new file mode 100644
index 000000000000..bf9330eb256a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/network/2.3.0.5.nix
@@ -0,0 +1,18 @@
+{ cabal, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "network";
+  version = "2.3.0.5";
+  sha256 = "0y1sbgsffzr0skm6xl8907iclgw9vmf395zvpwgakp69i3snh1z0";
+  buildDepends = [ parsec ];
+  meta = {
+    homepage = "http://github.com/haskell/network";
+    description = "Low-level networking interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/network/default.nix b/pkgs/development/libraries/haskell/network/default.nix
deleted file mode 100644
index c0ef812c918c..000000000000
--- a/pkgs/development/libraries/haskell/network/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, parsec}:
-
-cabal.mkDerivation (self : {
-  pname = "network";
-  version = "2.2.1.4"; # Haskell Platform 2009.2.0.2
-  sha256 = "16a842bee5db116f754b459ef261426b6705a6d79383c6d545c9df5f6329cd25";
-  propagatedBuildInputs = [parsec];
-  meta = {
-    description = "Networking-related facilities";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/nixos-types/default.nix b/pkgs/development/libraries/haskell/nixos-types/default.nix
new file mode 100644
index 000000000000..edac925eb072
--- /dev/null
+++ b/pkgs/development/libraries/haskell/nixos-types/default.nix
@@ -0,0 +1,18 @@
+{ cabal, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "nixos-types";
+  version = "1.0";
+  sha256 = "0zg2vz790cacl1hlhzbfpb8zw5k19v4p43ynz1wdgg6sfzvwk43s";
+  buildDepends = [ regexPosix ];
+  meta = {
+    homepage = "http://github.com/haskell4nix/nixos-types";
+    description = "Data types representing the Nix language";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/non-negative/default.nix b/pkgs/development/libraries/haskell/non-negative/default.nix
index 32d6a629389a..934bb76dcd42 100644
--- a/pkgs/development/libraries/haskell/non-negative/default.nix
+++ b/pkgs/development/libraries/haskell/non-negative/default.nix
@@ -1,12 +1,20 @@
-{cabal, QuickCheck}:
+{ cabal, QuickCheck, utilityHt }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "non-negative";
-  version = "0.0.4";
-  sha256 = "0b82b7be086c8d4e493d606098d82c2e5d943fe76d18a5eb6836c449ba19fc6f";
-  propagatedBuildInputs = [QuickCheck];
+  version = "0.1";
+  sha256 = "0aebb6f5518191a02b11230798444997a03b84d63d2aaa6c38cac6718f6c351c";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ QuickCheck utilityHt ];
   meta = {
+    homepage = "http://code.haskell.org/~thielema/non-negative/";
     description = "Non-negative numbers";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/numeric-prelude/default.nix b/pkgs/development/libraries/haskell/numeric-prelude/default.nix
index 409a5b3e2689..c420d2677705 100644
--- a/pkgs/development/libraries/haskell/numeric-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/numeric-prelude/default.nix
@@ -1,12 +1,24 @@
-{cabal, HUnit, QuickCheck, parsec, nonNegative, utilityHt}:
+{ cabal, nonNegative, parsec, QuickCheck, random, storableRecord
+, utilityHt
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "numeric-prelude";
-  version = "0.1";
-  sha256 = "01de33ea483808704f6d2c635763fcbff3abe12db8035c6640124eb8486b6efb";
-  propagatedBuildInputs = [HUnit QuickCheck parsec nonNegative utilityHt];
+  version = "0.2.2";
+  sha256 = "bc6adb8c2f04e0e1f62e183e052974700143dc93b1a3cbafe3562aa1f7a649fd";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    nonNegative parsec QuickCheck random storableRecord utilityHt
+  ];
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Numeric_Prelude";
     description = "An experimental alternative hierarchy of numeric type classes";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/numtype/default.nix b/pkgs/development/libraries/haskell/numtype/default.nix
new file mode 100644
index 000000000000..b55e0c50b4b3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/numtype/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "numtype";
+  version = "1.0";
+  sha256 = "2606e81d7bcef0ba76b1e6ffc8d513c36fef5fefaab3bdd02da18761ec504e1f";
+  meta = {
+    homepage = "http://dimensional.googlecode.com/";
+    description = "Type-level (low cardinality) integers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pandoc-types/default.nix b/pkgs/development/libraries/haskell/pandoc-types/default.nix
new file mode 100644
index 000000000000..6d5720658ceb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pandoc-types/default.nix
@@ -0,0 +1,18 @@
+{ cabal, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "pandoc-types";
+  version = "1.8.2";
+  sha256 = "04whkqld2pnfz25i9rcq7d4pi9zkn6c1rpz95vdlg9r5xkhhnn3a";
+  buildDepends = [ syb ];
+  meta = {
+    homepage = "http://johnmacfarlane.net/pandoc";
+    description = "Types for representing a structured document";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index 7bc1d0fc7fd8..4655593eb7ed 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -1,14 +1,27 @@
-{cabal, mtl, network, parsec, utf8String, xhtml, zipArchive, HTTP, xml,
- texmath, random ? null}:
+{ cabal, base64Bytestring, citeprocHs, dlist, extensibleExceptions
+, highlightingKate, HTTP, json, mtl, network, pandocTypes, parsec
+, random, syb, tagsoup, texmath, utf8String, xhtml, xml, zipArchive
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pandoc";
-  version = "1.6";
-  sha256 = "9b825233293edf1ea414b0e7ea821d6a914711dc2c60546566ab5a97512b079b";
-  propagatedBuildInputs = [
-    mtl network parsec utf8String xhtml zipArchive HTTP xml texmath
-  ] ++ (if random != null then [random] else []);
+  version = "1.8.2.1";
+  sha256 = "0cwly0j2rj46h654iwl04l6jkhk6rrhynqvrdnq47067n9vm60pi";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    base64Bytestring citeprocHs dlist extensibleExceptions
+    highlightingKate HTTP json mtl network pandocTypes parsec random
+    syb tagsoup texmath utf8String xhtml xml zipArchive
+  ];
   meta = {
+    homepage = "http://johnmacfarlane.net/pandoc";
     description = "Conversion between markup formats";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/pango/default.nix b/pkgs/development/libraries/haskell/pango/default.nix
index 2a8ba497f3f9..aff6bdb73157 100644
--- a/pkgs/development/libraries/haskell/pango/default.nix
+++ b/pkgs/development/libraries/haskell/pango/default.nix
@@ -1,14 +1,23 @@
-{cabal, cairo, glib, mtl, gtk2hsBuildtools, pkgconfig, pango, glibc}:
+{ cabal, cairo, glib, glibc, gtk2hsBuildtools, mtl, pango
+, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pango";
-  version = "0.11.2";
-  sha256 = "fb7f5dc303d3d49a330aaa3acf29560f78746edb9c67f6191756baa1b08fb504";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools pango glibc];
-  propagatedBuildInputs = [cairo glib mtl];
+  version = "0.12.0";
+  sha256 = "1vp0hl4kpgcc3xphml1hmy04hqcn12y0ks03nn32g6g33ni9mwrb";
+  buildDepends = [ cairo glib mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ cairo pango ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the Pango text rendering engine";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix b/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix
new file mode 100644
index 000000000000..2977a60964cf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "parallel";
+  version = "1.1.0.1";
+  sha256 = "0885086660268f3626effacb29a02b5c81f3e5a8dfa99dabe0981ddbc407999f";
+  meta = {
+    description = "parallel programming library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix b/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix
index 7cec49c9e531..185e86b02e89 100644
--- a/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix
@@ -1,12 +1,17 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parallel";
-  version = "2.2.0.1"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "2.2.0.1";
   sha256 = "255310023138ecf618c8b450203fa2fc65feb68cd08ee4d369ceae72054168fd";
-  propagatedBuildInputs = [deepseq];
+  buildDepends = [ deepseq ];
   meta = {
-    description = "parallel programming library";
+    description = "Parallel programming library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix b/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix
new file mode 100644
index 000000000000..37d537185cb6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix
@@ -0,0 +1,17 @@
+{ cabal, deepseq }:
+
+cabal.mkDerivation (self: {
+  pname = "parallel";
+  version = "3.1.0.1";
+  sha256 = "0j03i5467iyz98fl4fnzlwrr93j2as733kbrxnlcgyh455kb89ns";
+  buildDepends = [ deepseq ];
+  meta = {
+    description = "Parallel programming library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/parallel/default.nix b/pkgs/development/libraries/haskell/parallel/default.nix
deleted file mode 100644
index 065344d75fa3..000000000000
--- a/pkgs/development/libraries/haskell/parallel/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "parallel";
-  version = "1.1.0.1"; # Haskell Platform 2009.0.0
-  sha256 = "0885086660268f3626effacb29a02b5c81f3e5a8dfa99dabe0981ddbc407999f";
-  meta = {
-    description = "parallel programming library";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/parseargs/default.nix b/pkgs/development/libraries/haskell/parseargs/default.nix
index f105aaf5cfb2..4f50be5f7005 100644
--- a/pkgs/development/libraries/haskell/parseargs/default.nix
+++ b/pkgs/development/libraries/haskell/parseargs/default.nix
@@ -1,10 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parseargs";
-  version = "0.1.2";
-  sha256 = "93e34497bc3921f245474a8fc1807303211cf5ab40f0b655e02eb0242ef75694";
+  version = "0.1.3.2";
+  sha256 = "1ncdbjzfkhb1f3aznsci26kss9nrv3iilc65q5xdl9nly8p837mv";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://wiki.cs.pdx.edu/bartforge/parseargs";
     description = "Command-line argument parsing library for Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix b/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix
new file mode 100644
index 000000000000..155e4f09007c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "parsec";
+  version = "2.1.0.1";
+  sha256 = "2d85e5b5c8b2b1f341037ce67e1db7fa47b31c083136796cfef9e5b945c656df";
+  meta = {
+    homepage = "http://www.cs.uu.nl/~daan/parsec.html";
+    description = "Monadic parser combinators";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/parsec/3.1.1.nix b/pkgs/development/libraries/haskell/parsec/3.1.1.nix
new file mode 100644
index 000000000000..e740ca91dba2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/parsec/3.1.1.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "parsec";
+  version = "3.1.1";
+  sha256 = "0x34gwn9k68h69c3hw7yaah6zpdwq8hvqss27f3n4n4cp7dh81fk";
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://www.cs.uu.nl/~daan/parsec.html";
+    description = "Monadic parser combinators";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/parsec/3.nix b/pkgs/development/libraries/haskell/parsec/3.nix
deleted file mode 100644
index 048dc87b547a..000000000000
--- a/pkgs/development/libraries/haskell/parsec/3.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, mtl}:
-
-cabal.mkDerivation (self : {
-  pname = "parsec";
-  version = "3.1.0";
-  sha256 = "962d39944bae18b0fea60961c77513f455f95c0f67ae4b10ab15484a27b6fb98";
-  propagatedBuildInputs = [mtl];
-  meta = {
-    license = "BSD";
-    description = "Monadic parser combinators";
-    maintainer = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/parsec/default.nix b/pkgs/development/libraries/haskell/parsec/default.nix
deleted file mode 100644
index 8b8827bfa06c..000000000000
--- a/pkgs/development/libraries/haskell/parsec/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "parsec";
-  version = "2.1.0.1"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
-  sha256 = "2d85e5b5c8b2b1f341037ce67e1db7fa47b31c083136796cfef9e5b945c656df";
-  meta = {
-    description = "Monadic parser combinators";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/parsimony/default.nix b/pkgs/development/libraries/haskell/parsimony/default.nix
index 26f4d09ae90c..70709c978b97 100644
--- a/pkgs/development/libraries/haskell/parsimony/default.nix
+++ b/pkgs/development/libraries/haskell/parsimony/default.nix
@@ -1,12 +1,17 @@
-{cabal, utf8String}:
+{ cabal, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parsimony";
-  version = "1";
-  sha256 = "8196029dc346470301f4535f678724412060a0aafd81b017211b57635a25a378";
-  propagatedBuildInputs = [utf8String];
+  version = "1.1";
+  sha256 = "0476zmsjyjf58lh85806baqblq8hjxcrrnqc6ddxxq17lmvsd5ic";
+  buildDepends = [ utf8String ];
   meta = {
     description = "Monadic parser combinators derived from Parsec";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/path-pieces/default.nix b/pkgs/development/libraries/haskell/path-pieces/default.nix
new file mode 100755
index 000000000000..6230ac2e8a36
--- /dev/null
+++ b/pkgs/development/libraries/haskell/path-pieces/default.nix
@@ -0,0 +1,18 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "path-pieces";
+  version = "0.0.0";
+  sha256 = "09sk4wlzy37gaii7spisjy4a3pizis9si4kv389bki20gfwpaivf";
+  buildDepends = [ text ];
+  meta = {
+    homepage = "http://github.com/snoyberg/path-pieces";
+    description = "Components of paths";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pathtype/default.nix b/pkgs/development/libraries/haskell/pathtype/default.nix
new file mode 100644
index 000000000000..8c776e68b1a6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pathtype/default.nix
@@ -0,0 +1,18 @@
+{ cabal, QuickCheck }:
+
+cabal.mkDerivation (self: {
+  pname = "pathtype";
+  version = "0.5.2";
+  sha256 = "0rbmq6kzz2l07q9a5k888scpn62hnw2hmzz4ysprhfgdnn5b2cvi";
+  buildDepends = [ QuickCheck ];
+  meta = {
+    homepage = "http://code.haskell.org/pathtype";
+    description = "Type-safe replacement for System.FilePath etc";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pcre-light/default.nix b/pkgs/development/libraries/haskell/pcre-light/default.nix
index 1542bb7968ac..3336b8f1c8a4 100644
--- a/pkgs/development/libraries/haskell/pcre-light/default.nix
+++ b/pkgs/development/libraries/haskell/pcre-light/default.nix
@@ -1,12 +1,18 @@
-{cabal, pcre}:
+{ cabal, pcre }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pcre-light";
-  version = "0.3";
-  sha256 = "a8cfec1c265530388efbb187426368e280331d9829fa93d8f49f16db3c3e7794";
-  propagatedBuildInputs = [pcre];
+  version = "0.4";
+  sha256 = "1xiikiap1bvx9czw64664vifdq64scx0yhfclh5m8mkvn3x6yzxk";
+  extraLibraries = [ pcre ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/pcre-light";
     description = "A small, efficient and portable regex library for Perl 5 compatible regular expressions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
new file mode 100644
index 000000000000..c3df4263d43a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -0,0 +1,18 @@
+{ cabal, monadControl, persistent, text, webRoutesQuasi }:
+
+cabal.mkDerivation (self: {
+  pname = "persistent-template";
+  version = "0.5.1";
+  sha256 = "163j36pm6fl64m4h8kgj9h19snh026ia1166p3c6rjw86qi9fk0r";
+  buildDepends = [ monadControl persistent text webRoutesQuasi ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Type-safe, non-relational, multi-backend persistence";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index f8b733664d5e..20c1458e3336 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,17 +1,26 @@
-{cabal, blazeHtml, MonadCatchIOTransformers, parsec, text, transformers,
- utf8String, webRoutesQuasi}:
+{ cabal, blazeHtml, enumerator, monadControl, parsec, pool, sqlite
+, text, time, transformers
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "0.1.0";
-  sha256 = "32379f5ef937da1bf910cfaf9b6cce6326b8fba7554ef81159e6684c7ce2ca45";
-  propagatedBuildInputs = [
-    blazeHtml MonadCatchIOTransformers parsec text transformers
-    utf8String webRoutesQuasi
+  version = "0.5.1";
+  sha256 = "1m0558vi99z15q0w62a9rkz25n8djswggbad9m0il359jb3mrzsd";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    blazeHtml enumerator monadControl parsec pool text time
+    transformers
   ];
+  extraLibraries = [ sqlite ];
   meta = {
+    homepage = "http://docs.yesodweb.com/book/persistent";
     description = "Type-safe, non-relational, multi-backend persistence";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/polyparse/default.nix b/pkgs/development/libraries/haskell/polyparse/default.nix
index 3c9055f16809..b27dc9cc6952 100644
--- a/pkgs/development/libraries/haskell/polyparse/default.nix
+++ b/pkgs/development/libraries/haskell/polyparse/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "polyparse";
-  version = "1.4";
-  sha256 = "6e599fb0771e8ce2e1d3a3bbe5eddc2d77b2b4bbb54602f01005dc55dc039d44";
+  version = "1.7";
+  sha256 = "de8ed0ce54f1f81bb0783dd97b7b22eca28df4a238684a26b37c5af2d17a364b";
+  buildDepends = [ text ];
   meta = {
+    homepage = "http://code.haskell.org/~malcolm/polyparse/";
     description = "A variety of alternative parser combinator libraries";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/pool/default.nix b/pkgs/development/libraries/haskell/pool/default.nix
new file mode 100644
index 000000000000..eae26f81b3ab
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pool/default.nix
@@ -0,0 +1,18 @@
+{ cabal, monadControl, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "pool";
+  version = "0.1.0.4";
+  sha256 = "11jsls81njkwhn48xdyrqydhr4yz82g7a6pji80ckplkdyycgx6p";
+  buildDepends = [ monadControl transformers ];
+  meta = {
+    homepage = "http://github.com/snoyberg/pool";
+    description = "Thread-safe resource pools";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ppm/default.nix b/pkgs/development/libraries/haskell/ppm/default.nix
index e3cfd77bbdb4..df204fa2482f 100644
--- a/pkgs/development/libraries/haskell/ppm/default.nix
+++ b/pkgs/development/libraries/haskell/ppm/default.nix
@@ -1,13 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ppm";
   version = "2009.5.13";
   sha256 = "9e390ca9a9e6e740fa71d2b72fa2c9c3d521118b0ebb35f10fabbbe543ecfb5b";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    license = "BSD";
+    homepage = "http://github.com/nfjinjing/ppm/tree/master";
     description = "a tiny PPM image generator";
-    maintainer = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/pretty-show/default.nix b/pkgs/development/libraries/haskell/pretty-show/default.nix
new file mode 100644
index 000000000000..deb9e731ebda
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pretty-show/default.nix
@@ -0,0 +1,20 @@
+{ cabal, haskellLexer }:
+
+cabal.mkDerivation (self: {
+  pname = "pretty-show";
+  version = "1.1.1";
+  sha256 = "0w6r68l1452vh9aqnlh4066y62h8ylh45gbsl5l558wjgchlna5k";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellLexer ];
+  meta = {
+    homepage = "http://wiki.github.com/yav/pretty-show";
+    description = "Tools for working with derived Show instances";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/primitive/default.nix b/pkgs/development/libraries/haskell/primitive/default.nix
index f4d29695118b..6e7b485eece0 100644
--- a/pkgs/development/libraries/haskell/primitive/default.nix
+++ b/pkgs/development/libraries/haskell/primitive/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "primitive";
   version = "0.3.1";
   sha256 = "1903hx88ax4dgyyx00a0k86jy4mkqrprpn7arfy19dqqyfpb2ikj";
   meta = {
+    homepage = "http://code.haskell.org/primitive";
     description = "Wrappers for primitive operations";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/pureMD5/default.nix b/pkgs/development/libraries/haskell/pureMD5/default.nix
index 1e56df6d4bd7..2dfc00917996 100644
--- a/pkgs/development/libraries/haskell/pureMD5/default.nix
+++ b/pkgs/development/libraries/haskell/pureMD5/default.nix
@@ -1,14 +1,19 @@
-{cabal, binary}:
+{ cabal, binary, cereal, cryptoApi, tagged }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pureMD5";
-  version = "1.0.0.3";
-  sha256 = "3698e5bc8a0e20bed91b52f976235e52f2c1dd876aa40e94d6c7be293d67d482";
-  propagatedBuildInputs = [binary];
+  version = "2.1.0.3";
+  sha256 = "0whlsb6zq4zcp3wq0bd6pgcsl0namr8b2s6i4l5aykq8v7fx40ii";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary cereal cryptoApi tagged ];
   meta = {
-    description = "An unrolled implementation of MD5 purely in Haskell";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "A Haskell-only implementation of the MD5 digest (hash) algorithm";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/pwstore-fast/default.nix b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
new file mode 100644
index 000000000000..a78471d8ebb3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
@@ -0,0 +1,18 @@
+{ cabal, base64Bytestring, cryptohash, random }:
+
+cabal.mkDerivation (self: {
+  pname = "pwstore-fast";
+  version = "2.2";
+  sha256 = "03b9vr5j6cadvi6w3lr8b9km4jq6jh0vzcmkxzq9qvvly89lx96a";
+  buildDepends = [ base64Bytestring cryptohash random ];
+  meta = {
+    homepage = "https://github.com/PeterScott/pwstore";
+    description = "Secure password storage";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random-fu/default.nix b/pkgs/development/libraries/haskell/random-fu/default.nix
new file mode 100644
index 000000000000..feb829121956
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random-fu/default.nix
@@ -0,0 +1,23 @@
+{ cabal, erf, gamma, monadLoops, mtl, randomShuffle, randomSource
+, rvar, syb, transformers, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "random-fu";
+  version = "0.2";
+  sha256 = "1w5bqhhh07xr377whgfbzn57p77j8ng5nmy2rx8qnqyw8smlkxzm";
+  buildDepends = [
+    erf gamma monadLoops mtl randomShuffle randomSource rvar syb
+    transformers vector
+  ];
+  meta = {
+    homepage = "https://github.com/mokus0/random-fu";
+    description = "Random number generation";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random-shuffle/default.nix b/pkgs/development/libraries/haskell/random-shuffle/default.nix
new file mode 100644
index 000000000000..aade5d27965a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random-shuffle/default.nix
@@ -0,0 +1,17 @@
+{ cabal, random }:
+
+cabal.mkDerivation (self: {
+  pname = "random-shuffle";
+  version = "0.0.2";
+  sha256 = "1csq0ffsqbbv6ymf707nzfb7c9bmykwk9bcgj21mxmh6khlqn9jp";
+  buildDepends = [ random ];
+  meta = {
+    description = "Random shuffle implementation";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random-source/default.nix b/pkgs/development/libraries/haskell/random-source/default.nix
new file mode 100755
index 000000000000..7bf8a2259561
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random-source/default.nix
@@ -0,0 +1,23 @@
+{ cabal, flexibleDefaults, mersenneRandomPure64, mtl, mwcRandom
+, random, stateref, syb
+}:
+
+cabal.mkDerivation (self: {
+  pname = "random-source";
+  version = "0.3";
+  sha256 = "08nj7mq8gjj9rv1zmkr2m30z295k5b352103wb1ag1ryw5wyzg1n";
+  buildDepends = [
+    flexibleDefaults mersenneRandomPure64 mtl mwcRandom random stateref
+    syb
+  ];
+  meta = {
+    homepage = "https://github.com/mokus0/random-fu";
+    description = "Generic basis for random number generators";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random/1.0.0.2.nix b/pkgs/development/libraries/haskell/random/1.0.0.2.nix
new file mode 100644
index 000000000000..e9101a114070
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random/1.0.0.2.nix
@@ -0,0 +1,17 @@
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "random";
+  version = "1.0.0.2";
+  sha256 = "5433aebb4bbfb999f1d02410c8ca3769c63cd8b02109d2771a37c12918f92dd5";
+  buildDepends = [ time ];
+  meta = {
+    description = "random number library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random/1.0.0.3.nix b/pkgs/development/libraries/haskell/random/1.0.0.3.nix
new file mode 100644
index 000000000000..f89cad32f9e9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random/1.0.0.3.nix
@@ -0,0 +1,17 @@
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "random";
+  version = "1.0.0.3";
+  sha256 = "0k2735vrx0id2dxzk7lkm22w07p7gy86zffygk60jxgh9rvignf6";
+  buildDepends = [ time ];
+  meta = {
+    description = "random number library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random/default.nix b/pkgs/development/libraries/haskell/random/default.nix
deleted file mode 100644
index 370f054dc1e3..000000000000
--- a/pkgs/development/libraries/haskell/random/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, time}:
-
-cabal.mkDerivation (self : {
-  pname = "random";
-  version = "1.0.0.2";
-  sha256 = "5433aebb4bbfb999f1d02410c8ca3769c63cd8b02109d2771a37c12918f92dd5";
-  propagatedBuildInputs = [time];
-  meta = {
-    description = "random number library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/ranges/default.nix b/pkgs/development/libraries/haskell/ranges/default.nix
new file mode 100644
index 000000000000..d7c20f571238
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ranges/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ranges";
+  version = "0.2.3";
+  sha256 = "1jmybrwwvg8zkbxjrlrahfavlf2g2584ld15hzhch317683nvr1p";
+  meta = {
+    description = "Ranges and various functions on them";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/readline/default.nix b/pkgs/development/libraries/haskell/readline/default.nix
index d29df7cefde3..898b005c4da8 100644
--- a/pkgs/development/libraries/haskell/readline/default.nix
+++ b/pkgs/development/libraries/haskell/readline/default.nix
@@ -12,6 +12,11 @@ cabal.mkDerivation (self : {
   '';
   meta = {
     description = "An interface to the GNU readline library";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/recaptcha/default.nix b/pkgs/development/libraries/haskell/recaptcha/default.nix
index 9e2f7c8391bb..60747bbda68b 100644
--- a/pkgs/development/libraries/haskell/recaptcha/default.nix
+++ b/pkgs/development/libraries/haskell/recaptcha/default.nix
@@ -1,12 +1,18 @@
-{cabal, HTTP, network, xhtml}:
+{ cabal, HTTP, network, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "recaptcha";
   version = "0.1";
   sha256 = "de00e6e3aadd99a1cd036ce4b413ebe02d59c1b9cfd3032f122735cca1f25144";
-  propagatedBuildInputs = [HTTP network xhtml];
+  buildDepends = [ HTTP network xhtml ];
   meta = {
+    homepage = "http://github.com/jgm/recaptcha/tree/master";
     description = "Functions for using the reCAPTCHA service in web applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix b/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix
new file mode 100644
index 000000000000..09e4906da011
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-base";
+  version = "0.72.0.2";
+  sha256 = "38a4901b942fea646a422d52c52ef14eec4d6561c258b3c54cd96a8a354141ee";
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-base/0.93.1.nix b/pkgs/development/libraries/haskell/regex-base/0.93.1.nix
index 73d5afeedb29..8fbc2f9e84d0 100644
--- a/pkgs/development/libraries/haskell/regex-base/0.93.1.nix
+++ b/pkgs/development/libraries/haskell/regex-base/0.93.1.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-base";
-  version = "0.93.1"; # Haskell Platform 2010.1.0.0
+  version = "0.93.1";
   sha256 = "24a0e76ab308517a53d2525e18744d9058835626ed4005599ecd8dd4e07f3bef";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    description = "Replaces/Ehances Text.Regex";
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/regex-base/0.93.2.nix b/pkgs/development/libraries/haskell/regex-base/0.93.2.nix
index 3f9d23e95333..50f039a3d27a 100644
--- a/pkgs/development/libraries/haskell/regex-base/0.93.2.nix
+++ b/pkgs/development/libraries/haskell/regex-base/0.93.2.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-base";
-  version = "0.93.2"; # Haskell Platform 2010.2.0.0
-  sha256 = "20dc5713a16f3d5e2e6d056b4beb9cfdc4368cd09fd56f47414c847705243278";
-  propagatedBuildInputs = [mtl];
+  version = "0.93.2";
+  sha256 = "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10";
+  buildDepends = [ mtl ];
   meta = {
-    description = "Replaces/Ehances Text.Regex";
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/regex-base/default.nix b/pkgs/development/libraries/haskell/regex-base/default.nix
deleted file mode 100644
index afb08ebee0d8..000000000000
--- a/pkgs/development/libraries/haskell/regex-base/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl}:
-
-cabal.mkDerivation (self : {
-  pname = "regex-base";
-  version = "0.72.0.2"; # Haskell Platform 2009.0.0
-  sha256 = "38a4901b942fea646a422d52c52ef14eec4d6561c258b3c54cd96a8a354141ee";
-  propagatedBuildInputs = [mtl];
-  meta = {
-    description = "Replaces/Ehances Text.Regex";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
new file mode 100644
index 000000000000..ed88e247e5b7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-compat";
+  version = "0.71.0.1";
+  sha256 = "904552f7d690686b2602f37494827d09b09fc0a8a2565522b61847bec8d1de8d";
+  buildDepends = [ regexBase regexPosix ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.92.nix b/pkgs/development/libraries/haskell/regex-compat/0.92.nix
index 68e9d2321d03..3db0f5d40656 100644
--- a/pkgs/development/libraries/haskell/regex-compat/0.92.nix
+++ b/pkgs/development/libraries/haskell/regex-compat/0.92.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase, regexPosix}:
+{ cabal, regexBase, regexPosix }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-compat";
-  version = "0.92"; # Haskell Platform 2010.1.0.0
+  version = "0.92";
   sha256 = "430d251bd704071fca1e38c9b250543f00d4e370382ed552ac3d7407d4f27936";
-  propagatedBuildInputs = [regexBase regexPosix];
+  buildDepends = [ regexBase regexPosix ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix
index 749e6baaf736..3a28e505a82d 100644
--- a/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix
+++ b/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase, regexPosix}:
+{ cabal, regexBase, regexPosix }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-compat";
-  version = "0.93.1"; # Haskell Platform 2010.2.0.0
-  sha256 = "ee0374f780378e8c04a63d9cbaca525e116dbe2bdce4cff3abaffc28d4e99afe";
-  propagatedBuildInputs = [regexBase regexPosix];
+  version = "0.93.1";
+  sha256 = "1zlsx7a2iz5gmgrwzr6w5fz6s4ayab5bm71xlq28r3iph3vp80zf";
+  buildDepends = [ regexBase regexPosix ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.95.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.95.1.nix
new file mode 100644
index 000000000000..138702e1d416
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-compat/0.95.1.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-compat";
+  version = "0.95.1";
+  sha256 = "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m";
+  buildDepends = [ regexBase regexPosix ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-compat/default.nix b/pkgs/development/libraries/haskell/regex-compat/default.nix
deleted file mode 100644
index 85a725264f82..000000000000
--- a/pkgs/development/libraries/haskell/regex-compat/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, regexBase, regexPosix}:
-
-cabal.mkDerivation (self : {
-  pname = "regex-compat";
-  version = "0.71.0.1"; # Haskell Platform 2009.0.0
-  sha256 = "904552f7d690686b2602f37494827d09b09fc0a8a2565522b61847bec8d1de8d";
-  propagatedBuildInputs = [regexBase regexPosix];
-  meta = {
-    description = "Replaces/Enhances Text.Regex";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix b/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix
new file mode 100644
index 000000000000..f3c6e02caf5c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-pcre-builtin";
+  version = "0.94.2.1.7.7";
+  sha256 = "1c4zxfild1fbpxwqcp2jnf6iwfs0z6nc8dry09gmjykxlhisxi8s";
+  buildDepends = [ regexBase ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-pcre/default.nix b/pkgs/development/libraries/haskell/regex-pcre/default.nix
new file mode 100644
index 000000000000..68c398185173
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-pcre/default.nix
@@ -0,0 +1,19 @@
+{ cabal, pcre, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-pcre";
+  version = "0.94.2";
+  sha256 = "0p4az8z4jlrcmmyz9bjf7n90hpg6n242vq4255w2dz5v29l822wn";
+  buildDepends = [ regexBase ];
+  extraLibraries = [ pcre ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix b/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix
new file mode 100644
index 000000000000..961aab9e2f77
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-posix";
+  version = "0.72.0.3";
+  sha256 = "327ab87f3d4f5315a9414331eb382b8b997de8836d577c3f7d232c574606feb1";
+  buildDepends = [ regexBase ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix b/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix
index 1e7db2ab0b1f..223c9baedcdd 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.94.1"; # Haskell Platform 2010.1.0.0
+  version = "0.94.1";
   sha256 = "63e76de0610d35f1b576ae65a25a38e04e758ed64b9b3512de95bdffd649485c";
-  propagatedBuildInputs = [regexBase];
+  buildDepends = [ regexBase ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix b/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix
index 871805c63f0c..9a570d4ca20d 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.94.2"; # Haskell Platform 2010.2.0.0
+  version = "0.94.2";
   sha256 = "ea0c1ed0ab49ade4dba1eea7a42197652ccb18b7a98c4040e37ba11d26f33067";
-  propagatedBuildInputs = [regexBase];
+  buildDepends = [ regexBase ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix b/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix
new file mode 100644
index 000000000000..e78c7fe2584d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-posix";
+  version = "0.94.4";
+  sha256 = "1ykirysvz9ganm2k7fmrppklsgh0h35mjfsi9g1icv43pqpr6ldw";
+  buildDepends = [ regexBase ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.95.1.nix b/pkgs/development/libraries/haskell/regex-posix/0.95.1.nix
new file mode 100644
index 000000000000..ca6358baeedb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-posix/0.95.1.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-posix";
+  version = "0.95.1";
+  sha256 = "02pgxwbgz738kpdmsg18xs6kmq6my5hqd9cl4rm7cg2v39di9vbl";
+  buildDepends = [ regexBase ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-posix/default.nix b/pkgs/development/libraries/haskell/regex-posix/default.nix
deleted file mode 100644
index fbaf5938b046..000000000000
--- a/pkgs/development/libraries/haskell/regex-posix/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, regexBase}:
-
-cabal.mkDerivation (self : {
-  pname = "regex-posix";
-  version = "0.72.0.3"; # Haskell Platform 2009.0.0
-  sha256 = "327ab87f3d4f5315a9414331eb382b8b997de8836d577c3f7d232c574606feb1";
-  propagatedBuildInputs = [regexBase];
-  meta = {
-    description = "Replaces/Enhances Text.Regex";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/regex-tdfa/default.nix b/pkgs/development/libraries/haskell/regex-tdfa/default.nix
index 76b304044957..82fa24016bc5 100644
--- a/pkgs/development/libraries/haskell/regex-tdfa/default.nix
+++ b/pkgs/development/libraries/haskell/regex-tdfa/default.nix
@@ -1,13 +1,18 @@
-{cabal, mtl, parsec, regexBase}:
+{ cabal, mtl, parsec, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-tdfa";
-  version = "1.1.4";
-  sha256 = "382c7ed1ee75448574b42e9ecb9228b25f55143f3008ecd6f5d3a30471337b39";
-  propagatedBuildInputs = [mtl parsec regexBase];
+  version = "1.1.8";
+  sha256 = "1m75xh5bwmmgg5f757dc126kv47yfqqnz9fzj1hc80p6jpzs573x";
+  buildDepends = [ mtl parsec regexBase ];
   meta = {
+    homepage = "http://hackage.haskell.org/package/regex-tdfa";
     description = "Replaces/Enhances Text.Regex";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/regexpr/default.nix b/pkgs/development/libraries/haskell/regexpr/default.nix
new file mode 100644
index 000000000000..538b980b4383
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regexpr/default.nix
@@ -0,0 +1,18 @@
+{ cabal, HUnit, mtl, mtlparse }:
+
+cabal.mkDerivation (self: {
+  pname = "regexpr";
+  version = "0.5.4";
+  sha256 = "bf7813247f26877d9fba4ba4b66eb80bfddfc2086a5cd8d635b2da0ccde56604";
+  buildDepends = [ HUnit mtl mtlparse ];
+  meta = {
+    homepage = "http://homepage3.nifty.com/salamander/second/projects/regexpr/";
+    description = "regular expression like Perl/Ruby in Haskell";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regular/default.nix b/pkgs/development/libraries/haskell/regular/default.nix
index 5f939fbd1ea4..8dd7e04ec798 100644
--- a/pkgs/development/libraries/haskell/regular/default.nix
+++ b/pkgs/development/libraries/haskell/regular/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regular";
-  version = "0.2.4";
-  sha256 = "7fcef09b09b2bb8cb32246b96d659f8102fd749b6f064cd7b813835ce947932c";
+  version = "0.3.2";
+  sha256 = "104rz28a22p5pn3rdzvmh13s1hpr46n463cfaz3w3bj9cimi2rcj";
   meta = {
     description = "Generic programming library for regular datatypes";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/repa-algorithms/default.nix b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
new file mode 100644
index 000000000000..0ca84003fbf8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
@@ -0,0 +1,18 @@
+{ cabal, repa, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "repa-algorithms";
+  version = "2.1.0.1";
+  sha256 = "101j18s2vqaxls87jzrlhzy2hlhqvgs27cs89j187c1s8z5vvjjg";
+  buildDepends = [ repa vector ];
+  meta = {
+    homepage = "http://repa.ouroborus.net";
+    description = "Algorithms using the Repa array library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/repa-bytestring/default.nix b/pkgs/development/libraries/haskell/repa-bytestring/default.nix
new file mode 100644
index 000000000000..8dfe4159d53b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/repa-bytestring/default.nix
@@ -0,0 +1,18 @@
+{ cabal, repa, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "repa-bytestring";
+  version = "2.1.0.1";
+  sha256 = "01kvbd1kn0irldnfihhxa2jrz8fy1x9g7vz60ffgagj6yzp4bsnq";
+  buildDepends = [ repa vector ];
+  meta = {
+    homepage = "http://repa.ouroborus.net";
+    description = "Conversions between Repa Arrays and ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/repa-examples/default.nix b/pkgs/development/libraries/haskell/repa-examples/default.nix
new file mode 100644
index 000000000000..04f75ae8c570
--- /dev/null
+++ b/pkgs/development/libraries/haskell/repa-examples/default.nix
@@ -0,0 +1,21 @@
+{ cabal, llvm, random, repa, repaAlgorithms, repaIo, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "repa-examples";
+  version = "2.1.0.2";
+  sha256 = "056y2x8kada4d6a89sni2469c736z3d9ldp188n3i58h4kjqqfq7";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ random repa repaAlgorithms repaIo vector ];
+  extraLibraries = [ llvm ];
+  meta = {
+    homepage = "http://repa.ouroborus.net";
+    description = "Examples using the Repa array library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/repa-io/default.nix b/pkgs/development/libraries/haskell/repa-io/default.nix
new file mode 100644
index 000000000000..000f412a3dad
--- /dev/null
+++ b/pkgs/development/libraries/haskell/repa-io/default.nix
@@ -0,0 +1,18 @@
+{ cabal, bmp, repa, repaBytestring }:
+
+cabal.mkDerivation (self: {
+  pname = "repa-io";
+  version = "2.1.0.1";
+  sha256 = "1mjv90rr1vymrnv5kz8i4kvjal6mwhb2042ylbdggvv8hjsc8awq";
+  buildDepends = [ bmp repa repaBytestring ];
+  meta = {
+    homepage = "http://repa.ouroborus.net";
+    description = "Read and write Repa arrays in various formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/repa/default.nix b/pkgs/development/libraries/haskell/repa/default.nix
new file mode 100644
index 000000000000..b5667144103d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/repa/default.nix
@@ -0,0 +1,18 @@
+{ cabal, QuickCheck, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "repa";
+  version = "2.1.1.5";
+  sha256 = "14lq6nsifxsap98c1hpxsyv4g973vyzjn2s94b3vfzkbq8vd7695";
+  buildDepends = [ QuickCheck vector ];
+  meta = {
+    homepage = "http://repa.ouroborus.net";
+    description = "High performance, regular, shape polymorphic parallel arrays";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/rvar/default.nix b/pkgs/development/libraries/haskell/rvar/default.nix
new file mode 100755
index 000000000000..640faeb7d59c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/rvar/default.nix
@@ -0,0 +1,18 @@
+{ cabal, MonadPrompt, mtl, randomSource, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "rvar";
+  version = "0.2";
+  sha256 = "1in2qn1clv9b7ijyllhjflh9zdkna31hpyclhlkfnsc6899z3y1f";
+  buildDepends = [ MonadPrompt mtl randomSource transformers ];
+  meta = {
+    homepage = "https://github.com/mokus0/random-fu";
+    description = "Random Variables";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/safe/default.nix b/pkgs/development/libraries/haskell/safe/default.nix
index 0c41af7e1d3f..20044e6905b0 100644
--- a/pkgs/development/libraries/haskell/safe/default.nix
+++ b/pkgs/development/libraries/haskell/safe/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "safe";
-  version = "0.2";
-  sha256 = "73b9a247c3ba8092236c8c912687399778ff31bf3df42d707563a1528a6fc0e0";
+  version = "0.3";
+  sha256 = "174jm7nlqsgvc6namjpfknlix6yy2sf9pxnb3ifznjvx18kgc7m0";
   meta = {
+    homepage = "http://community.haskell.org/~ndm/safe/";
     description = "Library for safe (pattern match free) functions";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/salvia-protocol/default.nix b/pkgs/development/libraries/haskell/salvia-protocol/default.nix
index e1418423ae80..dbd33c170365 100644
--- a/pkgs/development/libraries/haskell/salvia-protocol/default.nix
+++ b/pkgs/development/libraries/haskell/salvia-protocol/default.nix
@@ -1,14 +1,17 @@
-{cabal, fclabels, parsec, safe, split, utf8String, bimap}:
+{ cabal, bimap, fclabels, parsec, safe, split, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "salvia-protocol";
   version = "1.0.1";
   sha256 = "6b2312e52efaa81feec7461b1a3db77e1f2a8dfd829ae878b614c206a5e48928";
-  propagatedBuildInputs = [fclabels parsec safe split utf8String bimap];
+  buildDepends = [ bimap fclabels parsec safe split utf8String ];
   meta = {
-    description = "Salvia webserver protocol suite";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "Salvia webserver protocol suite supporting URI, HTTP, Cookie and MIME";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/salvia/default.nix b/pkgs/development/libraries/haskell/salvia/default.nix
index 658273ead31e..e3594e1ef4af 100644
--- a/pkgs/development/libraries/haskell/salvia/default.nix
+++ b/pkgs/development/libraries/haskell/salvia/default.nix
@@ -1,19 +1,24 @@
-{cabal, fclabels, MaybeTTransformers, monadsFd, pureMD5, safe,
- salviaProtocol, split, text, threadmanager, transformers, utf8String,
- network, stm, time}:
+{ cabal, fclabels, MaybeTTransformers, monadsFd, network, pureMD5
+, random, safe, salviaProtocol, split, stm, text, threadmanager
+, time, transformers, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "salvia";
   version = "1.0.0";
   sha256 = "d1be63e3eb7cb071e8e339d730692b3ce52576e513f718b89a194b17878496e1";
-  propagatedBuildInputs = [
-    fclabels MaybeTTransformers monadsFd pureMD5 safe salviaProtocol
-    split text threadmanager transformers utf8String network stm time
+  buildDepends = [
+    fclabels MaybeTTransformers monadsFd network pureMD5 random safe
+    salviaProtocol split stm text threadmanager time transformers
+    utf8String
   ];
   meta = {
     description = "Modular web application framework";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/scion/default.nix b/pkgs/development/libraries/haskell/scion/default.nix
deleted file mode 100644
index 43fff2132e13..000000000000
--- a/pkgs/development/libraries/haskell/scion/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal, ghcPaths, ghcSyb, hslogger, json, multiset, time, uniplate}:
-
-cabal.mkDerivation (self : {
-  pname = "scion";
-  version = "0.1";
-  sha256 = "5c9fd9922182abed57c6ec260dfa497de411124c63851a72c640232b9cf78d83";
-  propagatedBuildInputs = [ghcPaths ghcSyb hslogger json multiset time uniplate];
-  meta = {
-    description = "Haskell IDE library";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
new file mode 100755
index 000000000000..71b9a6c6c478
--- /dev/null
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "semigroups";
+  version = "0.8";
+  sha256 = "12ly9f1lxzrxvwkcx25cjik7d1f1l2j1rkd0cabgpcg53hz4158c";
+  meta = {
+    homepage = "http://github.com/ekmett/semigroups/";
+    description = "Haskell 98 semigroups";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/sendfile/default.nix b/pkgs/development/libraries/haskell/sendfile/default.nix
index 801257cc4e56..94244755b731 100644
--- a/pkgs/development/libraries/haskell/sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/sendfile/default.nix
@@ -1,14 +1,18 @@
-{cabal, network}:
+{ cabal, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "sendfile";
-  version = "0.6.2";
-  sha256 = "2d7bf7fdcae7e2ffa24bf70bc1bdc7ea4e6b1726f6cee63cd14c2eeb5545749a";
-  propagatedBuildInputs = [network];
+  version = "0.7.3";
+  sha256 = "0xa5ryyznw7cizdqjnisvyhirdljw5z7aydwv5m9lv9hkx3bs6l0";
+  buildDepends = [ network ];
   meta = {
+    homepage = "http://patch-tag.com/r/mae/sendfile";
     description = "A portable sendfile library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/simple-sendfile/default.nix b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
new file mode 100644
index 000000000000..fd362b44b885
--- /dev/null
+++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
@@ -0,0 +1,17 @@
+{ cabal, network }:
+
+cabal.mkDerivation (self: {
+  pname = "simple-sendfile";
+  version = "0.1.2";
+  sha256 = "08w5ria2x41j85z1126kddi918zdqrwmr4vwqczgzh9kdi49wv8j";
+  buildDepends = [ network ];
+  meta = {
+    description = "Cross platform library for the sendfile system call";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/smallcheck/default.nix b/pkgs/development/libraries/haskell/smallcheck/default.nix
new file mode 100644
index 000000000000..a4106ea80027
--- /dev/null
+++ b/pkgs/development/libraries/haskell/smallcheck/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "smallcheck";
+  version = "0.4";
+  sha256 = "0nq13jm3akrmgk6n2clisip16v0jf1xkm0hm678v63s87hxqb1ma";
+  meta = {
+    description = "Another lightweight testing library in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
new file mode 100644
index 000000000000..4cc036ef0801
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -0,0 +1,27 @@
+{ cabal, attoparsec, attoparsecEnumerator, blazeBuilder
+, bytestringMmap, bytestringNums, caseInsensitive, deepseq, dlist
+, enumerator, MonadCatchIOTransformers, mtl, text, time
+, transformers, unixCompat, vector, zlib
+}:
+
+cabal.mkDerivation (self: {
+  pname = "snap-core";
+  version = "0.5.3.1";
+  sha256 = "0qwlcak1hi4cqyhnks7qqf4zq0rw2486paf0mlasyzb6ba0pwl6m";
+  buildDepends = [
+    attoparsec attoparsecEnumerator blazeBuilder bytestringMmap
+    bytestringNums caseInsensitive deepseq dlist enumerator
+    MonadCatchIOTransformers mtl text time transformers unixCompat
+    vector zlib
+  ];
+  meta = {
+    homepage = "http://snapframework.com/";
+    description = "Snap: A Haskell Web Framework (Core)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix
new file mode 100644
index 000000000000..474719a90a9e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -0,0 +1,28 @@
+{ cabal, attoparsec, attoparsecEnumerator, binary, blazeBuilder
+, blazeBuilderEnumerator, bytestringNums, caseInsensitive
+, directoryTree, enumerator, MonadCatchIOTransformers, mtl
+, murmurHash, network, PSQueue, snapCore, text, time, transformers
+, unixCompat, vector, vectorAlgorithms
+}:
+
+cabal.mkDerivation (self: {
+  pname = "snap-server";
+  version = "0.5.3.1";
+  sha256 = "0rbfklgngrpp2aggkmyamfxn9hpnz3bsxd58lw0fi4ls76bagxvz";
+  buildDepends = [
+    attoparsec attoparsecEnumerator binary blazeBuilder
+    blazeBuilderEnumerator bytestringNums caseInsensitive directoryTree
+    enumerator MonadCatchIOTransformers mtl murmurHash network PSQueue
+    snapCore text time transformers unixCompat vector vectorAlgorithms
+  ];
+  meta = {
+    homepage = "http://snapframework.com/";
+    description = "A fast, iteratee-based, epoll-enabled web server for the Snap Framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/split/default.nix b/pkgs/development/libraries/haskell/split/default.nix
index a006cbe072eb..8463200e387a 100644
--- a/pkgs/development/libraries/haskell/split/default.nix
+++ b/pkgs/development/libraries/haskell/split/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "split";
-  version = "0.1.1";
-  sha256 = "5f6513e717abfaa8eab46d7181093a21d335fed33dff20fa4628008b770a763f";
+  version = "0.1.4.1";
+  sha256 = "0cdn2sb3m62bnxdz59diwwaxysh3kj4kk1srn4m80p03fj60s0q5";
   meta = {
+    homepage = "http://code.haskell.org/~byorgey/code/split";
     description = "Combinator library for splitting lists";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/stateref/default.nix b/pkgs/development/libraries/haskell/stateref/default.nix
new file mode 100644
index 000000000000..b14fd6ebadeb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/stateref/default.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, stm }:
+
+cabal.mkDerivation (self: {
+  pname = "stateref";
+  version = "0.3";
+  sha256 = "0hdpw6g255lj7jjvgqwhjdpzmka546vda5qjvry8gjj6nfm91lvx";
+  buildDepends = [ mtl stm ];
+  meta = {
+    homepage = "http://code.haskell.org/~mokus/stateref/";
+    description = "Abstraction for things that work like IORef";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix
index 8ebacb5933bb..18347fc374e0 100644
--- a/pkgs/development/libraries/haskell/statistics/default.nix
+++ b/pkgs/development/libraries/haskell/statistics/default.nix
@@ -1,15 +1,23 @@
-{cabal, primitive, vector, vectorAlgorithms, mwcRandom, erf}:
+{ cabal, aeson, deepseq, erf, monadPar, mwcRandom, primitive, time
+, vector, vectorAlgorithms
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "statistics";
-  version = "0.8.0.3";
-  sha256 = "11b7ai661sm7j4n8wymipzjldshackwgv6kkp6yqrkxzg40xhal9";
-  propagatedBuildInputs =
-    [primitive vector vectorAlgorithms mwcRandom erf];
+  version = "0.9.0.0";
+  sha256 = "1rwp9gkjs011lxzhkajiljs6x2a4xc8cg558kpfy9xj4q1lk43x7";
+  buildDepends = [
+    aeson deepseq erf monadPar mwcRandom primitive time vector
+    vectorAlgorithms
+  ];
   meta = {
-    description = "A library of statistical types, data and functions";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://bitbucket.org/bos/statistics";
+    description = "A library of statistical types, data, and functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/stb-image/default.nix b/pkgs/development/libraries/haskell/stb-image/default.nix
index 4574b80ce2a5..43e56473b650 100644
--- a/pkgs/development/libraries/haskell/stb-image/default.nix
+++ b/pkgs/development/libraries/haskell/stb-image/default.nix
@@ -1,14 +1,18 @@
-{cabal, bitmap}:
+{ cabal, bitmap }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stb-image";
   version = "0.2";
   sha256 = "7d027b6de52d07bbe439a84897aaa6e26a8f05c6fa6f4aeaa3060be23ae11937";
-  propagatedBuildInputs = [bitmap];
+  buildDepends = [ bitmap ];
   meta = {
+    homepage = "http://code.haskell.org/~bkomuves/";
     description = "A wrapper around Sean Barrett's JPEG/PNG decoder";
-    license = "free";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/stm/2.1.1.2.nix b/pkgs/development/libraries/haskell/stm/2.1.1.2.nix
new file mode 100644
index 000000000000..6184a324181f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/stm/2.1.1.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "stm";
+  version = "2.1.1.2";
+  sha256 = "68d550067ae180373142c51f3fa14bdf0a1516310aee9a37e28f9ac7cf3b8c6d";
+  meta = {
+    description = "Software Transactional Memory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/stm/2.1.2.1.nix b/pkgs/development/libraries/haskell/stm/2.1.2.1.nix
index 976f0054a4a7..8615f10be80f 100644
--- a/pkgs/development/libraries/haskell/stm/2.1.2.1.nix
+++ b/pkgs/development/libraries/haskell/stm/2.1.2.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stm";
-  version = "2.1.2.1"; # Haskell Platform 2010.2.0.0
+  version = "2.1.2.1";
   sha256 = "0d7d8babd2f07c726909030461e1f9b3aaf02dc809fd5e1c0509a67d23b784b8";
   meta = {
     description = "Software Transactional Memory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/stm/2.2.0.1.nix b/pkgs/development/libraries/haskell/stm/2.2.0.1.nix
new file mode 100644
index 000000000000..1174a9740e5b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/stm/2.2.0.1.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "stm";
+  version = "2.2.0.1";
+  sha256 = "1p0x414ffsd77mmlfz1cmwg2cbhinnbpxypxgvygg05js67msj8q";
+  meta = {
+    description = "Software Transactional Memory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/stm/default.nix b/pkgs/development/libraries/haskell/stm/default.nix
deleted file mode 100644
index de3f7e3bc036..000000000000
--- a/pkgs/development/libraries/haskell/stm/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "stm";
-  version = "2.1.1.2"; # Haskell Platform 2009.0.0 and 2010.1.0.0
-  sha256 = "68d550067ae180373142c51f3fa14bdf0a1516310aee9a37e28f9ac7cf3b8c6d";
-  meta = {
-    description = "Software Transactional Memory";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/storable-complex/default.nix b/pkgs/development/libraries/haskell/storable-complex/default.nix
index 334cada046d3..dc36d53f046a 100644
--- a/pkgs/development/libraries/haskell/storable-complex/default.nix
+++ b/pkgs/development/libraries/haskell/storable-complex/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "storable-complex";
-  version = "0.2";
-  sha256 = "4e0e48e641d415b8e549ca3db84468ae18fc74aa3e9848674c48a9024635b8bb";
+  version = "0.2.1";
+  sha256 = "0dnxnsi7m5whwwki3fry6db6gyy5qzfz8jcj1fg3fhfyf4f9wpaz";
   meta = {
     description = "Storable instance for Complex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/storable-record/default.nix b/pkgs/development/libraries/haskell/storable-record/default.nix
new file mode 100644
index 000000000000..180f47939ccd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/storable-record/default.nix
@@ -0,0 +1,20 @@
+{ cabal, transformers, utilityHt }:
+
+cabal.mkDerivation (self: {
+  pname = "storable-record";
+  version = "0.0.2.4";
+  sha256 = "5ed2680dcfc4c3d4fe605d23e797b847fe047b7acd3f4acfd82155c93e72b280";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ transformers utilityHt ];
+  meta = {
+    homepage = "http://code.haskell.org/~thielema/storable-record/";
+    description = "Elegant definition of Storable instances for records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/streamproc/default.nix b/pkgs/development/libraries/haskell/streamproc/default.nix
new file mode 100755
index 000000000000..5e327ac78a5a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/streamproc/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "streamproc";
+  version = "1.4";
+  sha256 = "fbff569d7b294850998e9a6b6a14bf81484b1adb312801ea15d1d890faff12cf";
+  meta = {
+    homepage = "http://gitorious.org/streamproc";
+    description = "Stream Processer Arrow";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/strict/default.nix b/pkgs/development/libraries/haskell/strict/default.nix
new file mode 100644
index 000000000000..99239884b0a3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/strict/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "strict";
+  version = "0.3.2";
+  sha256 = "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc";
+  meta = {
+    homepage = "http://www.cse.unsw.edu.au/~rl/code/strict.html";
+    description = "Strict data types and String IO";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/strictConcurrency/default.nix b/pkgs/development/libraries/haskell/strictConcurrency/default.nix
index 91ba2d948867..083f3e06d5b7 100644
--- a/pkgs/development/libraries/haskell/strictConcurrency/default.nix
+++ b/pkgs/development/libraries/haskell/strictConcurrency/default.nix
@@ -1,12 +1,18 @@
-{cabal, parallel, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "strict-concurrency";
   version = "0.2.4.1";
   sha256 = "0939212dd0cc3b9bd228dfbb233d9eccad22ca626752d9bad8026ceb0a5c1a89";
-  propagatedBuildInputs = [parallel deepseq];
+  buildDepends = [ deepseq ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/strict-concurrency";
     description = "Strict concurrency abstractions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/svgcairo/default.nix b/pkgs/development/libraries/haskell/svgcairo/default.nix
new file mode 100644
index 000000000000..007b17507bf5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/svgcairo/default.nix
@@ -0,0 +1,21 @@
+{ cabal, cairo, glib, glibc, gtk2hsBuildtools, librsvg, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "svgcairo";
+  version = "0.12.0";
+  sha256 = "1zialw59njmq0sfz9f0rx6v50d4bvld2ivmwljkp5bmxii3hcjl3";
+  buildDepends = [ cairo glib mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc ];
+  pkgconfigDepends = [ cairo librsvg ];
+  meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
+    description = "Binding to the libsvg-cairo library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/syb/0.2.2.nix b/pkgs/development/libraries/haskell/syb/0.2.2.nix
new file mode 100644
index 000000000000..070279fadfde
--- /dev/null
+++ b/pkgs/development/libraries/haskell/syb/0.2.2.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "syb";
+  version = "0.2.2";
+  sha256 = "0m29vnqkkmpf4m3gi42kcbr2gfyxgkcw85xsyrq0mgbxb0zg6ky9";
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/syb/0.3.3.nix b/pkgs/development/libraries/haskell/syb/0.3.3.nix
new file mode 100644
index 000000000000..01cc80c883dd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/syb/0.3.3.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "syb";
+  version = "0.3.3";
+  sha256 = "0jskxbnzariq2ahcymvjrp4bhl9cpflc1nh51whdl9axcrd5c901";
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/syb/0.3.nix b/pkgs/development/libraries/haskell/syb/0.3.nix
new file mode 100644
index 000000000000..ddf16ad41e55
--- /dev/null
+++ b/pkgs/development/libraries/haskell/syb/0.3.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "syb";
+  version = "0.3";
+  sha256 = "1gnqw76zy7xvlabhbyk8hml88hpz2igf7b3mz2ic091f77qkkch7";
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/syb/default.nix b/pkgs/development/libraries/haskell/syb/default.nix
index 93e503e7cdc1..a98cf1e2da67 100644
--- a/pkgs/development/libraries/haskell/syb/default.nix
+++ b/pkgs/development/libraries/haskell/syb/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb";
   version = "0.1.0.1";
-  name = self.fname;
   sha256 = "08nf4id26s5iasxzdy5jds6h87fy3a55zgw0zrig4dg6difmwjp3";
-  extraBuildInputs = [];
   meta = {
-    description = "generics system described in the Scrap Your Boilerplate papers [..]";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix b/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix
index f295e489402f..2f3167ff6280 100644
--- a/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix
+++ b/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix
@@ -1,11 +1,17 @@
-{cabal, sybWithClass, text}:
+{ cabal, sybWithClass, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb-with-class-instances-text";
   version = "0.0.1";
   sha256 = "0e0aa90c02cbe76380274830be51e04cb3cc13d5ea5761ba5540779bd0c4d76e";
-  propagatedBuildInputs = [sybWithClass text];
+  buildDepends = [ sybWithClass text ];
   meta = {
-    description = "Scrap Your Boilerplate With Class";
+    description = "Scrap Your Boilerplate With Class Text instance";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/syb/syb-with-class.nix b/pkgs/development/libraries/haskell/syb/syb-with-class.nix
index dfd7d1946351..980c24b2d459 100644
--- a/pkgs/development/libraries/haskell/syb/syb-with-class.nix
+++ b/pkgs/development/libraries/haskell/syb/syb-with-class.nix
@@ -1,10 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb-with-class";
-  version = "0.6.1";
-  sha256 = "72cf0a98862181fea81b77c11f35efd22eafa29107f3acd624fd08be68ed850b";
+  version = "0.6.1.2";
+  sha256 = "1hzwhfpl4w5nblkr2l4l4i7xxkvv7n5adr3i9miqmw1krlxs852d";
   meta = {
     description = "Scrap Your Boilerplate With Class";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/tabular/default.nix b/pkgs/development/libraries/haskell/tabular/default.nix
new file mode 100644
index 000000000000..a649ca04fecb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tabular/default.nix
@@ -0,0 +1,18 @@
+{ cabal, csv, html, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "tabular";
+  version = "0.2.2.3";
+  sha256 = "cf6d9f1928ec6981edcbb06c4dcbaea7a96deef5272192ad4290caa18711ea76";
+  buildDepends = [ csv html mtl ];
+  meta = {
+    homepage = "http://patch-tag.com/r/kowey/tabular";
+    description = "Two-dimensional data tables with rendering functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tagged/default.nix b/pkgs/development/libraries/haskell/tagged/default.nix
new file mode 100644
index 000000000000..5a2149fa116a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tagged/default.nix
@@ -0,0 +1,18 @@
+{ cabal, dataDefault, semigroups }:
+
+cabal.mkDerivation (self: {
+  pname = "tagged";
+  version = "0.2.3";
+  sha256 = "0d4nn0lrgj9v5hy7wgm56dgfvb5021z24sz0xmqxjy2pzq7fxwhc";
+  buildDepends = [ dataDefault semigroups ];
+  meta = {
+    homepage = "http://github.com/ekmett/tagged";
+    description = "Provides newtype wrappers for phantom types to avoid unsafely passing dummy arguments";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tagsoup/default.nix b/pkgs/development/libraries/haskell/tagsoup/default.nix
new file mode 100644
index 000000000000..e31cb09fdf46
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tagsoup/default.nix
@@ -0,0 +1,20 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "tagsoup";
+  version = "0.12.3";
+  sha256 = "0f41kc6kdzslyhskyql431nq0kkdzf13vn9saqi48ycajnrm1vcb";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ text ];
+  meta = {
+    homepage = "http://community.haskell.org/~ndm/tagsoup/";
+    description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/terminfo/default.nix b/pkgs/development/libraries/haskell/terminfo/default.nix
index fb881fb2466e..240b72d7a8f2 100644
--- a/pkgs/development/libraries/haskell/terminfo/default.nix
+++ b/pkgs/development/libraries/haskell/terminfo/default.nix
@@ -1,11 +1,19 @@
-{cabal, ncurses, extensibleExceptions}:
+{ cabal, extensibleExceptions, ncurses }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "terminfo";
-  version = "0.3.0.2";
-  sha256 = "2303d934fcec0f6413f15887f7f42e8e2e5b27812534a929bf585bfa6f3a9229";
-  propagatedBuildInputs = [ncurses extensibleExceptions];
+  version = "0.3.2.2";
+  sha256 = "1370vxvv32aarmk64yvwb8rav523xk7fg5h65cgxvn4ppjqv0f51";
+  buildDepends = [ extensibleExceptions ];
+  extraLibraries = [ ncurses ];
   meta = {
-    description = "Haskell bindings for the terminfo library";
+    homepage = "http://code.haskell.org/terminfo";
+    description = "Haskell bindings to the terminfo library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/test-framework-hunit/default.nix b/pkgs/development/libraries/haskell/test-framework-hunit/default.nix
new file mode 100644
index 000000000000..e196322190de
--- /dev/null
+++ b/pkgs/development/libraries/haskell/test-framework-hunit/default.nix
@@ -0,0 +1,18 @@
+{ cabal, extensibleExceptions, HUnit, testFramework }:
+
+cabal.mkDerivation (self: {
+  pname = "test-framework-hunit";
+  version = "0.2.6";
+  sha256 = "1ivgyh71wwvrrgnk3fp6hsfssvy39jikhjdzr7x68pv1ca7f247r";
+  buildDepends = [ extensibleExceptions HUnit testFramework ];
+  meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
+    description = "HUnit support for the test-framework package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix b/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
new file mode 100644
index 000000000000..20d86feaa1b7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
@@ -0,0 +1,22 @@
+{ cabal, deepseq, extensibleExceptions, QuickCheck, random
+, testFramework
+}:
+
+cabal.mkDerivation (self: {
+  pname = "test-framework-quickcheck";
+  version = "0.2.7";
+  sha256 = "065nazli8vh9dz8xi71gwzlwy81anfd471jhz6hv3m893cc9vvx8";
+  buildDepends = [
+    deepseq extensibleExceptions QuickCheck random testFramework
+  ];
+  meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
+    description = "QuickCheck support for the test-framework package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
new file mode 100644
index 000000000000..e3787bbd0575
--- /dev/null
+++ b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
@@ -0,0 +1,20 @@
+{ cabal, extensibleExceptions, QuickCheck, random, testFramework }:
+
+cabal.mkDerivation (self: {
+  pname = "test-framework-quickcheck2";
+  version = "0.2.10";
+  sha256 = "12c37m74idjydxshgms9ib9ii2rpvy4647kra2ards1w2jmnr6w3";
+  buildDepends = [
+    extensibleExceptions QuickCheck random testFramework
+  ];
+  meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
+    description = "QuickCheck2 support for the test-framework package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/test-framework-th/default.nix b/pkgs/development/libraries/haskell/test-framework-th/default.nix
new file mode 100644
index 000000000000..0c16a9e9e24f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/test-framework-th/default.nix
@@ -0,0 +1,22 @@
+{ cabal, haskellSrcExts, languageHaskellExtract, regexPosix
+, testFramework
+}:
+
+cabal.mkDerivation (self: {
+  pname = "test-framework-th";
+  version = "0.2.2";
+  sha256 = "0nzfvxr5bnxinx41a5w5mwhyxzz2936dl0xhd80cv9plx19ylh0w";
+  buildDepends = [
+    haskellSrcExts languageHaskellExtract regexPosix testFramework
+  ];
+  meta = {
+    homepage = "http://github.com/finnsson/test-generator";
+    description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/test-framework/default.nix b/pkgs/development/libraries/haskell/test-framework/default.nix
new file mode 100644
index 000000000000..21ea2ebe9549
--- /dev/null
+++ b/pkgs/development/libraries/haskell/test-framework/default.nix
@@ -0,0 +1,25 @@
+{ cabal, ansiTerminal, ansiWlPprint, extensibleExceptions, hostname
+, random, regexPosix, time, xml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "test-framework";
+  version = "0.4.1.1";
+  sha256 = "1ig4v2y8xba2rg6pc8yjf0j20cwa3czknnfqn1sgpqhmip2961pc";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    ansiTerminal ansiWlPprint extensibleExceptions hostname random
+    regexPosix time xml
+  ];
+  meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
+    description = "Framework for running and organising tests, with HUnit and QuickCheck support";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/testpack/default.nix b/pkgs/development/libraries/haskell/testpack/default.nix
index fc77c15446d8..35b619166a4f 100644
--- a/pkgs/development/libraries/haskell/testpack/default.nix
+++ b/pkgs/development/libraries/haskell/testpack/default.nix
@@ -1,12 +1,18 @@
-{cabal, HUnit, QuickCheck, mtl}:
+{ cabal, HUnit, mtl, QuickCheck, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "testpack";
-  version = "1.0.2";
-  sha256 = "ff3d24a755aeeb765d5e93aa0189d0d67ac96b2d84e27a29609eb4738a6cdabc";
-  propagatedBuildInputs = [HUnit QuickCheck mtl];
+  version = "2.1.1";
+  sha256 = "1z8g3xhvy901h7kr7q4wcms5b23xniskrgxfpq42w4b34acwvhmg";
+  buildDepends = [ HUnit mtl QuickCheck random ];
   meta = {
-    description = "Test Utility Pack for HUnit and QuickCheck";
+    homepage = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack";
+    description = "Test Utililty Pack for HUnit and QuickCheck";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/texmath/0.4.nix b/pkgs/development/libraries/haskell/texmath/0.4.nix
new file mode 100644
index 000000000000..a59120015dd0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/texmath/0.4.nix
@@ -0,0 +1,20 @@
+{ cabal, parsec, syb, xml }:
+
+cabal.mkDerivation (self: {
+  pname = "texmath";
+  version = "0.4";
+  sha256 = "1rvnhqljxkljy8ncpaj8p7b14nvvm6zmiixv13m1zxlcr457j2ai";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec syb xml ];
+  meta = {
+    homepage = "http://github.com/jgm/texmath";
+    description = "Conversion of LaTeX math formulas to MathML";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/texmath/0.5.0.1.nix b/pkgs/development/libraries/haskell/texmath/0.5.0.1.nix
new file mode 100644
index 000000000000..f82e98703c78
--- /dev/null
+++ b/pkgs/development/libraries/haskell/texmath/0.5.0.1.nix
@@ -0,0 +1,20 @@
+{ cabal, parsec, syb, xml }:
+
+cabal.mkDerivation (self: {
+  pname = "texmath";
+  version = "0.5.0.1";
+  sha256 = "0kw23b1df7456d2h48g2p7k8nvfv80a8a70xgkq4pn7v50vqipdy";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec syb xml ];
+  meta = {
+    homepage = "http://github.com/jgm/texmath";
+    description = "Conversion of LaTeX math formulas to MathML";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix
deleted file mode 100644
index 623f86ee3fd3..000000000000
--- a/pkgs/development/libraries/haskell/texmath/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, cgi, json, parsec, xml}:
-
-cabal.mkDerivation (self : {
-  pname = "texmath";
-  version = "0.3.0.2";
-  sha256 = "8d2bb26fc5aab09ae92d2c194ec39acb4e04c054ad2caf1a1db0dc9b53b4b1d4";
-  propagatedBuildInputs = [cgi json parsec xml];
-  meta = {
-    description = "Conversion of LaTeX math formulas to MathML";
-    license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/text/0.11.0.5.nix b/pkgs/development/libraries/haskell/text/0.11.0.5.nix
new file mode 100644
index 000000000000..b997c60868b2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/text/0.11.0.5.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq }:
+
+cabal.mkDerivation (self: {
+  pname = "text";
+  version = "0.11.0.5";
+  sha256 = "1a5y2i7qrkyyvm112q44rhd7jbqxvfxssz2g5ngbx11yypl3hcdv";
+  buildDepends = [ deepseq ];
+  meta = {
+    homepage = "http://bitbucket.org/bos/text";
+    description = "An efficient packed Unicode text type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/text/0.11.0.6.nix b/pkgs/development/libraries/haskell/text/0.11.0.6.nix
new file mode 100644
index 000000000000..5c593235dee0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/text/0.11.0.6.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq }:
+
+cabal.mkDerivation (self: {
+  pname = "text";
+  version = "0.11.0.6";
+  sha256 = "103l1c8jfwpddsqzwj9jqh89vay8ax1znxqgjqprv2fvr7s0zvkp";
+  buildDepends = [ deepseq ];
+  meta = {
+    homepage = "http://bitbucket.org/bos/text";
+    description = "An efficient packed Unicode text type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/text/0.11.1.5.nix b/pkgs/development/libraries/haskell/text/0.11.1.5.nix
new file mode 100644
index 000000000000..db438a54bc24
--- /dev/null
+++ b/pkgs/development/libraries/haskell/text/0.11.1.5.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq }:
+
+cabal.mkDerivation (self: {
+  pname = "text";
+  version = "0.11.1.5";
+  sha256 = "0fxxhw932gdvaqafsbw7dfzccc43hv92yhxppzp6jrg0npbyz04l";
+  buildDepends = [ deepseq ];
+  meta = {
+    homepage = "https://bitbucket.org/bos/text";
+    description = "An efficient packed Unicode text type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/text/default.nix b/pkgs/development/libraries/haskell/text/default.nix
deleted file mode 100644
index c146af8bb620..000000000000
--- a/pkgs/development/libraries/haskell/text/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, deepseq}:
-
-cabal.mkDerivation (self : {
-  pname = "text";
-  version = "0.7.2.1";
-  sha256 = "13b00db1363219e263a4af5b1318d2a296d67c975883cd7e17265fcd8fb1381c";
-  propagatedBuildInputs = [deepseq];
-  meta = {
-    description = "An efficient package Unicode text type";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/th-lift/default.nix b/pkgs/development/libraries/haskell/th-lift/default.nix
new file mode 100644
index 000000000000..2a5fe84c20ac
--- /dev/null
+++ b/pkgs/development/libraries/haskell/th-lift/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "th-lift";
+  version = "0.5.4";
+  sha256 = "1ax5rniainbw4lynfng0wv8a6x2cfv7k69n5nv1pwpb4s76am1hi";
+  meta = {
+    description = "Derive Template Haskell's Lift class for datatypes";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/threadmanager/default.nix b/pkgs/development/libraries/haskell/threadmanager/default.nix
index b80b374baa7f..d7f5a70bc343 100644
--- a/pkgs/development/libraries/haskell/threadmanager/default.nix
+++ b/pkgs/development/libraries/haskell/threadmanager/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "threadmanager";
-  version = "0.1.3";
-  sha256 = "22ca45d7e32518736abb9cde6d2d14163128888769fc02bbc2641fd97318a15a";
+  version = "0.1.4";
+  sha256 = "0p35ihdc9k9svzbwiszll5i53km09rvw5mqshph273fby7nvni9i";
   meta = {
+    homepage = "http://github.com/bsl/threadmanager";
     description = "Simple thread management";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/time/1.1.2.4.nix b/pkgs/development/libraries/haskell/time/1.1.2.4.nix
new file mode 100644
index 000000000000..7ced3956a8a3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/time/1.1.2.4.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "time";
+  version = "1.1.2.4";
+  sha256 = "11dfcb9b5ca76428a7a31019928c3c1898320f774e5d3df8e4407580d074fad3";
+  meta = {
+    homepage = "http://semantic.org/TimeLib/";
+    description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/time/1.1.3.nix b/pkgs/development/libraries/haskell/time/1.1.3.nix
index 025a5faa380e..c8a7fe129855 100644
--- a/pkgs/development/libraries/haskell/time/1.1.3.nix
+++ b/pkgs/development/libraries/haskell/time/1.1.3.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "time";
   version = "1.1.3";
   sha256 = "46d32400bc0099ccef1fb670684c00a31055725403ea15c7a39278ff7dccc65b";
   meta = {
+    homepage = "http://semantic.org/TimeLib/";
     description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/time/1.2.0.3.nix b/pkgs/development/libraries/haskell/time/1.2.0.3.nix
index 7ddbdcc2fa98..23cec7ab90fd 100644
--- a/pkgs/development/libraries/haskell/time/1.2.0.3.nix
+++ b/pkgs/development/libraries/haskell/time/1.2.0.3.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "time";
   version = "1.2.0.3";
   sha256 = "acb1e3cf2b98a73632d35b0665808b05df6c03fcefd62796fe291f5b2ef4348e";
   meta = {
+    homepage = "http://semantic.org/TimeLib/";
     description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/time/1.2.0.5.nix b/pkgs/development/libraries/haskell/time/1.2.0.5.nix
new file mode 100644
index 000000000000..78fed9b5754c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/time/1.2.0.5.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "time";
+  version = "1.2.0.5";
+  sha256 = "0y4plv9qvpmzzzb5855zngm6lmd38m0vr2mzwm94xhz2xsqhdh2z";
+  meta = {
+    homepage = "http://semantic.org/TimeLib/";
+    description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/time/1.3.nix b/pkgs/development/libraries/haskell/time/1.3.nix
new file mode 100644
index 000000000000..7a3734597984
--- /dev/null
+++ b/pkgs/development/libraries/haskell/time/1.3.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "time";
+  version = "1.3";
+  sha256 = "0pkd77qz6lpalj166g91f8nz3mzcpxlzcw83yf8sl5yy4wskhmwz";
+  meta = {
+    homepage = "http://semantic.org/TimeLib/";
+    description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/time/default.nix b/pkgs/development/libraries/haskell/time/default.nix
deleted file mode 100644
index 24b78a54ed8f..000000000000
--- a/pkgs/development/libraries/haskell/time/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "time";
-  version = "1.1.2.4"; # Haskell Platform 2009.0.0
-  sha256 = "11dfcb9b5ca76428a7a31019928c3c1898320f774e5d3df8e4407580d074fad3";
-  meta = {
-    description = "A time library";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/tls-extra/default.nix b/pkgs/development/libraries/haskell/tls-extra/default.nix
new file mode 100644
index 000000000000..7b7517b0d42d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tls-extra/default.nix
@@ -0,0 +1,25 @@
+{ cabal, certificate, cryptoApi, cryptocipher, cryptohash, mtl
+, network, text, time, tls, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "tls-extra";
+  version = "0.3.1";
+  sha256 = "1zj8l5nglfaarbbzb1icil6cp6rjqfs33nryxc34akz22zwwmln4";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    certificate cryptoApi cryptocipher cryptohash mtl network text time
+    tls vector
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-tls-extra";
+    description = "TLS extra default values and helpers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tls/default.nix b/pkgs/development/libraries/haskell/tls/default.nix
new file mode 100644
index 000000000000..8da9fbbf4b55
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tls/default.nix
@@ -0,0 +1,24 @@
+{ cabal, cereal, certificate, cryptoApi, cryptocipher, cryptohash
+, mtl
+}:
+
+cabal.mkDerivation (self: {
+  pname = "tls";
+  version = "0.7.2";
+  sha256 = "0x24jf83sfsnpvfm645lng5bc21zsbv6mbagr6q1q71zhfzfyb74";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    cereal certificate cryptoApi cryptocipher cryptohash mtl
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-tls";
+    description = "TLS/SSL protocol native implementation (Server and Client)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix b/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix
new file mode 100644
index 000000000000..f38605c17ad3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "transformers";
+  version = "0.2.2.0";
+  sha256 = "1nkazxy2p0w5ad76vg1lc4l0nla1kdqjdf9pymjgk75dpiyijbdz";
+  meta = {
+    description = "Concrete functor and monad transformers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/transformers/default.nix b/pkgs/development/libraries/haskell/transformers/default.nix
deleted file mode 100644
index ef2c7ed74a75..000000000000
--- a/pkgs/development/libraries/haskell/transformers/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "transformers";
-  version = "0.2.1.0";
-  sha256 = "1ff9768e60130810e888452b6052d64998d0651fe2835902f032d8f8182a2c6d";
-  meta = {
-    description = "Concrete functor and monad transformers";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/tuple/default.nix b/pkgs/development/libraries/haskell/tuple/default.nix
new file mode 100644
index 000000000000..fa06558fc0dd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tuple/default.nix
@@ -0,0 +1,17 @@
+{ cabal, OneTuple }:
+
+cabal.mkDerivation (self: {
+  pname = "tuple";
+  version = "0.2.0.1";
+  sha256 = "1c4vf798rjwshnk04avyjp4rjzj8i9qx4yksv00m3rjy6psr57xg";
+  buildDepends = [ OneTuple ];
+  meta = {
+    description = "Various functions on tuples";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/uniplate/default.nix b/pkgs/development/libraries/haskell/uniplate/default.nix
index fe887014ef15..c9320595e55b 100644
--- a/pkgs/development/libraries/haskell/uniplate/default.nix
+++ b/pkgs/development/libraries/haskell/uniplate/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uniplate";
-  version = "1.5.1";
-  sha256 = "cfeaaaabbbe318992df0c51a0c04729b22dac244f415b80a3b388708ed9cfc33";
-  propagatedBuildInputs = [mtl];
+  version = "1.6.2";
+  sha256 = "1lns0llhszk68jnq5if3xrk997idzszqc267q63kkdwp1zxdicrd";
+  buildDepends = [ syb ];
   meta = {
-    description = "Uniform type generic traversals";
+    homepage = "http://community.haskell.org/~ndm/uniplate/";
+    description = "Help writing simple, concise and fast generic operations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/uniqueid/default.nix b/pkgs/development/libraries/haskell/uniqueid/default.nix
index 193fefe0e5f3..d717bd27871a 100644
--- a/pkgs/development/libraries/haskell/uniqueid/default.nix
+++ b/pkgs/development/libraries/haskell/uniqueid/default.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uniqueid";
   version = "0.1.1";
   sha256 = "e69df591c1ab9901af24bf0e63032765eb2b1ba4ca4fb720a234e9f292e03268";
   meta = {
+    homepage = "http://github.com/sebfisch/uniqueid/wikis";
     description = "Splittable Unique Identifier Supply";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/unix-compat/default.nix b/pkgs/development/libraries/haskell/unix-compat/default.nix
index ae1c54ec973e..34cbd4072f6e 100644
--- a/pkgs/development/libraries/haskell/unix-compat/default.nix
+++ b/pkgs/development/libraries/haskell/unix-compat/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "unix-compat";
-  version = "0.1.2.1";
-  sha256 = "553326e140f71f09cedeec5f74666171c2ad2b3d9ba4312da97da02cbf8a2e85";
+  version = "0.2.2.1";
+  sha256 = "009dg6mxjmdkcmr2d1qq9r3f4qfx4d362lyxj9vvgwrzcdnsgzqi";
   meta = {
+    homepage = "http://github.com/jystic/unix-compat";
     description = "Portable POSIX-compatibility layer";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/unordered-containers/default.nix b/pkgs/development/libraries/haskell/unordered-containers/default.nix
new file mode 100644
index 000000000000..b007d137d605
--- /dev/null
+++ b/pkgs/development/libraries/haskell/unordered-containers/default.nix
@@ -0,0 +1,17 @@
+{ cabal, deepseq, hashable }:
+
+cabal.mkDerivation (self: {
+  pname = "unordered-containers";
+  version = "0.1.4.2";
+  sha256 = "0nfw82zng9y5dinjn78k05i4c4bjc1y6yb2dwqwczb85hbrqiha6";
+  buildDepends = [ deepseq hashable ];
+  meta = {
+    description = "Efficient hashing-based container types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/url/default.nix b/pkgs/development/libraries/haskell/url/default.nix
index d82af1445158..466d53090191 100644
--- a/pkgs/development/libraries/haskell/url/default.nix
+++ b/pkgs/development/libraries/haskell/url/default.nix
@@ -1,14 +1,18 @@
-{cabal, utf8String}:
+{ cabal, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "url";
   version = "2.1.2";
   sha256 = "2cf5c4296418afe3940ae4de66d867897b1382cc4d37a0b9a5ccffa16743ef91";
-  propagatedBuildInputs = [utf8String];
+  buildDepends = [ utf8String ];
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Url";
     description = "A library for working with URLs";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/utf8-light/default.nix b/pkgs/development/libraries/haskell/utf8-light/default.nix
new file mode 100644
index 000000000000..59ebfe3b5e6f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/utf8-light/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "utf8-light";
+  version = "0.4.0.1";
+  sha256 = "1y2vfxjgq8r90bpaxhha0s837vklpwdj4cj3h61bimc0lcx22905";
+  meta = {
+    description = "Unicode";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/utf8-string/default.nix b/pkgs/development/libraries/haskell/utf8-string/default.nix
index b9d9628350d8..4570a863f997 100644
--- a/pkgs/development/libraries/haskell/utf8-string/default.nix
+++ b/pkgs/development/libraries/haskell/utf8-string/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "utf8-string";
   version = "0.3.6";
   sha256 = "c8c74555174edfb96145585c9b80780d0fc55ba249282b8a4c5968cca7c09d69";
   meta = {
-    description = "A UTF8 layer for IO and Strings";
+    homepage = "http://github.com/glguy/utf8-string/";
+    description = "Support for reading and writing UTF8 Strings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
+})
diff --git a/pkgs/development/libraries/haskell/utility-ht/default.nix b/pkgs/development/libraries/haskell/utility-ht/default.nix
index 74671673030f..6c67d98c3bb1 100644
--- a/pkgs/development/libraries/haskell/utility-ht/default.nix
+++ b/pkgs/development/libraries/haskell/utility-ht/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "utility-ht";
-  version = "0.0.5.1";
-  sha256 = "f15fd1450b31f002e6d4fe3720cff7c899f23f8a68b890ea3854e68e596c97cb";
+  version = "0.0.7";
+  sha256 = "83ffd750088a0eef5485b5dfadd13158ab7883655a3773bcc8d22485ba8d3a20";
   meta = {
     description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
index 26b6176fc6d1..de2d1e1f020a 100644
--- a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
+++ b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, ListLike, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uu-parsinglib";
-  version = "2.5.5";
-  sha256 = "132f73b11f87a41aad7331b27d0aa5caa7b931381a88d114c91b700096d6c3f4";
+  version = "2.7.1.1";
+  sha256 = "1qn3impl64cvbzyvhc73yxyibgak4dkgl1vkbrzxrxb770kb5r4p";
+  buildDepends = [ ListLike time ];
   meta = {
-    description = "New version of the Utrecht University parser combinator library";
+    homepage = "http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators";
+    description = "Fast, online, error-correcting, monadic, applicative, merging, permuting, idiomatic parser combinators";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/uulib/default.nix b/pkgs/development/libraries/haskell/uulib/default.nix
index 9b29afb15579..38e9d27f1f08 100644
--- a/pkgs/development/libraries/haskell/uulib/default.nix
+++ b/pkgs/development/libraries/haskell/uulib/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uulib";
-  version = "0.9.12";
-  sha256 = "e2ea76db10e5ce94cf6282642754d0e65e5abadc620b3827aa2ab497b88e6747";
+  version = "0.9.14";
+  sha256 = "0bi62l9fp1ghqq4dagdy4nsxmm08gpsrnfgy6d6k8f4239s3yr0z";
   meta = {
-    description = "Haskell Utecht Tools Library";
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
+    description = "Haskell Utrecht Tools Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/vacuum-cairo/default.nix b/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
index cd30b77d5b7b..ccabd8cc7fa2 100644
--- a/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
+++ b/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
@@ -1,12 +1,21 @@
-{cabal, vacuum, gtk2hs, parallel, strictConcurrency}:
+{ cabal, cairo, deepseq, gtk, strictConcurrency, svgcairo, vacuum
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vacuum-cairo";
-  version = "0.4.1";
-  sha256 = "4d506fec246d40e5c983eea1dbd72735e276f882539aa3682cda9d9a33f8ddb2";
-  propagatedBuildInputs = [vacuum gtk2hs parallel strictConcurrency];
+  version = "0.5";
+  sha256 = "0jp3xn1h28igcg3xb97ifawx11i7adnyi0ff264w0fril9b8ylwc";
+  buildDepends = [
+    cairo deepseq gtk strictConcurrency svgcairo vacuum
+  ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/vacuum-cairo";
     description = "Visualize live Haskell data structures using vacuum, graphviz and cairo";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/vacuum/default.nix b/pkgs/development/libraries/haskell/vacuum/default.nix
index c273beb79729..960e90d645d8 100644
--- a/pkgs/development/libraries/haskell/vacuum/default.nix
+++ b/pkgs/development/libraries/haskell/vacuum/default.nix
@@ -1,12 +1,18 @@
-{cabal, ghcPaths}:
+{ cabal, ghcPaths }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vacuum";
   version = "1.0.0";
   sha256 = "2229948ce801052c5ffb70ffc07e301d87d60740b053df8a7b7851ad02c01d9f";
-  propagatedBuildInputs = [ghcPaths];
+  extraLibraries = [ ghcPaths ];
   meta = {
+    homepage = "http://moonpatio.com/vacuum/";
     description = "Extract graph representations of ghc heap values";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/0.4.nix b/pkgs/development/libraries/haskell/vector-algorithms/0.4.nix
new file mode 100644
index 000000000000..c8b117554202
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vector-algorithms/0.4.nix
@@ -0,0 +1,18 @@
+{ cabal, primitive, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "vector-algorithms";
+  version = "0.4";
+  sha256 = "04ig2bx3gm42mwhcz5n8kp9sy33d1hrwm940kfxny74fc06422h8";
+  buildDepends = [ primitive vector ];
+  meta = {
+    homepage = "http://code.haskell.org/~dolio/";
+    description = "Efficient algorithms for vector arrays";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix b/pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix
new file mode 100644
index 000000000000..d58da61decc6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix
@@ -0,0 +1,18 @@
+{ cabal, primitive, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "vector-algorithms";
+  version = "0.5.2";
+  sha256 = "0ijn4hfaxqjvm91d7mihv62bdd7ph15h880w9lmbr93czbsp8mw1";
+  buildDepends = [ primitive vector ];
+  meta = {
+    homepage = "http://code.haskell.org/~dolio/";
+    description = "Efficient algorithms for vector arrays";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/default.nix b/pkgs/development/libraries/haskell/vector-algorithms/default.nix
deleted file mode 100644
index 49b953842993..000000000000
--- a/pkgs/development/libraries/haskell/vector-algorithms/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, primitive, vector}:
-
-cabal.mkDerivation (self : {
-  pname = "vector-algorithms";
-  version = "0.3.4";
-  sha256 = "19b25myz0lhf010lgajlkz72g3w119x89i097rmbc2y4z1bjgpiv";
-  propagatedBuildInputs = [primitive vector];
-  meta = {
-    description = "Efficient algorithms for vector arrays";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/vector-space/default.nix b/pkgs/development/libraries/haskell/vector-space/default.nix
index d502bfcbf8a7..0052b9b48159 100644
--- a/pkgs/development/libraries/haskell/vector-space/default.nix
+++ b/pkgs/development/libraries/haskell/vector-space/default.nix
@@ -1,14 +1,18 @@
-{cabal, Boolean, MemoTrie}:
+{ cabal, Boolean, MemoTrie }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vector-space";
-  version = "0.5.9";
-  sha256 = "39045384ee1f37f92fc8a84b75eb63091d083298f7be5f51f81112dd42a553b0";
-  propagatedBuildInputs = [Boolean MemoTrie];
+  version = "0.7.3";
+  sha256 = "00lzhml1pc328iw9cip9yh54n0yqkwz1mxkv4gq2wlb7bzpfq1fx";
+  buildDepends = [ Boolean MemoTrie ];
   meta = {
-    description = "Vector & affine spaces, linear maps, and derivatives";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://haskell.org/haskellwiki/vector-space";
+    description = "Vector & affine spaces, linear maps, and derivatives (requires ghc 6.9 or better)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/vector/default.nix b/pkgs/development/libraries/haskell/vector/default.nix
index 797d9e703e43..8762d148e281 100644
--- a/pkgs/development/libraries/haskell/vector/default.nix
+++ b/pkgs/development/libraries/haskell/vector/default.nix
@@ -1,14 +1,18 @@
-{cabal, primitive}:
+{ cabal, primitive }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vector";
-  version = "0.7.0.1";
-  sha256 = "147kwm3p6w1qg1sg3ls7i8zj3mcnyxf80il4r5kz5fd3n1ibvyxj";
-  propagatedBuildInputs = [primitive];
+  version = "0.7.1";
+  sha256 = "1cdbkabw49pgc1j5h96inpmhn8ly230885d22smmynrq369pmg07";
+  buildDepends = [ primitive ];
   meta = {
-    description = "Efficient arrays";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    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
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/vty/4.6.0.4.nix b/pkgs/development/libraries/haskell/vty/4.6.0.4.nix
new file mode 100644
index 000000000000..55c731184462
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vty/4.6.0.4.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq, mtl, parallel, parsec, terminfo, utf8String }:
+
+cabal.mkDerivation (self: {
+  pname = "vty";
+  version = "4.6.0.4";
+  sha256 = "0kabssw3v7nglvsr687ppmdnnmii1q2g5zg8rxwi2hcmvnjx7567";
+  buildDepends = [ deepseq mtl parallel parsec terminfo utf8String ];
+  meta = {
+    homepage = "http://trac.haskell.org/vty/";
+    description = "A simple terminal access library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vty/4.7.0.4.nix b/pkgs/development/libraries/haskell/vty/4.7.0.4.nix
new file mode 100644
index 000000000000..8ef4c51d03d1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vty/4.7.0.4.nix
@@ -0,0 +1,22 @@
+{ cabal, deepseq, mtl, parallel, parsec, terminfo, utf8String
+, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "vty";
+  version = "4.7.0.4";
+  sha256 = "1rwki3ch1r3dqzb1cxmzxn05k49ams64licl0silbhsj3qibbj53";
+  buildDepends = [
+    deepseq mtl parallel parsec terminfo utf8String vector
+  ];
+  meta = {
+    homepage = "https://github.com/coreyoconnor/vty";
+    description = "A simple terminal access library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vty/default.nix b/pkgs/development/libraries/haskell/vty/default.nix
deleted file mode 100644
index 46f39d1e0a69..000000000000
--- a/pkgs/development/libraries/haskell/vty/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, utf8String, terminfo, deepseq, mtl, parallel, parsec, vectorSpace}:
-
-cabal.mkDerivation (self : {
-  pname = "vty";
-  version = "4.4.0.0";
-  sha256 = "bf032022a72831e263d2d48d0a7a3191fb1174554cd714902a60cb0f39afe312";
-  propagatedBuildInputs =
-    [utf8String terminfo deepseq mtl parallel parsec vectorSpace];
-  meta = {
-    description = "A simple terminal access library";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
new file mode 100644
index 000000000000..79513b785d4a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -0,0 +1,23 @@
+{ cabal, blazeBuilder, blazeHtml, fileEmbed, httpTypes, text, time
+, transformers, unixCompat, wai
+}:
+
+cabal.mkDerivation (self: {
+  pname = "wai-app-static";
+  version = "0.1.0";
+  sha256 = "0k9pl1kanrb2pqp1bs5s1lxb7ayq2ddf2cxi5q2v9yq22s229xln";
+  buildDepends = [
+    blazeBuilder blazeHtml fileEmbed httpTypes text time transformers
+    unixCompat wai
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "WAI application for static serving";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
new file mode 100644
index 000000000000..d18c6910a2e8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -0,0 +1,24 @@
+{ cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive
+, enumerator, httpTypes, network, text, time, transformers, wai
+, zlibBindings
+}:
+
+cabal.mkDerivation (self: {
+  pname = "wai-extra";
+  version = "0.4.0.3";
+  sha256 = "1mfjn9rxzcfdwvimjw57j7vpr1y64ia7905c8nxa9968sdy0dhsy";
+  buildDepends = [
+    blazeBuilder blazeBuilderEnumerator caseInsensitive enumerator
+    httpTypes network text time transformers wai zlibBindings
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/wai-extra";
+    description = "Provides some basic WAI handlers and middleware";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wai/default.nix b/pkgs/development/libraries/haskell/wai/default.nix
new file mode 100644
index 000000000000..e7d7d48d738a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai/default.nix
@@ -0,0 +1,22 @@
+{ cabal, blazeBuilder, enumerator, httpTypes, network, text
+, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "wai";
+  version = "0.4.1";
+  sha256 = "089i9qj7vban1qdrdpx836c31yakg3l3lx7y36h56livy6n37k72";
+  buildDepends = [
+    blazeBuilder enumerator httpTypes network text transformers
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/wai";
+    description = "Web Application Interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
new file mode 100644
index 000000000000..50c046b89754
--- /dev/null
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -0,0 +1,24 @@
+{ cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive
+, enumerator, httpTypes, network, simpleSendfile, transformers
+, unixCompat, wai
+}:
+
+cabal.mkDerivation (self: {
+  pname = "warp";
+  version = "0.4.3.1";
+  sha256 = "19cj4jhl647gyy6nl3x2vi6v4g0y9q3w5a5lxvvfnfwgmcqnq3lk";
+  buildDepends = [
+    blazeBuilder blazeBuilderEnumerator caseInsensitive enumerator
+    httpTypes network simpleSendfile transformers unixCompat wai
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/warp";
+    description = "A fast, light-weight web server for WAI applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/web-routes-quasi/default.nix b/pkgs/development/libraries/haskell/web-routes-quasi/default.nix
index 8d0303d65bb4..1660809df1aa 100644
--- a/pkgs/development/libraries/haskell/web-routes-quasi/default.nix
+++ b/pkgs/development/libraries/haskell/web-routes-quasi/default.nix
@@ -1,13 +1,20 @@
-{cabal, webRoutes}:
+{ cabal, pathPieces, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "web-routes-quasi";
-  version = "0.5.0";
-  sha256 = "07ef2717b44f92bccee9af4b4d9a173c12ec3b3b1d49a8495811dad0af240673";
-  propagatedBuildInputs = [webRoutes];
+  version = "0.7.1";
+  sha256 = "0m5p21kbiawjpcs5c83aaypmpmx4avjcj0kzkn95zgdkqcz5kr12";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ pathPieces text ];
   meta = {
+    homepage = "http://docs.yesodweb.com/web-routes-quasi/";
     description = "Define data types and parse/build functions for web-routes via a quasi-quoted DSL";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/web-routes/default.nix b/pkgs/development/libraries/haskell/web-routes/default.nix
index cbd476ff7d00..aa5321c7f5f3 100644
--- a/pkgs/development/libraries/haskell/web-routes/default.nix
+++ b/pkgs/development/libraries/haskell/web-routes/default.nix
@@ -1,13 +1,17 @@
-{cabal, network, parsec, utf8String}:
+{ cabal, mtl, network, parsec, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "web-routes";
-  version = "0.22.0";
-  sha256 = "6482ecba585cf7b1f32c29bfd5cb6f5e06dba72231e38ae5baa15b6b95f7c6c8";
-  propagatedBuildInputs = [network parsec utf8String];
+  version = "0.25.2";
+  sha256 = "0gspjvk5859zwg55q8fjyz4a0d2p6lf2qwa41b8s6kcqi38nnp08";
+  buildDepends = [ mtl network parsec utf8String ];
   meta = {
     description = "Library for maintaining correctness and composability of URLs within an application";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/wl-pprint-text/default.nix b/pkgs/development/libraries/haskell/wl-pprint-text/default.nix
new file mode 100644
index 000000000000..5833af8efaad
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wl-pprint-text/default.nix
@@ -0,0 +1,17 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "wl-pprint-text";
+  version = "1.0.0.0";
+  sha256 = "1zvjsbn98g0lja2jj00d7mvqjq4rik7v7wsy5655wibmy0hbll90";
+  buildDepends = [ text ];
+  meta = {
+    description = "A Wadler/Leijen Pretty Printer for Text values";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wx.nix b/pkgs/development/libraries/haskell/wxHaskell/wx.nix
index 9d80de70a6b2..ec4511ee481e 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wx.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wx.nix
@@ -1,12 +1,18 @@
-{cabal, stm, wxcore}:
+{ cabal, stm, wxcore }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wx";
-  version = "0.11.1.2";
-  sha256 = "d407e191391ec977552932ffbfc86ce7826b56208bbcbc1262d3fc65fe1c2337";
-  propagatedBuildInputs = [stm wxcore];
+  version = "0.12.1.6";
+  sha256 = "1p0gn46gk1abin095va22n9bycxhm2cq1vyvwiypcdq7jq541lhk";
+  buildDepends = [ stm wxcore ];
   meta = {
+    homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix b/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
index ecca8a152de7..c2fbdaeffa67 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
@@ -1,17 +1,19 @@
-{cabal, time, parsec, stm, libX11, mesa, wxGTK}:
+{ cabal, libX11, mesa, parsec, stm, time, wxdirect, wxGTK }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wxcore";
-  version = "0.11.1.2";
-  sha256 = "b91b17243d8a08d96f572224c434c36d14feb1b0bb64a0e63900f0103a7c4752";
-  propagatedBuildInputs = [time parsec stm libX11 wxGTK mesa];
-  /* configureFlags = [ "--with-opengl" ]; */
-  preConfigure = ''
-    sed -i 's/ghc-pkg latest/ghc-pkg --global latest/g' configure
-    sed -i 's/pkg describe/pkg --global describe/g' configure
-  '';
+  version = "0.12.1.7";
+  sha256 = "12vs449xg2xjp503ywjwxadan3v7dq38ph66292szwj1vmhl07v4";
+  buildDepends = [ parsec stm time wxdirect ];
+  extraLibraries = [ libX11 mesa wxGTK ];
   meta = {
+    homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell core";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix b/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
new file mode 100644
index 000000000000..3cbd616353b9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
@@ -0,0 +1,20 @@
+{ cabal, parsec, time }:
+
+cabal.mkDerivation (self: {
+  pname = "wxdirect";
+  version = "0.12.1.4";
+  sha256 = "0v1blh3l02h58cvsngfax5knmg51lil1kj6pr5iqrbcrivp2nh7f";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec time ];
+  meta = {
+    homepage = "http://haskell.org/haskellwiki/WxHaskell";
+    description = "helper tool for building wxHaskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix b/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix
new file mode 100644
index 000000000000..3c369103486a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "xhtml";
+  version = "3000.2.0.1";
+  sha256 = "15pcigascajky67v0lhdhn4bv8xq16cvzib05mg4f1ynwr5a9mv0";
+  meta = {
+    description = "An XHTML combinator library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xhtml/default.nix b/pkgs/development/libraries/haskell/xhtml/default.nix
deleted file mode 100644
index 78dc8486a813..000000000000
--- a/pkgs/development/libraries/haskell/xhtml/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "xhtml";
-  version = "3000.2.0.1"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
-  sha256 = "60d7a44ae6d607475e2d60c5bf9909b8a3bd88850d52b08ff1532aa6d58bec96";
-  meta = {
-    description = "An XHTML combinator library";
-  };
-})  
-
diff --git a/pkgs/development/libraries/haskell/xml-enumerator/default.nix b/pkgs/development/libraries/haskell/xml-enumerator/default.nix
new file mode 100644
index 000000000000..cf77f04379c2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xml-enumerator/default.nix
@@ -0,0 +1,27 @@
+{ cabal, attoparsecText, attoparsecTextEnumerator, blazeBuilder
+, blazeBuilderEnumerator, enumerator, failure, text, transformers
+, xmlTypes
+}:
+
+cabal.mkDerivation (self: {
+  pname = "xml-enumerator";
+  version = "0.3.4";
+  sha256 = "0sfscsfcfmx56sdxc0wn2j1pyqjd9w92igz1n9xaph7zfz61g9k2";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsecText attoparsecTextEnumerator blazeBuilder
+    blazeBuilderEnumerator enumerator failure text transformers
+    xmlTypes
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/xml-enumerator";
+    description = "Pure-Haskell utilities for dealing with XML with the enumerator package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xml-types/default.nix b/pkgs/development/libraries/haskell/xml-types/default.nix
new file mode 100644
index 000000000000..5b2d518402cd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xml-types/default.nix
@@ -0,0 +1,17 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "xml-types";
+  version = "0.3";
+  sha256 = "0d0x7s865ca7bscskp6s7zyzpzd22nkd61wzwg11v6h0q5dilly7";
+  buildDepends = [ text ];
+  meta = {
+    description = "Basic types for representing XML";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xml/default.nix b/pkgs/development/libraries/haskell/xml/default.nix
index 096934dfeae3..1125ac1b5449 100644
--- a/pkgs/development/libraries/haskell/xml/default.nix
+++ b/pkgs/development/libraries/haskell/xml/default.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xml";
-  version = "1.3.5";
-  sha256 = "d61abd617e6e4d5b384e19403486ecc0e5dccf412a235acce2a7b7072e97c3ab";
+  version = "1.3.9";
+  sha256 = "1sx6k5dscpcy4aq09g7h0fz0sl4w2nrr4pnklgwrbrh6bf6kc6w2";
   meta = {
+    homepage = "http://code.galois.com";
     description = "A simple XML library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/default.nix b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
new file mode 100644
index 000000000000..c1027ad269eb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
@@ -0,0 +1,18 @@
+{ cabal, network, tagsoup, utf8String }:
+
+cabal.mkDerivation (self: {
+  pname = "xss-sanitize";
+  version = "0.2.6";
+  sha256 = "18bkvrrkc0ga0610f8g3vghq0ib1yczn2n2zbzv7kg7m6bqgx2y5";
+  buildDepends = [ network tagsoup utf8String ];
+  meta = {
+    homepage = "http://github.com/gregwebs/haskell-xss-sanitize";
+    description = "sanitize untrusted HTML to prevent XSS attacks";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yap/default.nix b/pkgs/development/libraries/haskell/yap/default.nix
new file mode 100644
index 000000000000..858466ab1a49
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yap/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "yap";
+  version = "0.0";
+  sha256 = "0cjsmf9p220fb9yf2i81xspa3rpnlln3hfb9yc5x6xbcc6py0nw5";
+  meta = {
+    description = "yet another prelude - a simplistic refactoring with algebraic classes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-auth/default.nix b/pkgs/development/libraries/haskell/yesod-auth/default.nix
new file mode 100644
index 000000000000..cf192efb6c52
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -0,0 +1,27 @@
+{ cabal, aeson, authenticate, blazeHtml, controlMonadAttempt
+, hamlet, httpEnumerator, mimeMail, persistent, persistentTemplate
+, pureMD5, random, SHA, text, transformers, wai, webRoutesQuasi
+, yesodCore, yesodForm, yesodJson, yesodPersistent
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-auth";
+  version = "0.4.0.2";
+  sha256 = "1vf02kgm3pcak4igvp8009lgv8i8bir272byw0ma2mg6bl0sgyvl";
+  buildDepends = [
+    aeson authenticate blazeHtml controlMonadAttempt hamlet
+    httpEnumerator mimeMail persistent persistentTemplate pureMD5
+    random SHA text transformers wai webRoutesQuasi yesodCore yesodForm
+    yesodJson yesodPersistent
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Authentication for Yesod";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
new file mode 100644
index 000000000000..ae7ffbb1bb62
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -0,0 +1,28 @@
+{ cabal, blazeBuilder, blazeHtml, caseInsensitive, cereal
+, clientsession, cookie, enumerator, failure, hamlet, httpTypes
+, monadControl, parsec, random, text, time, transformers, wai
+, waiExtra, webRoutesQuasi
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-core";
+  version = "0.8.3.2";
+  sha256 = "0k0lgd9p8mrwwcypx1nfr1z2rq5wk4gvjc1fbvla0c9nabqnbfzs";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    blazeBuilder blazeHtml caseInsensitive cereal clientsession cookie
+    enumerator failure hamlet httpTypes monadControl parsec random text
+    time transformers wai waiExtra webRoutesQuasi
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Creation of type-safe, RESTful web applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
new file mode 100644
index 000000000000..9014e1433d26
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -0,0 +1,25 @@
+{ cabal, blazeBuilder, blazeHtml, dataDefault, emailValidate
+, hamlet, network, persistent, text, time, transformers
+, webRoutesQuasi, xssSanitize, yesodCore, yesodPersistent
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-form";
+  version = "0.1.0.1";
+  sha256 = "108652256g82xapsn0w4cbficq4ikwlsa8yis2zq7izxk48livlm";
+  buildDepends = [
+    blazeBuilder blazeHtml dataDefault emailValidate hamlet network
+    persistent text time transformers webRoutesQuasi xssSanitize
+    yesodCore yesodPersistent
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Form handling support for Yesod Web Framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-json/default.nix b/pkgs/development/libraries/haskell/yesod-json/default.nix
new file mode 100644
index 000000000000..982ebfdf1dc9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-json/default.nix
@@ -0,0 +1,18 @@
+{ cabal, aeson, blazeTextual, hamlet, text, vector, yesodCore }:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-json";
+  version = "0.1.1.2";
+  sha256 = "0d6dkhzjpxp3687x914h67swm4lgsalb1xr13gz53ddb0qj18n7j";
+  buildDepends = [ aeson blazeTextual hamlet text vector yesodCore ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Generate content for Yesod using the aeson package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
new file mode 100644
index 000000000000..866ece71ded0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -0,0 +1,22 @@
+{ cabal, failure, persistent, persistentTemplate, transformers
+, yesodCore
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-persistent";
+  version = "0.1.0";
+  sha256 = "1h0kk3sx0c4c3pcg3s2c5kfy0kz7gci45h4gsgrkhkcgg0pg324c";
+  buildDepends = [
+    failure persistent persistentTemplate transformers yesodCore
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Some helpers for using Persistent from Yesod";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
new file mode 100644
index 000000000000..281f14c862c4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -0,0 +1,25 @@
+{ cabal, base64Bytestring, cereal, pureMD5, text, transformers
+, waiAppStatic, yesodCore
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-static";
+  version = "0.1.0.1";
+  sha256 = "0icb1wp0ndvl54shjyv0apmias60j2gjbcv7i92dxnl3fzx74d3p";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    base64Bytestring cereal pureMD5 text transformers waiAppStatic
+    yesodCore
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Static file serving subsite for Yesod Web Framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
new file mode 100644
index 000000000000..72af9d343e3c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -0,0 +1,29 @@
+{ cabal, attoparsecText, blazeBuilder, hamlet, hjsmin, httpTypes
+, mimeMail, monadControl, parsec, text, time, transformers
+, unixCompat, wai, waiExtra, warp, yesodAuth, yesodCore, yesodForm
+, yesodJson, yesodPersistent, yesodStatic
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod";
+  version = "0.8.2.1";
+  sha256 = "0idpgzbzy31bl5khc83wgi9a9mzrymris0mg5dlc4kj4sd5a1ksi";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsecText blazeBuilder hamlet hjsmin httpTypes mimeMail
+    monadControl parsec text time transformers unixCompat wai waiExtra
+    warp yesodAuth yesodCore yesodForm yesodJson yesodPersistent
+    yesodStatic
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Creation of type-safe, RESTful web applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yst/default.nix b/pkgs/development/libraries/haskell/yst/default.nix
index ac65ef9d917a..0810157ae54d 100644
--- a/pkgs/development/libraries/haskell/yst/default.nix
+++ b/pkgs/development/libraries/haskell/yst/default.nix
@@ -1,14 +1,25 @@
-{cabal, HStringTemplate, csv, pandoc, parsec, split, utf8String, xhtml, HsSyck, time}:
+{ cabal, csv, HsSyck, HStringTemplate, pandoc, parsec, split, time
+, utf8String, xhtml
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yst";
-  version = "0.2.3.2";
-  sha256 = "b857e70db67d708e2edb61a1d6bc4eaff3abd2bc252b3605f66bf1760da4da4b";
-  propagatedBuildInputs = [
-    HStringTemplate csv pandoc parsec split utf8String xhtml HsSyck time
+  version = "0.2.4.1";
+  sha256 = "0y620p6kn1mky30fia63na5idppfjfmc828jcaa0ads08rmj5wgy";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    csv HsSyck HStringTemplate pandoc parsec split time utf8String
+    xhtml
   ];
   meta = {
-    description =
-      "Builds a static website from templates and data in YAML or CSV files";
+    homepage = "http://github.com/jgm/yst";
+    description = "Builds a static website from templates and data in YAML or CSV files";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/zip-archive/default.nix b/pkgs/development/libraries/haskell/zip-archive/default.nix
index 23fb5045cd4e..327a1ec5141f 100644
--- a/pkgs/development/libraries/haskell/zip-archive/default.nix
+++ b/pkgs/development/libraries/haskell/zip-archive/default.nix
@@ -1,12 +1,20 @@
-{cabal, binary, mtl, utf8String, zlib, digest}:
+{ cabal, binary, digest, mtl, utf8String, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zip-archive";
-  version = "0.1.1.6";
-  sha256 = "16aafc5f74c880398413a7c2adaaf90cae86006dcda58f663c1e1d795add90aa";
-  propagatedBuildInputs = [binary mtl utf8String zlib digest];
+  version = "0.1.1.7";
+  sha256 = "1q52v18kl1j049kk3yb7rp0k27p6q7r72mg1vcbdid6qd7a9dh48";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary digest mtl utf8String zlib ];
   meta = {
+    homepage = "http://github.com/jgm/zip-archive";
     description = "Library for creating and modifying zip archives";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/zipper/default.nix b/pkgs/development/libraries/haskell/zipper/default.nix
index 6ba3cb2aaa1c..4cfca3bf1a3f 100644
--- a/pkgs/development/libraries/haskell/zipper/default.nix
+++ b/pkgs/development/libraries/haskell/zipper/default.nix
@@ -1,12 +1,18 @@
-{cabal, multirec}:
+{ cabal, multirec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zipper";
-  version = "0.3";
-  sha256 = "3f6cc0ea69734d0523f1bf74d14953f88a196e728f89a7cc91f394d9e0c13c15";
-  propagatedBuildInputs = [multirec];
+  version = "0.3.1";
+  sha256 = "170qjc3mbk6i96z5js745ix57i0xkgpa5h9xjiiirq9x6bfbbqyp";
+  buildDepends = [ multirec ];
   meta = {
-    description = "Generic zipper for systems of recursive datatypes";
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
+    description = "Generic zipper for families of recursive datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/libraries/haskell/zlib-bindings/default.nix b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
new file mode 100644
index 000000000000..b5d4fbe83c59
--- /dev/null
+++ b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
@@ -0,0 +1,20 @@
+{ cabal, zlib }:
+
+cabal.mkDerivation (self: {
+  pname = "zlib-bindings";
+  version = "0.0.0";
+  sha256 = "168sll6mrmcnvdmdx79izqxcrli1s7asp4qilhkqss8w0jlrv1ni";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ zlib ];
+  meta = {
+    homepage = "http://github.com/snoyberg/zlib-bindings";
+    description = "Low-level bindings to the zlib package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/zlib-enum/default.nix b/pkgs/development/libraries/haskell/zlib-enum/default.nix
new file mode 100644
index 000000000000..3e99ed8d5c9a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/zlib-enum/default.nix
@@ -0,0 +1,20 @@
+{ cabal, enumerator, transformers, zlibBindings }:
+
+cabal.mkDerivation (self: {
+  pname = "zlib-enum";
+  version = "0.2.1";
+  sha256 = "0cnx7sbgj6s0gvq6pcqyi3xahx7x3bj47ap10z89qfbk0906rkq8";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ enumerator transformers zlibBindings ];
+  meta = {
+    homepage = "http://github.com/maltem/zlib-enum";
+    description = "Enumerator interface for zlib compression";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix b/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix
new file mode 100644
index 000000000000..60f81e7f9846
--- /dev/null
+++ b/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix
@@ -0,0 +1,17 @@
+{ cabal, zlib }:
+
+cabal.mkDerivation (self: {
+  pname = "zlib";
+  version = "0.5.0.0";
+  sha256 = "20e067cfbec87ec062ac144875a60e158ea6cf7836aac031ec367fcdd5446891";
+  extraLibraries = [ zlib ];
+  meta = {
+    description = "Compression and decompression in the gzip and zlib formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix b/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix
index 80bf428c7060..5ec59a9690f3 100644
--- a/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix
+++ b/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix
@@ -1,13 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib";
-  version = "0.5.2.0"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "0.5.2.0";
   sha256 = "4119fb627e0adc2b129acd86fe5724cf05a49d8de5b64eb7a6e519d3befd3b8f";
-  # TODO: find out exactly why propagated is needed here (to build other
-  # packages depending on zlib):
-  propagatedBuildInputs = [zlib];
+  extraLibraries = [ zlib ];
   meta = {
     description = "Compression and decompression in the gzip and zlib formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix b/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix
new file mode 100644
index 000000000000..f4355c0a9549
--- /dev/null
+++ b/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix
@@ -0,0 +1,17 @@
+{ cabal, zlib }:
+
+cabal.mkDerivation (self: {
+  pname = "zlib";
+  version = "0.5.3.1";
+  sha256 = "1hj56lk4g2zr7acdda39zib1bj02777q0asm5ms9rfj7kp81caiq";
+  extraLibraries = [ zlib ];
+  meta = {
+    description = "Compression and decompression in the gzip and zlib formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/zlib/default.nix b/pkgs/development/libraries/haskell/zlib/default.nix
deleted file mode 100644
index f034e43160af..000000000000
--- a/pkgs/development/libraries/haskell/zlib/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, zlib}:
-
-cabal.mkDerivation (self : {
-  pname = "zlib";
-  version = "0.5.0.0"; # Haskell Platform 2009.0.0
-  sha256 = "20e067cfbec87ec062ac144875a60e158ea6cf7836aac031ec367fcdd5446891";
-  # TODO: find out exactly why propagated is needed here (to build other
-  # packages depending on zlib):
-  propagatedBuildInputs = [zlib];
-  meta = {
-    description = "Compression and decompression in the gzip and zlib formats";
-  };
-})
diff --git a/pkgs/development/libraries/hawknl/default.nix b/pkgs/development/libraries/hawknl/default.nix
new file mode 100644
index 000000000000..76f4a5a7dae0
--- /dev/null
+++ b/pkgs/development/libraries/hawknl/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+	name = "hawknl-1.34";
+	src = fetchurl {
+		url = http://hawksoft.com/download/files/HawkNL168src.zip;
+		sha256 = "11shn2fbxj3w0j77w0234pqyj1368x686kkgv09q5yqhi1cdp028";
+	};
+
+  buildInputs = [ unzip ];
+
+  makefile = "makefile.linux";
+
+  patchPhase = ''
+    sed -i s/soname,NL/soname,libNL/ src/makefile.linux
+  '';
+
+  preInstall = ''
+    sed -i s,/usr/local,$out, src/makefile.linux
+    ensureDir $out/lib $out/include
+  '';
+
+  meta = {
+    homepage = http://hawksoft.com/hawknl/;
+    description = "Free, open source, game oriented network API";
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/herqq/0.7.0.nix b/pkgs/development/libraries/herqq/0.7.0.nix
deleted file mode 100644
index 80bfaf638df4..000000000000
--- a/pkgs/development/libraries/herqq/0.7.0.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, qt4, unzip }:
-
-stdenv.mkDerivation rec {
-  name = "herqq-0.7.0";
-
-
-  buildInputs = [ qt4 unzip ];
-
-  configurePhase = "qmake PREFIX=$out herqq.pro";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/hupnp/${name}.zip";
-    sha256 = "13z6wabakn2j57azhik9nvps50l85hrs028kkhn5cpd0pgcigmqz";
-  };
-
-  meta = {
-    homepage = http://herqq.org;
-    description = "A software library for building UPnP devices and control points";
-    inherit (qt4.meta) platforms;
-    maintainers = [ stdenv.lib.maintainers.urkud ];
-  };
-}
diff --git a/pkgs/development/libraries/herqq/0.8.0.nix b/pkgs/development/libraries/herqq/default.nix
index 29b760659182..fee12592c636 100644
--- a/pkgs/development/libraries/herqq/0.8.0.nix
+++ b/pkgs/development/libraries/herqq/default.nix
@@ -1,8 +1,7 @@
 { stdenv, fetchurl, qt4, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "herqq-0.8.0";
-
+  name = "herqq-1.0.0";
 
   buildInputs = [ qt4 unzip ];
 
@@ -10,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/hupnp/${name}.zip";
-    sha256 = "0z1z9f48fhdif3wd7gn2gj0yxk15f0lpm01q0igsccv8m1y3mphn";
+    sha256 = "13klwszi7h7mvdz2ap0ac4dp7lc0gswp8lzzlwidhqfmf9pwgkyb";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/herqq/svn.nix b/pkgs/development/libraries/herqq/svn.nix
deleted file mode 100644
index c9f0f09d44a5..000000000000
--- a/pkgs/development/libraries/herqq/svn.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchsvn, qt4 }:
-
-stdenv.mkDerivation {
-  name = "herqq-0.8.0-r91";
-
-
-  buildInputs = [ qt4 ];
-
-  configurePhase = "qmake PREFIX=$out herqq.pro";
-
-  src = fetchsvn {
-    url = http://hupnp.svn.sourceforge.net/svnroot/hupnp/trunk/herqq;
-    rev = 91;
-    sha256 = "122md1kn8b5a1vdpn5kisqi6xklwwa57r4lacm1rxlkq3rpca864";
-  };
-
-  meta = {
-    homepage = http://herqq.org;
-    description = "A software library for building UPnP devices and control points";
-    inherit (qt4.meta) platforms;
-    maintainers = [ stdenv.lib.maintainers.urkud ];
-  };
-}
diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix
index 5c3d37729e6d..9bb7562cc210 100644
--- a/pkgs/development/libraries/hwloc/default.nix
+++ b/pkgs/development/libraries/hwloc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, cairo, expat, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "hwloc-1.0";
+  name = "hwloc-1.2";
 
   src = fetchurl {
-    url = "http://www.open-mpi.org/software/hwloc/v1.0/downloads/${name}.tar.bz2";
-    sha256 = "1s64w026idxrkf0y56q4cybapz7yldn1xycnfh1d5bj7v7ncds21";
+    url = "http://www.open-mpi.org/software/hwloc/v1.2/downloads/${name}.tar.bz2";
+    sha256 = "04mrlmcp596imzbhlflb53ddld705k9617rzpprnhp3643krn0dw";
   };
 
   buildInputs = [ pkgconfig cairo expat ncurses ];
diff --git a/pkgs/development/libraries/hwloc/ncurses.patch b/pkgs/development/libraries/hwloc/ncurses.patch
deleted file mode 100644
index 58dffea52651..000000000000
--- a/pkgs/development/libraries/hwloc/ncurses.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Help `configure' find `tparm' in libncurses.
-
---- a/config/hwloc.m4	2010-04-19 14:25:53.000000000 +0200
-+++ b/config/hwloc.m4	2010-04-19 14:24:23.000000000 +0200
-@@ -285,7 +285,7 @@ EOF])
-     LIBS=
-     AC_CHECK_HEADERS([curses.h], [
-       AC_CHECK_HEADERS([term.h], [
--        AC_SEARCH_LIBS([tparm], [termcap curses], [
-+        AC_SEARCH_LIBS([tparm], [ncurses termcap curses], [
-             AC_SUBST([HWLOC_TERMCAP_LIBS], ["$LIBS"])
-             AC_DEFINE([HWLOC_HAVE_LIBTERMCAP], [1],
-                       [Define to 1 if you have a library providing the termcap interface])
diff --git a/pkgs/development/libraries/ilbc/CMakeLists.txt b/pkgs/development/libraries/ilbc/CMakeLists.txt
new file mode 100644
index 000000000000..edd8e7a32797
--- /dev/null
+++ b/pkgs/development/libraries/ilbc/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 2.6)
+
+project(ilbc)
+
+file(GLOB ilbc_SRCS *.c)
+file(GLOB ilbc_HDRS *.h)
+
+add_library(ilbc SHARED ${ilbc_SRCS})
+
+install(TARGETS ilbc DESTINATION lib)
+install(FILES ${ilbc_HDRS} DESTINATION include/ilbc)
diff --git a/pkgs/development/libraries/ilbc/default.nix b/pkgs/development/libraries/ilbc/default.nix
index 6dea424075df..dfa7e7510995 100644
--- a/pkgs/development/libraries/ilbc/default.nix
+++ b/pkgs/development/libraries/ilbc/default.nix
@@ -1,16 +1,26 @@
-{ stdenv, msilbc }:
+{ stdenv, fetchurl, gawk, cmake }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "ilbc-rfc3951";
 
-# I'm too lazy to extract .c source from rfc3951. So, I'm using autotools stuff
-# from linphone project
-  src = stdenv.mkDerivation {
-    name = "ilbc-rfc3951.tar.gz";
-    src = msilbc.src;
-    outputHashAlgo = "sha256";
-    outputHash = "0f6scsp72bz2ifscd8c0x57ipcxi2i4a9b4nwlnwx7a7a0hrazhj";
-    phases = "unpackPhase installPhase";
-    installPhase = "cp ilbc-rfc3951.tar.gz \${out}";
+  script = fetchurl {
+    url = http://ilbcfreeware.org/documentation/extract-cfile.awk;
+    sha256 = "155izy7p7azak1h6bgafvh84b1605zyw14k2s4pyl5nd4saap5c6";
   };
+
+  rfc3951 = fetchurl {
+    url = http://www.ietf.org/rfc/rfc3951.txt;
+    sha256 = "0zf4mvi3jzx6zjrfl2rbhl2m68pzbzpf1vbdmn7dqbfpcb67jpdy";
+  };
+
+  cmakeLists = ./CMakeLists.txt;
+  buildNativeInputs = [ cmake ];
+
+  unpackPhase = ''
+    mkdir -v ${name}
+    cd ${name}
+    ${gawk}/bin/gawk -f ${script} ${rfc3951}
+    cp -v ${cmakeLists} CMakeLists.txt
+    '';
+
 }
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index c038adf632f2..d5c5424c077d 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, x11, libjpeg, libtiff, libungif, libpng, bzip2 }:
+{ stdenv, fetchurl, x11, libjpeg, libtiff, libungif, libpng, bzip2, pkgconfig }:
 
 stdenv.mkDerivation {
-  name = "imlib2-1.3.0";
+  name = "imlib2-1.4.4";
   
   src = fetchurl {
-    url = mirror://sourceforge/enlightenment/imlib2-1.3.0.tar.gz;
-    sha256 = "1lrg7haqhmzpdb14cgp9vny5fanlwlyhf5n017v130in297gv1qj";
+    url = mirror://sourceforge/enlightenment/imlib2-1.4.4.tar.gz;
+    sha256 = "163162aifak8ya17brzqwjlr8ywz40s2s3573js5blcc1g4m5pm4";
   };
   
-  buildInputs = [ x11 libjpeg libtiff libungif libpng bzip2 ];
+  buildInputs = [ x11 libjpeg libtiff libungif libpng bzip2 pkgconfig ];
 }
diff --git a/pkgs/development/libraries/indilib/default.nix b/pkgs/development/libraries/indilib/default.nix
index 0dbab1a7ac40..9fc5ac665e8b 100644
--- a/pkgs/development/libraries/indilib/default.nix
+++ b/pkgs/development/libraries/indilib/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, cfitsio, libusb, zlib }:
+{ stdenv, fetchurl, cmake, cfitsio, libusb, zlib, boost }:
 
 stdenv.mkDerivation {
-  name = "indilib-0.5";
+  name = "indilib-0.8";
 
   src = fetchurl {
-    url = mirror://sf/indi/indilib-0.5.tar.gz;
-    sha256 = "02km37m3d2l8c9wnab24zm2k6a3l8h2fali74jhm4z3khwr277ad";
+    url = mirror://sf/indi/libindi_0.8.tar.gz;
+    sha256 = "d5ed14a5de6fd6e5db15463ada96c2b15b53e84a1ffe199b76f70128493f2a65";
   };
 
-  propagatedBuildInputs = [ cfitsio libusb zlib ];
+  propagatedBuildInputs = [ cmake cfitsio libusb zlib boost ];
 
   meta = {
     homepage = http://indi.sf.net;
diff --git a/pkgs/development/libraries/isl/default.nix b/pkgs/development/libraries/isl/default.nix
new file mode 100644
index 000000000000..b6f1d45b8fa7
--- /dev/null
+++ b/pkgs/development/libraries/isl/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, gmp, static ? false}:
+
+let 
+  version = "0.06";
+  staticFlags = if static then " --enable-static --disable-shared" else "";
+in
+
+stdenv.mkDerivation {
+  name = "isl-${version}";
+  
+  src = fetchurl {
+    url = "http://www.kotnet.org/~skimo/isl/isl-${version}.tar.bz2";
+    sha256 = "0w1i1m94w0jkmm0bzlp08c4r97j7yp0d7crxf28524b9mgbg0mwk";
+  };
+
+  buildInputs = [ gmp ];
+
+  dontDisableStatic = if static then true else false;
+  configureFlags = "--with-gmp-prefix=${gmp}" + staticFlags;
+
+  meta = {
+    homepage = http://www.kotnet.org/~skimo/isl/;
+    license = "LGPLv2.1";
+    description = "A library for manipulating sets and relations of integer points bounded by linear constraints.";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
+
diff --git a/pkgs/development/libraries/java/swt/builder.sh b/pkgs/development/libraries/java/swt/builder.sh
index 624b2c86513b..0a2f304801ec 100644
--- a/pkgs/development/libraries/java/swt/builder.sh
+++ b/pkgs/development/libraries/java/swt/builder.sh
@@ -3,6 +3,8 @@ source $stdenv/setup
 unzip $src src.zip
 unzip src.zip
 
+export JAVA_HOME=${jdk}
+echo $JAVA_HOME=${jdk}
 sh ./build.sh make_swt make_atk
 
 ensureDir $out/lib
diff --git a/pkgs/development/libraries/java/swt/default.nix b/pkgs/development/libraries/java/swt/default.nix
index f06f9ff5be9d..311d05d1aad8 100644
--- a/pkgs/development/libraries/java/swt/default.nix
+++ b/pkgs/development/libraries/java/swt/default.nix
@@ -1,16 +1,21 @@
-{stdenv, fetchurl, unzip, jdk, pkgconfig, gtk, libXtst}:
+{ stdenv, fetchurl, unzip, jdk, pkgconfig, gtk
+, libXtst
+, libXi
+, mesa
+}:
 
 stdenv.mkDerivation {
-  name = "swt-3.1.1";
+  name = "swt-3.6.1";
   builder = ./builder.sh;
-  
+
   # Alas, the Eclipse Project apparently doesn't produce source-only
   # releases of SWT.  So we just grab a binary release and extract
   # "src.zip" from that.
   src = fetchurl {
-    url = http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.1.1-200509290840/swt-3.1.1-gtk-linux-x86.zip;
-    md5 = "23dfe5a4a566439c5f526d9ea3b3db1c";
+    url = http://eclipse.ialto.com/eclipse/downloads/drops/R-3.6.1-201009090800/swt-3.6.1-gtk-linux-x86.zip;
+    sha1 = "e629e0b65296b67931f1fce8ab72419818c9747f";
   };
-  
-  buildInputs = [unzip jdk pkgconfig gtk libXtst];
+
+  buildInputs = [unzip jdk pkgconfig gtk libXtst libXi mesa];
+  inherit jdk;
 }
diff --git a/pkgs/development/libraries/javascript/jquery-ui/default.nix b/pkgs/development/libraries/javascript/jquery-ui/default.nix
new file mode 100644
index 000000000000..2334a04f9b86
--- /dev/null
+++ b/pkgs/development/libraries/javascript/jquery-ui/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "jquery-ui-1.8.10";
+
+  src = fetchurl {
+    url = "http://jqueryui.com/download/${name}.custom.zip";
+    sha256 = "0yglab9zmxr1il2rmxxd7gycpfaavgpi03h8nc5b2yx2kz80jlik";
+  };
+
+  sourceRoot = ".";
+
+  buildInputs = [ unzip ];
+
+  installPhase =
+    ''
+      mkdir -p $out
+      cp -prvd css js $out/
+
+      # 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
+    '';
+
+  meta = {
+    homepage = http://jqueryui.com/;
+    description = "A library of JavaScript widgets and effects";
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/kdevplatform/default.nix b/pkgs/development/libraries/kdevplatform/default.nix
index be0e9a44ae83..7f28877b9f4f 100644
--- a/pkgs/development/libraries/kdevplatform/default.nix
+++ b/pkgs/development/libraries/kdevplatform/default.nix
@@ -1,16 +1,19 @@
 { stdenv, fetchurl, cmake, kdelibs, subversion, qt4, automoc4, perl, phonon,
-  gettext, pkgconfig, apr, aprutil, boost }:
+  gettext, pkgconfig, apr, aprutil, boost, qjson }:
 
 stdenv.mkDerivation rec {
-  name = "kdevplatform-1.0.2";
+  name = "kdevplatform-1.2.3";
 
   src = fetchurl {
-    url = "mirror://kde/stable/kdevelop/4.0.2/src/${name}.tar.bz2";
-    sha256 = "0yn4v3jx1dks84nvi7s40a1pmnvipqx5hlbvbmdgqhhpqik5y9qg";
+    url = "mirror://kde/stable/kdevelop/4.2.3/src/${name}.tar.bz2";
+    sha256 = "1h55lh7kkb8d9qgf4yyzmdwn7vq8l49lzlq92jccz7p79lxb2s08";
   };
 
   propagatedBuildInputs = [ kdelibs subversion qt4 phonon ];
-  buildInputs = [ cmake automoc4 perl gettext pkgconfig apr aprutil boost stdenv.gcc.libc ];
+  buildInputs =
+    [ cmake automoc4 perl gettext pkgconfig apr aprutil boost
+      stdenv.gcc.libc qjson
+    ];
 
   meta = with stdenv.lib; {
     maintainers = [ maintainers.urkud ];
diff --git a/pkgs/development/libraries/lablgtk/default.nix b/pkgs/development/libraries/lablgtk/default.nix
deleted file mode 100644
index 4b223ce05ef8..000000000000
--- a/pkgs/development/libraries/lablgtk/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{stdenv, fetchurl, ocaml, pkgconfig, gtk, libgnomecanvas}:
-
-stdenv.mkDerivation (rec {
-  version = "2.14.2";
-  name = "lablgtk-${version}";
-  src = fetchurl {
-    url = "http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/dist/${name}.tar.gz";
-    sha256 = "1fnh0amm7lwgyjdhmlqgsp62gwlar1140425yc1j6inwmgnsp0a9";
-  };
-
-  buildInputs = [ocaml pkgconfig gtk libgnomecanvas];
-
-  configureFlags = "--with-libdir=$(out)/lib/ocaml";
-  buildFlags = "world";
-  meta = {
-    platforms = ocaml.meta.platforms;
-    maintainers = [
-      stdenv.lib.maintainers.z77z
-    ];
-  };
-})
diff --git a/pkgs/development/libraries/leptonica/default.nix b/pkgs/development/libraries/leptonica/default.nix
new file mode 100644
index 000000000000..e5229961b808
--- /dev/null
+++ b/pkgs/development/libraries/leptonica/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, libpng, libtiff, libjpeg, zlib}:
+
+stdenv.mkDerivation {
+  name = "leptonica-1.68";
+  
+  src = fetchurl {
+    url = http://www.leptonica.org/source/leptonica-1.68.tar.gz;
+    sha256 = "13qzm24zy46bj9b476jxzbw9qh7p96jikfzxg88kz4dj1p2vdvxc";
+  };
+
+  buildInputs = [ libpng libtiff libjpeg zlib ];
+
+  meta = {
+    description = "Image processing and analysis library";
+    homepage = http://www.leptonica.org/;
+    # Its own license: http://www.leptonica.org/about-the-license.html
+    license = "free";
+  };
+}
diff --git a/pkgs/development/libraries/libao/default.nix b/pkgs/development/libraries/libao/default.nix
index ae70e775dd1a..2fc03e0d67cc 100644
--- a/pkgs/development/libraries/libao/default.nix
+++ b/pkgs/development/libraries/libao/default.nix
@@ -2,10 +2,10 @@
 , usePulseAudio }:
 
 stdenv.mkDerivation {
-  name = "libao-0.8.8";
+  name = "libao-1.1.0";
   src = fetchurl {
-    url = http://downloads.xiph.org/releases/ao/libao-0.8.8.tar.gz;
-    sha256 = "e52e05af6b10f42d2ee9845df1a581bf2b352060eabf7946aee0a600c3878954";
+    url = http://downloads.xiph.org/releases/ao/libao-1.1.0.tar.gz;
+    sha256 = "1m0v2y6bhr4iwsgdkc7b3y0qgpvpv1ifbxsy8n8ahsvjn6wmppi9";
   };
 
   buildInputs = [ pkgconfig alsaLib ] ++ (if usePulseAudio then [ pulseaudio ]
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
index 9782948ba53a..ab862fd56f0f 100644
--- a/pkgs/development/libraries/libarchive/default.nix
+++ b/pkgs/development/libraries/libarchive/default.nix
@@ -9,10 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "16095d15334b3c8dbb02db5af3d415f12c1c3bdd4eb43af7bbc36ab7572c0b7a";
   };
 
-  propagatedBuildInputs = [acl libxml2 zlib bzip2 e2fsprogs xz attr openssl];
-  
+  propagatedBuildInputs = [libxml2 zlib bzip2 xz openssl] ++
+    (if stdenv.isLinux then [e2fsprogs attr acl] else []);
+
   buildInputs = [sharutils];
-  
+
   meta = {
     description = "A library for reading and writing streaming archives";
     homepage = http://people.freebsd.org/~kientzle/libarchive;
diff --git a/pkgs/development/libraries/libass/default.nix b/pkgs/development/libraries/libass/default.nix
new file mode 100644
index 000000000000..499639b3a87c
--- /dev/null
+++ b/pkgs/development/libraries/libass/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, freetype, fontconfig, pkgconfig, enca ? null }:
+
+stdenv.mkDerivation rec {
+  name = "libass-0.9.11";
+
+  src = fetchurl {
+    url = "http://libass.googlecode.com/files/${name}.tar.bz2";
+    sha256 = "0p3li523s8n85kfh5xdbbfffr17z8xdh2qcgvdg7ki1myv6agl7z";
+  };
+
+  buildInputs = [ freetype fontconfig enca pkgconfig ];
+
+  meta = {
+    homepage = http://code.google.com/p/libass/;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
new file mode 100644
index 000000000000..0d6637d6116b
--- /dev/null
+++ b/pkgs/development/libraries/libav/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, pkgconfig, yasm, xz
+, mp3Support ? true, lame ? null
+, speexSupport ? true, speex ? null
+, theoraSupport ? true, libtheora ? null
+, vorbisSupport ? true, libvorbis ? null
+, vpxSupport ? false, libvpx ? null
+, x264Support ? false, x264 ? null
+, xvidSupport ? true, xvidcore ? null
+, faacSupport ? false, faac ? null
+}:
+
+assert speexSupport -> speex != null;
+assert theoraSupport -> libtheora != null;
+assert vorbisSupport -> libvorbis != null;
+assert vpxSupport -> libvpx != null;
+assert x264Support -> x264 != null;
+assert xvidSupport -> xvidcore != null;
+
+stdenv.mkDerivation rec {
+  name = "libav-0.7";
+  
+  src = fetchurl {
+    url = "http://libav.org/releases/${name}.tar.xz";
+    sha256 = "04pl6y53xh6xmwzz0f12mg5vh62ylp5zwwinj6dxzd8pnbjg4lsz";
+  };
+
+  # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
+  # the resulting library is GPL'ed, so it can only be used in GPL'ed
+  # applications.
+  configureFlags = [
+    "--enable-gpl"
+    "--enable-postproc"
+    "--enable-swscale"
+    "--disable-ffserver"
+    "--disable-ffplay"
+    "--enable-shared"
+    "--enable-runtime-cpudetect"
+  ]
+    ++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
+    ++ stdenv.lib.optional speexSupport "--enable-libspeex"
+    ++ stdenv.lib.optional theoraSupport "--enable-libtheora"
+    ++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
+    ++ stdenv.lib.optional vpxSupport "--enable-libvpx"
+    ++ stdenv.lib.optional x264Support "--enable-libx264"
+    ++ stdenv.lib.optional xvidSupport "--enable-libxvid"
+    ++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
+
+  buildInputs = [ pkgconfig lame yasm xz ]
+    ++ stdenv.lib.optional mp3Support lame
+    ++ stdenv.lib.optional speexSupport speex
+    ++ stdenv.lib.optional theoraSupport libtheora
+    ++ stdenv.lib.optional vorbisSupport libvorbis
+    ++ stdenv.lib.optional vpxSupport libvpx
+    ++ stdenv.lib.optional x264Support x264
+    ++ stdenv.lib.optional xvidSupport xvidcore
+    ++ stdenv.lib.optional faacSupport faac;
+
+  crossAttrs = {
+    dontSetConfigureCross = true;
+    configureFlags = configureFlags ++ [
+      "--cross-prefix=${stdenv.cross.config}-"
+      "--enable-cross-compile"
+      "--target_os=linux"
+      "--arch=${stdenv.cross.arch}"
+      ];
+  };
+
+  meta = {
+    homepage = http://libav.org/;
+    description = "A complete, cross-platform solution to record, convert and stream audio and video (fork of ffmpeg)";
+  };
+}
diff --git a/pkgs/development/libraries/libavc1394/default.nix b/pkgs/development/libraries/libavc1394/default.nix
index 07753c864030..73ca029a631e 100644
--- a/pkgs/development/libraries/libavc1394/default.nix
+++ b/pkgs/development/libraries/libavc1394/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libraw1394 }:
 
-stdenv.mkDerivation {
-  name = "libavc1394-0.5.3";
+stdenv.mkDerivation rec {
+  name = "libavc1394-0.5.4";
 
   src = fetchurl {
-    url = mirror://sourceforge/libavc1394/libavc1394-0.5.3.tar.gz;
-    sha256 = "19i40i3722ilhziknfds3a6w5xzv66fvc68gvbir1p2fvwi6ij93";
+    url = "mirror://sourceforge/libavc1394/${name}.tar.gz";
+    sha256 = "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw";
   };
 
   buildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/libbluedevil/default.nix b/pkgs/development/libraries/libbluedevil/default.nix
new file mode 100644
index 000000000000..4b233437adbf
--- /dev/null
+++ b/pkgs/development/libraries/libbluedevil/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchgit, cmake, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "libbluedevil-20110304";
+
+  src = fetchgit {
+    url = git://anongit.kde.org/libbluedevil.git;
+    rev = "b44537b1784528cacc62ab1d570c1565bd326b4f";
+    sha256 = "15rx44dncg7hm2x04yz53ni4l1fpb40c3bma3pbvr7l2yd89x3sa";
+  };
+
+  buildInputs = [ cmake qt4 ];
+}
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index db2feeecb122..691294d4a85d 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -1,19 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, libtool, gtk
-, alsaLib, pulseaudio, gstreamer, libvorbis, libcap }:
+{ stdenv, fetchurl, pkgconfig, libtool, gtk ? null
+, alsaLib, pulseaudio, gstreamer ? null, libvorbis, libcap }:
 
 stdenv.mkDerivation rec {
-  name = "libcanberra-0.23";
+  name = "libcanberra-0.28";
 
   src = fetchurl {
     url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.gz";
-    sha256 = "0q09gasvm5dc9d4640lzb5nnmy2cpyi74aq83kjd3j4z58lczl57";
+    sha256 = "1346d2y24wiyanyr5bvdnjjgq7iysy8nlq2dwjv0fzxdmcn8n7zb";
   };
 
   buildInputs =
-    [ pkgconfig libtool alsaLib pulseaudio gstreamer libvorbis libcap ];
-  propagatedBuildInputs = [ gtk ];
+    [ pkgconfig libtool alsaLib pulseaudio gstreamer libvorbis libcap gtk ];
 
-  configureFlags = "--disable-oss";
+  configureFlags = "--disable-oss --disable-schemas-install";
 
   meta = {
     description = "libcanberra, an implementation of the XDG Sound Theme and Name Specifications";
diff --git a/pkgs/development/libraries/libdbusmenu-qt/default.nix b/pkgs/development/libraries/libdbusmenu-qt/default.nix
index 1a9d66974388..3c138cca4162 100644
--- a/pkgs/development/libraries/libdbusmenu-qt/default.nix
+++ b/pkgs/development/libraries/libdbusmenu-qt/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchurl, qt4, cmake }:
+{ stdenv, fetchurl, qt4, cmake, doxygen }:
 
 let
   baseName = "libdbusmenu-qt";
-  v = "0.5.1";
+  v = "0.8.3";
 in
+
 stdenv.mkDerivation rec {
   name = "${baseName}-${v}";
 
   src = fetchurl {
     url = "http://launchpad.net/${baseName}/trunk/${v}/+download/${name}.tar.bz2";
-    sha256 = "0ipz1f08d2wgg18l12wssv9lhm66xhj31a1dbikg2rzw7c6bvjvk";
+    sha256 = "1fkw6wpxjmmx4p8779z662qphip3pgdcsn6cyb0frryfj4sa32ka";
   };
 
-  buildInputs = [ cmake qt4 ];
+  buildInputs = [ cmake qt4 doxygen ];
   
   meta = with stdenv.lib; {
     description = "Provides a Qt implementation of the DBusMenu spec";
diff --git a/pkgs/development/libraries/libdmtx/default.nix b/pkgs/development/libraries/libdmtx/default.nix
new file mode 100644
index 000000000000..f9b864143ec5
--- /dev/null
+++ b/pkgs/development/libraries/libdmtx/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, imagemagick, xz }:
+
+stdenv.mkDerivation rec {
+  name = "libdmtx-0.7.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libdmtx/${name}.tar.bz2";
+    sha256 = "0iin2j3ad7ldj32dwc04g28k54iv3lrc5121rgyphm7l9hvigbvk";
+  };
+
+  buildNativeInputs = [ pkgconfig ];
+
+  propagatedBuildInputs = [ imagemagick xz ];
+
+  meta = {
+    description = "An open source software for reading and writing Data Matrix barcodes";
+    homepage = http://libdmtx.org;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index aff6372d6113..ad6f45366041 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, pkgconfig, libpthreadstubs}:
 
 stdenv.mkDerivation rec {
-  name = "libdrm-2.4.22";
+  name = "libdrm-2.4.24";
   
   src = fetchurl {
     url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2";
-    sha256 = "0gbb7i282i6gf2wzbzkcz5j662v4ixpfjf0gv0090k89wjafbc0b";
+    sha256 = "19dnzy7g6jqfjz38dp187b97vb4a8h4k748x56gsyn24ys0j60f7";
   };
 
   buildInputs = [ pkgconfig libpthreadstubs ];
diff --git a/pkgs/development/libraries/libebml/default.nix b/pkgs/development/libraries/libebml/default.nix
new file mode 100644
index 000000000000..5cd17abc43ee
--- /dev/null
+++ b/pkgs/development/libraries/libebml/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libebml-1.0.0";
+
+  src = fetchurl {
+    url = "http://dl.matroska.org/downloads/libebml/${name}.tar.bz2";
+    sha256 = "0y5ip30nr96wjlh1pzw35ia1axyib158dhz8r5dxzmbcfgn0sj3j";
+  };
+
+  configurePhase = "cd make/linux";
+  makeFlags = "prefix=$(out)";
+
+  meta = {
+    description = "Extensible Binary Meta Language library";
+    homepage = http://dl.matroska.org/downloads/libebml/;
+  };
+}
+
diff --git a/pkgs/development/libraries/libedit/default.nix b/pkgs/development/libraries/libedit/default.nix
index fb45563a1793..dca4d8efc134 100644
--- a/pkgs/development/libraries/libedit/default.nix
+++ b/pkgs/development/libraries/libedit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses}:
+{ stdenv, fetchurl, ncurses, groff }:
 
 stdenv.mkDerivation rec {
   name = "libedit-20100424-3.0";
@@ -8,6 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "11hxaq58gym7kqccjhxywjxdibffzg545z1aj997y1dn0rckhav0";
   };
 
+  # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
+  NROFF = "${groff}/bin/nroff";
+
   postInstall = ''
     sed -i s/-lncurses/-lncursesw/g $out/lib/pkgconfig/libedit.pc
   '';
diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix
index 339e97b9673b..40eb2a10faf5 100644
--- a/pkgs/development/libraries/libelf/default.nix
+++ b/pkgs/development/libraries/libelf/default.nix
@@ -1,6 +1,6 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv, gettext }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "libelf-0.8.13";
 
   src = fetchurl {
@@ -21,3 +21,12 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
+
+//
+
+# Libelf's custom NLS macros fail to determine the catalog file extension on
+# Darwin, so disable NLS for now.
+# FIXME: Eventually make Gettext a build input on all platforms.
+(if stdenv.isDarwin
+ then { configureFlags = [ "--disable-nls" ]; }
+ else { }))
diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix
index 15ffe2fce023..ccce0bd5b3da 100644
--- a/pkgs/development/libraries/libevent/default.nix
+++ b/pkgs/development/libraries/libevent/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl}:
 
-let version = "1.4.14b"; in
+let version = "2.0.12"; in
 stdenv.mkDerivation {
   name = "libevent-${version}";
 
   src = fetchurl {
     url = "http://monkey.org/~provos/libevent-${version}-stable.tar.gz";
-    sha256 = "00b3wih3qpcik6v0qh1406abs2xb954d58ncqwzs8ar2d93ip9mg";
+    sha256 = "1az554fal8g822nhc9f1qrsx12y741x4ks9smj9ix20g5vvq60mc";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
index cbf6847c3702..7c948aa98247 100644
--- a/pkgs/development/libraries/libewf/default.nix
+++ b/pkgs/development/libraries/libewf/default.nix
@@ -1,12 +1,14 @@
-{ fetchurl, stdenv, zlib, openssl, libuuid }:
+{ fetchurl, stdenv, zlib, openssl, libuuid, file }:
 
 stdenv.mkDerivation rec {
-  name = "libewf-20080501";
+  name = "libewf-20100226";
   src = fetchurl {
-    url = mirror://sourceforge/libewf/libewf-20080501.tar.gz;
-    sha256 = "0s8fp7kmpk0976zii0fbk8vhi8k1br2fjp510rmgr6q1ssqdbi36";
+    url = "mirror://sourceforge/libewf/${name}.tar.gz";
+    sha256 = "aedd2a6b3df6525ff535ab95cd569ebb361a4022eb4163390f26257913c2941a";
   };
 
+  preConfigure = ''sed -e 's@/usr/bin/file@file@g' -i configure'';
+
   buildInputs = [ zlib openssl libuuid ];
 
   meta = {
diff --git a/pkgs/development/libraries/libf2c/default.nix b/pkgs/development/libraries/libf2c/default.nix
new file mode 100644
index 000000000000..b14809d47bf8
--- /dev/null
+++ b/pkgs/development/libraries/libf2c/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  name = "libf2c";
+  
+  src = fetchurl {
+    url = http://www.netlib.org/f2c/libf2c.zip;
+    sha256 = "14py0zdwzj5gqjzi0z2hlcy3czpzx1fav55akdj143qgav8h6dav";
+  };
+
+  unpackPhase = ''
+    mkdir build
+    cd build
+    unzip ${src}
+  '';
+
+  makeFlags = "-f makefile.u";
+
+  installPhase = ''
+    ensureDir $out/include $out/lib
+    cp libf2c.a $out/lib
+    cp f2c.h $out/include
+  '';
+
+  buildInputs = [ unzip ];
+
+  meta = {
+    description = "F2c converts Fortran 77 source code to C";
+    homepage = http://www.netlib.org/f2c/;
+    license = "BSD";
+  };
+}
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index 4bf0c05eb285..83f88e1819f9 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "libffi-3.0.9";
 
   src = fetchurl {
@@ -42,3 +42,10 @@ stdenv.mkDerivation rec {
     platforms = stdenv.lib.platforms.all;
   };
 }
+
+//
+
+# Don't run the native `strip' when cross-compiling.
+(if (stdenv ? cross)
+ then { dontStrip = true; }
+ else { }))
diff --git a/pkgs/development/libraries/libgdata/0.6.nix b/pkgs/development/libraries/libgdata/0.6.nix
new file mode 100644
index 000000000000..4ce95505f8fc
--- /dev/null
+++ b/pkgs/development/libraries/libgdata/0.6.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , glib, libsoup, libxml2, pkgconfig, intltool, perl
+  , libtasn1, nettle, gmp
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="libgdata";
+    majorVersion="0.6";
+    minorVersion="6";
+    version="${majorVersion}.${minorVersion}";
+    name="${baseName}-${version}";
+    url="mirror://gnome/sources/${baseName}/${majorVersion}/${name}.tar.bz2";
+    hash="cf6de3b60443faaf8e9c3b4c4b160c22a48df7925c1c793a7bb71d3d746f69f5";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "GData API library";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.lgpl21Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://ftp.gnome.org/pub/GNOME/sources/${sourceInfo.baseName}/${sourceInfo.majorVersion}";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/libgdata/default.nix b/pkgs/development/libraries/libgdata/default.nix
new file mode 100644
index 000000000000..368d873e52a1
--- /dev/null
+++ b/pkgs/development/libraries/libgdata/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , glib, libsoup, libxml2, pkgconfig, intltool, perl
+  , libtasn1, nettle, gmp
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="libgdata";
+    majorVersion="0.8";
+    minorVersion="1";
+    version="${majorVersion}.${minorVersion}";
+    name="${baseName}-${version}";
+    url="mirror://gnome/sources/${baseName}/${majorVersion}/${name}.tar.bz2";
+    hash="1ffhd1dvjflwjsiba1qdianlzfdlfkjgifmw3c7qs2g6fzkf62q8";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "GData API library";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.lgpl21Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://ftp.gnome.org/pub/GNOME/sources/${sourceInfo.baseName}";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/libharu/default.nix b/pkgs/development/libraries/libharu/default.nix
index ff22d1d032bd..3e664ffd43aa 100644
--- a/pkgs/development/libraries/libharu/default.nix
+++ b/pkgs/development/libraries/libharu/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchurl, zlib, libpng }:
 
 stdenv.mkDerivation {
-  name = "haru-2.1.0";
+  name = "libharu-2.2.1";
 
   src = fetchurl {
-    url = http://libharu.org/files/libharu-2.1.0.tar.bz2;
-    sha256 = "07mbvw41jwrapc8jwhi385jpr5b3wx6kah41mkxkifvc06y2141r";
+    url = http://libharu.org/files/libharu-2.2.1.tar.bz2;
+    sha256 = "04493rjb4z8f04p3kjvnya8phg4b0vzy3mbdbp8jfy0dhvqg4h4j";
   };
 
   configureFlags = "--with-zlib=${zlib} --with-png=${libpng}";
 
   buildInputs = [ zlib libpng ];
 
-  meta = { 
-    description = "cross platform, open source library for generating PDF files";
+  meta = {
+    description = "Cross platform, open source library for generating PDF files";
     homepage = http://libharu.org/wiki/Main_Page;
     license = "ZLIB/LIBPNG"; # see README.
     maintainers = [ stdenv.lib.maintainers.marcweber ];
diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix
index 64baf2e7a0d1..7510c6be8997 100644
--- a/pkgs/development/libraries/libidn/default.nix
+++ b/pkgs/development/libraries/libidn/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "libidn-1.19";
+  name = "libidn-1.22";
 
   src = fetchurl {
     url = "mirror://gnu/libidn/${name}.tar.gz";
-    sha256 = "0hczsci75by17pc5mnr09l7yx0xavrr3djjlbfs30gmfn4vfkllf";
+    sha256 = "1vc8yni7sg5iq1ijg9l558pa4v6c1v5l57zc024lgxcmhy35wxig";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libjpeg/default.nix b/pkgs/development/libraries/libjpeg/default.nix
index d31bc2605091..f598482f8304 100644
--- a/pkgs/development/libraries/libjpeg/default.nix
+++ b/pkgs/development/libraries/libjpeg/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }: 
 
 stdenv.mkDerivation {
-  name = "libjpeg-8";
+  name = "libjpeg-8c";
   
   src = fetchurl {
-    url = http://www.ijg.org/files/jpegsrc.v8b.tar.gz;
-    sha256 = "19vl6587pyhz45f14yipnsnpni4iz6j0wdzwyblbm4f5vs721rin";
+    url = http://www.ijg.org/files/jpegsrc.v8c.tar.gz;
+    sha256 = "16kwrjhziv81gl9fq9b7qir8khm3wfb9zj7fzs7yabsb00z0pz7d";
   };
   
   meta = {
diff --git a/pkgs/development/libraries/libkate/default.nix b/pkgs/development/libraries/libkate/default.nix
new file mode 100644
index 000000000000..1100c03e08f0
--- /dev/null
+++ b/pkgs/development/libraries/libkate/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libogg, libpng }:
+
+stdenv.mkDerivation rec {
+  name = "libkate-0.3.8";
+
+  src = fetchurl {
+    url = "http://libkate.googlecode.com/files/${name}.tar.gz";
+    sha256 = "00d6561g31la9bb8q99b7l4rvi67yiwm50ky8dhlsjd88h7rks2n";
+  };
+
+  buildInputs = [ libogg libpng ];
+
+  meta = {
+    description = "A library for encoding and decoding Kate streams";
+    longDescription = ''
+      This is libkate, the reference implementation of a codec for the Kate
+      bitstream format. Kate is a karaoke and text codec meant for encapsulation
+      in an Ogg container. It can carry Unicode text, images, and animate
+      them.'';
+    homepage = http://code.google.com/p/libkate;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/libraries/libktorrent/default.nix b/pkgs/development/libraries/libktorrent/default.nix
index 2ccfbf499b88..308190829693 100644
--- a/pkgs/development/libraries/libktorrent/default.nix
+++ b/pkgs/development/libraries/libktorrent/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchurl, kdelibs, cmake, gmp, qca2, boost, gettext, qt4, automoc4,
-  perl, phonon }:
+{ stdenv, fetchurl, kdelibs, cmake, gmp, qca2, boost, gettext, qt4, automoc4
+, phonon, libgcrypt }:
 
 stdenv.mkDerivation rec {
   name = pname + "-" + version;
   pname = "libktorrent";
-  version = "1.0.3";
+  version = "1.1.1";
 
   src = fetchurl {
-    url = "${meta.homepage}/downloads/4${builtins.substring 1
-      (builtins.stringLength version) version}/${name}.tar.bz2";
-    sha256 = "1yfayzbmi7im0pf4g7awn8lqianpr55xwbsldz7lyj9lc1a3xcgs";
+    url = "http://ktorrent.org/downloads/4.1.1/${name}.tar.bz2";
+    sha256 = "06d93xpshxawz49hqh6pvypir4ygm1f781hs7yim5k6b7shivfs1";
   };
 
-# TODO: xfs.h
-  propagatedBuildInputs = [ kdelibs gmp boost qt4 phonon ];
-  buildInputs = [ cmake automoc4 qca2 gettext perl ];
+  buildInputs =
+    [ cmake kdelibs qt4 automoc4 phonon gmp qca2 boost libgcrypt gettext ];
+
+  enableParallelBuilding = true;
 
   meta = {
-    description = "A bittorrent library used in ktorrent";
+    description = "A BiTtorrent library used by KTorrent";
     homepage = http://ktorrent.org;
   };
 }
diff --git a/pkgs/development/libraries/liblikeback/default.nix b/pkgs/development/libraries/liblikeback/default.nix
new file mode 100644
index 000000000000..46f389ec7ada
--- /dev/null
+++ b/pkgs/development/libraries/liblikeback/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchgit, cmake, kdelibs, automoc4 }:
+
+stdenv.mkDerivation rec {
+  name = "liblikeback-20110103";
+
+  src = fetchgit {
+    url = git://anongit.kde.org/liblikeback.git;
+    rev = "eeb037ae16b6aad8d73cbd6f57198aa111a88628";
+    sha256 = "1p3c8hqfcbhjfyn1kj636kq52nb3vapfakmqvp2wklpljyq38f3z";
+  };
+
+  buildInputs = [ cmake kdelibs automoc4 ];
+
+  meta = {
+    description = "Simple feedback button/dialog for KDE 4.x applications";
+    homepage = https://projects.kde.org/projects/playground/libs/liblikeback;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    inherit (kdelibs.meta) platforms;
+  };
+}
diff --git a/pkgs/development/libraries/liblrdf/default.nix b/pkgs/development/libraries/liblrdf/default.nix
new file mode 100644
index 000000000000..515c81483b08
--- /dev/null
+++ b/pkgs/development/libraries/liblrdf/default.nix
@@ -0,0 +1,46 @@
+x@{builderDefsPackage
+  , libtool, autoconf, automake, ladspaH, librdf_raptor, pkgconfig, zlib
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="liblrdf";
+    version="0.4.0";
+    project="lrdf";
+    name="${baseName}-${version}";
+    url="mirror://sourceforge/project/${project}/${baseName}/${version}/${name}.tar.gz";
+    hash="015jv7pp0a0qxgljgdvf7d01nj4fx0zgzg0wayjp7v86pa38xscm";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "Lightweight RDF library with special support for LADSPA";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+  };
+}) x
+
diff --git a/pkgs/development/libraries/libmatroska/default.nix b/pkgs/development/libraries/libmatroska/default.nix
new file mode 100644
index 000000000000..b851077a6f16
--- /dev/null
+++ b/pkgs/development/libraries/libmatroska/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libebml }:
+
+stdenv.mkDerivation rec {
+  name = "libmatroska-1.0.0";
+
+  src = fetchurl {
+    url = "http://dl.matroska.org/downloads/libmatroska/${name}.tar.bz2";
+    sha256 = "123v2dhvv6yijqxc30spabzznjf5lbcv4iv4mmz4b3jhvwiha06w";
+  };
+
+  configurePhase = "cd make/linux";
+  makeFlags = "prefix=$(out) LIBEBML_INCLUDE_DIR=${libebml}/include LIBEBML_LIB_DIR=${libebml}/lib";
+  propagatedBuildInputs = [ libebml ];
+
+  meta = {
+    description = "Matroska library";
+    homepage = http://dl.matroska.org/downloads/libmatroska;
+  };
+}
+
diff --git a/pkgs/development/libraries/libmcs/default.nix b/pkgs/development/libraries/libmcs/default.nix
index b197d5dcd5d3..5d13aa9a3cf2 100644
--- a/pkgs/development/libraries/libmcs/default.nix
+++ b/pkgs/development/libraries/libmcs/default.nix
@@ -1,14 +1,14 @@
-{stdenv, fetchurl, pkgconfig, libmowgli}:
+{ stdenv, fetchurl, pkgconfig, libmowgli }:
 
-stdenv.mkDerivation {
-  name = "libmcs-0.7.1";
+stdenv.mkDerivation rec {
+  name = "libmcs-0.7.2";
   
   src = fetchurl {
-    url = http://distfiles.atheme.org/libmcs-0.7.1.tbz2;
-    sha256 = "16ckfdprqyb9jhhnhvyhw2rkwadq1z6l3a00fvix16sjzh8dgcz0";
+    url = "http://distfiles.atheme.org/${name}.tbz2";
+    sha256 = "1knmgxrg2kxdlin8qyf6351943ldg8myllwf860af58x1wncxc74";
   };
 
-  buildInputs = [pkgconfig libmowgli];
+  buildInputs = [ pkgconfig libmowgli ];
   
   meta = {
     description = "A library and set of userland tools which abstract the storage of configuration settings away from userland applications";
diff --git a/pkgs/development/libraries/libmms/default.nix b/pkgs/development/libraries/libmms/default.nix
new file mode 100644
index 000000000000..8d24ddbb6300
--- /dev/null
+++ b/pkgs/development/libraries/libmms/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, glib, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "libmms-0.6.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libmms/${name}.tar.gz";
+    sha256 = "0cm4gq5jm8wj04biai6cyvlvdwv286vb3ycyzi870z9d2xi1p4q1";
+  };
+
+  buildInputs = [ glib ];
+
+  buildNativeInputs = [ pkgconfig ];
+
+  meta = {
+    homepage = http://libmms.sourceforge.net;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libmng/default.nix b/pkgs/development/libraries/libmng/default.nix
index 03ef34fac62e..3082bd0ce23a 100644
--- a/pkgs/development/libraries/libmng/default.nix
+++ b/pkgs/development/libraries/libmng/default.nix
@@ -1,22 +1,24 @@
 { stdenv, fetchurl, zlib, libpng, libjpeg, lcms, automake, autoconf, libtool }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "libmng-1.0.10";
 
   src = fetchurl {
-    url = mirror://sourceforge/libmng/libmng-devel/1.0.10/libmng-1.0.10.tar.bz2;
+    url = "mirror://sourceforge/libmng/${name}.tar.bz2";
     sha256 = "06415s40gz833s1v1q7c04c0m49p4sc87ich0vpdid2ldj0pf53v";
   };
 
   preConfigure = "unmaintained/autogen.sh";
 
-  buildInputs = [ zlib libpng libjpeg lcms automake autoconf libtool ];
+  buildNativeInputs = [ automake autoconf libtool ];
+
+  propagatedBuildInputs = [ zlib libpng libjpeg lcms ];
 
   meta = { 
     description = "Reference library for reading, displaying, writing and examining Multiple-Image Network Graphics";
     homepage = http://www.libmng.com;
     license = "zlib/libpng";
-    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    maintainers = with stdenv.lib.maintainers; [ marcweber urkud ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libmowgli/default.nix b/pkgs/development/libraries/libmowgli/default.nix
index 4bc8bc19a122..71611e2ad5bc 100644
--- a/pkgs/development/libraries/libmowgli/default.nix
+++ b/pkgs/development/libraries/libmowgli/default.nix
@@ -1,11 +1,11 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "libmowgli-0.7.0";
+stdenv.mkDerivation rec {
+  name = "libmowgli-0.9.50";
   
   src = fetchurl {
-    url = http://distfiles.atheme.org/libmowgli-0.7.0.tbz2;
-    sha256 = "1d6318zfr4khlq8j290wxn026gnwdd6p81klkh6h0fkdawpvplzx";
+    url = "http://distfiles.atheme.org/${name}.tar.bz2";
+    sha256 = "0wbnpd2rzk5jg6pghgxyx7brjrdmsyg4p0mm9blwmrdrj5ybxx9z";
   };
   
   meta = {
diff --git a/pkgs/development/libraries/libmpeg2/default.nix b/pkgs/development/libraries/libmpeg2/default.nix
new file mode 100644
index 000000000000..1d04eea89f6b
--- /dev/null
+++ b/pkgs/development/libraries/libmpeg2/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libmpeg2-0.5.1";
+  
+  src = fetchurl {
+    url = "http://libmpeg2.sourceforge.net/files/${name}.tar.gz";
+    sha256 = "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny";
+  };
+
+  meta = {
+    homepage = http://libmpeg2.sourceforge.net/;
+    description = "A free library for decoding mpeg-2 and mpeg-1 video streams";
+  };
+}
diff --git a/pkgs/development/libraries/libmrss/default.nix b/pkgs/development/libraries/libmrss/default.nix
new file mode 100644
index 000000000000..395b254d34d6
--- /dev/null
+++ b/pkgs/development/libraries/libmrss/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, curl, libnxml, pkgconfig}:
+
+stdenv.mkDerivation {
+  name = "libmrss-1.0";
+
+  src = fetchurl {
+    url = "http://www.autistici.org/bakunin/libmrss/libmrss-0.19.2.tar.gz";
+    sha256 = "02r1bgj8qlkn63xqfi5yq8y7wrilxcnkycaag8qskhg5ranic507";
+  };
+
+  buildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ curl libnxml ];
+
+  meta = {
+    homepage = http://www.autistici.org/bakunin/libmrss/doc;
+    description = "C library for parsing, writing and creating RSS/ATOM files or streams";
+    license = "LGPLv2";
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.viric ];
+  };
+}
diff --git a/pkgs/development/libraries/libmusicbrainz/default.nix b/pkgs/development/libraries/libmusicbrainz/default.nix
index 08bcd2ff4b17..714870fab160 100644
--- a/pkgs/development/libraries/libmusicbrainz/default.nix
+++ b/pkgs/development/libraries/libmusicbrainz/default.nix
@@ -1,15 +1,13 @@
 { stdenv, fetchurl, cmake, neon, libdiscid }:
 
 stdenv.mkDerivation rec {
-  name = "libmusicbrainz-3.0.2";
+  name = "libmusicbrainz-3.0.3";
 
   buildInputs = [ cmake neon libdiscid ];
 
-  patches = [ ./find-neon.patch ./missing-include.patch ];
-
   src = fetchurl {
     url = "ftp://ftp.musicbrainz.org/pub/musicbrainz/${name}.tar.gz";
-    sha256 = "1nhyl9kalvcn0r86y3kps6id84y3rc43226g67bssfb2h9b5x8xr";
+    md5 = "f4824d0a75bdeeef1e45cc88de7bb58a";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/libmusicbrainz/find-neon.patch b/pkgs/development/libraries/libmusicbrainz/find-neon.patch
deleted file mode 100644
index 2230c46018e5..000000000000
--- a/pkgs/development/libraries/libmusicbrainz/find-neon.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-diff --git a/cmake/modules/FindNeon.cmake b/cmake/modules/FindNeon.cmake
-index 0a6b300..dbd6194 100644
---- a/cmake/modules/FindNeon.cmake
-+++ b/cmake/modules/FindNeon.cmake
-@@ -1,10 +1,10 @@
- INCLUDE(UsePkgConfig)
- PKGCONFIG(neon _NeonIncDir _NeonLinkDir _NeonLinkFlags _NeonCflags)
- 
--FIND_PATH(NEON_INCLUDE_DIR ne_request.h
-+FIND_PATH(NEON_INCLUDE_DIR neon/ne_request.h
-     ${_NeonIncDir}
--    /usr/include/neon
--    /usr/local/include/neon
-+    /usr/include
-+    /usr/local/include
- )
- 
- FIND_LIBRARY(NEON_LIBRARIES neon
-diff --git a/src/utils_private.cpp b/src/utils_private.cpp
-index 751b4a7..5a06eca 100644
---- a/src/utils_private.cpp
-+++ b/src/utils_private.cpp
-@@ -26,7 +26,7 @@
- #include <cstdarg>
- #include <iostream>
- #include <map>
--#include <ne_uri.h> 
-+#include <neon/ne_uri.h> 
- #include "utils_private.h"
- 
- using namespace std;
-diff --git a/src/webservice.cpp b/src/webservice.cpp
-index cd483f9..483f486 100644
---- a/src/webservice.cpp
-+++ b/src/webservice.cpp
-@@ -26,11 +26,11 @@
- #include <iostream>
- #include <stdlib.h>
- #include <string.h>
--#include <ne_session.h>
--#include <ne_request.h>
--#include <ne_utils.h>
--#include <ne_auth.h>
--#include <ne_uri.h> 
-+#include <neon/ne_session.h>
-+#include <neon/ne_request.h>
-+#include <neon/ne_utils.h>
-+#include <neon/ne_auth.h>
-+#include <neon/ne_uri.h> 
- #include <musicbrainz3/webservice.h>
- #include <musicbrainz3/artist.h>
- #include "utils_private.h"
diff --git a/pkgs/development/libraries/libmusicbrainz/missing-include.patch b/pkgs/development/libraries/libmusicbrainz/missing-include.patch
deleted file mode 100644
index 2a1d2b38cae7..000000000000
--- a/pkgs/development/libraries/libmusicbrainz/missing-include.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/utils_private.cpp b/src/utils_private.cpp
-index 2abe857..751b4a7 100644
---- a/src/utils_private.cpp
-+++ b/src/utils_private.cpp
-@@ -21,6 +21,7 @@
-  */
-  
- #include <cstdlib>
-+#include <cstdio>
- #include <cstring>
- #include <cstdarg>
- #include <iostream>
diff --git a/pkgs/development/libraries/libnih/default.nix b/pkgs/development/libraries/libnih/default.nix
index 3ea201a7e508..aeb0792dacfa 100644
--- a/pkgs/development/libraries/libnih/default.nix
+++ b/pkgs/development/libraries/libnih/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, pkgconfig, dbus, expat }:
 
-let version = "1.0.2"; in
+let version = "1.0.3"; in
 
 stdenv.mkDerivation rec {
   name = "libnih-${version}";
   
   src = fetchurl {
     url = "http://code.launchpad.net/libnih/1.0/${version}/+download/libnih-${version}.tar.gz";
-    sha256 = "0zi5qacppsipc03gqdr0vpgfqk17kxxxnrqzb6md12kixfahl33v";
+    sha256 = "01glc6y7z1g726zwpvp2zm79pyb37ki729jkh45akh35fpgp4xc9";
   };
 
   buildInputs = [ pkgconfig dbus expat ];
-  
+
   meta = {
     description = "A small library for C application development";
     homepage = https://launchpad.net/libnih;
diff --git a/pkgs/development/libraries/libnxml/default.nix b/pkgs/development/libraries/libnxml/default.nix
new file mode 100644
index 000000000000..b492a16a2055
--- /dev/null
+++ b/pkgs/development/libraries/libnxml/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, curl}:
+
+stdenv.mkDerivation {
+  name = "libnxml-0.18.3";
+
+  src = fetchurl {
+    url = "http://www.autistici.org/bakunin/libnxml/libnxml-0.18.3.tar.gz";
+    sha256 = "0ix5b9bxd7r517vhgcxwdviq4m0g0pq46s5g3h04gcqnpbin150g";
+  };
+
+  buildInputs = [ curl ];
+
+  meta = {
+    homepage = http://www.autistici.org/bakunin/libnxml/;
+    description = "C library for parsing, writing and creating XML 1.0 and 1.1 files or streams";
+    license = "LGPLv2";
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.viric ];
+  };
+}
diff --git a/pkgs/development/libraries/libogg/default.nix b/pkgs/development/libraries/libogg/default.nix
index 35d41cc37763..0e44a4773c7a 100644
--- a/pkgs/development/libraries/libogg/default.nix
+++ b/pkgs/development/libraries/libogg/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libogg-1.2.0";
+  name = "libogg-1.2.2";
   
   src = fetchurl {
     url = "http://downloads.xiph.org/releases/ogg/${name}.tar.gz";
-    sha256 = "0sgbb7n8zwmycj2iid3h0hrxqg7ql9z34lg51bl99kca4cz9h3gk";
+    sha256 = "1fngv23r8anbf2f2x7s2bh1isxnw287gbc7mhh9g1m96pis0a05b";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/liboggz/default.nix b/pkgs/development/libraries/liboggz/default.nix
new file mode 100644
index 000000000000..857455fb4f33
--- /dev/null
+++ b/pkgs/development/libraries/liboggz/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, libogg, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "liboggz-1.1.1";
+
+  src = fetchurl {
+    url = "http://downloads.xiph.org/releases/liboggz/${name}.tar.gz";
+    sha256 = "0nj17lhnsw4qbbk8jy4j6a78w6v2llhqdwq46g44mbm9w2qsvbvb";
+  };
+
+  propagatedBuildInputs = [ libogg ];
+
+  buildInputs = [ pkgconfig ];
+
+  meta = {
+    homepage = http://xiph.org/oggz/;
+    description = "A C library and tools for manipulating with Ogg files and streams";
+    longDescription = ''
+      Oggz comprises liboggz and the tool oggz, which provides commands to
+      inspect, edit and validate Ogg files. The oggz-chop tool can also be used
+      to serve time ranges of Ogg media over HTTP by any web server that
+      supports CGI.
+
+      liboggz is a C library for reading and writing Ogg files and streams.  It
+      offers various improvements over the reference libogg, including support
+      for seeking, validation and timestamp interpretation. Ogg is an
+      interleaving data container developed by Monty at Xiph.Org, originally to
+      support the Ogg Vorbis audio format but now used for many free codecs
+      including Dirac, FLAC, Speex and Theora.'';
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/libraries/libpar2/default.nix b/pkgs/development/libraries/libpar2/default.nix
new file mode 100644
index 000000000000..85e8bad89066
--- /dev/null
+++ b/pkgs/development/libraries/libpar2/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, libsigcxx }:
+
+stdenv.mkDerivation rec {
+  name = "libpar2-0.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/parchive/${name}.tar.gz";
+    sha256 = "024r37wi01d1pfkk17l5lk0ci0cc0xhy5z050hzf3cbk1y2bykq7";
+  };
+
+  buildInputs = [ pkgconfig libsigcxx ];
+
+  meta = {
+    homepage = http://parchive.sourceforge.net/;
+    license = "GPLv2+";
+    description = "A library for using Parchives (parity archive volume sets)";
+  };
+}
diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix
index 0f5d3b4b24d2..08d24c834b60 100644
--- a/pkgs/development/libraries/libproxy/default.nix
+++ b/pkgs/development/libraries/libproxy/default.nix
@@ -1,9 +1,10 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, cmake, zlib}:
 
-stdenv.mkDerivation {
-  name = "libproxy-0.2.3";
+stdenv.mkDerivation rec {
+  name = "libproxy-0.4.6";
   src = fetchurl {
-    url = http://libproxy.googlecode.com/files/libproxy-0.2.3.tar.gz;
-    sha256 = "16ikq42ffrfd60j57r0l488r8zgkyxcn7l69gkijjzalndhd3pjr";
+    url = "http://libproxy.googlecode.com/files/${name}.tar.gz";
+    sha256 = "9ad912e63b1efca98fb442240a2bc7302e6021c1d0b1b9363327729f29462f30";
   };
+  buildInputs = [cmake zlib];
 }
diff --git a/pkgs/development/libraries/libraw1394/default.nix b/pkgs/development/libraries/libraw1394/default.nix
index a910d11f4108..4b1fbe269bd9 100644
--- a/pkgs/development/libraries/libraw1394/default.nix
+++ b/pkgs/development/libraries/libraw1394/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libraw1394-1.3.0";
+  name = "libraw1394-2.0.7";
 
   src = fetchurl {
-    url = "${meta.homepage}/dl/${name}.tar.gz";
-    sha256 = "035mrca9fhg4kq8r1s5yjgzg3vrn1nc3ndy13yg3chhqgx4dzzr0";
+    url = "mirror://kernel/linux/libs/ieee1394/${name}.tar.gz";
+    sha256 = "1mq9yy73q85lzk288lbdzvzrs5ajh84pzfh7xdhd3d8dy9v53xca";
   };
 
   meta = { 
     description = "Library providing direct access to the IEEE 1394 bus through the Linux 1394 subsystem's raw1394 user space interface";
-    homepage = http://www.linux1394.org;
+    homepage = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libraw1394";
     license = ["GPL" "LGPL"];
   };
 }
diff --git a/pkgs/development/libraries/librdf/raptor2.nix b/pkgs/development/libraries/librdf/raptor2.nix
new file mode 100644
index 000000000000..2f956630fa12
--- /dev/null
+++ b/pkgs/development/libraries/librdf/raptor2.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libxml2, libxslt, curl }:
+
+stdenv.mkDerivation rec {
+  name = "raptor2-2.0.4";
+
+  src = fetchurl {
+    url = "http://download.librdf.org/source/${name}.tar.gz";
+    sha256 = "0viaam60adhsxim2vaq5xs1pfmm6wiidxpkrhwyl7x9mz8x9vx1l";
+  };
+
+  buildInputs = [ libxml2 libxslt ];
+
+  postInstall = "rm -rvf $out/share/gtk-doc";
+
+  meta = { 
+    description = "The RDF Parser Toolkit";
+    homepage = "http://librdf.org/raptor";
+    license = "LGPL-2.1 Apache-2.0";
+    maintainers = with stdenv.lib.maintainers; [ marcweber urkud ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/librdf/rasqal.nix b/pkgs/development/libraries/librdf/rasqal.nix
index 681453985b97..bcab7e03917f 100644
--- a/pkgs/development/libraries/librdf/rasqal.nix
+++ b/pkgs/development/libraries/librdf/rasqal.nix
@@ -1,24 +1,26 @@
-{ stdenv, fetchurl, librdf_raptor, gmp, pkgconfig, pcre, libxml2 }:
+{ stdenv, fetchurl, librdf_raptor2, gmp, pkgconfig, pcre, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "rasqal-0.9.19";
+  name = "rasqal-0.9.26";
 
   src = fetchurl {
     url = "http://download.librdf.org/source/${name}.tar.gz";
-    sha256 = "a042846e8b7af52d9d66fba788c9d579e58c535cfaf80d33dc0bd69bf6ffeb08";
+    sha256 = "1drjcy1k9g72iis0ghllzn7n0w03bahhrd2p5hs39anbm6mr0yk9";
   };
 
-  buildInputs = [ librdf_raptor gmp /*or mpfr*/ pkgconfig pcre libxml2 ];
+  buildNativeInputs = [ pkgconfig ];
 
-  preConfigure = ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lraptor"
-  '';
+  buildInputs = [ gmp pcre libxml2 ];
 
+  propagatedBuildInputs = [ librdf_raptor2 ];
+
+  postInstall = "rm -rvf $out/share/gtk-doc";
+  
   meta = { 
     description = "Library that handles Resource Description Framework (RDF)";
     homepage = "http://librdf.org/rasqal";
     license = "LGPL-2.1 Apache-2.0";
-    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    maintainers = with stdenv.lib.maintainers; [ marcweber urkud ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/librdf/redland.nix b/pkgs/development/libraries/librdf/redland.nix
new file mode 100644
index 000000000000..e825e1d852b2
--- /dev/null
+++ b/pkgs/development/libraries/librdf/redland.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkgconfig, openssl, libxslt, perl
+, curl, pcre, libxml2, librdf_rasqal
+, mysql, withMysql ? false
+, postgresql, withPostgresql ? false
+, sqlite, withSqlite ? true
+, db4, withBdb ? false
+}:
+
+stdenv.mkDerivation rec {
+  name = "redland-1.0.14";
+
+  src = fetchurl {
+    url = "http://download.librdf.org/source/${name}.tar.gz";
+    sha256 = "1i460q9gslb7l75hjwc6w2kp2wk7fgp8lr7phamg33c6j013y30k";
+  };
+
+  buildNativeInputs = [ perl pkgconfig ];
+
+  buildInputs = [ openssl libxslt curl pcre libxml2 ]
+    ++ stdenv.lib.optional withMysql mysql
+    ++ stdenv.lib.optional withSqlite sqlite
+    ++ stdenv.lib.optional withPostgresql postgresql
+    ++ stdenv.lib.optional withBdb db4;
+
+  propagatedBuildInputs = [ librdf_rasqal ];
+
+  postInstall = "rm -rvf $out/share/gtk-doc";
+
+  configureFlags =
+    [ "--with-threads" ]
+    ++ stdenv.lib.optional withBdb "--with-bdb=${db4}";
+
+  meta = {
+    homepage = http://librdf.org/;
+  };
+}
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index 454e7ce9191c..889f98d8a763 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -1,15 +1,16 @@
 {stdenv, fetchurl, cmake, zlib, openssl}:
 
-stdenv.mkDerivation {
-  name = "libssh-0.4.1";
+stdenv.mkDerivation rec {
+  name = "libssh-0.4.8";
   src = fetchurl {
-    url = http://www.libssh.org/files/libssh-0.4.1.tar.gz;
-    sha256 = "0f12iyzwc2w5m5y1b6jzr08516vpfwwwrqqd4dkb6b0q2a1axlm6";
+    url = "http://www.libssh.org/files/0.4/${name}.tar.gz";
+    sha256 = "05d8i8hwya2gry3lky9pmjpvr9f4wvggszqjjzgxvyy74sj3khhm";
   };
   buildInputs = [ cmake zlib openssl ];
   meta = {
     description = "SSH client library";
     license = "LGPL";
-    maintainers = [ stdenv.lib.maintainers.sander ]; 
+    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libtheora/default.nix b/pkgs/development/libraries/libtheora/default.nix
index 7b63cbb9f788..432e6edc61cc 100644
--- a/pkgs/development/libraries/libtheora/default.nix
+++ b/pkgs/development/libraries/libtheora/default.nix
@@ -1,10 +1,16 @@
-{stdenv, fetchurl, libogg, libvorbis}:
+{stdenv, fetchurl, libogg, libvorbis, tremor}:
 
 stdenv.mkDerivation {
-  name = "libtheora-1.0";
+  name = "libtheora-1.1.1";
   src = fetchurl {
-    url = http://downloads.xiph.org/releases/theora/libtheora-1.0.tar.gz;
-    sha256 = "0j5hv0pfsiwa2qq5d647py4g7ixnax1v47xc3aj5sa9v2iknib6m";
+    url = http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz;
+    sha256 = "0swiaj8987n995rc7hw0asvpwhhzpjiws8kr3s6r44bqqib2k5a0";
   };
+
   propagatedBuildInputs = [libogg libvorbis];
+
+  crossAttrs = {
+    propagatedBuildInputs = [libogg.hostDrv tremor.hostDrv];
+    configureFlags = "--disable-examples";
+  };
 }
diff --git a/pkgs/development/libraries/libtiger/default.nix b/pkgs/development/libraries/libtiger/default.nix
new file mode 100644
index 000000000000..5461421769ba
--- /dev/null
+++ b/pkgs/development/libraries/libtiger/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, libkate, pango, cairo, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "libtiger-0.3.4";
+
+  src = fetchurl {
+    url = "http://libtiger.googlecode.com/files/${name}.tar.gz";
+    sha256 = "0rj1bmr9kngrgbxrjbn4f4f9pww0wmf6viflinq7ava7zdav4hkk";
+  };
+
+  buildInputs = [ libkate pango cairo pkgconfig ];
+
+  meta = {
+    homepage = http://code.google.com/p/libtiger/;
+    authors = [ "Vincent Penquerc'h" ];
+    description = "A rendering library for Kate streams using Pango and Cairo";
+  };
+}
diff --git a/pkgs/development/libraries/libunistring/default.nix b/pkgs/development/libraries/libunistring/default.nix
index c7e76447e3fd..9bc3cb7f9012 100644
--- a/pkgs/development/libraries/libunistring/default.nix
+++ b/pkgs/development/libraries/libunistring/default.nix
@@ -9,7 +9,10 @@ stdenv.mkDerivation (rec {
   };
 
   propagatedBuildInputs =
-    stdenv.lib.optional (! (stdenv ? glibc)) libiconv;
+    stdenv.lib.optional ((! (stdenv ? glibc))
+                         || (stdenv ? cross &&
+                             stdenv.cross.config == "i686-pc-mingw32"))
+     libiconv;
 
   # XXX: There are test failures on non-GNU systems, see
   # http://lists.gnu.org/archive/html/bug-libunistring/2010-02/msg00004.html .
@@ -55,4 +58,11 @@ stdenv.mkDerivation (rec {
 # can't find the dll, it will only create a static library.
 (if (stdenv ? glibc)
  then {}
- else { configureFlags = "--with-libiconv-prefix=${libiconv}"; }))
+ else { configureFlags = "--with-libiconv-prefix=${libiconv}"; })
+
+//
+
+# Don't run the native `strip' when cross-compiling.
+(if (stdenv ? cross)
+ then { dontStrip = true; }
+ else { }))
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
new file mode 100644
index 000000000000..9b2eb19bab4d
--- /dev/null
+++ b/pkgs/development/libraries/libva/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, autoconf, automake, libtool, libX11, pkgconfig, libXext, mesa, libdrm, libXfixes, intelgen4asm }:
+
+stdenv.mkDerivation rec {
+  name = "libva-1.0.12";
+  
+  src = fetchurl {
+    url = "http://cgit.freedesktop.org/libva/snapshot/${name}.tar.bz2";
+    sha256 = "1xg8zvmh75w63sc8ykagzrbzswph6g9jardy8v83glkqzilaw2p8";
+  };
+
+  buildInputs = [ autoconf automake libtool libX11 libXext pkgconfig mesa libdrm
+    libXfixes intelgen4asm ];
+
+  configureFlags = [ "--enable-i965-driver" "--enable-glx" ];
+
+  preConfigure = "sh autogen.sh";
+
+  meta = {
+    homepage = http://www.freedesktop.org/wiki/Software/vaapi;
+    license = "MIT";
+    description = "VAAPI library: Video Acceleration API";
+  };
+}
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 7199e61d6bc0..451c2f28a8fc 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -1,25 +1,43 @@
-{ stdenv, fetchurl, libxml2, gnutls, devicemapper, perl, python }:
+{ stdenv, fetchurl, pkgconfig, libxml2, gnutls, devicemapper, perl, python
+, iproute, iptables, readline, lvm2, utillinux, udev, libpciaccess, gettext 
+, libtasn1, ebtables, libgcrypt
+}:
 
-let version = "0.8.3"; in
+let version = "0.9.2"; in
 
 stdenv.mkDerivation {
   name = "libvirt-${version}";
 
   src = fetchurl {
     url = "http://libvirt.org/sources/libvirt-${version}.tar.gz";
-    sha256 = "07vsk4g1nxvxc8yr6cdvwp9kvwgm2g7lh6aaggfkxb2775n87q9m";
+    sha256 = "0f4z85whrjfjjfd9rmpn57sib42sh599g0cjvq2bdbrbafx1z1cs";
   };
 
-  buildInputs = [ libxml2 gnutls devicemapper perl python ];
+  buildInputs =
+    [ pkgconfig libxml2 gnutls devicemapper perl python readline lvm2
+      utillinux udev libpciaccess gettext libtasn1 libgcrypt
+    ];
+
+  preConfigure =
+    ''
+      PATH=${iproute}/sbin:${iptables}/sbin:${ebtables}/sbin:${lvm2}/sbin:${udev}/sbin:$PATH
+      patchShebangs . # fixes /usr/bin/python references
+    '';
+
+  configureFlags = "--localstatedir=/var --sysconfdir=/etc --with-init-script=redhat";
+
+  installFlags = "localstatedir=$(TMPDIR)/var sysconfdir=$(out)/etc";
+
+  postInstall =
+    ''
+      substituteInPlace $out/etc/rc.d/init.d/libvirt-guests \
+        --replace "$out/bin" "${gettext}/bin"
+    '';
 
-  # xen currently disabled in nixpkgs
-  configureFlags = ''                                                  
-    --without-xen
-  '';
-  
   meta = {
     homepage = http://libvirt.org/;
-    description = "A toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes).";
+    description = "A toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes)";
     license = "LGPLv2+";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libvorbis/default.nix b/pkgs/development/libraries/libvorbis/default.nix
index a2e3e4db6479..d5f91c182605 100644
--- a/pkgs/development/libraries/libvorbis/default.nix
+++ b/pkgs/development/libraries/libvorbis/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libogg }:
 
 stdenv.mkDerivation rec {
-  name = "libvorbis-1.3.1";
+  name = "libvorbis-1.3.2";
   
   src = fetchurl {
     url = "http://downloads.xiph.org/releases/vorbis/${name}.tar.bz2";
-    sha256 = "1q6gah9g6w5gxjq95x1x81a4w76p3caivq1bw4hxs0z9rx05qj22";
+    sha256 = "159khaa9j0pd4fm554m1igzmrhsa3qbh4n8avihfinwym05vc14z";
   };
 
   propagatedBuildInputs = [ libogg ];
diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix
index e6c8149edc09..2bbd4d89c3be 100644
--- a/pkgs/development/libraries/libvpx/default.nix
+++ b/pkgs/development/libraries/libvpx/default.nix
@@ -1,11 +1,11 @@
-{stdenv, fetchurl, bash, yasm}:
+{stdenv, fetchurl, bash, yasm, which}:
 
 stdenv.mkDerivation rec {
-  name = "libvpx-0.9.1";
+  name = "libvpx-0.9.6";
   
   src = fetchurl {
-    url = http://webm.googlecode.com/files/libvpx-0.9.1.tar.bz2;
-    sha256 = "0ngc8y12np2q6yhrrn6cbmlbzwbk10fnldj8d5dxxzvrw1iy9s64";
+    url = http://webm.googlecode.com/files/libvpx-v0.9.6.tar.bz2;
+    sha256 = "0wxay9wss4lawrcmnwqkpy0rdnaih1k7ilzh284mgyqnya78mg98";
   };
 
   patchPhase = ''
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     make quiet=false DIST_DIR=$out install
   '';
 
-  buildInputs = [ yasm ];
+  buildInputs = [ yasm which ];
 
   meta = {
     description = "VP8 video encoder";
diff --git a/pkgs/development/libraries/libx86/default.nix b/pkgs/development/libraries/libx86/default.nix
index 1ad967c25a26..09cc623cbb19 100644
--- a/pkgs/development/libraries/libx86/default.nix
+++ b/pkgs/development/libraries/libx86/default.nix
@@ -13,9 +13,13 @@ rec {
 
   phaseNames = ["doPatch" "fixX86Def" "killUsr" "doMakeInstall"];
   patches = [./constants.patch];
+
+  # using BACKEND=x86emu on 64bit systems fixes:
+  #  http://www.mail-archive.com/suspend-devel@lists.sourceforge.net/msg02355.html
   makeFlags = [
     "DESTDIR=$out"
-    ];
+  ] ++ a.stdenv.lib.optionals ( a.stdenv.system == "x86_64-linux" ) [ "BACKEND=x86emu" ]; 
+
   fixX86Def = a.fullDepEntry (''
     sed -i lrmi.c -e 's@defined(__i386__)@(defined(__i386__) || defined(__x86_64__))@'
   '') ["doUnpack" "minInit"];
diff --git a/pkgs/development/libraries/libxklavier/default.nix b/pkgs/development/libraries/libxklavier/default.nix
index e8c3775a94bb..419f9a497c08 100644
--- a/pkgs/development/libraries/libxklavier/default.nix
+++ b/pkgs/development/libraries/libxklavier/default.nix
@@ -2,18 +2,18 @@
 , libICE, glib, libxkbfile, isocodes }:
 
 stdenv.mkDerivation rec {
-  name = "libxklavier-4.0";
+  name = "libxklavier-5.0";
 
   src = fetchurl {
     url = "mirror://sf/gswitchit/${name}.tar.bz2";
-    sha256 = "210ed5803109a8cef3b2ab1195bc73fe3385a97a8749d01673e020642d8e5a71";
+    sha256 = "1c2dxinjfpq1lzxi0z46r0j80crbmwb0lkvnh6987cjjlwblpnfz";
   };
 
   # TODO: enable xmodmap support, needs xmodmap DB
   propagatedBuildInputs = [ libX11 libXi xkeyboard_config libxml2 libICE glib libxkbfile isocodes ];
-  
-  buildInputs = [ pkgconfig ];
-  
+
+  buildNativeInputs = [ pkgconfig ];
+
   configureFlags = ''
     --with-xkb-base=${xkeyboard_config}/etc/X11/xkb
     --disable-xmodmap-support
diff --git a/pkgs/development/libraries/libxmi/default.nix b/pkgs/development/libraries/libxmi/default.nix
index 7d3894e22229..ececdabb56ce 100644
--- a/pkgs/development/libraries/libxmi/default.nix
+++ b/pkgs/development/libraries/libxmi/default.nix
@@ -1,19 +1,21 @@
-{stdenv, fetchurl, libtool}:
+{ stdenv, fetchurl, libtool }:
 
 stdenv.mkDerivation {
   name = "libxmi-1.2";
-  
+
   src = fetchurl {
     url = mirror://gnu/libxmi/libxmi-1.2.tar.gz;
     sha256 = "03d4ikh29l38rl1wavb0icw7m5pp7yilnv7bb2k8qij1dinsymlx";
   };
 
-  # For the x86_64 linux arch to be recognized by 'configure'
+  # For the x86_64 GNU/Linux arch to be recognized by 'configure'
   preConfigure = "cp ${libtool}/share/libtool/config/config.sub .";
-  
+
   meta = {
-    description = "Library for rasterizing 2-D vector graphics";
+    description = "GNU libxmi, a library for rasterizing 2-D vector graphics";
     homepage = http://www.gnu.org/software/libxmi/;
-    license = "GPLv2";
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/development/libraries/libzrtpcpp/1.6.nix b/pkgs/development/libraries/libzrtpcpp/1.6.nix
new file mode 100644
index 000000000000..767314cdcae9
--- /dev/null
+++ b/pkgs/development/libraries/libzrtpcpp/1.6.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, commoncpp2, openssl, pkgconfig, ccrtp }:
+
+stdenv.mkDerivation rec {
+  name = "libzrtpcpp-1.6.0";
+
+  src = fetchurl {
+    url = "mirror://gnu/ccrtp/${name}.tar.gz";
+    sha256 = "17aayr4f27rp4fvminxn6jx7kq56kkk341l7ypqb9h0k6kns27kb";
+  };
+
+  buildInputs = [ commoncpp2 openssl pkgconfig ccrtp ];
+
+  meta = { 
+    description = "GNU RTP stack for the zrtp protocol developed by Phil Zimmermann";
+    homepage = "http://www.gnutelephony.org/index.php/GNU_ZRTP";
+    license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libzrtpcpp/default.nix b/pkgs/development/libraries/libzrtpcpp/default.nix
index 1754539a5f17..9e569eea580b 100644
--- a/pkgs/development/libraries/libzrtpcpp/default.nix
+++ b/pkgs/development/libraries/libzrtpcpp/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, commoncpp2, openssl, pkgconfig, ccrtp }:
+{ stdenv, fetchurl, cmake, ucommon, openssl, pkgconfig, ccrtp }:
 
 stdenv.mkDerivation rec {
-  name = "libzrtpcpp-1.4.1";
+  name = "libzrtpcpp-2.0.0";
 
   src = fetchurl {
     url = "mirror://gnu/ccrtp/${name}.tar.gz";
-    sha256 = "0gj5xiv15xnxdbppa06fy02j8jg0zm1capva4nhbpgzg08n7p8y0";
+    sha256 = "05yw8n5xpj0jxkvzgsvn3xkxirpypc1japy9k1jqs9301fgb1a3i";
   };
 
-  buildInputs = [ commoncpp2 openssl pkgconfig ccrtp ];
+  buildInputs = [ cmake ucommon openssl pkgconfig ccrtp ];
 
   meta = { 
     description = "GNU RTP stack for the zrtp protocol developed by Phil Zimmermann";
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index 2b4a6a35f832..bef82e5085cc 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -1,23 +1,21 @@
-{ stdenv, fetchurl, autoconf, automake, libtool
-, pkgconfig, alsaLib, ffmpeg, speex, ortp }:
+{ stdenv, fetchurl, pkgconfig, alsaLib, ffmpeg, speex, ortp, pulseaudio, xorg,
+  libv4l, libtheora }:
 
 stdenv.mkDerivation rec {
-  name = "mediastreamer2-2.2.0-cvs20080207";
+  name = "mediastreamer-2.7.2";
 
-# This url is not related to mediastreamer. fetchcvs doesn't work on my laptop,
-# so I've created cvs snapshot and put it to my server.
   src = fetchurl {
-    url = "http://www.loegria.net/misc/" + name + ".tar.bz2";
-    sha256 = "1nmvyqh4x3nsw4qbj754jwagj9ia183kvp8valdr7m44my0sw5p1";
+    url = "mirror://savannah/linphone/mediastreamer/${name}.tar.gz";
+    sha256 = "1w5j5shzd5f7q3l2gm4cl82f3vnrdzp78lcyjbjb416c4vzw2nr2";
   };
 
-  buildInputs = [automake libtool autoconf pkgconfig];
+# TODO: make it load plugins from *_PLUGIN_PATH
+  buildNativeInputs = [pkgconfig];
 
-  propagatedBuildInputs = [alsaLib ffmpeg speex ortp];
+  propagatedBuildInputs = [alsaLib ffmpeg speex ortp pulseaudio xorg.libX11
+    xorg.libXv xorg.libXext libv4l libtheora];
 
-  preConfigure = "./autogen.sh";
-
-  patches = [ ./h264.patch ./plugins.patch ];
+#patches = [ ./h264.patch ./plugins.patch ];
 
   configureFlags = "--enable-external-ortp";
 }
diff --git a/pkgs/development/libraries/mediastreamer/h264.patch b/pkgs/development/libraries/mediastreamer/h264.patch
deleted file mode 100644
index 0c6dc9e91092..000000000000
--- a/pkgs/development/libraries/mediastreamer/h264.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/tests/mediastream.c b/tests/mediastream.c
-index 12e1605..cdc8cd1 100644
---- a/tests/mediastream.c
-+++ b/tests/mediastream.c
-@@ -144,7 +144,6 @@ int main(int argc, char * argv[])
- 	rtp_profile_set_payload(&av_profile,97,&payload_type_theora);
- 	rtp_profile_set_payload(&av_profile,99,&payload_type_mp4v);
- 	rtp_profile_set_payload(&av_profile,100,&payload_type_x_snow);
--	rtp_profile_set_payload(&av_profile,102,&payload_type_h264);
- #endif
- 	if (argc<4) {
- 		printf(usage);
diff --git a/pkgs/development/libraries/mediastreamer/plugins.patch b/pkgs/development/libraries/mediastreamer/plugins.patch
deleted file mode 100644
index e82b85035f08..000000000000
--- a/pkgs/development/libraries/mediastreamer/plugins.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff --git a/src/mscommon.c b/src/mscommon.c
-index 1a12b2f..2399444 100644
---- a/src/mscommon.c
-+++ b/src/mscommon.c
-@@ -428,6 +428,7 @@ static MSSndCardDesc * ms_snd_card_descs[]={
- void ms_init(){
- 	int i;
- 	MSSndCardManager *cm;
-+	char *ms_plugin_path;
- 
- #ifdef __APPLE__
- 	NSApplicationLoad();
-@@ -451,7 +452,35 @@ void ms_init(){
- 	}
- 
- 	ms_message("Loading plugins");
--	ms_load_plugins(PACKAGE_PLUGINS_DIR);
-+	ms_plugin_path = getenv("MS_PLUGIN_PATH");
-+	do
-+		{
-+			if (!ms_plugin_path)
-+				{
-+					ms_load_plugins(PACKAGE_PLUGINS_DIR);
-+					break;
-+				}
-+			char *dup_plugins_path = strdup (ms_plugin_path);
-+			char *cur_plugins_dir = dup_plugins_path;
-+			if (!dup_plugins_path)
-+				{
-+					ms_message("Failed to duplicate plugins path, not loading plugins");
-+					break;
-+				}
-+			while (1)
-+				{
-+					char *next_delimiter = strchr(cur_plugins_dir, ":");
-+					if (next_delimiter)
-+						next_delimiter[0] = '\0';
-+					ms_load_plugins(cur_plugins_dir);
-+					if (!next_delimiter)
-+						break;
-+					cur_plugins_dir = next_delimiter + 1;
-+				}
-+			free(dup_plugins_path);
-+		}
-+	while (0);
-+
- 	ms_message("ms_init() done");
- }
- 
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 9b449be13359..6a1de4d95e4a 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -1,34 +1,48 @@
-{ stdenv, fetchurl, pkgconfig, x11, xlibs, libdrm, expat, lipo ? null }:
+{ stdenv, fetchurl, flex, bison, pkgconfig, x11, xlibs, libdrm, file, expat
+, python, libxml2Python, lipo ? null }:
 
 if ! stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms then
   throw "unsupported platform for Mesa"
 else
 
+let version = "7.10.3"; in
+
 stdenv.mkDerivation {
-  name = "mesa-7.8.2";
+  name = "mesa-${version}";
 
   src = fetchurl {
-    url = ftp://ftp.freedesktop.org/pub/mesa/7.8.2/MesaLib-7.8.2.tar.bz2;
-    md5 = "6be2d343a0089bfd395ce02aaf8adb57";
+    url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
+    sha256 = "1h451vgsfsp0h0wig66spqgxmjalsy28gvd9viynfwmq7741yw0y";
   };
 
+  patches = [ ./swrast-settexbuffer.patch ];
+
+  postPatch = ''
+    find . -name "*.py" -exec sed -i -e "s|#! */usr/bin/env python|#! ${python}/bin/python|" {} +
+  '';
+
   configureFlags =
-    "--disable-gallium"
-    + (if stdenv.system == "mips64-linux" then
-      " --with-dri-drivers=swrast --with-driver=dri" else "")
-    + (if stdenv.isDarwin then " --disable-egl" else "");
+      " --with-driver=dri --enable-gl-osmesa --enable-gles1"
+    + " --enable-gallium --enable-gallium-r600 --enable-gles2"
+    + " --enable-gallium-swrast --enable-gallium-egl --disable-glx-tls"
+    + " --enable-xcb --enable-egl --disable-glut";
 
   buildInputs =
-    [ pkgconfig expat x11 libdrm xlibs.glproto
+    [ pkgconfig expat x11 libdrm xlibs.makedepend xlibs.glproto
       xlibs.libXxf86vm xlibs.libXfixes xlibs.libXdamage xlibs.dri2proto
-      lipo
+      lipo file python libxml2Python flex bison
     ];
 
+  enableParallelBuilding = true;
+
   passthru = { inherit libdrm; };
 
   meta = {
     description = "An open source implementation of OpenGL";
     homepage = http://www.mesa3d.org/;
     license = "bsd";
+
+    platforms = stdenv.lib.platforms.mesaPlatforms;
+    maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/development/libraries/mesa/swrast-settexbuffer.patch b/pkgs/development/libraries/mesa/swrast-settexbuffer.patch
new file mode 100644
index 000000000000..c74daa3aef12
--- /dev/null
+++ b/pkgs/development/libraries/mesa/swrast-settexbuffer.patch
@@ -0,0 +1,24 @@
+https://build.opensuse.org/package/view_file?file=0001-Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch&package=Mesa&project=openSUSE%3AFactory&srcmd5=be25d34ad69853c2bb21ed376061d573
+
+diff -ru Mesa-7.10.1-orig//src/mesa/drivers/dri/swrast/swrast.c Mesa-7.10.1//src/mesa/drivers/dri/swrast/swrast.c
+--- Mesa-7.10.1-orig//src/mesa/drivers/dri/swrast/swrast.c	2010-12-14 22:43:15.000000000 +0100
++++ Mesa-7.10.1//src/mesa/drivers/dri/swrast/swrast.c	2011-03-07 18:08:17.062816112 +0100
+@@ -61,6 +61,7 @@
+ static void swrastSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
+ 				GLint texture_format, __DRIdrawable *dPriv)
+ {
++    GET_CURRENT_CONTEXT(ctx);
+     struct dri_context *dri_ctx;
+     int x, y, w, h;
+     __DRIscreen *sPriv = dPriv->driScreenPriv;
+@@ -90,6 +91,10 @@
+     _mesa_init_teximage_fields(&dri_ctx->Base, target, texImage,
+ 			       w, h, 1, 0, internalFormat, texFormat);
+ 
++    ctx->Driver.TexImage2D(ctx, target, 0, internalFormat,
++              w, h, 0, texture_format, GL_UNSIGNED_INT_8_8_8_8,
++              NULL, &ctx->Unpack, texObj, texImage);
++
+     sPriv->swrast_loader->getImage(dPriv, x, y, w, h, (char *)texImage->Data,
+ 				   dPriv->loaderPrivate);
+ 
diff --git a/pkgs/development/libraries/minixml/default.nix b/pkgs/development/libraries/minixml/default.nix
new file mode 100644
index 000000000000..33b713239c85
--- /dev/null
+++ b/pkgs/development/libraries/minixml/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation  rec {
+  name = "mxml-${version}";
+  version = "2.6";
+
+  src = fetchurl {
+    url = "http://ftp.easysw.com/pub/mxml/${version}/${name}.tar.gz";
+    sha256 = "15cpqr43cwvy1ms67rfav8l9fjgybkaqfq7nhag8qnhd3bd4glxh";
+  };
+
+  meta = with stdenv.lib; {
+    description = "a small XML library";
+    homepage = http://www.minixml.org;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/development/libraries/mlt/default.nix b/pkgs/development/libraries/mlt/default.nix
index 33b5918d1ca0..13f0a69950c2 100644
--- a/pkgs/development/libraries/mlt/default.nix
+++ b/pkgs/development/libraries/mlt/default.nix
@@ -2,11 +2,11 @@
 libvorbis, sox}:
 
 stdenv.mkDerivation {
-  name = "mlt-0.5.10";
+  name = "mlt-0.7.4";
 
   src = fetchurl {
-    url = mirror://sourceforge/mlt/mlt-0.5.10.tar.gz;
-    sha256 = "17nil3snm6qgcyld852ys0kqm61cx94zb3bvjdqgci6z1ia3crhh";
+    url = mirror://sourceforge/mlt/mlt-0.7.4.tar.gz;
+    sha256 = "1xcrrd3xbz9hmahgl7xf610cm97chwpxwgcajkd10mpcxbqs08i0";
   };
 
   buildInputs = [ qt SDL ffmpeg libdv libxml2 libsamplerate libvorbis sox ];
diff --git a/pkgs/development/libraries/mp4v2/default.nix b/pkgs/development/libraries/mp4v2/default.nix
index d681713f516a..7b0dd9382115 100644
--- a/pkgs/development/libraries/mp4v2/default.nix
+++ b/pkgs/development/libraries/mp4v2/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, fetchurl, help2man }:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "mp4v2-1.9.1";
 
-  buildInputs = [ help2man ];
   src = fetchurl {
     url = "http://mp4v2.googlecode.com/files/${name}.tar.bz2";
     sha256 = "1d73qbi0faqad3bpmjfr4kk0mfmqpl1f43ysrx4gq9i3mfp1qf2w";
   };
 
+  # `faac' expects `mp4.h'.
+  postInstall = "ln -s mp4v2/mp4v2.h $out/include/mp4.h";
+
   meta = {
     homepage = http://code.google.com/p/mp4v2;
     maintainers = [ stdenv.lib.maintainers.urkud ];
diff --git a/pkgs/development/libraries/mpc/default.nix b/pkgs/development/libraries/mpc/default.nix
index c66c99cc576e..88c18565b78c 100644
--- a/pkgs/development/libraries/mpc/default.nix
+++ b/pkgs/development/libraries/mpc/default.nix
@@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "MPC, a library for multiprecision complex arithmetic with exact rounding";
+    description = "GNU MPC, a library for multiprecision complex arithmetic with exact rounding";
 
     longDescription =
-      '' MPC is a C library for the arithmetic of complex numbers with
+      '' GNU MPC is a C library for the arithmetic of complex numbers with
          arbitrarily high precision and correct rounding of the result.  It is
          built upon and follows the same principles as GNU MPFR.
       '';
diff --git a/pkgs/development/libraries/mpeg2dec/default.nix b/pkgs/development/libraries/mpeg2dec/default.nix
deleted file mode 100644
index 8b29deba56f9..000000000000
--- a/pkgs/development/libraries/mpeg2dec/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "mpeg2dec-0.4.1";
-  
-  src = fetchurl {
-    url = http://libmpeg2.sourceforge.net/files/mpeg2dec-0.4.1.tar.gz;
-    sha256 = "1vny7rg0p2rmic71hli2l2612i5yaw8vy0wsnm5nvhwfiw37cjn7";
-  };
-
-  configureFlags = "--enable-shared --disable-static";
-
-  meta = {
-    homepage = http://libmpeg2.sourceforge.net/;
-    description = "A free library for decoding mpeg-2 and mpeg-1 video streams";
-  };
-}
diff --git a/pkgs/development/libraries/mpich2/default.nix b/pkgs/development/libraries/mpich2/default.nix
index 9e0920eb1c42..967abe500e26 100644
--- a/pkgs/development/libraries/mpich2/default.nix
+++ b/pkgs/development/libraries/mpich2/default.nix
@@ -1,15 +1,18 @@
-{ stdenv, fetchurl, python, perl }:
+{ stdenv, fetchurl, python, perl, gfortran }:
 
-let version = "1.2.1"; in
+let version = "1.4"; in
 stdenv.mkDerivation {
   name = "mpich2-${version}";
 
   src = fetchurl {
     url = "http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/${version}/mpich2-${version}.tar.gz";
-    sha256 = "1h91hygal4h33yci7sw76hibf803r9c0mx7kfgmc06h27xa3cirr";
+    sha256 = "0bvvk4n9g4rmrncrgs9jnkcfh142i65wli5qp1akn9kwab1q80z6";
   };
 
-  buildInputs = [ python perl ];
+  configureFlags = "--enable-shared --enable-sharedlib";
+
+  buildInputs = [ python perl gfortran ];
+  propagatedBuildInputs = stdenv.lib.optional (stdenv ? glibc) [ stdenv.glibc ];
 
   patchPhase =
     '' for i in $(find -type f -not -name Makefile.\*)
diff --git a/pkgs/development/libraries/msilbc/default.nix b/pkgs/development/libraries/msilbc/default.nix
index 2978f0808c18..5f19fe2d1b25 100644
--- a/pkgs/development/libraries/msilbc/default.nix
+++ b/pkgs/development/libraries/msilbc/default.nix
@@ -1,27 +1,17 @@
 { stdenv, fetchurl, ilbc, mediastreamer, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "msilbc-2.0.0";
+  name = "msilbc-2.0.3";
   
   src = fetchurl {
-    url = "http://download.savannah.gnu.org/releases/linphone/plugins/sources/${name}.tar.gz";
-    sha256 = "0ifydb7qmpync56l4hbrp36n5wrb7gadb76isp643s6wsg7l743j";
+    url = "mirror://savannah/linphone/plugins/sources/${name}.tar.gz";
+    sha256 = "125yadpc0w1q84839dadin3ahs0gxxfas0zmc4c18mjmf58dmm7d";
   };
 
-  patchPhase = "sed -i /MS_FILTER_SET_FMTP/d ilbc.c";
+#  patchPhase = "sed -i /MS_FILTER_SET_FMTP/d ilbc.c";
 
   propagatedBuildInputs = [ilbc mediastreamer];
-  
-  buildInputs = [pkgconfig];
 
-  buildPhase = ''
-    cc -fPIC -c -pthread -o ilbc.o ilbc.c `pkg-config --cflags mediastreamer`
-    echo "next"
-    cc `pkg-config --libs mediastreamer` -shared -pthread -o libilbc.so
-  '';
-
-  installPhase = ''
-    ensureDir $out/lib/mediastreamer/plugins
-    cp libilbc.so $out/lib/mediastreamer/plugins
-  '';
+  buildInputs = [pkgconfig];
+  configureFlags = "ILBC_LIBS=ilbc ILBC_CFLAGS=-I${ilbc}/include";
 }
diff --git a/pkgs/development/libraries/mtdev/default.nix b/pkgs/development/libraries/mtdev/default.nix
new file mode 100644
index 000000000000..b8ecdb239c17
--- /dev/null
+++ b/pkgs/development/libraries/mtdev/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "mtdev-1.1.0";
+
+  src = fetchurl {
+    url = "http://bitmath.org/code/mtdev/mtdev-1.1.0.tar.bz2";
+    sha256 = "0l5a6vr5r5yx3g86nvj699xlpd5bg5rfzpgjvn46flq4x9r9zpac";
+  };
+
+  meta = {
+    homepage = http://bitmath.org/code/mtdev/;
+
+    description = "Multitouch Protocol Translation Library";
+
+    longDescription = ''
+      The mtdev is a stand-alone library which transforms all variants of
+      kernel MT events to the slotted type B protocol. The events put into
+      mtdev may be from any MT device, specifically type A without contact
+      tracking, type A with contact tracking, or type B with contact tracking.
+      See the kernel documentation for further details. 
+    '';
+
+    license = "MIT/X11";
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
+
diff --git a/pkgs/development/libraries/mygui/default.nix b/pkgs/development/libraries/mygui/default.nix
new file mode 100644
index 000000000000..f692c14a6df1
--- /dev/null
+++ b/pkgs/development/libraries/mygui/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, unzip, ogre, cmake, ois, freetype, libuuid, boost}:
+
+stdenv.mkDerivation rec {
+  name = "mygui-3.0.1";
+  
+  src = fetchurl {
+    url = mirror://sourceforge/my-gui/MyGUI_3.0.1_source.zip;
+    sha256 = "1n56kl8ykzgv4k2nm9317jg9b9x2qa3l9hamz11hzn1qqjn2z4ig";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ unzip ogre cmake ois freetype libuuid boost ];
+
+  meta = {
+    homepage = http://mygui.info/;
+    description = "Library for creating GUIs for games and 3D applications";
+    license = "LGPLv3+";
+  };
+}
diff --git a/pkgs/development/libraries/mygui/svn.nix b/pkgs/development/libraries/mygui/svn.nix
new file mode 100644
index 000000000000..cc20550802ed
--- /dev/null
+++ b/pkgs/development/libraries/mygui/svn.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchsvn, unzip, ogre, cmake, ois, freetype, libuuid, boost}:
+
+stdenv.mkDerivation rec {
+  name = "mygui-svn-4141";
+  
+  src = fetchsvn {
+    url = https://my-gui.svn.sourceforge.net/svnroot/my-gui/trunk;
+    rev = 4141;
+    sha256 = "0xfm4b16ksqd1cwq45kl01wi4pmj244dpn11xln8ns7wz0sffjwn";
+  };
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = [
+    "-DOGRE_LIB_DIR=${ogre}/lib"
+    "-DOGRE_INCLUDE_DIR=${ogre}/include/OGRE"
+    "-DOGRE_LIBRARIES=OgreMain"
+  ];
+
+  buildInputs = [ unzip ogre cmake ois freetype libuuid boost ];
+
+  meta = {
+    homepage = http://mygui.info/;
+    description = "Library for creating GUIs for games and 3D applications";
+    license = "LGPLv3+";
+  };
+}
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 67c3bc5fe93f..6e15dca01f33 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -1,20 +1,30 @@
 {stdenv, fetchurl, unicode ? true}:
 
-stdenv.mkDerivation ( rec {
+let
+  /* C++ bindings fail to build on `i386-pc-solaris2.11' with GCC 3.4.3:
+     <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6395191>.
+     It seems that it could be worked around by #including <wchar.h> in the
+     right place, according to
+     <http://mail.python.org/pipermail/python-bugs-list/2006-September/035362.html>,
+     but this is left as an exercise to the reader.
+     So disable them for now.  */
+  cxx = stdenv.system != "i386-sunos";
+in
+stdenv.mkDerivation (rec {
   name = "ncurses-5.7";
-  
+
   src = fetchurl {
     url = "mirror://gnu/ncurses/${name}.tar.gz";
     sha256 = "1x4q6kma6zgg438llbgiac3kik7j2lln9v97jdffv3fyqyjxx6qa";
   };
 
-  crossAttrs = { 
+  crossAttrs = {
     patches = [ ./wint_t.patch ];
   };
-  
+
   configureFlags = ''
     --with-shared --includedir=''${out}/include --without-debug
-    ${if unicode then "--enable-widec" else ""}
+    ${if unicode then "--enable-widec" else ""}${if cxx then "" else "--without-cxx-binding"}
   '';
 
   selfBuildNativeInput = true;
@@ -27,7 +37,7 @@ stdenv.mkDerivation ( rec {
   # compatibility links from the the "normal" libraries to the
   # wide-character libraries (e.g. libncurses.so to libncursesw.so).
   postInstall = if unicode then ''
-    chmod 644 $out/lib/libncurses++w.a
+    ${if cxx then "chmod 644 $out/lib/libncurses++w.a" else ""}
     for lib in curses ncurses form panel menu; do
       if test -e $out/lib/lib''${lib}w.a; then
         rm -f $out/lib/lib$lib.so
@@ -58,5 +68,8 @@ stdenv.mkDerivation ( rec {
     homepage = http://www.gnu.org/software/ncurses/;
 
     license = "X11";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.all;
   };
 } // ( if stdenv.isDarwin then { postFixup = "rm $out/lib/*.so"; } else { } ) )
diff --git a/pkgs/development/libraries/nettle/default.nix b/pkgs/development/libraries/nettle/default.nix
index 4f0c47317233..80b9a858712f 100644
--- a/pkgs/development/libraries/nettle/default.nix
+++ b/pkgs/development/libraries/nettle/default.nix
@@ -1,15 +1,16 @@
 { fetchurl, stdenv, gmp, gnum4 }:
 
 stdenv.mkDerivation rec {
-  name = "nettle-2.1";
+  name = "nettle-2.2";
 
   src = fetchurl {
     # Eventually use `mirror://gnu/'.
     url = "ftp://ftp.lysator.liu.se/pub/security/lsh/${name}.tar.gz";
-    sha256 = "0knp778738dpgbcj1yz54a7jsvmarfiafzl05z086bc470z6plmp";
+    sha256 = "1kdl842x1x4wk80bi0k1d2ci8hqsmgjdb5zvrlmyakb8pfhw3gl2";
   };
 
-  buildInputs = [ gmp gnum4 ];
+  buildInputs = [ gnum4 ];
+  propagatedBuildInputs = [ gmp ];
 
   doCheck = (stdenv.system != "i686-cygwin");
 
diff --git a/pkgs/development/libraries/nlopt/default.nix b/pkgs/development/libraries/nlopt/default.nix
new file mode 100644
index 000000000000..0936332cd489
--- /dev/null
+++ b/pkgs/development/libraries/nlopt/default.nix
@@ -0,0 +1,12 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "nlopt-2.2.1";
+
+  src = fetchurl {
+    url = "http://ab-initio.mit.edu/nlopt/${name}.tar.gz";
+    sha256 = "0p7ri7dcp6vga7jwng7wj9bf2ixk6p5ldxp76r93xkrdixqfngaq";
+  };
+
+  configureFlags = "--with-cxx --with-pic --without-guile --without-python --without-octave --without-matlab";
+}
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index d835ee56b75d..2509f26b5cbe 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 
-let version = "4.8.6"; in
+let version = "4.8.8"; in
 
 stdenv.mkDerivation {
   name = "nspr-${version}";
 
   src = fetchurl {
     url = "http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
-    sha256 = "0vcz39784bw42kv9f81dnfb9ciga66l4yg223j467yin2nq0n16r";
+    sha256 = "1jfl97hbb88lpyvhcv6q8zrqyw9wri2m838qdhwkwcgfsbgg9wwj";
   };
 
   preConfigure = "cd mozilla/nsprpub";
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index e79beb49f32c..f4ed2381010a 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -10,18 +10,25 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "nss-3.12.7";
+  name = "nss-3.12.8";
   
   src = fetchurl {
-    url = http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_12_7_RTM/src/nss-3.12.7.tar.gz;
-    sha256 = "0x5h0r5hn4qzafxakhvqyw1r8r0zy09b7b0kmdh3ff6v29v4bnzx";
+    url = http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_12_8_RTM/src/nss-3.12.8.tar.gz;
+    sha256 = "050c175l5zyzqxcp5fxj4q4n641c3j7w6w6fjg5hk3cyfhlwwy4i";
   };
 
   buildInputs = [nspr perl zlib];
 
+  patches = [ ./nss-3.12.5-gentoo-fixups.diff ];
+
   # Based on the build instructions at
   # http://www.mozilla.org/projects/security/pki/nss/nss-3.11.4/nss-3.11.4-build.html
   
+  postPatch = ''
+    sed -i -e "/^PREFIX =/s:= /usr:= $out:" \
+                "mozilla/security/nss/config/Makefile"
+  '';
+
   preConfigure = "cd mozilla/security/nss";
 
   BUILD_OPT = "1";
diff --git a/pkgs/development/libraries/nss/nss-3.12.5-gentoo-fixups.diff b/pkgs/development/libraries/nss/nss-3.12.5-gentoo-fixups.diff
new file mode 100644
index 000000000000..57fbb71ff784
--- /dev/null
+++ b/pkgs/development/libraries/nss/nss-3.12.5-gentoo-fixups.diff
@@ -0,0 +1,247 @@
+diff -urN nss-3.12.5-orig/mozilla/security/nss/config/Makefile nss-3.12.5/mozilla/security/nss/config/Makefile
+--- nss-3.12.5-orig/mozilla/security/nss/config/Makefile	1969-12-31 18:00:00.000000000 -0600
++++ nss-3.12.5/mozilla/security/nss/config/Makefile	2009-09-14 21:45:45.619639265 -0500
+@@ -0,0 +1,42 @@
++CORE_DEPTH = ../..
++DEPTH      = ../..
++
++include $(CORE_DEPTH)/coreconf/config.mk
++
++NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'`
++NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'`
++NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'`
++PREFIX = /usr
++
++all: export libs
++
++export:
++	# Create the nss.pc file
++	sed -e "s,@prefix@,$(PREFIX)," \
++	    -e "s,@exec_prefix@,\$${prefix}," \
++	    -e "s,@libdir@,\$${prefix}/lib," \
++	    -e "s,@includedir@,\$${prefix}/include/nss," \
++	    -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
++	    -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
++	    -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
++	    nss.pc.in > nss.pc
++	chmod 0644 nss.pc
++
++	# Create the nss-config script
++	mkdir -p $(DIST)/bin
++	sed -e "s,@prefix@,$(PREFIX)," \
++	    -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
++	    -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
++	    -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
++	    nss-config.in > nss-config
++	chmod 0755 nss-config
++	# ln -sf ../../../../security/nss/config/nss-config $(DIST)/bin
++
++libs:
++
++dummy: all export libs
++
++install:
++	mkdir -p $(DIST)/lib/pkgconfig
++	cp nss.pc $(DIST)/lib/pkgconfig
++
+diff -urN nss-3.12.5-orig/mozilla/security/nss/config/nss-config.in nss-3.12.5/mozilla/security/nss/config/nss-config.in
+--- nss-3.12.5-orig/mozilla/security/nss/config/nss-config.in	1969-12-31 18:00:00.000000000 -0600
++++ nss-3.12.5/mozilla/security/nss/config/nss-config.in	2009-09-14 21:47:45.190638078 -0500
+@@ -0,0 +1,145 @@
++#!/bin/sh
++
++prefix=@prefix@
++
++major_version=@NSS_MAJOR_VERSION@
++minor_version=@NSS_MINOR_VERSION@
++patch_version=@NSS_PATCH_VERSION@
++
++usage()
++{
++	cat <<EOF
++Usage: nss-config [OPTIONS] [LIBRARIES]
++Options:
++	[--prefix[=DIR]]
++	[--exec-prefix[=DIR]]
++	[--includedir[=DIR]]
++	[--libdir[=DIR]]
++	[--version]
++	[--libs]
++	[--cflags]
++Dynamic Libraries:
++	nss
++	ssl
++	smime
++	nssutil
++EOF
++	exit $1
++}
++
++if test $# -eq 0; then
++	usage 1 1>&2
++fi
++
++lib_ssl=yes
++lib_smime=yes
++lib_nss=yes
++lib_nssutil=yes
++
++while test $# -gt 0; do
++  case "$1" in
++  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
++  *) optarg= ;;
++  esac
++
++  case $1 in
++    --prefix=*)
++      prefix=$optarg
++      ;;
++    --prefix)
++      echo_prefix=yes
++      ;;
++    --exec-prefix=*)
++      exec_prefix=$optarg
++      ;;
++    --exec-prefix)
++      echo_exec_prefix=yes
++      ;;
++    --includedir=*)
++      includedir=$optarg
++      ;;
++    --includedir)
++      echo_includedir=yes
++      ;;
++    --libdir=*)
++      libdir=$optarg
++      ;;
++    --libdir)
++      echo_libdir=yes
++      ;;
++    --version)
++      echo ${major_version}.${minor_version}.${patch_version}
++      ;;
++    --cflags)
++      echo_cflags=yes
++      ;;
++    --libs)
++      echo_libs=yes
++      ;;
++    ssl)
++      lib_ssl=yes
++      ;;
++    smime)
++      lib_smime=yes
++      ;;
++    nss)
++      lib_nss=yes
++      ;;
++    nssutil)                                                      
++      lib_nssutil=yes                                             
++      ;;
++    *)
++      usage 1 1>&2
++      ;;
++  esac
++  shift
++done
++
++# Set variables that may be dependent upon other variables
++if test -z "$exec_prefix"; then
++    exec_prefix=`pkg-config --variable=exec_prefix nss`
++fi
++if test -z "$includedir"; then
++    includedir=`pkg-config --variable=includedir nss`
++fi
++if test -z "$libdir"; then
++    libdir=`pkg-config --variable=libdir nss`
++fi
++
++if test "$echo_prefix" = "yes"; then
++    echo $prefix
++fi
++
++if test "$echo_exec_prefix" = "yes"; then
++    echo $exec_prefix
++fi
++
++if test "$echo_includedir" = "yes"; then
++    echo $includedir
++fi
++
++if test "$echo_libdir" = "yes"; then
++    echo $libdir
++fi
++
++if test "$echo_cflags" = "yes"; then
++    echo -I$includedir
++fi
++
++if test "$echo_libs" = "yes"; then
++      libdirs="-Wl,-R$libdir -L$libdir"
++      if test -n "$lib_ssl"; then
++	libdirs="$libdirs -lssl${major_version}"
++      fi
++      if test -n "$lib_smime"; then
++	libdirs="$libdirs -lsmime${major_version}"
++      fi
++      if test -n "$lib_nss"; then
++	libdirs="$libdirs -lnss${major_version}"
++      fi
++      if test -n "$lib_nssutil"; then
++       libdirs="$libdirs -lnssutil${major_version}"
++      fi
++      echo $libdirs
++fi      
++
+diff -urN nss-3.12.5-orig/mozilla/security/nss/config/nss.pc.in nss-3.12.5/mozilla/security/nss/config/nss.pc.in
+--- nss-3.12.5-orig/mozilla/security/nss/config/nss.pc.in	1969-12-31 18:00:00.000000000 -0600
++++ nss-3.12.5/mozilla/security/nss/config/nss.pc.in	2009-09-14 21:45:45.653637310 -0500
+@@ -0,0 +1,12 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: NSS
++Description: Network Security Services
++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
++Requires: nspr >= 4.8
++Libs: -L${libdir} -lssl3 -lsmime3 -lnssutil3 -lnss3 -Wl,-R${libdir}
++Cflags: -I${includedir}
++
+diff -urN nss-3.12.5-orig/mozilla/security/nss/Makefile nss-3.12.5/mozilla/security/nss/Makefile
+--- nss-3.12.5-orig/mozilla/security/nss/Makefile	2008-12-02 17:24:39.000000000 -0600
++++ nss-3.12.5/mozilla/security/nss/Makefile	2009-09-14 21:45:45.678657145 -0500
+@@ -78,7 +78,7 @@
+ # (7) Execute "local" rules. (OPTIONAL).                              #
+ #######################################################################
+ 
+-nss_build_all: build_coreconf build_nspr build_dbm all
++nss_build_all: build_coreconf build_dbm all
+ 
+ nss_clean_all: clobber_coreconf clobber_nspr clobber_dbm clobber
+ 
+@@ -140,12 +140,6 @@
+ 	--with-dist-prefix='$(NSPR_PREFIX)' \
+ 	--with-dist-includedir='$(NSPR_PREFIX)/include'
+ 
+-build_nspr: $(NSPR_CONFIG_STATUS)
+-	cd $(CORE_DEPTH)/../nsprpub/$(OBJDIR_NAME) ; $(MAKE)
+-
+-clobber_nspr: $(NSPR_CONFIG_STATUS)
+-	cd $(CORE_DEPTH)/../nsprpub/$(OBJDIR_NAME) ; $(MAKE) clobber
+-
+ build_dbm:
+ ifndef NSS_DISABLE_DBM
+ 	cd $(CORE_DEPTH)/dbm ; $(MAKE) export libs
+diff -urN nss-3.12.5-orig/mozilla/security/nss/manifest.mn nss-3.12.5/mozilla/security/nss/manifest.mn
+--- nss-3.12.5-orig/mozilla/security/nss/manifest.mn	2008-04-04 15:36:59.000000000 -0500
++++ nss-3.12.5/mozilla/security/nss/manifest.mn	2009-09-14 21:45:45.703656167 -0500
+@@ -42,6 +42,6 @@
+ 
+ RELEASE = nss
+ 
+-DIRS = lib cmd
++DIRS = lib cmd config
+ 
+ 
diff --git a/pkgs/development/libraries/ntrack/default.nix b/pkgs/development/libraries/ntrack/default.nix
new file mode 100644
index 000000000000..e2d811ab3396
--- /dev/null
+++ b/pkgs/development/libraries/ntrack/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, glib, qt4, pkgconfig, libnl, pygobject, python }:
+
+let
+  version = "014";
+in
+
+stdenv.mkDerivation rec {
+  name = "ntrack-${version}";
+
+  src = fetchurl {
+    url = "http://launchpad.net/ntrack/main/${version}/+download/${name}.tar.gz";
+    sha256 = "1aqn3q0dj2kk0j9rf02qgbfghlykaas7q0g8wxyz7nd6zg4qhyj2";
+  };
+
+  buildInputs = [ libnl qt4 ];
+
+  buildNativeInputs = [ pkgconfig python ];
+
+  configureFlags = "--without-gobject CFLAGS=--std=gnu99";
+
+  postPatch = ''
+    sed -e "s@/usr\(/lib/ntrack/modules/\)@$out&@" -i common/ntrack.c
+    '';
+}
diff --git a/pkgs/development/libraries/ode/default.nix b/pkgs/development/libraries/ode/default.nix
index 2cc240c7ec34..31b2aa7dad91 100644
--- a/pkgs/development/libraries/ode/default.nix
+++ b/pkgs/development/libraries/ode/default.nix
@@ -3,7 +3,7 @@ let
   lib = args.lib;
   fetchurl = args.fetchurl;
 
-  version = lib.attrByPath ["version"] "0.10.1" args; 
+  version = lib.attrByPath ["version"] "0.11.1" args; 
   buildInputs = with args; [
     
   ];
@@ -11,7 +11,7 @@ in
 rec {
   src = fetchurl {
     url = "http://downloads.sourceforge.net/opende/ode-${version}.tar.bz2";
-    sha256 = "0bm7kmm7qvrbk40pgaszqr66pjfvnln8vjzdmcdl2h1dxi3b4dln";
+    sha256 = "1883gbsnn7zldrpwfdh6kwj20g627n5bspz3yb2z6lrxdal88y47";
   };
 
   inherit buildInputs;
diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix
index 107fc0261197..90604ed10585 100644
--- a/pkgs/development/libraries/ogre/default.nix
+++ b/pkgs/development/libraries/ogre/default.nix
@@ -35,8 +35,12 @@ rec {
   inherit (sourceInfo) name version;
   inherit buildInputs;
 
+  doMyBuild = a.fullDepEntry ("make -j4") ["doCmake"];
+
   /* doConfigure should be removed if not needed */
-  phaseNames = ["doCmake" "doMakeInstall"];
+  phaseNames = ["doCmake" "doMyBuild" "doMakeInstall"];
+
+  cmakeSkipRpath = false;
 
   meta = {
     description = "A 3D engine";
diff --git a/pkgs/development/libraries/openbabel/default.nix b/pkgs/development/libraries/openbabel/default.nix
index ca753867b5e4..d1fa607c7341 100644
--- a/pkgs/development/libraries/openbabel/default.nix
+++ b/pkgs/development/libraries/openbabel/default.nix
@@ -1,15 +1,22 @@
-{stdenv, fetchurl, zlib, libxml2}:
+{stdenv, fetchurl, cmake, zlib, libxml2, eigen, python }:
 
-stdenv.mkDerivation {
-  name = "openbabel-2.2.1";
+stdenv.mkDerivation rec {
+  name = "openbabel-2.3.0";
   
   src = fetchurl { 
-    url = mirror://sf/openbabel/openbabel-2.2.1.tar.gz;
-    sha256 = "822345d70778de1d2d9afe65a659f1719b8ca300066fb1fa2f473bc97c457e80";
+    url = "mirror://sourceforge/openbabel/${name}.tar.gz";
+    sha256 = "1yv1z04il8q6nhcc3l9019aj7nzs3bfm667s2vkg5cc3dljwpbbd";
   };
   
   # TODO : perl & python bindings;
   # TODO : wxGTK: I have no time to compile
   # TODO : separate lib and apps
-  buildInputs = [ zlib libxml2 ];
+  buildInputs = [ zlib libxml2 eigen python ];
+
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
 }
diff --git a/pkgs/development/libraries/opencv/2.1.nix b/pkgs/development/libraries/opencv/2.1.nix
new file mode 100644
index 000000000000..6f422463db93
--- /dev/null
+++ b/pkgs/development/libraries/opencv/2.1.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, cmake, gtk, glib, libjpeg, libpng, libtiff, jasper, ffmpeg, pkgconfig,
+  xineLib, gstreamer }:
+
+stdenv.mkDerivation rec {
+  name = "opencv-2.1.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/opencvlibrary/OpenCV-2.1.0.tar.bz2";
+    sha256 = "26061fd52ab0ab593c093ff94b5f5c09b956d7deda96b47019ff11932111397f";
+  };
+
+  buildInputs = [ cmake gtk glib libjpeg libpng libtiff jasper ffmpeg pkgconfig
+    xineLib gstreamer ];
+
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -D__STDC_CONSTANT_MACROS "
+  '';
+
+  meta = {
+    description = "Open Computer Vision Library with more than 500 algorithms";
+    homepage = http://opencv.willowgarage.com/;
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index c8b77d5f5725..48df840d8c5e 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -2,18 +2,16 @@
   xineLib, gstreamer }:
 
 stdenv.mkDerivation rec {
-  name = "opencv-2.1.0";
+  name = "opencv-2.3.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/opencvlibrary/OpenCV-2.1.0.tar.bz2";
-    sha256 = "0zrr24hr64gz35qb95nsvvbmdf89biglpy9z14y5kaxh5baiy1i6";
+    url = "mirror://sourceforge/opencvlibrary/OpenCV-2.3.0.tar.bz2";
+    sha256 = "02wl56a87if84brrhd4wq59linyhbxx30ykh4cjwzw37yw7zzgxw";
   };
 
   buildInputs = [ cmake gtk glib libjpeg libpng libtiff jasper ffmpeg pkgconfig
     xineLib gstreamer ];
 
-  patches = [ ./changeset_r3190.diff ];
-
   meta = {
     description = "Open Computer Vision Library with more than 500 algorithms";
     homepage = http://opencv.willowgarage.com/;
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
new file mode 100644
index 000000000000..08e08b876b66
--- /dev/null
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -0,0 +1,59 @@
+x@{builderDefsPackage
+  , cmake, giflib, libjpeg, libtiff, lib3ds, freetype, libpng
+  , coin3d, jasper, gdal, xproto, libX11, libXmu, freeglut, mesa
+  , doxygen, ffmpeg, xineLib, unzip, zlib, openal, libxml2
+  , curl
+  , ...}:
+builderDefsPackage
+(a :
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="OpenSceneGraph";
+    version="2.8.3";
+    name="${baseName}-${version}";
+    url="http://www.openscenegraph.org/downloads/stable_releases/${name}/source/${name}.zip";
+    hash="0phihxs7zgir9n1z54xsrsha8wa0xll7xl6lvqvrrczf0bm80yrs";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["setVars" "addInputs" "doUnpack" "doCmake" "doMakeInstall"];
+
+  cmakeFlags = [
+    "-D MATH_LIBRARY="
+  ];
+
+  setVars = a.noDepEntry ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -D__STDC_CONSTANT_MACROS=1"
+  '';
+      
+  meta = {
+    description = "A 3D graphics toolkit";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "OpenSceneGraph Public License - free LGPL-based license";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.openscenegraph.org/projects/osg/wiki/Downloads";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 54d4265e01c6..4897d08574d1 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -7,11 +7,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "openssl-1.0.0c";
+  name = "openssl-1.0.0d";
 
   src = fetchurl {
     url = "http://www.openssl.org/source/${name}.tar.gz";
-    sha256 = "1sq4sswyjxnr08lyjcafwdha6j5jd2b48vxfg48kdapdwdnv6cgp";
+    sha256 = "1nr0cf6pf8i4qsnx31kqhiqv402xgn76yhjhlbdri8ma1hgislcj";
   };
 
   patches = stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch;
@@ -25,6 +25,15 @@ stdenv.mkDerivation rec {
   
   configureFlags = "shared --libdir=lib";
 
+  postInstall =
+    ''
+      # If we're building dynamic libraries, then don't install static
+      # libraries.
+      if [ -n "$(echo $out/lib/*.so)" ]; then
+          rm $out/lib/*.a
+      fi
+    ''; # */
+
   crossAttrs = {
     preConfigure=''
       # It's configure does not like --build or --host
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix
index a561018e1575..88902627f4ec 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "ortp-0.16.3";
+  name = "ortp-0.16.4";
 
   src = fetchurl {
     url = "mirror://savannah/linphone/ortp/sources/${name}.tar.gz";
-    sha256 = "13805ec34ee818408aa1b4571915ef8f9e544c838a0fca9dff8d2308de6574eb";
+    sha256 = "0yb835l9spic4518ghb28jlwc0ihqjzpd0bgysgjf7z3bbg7km90";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix
index e63bbbb151df..9e270f9eec26 100644
--- a/pkgs/development/libraries/osip/default.nix
+++ b/pkgs/development/libraries/osip/default.nix
@@ -1,20 +1,17 @@
 {stdenv, fetchurl}:
 stdenv.mkDerivation rec {
-  version = "3.3.0";
+  version = "3.5.0";
   src = fetchurl {
     url = "mirror://gnu/osip/libosip2-${version}.tar.gz";
-    sha256 = "08gqll8c7y9hzzs80cal7paxn6knnhbfkvzdaxs2sssrmbg2hpnl";
+    sha256 = "14csf6z7b802bahxd560ibx3mg2fq3ki734vf3k2vknr4jm5v5fx";
   };
   name = "libosip2-${version}";
-      
+
   meta = {
     license = "LGPLv2.1+";
-    description = "GNU oSIP library ";
-    maintainers = with stdenv.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with stdenv.lib.platforms;
-      linux;
+    homepage = http://www.gnu.org/software/osip/;
+    description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
+    maintainers = with stdenv.lib.maintainers; [ raskin ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/pango/1.26.x.nix b/pkgs/development/libraries/pango/1.26.x.nix
deleted file mode 100644
index fb24cb544b0d..000000000000
--- a/pkgs/development/libraries/pango/1.26.x.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng }:
-
-stdenv.mkDerivation rec {
-  name = "pango-1.26.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/pango/1.26/${name}.tar.bz2";
-    sha256 = "021ygk3l9bk00gsvxk02flxsk68w0wl99dx221fmb547bng8g19v";
-  };
-
-  buildInputs = [pkgconfig] ++ stdenv.lib.optional (stdenv.system == "i686-darwin") gettext;
-
-  propagatedBuildInputs = [x11 glib cairo libpng];
-
-  meta = {
-    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
-
-    longDescription = ''
-      Pango is a library for laying out and rendering of text, with an
-      emphasis on internationalization.  Pango can be used anywhere
-      that text layout is needed, though most of the work on Pango so
-      far has been done in the context of the GTK+ widget toolkit.
-      Pango forms the core of text and font handling for GTK+-2.x.
-    '';
-
-    homepage = http://www.pango.org/;
-    license = "LGPLv2+";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/pango/1.28.x.nix b/pkgs/development/libraries/pango/1.28.x.nix
index 47418be66934..7488154373d9 100644
--- a/pkgs/development/libraries/pango/1.28.x.nix
+++ b/pkgs/development/libraries/pango/1.28.x.nix
@@ -1,17 +1,19 @@
 { stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng }:
 
 stdenv.mkDerivation rec {
-  name = "pango-1.28.3";
+  name = "pango-1.28.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/pango/1.28/${name}.tar.bz2";
-    sha256 = "0ch640zmf159gr9qp3i4a5mh1ib2s9h3660g4w0bpiqc8g4qn9sy";
+    sha256 = "7eb035bcc10dd01569a214d5e2bc3437de95d9ac1cfa9f50035a687c45f05a9f";
   };
 
   buildInputs = [ pkgconfig ] ++ stdenv.lib.optional stdenv.isDarwin gettext;
 
   propagatedBuildInputs = [ x11 glib cairo libpng ];
 
+  postInstall = "rm -rf $out/share/gtk-doc";
+  
   meta = {
     description = "A library for laying out and rendering of text, with an emphasis on internationalization";
 
diff --git a/pkgs/development/libraries/phat/default.nix b/pkgs/development/libraries/phat/default.nix
new file mode 100644
index 000000000000..6e68e3d9da8c
--- /dev/null
+++ b/pkgs/development/libraries/phat/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, gtk, libgnomecanvas, pkgconfig }:
+ 
+stdenv.mkDerivation rec {
+  name = "phat-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url = "http://download.berlios.de/phat/${name}.tar.gz";
+    sha256 = "1icncp2d8hbarzz8mmflkw13blg7blgwfic8q2wll7s6n01ii2av";
+  };
+
+  buildInputs = [ gtk libgnomecanvas pkgconfig ];
+
+  meta = with stdenv.lib; {
+    description = "GTK+ widgets geared toward pro-audio apps";
+    homepage = http://phat.berlios.de;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/development/libraries/phonon-backend-gstreamer/default.nix b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
new file mode 100644
index 000000000000..17744bad32c5
--- /dev/null
+++ b/pkgs/development/libraries/phonon-backend-gstreamer/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake, automoc4, qt4, pkgconfig, phonon, gst_all }:
+
+let version = "4.5.1"; in
+
+stdenv.mkDerivation rec {
+  name = "phonon-backend-gstreamer-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/phonon/phonon-backend-gstreamer/${version}/src/${name}.tar.bz2";
+    sha256 = "13m3kd0iy28nsn532xl97c50vq8ci3qs2i92yk4fw428qvknqck2";
+  };
+
+  buildInputs =
+    [ cmake pkgconfig phonon qt4 automoc4
+      gst_all.gstreamer gst_all.gstPluginsBase
+    ];
+
+  meta = {
+    homepage = http://phonon.kde.org/;
+    description = "GStreamer backend for Phonon";
+    platforms = stdenv.lib.platforms.linux;
+  };  
+}
diff --git a/pkgs/development/libraries/phonon/default.nix b/pkgs/development/libraries/phonon/default.nix
new file mode 100644
index 000000000000..6cf63aa757ac
--- /dev/null
+++ b/pkgs/development/libraries/phonon/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cmake, automoc4, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "phonon-4.5.0";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/phonon/4.5.0/src/${name}.tar.bz2";
+    sha256 = "1p2jhxx3ij9xqxvzdz6fm14b83iag9sk940clgj5jnnw00x93s36";
+  };
+
+  buildInputs = [ cmake automoc4 qt4 ];
+
+  preConfigure =
+    ''
+      substituteInPlace CMakeLists.txt \
+        --replace 'PHONON_MKSPECS_DIR}' 'CMAKE_INSTALL_PREFIX}/mkspecs'
+      substituteInPlace designer/CMakeLists.txt \
+        --replace 'QT_PLUGINS_DIR}' 'CMAKE_INSTALL_PREFIX}/lib/qt4/plugins'
+    '';
+
+  meta = {
+    homepage = http://phonon.kde.org/;
+    description = "Multimedia API for Qt";
+    license = "LGPLv2";
+    platforms = stdenv.lib.platforms.linux;
+  };  
+}
diff --git a/pkgs/development/libraries/php-apc/default.nix b/pkgs/development/libraries/php-apc/default.nix
new file mode 100644
index 000000000000..7cfdc9ce30d5
--- /dev/null
+++ b/pkgs/development/libraries/php-apc/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, php, autoconf, automake, libtool }:
+
+stdenv.mkDerivation rec {
+  name = "php-apc-3.1.7";
+  
+  src = fetchurl {
+    url = http://pecl.php.net/get/APC-3.1.7.tgz;
+    sha256 = "0xlvhw5398sl5zzkjm4rkk1m3fcra30zkq0k4i6fij0ylpd6nlls";
+  };
+
+  preConfigure = ''
+    phpize
+
+    sed -i 's,^EXTENSION_DIR.*,'EXTENSION_DIR=$out/lib/php/extensions, configure
+  '';
+
+  configureFlags = [ "--enable-apc" "--enable-apc-mmap" ];
+
+  buildInputs = [ php autoconf automake libtool ];
+
+  meta = {
+    description = "Alternative PHP Cache";
+    homepage = "http://pecl.php.net/package/APC";
+    license = "PHP+";
+  };
+}
diff --git a/pkgs/development/libraries/php-xcache/default.nix b/pkgs/development/libraries/php-xcache/default.nix
new file mode 100644
index 000000000000..b1d1bde358a8
--- /dev/null
+++ b/pkgs/development/libraries/php-xcache/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, php, autoconf, automake, libtool, m4 }:
+
+stdenv.mkDerivation rec {
+  name = "php-xcache-1.3.1";
+  
+  src = fetchurl {
+    url = http://xcache.lighttpd.net/pub/Releases/1.3.1/xcache-1.3.1.tar.bz2;
+    sha256 = "16qj6hns7frs655k2vg9dabnk28085hf6qxhr9dybw6ja5aj24g3";
+  };
+
+  preConfigure = ''
+    phpize
+
+    sed -i 's,^EXTENSION_DIR.*,'EXTENSION_DIR=$out/lib/php/extensions, configure
+  '';
+
+  configureFlags = [
+    "--enable-xcache" 
+    "--enable-xcache-coverager" 
+    "--enable-xcache-optimizer" 
+    "--enable-xcache-assembler"
+    "--enable-xcache-encoder"
+    "--enable-xcache-decoder"
+  ];
+
+  buildInputs = [ php autoconf automake libtool m4 ];
+
+  meta = {
+    description = "Fast, stable PHP opcode cacher";
+    homepage = http://xcache.lighttpd.net/;
+    license = "BSD";
+  };
+}
diff --git a/pkgs/development/libraries/pocketsphinx/default.nix b/pkgs/development/libraries/pocketsphinx/default.nix
new file mode 100644
index 000000000000..c57b050ebc67
--- /dev/null
+++ b/pkgs/development/libraries/pocketsphinx/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, sphinxbase, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "pocketsphinx-0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/cmusphinx/${name}.tar.gz";
+    sha256 = "0m94x5pridagr0hgmnidrf4z44zcya05d8fh67k0cc0mmghsq36f";
+  };
+
+  propagatedBuildInputs = [ sphinxbase ];
+
+  buildInputs = [ pkgconfig ];
+
+  meta = {
+    description = "Voice recognition library written in C";
+    homepage = http://cmusphinx.sourceforge.net;
+    license = "free-non-copyleft";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
diff --git a/pkgs/development/libraries/podofo/default.nix b/pkgs/development/libraries/podofo/default.nix
index 0d18c37987ee..ad447207a14a 100644
--- a/pkgs/development/libraries/podofo/default.nix
+++ b/pkgs/development/libraries/podofo/default.nix
@@ -2,10 +2,10 @@
 openssl, libpng, lua5}:
 
 stdenv.mkDerivation rec {
-  name = "podofo-0.8.2";
+  name = "podofo-0.9.1";
   src = fetchurl {
     url = "mirror://sourceforge/podofo/${name}.tar.gz";
-    sha256 = "064cgrvjvy57n5i25d4j7yx5wd3wgkdks448bzc3a8nsmyl08skq";
+    sha256 = "0icpxh1l1dpviq2zwy764dhg8y03zwyf4pgw4s7kb165nvh9v5kv";
   };
   propagatedBuildInputs = [ zlib freetype libjpeg libtiff fontconfig openssl libpng ];
   buildInputs = [ cmake lua5 stdenv.gcc.libc ];
diff --git a/pkgs/development/libraries/policykit/default.nix b/pkgs/development/libraries/policykit/default.nix
index 87e06e9a57a4..41b6839f0c23 100644
--- a/pkgs/development/libraries/policykit/default.nix
+++ b/pkgs/development/libraries/policykit/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
   
   meta = {
     homepage = http://www.freedesktop.org/wiki/Software/PolicyKit;
-    description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
+    description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes (obsolete)";
   };
 }
diff --git a/pkgs/development/libraries/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
new file mode 100644
index 000000000000..008a75cff67f
--- /dev/null
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, cmake, qt4, pkgconfig, polkit, automoc4, glib }:
+
+stdenv.mkDerivation rec {
+  name = "polkit-qt-1-0.99.0";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/apps/KDE4.x/admin/${name}.tar.bz2";
+    sha256 = "02m710q34aapbmnz1p6qwgkk5xjmm239zdl3lvjg77dh3j0w5i3r";
+  };
+
+  patches = [ ./polkit-install.patch ];
+
+  buildInputs = [ cmake qt4 automoc4 ];
+  
+  propagatedBuildInputs = [ polkit glib ];
+
+  meta = {
+    description = "A Qt wrapper around PolKit";
+  };
+}
diff --git a/pkgs/development/libraries/polkit-qt-1/polkit-install.patch b/pkgs/development/libraries/polkit-qt-1/polkit-install.patch
new file mode 100644
index 000000000000..79beda2a3184
--- /dev/null
+++ b/pkgs/development/libraries/polkit-qt-1/polkit-install.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' polkit-qt-1-0.99.0-orig/PolkitQt-1Config.cmake.in polkit-qt-1-0.99.0/PolkitQt-1Config.cmake.in
+--- polkit-qt-1-0.99.0-orig/PolkitQt-1Config.cmake.in	2010-12-08 18:22:28.000000000 +0100
++++ polkit-qt-1-0.99.0/PolkitQt-1Config.cmake.in	2011-07-12 13:26:51.000000000 +0200
+@@ -15,7 +15,7 @@
+ 
+ set(POLKITQT-1_INCLUDE_DIR              "@INCLUDE_INSTALL_DIR@/polkit-qt-1")
+ set(POLKITQT-1_LIB_DIR                  "@LIB_INSTALL_DIR@")
+-set(POLKITQT-1_POLICY_FILES_INSTALL_DIR "${POLKITQT-1_INSTALL_DIR}/share/polkit-1/actions")
++set(POLKITQT-1_POLICY_FILES_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions")
+ 
+ # Compatibility
+ if(WIN32)
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index 0e4b6cab6502..f2301a9621c2 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -1,38 +1,53 @@
-{ stdenv, fetchurl, pkgconfig, glib, eggdbus, expat, pam, intltool, gettext,
-  gobjectIntrospection }:
+{ stdenv, fetchurl, pkgconfig, glib, expat, pam, intltool, gettext
+, gobjectIntrospection }:
 
 let
-  system="/var/run/current-system/sw";
+
+  system = "/var/run/current-system/sw";
+  
   foolVars = {
     LOCALSTATE = "/var";
     SYSCONF = "/etc";
-    LIBEXEC = "${system}/libexec/polkit-1";
     LIB = "${system}/lib";
     DATA = "${system}/share";
   };
+  
 in
 
 stdenv.mkDerivation rec {
-  name = "polkit-0.96";
+  name = "polkit-0.102";
 
   src = fetchurl {
     url = "http://hal.freedesktop.org/releases/${name}.tar.gz";
-    sha256 = "0jh5v0dhf9msvmfmr9d67563m64gq5l96m9jax9abchhfa8wl9il";
+    sha256 = "0hc60nwqnmixavgg0alk4w0llwj5xmm4bw8qh915qvqwhkd76r8a";
   };
 
-  buildInputs = [ pkgconfig glib eggdbus expat pam intltool gettext
-    gobjectIntrospection ];
+  buildInputs =
+    [ pkgconfig glib expat pam intltool gobjectIntrospection ];
 
-  preConfigure=''
-    configureFlags="--libexecdir=$out/libexec/polkit-1"
-  '';
+  configureFlags = "--libexecdir=$(out)/libexec/polkit-1";
 
   # Ugly hack to overwrite hardcoded directories
   # TODO: investigate a proper patch which will be accepted upstream
   CFLAGS = stdenv.lib.concatStringsSep " "
     ( map (var: ''-DPACKAGE_${var}_DIR=\""${builtins.getAttr var foolVars}"\"'')
-    (builtins.attrNames foolVars) );
+        (builtins.attrNames foolVars) );
+
+  preBuild =
+    ''
+      # ‘libpolkit-agent-1.so’ should call the setuid wrapper on
+      # NixOS.  Hard-coding the path is kinda ugly.  Maybe we can just
+      # call through $PATH, but that might have security implications.
+      substituteInPlace src/polkitagent/polkitagentsession.c \
+        --replace PACKAGE_LIBEXEC_DIR '"/var/setuid-wrappers"'
+    '';
 
+  makeFlags =
+    ''
+      INTROSPECTION_GIRDIR=$(out)/share/gir-1.0
+      INTROSPECTION_TYPELIBDIR=$(out)lib/girepository-1.0
+    '';
+        
   postInstall =
     ''
       # Allow some files with paranoid permissions to be stripped in
diff --git a/pkgs/development/libraries/poppler/GDir-const.patch b/pkgs/development/libraries/poppler/GDir-const.patch
deleted file mode 100644
index 0af8e054dd76..000000000000
--- a/pkgs/development/libraries/poppler/GDir-const.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -ur poppler-0.6.1/goo/gfile.cc poppler-0.6.1-patched/goo/gfile.cc
---- poppler-0.6.1/goo/gfile.cc	2007-09-17 20:37:39.000000000 +0200
-+++ poppler-0.6.1-patched/goo/gfile.cc	2007-11-06 12:07:50.325498138 +0100
-@@ -634,7 +634,7 @@
-   delete name;
- }
- 
--GDir::GDir(char *name, GBool doStatA) {
-+GDir::GDir(const char *name, GBool doStatA) {
-   path = new GooString(name);
-   doStat = doStatA;
- #if defined(WIN32)
-diff -ur poppler-0.6.1/goo/gfile.h poppler-0.6.1-patched/goo/gfile.h
---- poppler-0.6.1/goo/gfile.h	2007-09-17 20:37:39.000000000 +0200
-+++ poppler-0.6.1-patched/goo/gfile.h	2007-11-06 12:07:39.212878631 +0100
-@@ -117,7 +117,7 @@
- class GDir {
- public:
- 
--  GDir(char *name, GBool doStatA = gTrue);
-+  GDir(const char *name, GBool doStatA = gTrue);
-   ~GDir();
-   GDirEntry *getNextEntry();
-   void rewind();
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 918f84e3b748..3091c6497e54 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -1,18 +1,24 @@
-{ fetchurl, stdenv, qt4Support ? false, qt4, cairo, freetype, fontconfig, zlib,
-  libjpeg, pixman, curl, libpthreadstubs, libXau, libXdmcp, openjpeg,
-  libxml2, pkgconfig, glib, gtk, cmake, lcms }:
+{ fetchurl, stdenv, cairo, freetype, fontconfig, zlib
+, libjpeg, pixman, curl, libpthreadstubs, libXau, libXdmcp, openjpeg
+, libxml2, pkgconfig, cmake, lcms
+, gtkSupport ? false, glib ? null, gtk ? null
+, qt4Support ? false, qt4 ? null
+}:
 
 stdenv.mkDerivation rec {
-  name = "poppler-0.14.5";
+  name = "poppler-0.16.7";
 
   src = fetchurl {
     url = "${meta.homepage}${name}.tar.gz";
-    sha256 = "0k41cj0yp3l7854y1hlghn2cgqmqq6hw5iz8i84q0w0s9iy321f8";
+    sha256 = "1k9by922qkn9pkkf03jjxxqhp4s0gmsgs6c8f4m19m1l5npyid7s";
   };
 
-  propagatedBuildInputs = [zlib glib cairo freetype fontconfig libjpeg gtk lcms
-    pixman curl libpthreadstubs libXau libXdmcp openjpeg libxml2 stdenv.gcc.libc]
-    ++ (if qt4Support then [qt4] else []);
+  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;
 
   buildInputs = [ pkgconfig cmake ];
 
@@ -20,9 +26,11 @@ stdenv.mkDerivation rec {
 
   # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
   # such as `../../../test/unittestcases/UseNone.pdf'.
-#doCheck = !qt4Support;
+  #doCheck = !qt4Support;
   checkTarget = "test";
 
+  enableParallelBuilding = true;
+
   meta = {
     homepage = http://poppler.freedesktop.org/;
     description = "Poppler, a PDF rendering library";
diff --git a/pkgs/development/libraries/portaudio/svn-head.nix b/pkgs/development/libraries/portaudio/svn-head.nix
new file mode 100644
index 000000000000..ca536530f1c2
--- /dev/null
+++ b/pkgs/development/libraries/portaudio/svn-head.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchsvn, alsaLib, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  revision = "1564";
+  name = "portaudio-svn-r${revision}";
+	
+  src = fetchsvn {
+    url = "https://www.portaudio.com/repos/portaudio/trunk";
+    rev = revision;
+    sha256 = "0vhiy4lkmv0flhvkbbra71z5cfr3gbh27bbfcqqdc939b4z35lsi";
+  };
+
+  buildInputs = [ alsaLib pkgconfig ];
+  
+  meta = {
+    description = "Portable cross-platform Audio API";
+    homepage = http://www.portaudio.com/;
+    # Not exactly a bsd license, but alike
+    license = "BSD";
+  };
+
+  passthru = {
+    api_version = 19;
+  };
+}
diff --git a/pkgs/development/libraries/ppl/0.11.nix b/pkgs/development/libraries/ppl/0.11.nix
new file mode 100644
index 000000000000..d8ffde644de1
--- /dev/null
+++ b/pkgs/development/libraries/ppl/0.11.nix
@@ -0,0 +1,50 @@
+{ fetchurl, stdenv, gmpxx, perl, gnum4, static ? false }:
+
+let
+  version = "0.11";
+  staticFlags = if static then " --enable-static --disable-shared --disable-watchdog" else "";
+in
+  stdenv.mkDerivation rec {
+    name = "ppl-${version}";
+
+    src = fetchurl {
+      url = "mirror://gcc/infrastructure/ppl-${version}.tar.gz";
+      sha256 = "0xqwyaj232gi0pgm6z2rihk6p8l1rngbbibnhmcrbq4jq550clrl";
+    };
+
+    buildNativeInputs = [ perl gnum4 ];
+    propagatedBuildInputs = [ gmpxx ];
+
+    dontDisableStatic = if static then true else false;
+    configureFlags = staticFlags;
+
+    # Beware!  It took ~6 hours to compile PPL and run its tests on a 1.2 GHz
+    # x86_64 box.  Nevertheless, being a dependency of GCC, it probably ought
+    # to be tested.
+    doCheck = false;
+
+    meta = {
+      description = "PPL: The Parma Polyhedra Library";
+
+      longDescription = ''
+        The Parma Polyhedra Library (PPL) provides numerical abstractions
+        especially targeted at applications in the field of analysis and
+        verification of complex systems.  These abstractions include convex
+        polyhedra, defined as the intersection of a finite number of (open or
+        closed) halfspaces, each described by a linear inequality (strict or
+        non-strict) with rational coefficients; some special classes of
+        polyhedra shapes that offer interesting complexity/precision tradeoffs;
+        and grids which represent regularly spaced points that satisfy a set of
+        linear congruence relations.  The library also supports finite
+        powersets and products of (any kind of) polyhedra and grids and a mixed
+        integer linear programming problem solver using an exact-arithmetic
+        version of the simplex algorithm.
+      '';
+
+      homepage = http://www.cs.unipr.it/ppl/;
+
+      license = "GPLv3+";
+
+      maintainers = [ stdenv.lib.maintainers.ludo ];
+    };
+  }
diff --git a/pkgs/development/libraries/prison/default.nix b/pkgs/development/libraries/prison/default.nix
new file mode 100644
index 000000000000..ca8ba46d7dcb
--- /dev/null
+++ b/pkgs/development/libraries/prison/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, cmake, qrencode, qt4, libdmtx }:
+
+let v = "1.0"; in
+
+stdenv.mkDerivation rec {
+  name = "prison-${v}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/prison/${v}/src/${name}.tar.gz";
+    sha256 = "08hkzzda36jpdywjqlyzcvli7cx17h4l9yffzsdnhdd788n28krr";
+  };
+
+  buildInputs = [ qt4 qrencode libdmtx ];
+
+  buildNativeInputs = [ cmake ];
+
+  meta = {
+    description = "Qt4 library for QR-codes";
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    inherit (qt4.meta) platforms;
+  };
+}
diff --git a/pkgs/development/libraries/protobuf/2.2.0.nix b/pkgs/development/libraries/protobuf/2.2.0.nix
new file mode 100644
index 000000000000..c9419367fd6e
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/2.2.0.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "protobuf-2.2.0";
+
+  src = fetchurl {
+    url = "http://protobuf.googlecode.com/files/${name}.tar.bz2";
+    sha256 = "0jvj7i0fifl4fqjf84f67chb9b6q2z1jqkfc1zic9fz035mzn7bk";
+  };
+
+  buildInputs = [ zlib ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Protocol Buffers - Google's data interchange format";
+
+    longDescription =
+      '' Protocol Buffers are a way of encoding structured data in an
+         efficient yet extensible format.  Google uses Protocol Buffers for
+         almost all of its internal RPC protocols and file formats.
+      '';
+
+    license = "mBSD";
+
+    homepage = http://code.google.com/p/protobuf/;
+  };
+}
diff --git a/pkgs/development/libraries/qca2/default.nix b/pkgs/development/libraries/qca2/default.nix
new file mode 100644
index 000000000000..6af622c0a15b
--- /dev/null
+++ b/pkgs/development/libraries/qca2/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, which, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "qca-2.0.3";
+  
+  src = fetchurl {
+    url = "http://delta.affinix.com/download/qca/2.0/${name}.tar.bz2";
+    sha256 = "0pw9fkjga8vxj465wswxmssxs4wj6zpxxi6kzkf4z5chyf4hr8ld";
+  };
+  
+  buildInputs = [ qt4 ];
+  
+  buildNativeInputs = [ which ];
+
+  preBuild =
+    ''
+      sed -i include/QtCrypto/qca_publickey.h -e '/EMSA3_Raw/a,\
+              EMSA3_SHA224,     ///< SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
+              EMSA3_SHA256,     ///< SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
+              EMSA3_SHA384,     ///< SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
+              EMSA3_SHA512      ///< SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding'
+    '';
+
+  configureFlags = "--no-separate-debug-info";
+
+  enableParallelBuilding = true;
+  
+  meta = with stdenv.lib; {
+    description = "Qt Cryptographic Architecture";
+    license = "LGPL";
+    homepage = http://delta.affinix.com/qca;
+    maintainers = [ maintainers.sander maintainers.urkud ];
+  };
+}
diff --git a/pkgs/desktops/kde-4.6/support/qca2/ossl.nix b/pkgs/development/libraries/qca2/ossl.nix
index bfaa320618c7..1e0c583b7a5d 100644
--- a/pkgs/desktops/kde-4.6/support/qca2/ossl.nix
+++ b/pkgs/development/libraries/qca2/ossl.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, fetchsvn, qt4, qca2, openssl}:
+{stdenv, fetchurl, fetchsvn, qt4, qca2, openssl, which}:
 
 stdenv.mkDerivation rec {
   version = "2.0.0-beta3";
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
     sha256 =  "ef2c0307e8834e1e7cb23b6fea1cc22486328a37186301a6c11161b1c93d834b";
   };
   buildInputs = [ qt4 qca2 openssl ];
+  buildNativeInputs = [ which ];
   dontAddPrefix = true;
   configureFlags="--no-separate-debug-info --with-qca=${qca2}
     --with-openssl-inc=${openssl}/include --with-openssl-lib=${openssl}/lib";
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index 8f9bfc6c130c..002a25988b69 100644
--- a/pkgs/development/libraries/qhull/default.nix
+++ b/pkgs/development/libraries/qhull/default.nix
@@ -1,29 +1,16 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, cmake}:
+
+stdenv.mkDerivation rec {
+  name = "qhull-2011.1";
 
-stdenv.mkDerivation {
-  name = "qhull-2010.1";
   src = fetchurl {
-    url = http://www.qhull.org/download/qhull-2010.1-src.tgz;
-    sha256 = "1ghnwci1s56yzzwg8gmlzhsd5v3imsqxf24yb0j5m6qv8kxqaw2m";
+    url = "${meta.homepage}/download/${name}-src.tgz";
+    sha256 = "1i2lqw0552mvbcc1q7l4b31fpzf2l2qcabc23r4sybhwyljl9bmd";
   };
 
-  NIX_CFLAGS_COMPILE = "-fno-strict-aliasing " +
-    (if stdenv.system == "x86_64-linux" then "-fPIC" else "");
-
-  patchPhase = ''
-    cd src
-    sed -i -e "s@/usr/local@$out@" Makefile;
-    sed -i -e "s@man/man1@share/man/man1@" Makefile;
-  '';
+  buildNativeInputs = [ cmake ];
 
-  installPhase = ''
-    ensureDir $out/bin
-    ensureDir $out/include/qhull
-    ensureDir $out/lib
-    cp qconvex qdelaunay qhalf qhull rbox qvoronoi $out/bin
-    cp *.h $out/include/qhull
-    cp libqhull.a $out/lib
-  '';
+  cmakeFlags = "-DMAN_INSTALL_DIR=share/man/man1 -DDOC_INSTALL_DIR=share/doc/qhull";
 
   meta = {
     homepage = http://www.qhull.org/;
diff --git a/pkgs/desktops/kde-4.6/support/qimageblitz/default.nix b/pkgs/development/libraries/qimageblitz/default.nix
index bb3d0220b432..4aac06a51014 100644
--- a/pkgs/desktops/kde-4.6/support/qimageblitz/default.nix
+++ b/pkgs/development/libraries/qimageblitz/default.nix
@@ -7,10 +7,12 @@ in
 
 stdenv.mkDerivation {
   name = "${pn}-${v}";
+  
   src = fetchurl {
     url = "mirror://sf/${pn}/${pn}-${v}.tar.bz2";
     sha256 = "0pnaf3qi7rgkxzs2mssmslb3f9ya4cyx09wzwlis3ppyvf72j0p9";
   };
+  
   buildInputs = [ cmake qt4 ];
 
   meta = {
diff --git a/pkgs/development/libraries/qt-4.x/4.7/default.nix b/pkgs/development/libraries/qt-4.x/4.7/default.nix
index 3a16679ce9f1..67725315aa5a 100644
--- a/pkgs/development/libraries/qt-4.x/4.7/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.7/default.nix
@@ -1,14 +1,15 @@
 { stdenv, fetchurl
-, alsaLib, gstreamer, gstPluginsBase, pulseaudio
+, alsaLib, pulseaudio
 , libXft, libXrender, randrproto, xextproto, libXinerama, xineramaproto, libXcursor, libXmu
 , libXv, libXext, libXfixes, inputproto, fixesproto, libXrandr, freetype, fontconfig
 , zlib, libjpeg, libpng, libmng, which, mesa, openssl, dbus, cups, pkgconfig, libtiff, glib
 , mysql, postgresql, sqlite
 , perl, coreutils, libXi
-, buildDemos ? false, buildExamples ? false, useDocs ? true}:
+, buildDemos ? false, buildExamples ? false, useDocs ? false
+}:
 
 let
-  v = "4.7.0";
+  v = "4.7.3";
 in
 
 stdenv.mkDerivation rec {
@@ -16,21 +17,39 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-${v}.tar.gz";
-    sha256 = "0mbr7sjaswkd5gibyb36mlaas049fj8vf2risi66fzfac3amclp0";
+    sha256 = "0zlk0lcrkhi8wdb5j2lqz3nclk07blbiial7lzs03708kpb6yayh";
   };
 
-  preConfigure = ''
-    export LD_LIBRARY_PATH="`pwd`/lib:$LD_LIBRARY_PATH"
-    configureFlags+="
-      -docdir $out/share/doc/${name}
-      -plugindir $out/lib/qt4/plugins
-      -importdir $out/lib/qt4/imports
-      -examplesdir $out/share/doc/${name}/examples
-      -demosdir $out/share/doc/${name}/demos
-      -datadir $out/share/${name}
-      -translationdir $out/share/${name}/translations
-    "
-  '';
+  preConfigure =
+    ''
+      export LD_LIBRARY_PATH="`pwd`/lib:$LD_LIBRARY_PATH"
+      configureFlags+="
+        -docdir $out/share/doc/${name}
+        -plugindir $out/lib/qt4/plugins
+        -importdir $out/lib/qt4/imports
+        -examplesdir $out/share/doc/${name}/examples
+        -demosdir $out/share/doc/${name}/demos
+        -datadir $out/share/${name}
+        -translationdir $out/share/${name}/translations
+      "
+    '';
+
+  configureFlags =
+    ''
+      -v -no-separate-debug-info -release -fast -confirm-license -opensource
+      -system-zlib -system-libpng -system-libjpeg -qt-gif -system-libmng
+      -opengl -xrender -xrandr -xinerama -xcursor
+      -plugin-sql-mysql -system-sqlite
+      -qdbus -cups -glib -xfixes -dbus-linked -openssl-linked
+      -fontconfig -I${freetype}/include/freetype2
+      -exceptions -xmlpatterns
+      -multimedia -audio-backend -no-phonon
+      -webkit -javascript-jit
+      -make libs -make tools -make translations
+      ${if buildDemos == true then "-make demos" else "-nomake demos"}
+      ${if buildExamples == true then "-make examples" else "-nomake examples"}
+      ${if useDocs then "-make docs" else "-nomake docs"}
+    '';
 
   propagatedBuildInputs = [
     alsaLib
@@ -66,8 +85,6 @@ stdenv.mkDerivation rec {
     libXfixes
     glib
     libtiff
-    gstreamer
-    gstPluginsBase
     pulseaudio
   ];
 
@@ -75,21 +92,6 @@ stdenv.mkDerivation rec {
 
   prefixKey = "-prefix ";
 
-  configureFlags = ''
-    -v -no-separate-debug-info -release -fast -confirm-license -opensource
-    -system-zlib -system-libpng -system-libjpeg -qt-gif -system-libmng
-    -opengl -xrender -xrandr -xinerama -xcursor
-    -plugin-sql-mysql -system-sqlite
-    -qdbus -cups -glib -xfixes -dbus-linked -openssl-linked
-    -fontconfig -I${freetype}/include/freetype2
-    -exceptions -xmlpatterns
-    -multimedia -audio-backend -phonon -phonon-backend
-    -webkit -javascript-jit
-    -make libs -make tools -make translations
-    ${if buildDemos == true then "-make demos" else "-nomake demos"}
-    ${if buildExamples == true then "-make examples" else "-nomake examples"}
-    ${if useDocs then "-make docs" else "-nomake docs"}'';
-
   prePatch = ''
     substituteInPlace configure --replace /bin/pwd pwd
     substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
@@ -98,7 +100,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     ${if useDocs then "rm -rfv $out/share/doc/${name}/{html,src}" else ""}
-    ln -sv phonon $out/include/Phonon'';
+  '';
 
   enableParallelBuilding = true;
 
@@ -108,6 +110,5 @@ stdenv.mkDerivation rec {
     license = "GPL/LGPL";
     maintainers = with maintainers; [ urkud sander ];
     platforms = platforms.linux;
-    priority = 10;
   };
 }
diff --git a/pkgs/development/libraries/qwt/default.nix b/pkgs/development/libraries/qwt/default.nix
new file mode 100644
index 000000000000..814550d2b18a
--- /dev/null
+++ b/pkgs/development/libraries/qwt/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "qwt-5.2.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qwt/${name}.tar.bz2";
+    sha256 = "17snmh8qwsgb4j2yiyzmi0s1jli14vby5wv1kv4kvjq4aisvpf72";
+  };
+
+  propagatedBuildInputs = [ qt4 ];
+
+  patches = [ ./prefix.diff ];
+
+  postPatch = ''
+    sed -e "s@\$\$\[QT_INSTALL_PLUGINS\]@$out/lib/qt4/plugins@" -i designer/designer.pro
+    '';
+
+  configurePhase = ''qmake INSTALLBASE=$out -after doc.path=$out/share/doc/${name} -r'';
+}
diff --git a/pkgs/development/libraries/qwt/prefix.diff b/pkgs/development/libraries/qwt/prefix.diff
new file mode 100644
index 000000000000..a97efe5ab4a8
--- /dev/null
+++ b/pkgs/development/libraries/qwt/prefix.diff
@@ -0,0 +1,24 @@
+diff --git a/qwtconfig.pri b/qwtconfig.pri
+index 2be4a68..8625686 100644
+--- a/qwtconfig.pri
++++ b/qwtconfig.pri
+@@ -7,12 +7,14 @@ VER_MIN      = 2
+ VER_PAT      = 1
+ VERSION      = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}
+ 
+-unix {
+-    INSTALLBASE    = /usr/local/qwt-5.2.1
+-}
++isEmpty(INSTALLBASE) {
++    unix {
++        INSTALLBASE    = /usr/local/qwt-5.2.1
++    }
+ 
+-win32 {
+-    INSTALLBASE    = C:/Qwt-5.2.1
++    win32 {
++        INSTALLBASE    = C:/Qwt-5.2.1
++    }
+ }
+ 
+ target.path    = $$INSTALLBASE/lib
diff --git a/pkgs/development/libraries/readline/readline6.nix b/pkgs/development/libraries/readline/readline6.nix
index b927e804200d..c7abfa2bfb28 100644
--- a/pkgs/development/libraries/readline/readline6.nix
+++ b/pkgs/development/libraries/readline/readline6.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, ncurses }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "readline-6.2";
 
   src = fetchurl {
@@ -48,3 +48,10 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
+
+//
+
+# Don't run the native `strip' when cross-compiling.
+(if (stdenv ? cross)
+ then { dontStrip = true; }
+ else { }))
diff --git a/pkgs/development/libraries/redland/1.0.10.nix b/pkgs/development/libraries/redland/1.0.10.nix
deleted file mode 100644
index 8d28ed9cd9fd..000000000000
--- a/pkgs/development/libraries/redland/1.0.10.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, openssl, libxslt, perl
-, curl, pcre, libxml2, librdf_rasqal, librdf_raptor
-, mysql ? null, postgresql ? null, sqlite ? null, bdb ? null
-}:
-
-stdenv.mkDerivation rec {
-  name = "redland-1.0.10";  
-
-  src = fetchurl {
-    url = "mirror://sf/librdf/${name}.tar.gz";
-    sha256 = "05cq722qvw5sq08qbydzjv5snqk402cbdsy8s6qjzir7vq2hs1p3";
-  };
-
-  buildInputs = [ pkgconfig ];
-
-  propagatedBuildInputs = [
-    bdb openssl libxslt perl mysql postgresql sqlite curl pcre libxml2
-    librdf_raptor librdf_rasqal
-  ];
-
-  preConfigure = ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lrasqal -lraptor"
-  '';
-
-  configureFlags =
-    [ "--with-threads" ]
-    ++ stdenv.lib.optional (bdb != null) "--with-bdb=${bdb}";
-  
-  patchPhase ="sed -e 1s@/usr@${perl}@ -i utils/touch-mtime.pl";
-}
diff --git a/pkgs/development/libraries/rubberband/default.nix b/pkgs/development/libraries/rubberband/default.nix
index 90031c92fe48..c8e3c53885cb 100644
--- a/pkgs/development/libraries/rubberband/default.nix
+++ b/pkgs/development/libraries/rubberband/default.nix
@@ -2,11 +2,11 @@
 , vampSDK, ladspaH }:
 
 stdenv.mkDerivation {
-  name = "rubberband-1.3";
+  name = "rubberband-1.6.0";
 
   src = fetchurl {
-    url = http://www.breakfastquay.com/rubberband/files/rubberband-1.3.tar.bz2;
-    sha256 = "0g1bihjzagp9mx9zppjyd9566dfdqh38a1ghwsd7c245hv2syri8";
+    url = http://code.breakfastquay.com/attachments/download/16/rubberband-1.6.0.tar.bz2;
+    sha256 = "15n875x3bbg7nbnqbl33v5jp2p6yw779124xz4la8ysclvikklsv";
   };
 
   buildInputs = [ pkgconfig libsamplerate libsndfile fftw vampSDK ladspaH ];
diff --git a/pkgs/development/libraries/sfml/default.nix b/pkgs/development/libraries/sfml/default.nix
new file mode 100644
index 000000000000..99b0f2e725cd
--- /dev/null
+++ b/pkgs/development/libraries/sfml/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchgit, cmake, mesa, libX11, freetype, libjpeg, openal, libsndfile
+, glew, libXrandr, libXrender
+}:
+stdenv.mkDerivation rec {
+  name = "sfml-git-20110428";
+  src = fetchgit {
+    url = "http://github.com/LaurentGomila/SFML.git";
+    rev = "6eac4256f3be353f51ee";
+    sha256 = "1b4f1901e0e482dbc0ad60e2821af766fb8ce093de51d678918ac2a0fb6e8587";
+  };
+  buildInputs = [ cmake mesa libX11 freetype libjpeg openal libsndfile glew
+                  libXrandr libXrender
+                ];
+  patchPhase = "
+    substituteInPlace CMakeLists.txt --replace '\${CMAKE_ROOT}/Modules' 'share/cmake-2.8/Modules'
+  ";
+  meta = with stdenv.lib; {
+    homepage = http://www.sfml-dev.org/;
+    description = "A multimedia C++ API that provides access to graphics, input, audio, etc.";
+    license = licenses.zlib;
+    maintainers = [ maintainers.astsmtl ];
+  };
+}
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
new file mode 100644
index 000000000000..961d14753335
--- /dev/null
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , plib, freeglut, xproto, libX11, libXext, xextproto, libXi , inputproto
+  , libICE, libSM, libXt, libXmu, mesa, boost, zlib, libjpeg , freealut
+  , openscenegraph, openal
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="SimGear";
+    version="2.0.0";
+    name="${baseName}-${version}";
+    extension="tar.gz";
+    url="ftp://ftp.goflyflightgear.com/simgear/Source/${name}.${extension}";
+    hash="08fia5rjrlvw45i3v09fn90vhdhb54wjl6kn3d8vpspxmsw4fn55";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "Simulation construction toolkit";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.lgpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "ftp://ftp.goflyflightgear.com/simgear/Source/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/smpeg/default.nix b/pkgs/development/libraries/smpeg/default.nix
new file mode 100644
index 000000000000..3e7baf77df8e
--- /dev/null
+++ b/pkgs/development/libraries/smpeg/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchsvn, SDL, autoconf, automake, libtool, gtk, m4, pkgconfig, mesa }:
+
+stdenv.mkDerivation rec {
+  name = "smpeg-svn-${version}";
+  version = "390";
+
+  src = fetchsvn {
+    url = svn://svn.icculus.org/smpeg/trunk;
+    rev = version;
+    sha256 = "0ynwn7ih5l2b1kpzpibns9bb9wzfjak7mgrb1ji0dkn2q5pv6lr0";
+  };
+
+  buildInputs = [ SDL autoconf automake libtool gtk m4 pkgconfig mesa ];
+
+  preConfigure = ''
+    touch NEWS AUTHORS ChangeLog
+    autoreconf -fvi -I acinclude
+  '';
+
+  postInstall = ''
+    sed -i -e 's,"SDL.h",<SDL/SDL.h>,' \
+    -e 's,"SDL_mutex.h",<SDL/SDL_mutex.h>,' \
+    -e 's,"SDL_audio.h",<SDL/SDL_audio.h>,' \
+    -e 's,"SDL_thread.h",<SDL/SDL_thread.h>,' \
+    -e 's,"SDL_types.h",<SDL/SDL_types.h>,' \
+      $out/include/smpeg/*.h
+  '';
+
+  meta = {
+    homepage = http://icculus.org/smpeg/;
+    description = "MPEG decoding library";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/soqt/default.nix b/pkgs/development/libraries/soqt/default.nix
new file mode 100644
index 000000000000..f5a7724c5065
--- /dev/null
+++ b/pkgs/development/libraries/soqt/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, coin3d, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "soqt-${version}";
+  version = "1.5.0";
+
+  src = fetchurl {
+    url = "http://ftp.coin3d.org/coin/src/all/SoQt-${version}.tar.gz";
+    sha256 = "14dbh8ynzjcgwgxjc6530c5plji7vn62kbdf447w0dp53564p8zn";
+  };
+
+  buildInputs = [ coin3d qt4 ];
+
+  meta = {
+    homepage = http://www.coin3d.org/;
+    license = "GPLv2+";
+    description = "Glue between Coin high-level 3D visualization library and Qt";
+
+    maintainers = [ stdenv.lib.maintainers.viric ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/speech-tools/default.nix b/pkgs/development/libraries/speech-tools/default.nix
new file mode 100644
index 000000000000..211eecde4e43
--- /dev/null
+++ b/pkgs/development/libraries/speech-tools/default.nix
@@ -0,0 +1,65 @@
+x@{builderDefsPackage
+  , gawk, alsaLib, ncurses
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="speech_tools";
+    version="2.1";
+    name="${baseName}-${version}";
+    url="http://www.festvox.org/packed/festival/${version}/${name}-release.tar.gz";
+    hash="1s9bkfgdgyas8v2cr7x3dg0ck1xf9mn1q6a73gwy524sjb6nfqgz";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doUnpack" "killUsrBin" "doConfigure" "doMakeInstall" "doDeploy" "fixPaths"];
+      
+  killUsrBin = a.fullDepEntry ''
+    sed -e s@/usr/bin/@@g -i $( grep -rl '/usr/bin/' . )
+    sed -re 's@/bin/(rm|printf|uname)@\1@g' -i $( grep -rl '/bin/' . )
+  '' ["minInit" "doUnpack"];
+
+  doDeploy = a.fullDepEntry ''
+    ensureDir "$out"/{bin,lib}
+    for d in bin lib; do
+      for i in ./$d/*; do
+        test "$(basename "$i")" = "Makefile" ||
+          cp -r "$(readlink -f $i)" "$out/$d"
+      done
+    done
+  '' ["doMakeInstall" "defEnsureDir"];
+
+  fixPaths = a.doPatchShebangs "$out/bin";
+
+  meta = {
+    description = "Text-to-speech engine";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.festvox.org/packed/festival/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/libraries/speechd/default.nix b/pkgs/development/libraries/speechd/default.nix
new file mode 100644
index 000000000000..0e542b353f67
--- /dev/null
+++ b/pkgs/development/libraries/speechd/default.nix
@@ -0,0 +1,20 @@
+{ fetchurl, stdenv, dotconf, glib, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "speech-dispatcher-" + version;
+  version = "0.7.1";
+
+  src = fetchurl {
+    url = "http://www.freebsoft.org/pub/projects/speechd/${name}.tar.gz";
+    sha256 = "0laag72iw03545zggdzcr860b8q7w1vrjr3csd2ldps7jhlwzad8";
+  };
+
+  buildInputs = [ dotconf glib pkgconfig ];
+
+  meta = {
+    description = "Common interface to speech synthesis";
+
+    homepage = http://www.freebsoft.org/speechd;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/sphinxbase/default.nix b/pkgs/development/libraries/sphinxbase/default.nix
new file mode 100644
index 000000000000..0631389ac0ed
--- /dev/null
+++ b/pkgs/development/libraries/sphinxbase/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, bison, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "sphinxbase-0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/cmusphinx/${name}.tar.gz";
+    sha256 = "0xab4ph9215rw5865gihmahbbnbi58klll5xg0il9ifld4wdjacq";
+  };
+
+  buildInputs = [ pkgconfig bison ];
+
+  meta = {
+    description = "Support Library for Pocketsphinx";
+    homepage = http://cmusphinx.sourceforge.net;
+    license = "free-non-copyleft";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 2a53f4b09bd2..5475e26dcca1 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -3,18 +3,18 @@
 assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation {
-  name = "sqlite-3.7.4";
+  name = "sqlite-3.7.7.1";
 
   src = fetchurl {
-    url = http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz;
-    sha256 = "131lwjqh1nfyrx4vjya2wdl6bnc0gzvcrg0wf06sz2iisj0h9vsl";
+    url = http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz;
+    sha256 = "1pvf72gb6yidc4zjml3k6kwhlvvhbgmbm8hfin9y5jvvbyr3dk3x";
   };
 
   buildInputs = [ readline ncurses ];
   
   configureFlags = "--enable-threadsafe";
 
-  NIX_CFLAGS_COMPILE = "-DSQLITE_ENABLE_COLUMN_METADATA=1";
+  NIX_CFLAGS_COMPILE = "-DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1";
   NIX_CFLAGS_LINK = if readline != null then "-lncurses" else "";
 
   meta = {
diff --git a/pkgs/desktops/kde-4.6/support/strigi/default.nix b/pkgs/development/libraries/strigi/default.nix
index 7a4cb3b664cb..2f9007c1bb16 100644
--- a/pkgs/desktops/kde-4.6/support/strigi/default.nix
+++ b/pkgs/development/libraries/strigi/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, expat, exiv2
-, cluceneCore
+{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, exiv2
+, clucene_core, fam, zlib, dbus
 }:
 
 stdenv.mkDerivation rec {
   name = "strigi-${version}";
-  version = "0.7.2";
+  version = "0.7.5";
 
   src = fetchurl {
     url = "http://www.vandenoever.info/software/strigi/${name}.tar.bz2";
-    sha256 = "1f1ac27cjm5m4iwsgvd7nylr0md0a95przkbpsdq7l90wjxj390w";
+    sha256 = "16qqnlh0dy3r92shzm2q36h5qi3m06pihr4h5cq944hpvqz5w7qi";
   };
-  includeAllQtDirs=true;
-  
-  CLUCENE_HOME = cluceneCore;
   
-  # Dependencies such as SQLite and FAM are unreliable in this release
-  buildInputs = [
-    cmake perl qt4 bzip2 stdenv.gcc.libc libxml2 expat exiv2 cluceneCore
-  ];
+  includeAllQtDirs=true;
+
+  CLUCENE_HOME = clucene_core;
+
+  buildInputs =
+    [ cmake perl zlib bzip2 stdenv.gcc.libc libxml2 qt4 exiv2 clucene_core fam dbus.tools ];
+
+  enableParallelBuilding = true;
 
   meta = {
     homepage = http://strigi.sourceforge.net;
diff --git a/pkgs/development/libraries/taglib/default.nix b/pkgs/development/libraries/taglib/default.nix
index 28a1b2205db9..39e2b88b85e9 100644
--- a/pkgs/development/libraries/taglib/default.nix
+++ b/pkgs/development/libraries/taglib/default.nix
@@ -1,16 +1,16 @@
-{stdenv, fetchurl, zlib}:
+{stdenv, fetchurl, zlib, cmake}:
 
-stdenv.mkDerivation {
-  name = "taglib-1.6.1";
+stdenv.mkDerivation rec {
+  name = "taglib-1.7.0";
   
   src = fetchurl {
-    url = http://developer.kde.org/~wheeler/files/src/taglib-1.6.1.tar.gz;
-    sha256 = "0i5s3n6i8ac5q7gqdnynrmi75as24nhy76y0q0v764llw82jlxcf";
+    url = "https://github.com/downloads/taglib/taglib/taglib-1.7.tar.gz";
+    sha256 = "0gvpmfrrh4wgdpyc14zq9mk3hivp8kbmfdxjk8bi2nf3py6zpph9";
   };
   
-  configureFlags = "--enable-asf --enable-mp4";
+  cmakeFlags = "-DWITH_ASF=ON -DWITH_MP4=ON";
 
-  buildInputs = [zlib];
+  buildInputs = [zlib cmake];
 
   meta = {
     homepage = http://developer.kde.org/~wheeler/taglib.html;
diff --git a/pkgs/development/libraries/taglib/1.7.nix b/pkgs/development/libraries/taglib/live.nix
index 1e8cfb564e99..35af2ff51958 100644
--- a/pkgs/development/libraries/taglib/1.7.nix
+++ b/pkgs/development/libraries/taglib/live.nix
@@ -1,13 +1,17 @@
-{stdenv, fetchsvn, zlib, cmake}:
+{stdenv, fetchsvn, fetchsvnrevision, zlib, cmake
+, repository ? "svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib"
+, rev ? fetchsvnrevision repository
+, src ? fetchsvn {
+    url = repository;
+    rev = rev;
+  }
+}:
 
 stdenv.mkDerivation {
-  name = "taglib-1.7a";
-  
-  src = fetchsvn {
-    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib;
-    rev = 1145554;
-  };
-  
+  name = "taglib-live";
+
+  inherit src;
+
   cmakeFlags = [ "-DWITH-ASF=ON" "-DWITH-MP4=ON" ];
 
   buildInputs = [ zlib cmake ];
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index 97f1b7cc26e0..f8fe2330cf9e 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv}:
+{ fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
   name = "talloc-2.0.1";
@@ -9,12 +9,11 @@ stdenv.mkDerivation rec {
   };
 
   configureFlags = "--enable-talloc-compat1 --enable-largefile";
+  
   meta = {
     description = "talloc is a hierarchical pool based memory allocator with destructors";
-
     homepage = http://tdb.samba.org/;
     license = "GPLv3";
-
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/tremor/default.nix b/pkgs/development/libraries/tremor/default.nix
new file mode 100644
index 000000000000..2770fadf0044
--- /dev/null
+++ b/pkgs/development/libraries/tremor/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchsvn, autoconf, automake, libtool, pkgconfig, libogg }:
+
+stdenv.mkDerivation rec {
+  name = "tremor-svn-${src.rev}";
+  
+  src = fetchsvn {
+    url = http://svn.xiph.org/trunk/Tremor;
+    rev = "17866";
+    sha256 = "161411cbefa1527da7a8fc087e78d8e21d19143d3a6eb42fb281e5026aad7568";
+  };
+
+  buildNativeInputs = [ autoconf automake libtool pkgconfig ];
+  propagatedBuildInputs = [ libogg ];
+
+  preConfigure = ''
+    autoreconf -vfi
+    sed -i /XIPH_PATH_OGG/d configure
+  '';
+
+  meta = {
+    homepage = http://xiph.org/tremor/;
+    description = "Fixed-point version of the Ogg Vorbis decoder";
+    license = "BSD";
+  };
+}
diff --git a/pkgs/development/libraries/ucommon/default.nix b/pkgs/development/libraries/ucommon/default.nix
new file mode 100644
index 000000000000..af481f2ffeda
--- /dev/null
+++ b/pkgs/development/libraries/ucommon/default.nix
@@ -0,0 +1,26 @@
+{ fetchurl, stdenv, gnutls, pkgconfig, zlib, libgcrypt }:
+
+stdenv.mkDerivation rec {
+  name = "ucommon-5.0.5";
+
+  src = fetchurl {
+    url = mirror://gnu/commoncpp/ucommon-5.0.5.tar.gz;
+    sha256 = "0rpq6qkhzcsls2rmnf1p1dnf9vyzmgw0cips3hl82mh0w5d70253";
+  };
+
+  buildInputs = [ pkgconfig gnutls zlib ];
+
+  # Propagate libgcrypt because it appears in `ucommon.pc'.
+  propagatedBuildInputs = [ libgcrypt ];
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU uCommon C++, C++ library to facilitate using C++ design patterns";
+    homepage = http://www.gnu.org/software/commoncpp/;
+    license = "LGPLv3+";
+
+    maintainers = with stdenv.lib.maintainers; [ viric ludo ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/ustr/default.nix b/pkgs/development/libraries/ustr/default.nix
new file mode 100644
index 000000000000..ebf9628126e2
--- /dev/null
+++ b/pkgs/development/libraries/ustr/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, glibc }:
+stdenv.mkDerivation rec {
+
+  name = "ustr-${version}";
+  version = "1.0.4";
+
+  src = fetchurl {
+    url = "http://www.and.org/ustr/${version}/${name}.tar.bz2";
+    sha256 = "1i623ygdj7rkizj7985q9d6vj5amwg686aqb5j3ixpkqkyp6xbrx";
+  };
+  prePatch = "substituteInPlace Makefile --replace /usr/include/ ${glibc}/include/";
+
+  makeFlags = "DESTDIR=$(out) prefix= LDCONFIG=echo";
+
+  configurePhase = "make ustr-import";
+  buildInputs = [ glibc ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.and.org/ustr/;
+    description = "Micro String API for C language";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.phreedom ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/libraries/vmime/default.nix b/pkgs/development/libraries/vmime/default.nix
new file mode 100644
index 000000000000..4f70b7a39a4b
--- /dev/null
+++ b/pkgs/development/libraries/vmime/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, gsasl, gnutls, pkgconfig, zlib, libtasn1 }:
+
+stdenv.mkDerivation {
+  name = "vmime-0.9.1";
+  src = fetchurl {
+    url = mirror://sourceforge/vmime/libvmime-0.9.1.tar.bz2;
+    sha256 = "1bninkznn07zhl7gc3jnigzvb0x1sclwqwgjy47ahzdwv5vcnriv";
+  };
+
+  buildInputs = [ gsasl gnutls pkgconfig zlib libtasn1 ];
+
+  meta = {
+    homepage = http://www.vmime.org/;
+    description = "Free mail library for C++";
+    license = "GPLv3";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/development/libraries/webkit/default.nix b/pkgs/development/libraries/webkit/default.nix
index d7f3c03eb8aa..63c6574d32ad 100644
--- a/pkgs/development/libraries/webkit/default.nix
+++ b/pkgs/development/libraries/webkit/default.nix
@@ -13,40 +13,45 @@ rec {
     gettext libjpeg libpng libtiff libxml2 libxslt pango
     sqlite icu gperf bison flex autoconf automake libtool 
     perl intltool pkgconfig libsoup gtkdoc libXt libproxy
-    enchant python ruby which renderproto libXrender
+    enchant python ruby which renderproto libXrender geoclue
     ];
 
   propagatedBuildInputs = [
     gstreamer gstPluginsBase gstFfmpeg gstPluginsGood
     ];
 
-  configureCommand = "./autogen.sh ";
   configureFlags = [
     "--enable-3D-transforms"
     "--enable-web-sockets"
     "--enable-web-timing"
-    "--enable-image-resizer"
+    
+    # https://bugs.webkit.org/show_bug.cgi?id=55294
+    # "--enable-image-resizer"
+
+    "--enable-geolocation"
+
+    # Not implemented?
+    # "--enable-web-audio"
 
     "--enable-mathml"
 
-    # https://bugs.webkit.org/show_bug.cgi?id=42943
-    # "--enable-wml"
+    #"--enable-wml"
     
     # https://bugs.webkit.org/show_bug.cgi?id=45110
     # "--enable-indexed-database"
 
-    # Related bug is marked as closed, but seems to persist
-    # "--enable-xhtmlmp"
+    "--enable-xhtmlmp"
 
     # "--enable-input-speech"
 
-    # https://bugs.webkit.org/show_bug.cgi?id=43878
-    # "--enable-file-writer"
-    # "--enable-blob"
+    "--enable-file-writer"
+    "--enable-blob"
+
+    # https://bugs.webkit.org/show_bug.cgi?id=59430
+    # "--enable-directory-upload"
 
-    # May be or not be triggering  https://bugs.webkit.org/show_bug.cgi?id=43878
+    # https://bugs.webkit.org/show_bug.cgi?id=58443
     # "--enable-file-system"
-    "--enable-directory-upload"
     ];
 
   /* doConfigure should be specified separately */
diff --git a/pkgs/development/libraries/webkit/src-for-default.nix b/pkgs/development/libraries/webkit/src-for-default.nix
index 93085c99ab3e..5f5149fedfe6 100644
--- a/pkgs/development/libraries/webkit/src-for-default.nix
+++ b/pkgs/development/libraries/webkit/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="r70732";
-   name="webkit-r70732";
-   hash="1y81rir7mwqxd40i4zzq79c7wa0pvvgvk332k1j94xwqfrffnxzi";
-   url="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r70732.tar.bz2";
-   advertisedUrl="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r70732.tar.bz2";
+   version="1.4.0";
+   name="webkit-1.4.0";
+   hash="123zllzlnkjgw4d2ag73dvrjmkikbapxlz5730ps6y4qm43gxc1y";
+   url="http://webkitgtk.org/webkit-1.4.0.tar.gz";
+   advertisedUrl="http://webkitgtk.org/webkit-1.4.0.tar.gz";
   
   
 }
diff --git a/pkgs/development/libraries/webkit/src-for-svn.nix b/pkgs/development/libraries/webkit/src-for-svn.nix
new file mode 100644
index 000000000000..f90bafbf6dc3
--- /dev/null
+++ b/pkgs/development/libraries/webkit/src-for-svn.nix
@@ -0,0 +1,9 @@
+rec {
+   version="r86499";
+   name="webkit-r86499";
+   hash="04sfwri81x2d9y3z0v7rhrr40vn0bxcbnhb8a0gymqkwa1ngpzmp";
+   url="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r86499.tar.bz2";
+   advertisedUrl="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r86499.tar.bz2";
+  
+  
+}
diff --git a/pkgs/development/libraries/webkit/src-info-for-default.nix b/pkgs/development/libraries/webkit/src-info-for-default.nix
index 994cae544cb2..c4e5b8a6fd6e 100644
--- a/pkgs/development/libraries/webkit/src-info-for-default.nix
+++ b/pkgs/development/libraries/webkit/src-info-for-default.nix
@@ -1,6 +1,6 @@
 {
-  downloadPage = "http://nightly.webkit.org/";
-  versionExtractorSedScript = "s/.*-(r[0-9]+)[.].*/\\1/";
-  versionReferenceCreator = "s/-(r[0-9.]+)[.]/-\${version}./";
+  downloadPage = "http://webkitgtk.org/?page=download";
+  versionExtractorSedScript = "s/.*-([.0-9]+)[.].*/\\1/";
+  versionReferenceCreator = "s/-([.0-9.]+)[.]/-\${version}./";
   baseName = "webkit";
 }
diff --git a/pkgs/development/libraries/webkit/src-info-for-svn.nix b/pkgs/development/libraries/webkit/src-info-for-svn.nix
new file mode 100644
index 000000000000..994cae544cb2
--- /dev/null
+++ b/pkgs/development/libraries/webkit/src-info-for-svn.nix
@@ -0,0 +1,6 @@
+{
+  downloadPage = "http://nightly.webkit.org/";
+  versionExtractorSedScript = "s/.*-(r[0-9]+)[.].*/\\1/";
+  versionReferenceCreator = "s/-(r[0-9.]+)[.]/-\${version}./";
+  baseName = "webkit";
+}
diff --git a/pkgs/development/libraries/webkit/svn.nix b/pkgs/development/libraries/webkit/svn.nix
new file mode 100644
index 000000000000..5eaaeec3d168
--- /dev/null
+++ b/pkgs/development/libraries/webkit/svn.nix
@@ -0,0 +1,91 @@
+args : with args; 
+let 
+  s = import ./src-for-default.nix;
+  version = lib.attrByPath ["version"] s.version args;
+in
+rec {
+  src = fetchurl {
+    url = s.url;
+    sha256 = s.hash;
+  };
+
+  buildInputs = [gtk glib atk cairo curl fontconfig freetype
+    gettext libjpeg libpng libtiff libxml2 libxslt pango
+    sqlite icu gperf bison flex autoconf automake libtool 
+    perl intltool pkgconfig libsoup gtkdoc libXt libproxy
+    enchant python ruby which renderproto libXrender geoclue
+    ];
+
+  propagatedBuildInputs = [
+    gstreamer gstPluginsBase gstFfmpeg gstPluginsGood
+    ];
+
+  configureCommand = "./autogen.sh ";
+  configureFlags = [
+    "--enable-3D-transforms"
+    "--enable-web-sockets"
+    "--enable-web-timing"
+    
+    # https://bugs.webkit.org/show_bug.cgi?id=55294
+    "--enable-image-resizer"
+
+    "--enable-geolocation"
+
+    # Not implemented?
+    # "--enable-web-audio"
+
+    "--enable-mathml"
+
+    "--enable-wml"
+    
+    # https://bugs.webkit.org/show_bug.cgi?id=45110
+    # "--enable-indexed-database"
+
+    "--enable-xhtmlmp"
+
+    # "--enable-input-speech"
+
+    "--enable-file-writer"
+    "--enable-blob"
+
+    # https://bugs.webkit.org/show_bug.cgi?id=59430
+    # "--enable-directory-upload"
+
+    # https://bugs.webkit.org/show_bug.cgi?id=58443
+    # "--enable-file-system"
+    ];
+
+  /* doConfigure should be specified separately */
+  phaseNames = ["setVars" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") 
+    "doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
+
+  setVars = fullDepEntry (''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lXt"
+  '') ["minInit"];
+
+  doReplaceUsrBin = fullDepEntry (''
+    for i in $(find . -name '*.pl') $(find . -name '*.pm'); do 
+        sed -e 's@/usr/bin/gcc@gcc@' -i $i
+    done
+  '') ["minInit" "doUnpack"];
+
+  doAddPrograms = fullDepEntry (''
+    ensureDir $out/bin
+    for i in Programs/.libs/* Programs/*; do 
+        cp $i $out/bin/webkit-program-$(basename $i) || true
+    done
+  '') ["minInit" "doMake" "defEnsureDir"];
+      
+  paranoidFixComments = fullDepEntry (''
+    sed -re 's@( |^)//.*@/* & */@' -i $(find . -name '*.c' -o -name '*.h')
+  '') ["minInit" "doUnpack"];
+
+  name = s.name;
+  meta = {
+    description = "WebKit - a fast and correct HTML renderer";
+    maintainers = [stdenv.lib.maintainers.raskin];
+  };
+  passthru = {
+    inherit gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
+  };
+}
diff --git a/pkgs/development/libraries/wvstreams/compile.patch b/pkgs/development/libraries/wvstreams/compile.patch
new file mode 100644
index 000000000000..c71e7396e918
--- /dev/null
+++ b/pkgs/development/libraries/wvstreams/compile.patch
@@ -0,0 +1,43 @@
+Debian's patch to build with fresher GCC
+
+Index: wvstreams-4.6.1/crypto/wvx509.cc
+===================================================================
+--- wvstreams-4.6.1.orig/crypto/wvx509.cc	2011-05-20 00:02:38.119136584 +0200
++++ wvstreams-4.6.1/crypto/wvx509.cc	2011-05-20 00:02:26.035136589 +0200
+@@ -1157,7 +1157,7 @@
+         
+         if (ext)
+         {
+-            X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++            X509V3_EXT_METHOD *method = (X509V3_EXT_METHOD *)X509V3_EXT_get(ext);
+             if (!method)
+             {
+                 WvDynBuf buf;
+Index: wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc
+===================================================================
+--- wvstreams-4.6.1.orig/ipstreams/wvunixdgsocket.cc	2011-05-20 00:02:38.391136584 +0200
++++ wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc	2011-05-20 00:02:35.283136585 +0200
+@@ -1,8 +1,6 @@
+ #include "wvunixdgsocket.h"
+-#ifdef MACOS
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#endif
+ 
+ WvUnixDGSocket::WvUnixDGSocket(WvStringParm filename, bool _server, int perms)
+     : socketfile(filename)
+Index: wvstreams-4.6.1/streams/wvatomicfile.cc
+===================================================================
+--- wvstreams-4.6.1.orig/streams/wvatomicfile.cc	2011-05-20 00:02:38.223136584 +0200
++++ wvstreams-4.6.1/streams/wvatomicfile.cc	2011-05-20 00:02:31.619136587 +0200
+@@ -10,10 +10,7 @@
+ #include "wvatomicfile.h"
+ #include "wvfileutils.h"
+ #include "wvstrutils.h"
+-
+-#ifdef MACOS
+ #include <sys/stat.h>
+-#endif
+ 
+ WvAtomicFile::WvAtomicFile(WvStringParm filename, int flags, mode_t create_mode)
+     : tmp_file(WvString::null)
diff --git a/pkgs/development/libraries/wvstreams/default.nix b/pkgs/development/libraries/wvstreams/default.nix
index e1238578edcc..0b551b753f57 100644
--- a/pkgs/development/libraries/wvstreams/default.nix
+++ b/pkgs/development/libraries/wvstreams/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation {
     sha256 = "0cvnq3mvh886gmxh0km858aqhx30hpyrfpg1dh6ara9sz3xza0w4";
   };
 
+  patches = [ ./compile.patch ];
+
   preConfigure = ''
     find -type f | xargs sed -i 's@/bin/bash@bash@g'
   '';
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index cc899d7b0034..1cfa57b24d21 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -9,11 +9,11 @@ assert gtk.libpng != null;
 assert gtk.libpng.zlib != null;
 
 stdenv.mkDerivation {
-  name = "wxGTK-2.8.11";
+  name = "wxGTK-2.8.12";
 
   src = fetchurl {
-    url = mirror://sourceforge/wxwindows/wxGTK-2.8.11.tar.gz;
-    sha256 = "149waiwwzw238avkhj8vmm1394nw45fa02b7cf1mqwc3jdd1pfz6";
+    url = mirror://sourceforge/wxwindows/wxGTK-2.8.12.tar.gz;
+    sha256 = "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk";
   };
 
   buildInputs = [
@@ -46,6 +46,7 @@ stdenv.mkDerivation {
   ";
 
   postBuild = "(cd contrib/src && make)";
+  
   postInstall = "
     (cd contrib/src && make install)
     (cd $out/include && ln -s wx-*/* .)
diff --git a/pkgs/development/libraries/wxGTK-2.9/2.9.0.nix b/pkgs/development/libraries/wxGTK-2.9/2.9.0.nix
new file mode 100644
index 000000000000..433f7fe2187d
--- /dev/null
+++ b/pkgs/development/libraries/wxGTK-2.9/2.9.0.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
+, mesa, compat24 ? false, compat26 ? true, unicode ? true,
+}:
+
+assert pkgconfig != null && gtk != null;
+assert gtk.libtiff != null;
+assert gtk.libjpeg != null;
+assert gtk.libpng != null;
+assert gtk.libpng.zlib != null;
+
+stdenv.mkDerivation {
+  name = "wxwidgets-2.9.0";
+
+  src = fetchurl {
+    url = mirror://sourceforge/wxwindows/wxWidgets-2.9.0.tar.bz2;
+    sha256 = "10n75mpypd9411b29gxmi0g2s7dgbfwkgiyhxwkjsyrmyvfc3xcc";
+  };
+
+  buildInputs = [
+    pkgconfig gtk gtk.libtiff gtk.libjpeg gtk.libpng gtk.libpng.zlib
+    libXinerama libSM libXxf86vm xf86vidmodeproto mesa
+  ];
+
+  configureFlags = [
+    "--enable-gtk2"
+    (if compat24 then "--enable-compat24" else "--disable-compat24")
+    (if compat26 then "--enable-compat26" else "--disable-compat26")
+    "--disable-precomp-headers"
+    (if unicode then "--enable-unicode" else "")
+    "--with-opengl"
+  ];
+
+  SEARCH_LIB = "${mesa}/lib";
+
+  preConfigure = "
+    substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
+    substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
+    substituteInPlace configure --replace /usr /no-such-path
+  ";
+
+  postInstall = "
+    (cd $out/include && ln -s wx-*/* .)
+  ";
+
+  passthru = {inherit gtk compat24 compat26 unicode;};
+}
diff --git a/pkgs/development/libraries/wxGTK-2.9/default.nix b/pkgs/development/libraries/wxGTK-2.9/default.nix
new file mode 100644
index 000000000000..8385a52db19a
--- /dev/null
+++ b/pkgs/development/libraries/wxGTK-2.9/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
+, mesa, compat24 ? false, compat26 ? true, unicode ? true,
+}:
+
+assert pkgconfig != null && gtk != null;
+assert gtk.libtiff != null;
+assert gtk.libjpeg != null;
+assert gtk.libpng != null;
+assert gtk.libpng.zlib != null;
+
+stdenv.mkDerivation {
+  name = "wxwidgets-2.9.1";
+
+  src = fetchurl {
+    url = mirror://sourceforge/wxwindows/wxWidgets-2.9.1.tar.bz2;
+    sha256 = "1f6pdlzjawhhs17hmimk0l1n3g4g48n2iqrgl181xqfrbxyz75b8";
+  };
+
+  buildInputs = [
+    pkgconfig gtk gtk.libtiff gtk.libjpeg gtk.libpng gtk.libpng.zlib
+    libXinerama libSM libXxf86vm xf86vidmodeproto mesa
+  ];
+
+  configureFlags = [
+    "--enable-gtk2"
+    (if compat24 then "--enable-compat24" else "--disable-compat24")
+    (if compat26 then "--enable-compat26" else "--disable-compat26")
+    "--disable-precomp-headers"
+    (if unicode then "--enable-unicode" else "")
+    "--with-opengl"
+  ];
+
+  SEARCH_LIB = "${mesa}/lib";
+
+  preConfigure = "
+    substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
+    substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
+    substituteInPlace configure --replace /usr /no-such-path
+  ";
+
+  postInstall = "
+    (cd $out/include && ln -s wx-*/* .)
+  ";
+
+  passthru = {inherit gtk compat24 compat26 unicode;};
+}
diff --git a/pkgs/development/libraries/x264/default.nix b/pkgs/development/libraries/x264/default.nix
index 9e5676e20123..0bba7af5c3d8 100644
--- a/pkgs/development/libraries/x264/default.nix
+++ b/pkgs/development/libraries/x264/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, yasm}:
 
 stdenv.mkDerivation rec {
-  version = "snapshot-20100624-2245";
+  version = "snapshot-20110724-2245-stable";
   name = "x264-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-${version}.tar.bz2";
-    sha256 = "0hva3j7h99hl3l1p32a1j6p35s5aakkg3plp8xx1wk6qplxhkqsq";
+    sha256 = "07bylkh8cwcmj01sr41hhrvfbciyixhw1irdpj01kz9d0h8dhhpz";
   };
 
   patchPhase = ''
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ yasm ];
 
   meta = { 
-      description = "library for encoding H264/AVC video streams";
-      homepage = http://www.videolan.org/developers/x264.html;
-      license = "GPL";
+    description = "library for encoding H264/AVC video streams";
+    homepage = http://www.videolan.org/developers/x264.html;
+    license = "GPL";
   };
 }
diff --git a/pkgs/development/libraries/xapian/1.0.x.nix b/pkgs/development/libraries/xapian/1.0.x.nix
new file mode 100644
index 000000000000..57240eb73356
--- /dev/null
+++ b/pkgs/development/libraries/xapian/1.0.x.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation {
+  name = "xapian-1.0.23";
+
+  src = fetchurl {
+    url = http://oligarchy.co.uk/xapian/1.0.23/xapian-core-1.0.23.tar.gz;
+    sha256 = "0aed7296bd56b4b49aba944cc744e1e76fff8cfb0a70fd5b1f49d4c62a97ecc6";
+  };
+
+  buildInputs = [ zlib ];
+
+  meta = { 
+    description = "Xapian Probabilistic Information Retrieval library";
+    homepage = "http://xapian.org";
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.chaoflow ];
+  };
+}
diff --git a/pkgs/development/libraries/xapian/bindings/1.0.x.nix b/pkgs/development/libraries/xapian/bindings/1.0.x.nix
new file mode 100644
index 000000000000..3417596c3930
--- /dev/null
+++ b/pkgs/development/libraries/xapian/bindings/1.0.x.nix
@@ -0,0 +1,74 @@
+{ stdenv, composableDerivation, fetchurl, xapian10, pkgconfig
+, python ? null, php ? null, ruby ? null }:
+
+let inherit (composableDerivation) wwf; in
+
+composableDerivation.composableDerivation {} rec {
+
+  name = "xapian-bindings-1.0.23";
+
+  src = fetchurl {
+    url = "http://oligarchy.co.uk/xapian/1.0.23/${name}.tar.gz";
+    sha256 = "6028123c3cd9bfc380b672b89f5420f7d5c063fc3511dee4dd5d34033ccb6911";
+  };
+
+  buildInputs = [ xapian10 pkgconfig ];
+
+  # most interpreters aren't tested yet.. (see python for example how to do it)
+  flags =
+         wwf {
+           name = "python";
+           enable = {
+            buildInputs = [ python ];
+            # export same env vars as in pythonNew
+            preConfigure = ''
+              export PYTHON_LIB=$out/lib/${python.libPrefix}/site-packages
+              ensureDir $out/nix-support
+              echo "export NIX_PYTHON_SITES=\"$out:\$NIX_PYTHON_SITES\"" >> $out/nix-support/setup-hook 
+              echo "export PYTHONPATH=\"$PYTHON_LIB:\$PYTHONPATH\"" >> $out/nix-support/setup-hook 
+            '';
+           };
+         }
+      // wwf {
+           name = "php";
+           enable = {
+             buildInputs = [ php ];
+             preConfigure = ''
+               export PHP_EXTENSION_DIR=$out/lib/php # TODO use a sane directory. Its not used anywhere by now
+             '';
+           };
+         }
+      // wwf {
+           name = "ruby";
+           enable = {
+             buildInputs = [ ruby ];
+             # export same env vars as in rubyLibs 
+             preConfigure = ''
+               export RUBY_LIB=$out/${ruby.libPath}
+               export RUBY_LIB_ARCH=$RUBY_LIB
+               ensureDir $out/nix-support
+               echo "export RUBYLIB=\"$RUBY_LIB:\$RUBYLIB\"" >> $out/nix-support/setup-hook 
+               echo "export GEM_PATH=\"$out:\$GEM_PATH\"" >> $out/nix-support/setup-hook 
+             '';
+           };
+         }
+
+      # note: see configure --help to get see which env vars can be used
+      # // wwf { name = "tcl";     enable = { buildInputs = [ tcl ];};}
+      # // wwf { name = "csharp"; }
+      # // wwf { name = "java"; }
+      ;
+
+  cfg = {
+    pythonSupport = true;
+    phpSupport = true;
+    rubySupport = true;
+  };
+
+  meta = { 
+    description = "Bindings for the Xapian library";
+    homepage = xapian10.meta.homepage;
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.chaoflow ];
+  };
+}
diff --git a/pkgs/development/libraries/xapian/bindings/default.nix b/pkgs/development/libraries/xapian/bindings/default.nix
index b2c172a4d57b..7dee0da9eedc 100644
--- a/pkgs/development/libraries/xapian/bindings/default.nix
+++ b/pkgs/development/libraries/xapian/bindings/default.nix
@@ -1,18 +1,18 @@
-{ composableDerivation, fetchurl, xapian, pkgconfig
+{ stdenv, composableDerivation, fetchurl, xapian, pkgconfig, zlib
 , python ? null, php ? null, ruby ? null }:
 
 let inherit (composableDerivation) wwf; in
 
-composableDerivation.composableDerivation {} {
+composableDerivation.composableDerivation {} rec {
 
-  name = "xapian-bindings-1.0.14";
+  name = "xapian-bindings-1.2.5";
 
   src = fetchurl {
-    url = http://oligarchy.co.uk/xapian/1.0.14/xapian-bindings-1.0.14.tar.gz;
-    sha256 = "060jjwddv6ws8iy3jkpl4zcrzzinkjvdblkl0gcja90qzl2j81q5";
+    url = "http://oligarchy.co.uk/xapian/1.2.5/${name}.tar.gz";
+    sha256 = "0d723af62b8d633cd49fdf92058a4985061659454b390c0c08db05fa4f7fb09c";
   };
 
-  buildInputs = [ xapian pkgconfig ];
+  buildInputs = [ xapian pkgconfig zlib ];
 
   # most interpreters aren't tested yet.. (see python for example how to do it)
   flags =
@@ -68,6 +68,7 @@ composableDerivation.composableDerivation {} {
   meta = { 
     description = "Bindings for the Xapian library";
     homepage = xapian.meta.homepage;
-    license = "GPLv2";
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.chaoflow ];
   };
 }
diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix
index 6b2966ee7e25..ac86c24af6cc 100644
--- a/pkgs/development/libraries/xapian/default.nix
+++ b/pkgs/development/libraries/xapian/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchurl, zlib }:
+{ stdenv, fetchurl, libuuid, zlib }:
 
 stdenv.mkDerivation {
-  name = "xapian-1.0.14";
+  name = "xapian-1.2.5";
 
   src = fetchurl {
-    url = http://oligarchy.co.uk/xapian/1.0.14/xapian-core-1.0.14.tar.gz;
-    sha256 = "0d51p6210059dbf0vn6zh2iyg4i5pynmhyh0gphnph2b317a1dcx";
+    url = http://oligarchy.co.uk/xapian/1.2.5/xapian-core-1.2.5.tar.gz;
+    sha256 = "392ccfccb4372725be24509e5ee95a7422f07c3d47d0cbdbb8545e789cc936f7";
   };
 
-  buildInputs = [zlib];
+  buildInputs = [ libuuid zlib ];
 
   meta = { 
     description = "Xapian Probabilistic Information Retrieval library";
     homepage = "http://xapian.org";
-    license = "GPLv2";
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.chaoflow ];
   };
 }
diff --git a/pkgs/development/libraries/xercesc/default.nix b/pkgs/development/libraries/xercesc/default.nix
new file mode 100644
index 000000000000..f5c9ba8a698b
--- /dev/null
+++ b/pkgs/development/libraries/xercesc/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "xerces-c-${version}";
+  version = "3.1.1";
+
+  src = fetchurl {
+    url = "mirror://apache/xerces/c/3/sources/${name}.tar.gz";
+    sha256 = "0dl7jr26vlh5p3hps86xrwyafq6f21schc9q4zyxb48b3vvqa9x4";
+  };
+
+  meta = {
+    homepage = http://xerces.apache.org/xerces-c/;
+    description = "Validating XML parser written in a portable subset of C++";
+    license = "ASL2.0";
+  };
+}
diff --git a/pkgs/development/libraries/xine-lib/builder.sh b/pkgs/development/libraries/xine-lib/builder.sh
deleted file mode 100644
index 4e39b46ba66c..000000000000
--- a/pkgs/development/libraries/xine-lib/builder.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-source $stdenv/setup
-
-if test -n "$libdvdcss"; then
-    # Ugly hack to force libdvdcss to be present (so the user doesn't
-    # have to set LD_LIBRARY_PATH).
-    export NIX_LDFLAGS="-rpath $libdvdcss/lib -L$libdvdcss/lib -ldvdcss $NIX_LDFLAGS"
-fi
-
-if test -n "$libXv"; then
-    configureFlags="--with-xv-path=$libXv/lib $configureFlags"
-fi
-
-genericBuild
\ No newline at end of file
diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix
index fcc77a29a96e..130af1b95a17 100644
--- a/pkgs/development/libraries/xine-lib/default.nix
+++ b/pkgs/development/libraries/xine-lib/default.nix
@@ -1,26 +1,37 @@
-{ stdenv, fetchurl, pkgconfig, xlibs, alsaLib, mesa, aalib
+{ stdenv, fetchurl, pkgconfig, xorg, alsaLib, mesa, aalib
 , libvorbis, libtheora, speex, zlib, libdvdcss, perl, ffmpeg
+, flac, libcaca, pulseaudio, libmng
 }:
 
 stdenv.mkDerivation rec {
-  name = "xine-lib-1.1.16.3";
+  name = "xine-lib-1.1.19";
   
   src = fetchurl {
     url = "mirror://sourceforge/xine/${name}.tar.bz2";
-    sha256 = "0lkvss7r8q16gyisiy3dkgbbk6vvpflfydi3927pvp2mz8g28nnj";
+    sha256 = "0x47kmsaxx1bv8w2cacvzls3sjw9y4vk82rd94km1m1s6k2wcxv2";
   };
-  
-  buildInputs =
-    [ xlibs.xlibs pkgconfig xlibs.libXv xlibs.libXinerama alsaLib mesa aalib
-      libvorbis libtheora speex perl ffmpeg
-      # removed SDL dependency; it's a big dependency and doesn't seem
-      # particularly useful here.
+
+  patches =
+    [ (fetchurl {
+        url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/xine-lib/files/xine-lib-1.1.19-ffmpeg.patch?revision=1.1";
+        sha256 = "0dqr0kc829djfn0wvk4jg84v61pxynqbp4s4phvywd7x9caf092b";
+      })
     ];
-    
+  
+  buildNativeInputs = [ pkgconfig perl ];
+
+  buildInputs = [
+    xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext
+    alsaLib mesa aalib libvorbis libtheora speex perl ffmpeg flac
+    libcaca pulseaudio libmng
+  ];
+
   NIX_LDFLAGS = "-rpath ${libdvdcss}/lib -L${libdvdcss}/lib -ldvdcss";
   
   propagatedBuildInputs = [zlib];
 
+  enableParallelBuilding = true;
+
   meta = {
     homepage = http://www.xine-project.org/;
     description = "A high-performance, portable and reusable multimedia playback engine";
diff --git a/pkgs/development/libraries/xine-lib/xine-lib-linux-headers-2.6.23.patch b/pkgs/development/libraries/xine-lib/xine-lib-linux-headers-2.6.23.patch
deleted file mode 100644
index cd3d766ea8f2..000000000000
--- a/pkgs/development/libraries/xine-lib/xine-lib-linux-headers-2.6.23.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# HG changeset patch
-# User Ken Moffat <zarniwhoop@users.sourceforge.net>
-# Date 1193435051 -3600
-# Node ID 8a369a0d5ff104cc115bbe76c6b4f3e281d1ef25
-# Parent 05fde4048642d1a7edb19ea623acd760064718bc
-Linux-2.6.23 header change breaks build
->
-> /* Special codes used when specifying changer slots. */
-> #define CDSL_NONE               (INT_MAX-1)
-> #define CDSL_CURRENT            INT_MAX
-
---- a/src/input/vcd/libcdio/_cdio_linux.c	Tue Oct 23 23:45:58 2007 +0100
-+++ b/src/input/vcd/libcdio/_cdio_linux.c	Fri Oct 26 22:44:11 2007 +0100
-@@ -59,6 +59,7 @@ static const char _rcsid[] = "$Id: _cdio
- #include <unistd.h>
- #include <fcntl.h>
- #include <mntent.h>
-+#include <limits.h>
- 
- #include <linux/cdrom.h>
- #include <scsi/scsi.h>
-
diff --git a/pkgs/development/libraries/xvidcore/default.nix b/pkgs/development/libraries/xvidcore/default.nix
index 7276402cbf5d..e03773292bb5 100644
--- a/pkgs/development/libraries/xvidcore/default.nix
+++ b/pkgs/development/libraries/xvidcore/default.nix
@@ -1,18 +1,22 @@
 {stdenv, fetchurl, nasm}:
 
 stdenv.mkDerivation rec {
-  name = "xvidcore-1.2.2";
+  name = "xvidcore-1.3.2";
   
   src = fetchurl {
-    url = http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.bz2;
-    sha256 = "04bd1clv90i5pdwh6mz3mskyzmxyx5l2nx7lyyb8nhw9whnn0ap4";
+    url = "http://downloads.xvid.org/downloads/${name}.tar.bz2";
+    sha256 = "1x0b2rq6fv99ramifhkakycd0prjc93lbzrffbjgjwg7w4s17hfn";
   };
 
-  preConfigure = ''
-    cd build/generic
-  '';
+  preConfigure = "cd build/generic";
 
   buildInputs = [ nasm ];
+
+  postInstall =
+    ''
+      rm $out/lib/*.a
+      (cd $out/lib && ln -s *.so.4.* libxvidcore.so && ln -s *.so.4.* libxvidcore.so.4 )
+    '';
   
   meta = {
     description = "MPEG-4 video codec for PC";
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index a4a91960c0bc..f1b8a006ecfd 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -19,7 +19,15 @@ stdenv.mkDerivation (rec {
 
   crossAttrs = {
     dontStrip = if static then true else false;
-  };
+  } // (if stdenv.cross.libc == "msvcrt" then {
+    configurePhase=''
+      installFlags="BINARY_PATH=$out/bin INCLUDE_PATH=$out/include LIBRARY_PATH=$out/lib"
+    '';
+    makeFlags = [
+      "-f" "win32/Makefile.gcc"
+      "PREFIX=${stdenv.cross.config}-"
+    ] ++ (if static then [] else [ "SHARED_MODE=1" ]);
+  } else {});
 
   # zlib doesn't like the automatic --disable-shared from the Cygwin stdenv.
   cygwinConfigureEnableShared = true;
diff --git a/pkgs/development/misc/avr-gcc-with-avr-libc/avr-libc-fix-gcc-4.6.0.patch b/pkgs/development/misc/avr-gcc-with-avr-libc/avr-libc-fix-gcc-4.6.0.patch
new file mode 100644
index 000000000000..e59e40091bfe
--- /dev/null
+++ b/pkgs/development/misc/avr-gcc-with-avr-libc/avr-libc-fix-gcc-4.6.0.patch
@@ -0,0 +1,29 @@
+# Patch from Gentoo
+
+diff -ur 1/include/avr/pgmspace.h 2/include/avr/pgmspace.h
+--- 1/include/avr/pgmspace.h	2011-05-31 18:19:44.524000823 +0200
++++ 2/include/avr/pgmspace.h	2011-05-31 18:20:27.576000824 +0200
+@@ -252,7 +252,7 @@
+ # define PSTR(s) ((const PROGMEM char *)(s))
+ #else  /* !DOXYGEN */
+ /* The real thing. */
+-# define PSTR(s) (__extension__({static char __c[] PROGMEM = (s); &__c[0];}))
++# define PSTR(s) (__extension__({static const char __c[] PROGMEM = (s); &__c[0];}))
+ #endif /* DOXYGEN */
+ 
+ #define __LPM_classic__(addr)   \
+diff -ur 1/libc/stdlib/dtostre.c 2/libc/stdlib/dtostre.c
+--- 1/libc/stdlib/dtostre.c	2011-05-31 18:19:44.639000823 +0200
++++ 2/libc/stdlib/dtostre.c	2011-05-31 18:20:27.639000824 +0200
+@@ -37,9 +37,9 @@
+ char *
+ dtostre (double val, char *sbeg, unsigned char prec, unsigned char flags)
+ {
+-    __attribute__((progmem)) static char str_nan[2][4] =
++    __attribute__((progmem)) static const char str_nan[2][4] =
+ 	{"nan", "NAN"};
+-    __attribute__((progmem)) static char str_inf[2][sizeof(str_nan[0])] =
++    __attribute__((progmem)) static const char str_inf[2][sizeof(str_nan[0])] =
+ 	{"inf", "INF"};
+     char *d;		/* dst	*/
+     char *s;		/* src	*/
diff --git a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix b/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix
index 06063db491e9..83e800faa2c3 100644
--- a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix
+++ b/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix
@@ -1,21 +1,23 @@
-{ stdenv, fetchurl, writeTextFile, coreutils, gnumake, gcc, gnutar, bzip2, gnugrep, gnused, gawk }:
+{ stdenv, fetchurl, writeTextFile, coreutils, gnumake, gcc, gnutar, bzip2
+  , gnugrep, gnused, gawk, diffutils, patch
+  , gmp, mpfr, mpc }:
 
 stdenv.mkDerivation {
   name = "avr-gcc-libc";
 
   srcBinutils = fetchurl {
-    url = ftp://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2;
-    sha256 = "0pm20n2l9ddgdpgzk3zhnbb8nbyb4rb2kvcw21pkd6iwybk3rhz2";
+    url = "mirror://gnu/binutils/binutils-2.21.tar.bz2";
+    sha256 = "1iyhc42zfa0j2gaxy4zvpk47sdqj4rqvib0mb8597ss8yidyrav0";
   };
 
   srcGCC = fetchurl {
-    url = ftp://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-core-4.1.2.tar.bz2;
-    sha256 = "07binc1hqlr0g387zrg5sp57i12yzd5ja2lgjb83bbh0h3gwbsbv";
+    url = "mirror://gcc/releases/gcc-4.6.1/gcc-core-4.6.1.tar.bz2";
+    sha256 = "0bbb8f754a31f29013f6e9ad4c755d92bb0f154a665c4b623e86ae7174d98e33";
   };
 
   srcAVRLibc = fetchurl {
-    url = http://www.very-clever.com/download/nongnu/avr-libc/avr-libc-1.4.5.tar.bz2;
-    sha256 = "058iv3vs6syy01pfkd5894xap9zakjx8ki1bpjdnihn6vk6fr80l";
+    url = http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.7.1.tar.bz2;
+    sha256 = "1b1s4cf787izlm3r094vvkzrzb3w3bg6bwiz2wz71cg7q07kzzn6";
   };
 
   phases = "doAll";
@@ -24,7 +26,7 @@ stdenv.mkDerivation {
   builder = writeTextFile {
     name = "avrbinutilsgccavrlibc-builder-script";
     text =  ''
-    PATH=${coreutils}/bin:${gnumake}/bin:${gcc}/bin:${gnutar}/bin:${bzip2}/bin:${gnugrep}/bin:${gnused}/bin:${gawk}/bin
+    PATH=${coreutils}/bin:${gnumake}/bin:${gcc}/bin:${gnutar}/bin:${bzip2}/bin:${gnugrep}/bin:${gnused}/bin:${gawk}/bin:${diffutils}/bin:${patch}/bin
     # that's all a bit too hacky...!
     for i in `cat ${gcc}/nix-support/propagated-user-env-packages`; do
       echo adding $i
@@ -33,6 +35,11 @@ stdenv.mkDerivation {
     mkdir -p "$out"
     export > env-vars
 
+    for i in "${gmp}" "${mpfr}" "${mpc}"; do
+      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$i/include "
+      export NIX_LDFLAGS="$NIX_LDFLAGS -L$i/lib "
+    done
+
     # important, without this gcc won't find the binutils executables
     PATH=$PATH:$out/bin
 
@@ -51,13 +58,14 @@ stdenv.mkDerivation {
       cd gcc-*
       mkdir obj-avr
       cd obj-avr
-      ../configure --target=avr --prefix="$prefix" --disable-nls --enable-languages=c --disable-libssp
+      ../configure --target=avr --prefix="$prefix" --disable-nls --enable-languages=c --disable-libssp --with-dwarf2
       make $MAKE_FLAGS
       make install
 
     cd $TMP
       tar jxf $srcAVRLibc
       cd avr-libc-*
+      patch -Np1 -i ${./avr-libc-fix-gcc-4.6.0.patch}
       ./configure --prefix="$prefix" --build=`./config.guess` --host=avr
       make $MAKE_FLAGS
       make install
diff --git a/pkgs/development/misc/intelgen4asm/default.nix b/pkgs/development/misc/intelgen4asm/default.nix
new file mode 100644
index 000000000000..d0e2517cdd9e
--- /dev/null
+++ b/pkgs/development/misc/intelgen4asm/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchgit, autoconf, automake, libtool, bison, flex }:
+
+stdenv.mkDerivation rec {
+  name = "intel-g4asm-20110416";
+  
+  src = fetchgit {
+    url = http://anongit.freedesktop.org/git/xorg/app/intel-gen4asm.git;
+    rev = "2450ff752642d116eb789a35393b9828133c7d31";
+    sha256 = "a24c054a7c5ae335b72523fd2f51cae7f07a2885ef3c7a04d07a85e39f0c053f";
+  };
+
+  buildInputs = [ autoconf automake libtool bison flex ];
+
+  preConfigure = "sh autogen.sh";
+
+  meta = {
+    homepage = http://cgit.freedesktop.org/xorg/app/intel-gen4asm/;
+    license = "MIT";
+    description = "Program to compile an assembly language for the Intel 965 Express Chipset";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix
index ce946c3d31fc..876b87408e8d 100644
--- a/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/pkgs/development/ocaml-modules/batteries/default.nix
@@ -2,21 +2,28 @@
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
-  version = "1.2.0";
 in
 
 stdenv.mkDerivation {
-  name = "ocaml-batteries-${version}";
+  name = "ocaml-batteries-1.4.0";
 
   src = fetchurl {
-    url = "http://forge.ocamlcore.org/frs/download.php/423/batteries-${version}.tar.gz";
-    sha256 = "0lkkbfj51zkhhr56nx167448pvg02nrzjjkl57ycic2ikzgq6lmx";
+    url = https://forge.ocamlcore.org/frs/download.php/643/batteries-1.4.0.tar.gz;
+    sha256 = "1qyhiyanlhpbj0dv0vyqak87qfadjzg2pb8q93iybmg59akaxl15";
   };
 
   buildInputs = [ocaml findlib camomile ounit];
 
+  patchPhase = ''
+    substituteInPlace Makefile --replace '/bin/echo -n' echo
+  '';
+
   configurePhase = "true"; 	# Skip configure
 
+  preInstall = ''
+    ensureDir "$out/lib/ocaml/${ocaml_version}/site-lib"
+  '';
+
   doCheck = true;
 
   checkTarget = "test";
diff --git a/pkgs/development/ocaml-modules/camlzip/META b/pkgs/development/ocaml-modules/camlzip/META
index 72f5a3b8bd02..44c5168ae518 100644
--- a/pkgs/development/ocaml-modules/camlzip/META
+++ b/pkgs/development/ocaml-modules/camlzip/META
@@ -1,6 +1,6 @@
 version="@VERSION@"
 description="reading and writing ZIP, JAR and GZIP files"
 requires="unix"
-archive(byte)="camlzip.cma"
-archive(native)="camlzip.cmxa"
+archive(byte)="zip.cma"
+archive(native)="zip.cmxa"
 linkopts = ""
diff --git a/pkgs/development/ocaml-modules/camomile/0.8.1.nix b/pkgs/development/ocaml-modules/camomile/0.8.2.nix
index 4a838e99f0bd..674c6c0367b4 100644
--- a/pkgs/development/ocaml-modules/camomile/0.8.1.nix
+++ b/pkgs/development/ocaml-modules/camomile/0.8.2.nix
@@ -2,7 +2,7 @@
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
-  version = "0.8.1";
+  version = "0.8.2";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/camomile/camomile-${version}.tar.bz2";
-    sha256 = "1r84y7wl10zkjmp8qqq2bcmll23qmfczlnykm74hxkig8ksm0g6a";
+    sha256 = "0x43pjxx70kgip86mmdn08s97k4qzdqc8i79xfyyx28smy1bsa00";
   };
 
   buildInputs = [ocaml findlib];
diff --git a/pkgs/development/ocaml-modules/camomile/0.7.3.nix b/pkgs/development/ocaml-modules/camomile/default.nix
index 12b816dec36a..1d4b98bf0e57 100644
--- a/pkgs/development/ocaml-modules/camomile/0.7.3.nix
+++ b/pkgs/development/ocaml-modules/camomile/default.nix
@@ -2,7 +2,7 @@
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
-  version = "0.7.3";
+  version = "0.8.3";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/camomile/camomile-${version}.tar.bz2";
-    sha256 = "0cm3j3ppl15fp597ih3qiagxyg8kpql9apapkqaib2xccc44zb5l";
+    #sha256 = "0x43pjxx70kgip86mmdn08s97k4qzdqc8i79xfyyx28smy1bsa00";
+    sha256 = "0yzj6j88aqrkbcynqh1d7r54670m1sqf889vdcgk143w85fxdj4l";
   };
 
   buildInputs = [ocaml findlib];
diff --git a/pkgs/development/ocaml-modules/expat/default.nix b/pkgs/development/ocaml-modules/expat/default.nix
new file mode 100644
index 000000000000..b2702a5cade6
--- /dev/null
+++ b/pkgs/development/ocaml-modules/expat/default.nix
@@ -0,0 +1,51 @@
+{stdenv, fetchurl, ocaml, findlib, ounit, expat}:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  version = "0.9.1";
+  pname = "ocaml-expat";
+  testcase = fetchurl {
+    url = "http://www.w3.org/TR/1998/REC-xml-19980210.xml";
+    sha256 = "00a3gsfvlkdhmcbziqhvpvy1zmcgbcihfqwcvl6ay03zf7gvw0k1";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.xs4all.nl/~mmzeeman/ocaml/${pname}-${version}.tar.gz";
+    sha256 = "16n2j3y0jc9xgqyshw9plrwqnjiz30vnpbhahmgxlidbycw8rgjz";
+  };
+
+  buildInputs = [ocaml findlib ounit expat];
+
+  createFindlibDestdir = true;
+
+  patches = [ ./unittest.patch ];
+
+  postPatch = ''
+    substituteInPlace "unittest.ml" \
+      --replace "/home/maas/xml-samples/REC-xml-19980210.xml.txt" "${testcase}"
+    substituteInPlace Makefile --replace "EXPAT_LIBDIR=/usr/local/lib" "EXPAT_LIBDIR=${expat}/lib" \
+    substituteInPlace Makefile --replace "EXPAT_INCDIR=/usr/local/include" "EXPAT_INCDIR=${expat}/include" \
+  '';
+
+  configurePhase = "true";  	# Skip configure
+
+  buildPhase = ''
+    make all allopt
+  '';
+
+  doCheck = true;
+
+  checkTarget = "testall";
+
+  meta = {
+    homepage = http://www.xs4all.nl/~mmzeeman/ocaml/;
+    description = "An ocaml wrapper for the Expat XML parsing library";
+    license = "MIT/X11";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/expat/unittest.patch b/pkgs/development/ocaml-modules/expat/unittest.patch
new file mode 100644
index 000000000000..489b745c503a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/expat/unittest.patch
@@ -0,0 +1,15 @@
+--- old/Makefile	2005-03-13 09:00:29.000000000 -0500
++++ new/Makefile	2010-08-26 14:20:34.515785557 -0400
+@@ -67,10 +67,10 @@
+ testall: test testopt
+ .PHONY: test
+ test: unittest 	
+-	./unittest
++	LD_LIBRARY_PATH=. ./unittest
+ .PHONY: testopt
+ testopt: unittest.opt
+-	./unittest.opt
++	LD_LIBRARY_PATH=. ./unittest.opt
+ unittest: all unittest.ml
+ 	$(OCAMLFIND) ocamlc -o unittest -package oUnit -ccopt -L. -linkpkg \
+ 	$(ARCHIVE) unittest.ml
diff --git a/pkgs/development/ocaml-modules/gmetadom/default.nix b/pkgs/development/ocaml-modules/gmetadom/default.nix
new file mode 100644
index 000000000000..4d46bda243f3
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gmetadom/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, ocaml, findlib, gdome2, libxslt, pkgconfig}:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  version = "0.2.6";
+  pname = "gmetadom";
+
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/${pname}/${version}/${pname}-${version}.tar.gz";
+    sha256 = "0skmlv0pnqvg99wzzzi1h4zhwzd82xg7xpkj1kwpfy7bzinjh7ig";
+  };
+
+  patches = [ ./gcc-4.3.dpatch ];
+
+  dontDisableStatic = true;
+
+  preConfigure=''
+    configureFlags="--with-ocaml-lib-prefix=$out/lib/ocaml/${ocaml_version}/site-lib"
+  '';
+
+
+  buildInputs = [ocaml findlib pkgconfig gdome2 libxslt];
+  propagatedBuildInputs = [gdome2];
+
+  meta = {
+    homepage = http://gmetadom.sourceforge.net/;
+    description = "GMetaDOM is a collection of librares, each library providing a DOM implementation";
+    license = "LGPLv2.1+";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch b/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch
new file mode 100644
index 000000000000..d8d1d4631632
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch
@@ -0,0 +1,18 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## gcc-4.3.dpatch by Stefano Zacchiroli <zack@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: ensure sources build with gcc-4.3
+
+@DPATCH@
+diff -urNad trunk~/src/shared/Traits.hh.in trunk/src/shared/Traits.hh.in
+--- trunk~/src/shared/Traits.hh.in	2003-01-14 12:41:55.000000000 +0100
++++ trunk/src/shared/Traits.hh.in	2008-05-01 15:45:39.000000000 +0200
+@@ -26,6 +26,7 @@
+  */
+ 
+ #include <string>
++#include <cstring>
+ 
+ #include "@DOM_NAMESPACE@Char.hh"
+ 
diff --git a/pkgs/development/ocaml-modules/http/default.nix b/pkgs/development/ocaml-modules/http/default.nix
new file mode 100644
index 000000000000..46398d26114b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/http/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, ocaml_pcre, ocamlnet, ocaml, findlib}:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "ocaml-http";
+  version = "0.1.3";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://upsilon.cc/~zack/hacking/software/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "070xw033r4pk6f4l0wcknm75y9qm4mp622a4cgzmcfhm58v6kssn";
+  };
+
+  buildInputs = [ocaml_pcre ocamlnet ocaml findlib];
+
+  createFindlibDestdir = true;
+
+  prePatch = ''
+    BASH=$(type -tp bash)
+    echo $BASH
+    substituteInPlace Makefile --replace "SHELL=/bin/bash" "SHELL=$BASH"
+  '';
+
+  configurePhase = "true";	# Skip configure phase
+
+  buildPhase = ''
+    make all opt
+  '';
+
+  meta = {
+    homepage = "http://upsilon.cc/~zack/hacking/software/ocaml-http/";
+    description = "do it yourself (OCaml) HTTP daemon";
+    license = "LGPLv2";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lablgtk/META.patch b/pkgs/development/ocaml-modules/lablgtk/META.patch
new file mode 100644
index 000000000000..d2b7b500c69b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lablgtk/META.patch
@@ -0,0 +1,64 @@
+diff -ruN zzz/lablgtk-2.14.1/META lablgtk-2.14.1/META
+--- zzz/lablgtk-2.14.1/META	2009-02-12 21:39:14.000000000 -0500
++++ lablgtk-2.14.1/META	2010-09-07 19:48:06.454452726 -0400
+@@ -1,8 +1,52 @@
+-requires=""
+-version="2.12.0"
+-archive(byte)="lablgtk.cma"
+-archive(byte,init)="lablgtk.cma gtkInit.cmo"
+-archive(native)="lablgtk.cmxa"
+-archive(native,init)="lablgtk.cmxa gtkInit.cmx"
+-linkopts=""
+-directory="+lablgtk2"
++version="2.14.1"
++requires(mt) = "threads"
++requires(mt,mt_vm) = "threads.vm"
++requires(mt,mt_posix) = "threads.posix"
++archive(byte) = "lablgtk.cma"
++archive(native) = "lablgtk.cmxa"
++archive(byte,mt) += "gtkThread.cmo"
++archive(native,mt) += "gtkThread.cmx"
++
++package "init" (
++  requires = "lablgtk2"
++  archive(byte) = "gtkInit.cmo"
++  archive(native) = "gtkInit.cmx"
++)
++
++package "glade" (
++  requires = "lablgtk2"
++  archive(byte) = "lablglade.cma"
++  archive(native) = "lablglade.cmxa"
++)
++
++package "gtkspell" (
++  requires = "lablgtk2"
++  archive(byte) = "lablgtkspell.cma"
++  archive(native) = "lablgtkspell.cmxa"
++)
++
++package "gnomecanvas" (
++  archive(byte)	= "lablgnomecanvas.cma"
++  archive(native) = "lablgnomecanvas.cmxa"
++)
++
++package "gnomeui" (
++  archive(byte) = "lablgnomeui.cma"
++  archive(native) = "lablgnomeui.cmxa"
++)
++
++package "panel" (
++  archive(byte) = "lablpanel.cma"
++  archive(native) = "lablpanel.cmxa"
++)
++
++package "rsvg" (
++  archive(byte) = "lablrsvg.cma"
++  archive(native) = "lablrsvg.cmxa"
++)
++
++package "gtksourceview" (
++  requires = "lablgtk2"
++  archive(byte) = "lablgtksourceview2.cma"
++  archive(native) = "lablgtksourceview2.cmxa"
++)
diff --git a/pkgs/development/ocaml-modules/lablgtk/default.nix b/pkgs/development/ocaml-modules/lablgtk/default.nix
new file mode 100644
index 000000000000..8a51c216ab40
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lablgtk/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib, pkgconfig, gtk, libgnomecanvas, libglade, gtksourceview}:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "lablgtk";
+  version = "2.14.2";
+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";
+  };
+
+  buildInputs = [ocaml findlib pkgconfig gtk libgnomecanvas libglade gtksourceview];
+
+  patches = [ ./META.patch ];
+
+  configureFlags = "--with-libdir=$(out)/lib/ocaml/${ocaml_version}/site-lib";
+  buildFlags = "world";
+
+  postInstall = ''
+    ocamlfind install lablgtk2 META
+  '';
+
+  meta = {
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.z77z
+      stdenv.lib.maintainers.roconnor
+    ];
+    homepage = http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html;
+    description = "LablGTK is is an Objective Caml interface to gtk+";
+    license = "LGPLv2.1+";
+  };
+})
diff --git a/pkgs/development/ocaml-modules/lablgtkmathview/configure.patch b/pkgs/development/ocaml-modules/lablgtkmathview/configure.patch
new file mode 100644
index 000000000000..b841e8f43822
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lablgtkmathview/configure.patch
@@ -0,0 +1,14 @@
+--- configure	2010-09-02 10:58:16.128236964 -0400
++++ configure.old	2010-09-02 10:57:42.368111615 -0400
+@@ -1637,9 +1637,9 @@
+ echo "$as_me:$LINENO: result: $ac_cv_file__usr_include_caml_mlvalues_h" >&5
+ echo "${ECHO_T}$ac_cv_file__usr_include_caml_mlvalues_h" >&6
+ if test $ac_cv_file__usr_include_caml_mlvalues_h = yes; then
+-  OCAML_INCLUDE_DIR=/usr/include
++  OCAML_INCLUDE_DIR=/usr/include/caml
+ else
+-  OCAML_INCLUDE_DIR=$OCAML_LIB_DIR
++  OCAML_INCLUDE_DIR=$OCAML_LIB_DIR/caml
+ 
+ fi
+ 
diff --git a/pkgs/development/ocaml-modules/lablgtkmathview/default.nix b/pkgs/development/ocaml-modules/lablgtkmathview/default.nix
new file mode 100644
index 000000000000..13c25495cdc6
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lablgtkmathview/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, pkgconfig, ocaml, findlib, gmetadom, gtkmathview, lablgtk }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  version = "0.7.2";
+  pname = "lablgtkmathview";
+
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://helm.cs.unibo.it/mml-widget/sources/${pname}-${version}.tar.gz";
+    sha256 = "0rgrpgwrgphw106l1xawxir002b7rmzc23rcxhv8ib6rymp1divx";
+  };
+
+  buildInputs = [pkgconfig ocaml findlib gmetadom gtkmathview lablgtk];
+
+  createFindlibDestdir = true;
+
+  propagatedBuildInputs = [gtkmathview];
+
+  prePatch = ''
+    substituteInPlace Makefile.in --replace "PROPCC = @OCAML_LIB_DIR@" "PROPCC = ${lablgtk}/lib/ocaml/${ocaml_version}/site-lib"
+  '';
+
+  buildPhase = ''
+    ensureDir .test
+    make
+    make opt
+  '';
+
+  meta = {
+    homepage = http://helm.cs.unibo.it/mml-widget/;
+    description = "OCaml bindings for gtkmathview";
+    license = "LGPLv2+";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mysql/default.nix b/pkgs/development/ocaml-modules/mysql/default.nix
new file mode 100644
index 000000000000..32455fb4310c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mysql/default.nix
@@ -0,0 +1,42 @@
+{stdenv, fetchurl, ocaml, findlib, mysql}:
+
+# TODO: la versione stabile da' un errore di compilazione dovuto a
+# qualche cambiamento negli header .h
+# TODO: compilazione di moduli dipendenti da zip, ssl, tcl, gtk, gtk2
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "ocaml-mysql";
+  version = "1.0.4";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://raevnos.pennmush.org/code/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "17i5almar8qrhc9drq0cvlprxf9wi9szj5kh4gnz11l9al8i3lar";
+  };
+
+  buildInputs = [ocaml findlib mysql];
+
+  createFindlibDestdir = true;
+
+  propagatedbuildInputs = [mysql];
+
+  preConfigure = ''
+    export LDFLAGS="-L${mysql}/lib/mysql"
+  '';
+
+  buildPhase = ''
+    make
+    make opt
+  '';
+
+  meta = {
+    homepage = http://raevnos.pennmush.org/code/ocaml-mysql/;
+    description = "Bindings for interacting with MySQL databases from ocaml";
+    license = "LGPLv2.1+";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix
index 07a781657b3f..e4dc43743f32 100644
--- a/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation {
 
   buildInputs = [ncurses ocaml findlib ocaml_pcre camlzip openssl ocaml_ssl];
 
+  createFindlibDestdir = true;
+
   dontAddPrefix = true;
 
   preConfigure = ''
diff --git a/pkgs/development/ocaml-modules/ulex/0.8/camlp5.patch b/pkgs/development/ocaml-modules/ulex/0.8/camlp5.patch
new file mode 100644
index 000000000000..2fa92527035e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ulex/0.8/camlp5.patch
@@ -0,0 +1,72 @@
+Author: Stefano Zacchiroli <zack@debian.org>
+Description: build (and install) using camlp5 instead of camlp4
+--- ulex0.8.orig/META
++++ ulex0.8/META
+@@ -1,5 +1,5 @@
+ version = "0.8"
+-requires = "camlp4"
++requires = "camlp5"
+ description = "Runtime support for ulex"
+ archive(byte) = "ulexing.cma"
+ archive(native) = "ulexing.cmxa"
+--- ulex0.8.orig/Makefile
++++ ulex0.8/Makefile
+@@ -20,7 +20,7 @@
+ 	ocamlopt -a -o ulexing.cmxa $(ULEXING)
+ 
+ pa_ulex.cma: $(ULEX)
+-	ocamlc -a -o pa_ulex.cma -pp 'camlp4o pa_extend.cmo q_MLast.cmo' -I +camlp4 $(ULEX)
++	ocamlc -a -o pa_ulex.cma -pp 'camlp5o pa_extend.cmo q_MLast.cmo' -I `camlp5 -where` $(ULEX)
+ 
+ pa_ulex.ml: pa_ulex.ml.src
+ 	ocaml mk_pa_ulex.ml
+@@ -29,14 +29,14 @@
+ 	rm -f *.cm* *~ test custom_ulexing *.o *.a *.html *.css pa_ulex.ml
+ 
+ view_test: pa_ulex.cma
+-	camlp4o ./pa_ulex.cma pr_o.cmo -sep "\n" test.ml
++	camlp5o ./pa_ulex.cma pr_o.cmo -sep "\n" test.ml
+ 
+ run_test: ulexing.cma pa_ulex.cma
+-	ocamlc -o test -pp 'camlp4o ./pa_ulex.cma' ulexing.cma test.ml
++	ocamlc -o test -pp 'camlp5o ./pa_ulex.cma' ulexing.cma test.ml
+ 	./test
+ 
+ custom_ulexing: ulexing.cma pa_ulex.cma
+-	ocamlc -o custom_ulexing -pp 'camlp4o ./pa_ulex.cma' ulexing.cma custom_ulexing.ml
++	ocamlc -o custom_ulexing -pp 'camlp5o ./pa_ulex.cma' ulexing.cma custom_ulexing.ml
+ 
+ 
+ doc:
+--- ulex0.8.orig/README
++++ ulex0.8/README
+@@ -142,7 +142,7 @@
+ 
+ Compilation of OCaml files with lexer specifications:
+ 
+-  ocamlfind ocamlc -c -package ulex -syntax camlp4o my_file.ml
++  ocamlfind ocamlc -c -package ulex -syntax camlp5o my_file.ml
+ 
+ When linking, you must also include the ulex package:
+   ocamlfind ocamlc -o my_prog -linkpkg -package ulex my_file.cmo
+--- ulex0.8.orig/mk_pa_ulex.ml
++++ ulex0.8/mk_pa_ulex.ml
+@@ -1,10 +1,4 @@
+ let s = float_of_string (String.sub (Sys.ocaml_version) 0 4) in
+-if (s < 3.09) then (
+   print_endline "Old camlp4 (loc)";
+   Sys.command "sed s/_loc/loc/ < pa_ulex.ml.src > pa_ulex.ml"
+-)
+-else  (
+-  print_endline "New camlp4 (_loc)";
+-  Sys.command "cp pa_ulex.ml.src pa_ulex.ml"
+-)
+ 
+--- ulex0.8.orig/pa_ulex.ml.src
++++ ulex0.8/pa_ulex.ml.src
+@@ -1,4 +1,4 @@
+-let _loc = (Lexing.dummy_pos,Lexing.dummy_pos)
++let _loc = Stdpp.dummy_loc
+ 
+ (* Named regexp *)
+ 
diff --git a/pkgs/development/ocaml-modules/ulex/0.8/default.nix b/pkgs/development/ocaml-modules/ulex/0.8/default.nix
new file mode 100644
index 000000000000..169f3bfad8c2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ulex/0.8/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, ocaml, findlib, camlp5 }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  version = "0.8";
+  pname = "ulex";
+
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.cduce.org/download/old/${pname}-${version}.tar.gz";
+    sha256 = "19faabg8hzz155xlzmjwsl59d7slahb5m1l9zh1fqvvpp81r26cp";
+  };
+
+  buildInputs = [ocaml findlib camlp5];
+
+  createFindlibDestdir = true;
+
+  patches = [ ./meta_version.patch ./camlp5.patch ];
+
+  buildFlags = "all all.opt";
+
+  meta = {
+    homepage = http://www.cduce.org/download.html;
+    description = "ulex is a lexer generator for Unicode and OCaml";
+    license = "MIT";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ulex/0.8/meta_version.patch b/pkgs/development/ocaml-modules/ulex/0.8/meta_version.patch
new file mode 100644
index 000000000000..7a39510cf0b4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ulex/0.8/meta_version.patch
@@ -0,0 +1,10 @@
+Author: Stefano Zacchiroli <zack@debian.org>
+Description: fix a typo in the findlib package version number specified in META
+--- ulex0.8.orig/META
++++ ulex0.8/META
+@@ -1,4 +1,4 @@
+-version = "0.7"
++version = "0.8"
+ requires = "camlp4"
+ description = "Runtime support for ulex"
+ archive(byte) = "ulexing.cma"
diff --git a/pkgs/development/ocaml-modules/ulex/default.nix b/pkgs/development/ocaml-modules/ulex/default.nix
new file mode 100644
index 000000000000..aee65a6e2ee8
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ulex/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, ocaml, findlib }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  version = "1.1";
+  pname = "ulex";
+
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.cduce.org/download/${pname}-${version}.tar.gz";
+    sha256 = "0fjlkwps14adfgxdrbb4yg65fhyimplvjjs1xqj5np197cig67x0";
+  };
+
+  buildInputs = [ocaml findlib];
+
+  buildFlags = "all all.opt";
+
+  meta = {
+    homepage = http://www.cduce.org/download.html;
+    description = "ulex is a lexer generator for Unicode and OCaml";
+    license = "MIT";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/perl-modules/DBD-Pg/default.nix b/pkgs/development/perl-modules/DBD-Pg/default.nix
index 69721f1a82c2..29a1da9c7acb 100644
--- a/pkgs/development/perl-modules/DBD-Pg/default.nix
+++ b/pkgs/development/perl-modules/DBD-Pg/default.nix
@@ -1,11 +1,11 @@
-{fetchurl, buildPerlPackage, DBI, postgresql}:
+{ fetchurl, buildPerlPackage, DBI, postgresql }:
 
-buildPerlPackage {
-  name = "DBD-Pg-2.13.1";
+buildPerlPackage rec {
+  name = "DBD-Pg-2.18.1";
   
   src = fetchurl {
-    url = mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-2.13.1.tar.gz;
-    sha256 = "9af40f47dc440b6ab031d6109ee694ef2d4a0aa899bc9870d8a992f2e4e6d1e6";
+    url = "mirror://cpan/modules/by-module/DBD/${name}.tar.gz";
+    sha256 = "10nrmi0hgc9h8c0jbpd9bbbzkdb1riymnlk7a86537c0d4gfqcpm";
   };
   
   buildInputs = [postgresql] ;
diff --git a/pkgs/development/perl-modules/DBD-SQLite/default.nix b/pkgs/development/perl-modules/DBD-SQLite/default.nix
index 22348709a8a0..b37dd422ee61 100644
--- a/pkgs/development/perl-modules/DBD-SQLite/default.nix
+++ b/pkgs/development/perl-modules/DBD-SQLite/default.nix
@@ -1,11 +1,11 @@
 {fetchurl, buildPerlPackage, DBI, sqlite}:
 
 buildPerlPackage rec {
-  name = "DBD-SQLite-1.29";
+  name = "DBD-SQLite-1.31";
   
   src = fetchurl {
     url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
-    sha256 = "0rq8f9avaxqbnjq2zpd2knz2wsn8qiffnbbphp7a3bakwhlxbl2i";
+    sha256 = "1xi9bfxfndb4kajixc1y7rrz2sjjv2z7vcm5msrxznx3vr358zlq";
   };
   
   propagatedBuildInputs = [DBI];
@@ -17,7 +17,10 @@ buildPerlPackage rec {
     ./external-sqlite.patch
   ];
 
+  # Prevent warnings from `strip'.
+  postInstall = "chmod -R u+w $out";
+
   # Disabled because the tests can randomly fail due to timeouts
   # (e.g. "database is locked(5) at dbdimp.c line 402 at t/07busy.t").
-  #doCheck = false;
+  doCheck = false;
 }
diff --git a/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch b/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch
new file mode 100644
index 000000000000..c08b3579fc3b
--- /dev/null
+++ b/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' Net-Amazon-EC2-0.14-orig/lib/Net/Amazon/EC2.pm Net-Amazon-EC2-0.14/lib/Net/Amazon/EC2.pm
+--- Net-Amazon-EC2-0.14-orig/lib/Net/Amazon/EC2.pm	2010-02-02 02:26:58.000000000 +0100
++++ Net-Amazon-EC2-0.14/lib/Net/Amazon/EC2.pm	2011-06-16 14:18:19.874176129 +0200
+@@ -1552,6 +1552,8 @@
+ 			$args{"InstanceId." . $count} = $instance_id;
+ 			$count++;
+ 		}
++	} else {
++		$args{"InstanceId.1"} = delete $args{InstanceId};
+ 	}
+ 	
+ 	my $xml = $self->_sign(Action  => 'DescribeInstances', %args);
diff --git a/pkgs/development/perl-modules/net-amazon-mechanicalturk.patch b/pkgs/development/perl-modules/net-amazon-mechanicalturk.patch
new file mode 100644
index 000000000000..dde13b9b0fca
--- /dev/null
+++ b/pkgs/development/perl-modules/net-amazon-mechanicalturk.patch
@@ -0,0 +1,65 @@
+From http://daveviner.blogspot.com/2009/12/amazon-mechanical-turk-perl-library.html
+http://www.vinertech.com/patches/net-amazon-mechanicalturk.patch
+
+diff -rubB Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm
+--- Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm	2007-08-13 11:38:53.000000000 -0700
++++ Net-Amazon-MechanicalTurk-1.01/lib/Net/Amazon/MechanicalTurk/ModuleUtil.pm	2009-12-13 16:37:49.000000000 -0800
+@@ -29,17 +29,21 @@
+ }
+ 
+ sub packageExists {
+-    my ($class, $package) = @_;
++    my ($class, $package, $moduleFile) = @_;
++    
++    if (defined($moduleFile) && exists($INC{$moduleFile})) {
++        return 1;
++    }
+     # Symbol table black magic
+     no strict 'refs';
+-    return defined %{*{"${package}::"}};
++    return scalar(keys(%{*{"${package}::"}}));
+ }
+ 
+ sub require {
+     my ($class, $module) = @_;
+-    if (!$class->packageExists($module)) {
+         my $moduleFile = $module . ".pm";
+         $moduleFile =~ s/::/\//g;
++    if (!$class->packageExists($module, $moduleFile)) {
+         require $moduleFile;
+     }
+ }
+diff -rubB Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t
+--- Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t	2007-08-13 11:38:56.000000000 -0700
++++ Net-Amazon-MechanicalTurk-1.01/t/73-datagenerator-dbi.t	2009-12-13 16:55:30.000000000 -0800
+@@ -8,10 +8,10 @@
+ 
+ eval {
+     require DBI;
+-    require DBD::SQLite2; 
++    require DBD::SQLite; 
+ };
+ if ($@) {
+-    plan skip_all => "SQLite2 not installed.";
++    plan skip_all => "SQLite not installed.";
+ }
+ else {
+     plan tests => 2; 
+@@ -21,7 +21,7 @@
+ #-----------------------
+ my $dbfile = "t/data/test.db";
+ unlink($dbfile) if (-f $dbfile);
+-my $dbh = DBI->connect("dbi:SQLite2:dbname=${dbfile}","","", {
++my $dbh = DBI->connect("dbi:SQLite:dbname=${dbfile}","","", {
+     RaiseError => 1,
+     AutoCommit => 1
+ });
+@@ -42,7 +42,7 @@
+ foreach my $id (1..30) {
+     $sth->execute($id, rand(), scalar localtime());
+ }
+-
++$sth->finish();
+ 
+ # Actual test
+ #----------------------
diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index eb523d69c12b..0183944e201a 100644
--- a/pkgs/development/python-modules/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
@@ -1,28 +1,15 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, python, pkgconfig, dbus, dbus_glib }:
+
+stdenv.mkDerivation rec {
+  name = "dbus-python-0.84.0";
 
-  version = a.lib.attrByPath ["version"] "0.83.1" a; 
-  buildInputs = with a; [
-    pkgconfig
-  ];
-  propagatedBuildInputs = with a; [
-    dbus python dbus_glib
-  ];
-in
-rec {
   src = fetchurl {
-    url = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${version}.tar.gz";
-    sha256 = "168vrizxnszh16yk4acpfhy502w8i997d8l3w4i26kxgy433ha6f";
+    url = "http://dbus.freedesktop.org/releases/dbus-python/${name}.tar.gz";
+    sha256 = "01jrmj7ps79dkd6f8bzm17vxzpad1ixwmcb1liy64xm9y6mcfnxq";
   };
 
-  inherit buildInputs propagatedBuildInputs;
-  configureFlags = [];
+  buildInputs = [ python pkgconfig dbus dbus_glib ];
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
-  name = "python-dbus-" + version;
   meta = {
     description = "Python DBus bindings";
   };
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 9dad415d8357..46149177320d 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -3,48 +3,49 @@
    (http://pypi.python.org/pypi/setuptools/), which represents a large
    number of Python packages nowadays.  */
 
-{ python, setuptools, makeWrapper, lib }:
+{ python, setuptools, wrapPython, lib }:
 
-{ name, namePrefix ? "python-", src, meta, patches ? []
-, installCommand ? ""
-, doCheck ? true, checkPhase ? "python setup.py test"
-, postInstall ? ""
-, ... } @ attrs:
+{ name, namePrefix ? "python-"
 
-let
-    defaultInstallCommand = ''easy_install --prefix="$out" .'';
+, buildInputs ? []
 
-    # Return the list of recursively propagated build inputs of PKG.
-    recursiveBuildInputs =
-      pkg:
-        [ pkg ] ++
-        (if pkg ? propagatedBuildNativeInputs
-         then lib.concatLists (map recursiveBuildInputs
-                                   pkg.propagatedBuildNativeInputs)
-         else []);
+, # List of packages that should be added to the PYTHONPATH
+  # environment variable in programs built by this function.  Packages
+  # in the standard `propagatedBuildInputs' variable are also added.
+  # The difference is that `pythonPath' is not propagated to the user
+  # environment.  This is preferrable for programs because it doesn't
+  # pollute the user environment.
+  pythonPath ? []
 
-in
+, installCommand ?
+    ''
+      easy_install --prefix="$out" .
+    ''
+    
+, buildPhase ? "true"
 
-python.stdenv.mkDerivation (
-  # Keep extra attributes from ATTR, e.g., `patchPhase', etc.
-  attrs
+, doCheck ? true
 
-  //
+, checkPhase ?
+    ''
+      runHook preCheck
+      python setup.py test
+      runHook postCheck
+    ''
 
-  (rec {
-  inherit src meta patches doCheck checkPhase;
+, postInstall ? ""
 
-  name = namePrefix + attrs.name;
+, ... } @ attrs:
 
-  buildInputs = [ python setuptools makeWrapper ] ++
-    (if attrs ? buildInputs then attrs.buildInputs else []);
+# Keep extra attributes from ATTR, e.g., `patchPhase', etc.
+python.stdenv.mkDerivation (attrs // {
+  inherit doCheck buildPhase checkPhase;
 
-  propagatedBuildInputs = [ setuptools ] ++
-    (if attrs ? propagatedBuildInputs
-     then attrs.propagatedBuildInputs
-     else []);
+  name = namePrefix + name;
 
-  buildPhase = "true";
+  buildInputs = [ python wrapPython setuptools ] ++ buildInputs ++ pythonPath;
+
+  pythonPath = [ setuptools] ++ pythonPath;
 
   # XXX: Should we run `easy_install --always-unzip'?  It doesn't seem
   # to have a noticeable impact on small scripts.
@@ -53,49 +54,21 @@ python.stdenv.mkDerivation (
 
     echo "installing \`${name}' with \`easy_install'..."
     export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-    ${if installCommand == "" then defaultInstallCommand else installCommand}
+    ${installCommand}
 
     ${postInstall}
   '';
 
-  postFixup = ''
-    # Wrap scripts that are under `{s,}bin/' so that they get the right
-    # $PYTHONPATH.
-    for i in "$out/bin/"* "$out/sbin/"*
-    do
-      if head -n1 "$i" | grep -q "${python}"
-      then
-          echo "wrapping \`$i'..."
-
-          # Compute a $PATH prefix for the program.
-          program_PATH=""
-          ${lib.concatStrings
-            (map (path:
-                  ''if [ -d "${path}/bin" ]
-                    then
-                        program_PATH="${path}/bin'' + "\$" + ''{program_PATH:+:}$program_PATH"
-                    fi
-                   '')
-                 (lib.concatMap recursiveBuildInputs propagatedBuildInputs))}
-
-          wrapProgram "$i"                          \
-            --prefix PYTHONPATH ":"                 \
-            ${lib.concatStringsSep ":"
-               ([ "$out/lib/${python.libPrefix}/site-packages" ] ++
-                (map (path: path + "/lib/${python.libPrefix}/site-packages")
-                     (lib.concatMap recursiveBuildInputs
-                                    propagatedBuildInputs)))} \
-            --prefix PATH ":" "$program_PATH"
-
+  postFixup =
+    ''
+      wrapPythonPrograms
+    
+      # If a user installs a Python package, she probably also wants its
+      # dependencies in the user environment (since Python modules don't
+      # have something like an RPATH, so the only way to find the
+      # dependencies is to have them in the PYTHONPATH variable).
+      if test -e $out/nix-support/propagated-build-inputs; then
+          ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
       fi
-    done
-
-    # If a user installs a Python package, she probably also wants its
-    # dependencies in the user environment (since Python modules don't
-    # have something like an RPATH, so the only way to find the
-    # dependencies is to have them in the PYTHONPATH variable).
-    if test -e $out/nix-support/propagated-build-inputs; then
-        ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
-    fi
-  '';
-}))
+    '';
+})
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
new file mode 100644
index 000000000000..65f3229ca7c4
--- /dev/null
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -0,0 +1,47 @@
+wrapPythonPrograms() {
+    wrapPythonProgramsIn $out "$out $pythonPath"
+}
+
+wrapPythonProgramsIn() {
+    local dir="$1"
+    local pythonPath="$2"
+    local python="$(type -p python)"
+    local i
+
+    declare -A pythonPathsSeen=()
+    program_PYTHONPATH=
+    program_PATH=
+    for i in $pythonPath; do
+        _addToPythonPath $i
+    done
+
+    for i in $(find "$dir" -type f -perm +0100); do
+
+        # Rewrite "#! .../env python" to "#! /nix/store/.../python".
+        if head -n1 "$i" | grep -q '#!.*/env.*python'; then
+            sed -i "$i" -e "1 s^.*/env[ ]*python^#! $python^"
+        fi
+        
+        if head -n1 "$i" | grep -q /python; then
+            echo "wrapping \`$i'..."
+            wrapProgram "$i" \
+                --prefix PYTHONPATH ":" $program_PYTHONPATH \
+                --prefix PATH ":" $program_PATH
+        fi
+    done
+}
+
+_addToPythonPath() {
+    local dir="$1"
+    if [ -n "${pythonPathsSeen[$dir]}" ]; then return; fi
+    pythonPathsSeen[$dir]=1
+    addToSearchPath program_PYTHONPATH $dir/lib/@libPrefix@/site-packages
+    addToSearchPath program_PATH $dir/bin
+    local prop="$dir/nix-support/propagated-build-native-inputs"
+    if [ -e $prop ]; then
+        local i
+        for i in $(cat $prop); do
+            _addToPythonPath $i
+        done
+    fi
+}
diff --git a/pkgs/development/python-modules/pycups/default.nix b/pkgs/development/python-modules/pycups/default.nix
index 18de5fbe7f1c..a61106f476d7 100644
--- a/pkgs/development/python-modules/pycups/default.nix
+++ b/pkgs/development/python-modules/pycups/default.nix
@@ -1,17 +1,18 @@
-{stdenv, fetchurl, python, cups}:
+{ stdenv, fetchurl, python, cups }:
+
+let version = "1.9.57"; in
 
-let
-  version = "1.9.49";
-in
 stdenv.mkDerivation {
   name = "pycups-${version}";
+  
   src = fetchurl {
     url = "http://cyberelk.net/tim/data/pycups/pycups-${version}.tar.bz2";
-    sha256 = "1gpp28sknjw5z4mzhaifc6hkfrlbm2y6w870q47ia8amnm05d3pk";
+    sha256 = "12m3lh4nmfp6yn6sqlskl9gb1mfiwx42m8dnms6j6xc2nimn5k14";
   };
-  buildPhase = "";
+
   installPhase = ''
     CFLAGS=-DVERSION=\\\"${version}\\\" python ./setup.py install --prefix $out
   '';
+  
   buildInputs = [ python cups ];
 }
diff --git a/pkgs/development/python-modules/pyexiv2/default.nix b/pkgs/development/python-modules/pyexiv2/default.nix
new file mode 100644
index 000000000000..ab086aed3bf9
--- /dev/null
+++ b/pkgs/development/python-modules/pyexiv2/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, python, exiv2, scons, boost }:
+
+let version = "0.3.0"; in
+
+stdenv.mkDerivation {
+  name = "pyexiv2-${version}";
+  
+  src = fetchurl {
+    url = "http://launchpad.net/pyexiv2/0.3.x/0.3/+download/pyexiv2-0.3.0.tar.bz2";
+    sha256 = "1y7r2z0ja166cx8fmykq7gaif02drknqqbxaf18fhv9nmgz4jrg9";
+  };
+
+  buildPhase = ''
+    sed -i -e "s@env = Environment()@env = Environment( ENV = os.environ )@" src/SConscript
+    scons
+  '';
+  installPhase = ''
+    sed -i -e "s@    python_lib_path = get_python_lib(plat_specific=True)@    python_lib_path = \'/lib/python2.7/site-packages\'@" src/SConscript
+    scons install DESTDIR=$out
+  '';
+
+  buildInputs = [ python exiv2 scons boost ];
+}
diff --git a/pkgs/development/python-modules/pyqt/default.nix b/pkgs/development/python-modules/pyqt/default.nix
index 37eae0fe2038..5097e95f7e43 100644
--- a/pkgs/development/python-modules/pyqt/default.nix
+++ b/pkgs/development/python-modules/pyqt/default.nix
@@ -1,39 +1,42 @@
-{stdenv, fetchurl, python, sip, qt4, pythonDBus, pkgconfig, lndir, makeWrapper }:
+{ stdenv, fetchurl, python, sip, qt4, pythonDBus, pkgconfig, lndir, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "PyQt-x11-gpl-4.8.1";
+  name = "PyQt-x11-gpl-4.8.5";
   
   src = fetchurl {
     url = "http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/${name}.tar.gz";
-    sha256 = "0w7k1jz7wcfwqq77hiwgds5s6py7kkg1rszd6c94bk9dr06vishz";
+    sha256 = "0838nfis6xj92n4gccih7j14yigfm3x7p59yr7qa5jy75wxdzqn9";
   };
   
-  preConfigure = ''
-    ensureDir $out
+  configurePhase = ''
+    mkdir -p $out
     lndir ${pythonDBus} $out
+
     export PYTHONPATH=$PYTHONPATH:$out/lib/${python.libPrefix}/site-packages
+    
+    substituteInPlace configure.py \
+      --replace 'install_dir=pydbusmoddir' "install_dir='$out/lib/${python.libPrefix}/site-packages/dbus/mainloop'"
+  
     configureFlagsArray=( \
       --confirm-license --bindir $out/bin \
       --destdir $out/lib/${python.libPrefix}/site-packages \
       --plugin-destdir $out/lib/qt4/plugins --sipdir $out/share/sip \
       --dbus=$out/include/dbus-1.0 --verbose)
-    '';
 
-  configureScript="./configure.py";
-
-  configurePhase = ''
-    runHook preConfigure
     python configure.py $configureFlags "''${configureFlagsArray[@]}"
-    runHook postConfigure'';
-  
-  propagatedBuildInputs = [ python sip qt4 ]
-    ++ pythonDBus.propagatedBuildNativeInputs;
-  buildInputs = [ pkgconfig makeWrapper lndir ];
+  '';
+
+  buildInputs = [ python pkgconfig makeWrapper qt4 lndir ];
+
+  propagatedBuildInputs = [ sip ];
 
   postInstall = ''
     for i in $out/bin/*; do
       wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
-    done'';
+    done
+  ''; # */
+
+  enableParallelBuilding = true;
   
   meta = {
     description = "Python bindings for Qt";
diff --git a/pkgs/development/python-modules/python-sip/default.nix b/pkgs/development/python-modules/python-sip/default.nix
index 7af20764fabe..b73cabcb1512 100644
--- a/pkgs/development/python-modules/python-sip/default.nix
+++ b/pkgs/development/python-modules/python-sip/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python }:
 
 stdenv.mkDerivation rec {
-  name = "sip-4.11.2";
+  name = "sip-4.12.4";
   
   src = fetchurl {
     url = "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz";
-    sha256 = "0g1pj203m491rhy111ayr4k4lsbcqd8sa1np503xv94a90b05l6f";
+    sha256 = "1cs7q2z5r59yil71ysy9nc32x0s65b9dz9jcrdsjmp6cww51z33n";
   };
   
   configurePhase = "python ./configure.py -d $out/lib/${python.libPrefix}/site-packages -b $out/bin -e $out/include";
diff --git a/pkgs/development/python-modules/rhpl/builder.sh b/pkgs/development/python-modules/rhpl/builder.sh
index 5c56b70c24f9..b37e9081832f 100644
--- a/pkgs/development/python-modules/rhpl/builder.sh
+++ b/pkgs/development/python-modules/rhpl/builder.sh
@@ -4,8 +4,9 @@ rpm2cpio $src | cpio -idv
 tar xfvj rhpl-*.tar.bz2
 rm rhpl-*.tar.bz2
 cd rhpl-*
-sed -i -e "s@/usr/include/\$(PYTHON)@$python/include/python2.6@" \
-       -e "s@PYTHONLIBDIR = /usr/\$(LIBDIR)/\$(PYTHON)/site-packages@PYTHONLIBDIR = $out/lib/python2.6/site-packages@" Makefile.inc
+incl=$(echo $python/include/python2.*)
+sed -i -e "s@/usr/include/\$(PYTHON)@$incl@" \
+       -e "s@PYTHONLIBDIR = /usr/\$(LIBDIR)/\$(PYTHON)/site-packages@PYTHONLIBDIR = $(toPythonPath $out)@" Makefile.inc
 sed -i -e "s@/usr/bin/install@install@g" \
        -e "s@\$(DESTDIR)/usr/share/locale@$out/share/locale@" po/Makefile       
 make PREFIX=$out
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index 1cdbb2e26245..50b73aaf8f60 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -1,48 +1,29 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
-
-  version = a.lib.attrByPath ["version"] "0.6c11" a; 
-  buildInputs = with a; [
-    python makeWrapper
-  ];
-in
-rec {
-  name = "setuptools-" + version;
+{ stdenv, fetchurl, python, wrapPython }:
+
+stdenv.mkDerivation rec {
+  name = "setuptools-0.6c11";
 
   src = fetchurl {
     url = "http://pypi.python.org/packages/source/s/setuptools/${name}.tar.gz";
     sha256 = "1lx1hwxkhipyh206bgl90ddnfcnb68bzcvyawczbf833fadyl3v3";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
-
-  doCheck = true;
-
-  doMakeCheck = a.fullDepEntry (''
-    python setup.py test
-  '') ["minInit" "doUnpack" "addInputs" "doBuild"];
-
-  doBuild = a.fullDepEntry(''
-    python setup.py build --build-base $out
-  '') ["addInputs" "doUnpack"];
+  buildInputs = [ python wrapPython ];
 
-  doInstall = a.fullDepEntry(''
-    ensureDir "$out/lib/${a.python.libPrefix}/site-packages"
+  buildPhase = "python setup.py build --build-base $out";
 
-    PYTHONPATH="$out/lib/${a.python.libPrefix}/site-packages:$PYTHONPATH" \
-    python setup.py install --prefix="$out"
+  installPhase =
+    ''
+      dst=$out/lib/${python.libPrefix}/site-packages
+      mkdir -p $dst
+      PYTHONPATH=$dst:$PYTHONPATH
+      python setup.py install --prefix=$out
+      wrapPythonPrograms
+    '';
 
-    for i in "$out/bin/"*
-    do
-      wrapProgram "$i"                          \
-        --prefix PYTHONPATH ":"			\
-          "$out/lib/${a.python.libPrefix}/site-packages"
-    done
-  '') ["doBuild"];
+  doCheck = false; # doesn't work with Python 2.7
 
-  phaseNames = ["doBuild" "doInstall"];
+  checkPhase = "python setup.py test";
 
   meta = {
     description = "Utilities to facilitate the installation of Python packages";
diff --git a/pkgs/development/python-modules/wxPython/2.6.nix b/pkgs/development/python-modules/wxPython/2.6.nix
index ad8c39b4ea7a..362f52bf44fc 100644
--- a/pkgs/development/python-modules/wxPython/2.6.nix
+++ b/pkgs/development/python-modules/wxPython/2.6.nix
@@ -1,14 +1,18 @@
-{stdenv, fetchurl, pkgconfig, wxGTK, python}:
+{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages }:
 
 assert wxGTK.unicode;
 
 stdenv.mkDerivation {
   name = "wxPython-2.6.3.3";
+  
   builder = ./builder.sh;
+  
   src = fetchurl {
     url = mirror://sourceforge/wxpython/wxPython-src-2.6.3.3.tar.bz2;
     md5 = "66b9c5f8e20a9505c39dab1a1234daa9";
   };
-  buildInputs = [pkgconfig wxGTK (wxGTK.gtk) python];
-  inherit wxGTK; # !!! move this down
+  
+  buildInputs = [ pkgconfig wxGTK (wxGTK.gtk) pythonPackages.python pythonPackages.wrapPython ];
+  
+  passthru = { inherit wxGTK; };
 }
diff --git a/pkgs/development/python-modules/wxPython/2.8.nix b/pkgs/development/python-modules/wxPython/2.8.nix
index 5cab740f8c3b..d574909d4e2a 100644
--- a/pkgs/development/python-modules/wxPython/2.8.nix
+++ b/pkgs/development/python-modules/wxPython/2.8.nix
@@ -1,14 +1,18 @@
-{stdenv, fetchurl, pkgconfig, wxGTK, python}:
+{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages }:
 
 assert wxGTK.unicode;
 
 stdenv.mkDerivation {
-  name = "wxPython-2.8.4.0";
+  name = "wxPython-2.8.12.0";
+  
   builder = ./builder.sh;
+  
   src = fetchurl {
-    url = mirror://sourceforge/wxpython/wxPython-src-2.8.4.0.tar.bz2;
-    sha256 = "0lkj29jcw3kqaf2iphgmmn9cqf2ppkm6qqr9izlx4bvn9dihgq6h";
+    url = mirror://sourceforge/wxpython/wxPython-src-2.8.12.0.tar.bz2;
+    sha256 = "1gdsk1p8ds4jd00habxy4y8m56247a5s1mvq1lm1r6475dvq4pkd";
   };
-  buildInputs = [pkgconfig wxGTK (wxGTK.gtk) python];
-  passthru = {inherit wxGTK;};
+  
+  buildInputs = [ pkgconfig wxGTK (wxGTK.gtk) pythonPackages.python pythonPackages.wrapPython ];
+  
+  passthru = { inherit wxGTK; };
 }
diff --git a/pkgs/development/python-modules/wxPython/builder.sh b/pkgs/development/python-modules/wxPython/builder.sh
index ed7177081f9f..1ad71e3b9cdc 100644
--- a/pkgs/development/python-modules/wxPython/builder.sh
+++ b/pkgs/development/python-modules/wxPython/builder.sh
@@ -12,6 +12,11 @@ buildPhase() {
 
 installPhase() {
     python setup.py $flags install --prefix=$out
+
+    # Ugly workaround for Nixpkgs/111.
+    ln -s $out/lib/python*/site-packages/wx-*-gtk2-unicode/* $out/lib/python*/site-packages
+    
+    wrapPythonPrograms    
 }
 
 genericBuild
diff --git a/pkgs/development/tools/analysis/lcov/default.nix b/pkgs/development/tools/analysis/lcov/default.nix
index 2e01a3a0784f..73c3e66f074e 100644
--- a/pkgs/development/tools/analysis/lcov/default.nix
+++ b/pkgs/development/tools/analysis/lcov/default.nix
@@ -1,16 +1,15 @@
 {stdenv, fetchurl, perl}:
 
 stdenv.mkDerivation rec {
-  name = "lcov-1.8";
+  name = "lcov-1.9";
 
   src = fetchurl {
     url = "mirror://sourceforge/ltp/${name}.tar.gz";
-    sha256 = "1xrd9abh1gyki9ln9v772dq7jinvyrvx39s3kxbpiila68mbpa7j";
+    sha256 = "1jhs1x2qy5la5gpdfl805zm11rsz6anla3b0wffk6wq79xfi4zn3";
   };
 
   patches =
-    [ ./unexpected-eof.patch
-      ./find-source.patch
+    [ ./find-source.patch
     ];
 
   preBuild = ''
diff --git a/pkgs/development/tools/analysis/lcov/unexpected-eof.patch b/pkgs/development/tools/analysis/lcov/unexpected-eof.patch
deleted file mode 100644
index c263f621808c..000000000000
--- a/pkgs/development/tools/analysis/lcov/unexpected-eof.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From http://ltp.cvs.sourceforge.net/viewvc/ltp/utils/analysis/lcov/bin/geninfo?revision=1.72&view=markup
-
-Fixes "reached unexpected end of file" errors processing gcno files.
-
-
---- a/bin/geninfo	2010/01/29 11:07:25	1.71
-+++ b/bin/geninfo	2010/02/21 14:56:46	1.72
-@@ -2857,6 +2857,9 @@
- 	# Skip version and stamp
- 	graph_skip(*HANDLE, 8, "version and stamp") or goto incomplete;
- 	while (!eof(HANDLE)) {
-+		my $next_pos;
-+		my $curr_pos;
-+
- 		# Read record tag
- 		$tag = read_gcno_value(*HANDLE, $big_endian, "record tag");
- 		goto incomplete if (!defined($tag));
-@@ -2866,6 +2869,11 @@
- 		goto incomplete if (!defined($length));
- 		# Convert length to bytes
- 		$length *= 4;
-+		# Calculate start of next record
-+		$next_pos = tell(HANDLE);
-+		goto tell_error if ($next_pos == -1);
-+		$next_pos += $length;
-+		# Process record
- 		if ($tag == $tag_function) {
- 			($filename, $function) = read_gcno_function_record(
- 				*HANDLE, $bb, $fileorder, $base, $big_endian);
-@@ -2882,6 +2890,14 @@
- 			graph_skip(*HANDLE, $length, "unhandled record")
- 				or goto incomplete;
- 		}
-+		# Ensure that we are at the start of the next record
-+		$curr_pos = tell(HANDLE);
-+		goto tell_error if ($curr_pos == -1);
-+		next if ($curr_pos == $next_pos);
-+		goto record_error if ($curr_pos > $next_pos);
-+		graph_skip(*HANDLE, $next_pos - $curr_pos,
-+			   "unhandled record content")
-+			or goto incomplete;
- 	}
- 	close(HANDLE);
- 	($instr, $graph) = graph_from_bb($bb, $fileorder, $gcno_filename);
-@@ -2898,6 +2914,12 @@
- magic_error:
- 	graph_error($gcno_filename, "found unrecognized gcno file magic");
- 	return undef;
-+tell_error:
-+	graph_error($gcno_filename, "could not determine file position");
-+	return undef;
-+record_error:
-+	graph_error($gcno_filename, "found unrecognized record format");
-+	return undef;
- }
- 
- sub debug($)
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 5638e810edf1..6b35cbc4e68e 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gdb, autoconf, automake }:
 
 stdenv.mkDerivation rec {
-  name = "valgrind-3.6.0";
+  name = "valgrind-3.6.1";
 
   src = fetchurl {
     url = "http://valgrind.org/downloads/${name}.tar.bz2";
-    sha256 = "0pr8h0q909z15g2i2jrcryhqbshair42rylf3mprhyx4nm9h23xw";
+    sha256 = "03kaf8q49r347diryc2p1q5hxsd6hyhxikqdbydh8q7hpi7wrga9";
   };
 
   # Perl is needed for `cg_annotate'.
diff --git a/pkgs/development/tools/build-managers/bam/default.nix b/pkgs/development/tools/build-managers/bam/default.nix
new file mode 100644
index 000000000000..ef5aed1f26ed
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bam/default.nix
@@ -0,0 +1,63 @@
+x@{builderDefsPackage
+  , lua5, python
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="bam";
+    version="0.4.0";
+    name="${baseName}-${version}";
+    url="http://github.com/downloads/matricks/bam/${name}.tar.bz2";
+    hash="0z90wvyd4nfl7mybdrv9dsd4caaikc6fxw801b72gqi1m9q0c0sn";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["check" "doDeploy"];
+
+  build = a.fullDepEntry ''
+    sh make_unix.sh
+  '' ["minInit" "doUnpack" "addInputs"];
+
+  check = a.fullDepEntry ''
+    python scripts/test.py
+  '' ["build" "addInputs"];
+
+  doDeploy = a.fullDepEntry ''
+    ensureDir "$out/share/bam"
+    cp -r docs examples tests  "$out/share/bam"
+    ensureDir "$out/bin"
+    cp bam "$out/bin"
+  '' ["minInit" "defEnsureDir" "build"];
+      
+  meta = {
+    description = "Yet another build manager";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://matricks.github.com/bam/";
+    };
+  };
+}) x
+
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index c491675f55c9..c7484ee6e84b 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,12 +1,16 @@
-{fetchurl, stdenv, replace, curl, expat, zlib
-, useNcurses ? false, ncurses, useQt4 ? false, qt4}:
+{ fetchurl, stdenv, replace, curl, expat, zlib, bzip2, libarchive
+, useNcurses ? false, ncurses, useQt4 ? false, qt4
+, darwinInstallNameToolUtility }:
+
+with stdenv.lib;
 
 let
   os = stdenv.lib.optionalString;
   majorVersion = "2.8";
-  minorVersion = "1";
+  minorVersion = "4";
   version = "${majorVersion}.${minorVersion}";
 in
+
 stdenv.mkDerivation rec {
   name = "cmake-${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}";
 
@@ -14,30 +18,43 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
-    sha256 = "0hi28blqxvir0dkhln90sgr0m3ri9n2i3hlmwdl4m5vkfsmp9bky";
+    sha256 = "1k2kjaj3vfifb329ff7fr4hcbpbaqb66l97pshq70h7m0zwajznr";
   };
 
-  buildInputs = [ curl expat zlib ]
-    ++ stdenv.lib.optional useNcurses ncurses
-    ++ stdenv.lib.optional useQt4 qt4;
+  patches =
+    # Don't search in non-Nix locations such as /usr, but do search in
+    # Nixpkgs' Glibc.
+    optional (stdenv ? glibc) ./search-path.patch;
+
+  buildInputs = [ curl expat zlib bzip2 libarchive ]
+    ++ optional stdenv.isDarwin darwinInstallNameToolUtility
+    ++ optional useNcurses ncurses
+    ++ optional useQt4 qt4;
 
   CMAKE_PREFIX_PATH = stdenv.lib.concatStringsSep ":" buildInputs;
+  
   configureFlags =
     "--docdir=/share/doc/${name} --mandir=/share/man --system-libs"
     + stdenv.lib.optionalString useQt4 " --qt-gui";
 
   setupHook = ./setup-hook.sh;
 
-  postUnpack = ''
-    dontUseCmakeConfigure=1
-    source $setupHook
-    fixCmakeFiles $sourceRoot
-  '';
+  postUnpack =
+    ''
+      dontUseCmakeConfigure=1
+      source $setupHook
+      fixCmakeFiles $sourceRoot
+    '';
+
+  preConfigure = optionalString (stdenv ? glibc)
+    ''
+      substituteInPlace Modules/Platform/UnixPaths.cmake --subst-var-by glibc ${stdenv.glibc}
+    '';
 
   meta = {
     homepage = http://www.cmake.org/;
     description = "Cross-Platform Makefile Generator";
-    platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.all;
+    platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.urkud ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/cmake/search-path.patch b/pkgs/development/tools/build-managers/cmake/search-path.patch
new file mode 100644
index 000000000000..ef8a9eef7c18
--- /dev/null
+++ b/pkgs/development/tools/build-managers/cmake/search-path.patch
@@ -0,0 +1,95 @@
+diff -ru -x '*~' cmake-2.8.5-orig/Modules/Platform/Linux.cmake cmake-2.8.5/Modules/Platform/Linux.cmake
+--- cmake-2.8.5-orig/Modules/Platform/Linux.cmake	2011-07-08 14:21:44.000000000 +0200
++++ cmake-2.8.5/Modules/Platform/Linux.cmake	2011-07-21 19:45:00.000000000 +0200
+@@ -36,13 +36,13 @@
+   # checking the platform every time.  This option is advanced enough
+   # that only package maintainers should need to adjust it.  They are
+   # capable of providing a setting on the command line.
+-  IF(EXISTS "/etc/debian_version")
+-    SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
+-      "Install .so files without execute permission.")
+-  ELSE(EXISTS "/etc/debian_version")
++  #IF(EXISTS "/etc/debian_version")
++  #  SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
++  #    "Install .so files without execute permission.")
++  #ELSE(EXISTS "/etc/debian_version")
+     SET(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+       "Install .so files without execute permission.")
+-  ENDIF(EXISTS "/etc/debian_version")
++  #ENDIF(EXISTS "/etc/debian_version")
+ ENDIF(DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ 
+ # Match multiarch library directory names.
+@@ -52,6 +52,6 @@
+ 
+ # Debian has lib64 paths only for compatibility so they should not be
+ # searched.
+-IF(EXISTS "/etc/debian_version")
+-  SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
+-ENDIF(EXISTS "/etc/debian_version")
++#IF(EXISTS "/etc/debian_version")
++#  SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
++#ENDIF(EXISTS "/etc/debian_version")
+diff -ru -x '*~' cmake-2.8.5-orig/Modules/Platform/UnixPaths.cmake cmake-2.8.5/Modules/Platform/UnixPaths.cmake
+--- cmake-2.8.5-orig/Modules/Platform/UnixPaths.cmake	2011-07-08 14:21:44.000000000 +0200
++++ cmake-2.8.5/Modules/Platform/UnixPaths.cmake	2011-07-21 19:50:52.000000000 +0200
+@@ -33,55 +33,18 @@
+ # search types.
+ LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH
+   # Standard
+-  /usr/local /usr /
+-
+-  # CMake install location
+-  "${_CMAKE_INSTALL_DIR}"
+-
+-  # Project install destination.
+-  "${CMAKE_INSTALL_PREFIX}"
+-  )
+-
+-# List common include file locations not under the common prefixes.
+-LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+-  # Windows API on Cygwin
+-  /usr/include/w32api
+-
+-  # X11
+-  /usr/X11R6/include /usr/include/X11
+-
+-  # Other
+-  /usr/pkg/include
+-  /opt/csw/include /opt/include  
+-  /usr/openwin/include
+-  )
+-
+-LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+-  # Windows API on Cygwin
+-  /usr/lib/w32api
+-
+-  # X11
+-  /usr/X11R6/lib /usr/lib/X11
+-
+-  # Other
+-  /usr/pkg/lib
+-  /opt/csw/lib /opt/lib 
+-  /usr/openwin/lib
+-  )
+-
+-LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH
+-  /usr/pkg/bin
++  "@glibc@"
+   )
+ 
+ LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+-  /lib /usr/lib /usr/lib32 /usr/lib64
++  "@glibc@/lib"
+   )
+ 
+ LIST(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
+-  /usr/include
++  "@glibc@/include"
+   )
+ LIST(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
+-  /usr/include
++  "@glibc@/include"
+   )
+ 
+ # Enable use of lib64 search path variants by default.
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 21d71628c077..c523e849fc15 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -52,7 +52,7 @@ if test -z "$dontUseCmakeConfigure"; then
 fi
 
 if test -n "$crossConfig"; then
-    crossEnvHooks=(${crossEnvHooks[@]} addCMakeParams)
+    crossEnvHooks+=(addCMakeParams)
 else
-    envHooks=(${envHooks[@]} addCMakeParams)
+    envHooks+=(addCMakeParams)
 fi
diff --git a/pkgs/development/tools/build-managers/jam/default.nix b/pkgs/development/tools/build-managers/jam/default.nix
new file mode 100644
index 000000000000..d2a002a70cf7
--- /dev/null
+++ b/pkgs/development/tools/build-managers/jam/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "jam-2.5";
+  src = fetchurl {
+    url = ftp://ftp.perforce.com/jam/jam-2.5.tar;
+    sha256 = "04c6khd7gdkqkvx4h3nbz99lyz7waid4fd221hq5chcygyx1sj3i";
+  };
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp bin.linux/jam $out/bin
+  '';
+
+  meta = {
+    homepage = http://public.perforce.com/wiki/Jam;
+    license = "free";
+    description = "Just Another Make";
+  };
+}
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index 9d15dc29772d..df51c51bde17 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -1,32 +1,37 @@
-{stdenv, fetchurl, graphviz, perl, flex, bison, gnumake, libX11, libXext, qt}:
+{ stdenv, fetchurl, perl, flex, bison, qt }:
 
-stdenv.mkDerivation rec {
-  name = "doxygen-1.7.1";
+let
+  name = "doxygen-1.7.4";
+in
+stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
     url = "ftp://ftp.stack.nl/pub/users/dimitri/${name}.src.tar.gz";
-    sha256 = "0cfs96iqsddqwkimlzrkpzksm8dhi5fjai49fvhdfw2934xnz1jb";
+    sha256 = "0rnzyp5f8c454fdkgpg5hpxwmx642spgxcpw3blbvnyw8129jp44";
   };
 
   patches = [ ./tmake.patch ];
 
-  buildInputs = [ graphviz perl flex bison libX11 libXext ]
-    ++ (if (qt != null) then [ qt ] else []);
+  buildInputs =
+    [ perl flex bison ]
+    ++ stdenv.lib.optional (qt != null) qt;
 
   prefixKey = "--prefix ";
-  configureFlags = "--release"
-		 + (if qt == null then "" else " --with-doxywizard")
-		 ;
-  makeFlags = "MAN1DIR=share/man/man1";
-  preConfigure =
-   (if (qt == null)
-    then ""
-    else ''
+
+  configureFlags =
+    [ "--dot dot" ]
+    ++ stdenv.lib.optional (qt != null) "--with-doxywizard";
+
+  preConfigure = stdenv.lib.optionalString (qt != null)
+    ''
       echo "using QTDIR=${qt}..."
       export QTDIR=${qt}
-    '');
-      # export CPLUS_INCLUDE_PATH="${qt}/include:$CPLUS_INCLUDE_PATH"
-      # export LIBRARY_PATH="${qt}/lib:$LIBRARY_PATH"
+    '';
+
+  makeFlags = "MAN1DIR=share/man/man1";
+
+  enableParallelBuilding = true;
 
   meta = {
     license = "GPLv2+";
@@ -42,6 +47,6 @@ stdenv.mkDerivation rec {
     '';
 
     maintainers = [stdenv.lib.maintainers.simons];
-    platforms = stdenv.lib.platforms.unix;
+    platforms = if (qt != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/documentation/haddock/2.4.2.nix b/pkgs/development/tools/documentation/haddock/2.4.2.nix
new file mode 100644
index 000000000000..226a4fd676e3
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.4.2.nix
@@ -0,0 +1,20 @@
+{ cabal, ghcPaths }:
+
+cabal.mkDerivation (self: {
+  pname = "haddock";
+  version = "2.4.2";
+  sha256 = "dbf0a7d0103a3ce6a91b2a3b96148c1b9c13ea7f8bd74260c21fe98df7839547";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ghcPaths ];
+  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
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/documentation/haddock/haddock-2.7.2.nix b/pkgs/development/tools/documentation/haddock/2.7.2.nix
index b59ea3282796..c94b3e43b7e1 100644
--- a/pkgs/development/tools/documentation/haddock/haddock-2.7.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.7.2.nix
@@ -13,6 +13,13 @@ cabal.mkDerivation (self : {
   '';
 
   meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
+    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
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/documentation/haddock/2.9.2.nix b/pkgs/development/tools/documentation/haddock/2.9.2.nix
new file mode 100644
index 000000000000..c6543936ab31
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.9.2.nix
@@ -0,0 +1,25 @@
+{cabal, ghcPaths, xhtml, alex, happy, makeWrapper}:
+
+cabal.mkDerivation (self : {
+  pname = "haddock";
+  version = "2.9.2"; # Haskell Platform 2011.2.0.0
+  name = self.fname;
+  sha256 = "189vvp173pqc69zgzqqx6vyhvsc13p1s86ql60rs1j5qlhh8ajg8";
+  extraBuildInputs = [alex happy makeWrapper];
+  propagatedBuildInputs = [ghcPaths xhtml];
+
+  postInstall = ''
+   wrapProgram $out/bin/haddock --add-flags "\$(${self.ghc.GHCGetPackages} ${self.ghc.ghcVersion} \"\$(dirname \$0)\" \"--optghc=-package-conf --optghc=\")"
+  '';
+
+  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
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/documentation/haddock/boot.nix b/pkgs/development/tools/documentation/haddock/boot.nix
deleted file mode 100644
index edaaac473301..000000000000
--- a/pkgs/development/tools/documentation/haddock/boot.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{cabal, gmp}:
-
-cabal.mkDerivation (self : {
-  pname = "haddock";
-  version = "0.9";
-  name = self.fname;
-  sha256 = "beefd4a6da577978e7a79cabba60970accc5cd48fbb04c424a6b36ace3a9f8d0";
-  extraBuildInputs = [gmp];
-  meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
-  };
-
-  # we are using this for booting, and ghc-6.4.2 doesn't have full
-  # Cabal support, therefore we have to override some things:
-  configurePhase = ''
-    sed -i -e 's|cabal-version:.*$|cabal-version: >= 1.0|' \
-           -e '/^flag/,+3d' \
-           -e '/^ *if/,+2d' \
-           -e '/^ *else/d' \
-           -e 's|^    ||' \
-           -e 's|^  ||' \
-           -e '/^executable/,$ { /^ *$/d }' \
-           -e '/^build-depends/d' \
-           -e '/data-files/ibuild-depends: base, haskell98' \
-           haddock.cabal
-    cp dist/build/haddock/haddock-tmp/*.hs src
-    ghc --make -o Setup Setup.lhs
-    ./Setup configure --verbose --prefix="$out"
-  '';
-
-  installPhase = ''
-    ./Setup copy
-  '';
-})
diff --git a/pkgs/development/tools/documentation/haddock/haddock-0.9.nix b/pkgs/development/tools/documentation/haddock/haddock-0.9.nix
deleted file mode 100644
index 8dddc59d96e1..000000000000
--- a/pkgs/development/tools/documentation/haddock/haddock-0.9.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "haddock";
-  version = "0.9";
-  name = self.fname;
-  sha256 = "beefd4a6da577978e7a79cabba60970accc5cd48fbb04c424a6b36ace3a9f8d0";
-  meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
-  };
-})
diff --git a/pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix b/pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix
deleted file mode 100644
index f170cbf7c262..000000000000
--- a/pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "haddock";
-  version = "2.1.0";
-  name = self.fname;
-  sha256 = "1b67869e493e56366207a128949998851f975d821e0952c2c717840d2eadaca7";
-  meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
-  };
-})
diff --git a/pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix b/pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix
deleted file mode 100644
index ff7c982267e7..000000000000
--- a/pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, ghcPaths, libedit}:
-
-cabal.mkDerivation (self : {
-  pname = "haddock";
-  version = "2.4.2"; # Haskell Platform 2009.0.0
-  name = self.fname;
-  sha256 = "dbf0a7d0103a3ce6a91b2a3b96148c1b9c13ea7f8bd74260c21fe98df7839547";
-  # TODO: adding libedit here is a hack
-  propagatedBuildInputs = [ghcPaths libedit];
-  meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
-  };
-})
diff --git a/pkgs/development/tools/haskell/BNFC-meta/default.nix b/pkgs/development/tools/haskell/BNFC-meta/default.nix
new file mode 100644
index 000000000000..3661ece97bff
--- /dev/null
+++ b/pkgs/development/tools/haskell/BNFC-meta/default.nix
@@ -0,0 +1,17 @@
+{ cabal, alexMeta, happyMeta, haskellSrcMeta }:
+
+cabal.mkDerivation (self: {
+  pname = "BNFC-meta";
+  version = "0.2.1";
+  sha256 = "0c58m1xkaylgp9f3r71nfgqb30fpidldz46dbwalhkb7fm0k4gmm";
+  buildDepends = [ alexMeta happyMeta haskellSrcMeta ];
+  meta = {
+    description = "Deriving Quasi-Quoters from BNF Grammars";
+    license = self.stdenv.lib.licenses.gpl2;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/BNFC/default.nix b/pkgs/development/tools/haskell/BNFC/default.nix
new file mode 100644
index 000000000000..c06b5eacc24b
--- /dev/null
+++ b/pkgs/development/tools/haskell/BNFC/default.nix
@@ -0,0 +1,20 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "BNFC";
+  version = "2.4.2.0";
+  sha256 = "0nnalzsql1k5y3s93g5y2hy2gcdsrbi8r7cwzmdcy4vyy589pin0";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://www.cse.chalmers.se/research/group/Language-technology/BNFC/";
+    description = "A compiler front-end generator";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/HaRe/default.nix b/pkgs/development/tools/haskell/HaRe/default.nix
index ac04831fef97..a7c2e74fa7e8 100644
--- a/pkgs/development/tools/haskell/HaRe/default.nix
+++ b/pkgs/development/tools/haskell/HaRe/default.nix
@@ -1,14 +1,20 @@
-{cabal, hint, mtl, network}:
+{ cabal, hint, mtl, network, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HaRe";
   version = "0.6.0.1";
   sha256 = "cd3fa312c7fa6a5f761bbc3ebdbc6300e83ba9e285047acded6269d2164d67f8";
-  propagatedBuildInputs = [hint mtl network];
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ hint mtl network syb ];
   meta = {
-    description = "The Haskell Refactorer";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.cs.kent.ac.uk/projects/refactor-fp";
+    description = "the Haskell Refactorer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/tools/haskell/alex-meta/default.nix b/pkgs/development/tools/haskell/alex-meta/default.nix
new file mode 100644
index 000000000000..58d8c3e1a10b
--- /dev/null
+++ b/pkgs/development/tools/haskell/alex-meta/default.nix
@@ -0,0 +1,17 @@
+{ cabal, haskellSrcMeta }:
+
+cabal.mkDerivation (self: {
+  pname = "alex-meta";
+  version = "0.2.0.1";
+  sha256 = "1b508pg4a9f0ln9k91j5dj0mja3faxasz5k6qyxqz3zqnlysm2gj";
+  buildDepends = [ haskellSrcMeta ];
+  meta = {
+    description = "Quasi-quoter for Alex lexers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
new file mode 100644
index 000000000000..ff0765fd339c
--- /dev/null
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -0,0 +1,20 @@
+{ cabal, HTTP, mtl, nixosTypes, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "cabal2nix";
+  version = "1.12";
+  sha256 = "14bijci07hkm3ksbqpzbnmwiysy5s3ll89r2iqkr1rbmj7bqxdwy";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ HTTP mtl nixosTypes regexPosix ];
+  meta = {
+    homepage = "http://github.com/haskell4nix/cabal2nix";
+    description = "Convert Cabal files into Nix build instructions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/happy-meta/default.nix b/pkgs/development/tools/haskell/happy-meta/default.nix
new file mode 100644
index 000000000000..f73d61924c5c
--- /dev/null
+++ b/pkgs/development/tools/haskell/happy-meta/default.nix
@@ -0,0 +1,17 @@
+{ cabal, haskellSrcMeta, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy-meta";
+  version = "0.2.0.2";
+  sha256 = "1r9i01bnw0dz10balhpgiwcls5jwv5p09jafi8jl6hy0jwx7xydp";
+  buildDepends = [ haskellSrcMeta mtl ];
+  meta = {
+    description = "Quasi-quoter for Happy parsers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 4f8812c5b96e..da117157f223 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -1,12 +1,22 @@
-{cabal, haskellSrcExts, mtl, uniplate, hscolour, parallel}:
+{ cabal, cpphs, haskellSrcExts, hscolour, transformers, uniplate }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.7.3";
-  name = self.fname;
-  sha256 = "afd4aa623fedf5257464bf18f38376a951d130f3004664803763e67cc55d9e83";
-  extraBuildInputs = [haskellSrcExts mtl uniplate hscolour parallel];
+  version = "1.8.15";
+  sha256 = "1hi2qapi8lb7cawjzvpknp8qvsnfw3glxyyd5m2lbp3rvkx0d6kr";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    cpphs haskellSrcExts hscolour transformers uniplate
+  ];
   meta = {
+    homepage = "http://community.haskell.org/~ndm/hlint/";
     description = "Source code suggestions";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/haskell/hslogger/default.nix b/pkgs/development/tools/haskell/hslogger/default.nix
index 00f660b66384..78863fab1854 100644
--- a/pkgs/development/tools/haskell/hslogger/default.nix
+++ b/pkgs/development/tools/haskell/hslogger/default.nix
@@ -1,11 +1,20 @@
-{cabal, mtl, network, time}:
+{ cabal, mtl, network, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hslogger";
-  version = "1.0.7";
-  sha256 = "0fb8aagylrr5z19801szj868apcns8lafc4ydx9v0ka2lbmjqvbz";
-  propagatedBuildInputs = [ mtl time network ];
+  version = "1.1.5";
+  sha256 = "0lk966csxxyjjdg5jg4pzzl5118zj8ms78vn1n9imb7f4vcs8vk7";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl network time ];
   meta = {
+    homepage = "http://software.complete.org/hslogger";
     description = "Versatile logging framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/haskell/mkcabal/default.nix b/pkgs/development/tools/haskell/mkcabal/default.nix
deleted file mode 100644
index 04c66673ae26..000000000000
--- a/pkgs/development/tools/haskell/mkcabal/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl, pcreLight, readline}:
-
-cabal.mkDerivation (self : {
-  pname = "mkcabal";
-  version = "0.4.2";
-  name = self.fname;
-  sha256 = "a3d781fdcdea4ac27a897888593091d4afee10dfc3eff5a49f9108b346232f50";
-  propagatedBuildInputs = [mtl pcreLight readline];
-  meta = {
-    description = "Generate cabal files for a Haskell project";
-  };
-})
diff --git a/pkgs/development/tools/haskell/tar/default.nix b/pkgs/development/tools/haskell/tar/default.nix
index 8672e0db9501..ef03d80f5e95 100644
--- a/pkgs/development/tools/haskell/tar/default.nix
+++ b/pkgs/development/tools/haskell/tar/default.nix
@@ -1,12 +1,16 @@
-{cabal, binary}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tar";
   version = "0.3.1.0";
-  name = self.fname;
   sha256 = "1n16sq5y7x30r1k7ydxmncn9x2nx3diildzyfxjy2b8drxp4jr03";
-  extraBuildInputs = [binary];
   meta = {
-    description = "tar wrapper";
+    description = "Reading, writing and manipulating \".tar\" archive files.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/haskell/threadscope/default.nix b/pkgs/development/tools/haskell/threadscope/default.nix
index 1d1d5ed25a9d..7787ea203eef 100644
--- a/pkgs/development/tools/haskell/threadscope/default.nix
+++ b/pkgs/development/tools/haskell/threadscope/default.nix
@@ -1,14 +1,20 @@
-{cabal, binary, cairo, ghcEvents, glade, gtk, mtl}:
+{ cabal, binary, cairo, ghcEvents, glade, gtk, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "threadscope";
-  version = "0.1.2";
-  sha256 = "ce1116016f6b2d38e6063ba3dd147f38147a9c4399160f37aba9c50c96d00a90";
-  propagatedBuildInputs = [binary cairo ghcEvents glade gtk mtl];
+  version = "0.1.3";
+  sha256 = "1vak3624vrnkfvwxzfw5hkc0552v213jb874f6q536g5vhjjxpih";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ binary cairo ghcEvents glade gtk mtl ];
+  configureFlags = "--ghc-options=-rtsopts";
   meta = {
     description = "A graphical thread profiler";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/tools/haskell/uuagc/bootstrap.nix b/pkgs/development/tools/haskell/uuagc/bootstrap.nix
new file mode 100644
index 000000000000..2110f2582291
--- /dev/null
+++ b/pkgs/development/tools/haskell/uuagc/bootstrap.nix
@@ -0,0 +1,20 @@
+{ cabal, haskellSrcExts, mtl, uulib }:
+
+cabal.mkDerivation (self: {
+  pname = "uuagc-bootstrap";
+  version = "0.9.39.1.0";
+  sha256 = "06w330j0nds5piv1rr3m6m1idnf0c5swfk9qwdqzi0pmpws6lpkj";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellSrcExts mtl uulib ];
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
+    description = "Attribute Grammar System of Universiteit Utrecht";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/uuagc/cabal.nix b/pkgs/development/tools/haskell/uuagc/cabal.nix
new file mode 100644
index 000000000000..7af637cd665a
--- /dev/null
+++ b/pkgs/development/tools/haskell/uuagc/cabal.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, uulib }:
+
+cabal.mkDerivation (self: {
+  pname = "uuagc-cabal";
+  version = "1.0.0.5";
+  sha256 = "1is7kcbx7hlrzqxqz40sggniwxwnzd6k18dxsra4bibfcg8fvy4h";
+  buildDepends = [ mtl uulib ];
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
+    description = "Cabal plugin for the Universiteit Utrecht Attribute Grammar System";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/uuagc/default.nix b/pkgs/development/tools/haskell/uuagc/default.nix
index 06000e514e7f..417f430ba9b0 100644
--- a/pkgs/development/tools/haskell/uuagc/default.nix
+++ b/pkgs/development/tools/haskell/uuagc/default.nix
@@ -1,12 +1,22 @@
-{cabal, uulib}:
+{ cabal, haskellSrcExts, mtl, uuagcBootstrap, uuagcCabal, uulib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uuagc";
-  version = "0.9.29";
-  name = self.fname;
-  sha256 = "325d395abcc1f8224400a3cd765dd187e6be64a782251aa33080aab008b8829e";
-  extraBuildInputs = [uulib];
+  version = "0.9.39.1";
+  sha256 = "0zqhwpafq51czy97z0f93cbxd8k6hllnmb24a6yzr4y6kzzv65hd";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    haskellSrcExts mtl uuagcBootstrap uuagcCabal uulib
+  ];
   meta = {
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
     description = "Attribute Grammar System of Universiteit Utrecht";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix
index f0c3458dd5ad..82f8b1100541 100644
--- a/pkgs/development/tools/misc/autoconf/default.nix
+++ b/pkgs/development/tools/misc/autoconf/default.nix
@@ -13,7 +13,9 @@ stdenv.mkDerivation rec {
   # Work around a known issue in Cygwin.  See
   # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
   # details.
-  doCheck = (stdenv.system != "i686-cygwin");
+  # There are many test failures on `i386-pc-solaris2.11'.
+  doCheck = (stdenv.system != "i686-cygwin"
+             && stdenv.system != "i386-sunos");
 
   # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
   # "fixed" path in generated files!
diff --git a/pkgs/development/tools/misc/autogen/default.nix b/pkgs/development/tools/misc/autogen/default.nix
index 4dd84e4f1e99..00eb6d404ef8 100644
--- a/pkgs/development/tools/misc/autogen/default.nix
+++ b/pkgs/development/tools/misc/autogen/default.nix
@@ -1,17 +1,24 @@
 { fetchurl, stdenv, guile, which }:
 
-let version = "5.9.8"; in
+let version = "5.11.6"; in
 
   stdenv.mkDerivation {
     name = "autogen-${version}";
 
     src = fetchurl {
-      url = "mirror://gnu/autogen/rel${version}/autogen-${version}.tar.bz2";
-      sha256 = "0y3ygzhzzv7sa0ndvszpfqwcjg4hcb35bcp8qqsndmr6mh6v6cnn";
+      url = "mirror://gnu/autogen/rel${version}/autogen-${version}.tar.gz";
+      sha256 = "013xy0f3hv1cw62nwh4r1x46zs9sndydaz31kd6889dp5p0snfkw";
     };
 
     buildInputs = [ guile which ];
 
+    patchPhase =
+      '' for i in $(find -name \*.in)
+         do
+           sed -i "$i" -e's|/usr/bin/||g'
+         done
+      '';
+
     # The tests rely on being able to find `libopts.a'.
     configureFlags = "--enable-static";
 
diff --git a/pkgs/development/tools/misc/automake/builder.sh b/pkgs/development/tools/misc/automake/builder.sh
index 6b0cd7e4fa22..7f9e9219de31 100644
--- a/pkgs/development/tools/misc/automake/builder.sh
+++ b/pkgs/development/tools/misc/automake/builder.sh
@@ -1,5 +1,33 @@
 source $stdenv/setup
 
+# Wrap the given `aclocal' program, appending extra `-I' flags
+# corresponding to the directories listed in $ACLOCAL_PATH.  (Note
+# that `wrapProgram' can't be used for that purpose since it can only
+# prepend flags, not append them.)
+wrapAclocal() {
+    local program="$1"
+    local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
+
+    mv "$program" "$wrapped"
+    cat > "$program"<<EOF
+#! $SHELL -e
+
+unset extraFlagsArray
+declare -a extraFlagsArray
+
+oldIFS=\$IFS
+IFS=:
+for dir in \$ACLOCAL_PATH; do
+    if test -n "\$dir" -a -d "\$dir"; then
+        extraFlagsArray=("\${extraFlagsArray[@]}" "-I" "\$dir")
+    fi
+done
+IFS=\$oldIFS
+
+exec "$wrapped" "\$@" "\${extraFlagsArray[@]}"
+EOF
+    chmod +x "$program"
+}
 
 postInstall() {
     # Create a wrapper around `aclocal' that converts every element in
@@ -9,16 +37,7 @@ postInstall() {
     # `-I' options explicitly.
 
     for prog in $out/bin/aclocal*; do 
-        wrapProgram $prog --run \
-            '
-oldIFS=$IFS
-IFS=:
-for dir in $ACLOCAL_PATH; do
-    if test -n "$dir" -a -d "$dir"; then
-        extraFlagsArray=("${extraFlagsArray[@]}" "-I" "$dir")
-    fi
-done
-IFS=$oldIFS'
+        wrapAclocal "$prog"
     done
 }
 
diff --git a/pkgs/desktops/kde-4.5/support/automoc4/default.nix b/pkgs/development/tools/misc/automoc4/default.nix
index be50867cbe7a..860ea220799a 100644
--- a/pkgs/desktops/kde-4.5/support/automoc4/default.nix
+++ b/pkgs/development/tools/misc/automoc4/default.nix
@@ -1,15 +1,19 @@
-{stdenv, fetchurl, cmake, qt4}:
+{ stdenv, fetchurl, cmake, qt4 }:
 
 stdenv.mkDerivation rec {
   name = "automoc4-0.9.88";
+  
   src = fetchurl {
     url = "mirror://kde/stable/automoc4/0.9.88/${name}.tar.bz2";
     sha256 = "0jackvg0bdjg797qlbbyf9syylm0qjs55mllhn11vqjsq3s1ch93";
   };
+  
   buildInputs = [ cmake qt4 ];
-  meta = {
+  
+  meta = with stdenv.lib; {
+    homepage = http://techbase.kde.org/Development/Tools/Automoc4;
     description = "KDE Meta Object Compiler";
-    license = "BSD";
-    maintainers = [ stdenv.lib.maintainers.sander ];
+    license = licenses.bsd2;
+    maintainers = [ maintainers.sander maintainers.urkud ];
   };
 }
diff --git a/pkgs/development/tools/misc/avrdude/default.nix b/pkgs/development/tools/misc/avrdude/default.nix
index 3cfd8736d822..7a294e720781 100644
--- a/pkgs/development/tools/misc/avrdude/default.nix
+++ b/pkgs/development/tools/misc/avrdude/default.nix
@@ -2,12 +2,12 @@
 
 let edf = composableDerivation.edf; in
 
-composableDerivation.composableDerivation {} {
-  name="avrdude-5.4";
+composableDerivation.composableDerivation {} rec {
+  name="avrdude-5.10";
 
   src = fetchurl {
-    url = http://mirror.switch.ch/mirror/gentoo/distfiles/avrdude-5.4.tar.gz;
-    sha256 = "bee4148c51ec95999d803cb9f68f12ac2e9128b06f07afe307d38966c0833b30";
+    url = "http://download.savannah.gnu.org/releases/avrdude/${name}.tar.gz";
+    sha256 = "0pmy73777x8p7f2aj2w2q1dnk1bvhd1cm7hcs1s9hsdqsmiinl41";
   };
 
   configureFlags = [ "--disable-dependency-tracking" ];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 1928061c81dc..679a10a517dd 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, noSysDirs, zlib, cross ? null}:
+{ stdenv, fetchurl, noSysDirs, zlib, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null }:
 
 let
     basename = "binutils-2.21";
@@ -18,7 +18,9 @@ stdenv.mkDerivation rec {
     ./new-dtags.patch
   ];
 
-  buildInputs = [ zlib ];
+  buildInputs =
+    [ zlib ]
+    ++ stdenv.lib.optional gold [dejagnu flex2535 bison /* Some Gold tests require this: */ bc];
 
   inherit noSysDirs;
 
@@ -38,7 +40,8 @@ stdenv.mkDerivation rec {
   configureFlags = "--disable-werror" # needed for dietlibc build
       + stdenv.lib.optionalString (stdenv.system == "mips64-linux")
         " --enable-fix-loongson2f-nop"
-      + stdenv.lib.optionalString (cross != null) " --target=${cross.config}";
+      + stdenv.lib.optionalString (cross != null) " --target=${cross.config}"
+      + stdenv.lib.optionalString gold " --enable-gold";
 
   meta = {
     description = "GNU Binutils, tools for manipulating binaries (linker, assembler, etc.)";
diff --git a/pkgs/development/tools/misc/cflow/default.nix b/pkgs/development/tools/misc/cflow/default.nix
index af88dbda0c28..c8cfb77d71ac 100644
--- a/pkgs/development/tools/misc/cflow/default.nix
+++ b/pkgs/development/tools/misc/cflow/default.nix
@@ -53,6 +53,6 @@ stdenv.mkDerivation rec {
              _argp_program_version$non_lazy_ptr in libcflow.a(argp-parse.o)
        ld: symbol(s) not found
      */
-    platforms = stdenv.lib.platforms.allBut "i686-darwin";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/misc/complexity/default.nix b/pkgs/development/tools/misc/complexity/default.nix
new file mode 100644
index 000000000000..076a68b81374
--- /dev/null
+++ b/pkgs/development/tools/misc/complexity/default.nix
@@ -0,0 +1,38 @@
+{ fetchurl, stdenv, autogen, texinfo }:
+
+stdenv.mkDerivation rec {
+  # FIXME: Currently fails to build.
+  name = "complexity-0.4";
+
+  src = fetchurl {
+    url = "mirror://gnu/complexity/${name}.tar.gz";
+    sha256 = "0dmk2pm7vi95482hnbbp597640bsjw5gg57j8cpy87855cl69yr8";
+  };
+
+  buildInputs =
+    [ autogen
+      texinfo  # XXX: shouldn't be needed, per GCS
+    ];
+
+  # Hack to work around build defect.
+  makeFlags = "MAKEINFOFLAGS=--no-validate";
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU Complexity, C code complexity measurement tool";
+
+    longDescription =
+      '' GNU Complexity is a tool designed for analyzing the complexity of C
+         program functions.  It is very similar to the McCabe scoring, but
+         addresses several issues not considered in that scoring scheme.
+      '';
+
+    license = "GPLv3+";
+
+    homepage = http://www.gnu.org/software/complexity/;
+
+    platforms = stdenv.lib.platforms.gnu;
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix
index bb527e63c1e6..6d0ca9884d68 100644
--- a/pkgs/development/tools/misc/cpphs/default.nix
+++ b/pkgs/development/tools/misc/cpphs/default.nix
@@ -1,10 +1,19 @@
-{cabal} :
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cpphs";
-  version = "1.11";
-  sha256 = "26124ca2b1af9a9804ba37c627dbbca3977bde93925f979f08b342895548db01";
+  version = "1.12";
+  sha256 = "18c8yx8y54b2q086sqlp4vhslkb7mm1gry1f13mki43x93kd1vdj";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://haskell.org/cpphs/";
     description = "A liberalised re-implementation of cpp, the C pre-processor";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/misc/dejagnu/default.nix b/pkgs/development/tools/misc/dejagnu/default.nix
index fec825627eaf..06c1d4fe76ba 100644
--- a/pkgs/development/tools/misc/dejagnu/default.nix
+++ b/pkgs/development/tools/misc/dejagnu/default.nix
@@ -1,40 +1,40 @@
 { fetchurl, stdenv, expect, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "dejagnu-1.4.4";
+  name = "dejagnu-1.5";
 
   src = fetchurl {
     url = "mirror://gnu/dejagnu/${name}.tar.gz";
-    sha256 = "13841q6pfwd9d1sdw48yxdyb4xhiccii0mb0ilql627v43pyvyyh";
+    sha256 = "1nx3x3h96a82q92q108q71giv2nz9xmbbn2nrlr3wvvs6l45id68";
   };
 
   patches = [ ./wrapped-runtest-program-name.patch ];
 
   buildInputs = [ expect makeWrapper ];
 
-  # FIXME: Enable when the "spawn id" problem is fixed.
-  doCheck = false;
+  doCheck = true;
 
-  # Note: The test-suite *requires* /dev/pts among the
-  # `build-chroot-dirs' of the build daemon when building in a chroot.
+  # Note: The test-suite *requires* /dev/pts among the `build-chroot-dirs' of
+  # the build daemon when building in a chroot.  See
+  # <http://thread.gmane.org/gmane.linux.distributions.nixos/1036> for
+  # details.
 
-  # FIXME: The test-suite currently fails with this problem:
+  # The test-suite needs to have a non-empty stdin:
   #   http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html
-  #   http://thread.gmane.org/gmane.linux.distributions.nixos/1036
   checkPhase = ''
     # Provide `runtest' with a log name, otherwise it tries to run
     # `whoami', which fails when in a chroot.
-    LOGNAME="nix-build-daemon" make check
+    LOGNAME="nix-build-daemon" make check < /dev/zero
   '';
 
   postInstall = ''
     wrapProgram "$out/bin/runtest" \
-                --prefix PATH ":" "${expect}/bin"
+		--prefix PATH ":" "${expect}/bin"
   '';
 
   meta = {
     description = "The DejaGNU testing framework";
-    
+
     longDescription = ''
       DejaGnu is a framework for testing other programs.  Its purpose
       is to provide a single front end for all tests.  Think of it as a
@@ -48,5 +48,8 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnu.org/software/dejagnu/;
     license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/development/tools/misc/distcc/default.nix b/pkgs/development/tools/misc/distcc/default.nix
index b81cb9223bc3..a46c7a695f21 100644
--- a/pkgs/development/tools/misc/distcc/default.nix
+++ b/pkgs/development/tools/misc/distcc/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
     homepage = "http://distcc.org";
     license = "GPL";
 
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 00aeed1b41be..c29fcc994e2c 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -1,34 +1,57 @@
-{ fetchurl, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo
-, dejagnu, python, target ? null }:
+{ fetchurl, fetchgit, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo
+, dejagnu, python, target ? null
+
+# Set it to true to fetch the latest release/branchpoint from git.
+, bleedingEdgeVersion ? false
+
+# needed for the git version
+, flex, bison }:
 
 let
-    basename = "gdb-7.2";
+    basename =
+      if bleedingEdgeVersion
+      then "gdb-7.3.20110726"
+      else "gdb-7.3";
 in
+
 stdenv.mkDerivation rec {
   name = basename + stdenv.lib.optionalString (target != null)
       ("-" + target.config);
 
-  src = fetchurl {
-    url = "mirror://gnu/gdb/${basename}.tar.bz2";
-    sha256 = "1w0h6hya0bl46xddd57mdzwmffplwglhnh9x9hv46ll4mf44ni5z";
-  };
+  src =
+    if bleedingEdgeVersion
+    then fetchgit {
+        url = "git://sourceware.org/git/gdb.git";
+        rev = "refs/tags/gdb_7_3-2011-07-26-release";
+      }
+    else fetchurl {
+        url = "mirror://gnu/gdb/${basename}.tar.bz2";
+        # md5 is provided by the annoucement page
+        # http://www.gnu.org/s/gdb/download/ANNOUNCEMENT
+        md5 = "485022b8df7ba2221f217e128f479fe7";
+      };
 
   # I think python is not a native input, but I leave it
   # here while I will not need it cross building
-  buildNativeInputs = [ texinfo python ];
+  buildNativeInputs = [ texinfo python ]
+  ++ stdenv.lib.optionals bleedingEdgeVersion [ flex bison ];
+
   buildInputs = [ ncurses readline gmp mpfr expat ]
     ++ stdenv.lib.optional doCheck dejagnu;
 
-  configureFlags =
+  configureFlags = with stdenv.lib;
     '' --with-gmp=${gmp} --with-mpfr=${mpfr} --with-system-readline
-       --with-expat --with-libexpat-prefix=${expat}
-    '' + stdenv.lib.optionalString (target != null)
-       " --target=${target.config}";
+       --with-expat --with-libexpat-prefix=${expat} --with-python
+    ''
+    + optionalString (target != null) " --target=${target.config}"
+    + optionalString (elem stdenv.system platforms.cygwin) "  --without-python"
+  ;
 
   crossAttrs = {
+    # Do not add --with-python here to avoid cross building it.
     configureFlags =
       '' --with-gmp=${gmp.hostDrv} --with-mpfr=${mpfr.hostDrv} --with-system-readline
-         --with-expat --with-libexpat-prefix=${expat.hostDrv}
+         --with-expat --with-libexpat-prefix=${expat.hostDrv} --without-python
       '' + stdenv.lib.optionalString (target != null)
          " --target=${target.config}";
   };
@@ -41,7 +64,7 @@ stdenv.mkDerivation rec {
   # TODO: Investigate & fix the test failures.
   doCheck = false;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "GDB, the GNU Project debugger";
 
     longDescription = ''
@@ -54,7 +77,7 @@ stdenv.mkDerivation rec {
 
     license = "GPLv3+";
 
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.cygwin;
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = with platforms; linux ++ cygwin;
+    maintainers = with maintainers; [ ludo pierron ];
   };
 }
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index 2d70322139ad..6ef449b3c2af 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -1,13 +1,23 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv, libtool, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "global-5.7.5";
+  name = "global-5.9.7";
 
   src = fetchurl {
     url = "mirror://gnu/global/${name}.tar.gz";
-    sha256 = "0fdkkg5qs76cjdnig54bhw97dgwg2rm2dg8k8r7hz836pk838540";
+    sha256 = "1vhsa44fxmgc41l7gw904dhdq0kl0xw16wb9n8r22bw0nmfad5z8";
   };
 
+  buildInputs = [ libtool ncurses ];
+
+  configurePhase =
+    '' ./configure --prefix="$out" --disable-static ''
+    + ''--with-posix-sort=$(type -p sort) ''
+    + ''--with-ltdl-include=${libtool}/include --with-ltdl-lib=${libtool}/lib ''
+    + ''--with-ncurses=${ncurses}'';
+
+  doCheck = true;
+
   postInstall = ''
     ensureDir "$out/share/emacs/site-lisp"
     cp -v *.el "$out/share/emacs/site-lisp"
@@ -32,5 +42,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/global/;
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/development/tools/misc/gob2/default.nix b/pkgs/development/tools/misc/gob2/default.nix
new file mode 100644
index 000000000000..4308a559268e
--- /dev/null
+++ b/pkgs/development/tools/misc/gob2/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, glib, bison, flex }:
+
+stdenv.mkDerivation rec {
+  name = "gob2-2.0.18";
+
+  src = fetchurl {
+    url = "http://ftp.5z.com/pub/gob/${name}.tar.gz";
+    sha256 = "1r242s3rsxyqiw2ic2gdpvvrx903jgjd1aa4mkl26in5k9zk76fa";
+  };
+
+  # configure script looks for d-bus but it is only needed for tests
+  buildInputs = [ glib bison flex pkgconfig ];
+
+  meta = {
+    description = "Preprocessor for making GObjects with inline C code";
+    homepage = http://www.jirka.org/gob.html;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
new file mode 100644
index 000000000000..2c6bac20f10a
--- /dev/null
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -0,0 +1,70 @@
+{stdenv, fetchurl, nix, perlPackages, perl, makeWrapper, libtool,
+unzip, nukeReferences, pkgconfig, boehmgc, libxslt, sqlite,
+subversion, openssh, coreutils, findutils, gzip, bzip2, lzma,
+gnutar, git, mercurial, gnused, graphviz, rpm, dpkg, cdrkit
+}:
+
+let
+  perldeps = with perlPackages; [ 
+  CatalystDevel
+  CatalystPluginSessionStoreFastMmap
+  CatalystPluginStackTrace
+  CatalystPluginAuthorizationRoles
+  CatalystAuthenticationStoreDBIxClass
+  CatalystViewTT
+  CatalystEngineHTTPPrefork
+  CatalystViewDownload
+  XMLSimple
+  IPCRun
+  IOCompressBzip2
+  Readonly
+  DBDPg
+  EmailSender
+  TextTable
+  NetTwitterLite
+  PadWalker
+  DataDump
+  JSONXS
+  DateTime
+  DigestSHA1
+  CryptRandPasswd
+  nixPerl
+  ];
+in
+
+let version = "0.1pre27592"; in
+stdenv.mkDerivation {
+  name = "hydra-${version}";
+
+  src = fetchurl {
+    url = http://hydra.nixos.org/build/1142240/download/2/hydra-0.1pre27592.tar.gz;
+    sha256 = "0197bcfkabqqv7611fh9kjabfm0nfci8kanfaa59hqwf3h6fmpwz";
+  };
+
+  configureFlags = "--with-nix=${nix}";
+
+  buildInputs = [ perl makeWrapper libtool nix unzip nukeReferences pkgconfig boehmgc ] ++ perldeps ;
+
+  hydraPath = stdenv.lib.concatStringsSep ":" (map (p: "${p}/bin") ( [
+    libxslt sqlite subversion openssh nix coreutils findutils
+    gzip bzip2 lzma gnutar unzip git mercurial gnused graphviz
+    rpm dpkg cdrkit]));
+
+  postInstall = ''
+    for i in "$out/bin/"*; do
+        wrapProgram $i \
+            --prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \
+            --prefix PATH ':' $out/bin:$hydraPath \
+            --set HYDRA_RELEASE ${version} \
+            --set HYDRA_HOME $out/libexec/hydra \
+            --set NIX_RELEASE ${nix.name}
+    done
+  '';
+
+  meta = {
+    description = "Hydra, the Nix-based continuous integration system";
+    homepage = http://nixos.org/hydra/;
+    license = "GPLv3+";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/misc/jscoverage/default.nix b/pkgs/development/tools/misc/jscoverage/default.nix
new file mode 100644
index 000000000000..c7f790b7d50a
--- /dev/null
+++ b/pkgs/development/tools/misc/jscoverage/default.nix
@@ -0,0 +1,47 @@
+{ autoconf, fetchurl, makedepend, perl, python, stdenv, unzip, zip }:
+
+stdenv.mkDerivation rec {
+  name = "jscoverage-0.5.1";
+
+  src = fetchurl {
+    url = "http://siliconforks.com/jscoverage/download/${name}.tar.bz2";
+    sha256 = "c45f051cec18c10352f15f9844f47e37e8d121d5fd16680e2dd0f3b4420eb7f4";
+  };
+
+  buildInputs = [ autoconf makedepend perl python unzip zip ];
+
+  # It works without MOZ_FIX_LINK_PATHS, circumventing an impurity
+  # issue.  Maybe we could kick js/ (spidermonkey) completely and
+  # instead use our spidermonkey via nix.
+  preConfigure = ''
+  sed -i 's/^MOZ_FIX_LINK_PATHS=.*$/MOZ_FIX_LINK_PATHS=""/' ./js/configure
+  '';
+
+  meta = {
+    description = "Code coverage for JavaScript";
+
+    longDescription = ''
+    JSCoverage is a tool that measures code coverage for JavaScript
+    programs.
+
+    Code coverage statistics show which lines of a program have been
+    executed (and which have been missed). This information is useful
+    for constructing comprehensive test suites (hence, it is often
+    called test coverage).
+
+    JSCoverage works by instrumenting the JavaScript code used in web
+    pages. Code coverage statistics are collected while the
+    instrumented JavaScript code is executed in a web browser.
+
+    JSCoverage supports the complete language syntax described in the
+    ECMAScript Language Specification (ECMA-262, 3rd
+    edition). JSCoverage works with any modern standards-compliant web
+    browser - including Internet Explorer (IE 6, 7, and 8), Firefox,
+    Opera, Safari, and Google Chrome - on Microsoft Windows and
+    GNU/Linux.
+    '';
+
+    homepage = http://siliconforks.com/jscoverage/;
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 8c15eec8094f..14848dc23528 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, m4, perl, lzma }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "libtool-2.4";
 
   src = fetchurl {
@@ -38,3 +38,11 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
+
+//
+
+# Don't run the native `strip' when cross-compiling.  This breaks at least
+# with `.a' files for MinGW.
+(if (stdenv ? cross)
+ then { dontStrip = true; }
+ else { }))
diff --git a/pkgs/development/tools/misc/ninka/default.nix b/pkgs/development/tools/misc/ninka/default.nix
new file mode 100644
index 000000000000..dddb577edbf3
--- /dev/null
+++ b/pkgs/development/tools/misc/ninka/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchgit, perl}:
+
+assert stdenv ? glibc;
+
+let
+  rev = "7a9a5c48ede207eec881";
+in
+stdenv.mkDerivation {
+  name = "ninka-"+rev;
+  src = fetchgit {
+    url = http://github.com/dmgerman/ninka.git;
+    inherit rev;
+    sha256 = "3e877fadf074b9c5abfe36ff10b7e332423d1d4c5b17accc5586c7cffdb2c7dd";
+  };
+  
+  buildInputs = [ perl ];
+  
+  buildPhase = ''
+    cd comments
+    tar xfvz comments.tar.gz
+    cd comments
+    sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/local/man|$out/share/man|g" Makefile
+    make
+  '';
+  
+  installPhase = ''
+    cd ../..
+    ensureDir $out/bin
+    cp ninka.pl $out/bin
+    cp -av {extComments,splitter,filter,senttok,matcher} $out/bin
+    
+    cd comments/comments    
+    ensureDir $out/{bin,share/man/man1}
+    make install    
+  '';
+  
+  meta = {
+    license = "AGPLv3+";
+    description = "A sentence based license detector";
+  };
+}
diff --git a/pkgs/development/tools/misc/patchelf/0.6.nix b/pkgs/development/tools/misc/patchelf/0.6.nix
index 3774c44480dc..68cdf47e48b2 100644
--- a/pkgs/development/tools/misc/patchelf/0.6.nix
+++ b/pkgs/development/tools/misc/patchelf/0.6.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "patchelf-0.6pre22275";
+  name = "patchelf-0.6pre23458";
   
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/504657/download/2/patchelf-0.6pre22813.tar.bz2";
-    sha256 = "1ml86wyl35ik3lixkcz2vlzvbcancj0dygwfh5ambjmazp2q19mh";
+    url = "http://hydra.nixos.org/build/838169/download/2/patchelf-0.6pre23458.tar.bz2";
+    sha256 = "18d74n14s4xh8aqwisvz63gx9j4d5b9bzb8k1jnp8whvvwzasdq5";
   };
 
   meta = {
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 0ffe91762f55..a370757b37c1 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, xz, perl }:
 
 stdenv.mkDerivation rec {
-  name = "strace-4.5.20";
+  name = "strace-4.6";
 
   src = fetchurl {
-    url = "mirror://sourceforge/strace/${name}.tar.bz2";
-    sha256 = "1gfakika8833373p09pfzn5y83kx4jmlxws6na8av9gad69hb37a";
+    url = "mirror://sourceforge/strace/${name}.tar.xz";
+    sha256 = "12n2faqq7whmszpjhv2lcb06r7900j53p0zl7vipi18inr0smycy";
   };
 
+  buildInputs = [ xz perl ];
+
   meta = {
     homepage = http://strace.sourceforge.net/;
     description = "A system call tracer for Linux";
diff --git a/pkgs/development/tools/parsing/alex/2.3.1.nix b/pkgs/development/tools/parsing/alex/2.3.1.nix
new file mode 100644
index 000000000000..fd239d580bf3
--- /dev/null
+++ b/pkgs/development/tools/parsing/alex/2.3.1.nix
@@ -0,0 +1,20 @@
+{ cabal, perl }:
+
+cabal.mkDerivation (self: {
+  pname = "alex";
+  version = "2.3.1";
+  sha256 = "cdd42fd992a72fedeff1f38debc21aa315d90dc070f0945d7819c0bccd549a44";
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/parsing/alex/2.3.2.nix b/pkgs/development/tools/parsing/alex/2.3.2.nix
index 565ecf2f167c..d3a4778f3f32 100644
--- a/pkgs/development/tools/parsing/alex/2.3.2.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.2.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.2"; # Haskell Platform 2010.1.0.0
-  name = self.fname;
+  version = "2.3.2";
   sha256 = "6715a4c27b15a74d8f31cbb6a7d654b9cb6766d74980c75b65dee7c627049f43";
-  extraBuildInputs = [perl];
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
   meta = {
-    description = "A lexical analyser generator for Haskell";
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/alex/2.3.3.nix b/pkgs/development/tools/parsing/alex/2.3.3.nix
index 7f6186970fae..c9e7671c9447 100644
--- a/pkgs/development/tools/parsing/alex/2.3.3.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.3.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.3"; # Haskell Platform 2010.2.0.0
-  name = self.fname;
+  version = "2.3.3";
   sha256 = "338fc492a1fddd6c528d0eb89857cadab211cb42680aeee1f9702bbfa7c5e1c8";
-  extraBuildInputs = [perl];
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
   meta = {
-    description = "A lexical analyser generator for Haskell";
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/alex/2.3.5.nix b/pkgs/development/tools/parsing/alex/2.3.5.nix
new file mode 100644
index 000000000000..db676a906849
--- /dev/null
+++ b/pkgs/development/tools/parsing/alex/2.3.5.nix
@@ -0,0 +1,20 @@
+{ cabal, perl }:
+
+cabal.mkDerivation (self: {
+  pname = "alex";
+  version = "2.3.5";
+  sha256 = "0lyjiq4lmii2syk6838ln32qvn8c0ljf1ypsggahy748k05x79if";
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/parsing/alex/3.0.1.nix b/pkgs/development/tools/parsing/alex/3.0.1.nix
new file mode 100644
index 000000000000..6725fed52797
--- /dev/null
+++ b/pkgs/development/tools/parsing/alex/3.0.1.nix
@@ -0,0 +1,21 @@
+{ cabal, perl, QuickCheck }:
+
+cabal.mkDerivation (self: {
+  pname = "alex";
+  version = "3.0.1";
+  sha256 = "1w7s9kzgr4kfh6cyhb4qkvxwy9gcw3xa1d2k5dy575k3wk73awkj";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ QuickCheck ];
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/parsing/alex/default.nix b/pkgs/development/tools/parsing/alex/default.nix
deleted file mode 100644
index aab99629b317..000000000000
--- a/pkgs/development/tools/parsing/alex/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, perl}:
-
-cabal.mkDerivation (self : {
-  pname = "alex";
-  version = "2.3.1"; # Haskell Platform 2009.0.0
-  name = self.fname;
-  sha256 = "cdd42fd992a72fedeff1f38debc21aa315d90dc070f0945d7819c0bccd549a44";
-  extraBuildInputs = [perl];
-  meta = {
-    description = "A lexical analyser generator for Haskell";
-  };
-})
diff --git a/pkgs/development/tools/parsing/bison/bison-2.5.nix b/pkgs/development/tools/parsing/bison/bison-2.5.nix
new file mode 100644
index 000000000000..e373a80e46dd
--- /dev/null
+++ b/pkgs/development/tools/parsing/bison/bison-2.5.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, m4, perl }:
+
+stdenv.mkDerivation rec {
+  name = "bison-2.5";
+
+  src = fetchurl {
+    url = "mirror://gnu/bison/${name}.tar.bz2";
+    sha256 = "1f1rai3v6k6xjii94964iq0alhc2hxwapqa363nfj8rbxvv0sdqa";
+  };
+
+  buildInputs = [ m4 ]
+    ++ stdenv.lib.optional doCheck perl;
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU Bison, a Yacc-compatible parser generator";
+
+    longDescription = ''
+      Bison is a general-purpose parser generator that converts an
+      annotated context-free grammar into an LALR(1) or GLR parser for
+      that grammar.  Once you are proficient with Bison, you can use
+      it to develop a wide range of language parsers, from those used
+      in simple desk calculators to complex programming languages.
+
+      Bison is upward compatible with Yacc: all properly-written Yacc
+      grammars ought to work with Bison with no change.  Anyone
+      familiar with Yacc should be able to use Bison with little
+      trouble.  You need to be fluent in C or C++ programming in order
+      to use Bison.
+    '';
+
+    homepage = http://www.gnu.org/software/bison/;
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+
+  passthru = { glrSupport = true; };
+}
diff --git a/pkgs/development/tools/parsing/happy/1.18.4.nix b/pkgs/development/tools/parsing/happy/1.18.4.nix
new file mode 100644
index 000000000000..5b52d222f374
--- /dev/null
+++ b/pkgs/development/tools/parsing/happy/1.18.4.nix
@@ -0,0 +1,20 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy";
+  version = "1.18.4";
+  sha256 = "909bec4541a92d3765e74756f752514d2d03ec7a5d3e74c18268a57fe7ffa832";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://www.haskell.org/happy/";
+    description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/parsing/happy/1.18.5.nix b/pkgs/development/tools/parsing/happy/1.18.5.nix
new file mode 100644
index 000000000000..41532651c995
--- /dev/null
+++ b/pkgs/development/tools/parsing/happy/1.18.5.nix
@@ -0,0 +1,21 @@
+{ cabal, mtl, perl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy";
+  version = "1.18.5";
+  sha256 = "91e1c29ac42bc5cabcac2c2e28e693fc59fbdf30636e5c52cb51b779a74d755e";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/happy/";
+    description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/parsing/happy/1.18.6.nix b/pkgs/development/tools/parsing/happy/1.18.6.nix
new file mode 100644
index 000000000000..60b8d253659e
--- /dev/null
+++ b/pkgs/development/tools/parsing/happy/1.18.6.nix
@@ -0,0 +1,21 @@
+{ cabal, mtl, perl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy";
+  version = "1.18.6";
+  sha256 = "0q6dnwihi1q761qdq0hhi733nh5d53xz6frwmr7slpvrp6v8y344";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/happy/";
+    description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/parsing/happy/happy-1.17.nix b/pkgs/development/tools/parsing/happy/happy-1.17.nix
deleted file mode 100644
index b7fa22ccb800..000000000000
--- a/pkgs/development/tools/parsing/happy/happy-1.17.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, perl}:
-
-cabal.mkDerivation (self : {
-
-  # requires cabal-1.2 (and therefore, in Nix, currently ghc-6.8)
-
-  pname = "happy";
-  version = "1.17";
-  name = self.fname;
-  sha256 = "dca4e47d17e5d538335496236b3d2c3cbff644cf7380c987a4714e7784c70a2b";
-  extraBuildInputs = [perl];
-})
diff --git a/pkgs/development/tools/parsing/happy/happy-1.18.4.nix b/pkgs/development/tools/parsing/happy/happy-1.18.4.nix
deleted file mode 100644
index a5cbfc6e21bb..000000000000
--- a/pkgs/development/tools/parsing/happy/happy-1.18.4.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, mtl, perl}:
-
-cabal.mkDerivation (self : {
-  pname = "happy";
-  version = "1.18.4"; # Haskell Platform 2009.2.0.1
-  name = self.fname;
-  sha256 = "909bec4541a92d3765e74756f752514d2d03ec7a5d3e74c18268a57fe7ffa832";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
-  meta = {
-    description = "Happy is a parser generator for Haskell";
-  };
-})
diff --git a/pkgs/development/tools/parsing/happy/happy-1.18.5.nix b/pkgs/development/tools/parsing/happy/happy-1.18.5.nix
deleted file mode 100644
index c3cd406f127b..000000000000
--- a/pkgs/development/tools/parsing/happy/happy-1.18.5.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, mtl, perl}:
-
-cabal.mkDerivation (self : {
-  pname = "happy";
-  version = "1.18.5"; # Haskell Platform 2010.2.0.0
-  name = self.fname;
-  sha256 = "91e1c29ac42bc5cabcac2c2e28e693fc59fbdf30636e5c52cb51b779a74d755e";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
-  meta = {
-    description = "Happy is a parser generator for Haskell";
-  };
-})
diff --git a/pkgs/development/tools/parsing/peg/default.nix b/pkgs/development/tools/parsing/peg/default.nix
new file mode 100644
index 000000000000..b1b9a6dee4ef
--- /dev/null
+++ b/pkgs/development/tools/parsing/peg/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "peg-0.1.4";
+
+  src = fetchurl {
+    url = "${meta.homepage}/${name}.tar.gz";
+    sha256 = "01agf4fbqv0r1xyqvj0va8kcrh3f2ka59f1aqvzfrabn7n5p8ik4";
+  };
+
+  preBuild="makeFlagsArray+=( PREFIX=$out )";
+
+  preInstall=''
+    mkdir -pv $out/bin $out/share/man/man1
+    cp -pv *.1 $out/share/man/man1
+  '';
+
+  meta = {
+    homepage = http://piumarta.com/software/peg/;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/web/csslint/default.nix b/pkgs/development/web/csslint/default.nix
new file mode 100644
index 000000000000..6f09603b2d56
--- /dev/null
+++ b/pkgs/development/web/csslint/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, nodejs }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.0";
+  name = "csslint-${version}";
+
+  src = fetchurl {
+    url = "http://registry.npmjs.org/csslint/-/${name}.tgz";
+    sha256 = "ee7a79c8f2af1c228d4b7869b6681d0d02a93568774dbf51c7a45aa1ffa1da14";
+  };
+
+  # node is the interpreter used to run this script
+  buildInputs = [ nodejs ];
+
+  installPhase = ''
+    sed -i "s/path\.join/path\.resolve/g" cli.js # fixes csslint issue #167
+    ensureDir $out/bin;
+    cp -r * $out/bin
+    mv $out/bin/cli.js $out/bin/csslint
+  '';
+
+  meta = with stdenv.lib; {
+    description = "checks CSS for syntax errors and other problems";
+    longDescription = ''
+      CSSLint is a tool to help point out problems with your CSS
+      code. It does basic syntax checking as well as applying a set of
+      rules to the code that look for problematic patterns or signs of
+      inefficiency. The rules are all pluggable, so you can easily
+      write your own or omit ones you don't want. '';
+    homepage = http://nodejs.org;
+    license = licenses.bsd2;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
new file mode 100644
index 000000000000..909f0d39fbdb
--- /dev/null
+++ b/pkgs/development/web/nodejs/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, openssl, python }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.4";
+  name = "nodejs-${version}";
+
+  src = fetchurl {
+    url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
+    sha256 = "d32d3af4e3286b383640df857d76c2fcca1a2e2cb85abb484483a0a49d09ae71";
+  };
+
+  patchPhase = ''
+    sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf}
+  '';
+
+  buildInputs = [ python openssl ];
+
+  meta = with stdenv.lib; {
+    description = "Event-driven I/O framework for the V8 JavaScript engine";
+    homepage = http://nodejs.org;
+    license = licenses.mit;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/LambdaHack/default.nix b/pkgs/games/LambdaHack/default.nix
index b51538ef3636..b30d7ec793f6 100644
--- a/pkgs/games/LambdaHack/default.nix
+++ b/pkgs/games/LambdaHack/default.nix
@@ -1,13 +1,22 @@
-{cabal, binary, mtl, zlib, vty}:
+{cabal, binary, mtl, zlib, vty, ConfigFile, MissingH, filepath}:
 
 cabal.mkDerivation (self : {
   pname = "LambdaHack";
-  version = "0.1.20090606";
+  version = "0.1.20110117";
   name = self.fname;
-  sha256 = "9b8d790b0a99231aff2d108b50dd2f2998b09bec3ffedf9f1415557aaeb6039b";
-  propagatedBuildInputs = [binary mtl zlib vty];
+  sha256 = "186ccl1yq0r84h9azzwj0zyy3kf905i3kjlnziyi52ysqd61qw90";
+  propagatedBuildInputs =
+    [binary mtl zlib vty ConfigFile MissingH filepath];
+  preConfigure = ''
+    sed -i 's|\(filepath.*\) && < 1.2|\1|' ${self.pname}.cabal
+  '';
   meta = {
     description = "a small roguelike game";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/games/MazesOfMonad/default.nix b/pkgs/games/MazesOfMonad/default.nix
index fa38b49905be..dbf7ecae425f 100644
--- a/pkgs/games/MazesOfMonad/default.nix
+++ b/pkgs/games/MazesOfMonad/default.nix
@@ -1,13 +1,19 @@
-{cabal, HUnit, mtl, regexPosix, time}:
+{ cabal, HUnit, mtl, random, regexPosix, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MazesOfMonad";
-  version = "1.0.5";
-  name = self.fname;
-  sha256 = "a068df09975e7a3060cbd69191cbf99cb3a7b0ee524deb61eef4c52e7fada3f3";
-  propagatedBuildInputs = [HUnit mtl regexPosix time];
+  version = "1.0.7";
+  sha256 = "1zk6bckll03b40iq8z13753glkmcan6439w8cc6rn5h2fhp189v9";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ HUnit mtl random regexPosix time ];
   meta = {
     description = "Console-based Role Playing Game";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/games/banner/default.nix b/pkgs/games/banner/default.nix
new file mode 100644
index 000000000000..73d08fda79f6
--- /dev/null
+++ b/pkgs/games/banner/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, flex, bison, ncurses, buddy, tecla, libsigsegv, gmpxx, makeWrapper }:
+
+let
+  # Banner depends on two separate libraries. Adding those libraries to
+  # the top-level seems like overkill, though, because no other tools
+  # seems to use them. So we'll build them within this expression.
+  mkDerivation = name: hash: deriv: stdenv.mkDerivation (deriv // {
+    inherit name;
+
+    src = fetchurl {
+      url = "http://shh.thathost.com/pub-unix/files/${name}.tar.gz";
+      sha256 = hash;
+    };
+
+    configurePhase = "make dep";
+
+    buildPhase = "make OPTIM='-DNDEBUG -O3'";
+
+    installPhase = ''
+      make INSTBASEDIR=$out install
+      if [ -d $out/man ]; then
+        ensureDir $out/share
+	mv -v $out/man $out/share/
+      fi
+    '';
+  });
+
+  shhopt = mkDerivation "shhopt-1.1.7" "bae94335124efa6fcc2f0a55cabd68c9c90be935bcdb8054d7e5188e0d5da679" {};
+
+  shhmsg = mkDerivation "shhmsg-1.4.1" "f65d45d3a5e415b541a1975e13fe7c5b58e21df6e9306cc3f7901279a9f6d461" {};
+
+in
+
+mkDerivation "banner-1.3.2" "0dc0ac0667b2e884a7f5ad3e467af68cd0fd5917f8c9aa19188e6452aa1fc6d5" {
+  buildInputs = [shhopt shhmsg];
+
+  meta = {
+    homepage = "http://shh.thathost.com/pub-unix/";
+    description = "print large banners to ASCII terminals";
+    license = "GPLv2";
+
+    longDescription = ''
+      An implementation of the traditional Unix-program used to display
+      large characters.
+    '';
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/games/btanks/default.nix b/pkgs/games/btanks/default.nix
new file mode 100644
index 000000000000..085c7c4082cb
--- /dev/null
+++ b/pkgs/games/btanks/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, scons, pkgconfig, SDL, mesa, zlib, smpeg, SDL_image, libvorbis, lua5, zip }:
+
+stdenv.mkDerivation rec {
+  name = "battle-tanks-0.9.8083";
+
+  src = fetchurl {
+    url = mirror://sourceforge/btanks/btanks-0.9.8083.tar.bz2;
+    sha256 = "0ha35kxc8xlbg74wsrbapfgxvcrwy6psjkqi7c6adxs55dmcxliz";
+  };
+
+  buildInputs = [ scons pkgconfig SDL mesa zlib smpeg SDL_image libvorbis lua5
+    zip ];
+
+  buildPhase = ''
+    scons prefix=$out
+  '';
+
+  installPhase = ''
+    scons install
+  '';
+
+  meta = {
+    homepage = http://sourceforge.net/projects/btanks/;
+    description = "Fast 2d tank arcade game";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/bzflag/default.nix b/pkgs/games/bzflag/default.nix
new file mode 100644
index 000000000000..d15c25cef3cd
--- /dev/null
+++ b/pkgs/games/bzflag/default.nix
@@ -0,0 +1,18 @@
+{ fetchurl, stdenv, curl, SDL, mesa, glew, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "bzflag-2.0.16";
+
+  src = fetchurl {
+    url = mirror://sourceforge/bzflag/bzflag-2.0.16.tar.bz2;
+    sha256 = "13v0ibiyq59j3xf23yf7s8blkmacagl8w48v2580k5bzkswa0vzy";
+  };
+
+  buildInputs = [ curl SDL mesa glew ncurses ];
+
+  meta = {
+    description = "Multiplayer 3D Tank game";
+    homepage = http://bzflag.org/;
+    license = "LGPLv2.1+";
+  };
+}
diff --git a/pkgs/games/construo/default.nix b/pkgs/games/construo/default.nix
index 0de0732b3747..4de74bde5a11 100644
--- a/pkgs/games/construo/default.nix
+++ b/pkgs/games/construo/default.nix
@@ -7,7 +7,9 @@
 			sha256 = "0c661rjasax4ykw77dgqj39jhb4qi48m0bhhdy42vd5a4rfdrcck";
 		};
 
-		buildInputs = [libX11 zlib xproto mesa freeglut];
+		buildInputs = [ libX11 zlib xproto ]
+                  ++ stdenv.lib.optional (mesa != null) mesa
+                  ++ stdenv.lib.optional (freeglut != null) freeglut;
 		preConfigure = builderDefs.stringsWithDeps.fullDepEntry (''
 		  sed -e 's/math[.]h/cmath/' -i vector.cxx
 		  sed -e 's/games/bin/' -i Makefile.in
diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix
index 9ff05667f1e6..b99f8b09b9de 100644
--- a/pkgs/games/eduke32/default.nix
+++ b/pkgs/games/eduke32/default.nix
@@ -1,19 +1,18 @@
-{stdenv, fetchsvn, SDL, SDL_mixer, unzip, libvorbis, mesa, gtk, pkgconfig, nasm, makeDesktopItem}:
+{stdenv, fetchurl, SDL, SDL_mixer, libvorbis, mesa, gtk, pkgconfig, nasm, makeDesktopItem}:
 
 stdenv.mkDerivation rec {
-  name = "eduke32";
+  name = "eduke32-1944";
   
-  src = fetchsvn {
-    url = https://eduke32.svn.sourceforge.net/svnroot/eduke32/polymer/eduke32;
-    rev = 1597;
-    sha256 = "be917420d628584e1b950570f67332f66cee0d24edfcee39c7bd62e6b9456436";
+  src = fetchurl {
+    url = http://dukeworld.duke4.net/eduke32/synthesis/20110724-1944/eduke32_src_20110724-1944.tar.bz2;
+    sha256 = "0y2y9agydfkdq4krp4lz22br3p23as6hrqhq7l9djw0pm2y76fqh";
   };
   
-  buildInputs = [ unzip SDL SDL_mixer libvorbis mesa gtk pkgconfig ]
+  buildInputs = [ SDL SDL_mixer libvorbis mesa gtk pkgconfig ]
     ++ stdenv.lib.optional (stdenv.system == "i686-linux") nasm;
   
-  NIX_LDFLAGS = "-lgcc_s";
   NIX_CFLAGS_COMPILE = "-I${SDL}/include/SDL";
+  NIX_LDFLAGS = "-L${SDL}/lib -lgcc_s";
   
   desktopItem = makeDesktopItem {
     name = "eduke32";
@@ -24,6 +23,10 @@ stdenv.mkDerivation rec {
     categories = "Application;Game;";
   };
 
+  preConfigure = ''
+    sed -i -e "s|/usr/bin/sdl-config|${SDL}/bin/sdl-config|" build/Makefile.shared
+  '';
+  
   buildPhase = ''
     make OPTLEVEL=0
   '';
@@ -39,7 +42,7 @@ stdenv.mkDerivation rec {
     
     if [ "$EDUKE32_DATA_DIR" = "" ]
     then 
-        EDUKE32_DATA_DIR=/var/games/eduke32
+        EDUKE32_DATA_DIR=/var/lib/games/eduke32
     fi
     if [ "$EDUKE32_GRP_FILE" = "" ]
     then
@@ -47,7 +50,7 @@ stdenv.mkDerivation rec {
     fi
     
     cd \$EDUKE32_DATA_DIR
-    eduke32 /g\$EDUKE32_GRP_FILE    
+    eduke32 -g \$EDUKE32_GRP_FILE    
     EOF
     chmod 755 $out/bin/eduke32-wrapper
     
@@ -58,7 +61,8 @@ stdenv.mkDerivation rec {
   
   meta = {
     description = "Enhanched port of Duke Nukem 3D for various platforms";
-    license = "GPL";
+    license = "GPLv2+ and BUILD license";
+    homepage = http://eduke32.com;
     maintainers = [ stdenv.lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
new file mode 100644
index 000000000000..a7d906ed9b8e
--- /dev/null
+++ b/pkgs/games/flightgear/default.nix
@@ -0,0 +1,59 @@
+x@{builderDefsPackage
+  , freeglut, freealut, mesa, libICE, libjpeg, openal, openscenegraph, plib
+  , libSM, libunwind, libX11, xproto, libXext, xextproto, libXi, inputproto
+  , libXmu, libXt, simgear, zlib, boost
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="FlightGear";
+    version="2.0.0";
+    name="${baseName}-${version}";
+    extension="tar.gz";
+    url="http://ftp.linux.kiev.ua/pub/fgfs/Source/${name}.${extension}";
+    hash="17h7ns955xkd0cakfk22aym0id65rd8kylcamkmycbgnnhs4b1wg";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  datasrc = a.fetchurl {
+    url = "http://ftp.igh.cnrs.fr/pub/flightgear/ftp/Shared/FlightGear-data-2.0.0.tar.bz2";
+    sha256 = "0kvmvh5qycbpdjx12l20cbhljwimmcgww2dg4lkc2sky0kg14ic1";
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall" "deployData"];
+
+  deployData = a.fullDepEntry ''
+    ensureDir "$out/share/FlightGear"
+    cd "$out/share/FlightGear"
+    tar xvf ${datasrc}
+  '' ["minInit" "defEnsureDir"];
+      
+  meta = {
+    description = "A flight simulator";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+  };
+}) x
+
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
new file mode 100644
index 000000000000..f5b101b8882c
--- /dev/null
+++ b/pkgs/games/freeciv/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, freetype
+, pkgconfig, fontconfig, libzip, zip, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "freeciv-2.2.7";
+
+  src = fetchurl {
+    url = "mirror://sf/freeciv/${name}.tar.bz2";
+    sha256 = "993dd1685dad8012225fdf434673515a194fa072b3d5bfb04952a98fb862d319";
+  };
+
+  buildInputs = [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx freetype pkgconfig fontconfig libzip zip zlib] ;
+
+  meta = with stdenv.lib; {
+    description = "multiplayer (or single player), turn-based strategy game.";
+
+    longDescription = ''
+      Freeciv is a Free and Open Source empire-building strategy game
+      inspired by the history of human civilization. The game commences in
+      prehistory and your mission is to lead your tribe from the stone age
+      to the space age...
+    '';
+
+    homepage = http://freeciv.wikia.com/;
+    license = licenses.gpl2;
+
+    maintainers = with maintainers; [ pierron ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/games/glestae/default.nix b/pkgs/games/glestae/default.nix
new file mode 100644
index 000000000000..89790bfacec5
--- /dev/null
+++ b/pkgs/games/glestae/default.nix
@@ -0,0 +1,58 @@
+x@{builderDefsPackage
+  , mesa, cmake, lua5, SDL, openal, libvorbis, libogg, zlib, physfs
+  , freetype, libpng, libjpeg, glew, wxGTK28, libxml2, libpthreadstubs
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="glestae";
+    project="${baseName}";
+    version="0.3.2";
+    name="${baseName}-${version}";
+    nameSuffix="-src";
+    extension="tar.bz2";
+    url="mirror://sourceforge/project/${project}/${version}/${baseName}${nameSuffix}-${version}.${extension}";
+    hash="1k02vf88mms0zbprvy1b1qdwjzmdag5rd1p43f0gpk1sms6isn94";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doCmake" "doMakeInstall"];
+
+  cmakeFlags = [
+    "-DLUA_LIBRARIES=-llua"
+    "-DGAE_DATA_DIR=$out/share/glestae"
+  ];
+      
+  meta = {
+    description = "A 3D RTS - fork of inactive Glest project";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    # Note that some data seems to be under separate redistributable licenses
+    license = a.lib.licenses.gpl2Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://sourceforge.net/projects/glestae/files/0.3.2/";
+    };
+  };
+}) x
+
diff --git a/pkgs/games/globulation/default.nix b/pkgs/games/globulation/default.nix
new file mode 100644
index 000000000000..2b60abd00925
--- /dev/null
+++ b/pkgs/games/globulation/default.nix
@@ -0,0 +1,79 @@
+x@{builderDefsPackage
+  , mesa, SDL, scons, SDL_ttf, SDL_image, zlib, SDL_net, speex, libvorbis
+  , libogg, boost, fribidi, bsdiff
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+   baseName="glob2";
+    version="0.9.4";
+    patchlevel="4";
+    name="${baseName}-${version}.${patchlevel}";
+    url="http://dl.sv.nongnu.org/releases/glob2/${version}/${name}.tar.gz";
+    hash="1f0l2cqp2g3llhr9jl6jj15k0wb5q8n29vqj99xy4p5hqs78jk8g";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  tutorial4patch = a.fetchurl {
+    url = "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=34;filename=tutorial-part4.map.bspatch;att=1;bug=595448";
+    name = "globulation2-tutorial4-map-patch-debian.bspatch";
+    sha256 = "d3511ac0f822d512c42abd34b3122f2990862d3d0af6ce464ff372f5bd7f35e9";
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doUnpack" "doPatch" "doBspatch" "workaroundScons" "doScons"];
+
+  patches = [./header-order.patch];
+
+  doBspatch = a.fullDepEntry ''
+    cp campaigns/tutorial-part4.map{,.orig}
+    bspatch  campaigns/tutorial-part4.map{.orig,} ${tutorial4patch}
+  '' ["minInit" "doUnpack" "addInputs"];
+
+  # FIXME
+  # I officially fail to understand what goes on, but that seems to work
+  # too well not to use. Yes, it is ugly, I know...
+  workaroundScons = a.fullDepEntry ''
+    echo '#! ${a.stdenv.shell}' >> o
+    echo 'g++ -o "$@"' >> o
+    chmod a+x o
+    export PATH="$PATH:$PWD"
+  '' ["minInit"];
+
+  sconsFlags = [
+    "DATADIR=$out/share/globulation2/glob2"
+    "BINDIR=$out/bin"
+    "INSTALLDIR=$out/share/globulation2"
+  ];
+      
+  meta = {
+    description = "RTS without micromanagement";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl3;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://globulation2.org/wiki/Download_and_Install";
+    };
+  };
+}) x
+
diff --git a/pkgs/games/globulation/header-order.patch b/pkgs/games/globulation/header-order.patch
new file mode 100644
index 000000000000..6c8dd922c255
--- /dev/null
+++ b/pkgs/games/globulation/header-order.patch
@@ -0,0 +1,23 @@
+With gcc 4.4, compilation of libgag/src/TextStream.cpp fails with the error: 
+'class GAGCore::StreamBackend' has no member named 'getc'. Reordering 
+#include's solves the problem.
+
+Patch from Debian.
+
+Index: glob2-0.9.4.1/libgag/src/TextStream.cpp
+===================================================================
+--- glob2-0.9.4.1.orig/libgag/src/TextStream.cpp        2009-06-27 20:19:38.000000000 +0400
++++ glob2-0.9.4.1/libgag/src/TextStream.cpp     2009-06-27 20:20:22.000000000 +0400
+@@ -17,11 +17,11 @@
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+ 
+-#include <TextStream.h>
+ #include <assert.h>
+ #include <fstream>
+ #include <iostream>
+ #include <stack>
++#include <TextStream.h>
+ #ifdef WIN32
+ #define snprintf _snprintf
+ #define vsnprintf _vsnprintf
diff --git a/pkgs/games/icbm3d/default.nix b/pkgs/games/icbm3d/default.nix
new file mode 100644
index 000000000000..e5e5c94d4603
--- /dev/null
+++ b/pkgs/games/icbm3d/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, libX11}:
+
+stdenv.mkDerivation {
+  name = "icbm3d-0.4";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/icbm3d/icbm3d.0.4.tar.gz;
+    sha256 = "1z9q01mj0v9qbwby5cajjc9wpvdw2ma5v1r639vraxpl9qairm4s";
+  };
+
+  buildInputs = [ libX11 ];
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp icbm3d $out/bin
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/icbm3d/;
+    description = "3D vector-based clone of the atari game Missile Command";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/liquidwar/src-for-default.nix b/pkgs/games/liquidwar/src-for-default.nix
index 885a4a4499c2..d676adfdb14a 100644
--- a/pkgs/games/liquidwar/src-for-default.nix
+++ b/pkgs/games/liquidwar/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="0.0.8beta";
-   name="liquidwar-0.0.8beta";
-   hash="1qcwms44i9x2s38hy64w7xxjkb2j0bh7ril9hldkjy3z208s3wff";
+   version="0.0.9beta";
+   name="liquidwar-0.0.9beta";
+   hash="1a4yqh79y6s3f6dv5kkwjdqzi62y3qbwrx6420fqpvdn1694ycr9";
    url="http://download.savannah.gnu.org/releases/liquidwar6/${version}/liquidwar6-${version}.tar.gz";
-   advertisedUrl="http://download.savannah.gnu.org/releases/liquidwar6/0.0.8beta/liquidwar6-0.0.8beta.tar.gz";
+   advertisedUrl="http://download.savannah.gnu.org/releases/liquidwar6/0.0.9beta/liquidwar6-0.0.9beta.tar.gz";
   
   
 }
diff --git a/pkgs/games/mars/default.nix b/pkgs/games/mars/default.nix
new file mode 100644
index 000000000000..991afca6180c
--- /dev/null
+++ b/pkgs/games/mars/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, cmake, mesa, sfml_git, fribidi, taglib }:
+stdenv.mkDerivation rec {
+  name = "mars-${version}";
+  version = "0.7.2";
+  src = fetchurl {
+    url = "mirror://sourceforge/mars-game/mars_source_${version}.tar.gz";
+    sha256 = "092y0y1dghkvs0syjg9cv8iq0w29hkin8bznqc8sqm21v0swk451";
+  };
+  buildInputs = [ cmake mesa sfml_git fribidi taglib ];
+  installPhase = ''
+    cd ..
+    find -name '*.svn' -exec rm -rf {} \;
+    ensureDir "$out/share/mars/"
+    ensureDir "$out/bin/"
+    cp -rv data resources credits.txt license.txt "$out/share/mars/"
+    cp -v mars "$out/bin/mars.bin"
+    cat << EOF > "$out/bin/mars"
+    #! /bin/sh
+    cd "$out/share/mars/"
+    exec "$out/bin/mars.bin" "\$@"
+    EOF
+    chmod +x "$out/bin/mars"
+  '';
+  meta = with stdenv.lib; {
+    homepage = http://mars-game.sourceforge.net/;
+    description = "A game about fighting with ships in a 2D space setting";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.astsmtl ];
+  };
+}
diff --git a/pkgs/games/naev/default.nix b/pkgs/games/naev/default.nix
new file mode 100644
index 000000000000..abafd7eb36dc
--- /dev/null
+++ b/pkgs/games/naev/default.nix
@@ -0,0 +1,33 @@
+{ fetchurl, stdenv, lua5, SDL, openal, SDL_mixer, libxml2, pkgconfig, libvorbis
+, libpng, mesa, makeWrapper }:
+
+stdenv.mkDerivation {
+  name = "naev-0.5.0beta1";
+
+  srcData = fetchurl {
+    url = http://naev.googlecode.com/files/ndata-0.5.0-beta1;
+    sha256 = "0pqys1wdlxa336i9gjxfkgnq42xrbvq58ym66y0aa9xm92vr53f6";
+  };
+
+  src = fetchurl {
+    url = http://naev.googlecode.com/files/naev-0.5.0-beta1.tar.bz2;
+    sha256 = "1nkwjclfjypgdcfbfqkiidsvi0zfjvkcj0dgnrbj1g11rr6kd3wm";
+  };
+
+  buildInputs = [ SDL lua5 SDL_mixer openal libxml2 pkgconfig libvorbis
+    libpng mesa makeWrapper ];
+
+  postInstall = ''
+    ensureDir $out/share/naev
+    cp $srcData $out/share/naev/ndata
+    wrapProgram $out/bin/naev --add-flags $out/share/naev/ndata
+  '';
+
+  meta = {
+    description = "2D action/rpg space game";
+    homepage = http://www.naev.org;
+    license = "GPLv3+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/games/neverball/default.nix b/pkgs/games/neverball/default.nix
index 01cb578f7c0b..7e2df42a2931 100644
--- a/pkgs/games/neverball/default.nix
+++ b/pkgs/games/neverball/default.nix
@@ -33,5 +33,7 @@ stdenv.mkDerivation rec {
     homepage = http://neverball.org/;
     description = "Tilt the floor to roll a ball";
     license = "GPL";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/games/njam/default.nix b/pkgs/games/njam/default.nix
new file mode 100644
index 000000000000..4062405407bd
--- /dev/null
+++ b/pkgs/games/njam/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, SDL, SDL_image, SDL_mixer, SDL_net }:
+
+stdenv.mkDerivation rec {
+  name = "njam-1.25";
+
+  src = fetchurl {
+    url = mirror://sourceforge/njam/njam-1.25-src.tar.gz;
+    sha256 = "0ysvqw017xkvddj957pdfmbmji7qi20nyr7f0zxvcvm6c7d3cc7s";
+  };
+
+  preBuild = ''
+    rm src/*.o
+  '';
+
+  buildInputs = [ SDL SDL_image SDL_mixer SDL_net ];
+
+  patches = [ ./logfile.patch ];
+
+  meta = {
+    homepage = http://trackballs.sourceforge.net/;
+    description = "Cross-platform pacman-like game";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/njam/logfile.patch b/pkgs/games/njam/logfile.patch
new file mode 100644
index 000000000000..45fd82a0845b
--- /dev/null
+++ b/pkgs/games/njam/logfile.patch
@@ -0,0 +1,22 @@
+diff --git a/src/njamedit.cpp b/src/njamedit.cpp
+index a895ca9..38477db 100644
+--- a/src/njamedit.cpp
++++ b/src/njamedit.cpp
+@@ -114,7 +114,7 @@ void NjamEngine::LevelEditor()
+ 				key = SDLK_a;
+ 			else if (CheckForSave())
+ 			{
+-				LogFile::LogFile("Saving maps");
++				LogFile("Saving maps");
+ 				m_Maps.Save(filename);
+ 				level_type_was = level_type;
+ 				changed = false;
+@@ -139,7 +139,7 @@ void NjamEngine::LevelEditor()
+ 						"levels/%s.%s",
+ #endif					
+ 						filename, types[level_type]);
+-					LogFile::LogFile("Saving maps");
++					LogFile("Saving maps");
+ 					m_Maps.Save(buf);
+ 					level_type_was = level_type;
+ 					changed = false;
diff --git a/pkgs/games/pong3d/default.nix b/pkgs/games/pong3d/default.nix
new file mode 100644
index 000000000000..281bd8966f6f
--- /dev/null
+++ b/pkgs/games/pong3d/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, libX11}:
+
+stdenv.mkDerivation {
+  name = "3dpong-0.5.0";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/3dpong/src/3dpong-0.5.tar.gz;
+    sha256 = "1ibb79sbzlbn4ra3n0qk22gqr6fg7q0jy6cm0wg2qj4z64c7hmdi";
+  };
+
+  buildInputs = [ libX11 ];
+
+  preConfigure = ''
+    sed -i s,/usr/local,$out, Makefile
+    ensureDir $out/bin
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/3dpong/;
+    description = "One or two player 3d sports game based on Pong from Atari";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/quake3/game/default.nix b/pkgs/games/quake3/game/default.nix
index 292748c4546a..3b82ebb83a8d 100644
--- a/pkgs/games/quake3/game/default.nix
+++ b/pkgs/games/quake3/game/default.nix
@@ -1,10 +1,10 @@
-{stdenv, fetchurl, x11, SDL, mesa, openal}:
+{ stdenv, fetchurl, x11, SDL, mesa, openal }:
 
 stdenv.mkDerivation {
-  name = "ioquake3-1.34-pre-rc3";
+  name = "ioquake3-1.36";
   
   src = fetchurl {
-    url = http://ioquake3.org/files/ioquake3_1.34-rc3.tar.bz2;
+    url = http://ioquake3.org/files/1.36/ioquake3-1.36.tar.bz2; # calls itself "1.34-rc3"
     sha256 = "008vah60z0n9h1qp373xbqvhwfbyywbbhd1np0h0yw66g0qzchzv";
   };
 
@@ -16,6 +16,10 @@ stdenv.mkDerivation {
       url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/games-fps/quake3/files/quake3-1.34_rc3-gcc42.patch?rev=1.1";
       sha256 = "06c9lxfczcby5q29pim231mr2wdkvbv36xp9zbxp9vk0dfs8rv9x";
     })
+
+    # Do an exit() instead of _exit().  This is nice for gcov.
+    # Upstream also seems to do this.
+    ./exit.patch    
   ];
   
   buildInputs = [x11 SDL mesa openal];
diff --git a/pkgs/games/quake3/game/exit.patch b/pkgs/games/quake3/game/exit.patch
new file mode 100644
index 000000000000..82785167a782
--- /dev/null
+++ b/pkgs/games/quake3/game/exit.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' ioquake3_1.34-rc3-orig//code/unix/unix_main.c ioquake3_1.34-rc3//code/unix/unix_main.c
+--- code/unix/unix_main.c	2006-11-28 23:05:25.000000000 +0100
++++ code/unix/unix_main.c	2011-01-10 12:43:51.000000000 +0100
+@@ -341,7 +341,7 @@
+ void Sys_Exit( int ex ) {
+   Sys_ConsoleInputShutdown();
+ 
+-#ifdef NDEBUG // regular behavior
++#if 0
+ 
+   // We can't do this 
+   //  as long as GL DLL's keep installing with atexit...
diff --git a/pkgs/games/quake3/wrapper/builder.sh b/pkgs/games/quake3/wrapper/builder.sh
index f070973681ef..57d6bc6a5ba2 100644
--- a/pkgs/games/quake3/wrapper/builder.sh
+++ b/pkgs/games/quake3/wrapper/builder.sh
@@ -13,3 +13,6 @@ done
 makeWrapper $game/ioquake3.* $out/bin/quake3 \
     --suffix-each LD_LIBRARY_PATH ':' "$mesa/lib $gcc/lib" \
     --add-flags "+set fs_basepath $out +set r_allowSoftwareGL 1"
+
+makeWrapper $game/ioq3ded.* $out/bin/quake3-server \
+    --add-flags "+set fs_basepath $out"
diff --git a/pkgs/games/racer/default.nix b/pkgs/games/racer/default.nix
new file mode 100644
index 000000000000..8969b613cebb
--- /dev/null
+++ b/pkgs/games/racer/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, allegro, libjpeg, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "racer-1.1";
+
+  src = if stdenv.system == "i686-linux" then fetchurl {
+    url = http://hippo.nipax.cz/src/racer-1.1.tar.gz;
+    sha256 = "0fll1qkqfcjq87k0jzsilcw701z92lfxn2y5ga1n038772lymxl9";
+  } else if stdenv.system == "x86_64-linux" then fetchurl {
+    url = http://hippo.nipax.cz/src/racer-1.1.64.tar.gz;
+    sha256 = "0rjy3gmlhwfkb9zs58j0mc0dar0livwpbc19r6zw5r2k6r7xdan0";
+  } else
+    throw "System not supported";
+
+
+  buildInputs = [ allegro libjpeg makeWrapper ];
+
+  prePatch = ''
+    sed -i s,/usr/local,$out, Makefile src/HGFX.cpp src/STDH.cpp
+    sed -i s,/usr/share,$out/share, src/HGFX.cpp src/STDH.cpp
+  '';
+
+  patches = [ ./mkdir.patch ];
+
+  meta = {
+    description = "Car racing game";
+    homepage = http://hippo.nipax.cz/download.en.php;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/racer/mkdir.patch b/pkgs/games/racer/mkdir.patch
new file mode 100644
index 000000000000..910eaf390f4c
--- /dev/null
+++ b/pkgs/games/racer/mkdir.patch
@@ -0,0 +1,13 @@
+diff --git a/src/STDH.cpp b/src/STDH.cpp
+index 5f78473..47c3f8b 100644
+--- a/src/STDH.cpp
++++ b/src/STDH.cpp
+@@ -5,6 +5,8 @@
+ #include "player.h"

+ #include "drivers.h"

+ #include "cup.h"

++#include <sys/stat.h>
++#include <sys/types.h>
+ 

+ HScreen hscreen;

+ 

diff --git a/pkgs/games/rigsofrods/default.nix b/pkgs/games/rigsofrods/default.nix
new file mode 100644
index 000000000000..8fc623184ed9
--- /dev/null
+++ b/pkgs/games/rigsofrods/default.nix
@@ -0,0 +1,76 @@
+{ fetchsvn, fetchurl, stdenv, wxGTK290, freeimage, cmake, zziplib, mesa, boost, 
+  pkgconfig, libuuid, lua5, openal, ogre, ois, curl, gtk, pixman, mygui, unzip,
+  angelscript
+  }:
+
+stdenv.mkDerivation rec {
+  /* version = "1780"; */
+  version = "0.37";
+  name = "rigsofrods-${version}";
+
+  /* src = fetchsvn {
+    url = https://rigsofrods.svn.sourceforge.net/svnroot/rigsofrods/trunk;
+    rev = version;
+  }; */
+  
+  src = fetchurl {
+    url = mirror://sourceforge/rigsofrods/rigsofrods/0.37-dev/RoR-0.37.126-Sources.zip;
+    sha256 = "03mxmxpfdlsri0j3nqgyj2pc4gpzs8zq8qgg6qhnyazi7j95j4mk";
+  };
+
+  contentPackSrc = fetchurl {
+    url = mirror://sourceforge/rigsofrods/rigsofrods/0.37/content-pack-0.37.zip;
+    sha256 = "0prvn8lxqazadad4mv0nilax9i4vqb9s7dp7mqzvqc0ycmcnf4ps";
+  };
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = [
+    "-DROR_USE_LUA=TRUE" "-DLUA_LIBRARIES=${lua5}/lib/liblua.a"
+    "-DROR_USE_CURL=TRUE"
+    "-DROR_USE_MYGUI=TRUE"
+    # "-DROR_USE_OPNEAL=TRUE"
+    # "-DROR_USE_MOFILEREADER=TRUE"
+    # "-DROR_USE_CAELUM=TRUE"
+    # "-DROR_USE_PAGED=TRUE"
+    "-DROR_USE_ANGELSCRIPT=TRUE"
+    # "-DROR_USE_SOCKETW=TRUE"
+  ];
+
+  installPhase = ''
+    sed -e "s@/usr/local/lib/OGRE@${ogre}/lib/OGRE@" -i ../bin/plugins.cfg
+    sed -e "/CgProgramManager/d" -i ../bin/plugins.cfg
+    ensureDir $out/share/rigsofrods
+    cp -r .. $out/share/rigsofrods/build-dir
+    ensureDir $out/bin
+    for i in RoR rorconfig RoRViewer; do
+      echo '#! ${stdenv.shell}' >> "$out/bin/$i"
+      if [ "$i" = "rorconfig" ]; then
+        echo "[ -d \"\$HOME/.rigsofrods\" ] && cp -r '$out/share/rigsofrods/build-dirs/bin/skeleton' \"\$HOME/.rigsofrods\"" >> "$out/bin/$i"
+        echo "chmod u+w -R \"\$HOME/.rigsofrods\"" >> "$out/bin/$i"
+      fi
+      echo "\"$out/share/rigsofrods/build-dir/bin/$i\"" >> "$out/bin/$i"
+      chmod a+x "$out/bin/$i"
+    done
+    cd $out/share/rigsofrods/build-dir/bin/
+    unzip "${contentPackSrc}"
+  '';
+
+  preConfigure = ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -langelscript -lgtk-x11-2.0"
+    sed -e 's@wxLOCALE_CONV_ENCODING@0@g' -i source/configurator/configurator.cpp
+  '';
+
+  # patches = [ ./wx.patch ];
+
+  buildInputs = [ wxGTK290 freeimage cmake zziplib mesa boost pkgconfig
+    libuuid lua5 openal ogre ois curl gtk mygui unzip angelscript ];
+
+  meta = {
+    description = "3D simulator game where you can drive, fly and sail various vehicles";
+    homepage = http://rigsofrods.sourceforge.net/;
+    license = "GPLv3";
+    maintainers = with stdenv.lib.maintainers; [viric raskin];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/games/rigsofrods/wx.patch b/pkgs/games/rigsofrods/wx.patch
new file mode 100644
index 000000000000..d5b8e27de7b3
--- /dev/null
+++ b/pkgs/games/rigsofrods/wx.patch
@@ -0,0 +1,13 @@
+diff --git a/source/configurator/configurator.cpp b/source/configurator/configurator.cpp
+index c058820..5a4b316 100644
+--- a/source/configurator/configurator.cpp
++++ b/source/configurator/configurator.cpp
+@@ -2155,7 +2155,7 @@ void MyDialog::OnsightrangesliderScroll(wxScrollEvent &e)
+ 	int v = sightRange->GetValue();
+ 	if(v == sightRange->GetMax())
+ 	{
+-		s = "Unlimited";
++		s = _("Unlimited");
+ 	} else
+ 	{
+ 		s.Printf(wxT("%i m"), v);
diff --git a/pkgs/games/simutrans/default.nix b/pkgs/games/simutrans/default.nix
new file mode 100644
index 000000000000..511aa850ff93
--- /dev/null
+++ b/pkgs/games/simutrans/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, fetchurl, unzip, zlib, libpng, bzip2, SDL, SDL_mixer } :
+
+let
+  # This is the default "pakset" of objects, images, text, music, etc.
+  pak64 = fetchurl {
+    url = http://sourceforge.net/projects/simutrans/files/pak64/110-0-1/simupak64-110-0-1.zip/download;
+    name = "pak64.zip";
+    sha256 = "0gs6k9dbbhh60g2smsx2jza65vyss616bpngwpvilrvb5rzzrxcq";
+  };
+
+  # The source distribution seems to be missing some text files.
+  # So we will get them from the binary Linux release (which apparently has them).
+  langtab = fetchurl {
+    url = http://sourceforge.net/projects/simutrans/files/simutrans/110-0-1/simulinux-110-0-1.zip/download;
+    name = "simulinux-110-0-1.zip";
+    sha256 = "15z13kazdzhfzwxry7a766xkkdzaidvscylzrjkx3nnbcq6461s4";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "simutrans";
+  version = "110.0.1";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://github.com/aburch/simutrans/tarball/v110.0.1";
+    name = "${name}.tar.gz";
+    sha256 = "ab0e42e5013d6d2fd5d3176b39dc45e482583b3bad178aac1188bf2ec88feb51";
+  };
+
+  buildInputs = [ zlib libpng bzip2 SDL SDL_mixer unzip ];
+
+  prePatch = ''
+    # Use ~/.simutrans instead of ~/simutrans
+    sed -i 's@%s/simutrans@%s/.simutrans@' simsys_s.cc
+  '';
+
+  preConfigure = ''
+    # Configuration as per the readme.txt
+    sed -i 's@#BACKEND = sdl@BACKEND = sdl@' config.template
+    sed -i 's@#COLOUR_DEPTH = 16@COLOUR_DEPTH = 16@' config.template
+    sed -i 's@#OSTYPE = linux@OSTYPE = linux@' config.template
+    sed -i 's@#OPTIMISE = 1@OPTIMISE = 1@' config.template
+
+    cp config.template config.default
+  '';
+
+  installPhase = ''
+    # Erase the source distribution object definitions, will be replaced with langtab.
+    rm -r simutrans
+
+    # Default pakset and binary release core objects.
+    unzip ${pak64}
+    unzip ${langtab}
+
+    mv sim simutrans/
+
+    ensureDir $out/simutrans
+    cp -r simutrans $out
+
+    ensureDir $out/bin
+    ln -s $out/simutrans/sim $out/bin/simutrans
+  '';
+
+  meta = {
+    description = "Simutrans is a simulation game in which the player strives to run a successful transport system.";
+    longDescription = ''
+      Simutrans is a cross-platform simulation game in which the
+      player strives to run a successful transport system by
+      transporting goods, passengers, and mail between
+      places. Simutrans is an open source remake of Transport Tycoon.
+    '';
+
+    homepage = http://www.simutrans.com/;
+    license = "Artistic";
+    maintainers = [ stdenv.lib.maintainers.kkallio ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/games/soi/default.nix b/pkgs/games/soi/default.nix
new file mode 100644
index 000000000000..811d8d432ceb
--- /dev/null
+++ b/pkgs/games/soi/default.nix
@@ -0,0 +1,55 @@
+x@{builderDefsPackage
+  , mesa, SDL, cmake, eigen
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="soi";
+    fileName="Spheres%20of%20Influence";
+    majorVersion="0.1";
+    minorVersion="1";
+    version="${majorVersion}.${minorVersion}";
+    name="${baseName}-${version}";
+    project="${baseName}";
+    url="mirror://sourceforge/project/${project}/${baseName}-${majorVersion}/${fileName}-${version}-Source.tar.gz";
+    hash="dfc59319d2962033709bb751c71728417888addc6c32cbec3da9679087732a81";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+    name = "${sourceInfo.name}.tar.gz";
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["setVars" "doCmake" "doMakeInstall"];
+
+  setVars = a.noDepEntry ''
+    export EIGENDIR=${a.eigen}/include/eigen2
+  ''; 
+      
+  meta = {
+    description = "A physics-based puzzle game";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://sourceforge.net/projects/soi/files/";
+    };
+  };
+}) x
diff --git a/pkgs/games/speed-dreams/default.nix b/pkgs/games/speed-dreams/default.nix
new file mode 100644
index 000000000000..2a6b239608fd
--- /dev/null
+++ b/pkgs/games/speed-dreams/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, mesa, freeglut, libX11, plib, openal, freealut, libXrandr, xproto,
+libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm,
+libpng, zlib, bash, p7zip, SDL, enet, libjpeg, cmake}:
+
+stdenv.mkDerivation rec {
+  version = "2.0.0-a3-r3412";
+  name = "speed-dreams-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/speed-dreams/2.0.0/${name}-src.tar.7z";
+    sha256 = "0hn5fgn90wmd1xha1la133harx47qc647f4zj8hfdvd7wb3kpjab";
+  };
+
+  unpackPhase = ''
+    7z e -so ${src} | tar -x 
+    cd */
+  '';
+
+  buildInputs = [ mesa freeglut libX11 plib openal freealut libXrandr xproto
+    libXext libSM libICE libXi libXt libXrender libXxf86vm libpng zlib bash 
+    p7zip SDL enet libjpeg cmake];
+
+  installTargets = "install";
+
+  dontUseCmakeBuildDir=true;
+
+  meta = {
+    description = "Car racing game - TORCS fork with more experimental approach";
+    homepage = http://speed-dreams.sourceforge.net/;
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric raskin];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/games/teetertorture/default.nix b/pkgs/games/teetertorture/default.nix
new file mode 100644
index 000000000000..45b5988e88cf
--- /dev/null
+++ b/pkgs/games/teetertorture/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, SDL, SDL_image, SDL_mixer}:
+
+stdenv.mkDerivation {
+  name = "teeter-torture-20051018";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/teetertorture/source/teetertorture-2005-10-18.tar.gz;
+    sha256 = "175gdbkx3m82icyzvwpyzs4v2fd69c695k5n8ca0lnjv81wnw2hr";
+  };
+
+  buildInputs = [ SDL SDL_image SDL_mixer];
+
+  configurePhase = ''
+    sed -i s,data/,$out/share/teetertorture/, src/teetertorture.c
+  '';
+
+  patchPhase = ''
+    sed -i '/free(home)/d' src/teetertorture.c
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin $out/share/teetertorture
+    cp teetertorture $out/bin
+    cp -R data/* $out/share/teetertorture
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/teetertorture/;
+    description = "Simple shooting game with your cannon is sitting atop a teeter totter";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix
index 1185b663a02f..35b20fff98d5 100644
--- a/pkgs/games/teeworlds/default.nix
+++ b/pkgs/games/teeworlds/default.nix
@@ -1,34 +1,19 @@
-{ fetchurl, stdenv, python, alsaLib, libX11, mesa, SDL }:
+{ fetchurl, stdenv, python, alsaLib, libX11, mesa, SDL, lua5, zlib, bam }:
 
 stdenv.mkDerivation rec {
-  name = "teeworlds-0.5.2";
+  name = "teeworlds-0.6.0";
 
   src = fetchurl {
     url = "http://www.teeworlds.com/files/${name}-src.tar.gz";
-    sha256 = "1h7likcqbyr3q8djzlgxmr8fiwwj8is3b01hd5x0qix1z4dsf48q";
+    sha256 = "7540ecf10624b7e4e530c44402dc2d162ff40a3fe10bf30e0bb542d3d0a6a721";
   };
 
   # Note: Teeworlds requires Python 2.x to compile.  Python 3.0 will
   # not work.
-  buildInputs = [ python alsaLib libX11 mesa SDL ];
+  buildInputs = [ python alsaLib libX11 mesa SDL lua5 zlib bam ];
 
-  patchPhase = ''
-    substituteInPlace "default.bam"                             \
-      --replace 'settings.linker.flags = ""'                    \
-                'settings.linker.flags = "-fstack-protector-all"'
-  '';
   configurePhase = ''
-    # Fetch and build BAM, the home-made build system.
-    # FIXME: Move BAM outside of here.  See http://www.teeworlds.com/trac/bam .
-    tar xzvf ${fetchurl {
-        url = "http://teeworlds.com/trac/bam/browser/releases/bam-0.2.0.tar.gz?format=raw";
-        sha256 = "0n077iiidw7xsyna4y92pz5dwqaywps3w0v5c88dic27vz0xsv7g";
-      }
-    }
-    ( cd bam-* && ./make_unix.sh )
-
-    # Build Teeworlds.
-    ./bam-*/src/bam release
+    bam release
   '';
 
   installPhase = ''
diff --git a/pkgs/games/the-butterfly-effect/default.nix b/pkgs/games/the-butterfly-effect/default.nix
index bcc10ab83962..bd1885f9bd95 100644
--- a/pkgs/games/the-butterfly-effect/default.nix
+++ b/pkgs/games/the-butterfly-effect/default.nix
@@ -1,36 +1,40 @@
 x@{builderDefsPackage
-  , qt4, box2d_2_0_1
+  , qt4, box2d
+  ,fetchsvn
   , ...}:
 builderDefsPackage
 (a :  
 let 
   helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+    ["fetchsvn"];
 
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="tbe";
-    version="8.2";
+    revision="1319";
+    version="r${revision}";
     name="${baseName}-${version}";
-    url="mirror://sourceforge/project/${baseName}/Milestone%20${version}/TheButterflyEffect-m${version}.src.tgz";
-    hash="1s6xxvhw5rplpfmrhvfp4kb5z89lhcnrhawam8v7i51rk5hmjkd0";
+    url="https://tbe.svn.sourceforge.net/svnroot/tbe/trunk";
+    hash="e9a7c24f0668ba2f36c472c1d05238fa7d9ed2150d99ce8a927285d099cc0f7f";
   };
 in
 rec {
-  src = a.fetchurl {
+  srcDrv = a.fetchsvn {
     url = sourceInfo.url;
     sha256 = sourceInfo.hash;
+    rev = sourceInfo.revision;
   };
+  src = srcDrv + "/";
 
   inherit (sourceInfo) name version;
   inherit buildInputs;
 
-  phaseNames = ["setVars" /*"patchBox2d"*/ "doConfigure" "doMakeInstall" "doDeploy"];
+  phaseNames = ["setVars" "doConfigure" "doMakeInstall" "doDeploy"];
   configureCommand = "sh configure";
 
   setVars = a.noDepEntry ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${a.box2d_2_0_1}/include/Box2D"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${a.box2d}/include/Box2D"
   '';
 
   doDeploy = a.fullDepEntry ''
@@ -42,10 +46,6 @@ rec {
     chmod a+x "$out/bin/tbe"
   '' ["minInit" "doMake" "defEnsureDir"];
 
-  patchBox2d = a.fullDepEntry ''
-    find . -exec sed -i '{}' -e s@b2XForm@b2Transform@g ';'
-  '' ["minInit" "doUnpack"];
-      
   meta = {
     description = "A physics-based game vaguely similar to Incredible Machine";
     maintainers = with a.lib.maintainers;
@@ -57,6 +57,7 @@ rec {
     license = "GPLv2";
   };
   passthru = {
+    inherit srcDrv;
     updateInfo = {
       downloadPage = "http://sourceforge.net/projects/tbe/files/";
     };
diff --git a/pkgs/games/trigger/default.nix b/pkgs/games/trigger/default.nix
new file mode 100644
index 000000000000..ecc3c1a36fc2
--- /dev/null
+++ b/pkgs/games/trigger/default.nix
@@ -0,0 +1,43 @@
+{ fetchurl, stdenv, SDL, freealut, SDL_image, openal, physfs, zlib, mesa, jam }:
+
+stdenv.mkDerivation rec {
+  name = "trigger-0.5.2.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/trigger-rally/${name}-src.tar.bz2";
+    sha256 = "17sbw6j2z62w047fb8vlkabhq7s512r3a4pjd6402lpq09mpywhg";
+  };
+
+  srcData = fetchurl {
+    url = "mirror://sourceforge/trigger-rally/trigger-0.5.2-data.tar.bz2";
+    sha256 = "0sxfpn2vqzgv1dm66j75bmfc1kmnwrv1bb1yazmm803nnngk6zy9";
+  };
+
+  buildInputs = [ SDL freealut SDL_image openal physfs zlib mesa jam ];
+
+  preConfigure = ''
+    configureFlags="$configureFlags --datadir=$out/share/trigger-0.5.2-data"
+  '';
+
+  # It has some problems installing the README file, so... out.
+  patchPhase = ''
+    sed -i /README/d Jamfile
+  '';
+
+  buildPhase = "jam";
+
+  installPhase = ''
+    jam install
+    ensureDir $out/share
+    pushd $out/share
+    tar xf $srcData
+  '';
+
+  meta = {
+    description = "Rally";
+    homepage = http://trigger-rally.sourceforge.net/;
+    license = "GPLv2";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/games/ultimatestunts/default.nix b/pkgs/games/ultimatestunts/default.nix
index 247f39b18d5e..dc221f37dd62 100644
--- a/pkgs/games/ultimatestunts/default.nix
+++ b/pkgs/games/ultimatestunts/default.nix
@@ -1,13 +1,14 @@
-{stdenv, fetchurl, SDL, mesa, SDL_image, freealut}:
+{stdenv, fetchurl, SDL, mesa, SDL_image, freealut, openal, libvorbis,
+pkgconfig}:
 
 stdenv.mkDerivation rec {
-  name = "ultimate-stunts-0.7.5.1";
+  name = "ultimate-stunts-0.7.6.1";
   src = fetchurl {
-    url = mirror://sourceforge/ultimatestunts/ultimatestunts-srcdata-0751.tar.gz;
-    sha256 = "1s4xkaw0i6vqkjhi63plmrbrhhr408i3pv36qkpchpiiiw5bb7lv";
+    url = mirror://sourceforge/ultimatestunts/ultimatestunts-srcdata-0761.tar.gz;
+    sha256 = "0rd565ml6l927gyq158klhni7myw8mgllhv0xl1fg9m8hlzssgrv";
   };
 
-  buildInputs = [ SDL mesa SDL_image freealut ];
+  buildInputs = [ SDL mesa SDL_image freealut openal libvorbis pkgconfig ];
 
   meta = {
     homepage = http://www.ultimatestunts.nl/;
diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix
new file mode 100644
index 000000000000..586bfc3e511d
--- /dev/null
+++ b/pkgs/games/vdrift/default.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv, mesa, SDL, scons, freeglut, SDL_image, glew, libvorbis,
+  asio, boost, SDL_gfx }:
+
+stdenv.mkDerivation rec {
+  name = "vdrift-2010-06-30";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/vdrift/${name}.tar.bz2";
+    sha256 = "1zbh62363gx4ayyx4wcsp5di4f16qqfg2ajwkgw71kss6j7lk71j";
+  };
+
+  buildInputs = [ scons mesa SDL freeglut SDL_image glew libvorbis asio boost
+    SDL_gfx ];
+
+  buildPhase = ''
+    sed -i -e s,/usr/local,$out, SConstruct
+    scons
+  '';
+  installPhase = "scons install";
+
+  meta = {
+    description = "Car racing game";
+    homepage = http://vdrift.net/;
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/games/vectoroids/default.nix b/pkgs/games/vectoroids/default.nix
new file mode 100644
index 000000000000..5f9031ceeaa8
--- /dev/null
+++ b/pkgs/games/vectoroids/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, SDL, SDL_image, SDL_mixer}:
+
+stdenv.mkDerivation {
+  name = "vectoroids-1.1.0";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/vectoroids/src/vectoroids-1.1.0.tar.gz;
+    sha256 = "0bkvd4a1v496w0vlvqyi1a6p25ssgpkchxxxi8899sb72wlds54d";
+  };
+
+  buildInputs = [ SDL SDL_image SDL_mixer];
+
+  preConfigure = ''
+    sed -i s,/usr/local,$out, Makefile
+    ensureDir $out/bin
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/vectoroids/;
+    description = "Clone of the classic arcade game Asteroids by Atari";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/warmux/default.nix b/pkgs/games/warmux/default.nix
new file mode 100644
index 000000000000..40072ca7dfc6
--- /dev/null
+++ b/pkgs/games/warmux/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , curl, gnutls, fribidi, libpng, SDL, SDL_gfx, SDL_image, SDL_mixer
+  , SDL_net, SDL_ttf, libunwind, libX11, xproto, libxml2, pkgconfig
+  , gettext, intltool, libtool, perl
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="warmux";
+    version="11.01";
+    name="${baseName}-${version}";
+    url="http://download.gna.org/${baseName}/${name}.tar.bz2";
+    hash="1f063yaab08gflh4hnd8clb4as41ayfphi4q0cmi8syjiaap2qgh";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "Ballistics turn-based battle game between teams";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://download.gna.org/warmux/";
+    };
+  };
+}) x
+
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
index 5b6850b24aca..c70b6f6f22e6 100644
--- a/pkgs/games/warsow/default.nix
+++ b/pkgs/games/warsow/default.nix
@@ -3,25 +3,27 @@
 }:
 stdenv.mkDerivation rec {
   name = "warsow-${version}";
-  version = "0.5";
+  version = "0.62";
+  mversion = "0.61";  # sometimes only engine is updated
   src1 = fetchurl {
-    url = "http://static.warsow.net/release/warsow_${version}_sdk.zip";
-    sha256 = "018z83irj6wr5mj4pnya1r4abmg9sqznnkyq0gw9sr9q9dxr7k1m";
+    url = "http://www.zcdn.org/dl/warsow_${version}_sdk.zip";
+    sha256 = "0nb1z55lzmwarnn71dcyg9b3k7r7wxagqxks8a7rnlq7acsnra71";
   };
   src2 = fetchurl {
-    url = "http://static.warsow.net/release/warsow_${version}_unified.zip";
-    sha256 = "002idzqjq41ygjny9kk31fjx7l9clxy4xm38hc5dky6yfx17ib36";
+    url = "http://www.zcdn.org/dl/warsow_${mversion}_unified.zip";
+    sha256 = "1b5bv4dsly7i7c4fqlkckv4da1knxl9m3kg8nlgkgr8waczgvazv";
   };
   unpackPhase = ''
     mkdir warsow_${version}_sdk
     cd warsow_${version}_sdk
     unzip $src1
+    unzip $src2
+    ensureDir source/release/
+    mv warsow_${mversion}_unified/basewsw source/release/
     cd source
-    unzip $src2 'basewsw/*' -d release
   '';
   patchPhase = ''
-    substituteInPlace Makefile --replace openal-config 'pkg-config openal'
-    substituteInPlace snd_openal/snd_main.c --replace libopenal.so.0 ${openal}/lib/libopenal.so
+    substituteInPlace snd_openal/snd_main.c --replace libopenal.so.1 ${openal}/lib/libopenal.so.1
   '';
   buildInputs = [ unzip pkgconfig zlib curl libjpeg libvorbis libXxf86dga
                   libXxf86vm libXinerama SDL mesa openal ];
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index 656ff756a29d..0d6557364674 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -3,11 +3,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "warzone2100";
-  version = "2.3.4";
+  version = "2.3.7";
   name = "${pname}-${version}";
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${name}.tar.gz";
-    sha256 = "0s7yf73yq8pihpn9777pj1fy1m1cc3cxfs7v0c916wifslpm3x3h";
+    sha256 = "157v3jqaj0l910y8bcr9zpl0inx8g2942nm8zdnnn16gklf9mb26";
   };
   buildInputs = [ bison flex gettext pkgconfig SDL libpng libtheora openal
                   popt physfs mesa quesoglc zip unzip
diff --git a/pkgs/games/wesnoth/add-acl-prefix-to-libext.patch b/pkgs/games/wesnoth/add-acl-prefix-to-libext.patch
deleted file mode 100644
index 6ff96efda1e1..000000000000
--- a/pkgs/games/wesnoth/add-acl-prefix-to-libext.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -Naur wesnoth-upstream-1.8.5/m4/boost.m4 wesnoth-1.8.5/m4/boost.m4
-
-Libtools seems to set a variable called acl_libext while the Boost
-library check code uses a variable called libext.  This patch makes
-the Boost check use the variable acl_libext actually set by libtools.
-
---- wesnoth-upstream-1.8.5/m4/boost.m4	2010-10-02 20:35:59.577619372 -0430
-+++ wesnoth-1.8.5/m4/boost.m4	2010-10-02 20:39:10.383653233 -0430
-@@ -252,8 +252,8 @@
-   test -n "$boost_rtopt" && boost_rtopt="-$boost_rtopt"
-   $boost_guess_use_mt && boost_mt=-mt
-   # Look for the abs path the static archive.
--  # $libext is computed by Libtool but let's make sure it's non empty.
--  test -z "$libext" &&
-+  # $acl_libext is computed by Libtool but let's make sure it's non empty.
-+  test -z "$acl_libext" &&
-     AC_MSG_ERROR([the libext variable is empty, did you invoke Libtool?])
-   boost_save_ac_objext=$ac_objext
-   # Generate the test file.
-@@ -309,7 +309,7 @@
-       # Are we looking for a static library?
-       case $boost_ldpath:$boost_rtopt_ in #(
-         *?*:*s*) # Yes (Non empty boost_ldpath + s in rt opt)
--          Boost_lib_LIBS="$boost_ldpath/lib$boost_lib.$libext"
-+          Boost_lib_LIBS="$boost_ldpath/lib$boost_lib.$acl_libext"
-           test -e "$Boost_lib_LIBS" || continue;; #(
-         *) # No: use -lboost_foo to find the shared library.
-           Boost_lib_LIBS="-l$boost_lib";;
diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix
index 59c2de21a483..000fa02b8ab5 100644
--- a/pkgs/games/wesnoth/default.nix
+++ b/pkgs/games/wesnoth/default.nix
@@ -3,32 +3,30 @@
 , fribidi, asciidoc }:
 
 stdenv.mkDerivation rec {
-  pname = "wesnoth";
-  version = "1.8.5";
+  name = "wesnoth";
+  version = "1.8.6";
 
-  name = "${pname}-${version}";
+  pname = "${name}-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/sourceforge/${pname}/${name}.tar.bz2";
-    sha256 = "1yjmqvwzz446vvkjg923ypwnmhb0fbgqj0ax0k7s102la37bv8zc";
+    url = "mirror://sourceforge/sourceforge/${name}/${pname}.tar.bz2";
+    sha256 = "10c01ys846zsy831gprdy2nx3qlzv65s4jy99lw6misak3x07rjg";
   };
 
   buildInputs = [ SDL SDL_image SDL_mixer SDL_net SDL_ttf pango gettext zlib boost fribidi
                   automake autoconf freetype libpng pkgconfig lua dbus fontconfig libtool ];
 
-  # The patch and the preInstall sed substitution fix errors which I 
+  # The preInstall sed substitution fix errors which I 
   # believe arise from autotools version mismatches.  Rather than
   # hunt for the correct automake and autoconf versions these changes
   # make the build work with the versions current in Nixpkgs.
-  patches = ./add-acl-prefix-to-libext.patch;
-
   preInstall = ''
     sed -i -e s,@MKINSTALLDIRS@,`pwd`/config/mkinstalldirs, po/*/Makefile
   '';
 
   configurePhase = ''
     ./autogen.sh --prefix=$out --with-boost=${boost} \
-                 --with-preferences-dir=.${name} --program-suffix=-${version} \
+                 --with-preferences-dir=.${name} \
                  --with-datadir-name=${name}
   '';
 
diff --git a/pkgs/games/widelands/default.nix b/pkgs/games/widelands/default.nix
new file mode 100644
index 000000000000..74d1f87e0be8
--- /dev/null
+++ b/pkgs/games/widelands/default.nix
@@ -0,0 +1,67 @@
+x@{builderDefsPackage
+  , libjpeg, boost, SDL, SDL_gfx, SDL_image, SDL_net, SDL_ttf, SDL_sound
+  , gettext, zlib, libiconv, libpng, python, expat, lua5, glew, doxygen
+  , cmake, ggz_base_libs, mesa, SDL_mixer
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="widelands";
+    version="build16";
+    name="${baseName}-${version}";
+    project="${baseName}";
+    url="http://launchpad.net/${project}/${version}/${version}/+download/${name}-src.tar.bz2";
+    hash="0pb2d73c6hynhp1x54rcfbibrrri7lyxjybd1hicn503qcakrnyq";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["killBuildDir" "doCmake" "doMakeInstall" "createScript"];
+      
+  killBuildDir = a.fullDepEntry ''
+    rm -r build
+  '' ["minInit" "doUnpack"];
+
+  cmakeFlags = [
+    "-DLUA_LIBRARIES=-llua"
+  ];
+
+  createScript = a.fullDepEntry ''
+    mkdir -p "$out/bin"
+    echo '#! ${a.stdenv.shell}' >> "$out/bin/widelands"
+    echo "cd \"$out/share/games/widelands\"" >> "$out/bin/widelands"
+    echo "\"$out/games/widelands\" \"\$@\"" >> "$out/bin/widelands"
+    chmod a+x "$out/bin/widelands"
+  '' ["minInit"];
+
+  meta = {
+    description = "Widelands RTS with multiple-goods economy";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "https://launchpad.net/widelands/+download";
+    };
+  };
+}) x
+
diff --git a/pkgs/games/xconq/default.nix b/pkgs/games/xconq/default.nix
new file mode 100644
index 000000000000..1af7f42beb1e
--- /dev/null
+++ b/pkgs/games/xconq/default.nix
@@ -0,0 +1,72 @@
+x@{builderDefsPackage
+  , rpm, cpio, xproto, libX11, libXmu, libXaw, libXt, tcl, tk, libXext
+  , makeWrapper
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="xconq";
+    version="7.5.0-0pre.0.20050612";
+    name="${baseName}-${version}";
+    extension="src.rpm";
+    project="${baseName}";
+    url="mirror://sourceforge/project/${project}/${baseName}/${name}/${baseName}-${version}.${extension}";
+    hash="0i41dz95af2pzmmjz0sc1n0wdxy7gjqlfcl503hw1xd5zza2lw2j";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["addInputs" "doUnpack" "fixMakefiles" "fixCfiles" "fixTCLfiles" 
+    "doConfigure" "doMakeInstall" "doWrap"];
+      
+  doWrap = a.makeManyWrappers ''$out/bin/*'' ''--prefix TCLLIBPATH : "${tk}/lib"'';
+
+  fixMakefiles = a.fullDepEntry ''
+    find . -name 'Makefile.in' -exec sed -re 's@^        ( *)(cd|[&][&])@	\1\2@' -i '{}' ';'
+    find . -name 'Makefile.in' -exec sed -e '/chown/d; /chgrp/d' -i '{}' ';'
+    sed -e '/^			* *[$][(]tcltkdir[)]\/[*][.][*]/d' -i tcltk/Makefile.in
+  '' ["minInit" "doUnpack"];
+
+  fixCfiles = a.fullDepEntry ''
+    sed -re 's@[(]int[)]color@(long)color@' -i tcltk/tkmap.c
+    sed -re '/unitp = view_unit[(]uview[)]/aelse *unitp = NULL\;' -i tcltk/tkmap.c
+  '' ["minInit" "doUnpack"];
+
+  fixTCLfiles = a.fullDepEntry ''
+    sed -re 's@MediumBlue@LightBlue@g' -i tcltk/tkconq.tcl
+  '' ["minInit" "doUnpack"];
+
+  configureFlags = [
+    "--enable-alternate-scoresdir=scores"
+    "--with-tclconfig=${tcl}/lib"
+    "--with-tkconfig=${tk}/lib"
+  ];
+
+  meta = {
+    description = "A programmable turn-based strategy game";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+  };
+}) x
+
diff --git a/pkgs/games/xmoto/src-for-default.nix b/pkgs/games/xmoto/src-for-default.nix
index fd538a8a9a72..d879f486d033 100644
--- a/pkgs/games/xmoto/src-for-default.nix
+++ b/pkgs/games/xmoto/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="0.5.4";
-   name="xmoto-0.5.4";
-   hash="1r548hx7yqxql5b0d1byxbwxjhlss063vsj5xy9cc1b8dqhmkqh5";
+   version="0.5.7";
+   name="xmoto-0.5.7";
+   hash="19pwxjgvajv2img3sz8rd0c37d1gsidscwwjbm4jyxhahgg33mks";
    url="http://download.tuxfamily.org/xmoto/xmoto/${version}/xmoto-${version}-src.tar.gz";
-   advertisedUrl="http://download.tuxfamily.org/xmoto/xmoto/0.5.4/xmoto-0.5.4-src.tar.gz";
+   advertisedUrl="http://download.tuxfamily.org/xmoto/xmoto/0.5.7/xmoto-0.5.7-src.tar.gz";
   
   
 }
diff --git a/pkgs/games/zod/default.nix b/pkgs/games/zod/default.nix
new file mode 100644
index 000000000000..731a5e40fd80
--- /dev/null
+++ b/pkgs/games/zod/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv, unrar, unzip, SDL, SDL_image, SDL_ttf, SDL_mixer,
+  mysql, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "zod-engine-2011-03-18";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/zod/zod_src-2011-03-18.zip";
+    sha256 = "00ny7a1yfn9zgl7q1ys27qafwc92dzxv07wjxl8nxa4f98al2g4n";
+  };
+
+  srcAssets = fetchurl {
+    url = "mirror://sourceforge/zod/zod_assets-2011-03-12.rar";
+    sha256 = "0gmg4ppr4y6ck04mandlp2fmdcyssmck999m012jx5v1rm57g2hn";
+  };
+
+  unpackPhase = ''
+    mkdir src
+    pushd src
+    unzip $src
+    popd
+    sourceRoot=`pwd`/src
+  '';
+
+  buildInputs = [ unrar unzip SDL SDL_image SDL_ttf SDL_mixer mysql
+    makeWrapper ];
+
+  NIX_LDFLAGS="-L${mysql}/lib/mysql";
+
+  installPhase = ''
+    ensureDir $out/bin $out/share/zod
+    pushd $out/share/zod
+    unrar x $srcAssets
+    popd
+    cp zod $out/bin
+    wrapProgram $out/bin/zod --run "cd $out/share/zod"
+  '';
+
+  meta = {
+    description = "Multiplayer remake of ZED";
+    homepage = http://zod.sourceforge.net/;
+    license = "GPLv3+"; /* Says the web */
+  };
+}
diff --git a/pkgs/lib/customisation.nix b/pkgs/lib/customisation.nix
index f97b494ae92d..d2af48146284 100644
--- a/pkgs/lib/customisation.nix
+++ b/pkgs/lib/customisation.nix
@@ -89,7 +89,7 @@ rec {
       };
   */
   callPackageWith = autoArgs: fn: args:
-    let f = import fn; in
+    let f = if builtins.isFunction fn then fn else import fn; in
     makeOverridable f ((builtins.intersectAttrs (builtins.functionArgs f) autoArgs) // args);
 
 }
diff --git a/pkgs/lib/lists.nix b/pkgs/lib/lists.nix
index d1cdf5b68ab1..e5b47f0d9ce7 100644
--- a/pkgs/lib/lists.nix
+++ b/pkgs/lib/lists.nix
@@ -1,7 +1,7 @@
 # General list operations.
 
 rec {
-  inherit (builtins) head tail isList;
+  inherit (builtins) head tail length isList;
 
 
   # Create a list consisting of a single element.  `singleton x' is
@@ -27,6 +27,10 @@ rec {
     then nul
     else foldl op (op nul (head list)) (tail list);
 
+  # map with index: `imap (i: v: "${v}-${toString i}") ["a" "b"] ==
+  # ["a-1" "b-2"]'
+  imap = f: list:
+    zipListsWith f (range 1 (length list)) list;
 
   # Concatenate a list of lists.
   concatLists = fold (x: y: x ++ y) [];
@@ -136,7 +140,7 @@ rec {
   zipListsWith = f: fst: snd:
     if fst != [] && snd != [] then
       [ (f (head fst) (head snd)) ]
-      ++ zipLists (tail fst) (tail snd)
+      ++ zipListsWith f (tail fst) (tail snd)
     else [];
 
   zipLists = zipListsWith (fst: snd: { inherit fst snd; });
diff --git a/pkgs/lib/maintainers.nix b/pkgs/lib/maintainers.nix
index b6f5b990c4e9..dadc7f813e9d 100644
--- a/pkgs/lib/maintainers.nix
+++ b/pkgs/lib/maintainers.nix
@@ -5,10 +5,12 @@
      alphabetically sorted.  */
 
   all = "Nix Committers <nix-commits@cs.uu.nl>";
-  andres = "Andres Loeh <andres@cs.uu.nl>";
+  andres = "Andres Loeh <ksnixos@andres-loeh.de>";
   astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
   bjg = "Brian Gough <bjg@gnu.org>";
+  chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
   eelco = "Eelco Dolstra <e.dolstra@tudelft.nl>";
+  goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
   guibert = "David Guibert <david.guibert@gmail.com>";
   kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
   ludo = "Ludovic Courtès <ludo@gnu.org>";
@@ -16,9 +18,11 @@
   neznalek = "Vladimír Čunát <vcunat@gmail.com>";
   phreedom = "Evgeny Egorochkin <phreedom.stdin@gmail.com>";
   pierron = "Nicolas B. Pierron <nixos@nbp.name>";
+  qknight = "Joachim Schiele <js@lastlog.de>";
   raskin = "Michael Raskin <7c6f434c@mail.ru>";
   roconnor = "Russell O'Connor <roconnor@theorem.ca>";
   sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
+  shlevy = "Shea Levy <shea@shealevy.com>";
   simons = "Peter Simons <simons@cryp.to>";
   thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
   urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
diff --git a/pkgs/lib/misc.nix b/pkgs/lib/misc.nix
index 7f04e7e1e581..df3956f1147a 100644
--- a/pkgs/lib/misc.nix
+++ b/pkgs/lib/misc.nix
@@ -216,7 +216,7 @@ rec {
 
   innerClosePropagation = ready: list: if list == [] then ready else
     if ! isAttrs (head list) then
-      builtins.trace ("not an attrSet: ${lib.showVal (head list)}") 
+      /* builtins.trace ("not an attrSet: ${lib.showVal (head list)}") */
         innerClosePropagation ready (tail list)
     else
       innerClosePropagation 
diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix
index 08c26e72f72e..8ecb04156e78 100644
--- a/pkgs/lib/modules.nix
+++ b/pkgs/lib/modules.nix
@@ -80,19 +80,29 @@ rec {
 
   moduleClosure = initModules: args:
     let
-      moduleImport = m:
+      moduleImport = origin: index: m:
         let m' = applyIfFunction (importIfPath m) args;
         in (unifyModuleSyntax m') // {
           # used by generic closure to avoid duplicated imports.
-          key = if isPath m then m else if m' ? key then m'.key else "<unknown location>";
+          key =
+            if isPath m then m
+            else if m' ? key then m'.key
+            else newModuleName origin index;
         };
 
       getImports = m: attrByPath ["imports"] [] m;
 
+      newModuleName = origin: index:
+        "${origin.key}:<import-${toString index}>";
+
+      topLevel = {
+        key = "<top-level>";
+      };
+
     in
       (lazyGenericClosure {
-        startSet = map moduleImport initModules;
-        operator = m: map moduleImport (getImports m);
+        startSet = imap (moduleImport topLevel) initModules;
+        operator = m: imap (moduleImport m) (getImports m);
       });
 
   selectDeclsAndDefs = modules:
diff --git a/pkgs/lib/properties.nix b/pkgs/lib/properties.nix
index 46854d0e1431..d7df14f716f5 100644
--- a/pkgs/lib/properties.nix
+++ b/pkgs/lib/properties.nix
@@ -223,6 +223,11 @@ rec {
       content = mkNotdef;
     };
 
+  mkAssert = assertion: message: content:
+    mkIf
+      (if assertion then true else throw "\nFailed assertion: ${message}")
+      content;
+
   # Remove all "If" statement defined on a value.
   rmIf = foldProperty (
       foldFilter isIf
diff --git a/pkgs/lib/strings.nix b/pkgs/lib/strings.nix
index 838990793276..73520a949c13 100644
--- a/pkgs/lib/strings.nix
+++ b/pkgs/lib/strings.nix
@@ -16,6 +16,7 @@ rec {
 
   # Map a function over a list and concatenate the resulting strings.
   concatMapStrings = f: list: concatStrings (map f list);
+  concatImapStrings = f: list: concatStrings (lib.imap f list);
   
 
   # Place an element between each element of a list, e.g.,
@@ -45,6 +46,10 @@ rec {
   makeLibraryPath = makeSearchPath "lib";
 
 
+  # Idem for Perl search paths.
+  makePerlPath = makeSearchPath "lib/perl5/site_perl";
+  
+
   # Dependening on the boolean `cond', return either the given string
   # or the empty string.
   optionalString = cond: string: if cond then string else "";
diff --git a/pkgs/lib/types.nix b/pkgs/lib/types.nix
index fd3c071c0bed..9a6bb4b24dd3 100644
--- a/pkgs/lib/types.nix
+++ b/pkgs/lib/types.nix
@@ -6,6 +6,7 @@ let lib = import ./default.nix; in
 with import ./lists.nix;
 with import ./attrsets.nix;
 with import ./options.nix;
+with import ./trivial.nix;
 
 rec {
 
@@ -16,7 +17,7 @@ rec {
     _type = typeName;
   };
 
-  
+
   # name (name of the type)
   # check (boolean function)
   # merge (default merge function)
@@ -43,7 +44,7 @@ rec {
       inherit name check merge iter fold docPath hasOptions delayOnGlobalEval;
     };
 
-    
+
   types = rec {
 
     inferred = mkOptionType {
@@ -75,7 +76,7 @@ rec {
 
     attrs = mkOptionType {
       name = "attribute set";
-      check = lib.traceValIfNot builtins.isAttrs;
+      check = lib.traceValIfNot isAttrs;
       merge = fold lib.mergeAttrs {};
     };
 
@@ -101,8 +102,8 @@ rec {
     };
 
     attrsOf = elemType: mkOptionType {
-      name = "attribute set of ${elemType}s";
-      check = x: lib.traceValIfNot builtins.isAttrs x
+      name = "attribute set of ${elemType.name}s";
+      check = x: lib.traceValIfNot isAttrs x
         && fold (e: v: v && elemType.check e) true (lib.attrValues x);
       merge = lib.zip (name: elemType.merge);
       iter = f: path: set: lib.mapAttrs (name: elemType.iter f (path + "." + name)) set;
@@ -111,6 +112,43 @@ rec {
       inherit (elemType) hasOptions delayOnGlobalEval;
     };
 
+    # List or attribute set of ...
+    loaOf = elemType:
+      let
+        convertIfList = defIdx: def:
+          if isList def then
+            listToAttrs (
+              flip imap def (elemIdx: elem:
+                nameValuePair "unnamed-${toString defIdx}.${toString elemIdx}" elem))
+          else
+            def;
+        listOnly = listOf elemType;
+        attrOnly = attrsOf elemType;
+
+      in mkOptionType {
+        name = "list or attribute set of ${elemType.name}s";
+        check = x:
+          if isList x       then listOnly.check x
+          else if isAttrs x then attrOnly.check x
+          else lib.traceValIfNot (x: false) x;
+        ## The merge function returns an attribute set
+        merge = defs:
+          attrOnly.merge (imap convertIfList defs);
+        iter = f: path: def:
+          if isList def       then listOnly.iter f path def
+          else if isAttrs def then attrOnly.iter f path def
+          else throw "Unexpected value";
+        fold = op: nul: def:
+          if isList def       then listOnly.fold op nul def
+          else if isAttrs def then attrOnly.fold op nul def
+          else throw "Unexpected value";
+
+        docPath = path: elemType.docPath (path + ".<name?>");
+        inherit (elemType) hasOptions delayOnGlobalEval;
+      }
+    ;
+
+
     uniq = elemType: mkOptionType {
       inherit (elemType) name check iter fold docPath hasOptions;
       merge = list:
diff --git a/pkgs/misc/busybox/default.nix b/pkgs/misc/busybox/default.nix
index a63411367e89..f3a73514ed85 100644
--- a/pkgs/misc/busybox/default.nix
+++ b/pkgs/misc/busybox/default.nix
@@ -39,11 +39,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "busybox-1.18.0";
+  name = "busybox-1.19.0";
 
   src = fetchurl {
     url = "http://busybox.net/downloads/${name}.tar.bz2";
-    sha256 = "007bc8k6sc62iyjmyv3di2c8xdxvdhvqg68c7pn40m0455lmx79s";
+    sha256 = "0332yxvlfv2hbix9n70dyp4xlm2hrk248qqdg006hyfpjsh49kqr";
   };
 
   configurePhase = ''
@@ -58,6 +58,12 @@ stdenv.mkDerivation rec {
     make oldconfig
   '';
 
+  postInstall = ''
+    mv -v $out/usr/bin/* $out/bin
+    mv -v $out/usr/sbin/* $out/sbin
+    rm -fRv $out/usr/
+  '';
+
   crossAttrs = {
     extraCrossConfig = ''
       CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cross.config}-"
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index 73fa3c37f39a..8a9efdedcf97 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -1,14 +1,16 @@
 { stdenv, fetchurl, pkgconfig, zlib, libjpeg, libpng, libtiff, pam, openssl
 , dbus, libusb, acl }:
 
-let version = "1.4.5"; in
+let version = "1.4.7"; in
 
 stdenv.mkDerivation {
   name = "cups-${version}";
 
+  passthru = { inherit version; };
+
   src = fetchurl {
     url = "http://ftp.easysw.com/pub/cups/${version}/cups-${version}-source.tar.bz2";
-    sha256 = "1zhf3hvx11i0qnbwyybmdhx4fxkxfd4ch69k59fj5bz8wvcdcl04";
+    sha256 = "1xlnkdqldq81pdqgisqbyh92k249bzz35m1f5bp4la06p00ksvjf";
   };
 
   buildInputs = [ pkgconfig zlib libjpeg libpng libtiff pam dbus libusb acl ];
diff --git a/pkgs/misc/cups/pdf-filter.nix b/pkgs/misc/cups/pdf-filter.nix
index ab978068e175..50f117a65341 100644
--- a/pkgs/misc/cups/pdf-filter.nix
+++ b/pkgs/misc/cups/pdf-filter.nix
@@ -1,14 +1,9 @@
 { stdenv, fetchurl, pkgconfig, cups, poppler }:
 
-let version = "1.4.5"; in
-
 stdenv.mkDerivation {
-  name = "cups-pdf-filter-${version}";
+  name = "cups-pdf-filter-${cups.version}";
 
-  src = fetchurl {
-    url = "http://ftp.easysw.com/pub/cups/${version}/cups-${version}-source.tar.bz2";
-    sha256 = "1zhf3hvx11i0qnbwyybmdhx4fxkxfd4ch69k59fj5bz8wvcdcl04";
-  };
+  inherit (cups) src;
 
   buildInputs = [ pkgconfig cups poppler ];
 
diff --git a/pkgs/misc/drivers/foo2zjs/default.nix b/pkgs/misc/drivers/foo2zjs/default.nix
new file mode 100644
index 000000000000..2417b0e566de
--- /dev/null
+++ b/pkgs/misc/drivers/foo2zjs/default.nix
@@ -0,0 +1,82 @@
+x@{builderDefsPackage
+  , foomatic_filters, bc, unzip, ghostscript, udev, vim
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="foo2zjs";
+    version="20110210";
+    name="${baseName}-${version}";
+    url="http://www.loegria.net/mirrors/foo2zjs/${name}.tar.gz";
+    hash="0vss8gdbbgxr694xw48rys2qflbnb4sp4gdb1v6z4m9ab97hs5yk";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["doPatch" "fixHardcodedPaths" "doMakeDirs" "doMakeInstall" "deployGetWeb"];
+
+  patches = [ ./no-hardcode-fw.diff ];
+
+  makeFlags = [
+      ''PREFIX=$out''
+      ''APPL=$out/share/applications''
+      ''PIXMAPS=$out/share/pixmaps''
+      ''UDEVBIN=$out/bin''
+      ''UDEVDIR=$out/etc/udev/rules.d''
+      ''UDEVD=${udev}/sbin/udevd''
+      ''LIBUDEVDIR=$out/lib/udev/rules.d''
+      ''USBDIR=$out/etc/hotplug/usb''
+      ''FOODB=$out/share/foomatic/db/source''
+      ''MODEL=$out/share/cups/model''
+  ];
+
+  installFlags = [ "install-hotplug" ];
+
+  fixHardcodedPaths = a.fullDepEntry ''
+    touch all-test
+    sed -e "/BASENAME=/iPATH=$out/bin:$PATH" -i *-wrapper *-wrapper.in
+    sed -e "s@PREFIX=/usr@PREFIX=$out@" -i *-wrapper{,.in}
+    sed -e "s@/usr/share@$out/share@" -i hplj10xx_gui.tcl
+    sed -e "s@\[.*-x.*/usr/bin/logger.*\]@type logger >/dev/null 2>\&1@" -i *wrapper{,.in}
+    sed -e '/install-usermap/d' -i Makefile
+    sed -e "s@/etc/hotplug/usb@$out&@" -i *rules*
+    sed -e "s@/usr@$out@g" -i hplj1020.desktop
+    sed -e "/PRINTERID=/s@=.*@=$out/bin/usb_printerid@" -i hplj1000
+  '' ["doPatch" "minInit"];
+
+  doMakeDirs = a.fullDepEntry ''
+    mkdir -pv $out/{etc/udev/rules.d,lib/udev/rules.d,etc/hotplug/usb}
+    mkdir -pv $out/share/foomatic/db/source/{opt,printer,driver}
+    mkdir -pv $out/share/cups/model
+    mkdir -pv $out/share/{applications,pixmaps}
+  '' ["minInit"];
+
+  deployGetWeb = a.fullDepEntry ''
+    mkdir -pv "$out/bin"
+    cp -v getweb arm2hpdl "$out/bin"
+  '' ["minInit"];
+      
+  meta = {
+    description = "ZjStream printer drivers";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin urkud
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2Plus;
+  };
+}) x
diff --git a/pkgs/misc/drivers/foo2zjs/no-hardcode-fw.diff b/pkgs/misc/drivers/foo2zjs/no-hardcode-fw.diff
new file mode 100644
index 000000000000..003272858a42
--- /dev/null
+++ b/pkgs/misc/drivers/foo2zjs/no-hardcode-fw.diff
@@ -0,0 +1,98 @@
+#
+#
+# patch "hplj1000"
+#  from [d5336e74866d31735d97874191351a0dcc092b44]
+#    to [55102b37684ee5181674d19d866caec2cf603412]
+#
+============================================================
+--- a/hplj1000	d5336e74866d31735d97874191351a0dcc092b44
++++ b/hplj1000	55102b37684ee5181674d19d866caec2cf603412
+@@ -39,11 +39,6 @@ DEV=""
+ DEV=""
+ 
+ #
+-# Directory to find downloadable HP firmware files sihpMMMM.dl
+-#
+-FWDIR=/usr/share/foo2zjs/firmware
+-
+-#
+ # Program used to determine USB printer id information
+ #
+ # NOTE: /usr/bin is NOT mounted at this point
+@@ -83,57 +78,61 @@ case "$0" in
+     MODEL=P1005; FWMODEL=$MODEL
+     USB1=0x03f0	#Vendor
+     USB2=0x3d17	#Model
+-    FWDIR=/usr/share/foo2xqx/firmware
++    DRIVER=foo2xqx
+     ;;
+ *P1006)
+     MODEL=P1006; FWMODEL=$MODEL
+     USB1=0x03f0	#Vendor
+     USB2=0x3e17	#Model
+-    FWDIR=/usr/share/foo2xqx/firmware
++    DRIVER=foo2xqx
+     ;;
+ *P1007)
+     MODEL=P1007; FWMODEL=P1005		# Alias
+     USB1=0x03f0	#Vendor
+     USB2=0x4817	#Model
+-    FWDIR=/usr/share/foo2xqx/firmware
++    DRIVER=foo2xqx
+     ;;
+ *P1008)
+     MODEL=P1008; FWMODEL=P1006		# Alias
+     USB1=0x03f0	#Vendor
+     USB2=0x4917	#Model
+-    FWDIR=/usr/share/foo2xqx/firmware
++    DRIVER=foo2xqx
+     ;;
+ *P1505)
+     MODEL=P1505; FWMODEL=$MODEL
+     USB1=0x03f0	#Vendor
+     USB2=0x3f17	#Model
+-    FWDIR=/usr/share/foo2xqx/firmware
++    DRIVER=foo2xqx
+     ;;
+ *P1505n)
+     MODEL=P1505n; FWMODEL=$MODEL
+     USB1=0x03f0	#Vendor
+     USB2=0x4017	#Model
+-    FWDIR=/usr/share/foo2xqx/firmware
++    DRIVER=foo2xqx
+     ;;
+ *1000)
+     MODEL=1000; FWMODEL=$MODEL
+     USB1=0x03f0	#Vendor
+     USB2=0x0517	#Model
++    DRIVER=foo2zjs
+     ;;
+ *1005)
+     MODEL=1005; FWMODEL=$MODEL
+     USB1=0x03f0	#Vendor
+     USB2=0x1317	#Model
++    DRIVER=foo2zjs
+     ;;
+ *1018)
+     MODEL=1018; FWMODEL=$MODEL
+     USB1=0x03f0 #Vendor
+     USB2=0x4117 #Model
++    DRIVER=foo2zjs
+     ;;
+ *1020)
+     MODEL=1020; FWMODEL=$MODEL
+     USB1=0x03f0 #Vendor
+     USB2=0x2b17 #Model
++    DRIVER=foo2zjs
+     ;;
+ *)
+     log "Only HP LaserJet 100[05],1018,1020,P100[5678],P1505 are supported"
+@@ -203,7 +202,7 @@ load1() {
+ #
+ load1() {
+     _dev="$1"
+-    fw="$FWDIR/sihp$FWMODEL.dl"
++    fw="${FOO2ZJS_DATADIR:-/usr/share}/$DRIVER/firmware/sihp$FWMODEL.dl"
+     if [ ! -f "$fw" ]; then
+ 	log "Missing HP LaserJet $MODEL firmware file $fw"
+ 	log "...read foo2zjs installation instructions and run ./getweb $MODEL"
diff --git a/pkgs/misc/drivers/foomatic-filters/default.nix b/pkgs/misc/drivers/foomatic-filters/default.nix
new file mode 100644
index 000000000000..867f4f440d54
--- /dev/null
+++ b/pkgs/misc/drivers/foomatic-filters/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, perl, cups, coreutils, gnused }:
+
+stdenv.mkDerivation rec {
+  name = "foomatic-filters-4.0.6";
+
+  src = fetchurl {
+    url = "http://www.openprinting.org/download/foomatic/${name}.tar.gz";
+    sha256 = "0wa9hlq7s99sh50kl6bj8j0vxrz7pcbwdnqs1yfjjhqshfh7hsav";
+  };
+
+  buildInputs = [ perl cups ];
+
+  preConfigure =
+    ''
+      substituteInPlace foomaticrip.c --replace /bin/bash /bin/sh
+    '';
+
+  installTargets = "install-cups";
+
+  installFlags =
+    ''
+      CUPS_FILTERS=$(out)/lib/cups/filter
+      CUPS_BACKENDS=$(out)/lib/cups/backend
+    '';
+
+  meta = {
+    description = "Foomatic printing filters";
+    maintainers = stdenv.lib.maintainers.raskin;
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/misc/drivers/gutenprint/default.nix b/pkgs/misc/drivers/gutenprint/default.nix
index f1a01eefba59..9788d6017449 100644
--- a/pkgs/misc/drivers/gutenprint/default.nix
+++ b/pkgs/misc/drivers/gutenprint/default.nix
@@ -3,7 +3,7 @@
 , libtiff, libpng, openssl, gimp }:
 
 let
-   version = "5.2.4";
+   version = "5.2.6";
    inherit (composableDerivation) edf wwf;
 in
 
@@ -11,8 +11,8 @@ composableDerivation.composableDerivation {} {
   name = "gutenprint-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gimp-print/files/gutenprint-5.2/${version}/gutenprint-${version}.tar.bz2";
-    sha256 = "09lnmf92h51sm0hmzd1hn2kl1sh6dxlnc0zjd9lrifzg0miyh45n";
+    url = "mirror://sourceforge/gimp-print/gutenprint-${version}.tar.bz2";
+    sha256 = "0znwbv51vqf20p4isc3if4hqsgfav21rsqnsz1d8mixlmasy2i27";
   };
 
   # gimp, gui is still not working (TODO)
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index 0cb90aa71d84..e73e6ff05fe5 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -1,13 +1,13 @@
-{stdenv, fetchurl, cups, zlib, libjpeg, libusb, python, saneBackends, dbus, pkgconfig
-, qtSupport ? false, qt4
+{stdenv, fetchurl, cups, zlib, libjpeg, libusb, python, saneBackends, dbus
+, pkgconfig, polkit, qtSupport ? false, qt4
 }:
 
-stdenv.mkDerivation {
-  name = "hplip-3.10.5";
+stdenv.mkDerivation rec {
+  name = "hplip-3.11.1";
 
   src = fetchurl {
-    url = "http://prdownloads.sourceforge.net/hplip/hplip-3.10.5.tar.gz";
-    sha256 = "1lyl9nrdaih64cqw6fa7ivjf7a74bq8zn0gkj1gap47b04my608p";
+    url = "mirror://sourceforge/hplip/${name}.tar.gz";
+    sha256 = "0y68s4xm5d0kv7p5j41qq0xglp4vdbjwbrjs89b4a21wwn69hp9g";
   };
 
   #preBuild=''
@@ -27,12 +27,16 @@ stdenv.mkDerivation {
       --with-icondir=$out/share/applications
       --with-systraydir=$out/xdg/autostart
       --with-mimedir=$out/etc/cups
+      --enable-policykit
       --disable-network-build"
 
     export makeFlags="
       halpredir=$out/share/hal/fdi/preprobe/10osvendor
       hplip_statedir=$out/var
       rulesdir=$out/etc/udev/rules.d
+      policykit_dir=$out/share/polkit-1/actions
+      policykit_dbus_etcdir=$out/etc/dbus-1/system.d
+      policykit_dbus_sharedir=$out/share/dbus-1/system-services
       hplip_confdir=$out/etc/hp
     ";
   '';
diff --git a/pkgs/misc/emulators/VisualBoyAdvance/default.nix b/pkgs/misc/emulators/VisualBoyAdvance/default.nix
new file mode 100644
index 000000000000..964a0491adb4
--- /dev/null
+++ b/pkgs/misc/emulators/VisualBoyAdvance/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, zlib, libpng, SDL, nasm}:
+
+stdenv.mkDerivation {
+  name = "VisualBoyAdvance-1.7.2";
+  src = fetchurl {
+    url = mirror://sourceforge/vba/VisualBoyAdvance-src-1.7.2.tar.gz;
+    sha256 = "1dr9w5i296dyq2gbx7sijk6p375aqnwld2n6rwnbzm2g3a94y4gl";
+  };
+  patches = [ ./fix.diff ]; # patch to shut up lost of precision errors
+  preConfigure = ''
+    # Fix errors with invalid conversion from 'const char*' to 'char*'
+    sed -i -e "s|char \* p = strrchr|const char * p = strrchr|g" src/GBA.cpp
+    sed -i -e "s|char \* p = strrchr|const char * p = strrchr|g" src/Util.cpp
+  '';
+  buildInputs = [ zlib libpng SDL ] ++ stdenv.lib.optional (stdenv.system == "i686-linux") nasm;
+  
+  meta = {
+    description = "A Game Boy/Game Boy Color/Game Boy Advance Emulator";
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+    homepage = http://vba.ngemu.com;
+  };
+}
diff --git a/pkgs/misc/emulators/VisualBoyAdvance/fix.diff b/pkgs/misc/emulators/VisualBoyAdvance/fix.diff
new file mode 100644
index 000000000000..646db9c45e66
--- /dev/null
+++ b/pkgs/misc/emulators/VisualBoyAdvance/fix.diff
@@ -0,0 +1,31 @@
+diff -urN ../tmp-orig/visualboyadvance-1.7.2/src/sdl/debugger.cpp 
+./src/sdl/debugger.cpp
+--- ../tmp-orig/visualboyadvance-1.7.2/src/sdl/debugger.cpp     2004-05-13 
+16:13:14.000000000 +0200
++++ ./src/sdl/debugger.cpp      2005-03-21 21:57:06.000000000 +0100
+@@ -950,9 +950,9 @@
+ {
+   u32 address = 0;
+   if(mem >= (u32*)&workRAM[0] && mem <= (u32*)&workRAM[0x3ffff])
+-    address = 0x2000000 + ((u32)mem - (u32)&workRAM[0]);
++    address = 0x2000000 + ((unsigned long)mem - (unsigned long)&workRAM[0]);
+   else
+-    address = 0x3000000 + ((u32)mem - (u32)&internalRAM[0]);
++    address = 0x3000000 + ((unsigned long)mem - (unsigned long)&internalRAM[0]);
+ 
+   if(size == 2)
+     printf("Breakpoint (on write) address %08x old:%08x new:%08x\n", 
+diff -urN ../tmp-orig/visualboyadvance-1.7.2/src/prof/prof.cpp 
+./src/prof/prof.cpp
+--- ../tmp-orig/visualboyadvance-1.7.2/src/prof/prof.cpp        2004-05-13 
+16:31:58.000000000 +0200
++++ ./src/prof/prof.cpp 2005-03-21 21:56:27.000000000 +0100
+@@ -266,7 +266,7 @@
+     for (toindex=froms[fromindex]; toindex!=0; toindex=tos[toindex].link) {
+       if(profWrite8(fd, GMON_TAG_CG_ARC) ||
+          profWrite32(fd, (u32)frompc) ||
+-         profWrite32(fd, (u32)tos[toindex].selfpc) ||
++         profWrite32(fd, (unsigned long)tos[toindex].selfpc) ||
+          profWrite32(fd, tos[toindex].count)) {
+         systemMessage(0, "mcount: arc");
+         fclose(fd);
diff --git a/pkgs/misc/emulators/darcnes/default.nix b/pkgs/misc/emulators/darcnes/default.nix
new file mode 100644
index 000000000000..5ce5512119d3
--- /dev/null
+++ b/pkgs/misc/emulators/darcnes/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, libX11, libXt, libXext, libXaw }:
+
+assert stdenv.system == "i686-linux";
+
+stdenv.mkDerivation { 
+  name = "darcnes-9b0401";
+  src = fetchurl {
+    url = http://www.dridus.com/~nyef/darcnes/download/dn9b0401.tgz;
+    sha256 = "05a7mh51rg7ydb414m3p5mm05p4nz2bgvspqzwm3bhbj7zz543k3";
+  };
+
+  buildInputs = [ libX11 libXt libXext libXaw ];
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp darcnes $out/bin
+  '';
+
+  patches = [ ./label.patch ];
+
+  meta = {
+    homepage = http://www.dridus.com/~nyef/darcnes/;
+    description = "Multi-System emulator, specially for NES";
+    /* Prohibited commercial use, credit required. */
+    license = "free";
+  };
+
+}
diff --git a/pkgs/misc/emulators/darcnes/label.patch b/pkgs/misc/emulators/darcnes/label.patch
new file mode 100644
index 000000000000..612aa1e3911e
--- /dev/null
+++ b/pkgs/misc/emulators/darcnes/label.patch
@@ -0,0 +1,13 @@
+http://gentoo-overlays.zugaina.org/funtoo/portage/games-emulation/darcnes/files/darcnes-0401-exec-stack.patch
+
+diff -Naur old/video_x.c new/video_x.c
+--- old/video_x.c	2004-09-04 01:26:41.102187277 +0200
++++ new/video_x.c	2004-09-04 01:27:51.586427427 +0200
+@@ -366,6 +366,7 @@
+ 	}
+ 	
+     default:
++    	break;
+     }
+ }
+ 
diff --git a/pkgs/misc/emulators/fakenes/build.patch b/pkgs/misc/emulators/fakenes/build.patch
new file mode 100644
index 000000000000..90799d977a14
--- /dev/null
+++ b/pkgs/misc/emulators/fakenes/build.patch
@@ -0,0 +1,84 @@
+diff --git a/build/openal.cbd b/build/openal.cbd
+index d18e62d..74af061 100644
+--- a/build/openal.cbd
++++ b/build/openal.cbd
+@@ -23,7 +23,7 @@ CFLAGS += ' -DUSE_OPENAL'
+ # --
+ 
+ do ifplat unix
+-   LDFLAGS += ' `openal-config --libs`'
++   LDFLAGS += ' -lopenal'
+ else
+    LDFLAGS += ' -lOpenAL32'
+ done
+diff --git a/build/alleggl.cbd b/build/alleggl.cbd
+index e2708ff..e826371 100644
+--- a/build/alleggl.cbd
++++ b/build/alleggl.cbd
+@@ -22,7 +22,7 @@ CFLAGS += ' -DUSE_ALLEGROGL'
+ 
+ # --
+ 
+-LIBAGL = agl
++LIBAGL = alleggl
+ 
+ ifopt debug LIBAGL = 'agld'
+
+diff --git a/src/apu.cpp b/src/apu.cpp
+index af59f1c..893a798 100644
+--- a/src/apu.cpp
++++ b/src/apu.cpp
+@@ -1930,7 +1930,7 @@ static void amplify(real& sample)
+          gain -= releaseRate;
+       }
+ 
+-      real output = (1.0 / max(gain, EPSILON));
++      real output = (1.0 / MAX(gain, EPSILON));
+       output = fixf(output, apu_agc_gain_floor, apu_agc_gain_ceiling);
+       sample *= output;
+    }
+diff --git a/src/audio.cpp b/src/audio.cpp
+index b9650dc..c21c05e 100644
+--- a/src/audio.cpp
++++ b/src/audio.cpp
+@@ -7,6 +7,7 @@
+    You must read and accept the license prior to use. */
+ 
+ #include <allegro.h>
++#include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+ #include <vector>
+@@ -234,7 +235,7 @@ void audio_update(void)
+          const unsigned queuedFrames = (audioQueue.size() / audio_channels);
+          if(queuedFrames > 0) {
+             // Determine how many frames we want to make room for.
+-            const unsigned framesToAdd = min(queuedFrames, audio_buffer_size_frames);
++            const unsigned framesToAdd = MIN(queuedFrames, audio_buffer_size_frames);
+             // Make room for the frames in the buffer.
+             const unsigned framesToMove = (audioBufferedFrames - framesToAdd);
+             if(framesToMove > 0) {
+@@ -258,7 +259,7 @@ void audio_update(void)
+          // Determine how many frames are available in the buffer.
+          const unsigned bufferableFrames = (audio_buffer_size_frames - audioBufferedFrames);
+          // Determine the number of frames to copy to the buffer.
+-         const unsigned framesToCopy = min(queuedFrames, bufferableFrames);
++         const unsigned framesToCopy = MIN(queuedFrames, bufferableFrames);
+ 
+          // Copy frames to the buffer.
+          for(unsigned frame = 0; frame < framesToCopy; frame++) {
+diff --git a/src/include/common.h b/src/include/common.h
+index be28795..e2d21d1 100644
+--- a/src/include/common.h
++++ b/src/include/common.h
+@@ -41,8 +41,10 @@ extern "C" {
+ #define true   TRUE
+ #define false  FALSE
+ 
++/*
+ #define min(x,y)   MIN((x),(y))
+ #define max(x,y)   MAX((x),(y))
++*/
+ 
+ #define true_or_false(x)   ((x) ? true : false)
+ 
diff --git a/pkgs/misc/emulators/fakenes/default.nix b/pkgs/misc/emulators/fakenes/default.nix
new file mode 100644
index 000000000000..62ecb6e4156d
--- /dev/null
+++ b/pkgs/misc/emulators/fakenes/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, allegro, openal, mesa, zlib, hawknl, freeglut, libX11,
+  libXxf86vm, libXcursor, libXpm }:
+
+stdenv.mkDerivation { 
+  name = "fakenes-0.5.9b3";
+  src = fetchurl {
+    url = mirror://sourceforge/fakenes/fakenes-0.5.9-beta3.tar.gz;
+    sha256 = "026h67s4pzc1vma59pmzk02iy379255qbai2q74wln9bxqcpniy4";
+  };
+
+  buildInputs = [ allegro openal mesa zlib hawknl freeglut libX11
+    libXxf86vm libXcursor libXpm ];
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp fakenes $out/bin
+  '';
+
+  NIX_LDFLAGS = "-lX11 -lXxf86vm -lXcursor -lXpm"; 
+
+  patches = [ ./build.patch ];
+
+  meta = {
+    homepage = http://fakenes.sourceforge.net/;
+    license = "GPLv2+";
+    description = "Portable Open Source NES Emulator";
+  };
+}
diff --git a/pkgs/misc/emulators/gens-gs/default.nix b/pkgs/misc/emulators/gens-gs/default.nix
index 53c55de9a377..a6f457b52109 100644
--- a/pkgs/misc/emulators/gens-gs/default.nix
+++ b/pkgs/misc/emulators/gens-gs/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation {
 
   buildInputs = [ pkgconfig gtkLibs.gtk SDL nasm zlib libpng mesa ];
 
+  # Work around build failures on recent GTK+.
+  # See http://ubuntuforums.org/showthread.php?p=10535837
+  NIX_CFLAGS_COMPILE = "-UGTK_DISABLE_DEPRECATED -UGSEAL_ENABLE";
+
   meta = {
     homepage = http://segaretro.org/Gens/GS;
     description = "A Genesis/Mega Drive emulator";
diff --git a/pkgs/misc/emulators/mupen64plus/default.nix b/pkgs/misc/emulators/mupen64plus/default.nix
new file mode 100644
index 000000000000..d67121fe430a
--- /dev/null
+++ b/pkgs/misc/emulators/mupen64plus/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, which, pkgconfig, SDL, gtk, mesa, SDL_ttf}:
+
+stdenv.mkDerivation {
+  name = "mupen64plus-1.5";
+  src = fetchurl {
+    url = http://mupen64plus.googlecode.com/files/Mupen64Plus-1-5-src.tar.gz;
+    sha256 = "0gygfgyr2sg4yx77ijk133d1ra0v1yxi4xjxrg6kp3zdjmhdmcjq";
+  };
+  
+  buildInputs = [ which pkgconfig SDL gtk mesa SDL_ttf ];
+  
+  preConfigure = ''
+    # Some C++ incompatibility fixes
+    sed -i -e 's|char \* extstr = strstr|const char * extstr = strstr|' glide64/Main.cpp
+    sed -i -e 's|char \* extstr = strstr|const char * extstr = strstr|' glide64/Combine.cpp
+
+    # Fix some hardcoded paths
+    sed -i -e "s|/usr/local|$out|g" main/main.c
+
+    # Remove PATH environment variable from install script
+    sed -i -e "s|export PATH=|#export PATH=|" ./install.sh
+  '';
+  
+  buildPhase = "make all";
+  installPhase = "PREFIX=$out make install";
+  
+  meta = {
+    description = "A Nintendo 64 Emulator";
+    license = "GPLv2+";
+    homepage = http://code.google.com/p/mupen64plus;
+    maintainers = [ stdenv.lib.maintainers.sander ];
+  };
+}
diff --git a/pkgs/misc/emulators/uae/default.nix b/pkgs/misc/emulators/uae/default.nix
new file mode 100644
index 000000000000..9f93c9957d65
--- /dev/null
+++ b/pkgs/misc/emulators/uae/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, pkgconfig, gtk, alsaLib, SDL}:
+
+stdenv.mkDerivation {
+  name = "uae-0.8.29";
+  src = fetchurl {
+    url = http://www.amigaemulator.org/files/sources/develop/uae-0.8.29.tar.bz2;
+    sha256 = "05s3cd1rd5a970s938qf4c2xm3l7f54g5iaqw56v8smk355m4qr4";
+  };
+  configureFlags = [ "--with-sdl" "--with-sdl-sound" "--with-sdl-gfx" "--with-alsa" ];
+  buildInputs = [ pkgconfig gtk alsaLib SDL ];
+  
+  meta = {
+    description = "Ultimate/Unix/Unusuable Amiga Emulator";
+    license = "GPLv2+";
+    homepage = http://www.amigaemulator.org;
+    maintainers = [ stdenv.lib.maintainers.sander ];
+  };
+}
diff --git a/pkgs/misc/emulators/vice/default.nix b/pkgs/misc/emulators/vice/default.nix
index 293fe43d0653..425080d7c625 100644
--- a/pkgs/misc/emulators/vice/default.nix
+++ b/pkgs/misc/emulators/vice/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Commodore 64, 128 and other emulators";
     homepage = http://www.viceteam.org;
-    license = "GPL";
+    license = "GPLv2+";
     maintainers = [ lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix
index 6a4fdd3f0dd8..51711c7c5283 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.winehq.org/";
     license = "LGPL";
     description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
-    maintainers = [ stdenv.lib.maintainers.raskin ];
-    platforms = [ "i686-linux" ];
+    maintainers = [stdenv.lib.maintainers.raskin stdenv.lib.maintainers.simons];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/misc/emulators/wine/src-for-default.nix b/pkgs/misc/emulators/wine/src-for-default.nix
index 86d6bfd00ee7..3883a48d056f 100644
--- a/pkgs/misc/emulators/wine/src-for-default.nix
+++ b/pkgs/misc/emulators/wine/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="1.3.8";
-   name="wine-1.3.8";
-   hash="1nxz2xm9xndrsiaiw18g0098dkw7p2k32qsnm0l47giw2h6gdsvf";
+   version="1.3.26";
+   name="wine-1.3.26";
+   hash="0x2frnggg2nlva1qqx4ysdnhcq9gld0p0516z922rl8c1kcb5bbc";
    url="http://prdownloads.sourceforge.net/wine/wine-${version}.tar.bz2";
-   advertisedUrl="http://prdownloads.sourceforge.net/wine/wine-1.3.8.tar.bz2";
+   advertisedUrl="http://prdownloads.sourceforge.net/wine/wine-1.3.26.tar.bz2";
   
   
 }
diff --git a/pkgs/misc/emulators/zsnes/default.nix b/pkgs/misc/emulators/zsnes/default.nix
new file mode 100644
index 000000000000..0b34fc0f9fec
--- /dev/null
+++ b/pkgs/misc/emulators/zsnes/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, nasm, SDL, zlib, libpng, ncurses, mesa}:
+
+stdenv.mkDerivation {
+  name = "zsnes-1.51";
+  
+  src = fetchurl {
+    url = mirror://sourceforge/zsnes/zsnes151src.tar.bz2;
+    sha256 = "08s64qsxziv538vmfv38fg1rfrz5k95dss5zdkbfxsbjlbdxwmi8";
+  };
+
+  buildInputs = [ nasm SDL zlib libpng ncurses mesa ];
+  
+  preConfigure = ''
+    cd src
+    
+    # Fix for undefined strncasecmp()
+    echo '#include <strings.h>' > tmp.cpp 
+    cat tmp.cpp tools/strutil.h > tools/strutil.h.new
+    mv tools/strutil.h.new tools/strutil.h
+    
+    # Fix for undefined system()
+    echo '#include <stdlib.h>' > tmp.cpp
+    cat tmp.cpp tools/depbuild.cpp > tools/depbuild.cpp.new
+    mv tools/depbuild.cpp.new tools/depbuild.cpp
+    
+    # Fix for lots of undefined strcmp, strncmp etc.
+    echo '#include <string.h>' > tmp.cpp 
+    cat tmp.cpp parsegen.cpp > parsegen.cpp.new
+    mv parsegen.cpp.new parsegen.cpp
+  '';
+  
+  meta = {
+    description = "A Super Nintendo Entertainment System Emulator";
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+    homepage = http://www.zsnes.com;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index e1201fd08b85..442fb8a0e50d 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -1,21 +1,63 @@
 { stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl
 , x11Support, x11 ? null
 , cupsSupport ? false, cups ? null
+, gnuFork ? true
 }:
 
 assert x11Support -> x11 != null;
 assert cupsSupport -> cups != null;
 
-stdenv.mkDerivation rec {
-  name = "ghostscript-8.71.1";
+let
+  meta = {
+    homepage = http://www.gnu.org/software/ghostscript/;
+    description = "GNU Ghostscript, a PostScript interpreter";
 
-  builder = ./builder.sh;
+    longDescription = ''
+      Ghostscript is the name of a set of tools that provides (i) an
+      interpreter for the PostScript language and the PDF file format,
+      (ii) a set of C procedures (the Ghostscript library) that
+      implement the graphics capabilities that appear as primitive
+      operations in the PostScript language, and (iii) a wide variety
+      of output drivers for various file formats and printers.
+    '';
+
+    license = "GPLv3+";
 
-  src = fetchurl {
-    url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2";
-    sha256 = "0vab9905h6sl5s5miai4vhhwdacjlkxqmykfr42x32sr25wjqgvl";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.viric ];
   };
 
+  gnuForkData = rec {
+    name = "ghostscript-8.71.1";
+    src = fetchurl {
+      url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2";
+      sha256 = "0vab9905h6sl5s5miai4vhhwdacjlkxqmykfr42x32sr25wjqgvl";
+    };
+
+    inherit meta;
+  };
+
+  mainlineData = {
+    name = "ghostscript-9.04";
+    src = fetchurl {
+      url = http://downloads.ghostscript.com/public/ghostscript-9.04.tar.bz2;
+      sha256 = "1i0bsfzwppzk112vy62ydz927m9dlc1wvywanzi09hnk9as20b7q";
+    };
+    meta = meta // {
+      homepage = http://www.ghostscript.com/;
+      description = "GPL Ghostscript, a PostScript interpreter";
+    };
+  };
+
+  variant = if gnuFork then gnuForkData else mainlineData;
+
+in
+
+stdenv.mkDerivation rec {
+  inherit (variant) name src meta;
+
+  builder = ./builder.sh;
+
   fonts = [
     (fetchurl {
       url = mirror://gnu/ghostscript/gnu-gs-fonts-std-6.0.tar.gz;
@@ -37,26 +79,8 @@ stdenv.mkDerivation rec {
 
   CFLAGS = "-fPIC";
 
-  patches = [ ./purity.patch ./urw-font-files.patch ];
+  patches = [ ./purity.patch ./urw-font-files.patch ]
+    ++ stdenv.lib.optional gnuFork ./pstoraster.patch;
 
   doCheck = true;
-
-  meta = {
-    homepage = http://www.gnu.org/software/ghostscript/;
-    description = "GNU Ghostscript, a PostScript interpreter";
-
-    longDescription = ''
-      Ghostscript is the name of a set of tools that provides (i) an
-      interpreter for the PostScript language and the PDF file format,
-      (ii) a set of C procedures (the Ghostscript library) that
-      implement the graphics capabilities that appear as primitive
-      operations in the PostScript language, and (iii) a wide variety
-      of output drivers for various file formats and printers.
-    '';
-
-    license = "GPLv3+";
-
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-  };
 }
diff --git a/pkgs/misc/ghostscript/pstoraster.patch b/pkgs/misc/ghostscript/pstoraster.patch
new file mode 100644
index 000000000000..465c91e4f19e
--- /dev/null
+++ b/pkgs/misc/ghostscript/pstoraster.patch
@@ -0,0 +1,81 @@
+Upstream issue: http://bugs.ghostscript.com/show_bug.cgi?id=691108
+e.g. printing a test page prints only black
+
+Patch: https://bugs.archlinux.org/task/18339
+
+--- a/cups/gdevcups.c
++++ b/cups/gdevcups.c
+@@ -975,7 +975,8 @@ cups_map_cmyk(gx_device *pdev,		/* I - Device info */
+ 	      frac      k,		/* I - Black value */
+ 	      frac      *out)		/* O - Device colors */
+ {
+-  int	c0, c1, c2, c3;			/* Temporary color values */
++  int	c0 = 0, c1 = 0,
++        c2 = 0, c3 = 0;			/* Temporary color values */
+   float	rr, rg, rb,			/* Real RGB colors */
+ 	ciex, ciey, ciez,		/* CIE XYZ colors */
+ 	ciey_yn,			/* Normalized luminance */
+@@ -2703,9 +2704,13 @@ cups_put_params(gx_device     *pdev,	/* I - Device info */
+   int			color_set;	/* Were the color attrs set? */
+   gdev_prn_space_params	sp;		/* Space parameter data */
+   int			width,		/* New width of page */
+-                        height;		/* New height of page */
++                        height,		/* New height of page */
++                        colorspace,     /* New color space */
++                        bitspercolor;   /* New bits per color */
+   static int            width_old = 0,  /* Previous width */
+-                        height_old = 0; /* Previous height */
++                        height_old = 0, /* Previous height */
++                        colorspace_old = 0,/* Previous color space */
++                        bitspercolor_old = 0;/* Previous bits per color */
+   ppd_attr_t            *backside = NULL,
+                         *backsiderequiresflippedmargins = NULL;
+   float                 swap;
+@@ -2800,9 +2805,10 @@ cups_put_params(gx_device     *pdev,	/* I - Device info */
+   else if (code == 0) \
+   { \
+     dprintf1("DEBUG: Setting %s to", sname); \
+-    for (i = 0; i < count; i ++) \
+-      dprintf1(" %d", (unsigned)(arrayval.data[i]));	 \
+-      cups->header.name[i] = (unsigned)arrayval.data[i]; \
++    for (i = 0; i < count; i ++) { \
++      dprintf1(" %d", (unsigned)(arrayval.data[i])); \
++      cups->header.name[i] = (unsigned)(arrayval.data[i]); \
++    } \
+     dprintf("...\n"); \
+   }
+ 
+@@ -3243,23 +3249,31 @@ cups_put_params(gx_device     *pdev,	/* I - Device info */
+     }
+ #endif /* CUPS_RASTER_SYNCv1 */
+ 
++    colorspace = cups->header.cupsColorSpace;
++    bitspercolor = cups->header.cupsBitsPerColor;
++
+    /*
+     * Don't reallocate memory unless the device has been opened...
+     * Also reallocate only if the size has actually changed...
+     */
+ 
+-    if (pdev->is_open && (width != width_old || height != height_old))
++    if (pdev->is_open &&
++	(width != width_old || height != height_old ||
++	 colorspace != colorspace_old || bitspercolor != bitspercolor_old))
+     {
+ 
+       width_old = width;
+       height_old = height;
++      colorspace_old = colorspace;
++      bitspercolor_old = bitspercolor;
+ 
+      /*
+       * Device is open and size has changed, so reallocate...
+       */
+ 
+-      dprintf4("DEBUG2: Reallocating memory, [%.0f %.0f] = %dx%d pixels...\n",
+-	       pdev->MediaSize[0], pdev->MediaSize[1], width, height);
++      dprintf6("DEBUG2: Reallocating memory, [%.0f %.0f] = %dx%d pixels, color space: %d, bits per color: %d...\n",
++	       pdev->MediaSize[0], pdev->MediaSize[1], width, height,
++	       colorspace, bitspercolor);
+ 
+       sp = ((gx_device_printer *)pdev)->space_params;
\ No newline at end of file
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index f6eecdc787d3..522da20f73c5 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -1,48 +1,30 @@
-# Perhaps we can get some ideas from here ? http://gentoo-wiki.com/HOWTO_Jack
-# still much to test but it compiles now
+{ stdenv, fetchurl, pkgconfig, alsaLib, python, dbus, pythonDBus, expat, makeWrapper }:
 
-{ composableDerivation, fetchurl, pkgconfig, alsaLib }:
+stdenv.mkDerivation rec {
+  name = "jackdbus-${version}";
+  version = "1.9.7";
 
-let inherit (composableDerivation) edf; in
-
-composableDerivation.composableDerivation {} {
-  name = "jack-0.103.0";
-  
   src = fetchurl {
-    url = "mirror://sourceforge/jackit/jack-audio-connection-kit-0.109.2.tar.gz";
-    sha256 = "1m5z8dzalqspsa63pkcgyns0cvh0kqwhb9g1ivcwvnz0bc7ag9r7";
+    url = "http://www.grame.fr/~letz/jack-1.9.7.tar.bz2";
+    sha256 = "01gcn82bb7xnbcsd2ispbav6lwm0il4g8rs2mbaqpcrf9nnmfvq9";
   };
-  
-  buildInputs = [ pkgconfig ];
-  
-  flags =
-      # FIXME: tidy up
-       edf { name = "posix-shm"; } #use POSIX shm API
-    // edf { name = "timestamps"; }                      # allow clients to use the JACK timestamp API
-    // edf { name = "capabilities"; }                   #use libcap to gain realtime scheduling priviledges
-    // edf { name = "oldtrans"; }                      #remove old transport interfaces
-    // edf { name = "stripped-jackd"; }                 #strip jack before computing its md5 sum
-    // edf { name = "portaudio"; }                     #ignore PortAudio driver
-    // edf { name = "coreaudio"; }                     #ignore CoreAudio driver
-    // edf { name = "oss"; }                           #ignore OSS driver
-    // edf { name = "freebob"; }                       #ignore FreeBob driver
-    // edf { name = "alsa"; enable = { buildInputs = [ alsaLib ]; }; };
 
-  cfg = {
-    posix_shmSupport = true;
-    timestampsSupport = true;
-    alsaSupport = true;
-  };
-  
-  # make sure the jackaudio is found by symlinking lib64 to lib
-  postInstall = ''
-    ensureDir $out/lib
-    ln -s $out/lib{64,}/pkgconfig
+  buildInputs = [ pkgconfig alsaLib python dbus pythonDBus expat makeWrapper ];
+
+  configurePhase = "python waf configure --prefix=$out --dbus --alsa";
+
+  buildPhase = "python waf";
+
+  installPhase = ''
+    python waf install
+    wrapProgram $out/bin/jack_control --set PYTHONPATH $PYTHONPATH
   '';
-  
-  meta = {
-    description = "JACK audio connection kit";
+
+  meta = with stdenv.lib; {
+    description = "JACK audio connection kit, version 2 with jackdbus";
     homepage = "http://jackaudio.org";
-    license = "GPL";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
   };
 }
diff --git a/pkgs/misc/jackaudio/jack1.nix b/pkgs/misc/jackaudio/jack1.nix
new file mode 100644
index 000000000000..88bc4dff5404
--- /dev/null
+++ b/pkgs/misc/jackaudio/jack1.nix
@@ -0,0 +1,48 @@
+# Perhaps we can get some ideas from here ? http://gentoo-wiki.com/HOWTO_Jack
+# still much to test but it compiles now
+
+{ composableDerivation, fetchurl, pkgconfig, alsaLib }:
+
+let inherit (composableDerivation) edf; in
+
+composableDerivation.composableDerivation {} {
+  name = "jack-0.120.1";
+  
+  src = fetchurl {
+    url = "http://jackaudio.org/downloads/jack-audio-connection-kit-0.120.1.tar.gz";
+    sha256 = "02h8536c67059gq2vsl323kvy9jak9dp0syi1h58awlkbgzlg80d";
+  };
+  
+  buildInputs = [ pkgconfig ];
+  
+  flags =
+      # FIXME: tidy up
+       edf { name = "posix-shm"; } #use POSIX shm API
+    // edf { name = "timestamps"; }                      # allow clients to use the JACK timestamp API
+    // edf { name = "capabilities"; }                   #use libcap to gain realtime scheduling priviledges
+    // edf { name = "oldtrans"; }                      #remove old transport interfaces
+    // edf { name = "stripped-jackd"; }                 #strip jack before computing its md5 sum
+    // edf { name = "portaudio"; }                     #ignore PortAudio driver
+    // edf { name = "coreaudio"; }                     #ignore CoreAudio driver
+    // edf { name = "oss"; }                           #ignore OSS driver
+    // edf { name = "freebob"; }                       #ignore FreeBob driver
+    // edf { name = "alsa"; enable = { buildInputs = [ alsaLib ]; }; };
+
+  cfg = {
+    posix_shmSupport = true;
+    timestampsSupport = true;
+    alsaSupport = true;
+  };
+  
+  # make sure the jackaudio is found by symlinking lib64 to lib
+  postInstall = ''
+    ensureDir $out/lib
+    ln -s $out/lib{64,}/pkgconfig
+  '';
+  
+  meta = {
+    description = "JACK audio connection kit";
+    homepage = "http://jackaudio.org";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/misc/lilypond/default.nix b/pkgs/misc/lilypond/default.nix
index f30bf0a7e748..b3a9bec29725 100644
--- a/pkgs/misc/lilypond/default.nix
+++ b/pkgs/misc/lilypond/default.nix
@@ -2,12 +2,15 @@
 , python, gettext, flex, perl, bison, pkgconfig, texLive
 , fontconfig, freetype, pango, fontforge, help2man }:
 
-stdenv.mkDerivation {
-  name = "lilypond-2.13.9";
+stdenv.mkDerivation rec{
+  majorVersion="2.13";
+  minorVersion="46";
+  version="${majorVersion}.${minorVersion}";
+  name = "lilypond-${version}";
 
   src = fetchurl {
-    url = http://download.linuxaudio.org/lilypond/sources/v2.13/lilypond-2.13.9.tar.gz;
-    sha256 = "1x3jz0zbhly4rc07nry3ia3ydd6vislz81gg0ivwfm6f6q0ssk57";
+    url = "http://download.linuxaudio.org/lilypond/sources/v${majorVersion}/lilypond-${version}.tar.gz";
+    sha256 = "370f59d10a3fc74c5790111f7a69e04304eda5384513c95838dda3cc087904e6";
   };
 
   configureFlags = [ "--disable-documentation" "--with-ncsb-dir=${ghostscript}/share/ghostscript/fonts"];
diff --git a/pkgs/misc/maven/3.0.nix b/pkgs/misc/maven/3.0.nix
index f66a2f7f04b2..3d14a064a94f 100644
--- a/pkgs/misc/maven/3.0.nix
+++ b/pkgs/misc/maven/3.0.nix
@@ -3,11 +3,11 @@
 assert jdk != null;
 
 stdenv.mkDerivation {
-	name = "apache-maven-3.0";
+	name = "apache-maven-3.0.3";
 	builder = ./builder.sh;
 	src = fetchurl {
-		url = mirror://apache/maven/binaries/apache-maven-3.0-bin.tar.gz;
-		sha256 = "18i7vf7w79pvga4k0plixv2ppdvm476cgikaxxnar1fac5v0qsh4";
+		url = mirror://apache/maven/binaries/apache-maven-3.0.3-bin.tar.gz;
+		sha256 = "b845479bd5d6d821210d3530c65da628a118abedd176492741e1d9bc5e400e2a";
 	};
 	
         buildInputs = [makeWrapper]; 
diff --git a/pkgs/misc/misc.nix b/pkgs/misc/misc.nix
index 3e4e94fbc78d..15ea4f8bcc1e 100644
--- a/pkgs/misc/misc.nix
+++ b/pkgs/misc/misc.nix
@@ -6,18 +6,16 @@ in
 
 {
 
-  /* 
-
-    usage example creating a derivation installing ruby, sup and a lib:
-
-    packageOverrides = {
-      rubyCollection = collection {
-        name = "ruby";
-        list = let l = rubyLibs; in 
-          [ pkgs.ruby l.chronic l.sup ];
-      };
-    }
-
+  /*
+    Usage example creating a derivation installing ruby, sup and a lib:
+
+      packageOverrides = {
+	rubyCollection = collection {
+	  name = "ruby";
+	  list = let l = rubyLibs; in
+	    [ pkgs.ruby l.chronic l.sup ];
+	};
+      }
   */
   collection = {list, name} : runCommand "collection-${name}" {} ''
     mkdir -p $out/nix-support
@@ -128,7 +126,7 @@ in
       for var in CFLAGS CXXFLAGS NIX_CFLAGS_COMPILE; do
         declare -x "$var=''${!var} -ggdb -O0"
       done
-      echo "file should tell that executable has not been strippee"
+      echo "file should tell that executable has not been stripped"
     '';
 
   });
diff --git a/pkgs/misc/my-env/default.nix b/pkgs/misc/my-env/default.nix
index 7c6c2d462393..76080d8e114a 100644
--- a/pkgs/misc/my-env/default.nix
+++ b/pkgs/misc/my-env/default.nix
@@ -45,7 +45,7 @@ mkDerivation {
   # the buildNativeInputs environment variable.
   buildNativeInputs = [ ] ++ buildInputs ;
   name = "env-${name}";
-  phases = "buildPhase";
+  phases = [ "buildPhase" ];
   setupNew = substituteAll {
     src = ../../stdenv/generic/setup.sh;
     preHook="";
@@ -53,6 +53,7 @@ mkDerivation {
     initialPath= (import ../../stdenv/common-path.nix) { inherit pkgs; };
     gcc = stdenv.gcc;
   };
+
   buildPhase = ''
     set -x
     mkdir -p "$out/dev-envs" "$out/nix-support"
@@ -110,5 +111,6 @@ mkDerivation {
       export PATH
       echo $name loaded
     EOF
+    exit 0
   '';
 }
diff --git a/pkgs/misc/rosegarden/default.nix b/pkgs/misc/rosegarden/default.nix
new file mode 100644
index 000000000000..dd4e351a0204
--- /dev/null
+++ b/pkgs/misc/rosegarden/default.nix
@@ -0,0 +1,59 @@
+x@{builderDefsPackage
+  , automake, pkgconfig, libX11, libSM, imake, qt4, alsaLib, jackaudio
+  , ladspaH, liblrdf, dssi, liblo, fftwSinglePrec, libsndfile, libsamplerate
+  , xproto, libICE, perl, makedepend, librdf_raptor, lilypond, flac, libunwind
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="rosegarden";
+    version="10.10";
+    project="${baseName}";
+    name="${baseName}-${version}";
+    url="mirror://sourceforge/project/${project}/${baseName}/${version}/${name}.tar.bz2";
+    hash="1ia74kzkw1yr3h8q4lrccx49hcy2961rni3h4css7r6hdl9xq909";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  configureFlags = [
+    "--with-qtdir=${qt4}"
+  ];
+
+  setVars = a.noDepEntry ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lz -ldl -lX11"
+  '';
+
+  meta = {
+    description = "A music editor and MIDI sequencer";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://sourceforge.net/projects/rosegarden/files/rosegarden/";
+    };
+  };
+}) x
+
diff --git a/pkgs/misc/tex/nix/default.nix b/pkgs/misc/tex/nix/default.nix
index ec09318979f5..f5a34fb67a2c 100644
--- a/pkgs/misc/tex/nix/default.nix
+++ b/pkgs/misc/tex/nix/default.nix
@@ -53,7 +53,7 @@ rec {
           # The type denotes the kind of dependency, which determines
           # what extensions we use to look for it.
           deps = import (pkgs.runCommand "latex-includes"
-            { src = key; }
+            { rootFile = baseNameOf (toString rootFile); src = key; }
             "${pkgs.perl}/bin/perl ${./find-includes.pl}");
 
           # Look for the dependencies of `key', trying various
diff --git a/pkgs/misc/tex/nix/find-includes.pl b/pkgs/misc/tex/nix/find-includes.pl
index 6441f18855b7..41675e939f60 100644
--- a/pkgs/misc/tex/nix/find-includes.pl
+++ b/pkgs/misc/tex/nix/find-includes.pl
@@ -45,6 +45,7 @@ while (<FILE>) {
             $bib =~ s/^\s+//; # remove leading / trailing whitespace
             $bib =~ s/\s+$//;
             addName "misc", "$bib.bib";
+            addName "misc", (basename($ENV{"rootFile"}, ".tex", ".ltx") . ".bbl");
         }
     } elsif (/\\includegraphics(\[.*\])?\{(.*)\}/) {
         my $fn2 = $2;
diff --git a/pkgs/misc/tex/nix/run-latex.sh b/pkgs/misc/tex/nix/run-latex.sh
index 58c7cac302f0..6c18721eed6b 100644
--- a/pkgs/misc/tex/nix/run-latex.sh
+++ b/pkgs/misc/tex/nix/run-latex.sh
@@ -68,11 +68,15 @@ for auxFile in $(find . -name "*.aux"); do
     # Run bibtex to process all bibliographies.  There may be several
     # when we're using the multibib package.
     if grep -q '\\citation' $auxFile; then
-        echo "RUNNING BIBTEX ON $auxFile..."
         auxBase=$(basename $auxFile .aux)
-        bibtex --terse $auxBase
-        cp $auxBase.bbl $out
-        runNeeded=1
+        if [ -e $auxBase.bbl ]; then
+            echo "SKIPPING BIBTEX ON $auxFile!"
+        else
+            echo "RUNNING BIBTEX ON $auxFile..."
+            bibtex --terse $auxBase
+            cp $auxBase.bbl $out
+            runNeeded=1
+        fi
         echo
     fi
 
diff --git a/pkgs/misc/tex/tex4ht/default.nix b/pkgs/misc/tex/tex4ht/default.nix
index f565cb1a48c0..90d134fcd4e7 100644
--- a/pkgs/misc/tex/tex4ht/default.nix
+++ b/pkgs/misc/tex/tex4ht/default.nix
@@ -1,14 +1,15 @@
-{stdenv, fetchurl, tetex}:
+{stdenv, fetchurl, tetex, unzip}:
 
 stdenv.mkDerivation rec {
   name = "tex4ht-1.0.2009_06_11_1038";
 
   src = fetchurl {
-    url = "http://www.cse.ohio-state.edu/~gurari/TeX4ht/fix/${name}.tar.gz";
-    sha1 = "7d46488059316dec3234b6478cd0d2ca8f4d110f";
+    url = "http://www.tug.org/applications/tex4ht/tex4ht.zip";
+    # http://www.cse.ohio-state.edu/~gurari/TeX4ht/fix/${name}.tar.gz";
+    sha1 = "2970cec5f4afc9039b82d6a4210f21d70ded2f5a";
   };
 
-  buildInputs = [ tetex ];
+  buildInputs = [ tetex unzip ];
 
   buildPhase = ''
     cd src
diff --git a/pkgs/misc/tex/texlive/aggregate.nix b/pkgs/misc/tex/texlive/aggregate.nix
index f60e466930d0..1723f4819062 100644
--- a/pkgs/misc/tex/texlive/aggregate.nix
+++ b/pkgs/misc/tex/texlive/aggregate.nix
@@ -7,17 +7,25 @@ rec {
 
   doAggregate = fullDepEntry (''
 
+    ensureDir $out/bin
     for currentPath in ${lib.concatStringsSep " " buildInputs}; do
         echo Symlinking "$currentPath"
         find $currentPath/share/info $currentPath/share/man $(echo $currentPath/texmf*/) ! -type d | while read; do
             REPLY="''${REPLY#$currentPath}"
-	    ensureDir $out/"$(dirname "$REPLY")"
-	    ln -fs $currentPath/"$REPLY" $out/"$REPLY"
-	    echo
+            ensureDir $out/"$(dirname "$REPLY")"
+            ln -fs $currentPath/"$REPLY" $out/"$REPLY"
+            echo
         done | while read; do head -n 99 >/dev/null; echo -n .; done
-	echo
 
-	cp -Trfp $currentPath/libexec $out/libexec || true
+        for i in "$currentPath/bin/"* :; do
+            test "$i" != : || continue
+            echo -ne "#! $SHELL\\nexec $i \"\$@\"" > "$out/bin/$(basename "$i")" && \
+            chmod a+x "$out/bin/$(basename "$i")"
+        done
+
+        echo
+
+        cp -Trfp $currentPath/libexec $out/libexec || true
     done
 
     ln -s $out/texmf* $out/share/
@@ -28,11 +36,11 @@ rec {
       ensureDir $out/texmf-config/"$REPLY"
     done
 
-    ensureDir $out/bin
-    for i in $out/libexec/*/*; do
+    for i in $out/libexec/*/* :; do
+        test "$i" = : && continue;
         test -f "$i" && \
-	test -x "$i" && \
-	echo -ne "#! /bin/sh\\n$i \"\$@\"" >$out/bin/$(basename $i) && \
+        test -x "$i" && \
+        echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i) && \
         chmod a+x $out/bin/$(basename $i)
     done
 
@@ -50,12 +58,12 @@ rec {
   meta = {
     description = "TeX distribution directory";
     longDescription = ''
-      Here all the files from different TeX-related 
-      packages are collected in one directory. Of 
-      course, mktexlsr is called. Later placed 
+      Here all the files from different TeX-related
+      packages are collected in one directory. Of
+      course, mktexlsr is called. Later placed
       directories take precedence. It is supposed that
       share and libexec are symlinked, and bin is
-      recreated with wrappers for libexec-located 
+      recreated with wrappers for libexec-located
       linked binaries.
     '';
   };
diff --git a/pkgs/misc/tex/texlive/default.nix b/pkgs/misc/tex/texlive/default.nix
index e72d9112daa7..69fb5d7e415f 100644
--- a/pkgs/misc/tex/texlive/default.nix
+++ b/pkgs/misc/tex/texlive/default.nix
@@ -1,11 +1,11 @@
-args : with args; 
+args : with args;
 rec {
-  src = fetchurl { 
+  src = fetchurl {
     url = mirror://debian/pool/main/t/texlive-bin/texlive-bin_2009.orig.tar.gz;
     sha256 = "0ywc8h4jnig53fs0bji2ivw5f9j6zlgdy477jqw7xvpc7migjpw7";
   };
-  
-  texmfSrc = fetchurl { 
+
+  texmfSrc = fetchurl {
     url = mirror://debian/pool/main/t/texlive-base/texlive-base_2009.orig.tar.gz;
     sha256 = "130z907xcxr10yrzbbmp9l8a00dabvi4bi702s5jxamjzav17cmf";
   };
@@ -19,7 +19,7 @@ rec {
 
   doMainBuild = fullDepEntry (''
     ensureDir $out
-    ensureDir $out/nix-support 
+    ensureDir $out/nix-support
     cp ${setupHook} $out/nix-support/setup-hook.sh
     ensureDir $out/share
     tar xf ${texmfSrc} -C $out --strip-components=1
@@ -32,7 +32,7 @@ rec {
     sed -e 's@\<env python@${python}/bin/python@' -i $(grep 'env python' -rl . )
 
     sed -e '/ubidi_open/i#include <unicode/urename.h>' -i $(find . -name configure)
-    sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . ) 
+    sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . )
     sed -e '1i\#include <string.h>\n\#include <stdlib.h>' -i $( find libs/teckit -name '*.cpp' -o -name '*.c' )
 
     NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2"
@@ -47,12 +47,13 @@ rec {
     mv $out/bin $out/libexec
     ensureDir $out/bin
     for i in "$out/libexec/"*"/"*; do
-        echo -ne "#! /bin/sh\\n$i \"\$@\"" >$out/bin/$(basename $i)
+        test \( \! -d "$i" \) -a -x "$i" || continue
+        echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i)
         chmod a+x $out/bin/$(basename $i)
     done
     [ -d $out/texmf-config ] || ln -s $out/texmf $out/texmf-config
     ln -s "$out/"*texmf* "$out/share/"
-    
+
     sed -e 's/.*pyhyph.*/=&/' -i $out/texmf-config/tex/generic/config/language.dat
 
     PATH=$PATH:$out/bin mktexlsr $out/texmf*
@@ -76,18 +77,16 @@ rec {
 
   buildInputs = [
     zlib bzip2 ncurses libpng flex bison libX11 libICE
-    xproto freetype t1lib gd libXaw icu ghostscript ed 
-    libXt libXpm libXmu libXext xextproto perl libSM 
+    xproto freetype t1lib gd libXaw icu ghostscript ed
+    libXt libXpm libXmu libXext xextproto perl libSM
     ruby expat curl libjpeg python fontconfig
   ];
 
-  configureFlags = [ "--with-x11" 
+  configureFlags = [ "--with-x11"
     "--enable-ipc" "--with-mktexfmt"
   ];
 
-  phaseNames = ["addInputs" (doDump "0") "doMainBuild" 
-    (doDump "1")
-    "doMakeInstall" "doPostInstall"];
+  phaseNames = ["addInputs" "doMainBuild" "doMakeInstall" "doPostInstall"];
 
   name = "texlive-core-2009";
   meta = {
diff --git a/pkgs/misc/tex/texlive/moderncv.nix b/pkgs/misc/tex/texlive/moderncv.nix
new file mode 100644
index 000000000000..a19835eda4bb
--- /dev/null
+++ b/pkgs/misc/tex/texlive/moderncv.nix
@@ -0,0 +1,25 @@
+args: with args;
+rec {
+  name = "moderncv-2007.05.28";
+  src = fetchurl {
+    url = "http://mirror.ctan.org/macros/latex/contrib/moderncv.zip";
+    sha256 = "d479141e9ae6dad745b03af47541b1bf7d312613de42bb7984eb4b556854cb51";
+  };
+
+  buildInputs = [texLive unzip];
+  phaseNames = ["doCopy"];
+  doCopy = fullDepEntry (''
+    ensureDir $out/texmf/tex/latex/moderncv $out/texmf/doc $out/share
+    mv *.cls *.sty $out/texmf/tex/latex/moderncv/
+    mv examples $out/texmf/doc/moderncv
+    ln -s $out/texmf* $out/share/
+  '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
+
+  meta = {
+    description = "the moderncv class for TeXLive";
+    maintainers = [ args.lib.maintainers.simons ];
+
+    # Actually, arch-independent..
+    platforms = [] ;
+  };
+}
diff --git a/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix b/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
new file mode 100644
index 000000000000..c6aa7baea2fe
--- /dev/null
+++ b/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl,
+  cmake, dbus_glib, glib, gtk, gtkLibs, pkgconfig, xorg }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.1";
+  name = "oxygen-gtk-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/oxygen-gtk/${version}/src/${name}.tar.bz2";
+    sha256 = "66d571f08ec999f56de412f42a0395c9dc60b73adaaece96c6da6e98353fe379";
+  };
+
+  buildInputs = [ cmake dbus_glib glib gtk gtkLibs.gdk_pixbuf
+   pkgconfig xorg.libXau xorg.libXdmcp xorg.libpthreadstubs
+   xorg.libxcb xorg.pixman ];
+
+  meta = with stdenv.lib; {
+    description = "Port of the default KDE widget theme (Oxygen), to gtk";
+    homepage = https://projects.kde.org/projects/playground/artwork/oxygen-gtk;
+    license = licenses.lgpl2;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/os-specific/darwin/install_name_tool/builder.sh b/pkgs/os-specific/darwin/install_name_tool/builder.sh
new file mode 100755
index 000000000000..15e849944977
--- /dev/null
+++ b/pkgs/os-specific/darwin/install_name_tool/builder.sh
@@ -0,0 +1,3 @@
+source $stdenv/setup
+mkdir -p "$out/bin"
+ln -s /usr/bin/install_name_tool "$out/bin/"
diff --git a/pkgs/os-specific/darwin/install_name_tool/default.nix b/pkgs/os-specific/darwin/install_name_tool/default.nix
new file mode 100644
index 000000000000..d8ffa6d38cfd
--- /dev/null
+++ b/pkgs/os-specific/darwin/install_name_tool/default.nix
@@ -0,0 +1,8 @@
+{stdenv}:
+
+assert stdenv.isDarwin;
+
+stdenv.mkDerivation {
+  name = "darwin-install_name_tool-utility";
+  builder = ./builder.sh;
+}
diff --git a/pkgs/os-specific/gnu/hurd/default.nix b/pkgs/os-specific/gnu/hurd/default.nix
index 50802d3425bf..bc5e79e8ef39 100644
--- a/pkgs/os-specific/gnu/hurd/default.nix
+++ b/pkgs/os-specific/gnu/hurd/default.nix
@@ -10,8 +10,8 @@ assert (hurdPartedCross != null) -> (libuuid != null);
 let
   # Unfortunately we can't use `master@{DATE}', see
   # <http://www.bramschoenmakers.nl/en/node/645>.
-  date   = "20100512";
-  rev    = "7913beaef3e6a2c4f7f315a8db7a31dbe1f713e0";
+  date   = "20110516";
+  rev    = "ffd73488f9eecdb9da40e15f5fdcebf392cb88f8";
   suffix = if headersOnly
            then "-headers"
            else (if buildTarget != "all"
@@ -23,7 +23,7 @@ stdenv.mkDerivation ({
 
   src = fetchgit {
     url = "git://git.sv.gnu.org/hurd/hurd.git";
-    sha256 = "bf4f1376b26b0dcdfd23ff9c9b01440f50d032f48946fad6d3861539978f8f4d";
+    sha256 = "6527e85347fe387bd3119fbf2ea07590a35ecad9eec14bb00cd6a443507111a9";
     inherit rev;
   };
 
@@ -36,7 +36,9 @@ stdenv.mkDerivation ({
   propagatedBuildInputs = [ machHeaders ];
 
   configureFlags = stdenv.lib.optionals headersOnly [ "--build=i586-pc-gnu" ]
-    ++ stdenv.lib.optional (hurdPartedCross != null) [ "--with-parted" ];
+    ++ (if hurdPartedCross != null
+        then [ "--with-parted" ]
+        else [ "--without-parted" ]);
 
   preConfigure = "autoreconf -vfi";
 
diff --git a/pkgs/os-specific/gnu/mig/default.nix b/pkgs/os-specific/gnu/mig/default.nix
index 668229b101f6..480b349297a5 100644
--- a/pkgs/os-specific/gnu/mig/default.nix
+++ b/pkgs/os-specific/gnu/mig/default.nix
@@ -13,12 +13,12 @@ stdenv.mkDerivation {
     inherit rev;
   };
 
+  patches = [ ./noyywrap.patch ];
+
   buildInputs = [ autoconf automake flex bison machHeaders ];
 
   preConfigure = "autoreconf -vfi";
 
-  configureFlags = [ "--build=i586-pc-gnu" ];
-
   doCheck = true;
 
   meta = {
diff --git a/pkgs/os-specific/gnu/mig/noyywrap.patch b/pkgs/os-specific/gnu/mig/noyywrap.patch
new file mode 100644
index 000000000000..40ca6171f64b
--- /dev/null
+++ b/pkgs/os-specific/gnu/mig/noyywrap.patch
@@ -0,0 +1,12 @@
+Fix undefined reference to `yywrap'.
+
+diff --git a/lexxer.l b/lexxer.l
+index 9725d0b..15264bc 100644
+--- a/lexxer.l
++++ b/lexxer.l
+@@ -1,4 +1,5 @@
+ %option nounput
++%option noyywrap
+ 
+ %k 10000
+ %n 5000
diff --git a/pkgs/os-specific/linux/acpi/default.nix b/pkgs/os-specific/linux/acpi/default.nix
index 666f2d9475bc..84ee44868079 100644
--- a/pkgs/os-specific/linux/acpi/default.nix
+++ b/pkgs/os-specific/linux/acpi/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "acpi-0.09";
+  name = "acpi-1.5";
   
   src = fetchurl {
-    url = "http://grahame.angrygoats.net/source/acpi/${name}.tar.gz";
-    sha256 = "11iwzbm3gcn9ljvxl4cjj9fc1n135hx45rhrsprnnkqppndf3vn1";
+    url = "http://ftp.de.debian.org/debian/pool/main/a/acpi/acpi_1.5.orig.tar.gz";
+    sha256 = "1pb020j627ldjm1askqfzp6cjxrs79ail8svihanv7pgbg5r3zsp";
   };
 
   meta = {
diff --git a/pkgs/os-specific/linux/alsa-plugins/default.nix b/pkgs/os-specific/linux/alsa-plugins/default.nix
index dc36757e020e..2ae39d4cf16d 100644
--- a/pkgs/os-specific/linux/alsa-plugins/default.nix
+++ b/pkgs/os-specific/linux/alsa-plugins/default.nix
@@ -1,21 +1,21 @@
-{stdenv, fetchurl, lib, pkgconfig, alsaLib, pulseaudio, jackaudio}:
-stdenv.mkDerivation {
+{ stdenv, fetchurl, lib, pkgconfig, alsaLib, pulseaudio ? null, jackaudio ? null }:
+
+stdenv.mkDerivation rec {
   name = "alsa-plugins-1.0.23";
 
   src = fetchurl {
-    url = ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-1.0.23.tar.bz2;
+    url = "ftp://ftp.alsa-project.org/pub/plugins/${name}.tar.bz2";
     sha256 = "10ri5dpmhk028r0qvajswh2xl40kjd600h7hykq03vrkmn8jf6sw";
   };
 
-  # TODO make backends such as jack, pulseaudio optional
-  buildInputs = [pkgconfig alsaLib pulseaudio jackaudio];
+  buildInputs =
+    [ pkgconfig alsaLib ]
+    ++ stdenv.lib.optional (pulseaudio != null) pulseaudio
+    ++ stdenv.lib.optional (jackaudio != null) jackaudio;
 
   meta = { 
-    description = "plugins for alsa eg conneckt jack, pluseaudio applications easily to the daemons using alsa devices";
-    longDescription = "
-      use it like this: export ALSA_PLUGIN_DIRS=$(nix-build -A alsaPlugins)/lib/alsa-lib
-    ";
-    homepage = http://alsa-project.org;
+    description = "Various plugins for ALSA";
+    homepage = http://alsa-project.org/;
     license = "GPL2.1";
     maintainers = [lib.maintainers.marcweber];
     platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/aufs2.1-util/default.nix b/pkgs/os-specific/linux/aufs2.1-util/default.nix
new file mode 100644
index 000000000000..a12a0900ca40
--- /dev/null
+++ b/pkgs/os-specific/linux/aufs2.1-util/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchgit, kernel, aufs2_1 }:
+
+let version = "20110217"; in
+
+stdenv.mkDerivation {
+  name = "aufs2.1-util-${version}";
+
+  src = fetchgit {
+    url = "git://git.c3sl.ufpr.br/aufs/aufs2-util.git";
+    rev = "0f0cf3f2ae39906fd4b5376cdaa24e9fe64a03f4";
+    sha256 = "0fce5601b67efe8b5652a813ae612348bf4503aa71056cd31a5ed0406632e364";
+  };
+
+  buildInputs = [ aufs2_1 ];
+
+  makeFlags =
+    [ "KDIR=${kernel}/lib/modules/${kernel.version}/build"
+      "Install=install"
+      "DESTDIR=$(out)"
+    ];
+
+  postInstall =
+    ''
+      mv $out/usr/* $out
+      rmdir $out/usr
+
+      cp aufs.shlib $out/lib/
+
+      substituteInPlace $out/bin/aubrsync \
+        --replace /sbin/mount $out/sbin/mount \
+        --replace /usr/lib/aufs.shlib $out/lib/aufs.shlib
+    '';
+
+  meta = {
+    description = "Utilities for AUFS2.1";
+    homepage = http://aufs.sourceforge.net/;
+    maintainers = [ stdenv.lib.maintainers.eelco 
+                    stdenv.lib.maintainers.shlevy ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/aufs2.1/default.nix b/pkgs/os-specific/linux/aufs2.1/default.nix
new file mode 100644
index 000000000000..d118f1f74871
--- /dev/null
+++ b/pkgs/os-specific/linux/aufs2.1/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, kernel, fetchgit, perl }:
+
+assert kernel.features ? aufsBase;
+
+let version = 
+  if (builtins.lessThan (builtins.compareVersions kernel.version "2.6.38") 0) 
+  then "20110303"
+  else "20110408"; in
+
+stdenv.mkDerivation {
+  name = "aufs2.1-${version}";
+
+  src =
+  if (builtins.lessThan (builtins.compareVersions kernel.version "2.6.38") 0) 
+  then
+    fetchgit {
+      url = "git://git.c3sl.ufpr.br/aufs/aufs2-standalone.git";
+      rev = "aceef6c84dbe5798bf46904252727b9588eafaf6";
+      sha256 = "50a8cb39af5fee82e88b65351cac52b6ab95a68c45e0a98da9fa1925b28f048d";
+    }
+  else
+    fetchgit {
+      url = "git://git.c3sl.ufpr.br/aufs/aufs2-standalone.git";
+      rev = "01cb6101f477339bc95e6b47e3618bb29ecc68db";
+      sha256 = "4af3c4b1e99ef58abe8530665309021d541ee840ee54f442606cc418646a1faf";
+    };
+
+  buildInputs = [ perl ];
+
+  makeFlags = "KDIR=${kernel}/lib/modules/${kernel.version}/build";
+
+  installPhase =
+    ''
+      ensureDir $out/lib/modules/${kernel.version}/misc
+      cp -v aufs.ko $out/lib/modules/${kernel.version}/misc
+
+      # Install the headers because aufs2.1-util requires them.
+      cp -av usr/include $out/
+    '';
+
+  meta = {
+    description = "Another Unionfs implementation for Linux (second generation)";
+    homepage = http://aufs.sourceforge.net/;
+    maintainers = [ stdenv.lib.maintainers.eelco
+                    stdenv.lib.maintainers.raskin
+                    stdenv.lib.maintainers.shlevy ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/blcr/default.nix b/pkgs/os-specific/linux/blcr/default.nix
index fb0db8e671c1..afe627f78866 100644
--- a/pkgs/os-specific/linux/blcr/default.nix
+++ b/pkgs/os-specific/linux/blcr/default.nix
@@ -1,41 +1,21 @@
-{ stdenv, fetchurl, kernel, perl, makeWrapper, autoconf, automake, libtool }:
+{ stdenv, fetchurl, kernel, perl, makeWrapper }:
 
 assert stdenv.isLinux;
 
-let
-  version = "0.8.2";
-  website = https://ftg.lbl.gov/CheckpointRestart;
-in
-
 stdenv.mkDerivation {
-  name = "blcr-${version}-${kernel.version}";
+  name = "blcr-0.8.3-${kernel.version}";
 
   src = fetchurl {
-    url = "${website}/downloads/blcr-${version}.tar.gz";
-    sha256 = "1ldvzrajljkm318z5ix1p27n0gmv7gqxij6ck7p5fz4ncdbb01x8";
+    url = https://ftg.lbl.gov/assets/projects/CheckpointRestart/downloads/blcr-0.8.3.tar.gz;
+    sha256 = "c8243c9a7a215d4fc4e8f2199045711cf711a6f2e0b39a94413478ffae110eac";
   };
-  
-  patchFlags = "-p0";
-
-  patches = map fetchurl [
-    { url = http://upc-bugs.lbl.gov/blcr-dist/blcr-0.8.2+kernel-2.6.31.patch01;
-      sha256 = "0jnz18kbrm64hahvhk35zakcpylad1khsp5kjxkj19j0lkjv3m4h";
-    }
-    { url = http://upc-bugs.lbl.gov/blcr-dist/blcr-0.8.2+kernel-2.6.32.patch02;
-      sha256 = "1f5s9c7iiaxd67ki3bmz09mf66shzbl97hvwaq4nmk6miq94k1fw";
-    }
-    { url = http://upc-bugs.lbl.gov/blcr-dist/blcr-0.8.2+kernel-2.6.34.patch03;
-      sha256 = "09924h83xdwpxjlx3yg5b51fgm6gjywn2rb4nnygz16n87wqvb41";
-    }
-  ];
 
-  buildInputs = [ perl makeWrapper autoconf automake libtool ];
+  buildInputs = [ perl makeWrapper ];
 
   preConfigure = ''
-    ./autogen.sh
     configureFlagsArray=(
-      --with-linux=$(ls -d ${kernel}/lib/modules/*/build)
-      --with-kmod-dir=$out/lib/modules/$(cd ${kernel}/lib/modules; ls -d 2.6.*)
+      --with-linux=${kernel}/lib/modules/${kernel.modDirVersion}/build
+      --with-kmod-dir=$out/lib/modules/${kernel.modDirVersion}
       --with-system-map=${kernel}/System.map
     )
   '';
@@ -49,7 +29,7 @@ stdenv.mkDerivation {
       
   meta = {
     description = "Berkeley Lab Checkpoint/Restart for Linux (BLCR)";
-    homepage = website;
+    homepage = https://ftg.lbl.gov/projects/CheckpointRestart/;
     license = "GPL2";
   };
 }
diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
index 2868a70e8b6f..c0aec5a7b569 100644
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ b/pkgs/os-specific/linux/bluez/default.nix
@@ -1,22 +1,47 @@
-{ stdenv, fetchurl, pkgconfig, dbus, glib, libusb, alsaLib }:
+{ stdenv, fetchurl, pkgconfig, dbus, glib, libusb, alsaLib, python, makeWrapper
+, pythonDBus, pygobject, gst_all, readline, libsndfile }:
 
 assert stdenv.isLinux;
+
+let
+  pythonpath = "${pythonDBus}/lib/${python.libPrefix}/site-packages:"
+    + "${pygobject}/lib/${python.libPrefix}/site-packages";
+in
    
 stdenv.mkDerivation rec {
-  name = "bluez-4.69";
+  name = "bluez-4.95";
    
   src = fetchurl {
     url = "mirror://kernel/linux/bluetooth/${name}.tar.gz";
-    sha256 = "1h4fp6l1sflc0l5vg90hzvgldlwv7rqc4cbn2z6axmxv969pmrhh";
+    sha256 = "1xi087x2ggdywq63qp55wvi1iclk50hc42fp40kcsazw23j9vsnn";
   };
 
-  buildInputs = [ pkgconfig dbus.libs glib libusb alsaLib ];
+  buildInputs =
+    [ pkgconfig dbus.libs glib libusb alsaLib python makeWrapper
+      readline libsndfile
+      # Disables GStreamer; not clear what it gains us other than a
+      # zillion extra dependencies.
+      # gst_all.gstreamer gst_all.gstPluginsBase 
+    ];
 
-  configureFlags = "--localstatedir=/var";
+  configureFlags = "--localstatedir=/var --enable-cups";
 
   # Work around `make install' trying to create /var/lib/bluetooth.
   installFlags = "statedir=$(TMPDIR)/var/lib/bluetooth";
 
+  makeFlags = "rulesdir=$(out)/lib/udev/rules.d";
+
+  /* !!! Move these into a separate package to prevent Bluez from
+    depending on Python etc. */
+  postInstall = ''
+    pushd test
+    for a in simple-agent test-adapter test-device; do
+      cp $a $out/bin/bluez-$a
+      wrapProgram $out/bin/bluez-$a --prefix PYTHONPATH : ${pythonpath}
+    done
+    popd
+  '';
+
   meta = {
     homepage = http://www.bluez.org/;
     description = "Bluetooth support for Linux";
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index cf8fde4751cc..9749b1568e46 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, kernel }:
 
-let version = "5.60.246.6";
+let version = "5_100_82_38";
     bits = if stdenv.system == "i686-linux" then "32" else
       assert stdenv.system == "x86_64-linux"; "64";
 in
@@ -8,16 +8,19 @@ in
 stdenv.mkDerivation {
   name = "broadcom-sta-${version}";
   src = fetchurl {
-    url = "http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86-${bits}_v${version}.tar.gz";
+    url = "http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_${bits}-v${version}.tar.gz";
     sha256 = if bits == "32"
-      then "0y8ap9zhfsg1k603qf5a7n73zvsw7nkqh42dlcyxan5zdzmgcqdx"
-      else "0z8a57fpajiag830g1ifc9vrm7wk5bm7dwi7a9ljm3cns3an07fl";
+      then "0dzvnk0vmi5dlbsi9k2agvs5xsqn07mv66g9v1jzn1gsl8fsydpp"
+      else "19rm9m949yqahgii7wr14lj451sd84s72mqj15yd0dnpm4k5n5hw";
   };
 
   buildInputs = [ kernel ];
-  patches = [ ./makefile.patch ];
+  patches = [ ./makefile.patch ]
+    ++ stdenv.lib.optional
+    (! builtins.lessThan (builtins.compareVersions kernel.version "2.6.37") 0)
+      [ ./mutex-sema.patch ];
 
-  makeFlags = "KDIR=${kernel}/lib/modules/${kernel.version}/build";
+  makeFlags = "KDIR=${kernel}/lib/modules/${kernel.modDirVersion}/build";
 
   unpackPhase =
     ''
@@ -28,7 +31,7 @@ stdenv.mkDerivation {
 
   installPhase =
     ''
-      binDir="$out/lib/modules/${kernel.version}/kernel/net/wireless/"
+      binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
       docDir="$out/share/doc/broadcom-sta/"
       ensureDir "$binDir" "$docDir"
       cp wl.ko "$binDir"
diff --git a/pkgs/os-specific/linux/broadcom-sta/mutex-sema.patch b/pkgs/os-specific/linux/broadcom-sta/mutex-sema.patch
new file mode 100644
index 000000000000..922c8f2d22dd
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/mutex-sema.patch
@@ -0,0 +1,12 @@
+diff -aur old/src/wl/sys/wl_linux.c new/src/wl/sys/wl_linux.c
+--- old/src/wl/sys/wl_linux.c	2010-12-25 18:17:33.333343048 +0100
++++ new/src/wl/sys/wl_linux.c	2010-12-25 18:21:05.856676376 +0100
+@@ -483,7 +483,7 @@
+ #ifdef WL_ALL_PASSIVE
+ 		spin_lock_init(&wl->txq_lock);
+ #endif 
+-		init_MUTEX(&wl->sem);
++		sema_init(&wl->sem, 1);
+ 	}
+ 
+ 	if (!(wl->wlc = wlc_attach((void *) wl, vendor, device, unit, wl->piomode,
diff --git a/pkgs/os-specific/linux/checkpolicy/default.nix b/pkgs/os-specific/linux/checkpolicy/default.nix
new file mode 100644
index 000000000000..a69249b216d3
--- /dev/null
+++ b/pkgs/os-specific/linux/checkpolicy/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libsepol, libselinux, bison, flex }:
+stdenv.mkDerivation rec {
+
+  name = "checkpolicy-${version}";
+  version = "2.0.23";
+
+  src = fetchurl {
+    url = "http://userspace.selinuxproject.org/releases/20101221/devel/checkpolicy-2.0.23.tar.gz";
+    sha256 = "1n34ggacds7xap039r6hqkxmkd4g2wgfkxjdnv3lirq3cqqi8cnd";
+  };
+
+  buildInputs = [ libsepol libselinux bison flex ];
+
+  preBuild = '' makeFlags="$makeFlags LEX=flex LIBDIR=${libsepol}/lib PREFIX=$out" '';
+
+  meta = with stdenv.lib; {
+    homepage = http://userspace.selinuxproject.org/;
+    description = "SELinux policy compiler";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/dmtcp/default.nix b/pkgs/os-specific/linux/dmtcp/default.nix
index 39759b03496c..c863be14461c 100644
--- a/pkgs/os-specific/linux/dmtcp/default.nix
+++ b/pkgs/os-specific/linux/dmtcp/default.nix
@@ -4,18 +4,16 @@
 stdenv.mkDerivation rec {
   name = "dmtcp-${version}";
 
-  version = "1.1.8";
+  version = "1.2.0";
 
   buildInputs = [ perl python ];
 
   src = fetchurl {
     url = "mirror://sourceforge/dmtcp/dmtcp_${version}.tar.gz";
-    sha256 = "05klyml5maw3f5rxl3i20fqyvpmx69bh09h7a48y19q3r4nqd8f2";
+    sha256 = "1pw3m4l1xf887xagd0yrrnb35s372j0kvjziyy3gmx9fxpga1jzb";
   };
 
-  patches = [ ./dont_check_uid.patch ];
-
-  postPatch = ''
+  preConfigure = ''
     substituteInPlace dmtcp/src/dmtcp_coordinator.cpp \
       --replace /bin/bash /bin/sh
     substituteInPlace utils/gdb-add-symbol-file \
diff --git a/pkgs/os-specific/linux/dmtcp/dont_check_uid.patch b/pkgs/os-specific/linux/dmtcp/dont_check_uid.patch
deleted file mode 100644
index 23f4a254037e..000000000000
--- a/pkgs/os-specific/linux/dmtcp/dont_check_uid.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff -Nuar dmtcp_1.1.8/dmtcp/src/dmtcp_restart.cpp dmtcp_1.1.8.dont_check_uid/dmtcp/src/dmtcp_restart.cpp
---- dmtcp_1.1.8/dmtcp/src/dmtcp_restart.cpp	2010-07-01 06:42:54.000000000 +0200
-+++ dmtcp_1.1.8.dont_check_uid/dmtcp/src/dmtcp_restart.cpp	2010-09-06 23:50:51.000000000 +0200
-@@ -662,14 +662,6 @@
-       sprintf(error_msg, "\ndmtcp_restart: ckpt image %s", restorename);
-       perror(error_msg);
-       doAbort = true;
--    } else if (buf.st_uid != getuid()) { /*Could also run if geteuid() matches*/
--      printf("\nProcess uid (%d) doesn't match uid (%d) of\n" \
--             "checkpoint image (%s).\n" \
--	     "This is dangerous.  Aborting for security reasons.\n" \
--           "If you still want to do this (at your own risk),\n" \
--           "  then modify dmtcp/src/%s:%d and re-compile.\n",
--           getuid(), buf.st_uid, restorename, __FILE__, __LINE__ - 6);
--      doAbort = true;
-     }
-     if (doAbort)
-       abort();
-diff -Nuar dmtcp_1.1.8/mtcp/mtcp_restart.c dmtcp_1.1.8.dont_check_uid/mtcp/mtcp_restart.c
---- dmtcp_1.1.8/mtcp/mtcp_restart.c	2010-07-01 06:42:53.000000000 +0200
-+++ dmtcp_1.1.8.dont_check_uid/mtcp/mtcp_restart.c	2010-09-07 01:49:20.000000000 +0200
-@@ -157,13 +157,6 @@
-       sprintf(error_msg, "\nmtcp_restart: ckpt image %s", restorename);
-       perror(error_msg);
-       abort();
--    } else if (buf.st_uid != getuid()) { /*Could also run if geteuid() matches*/
--      mtcp_printf("\nProcess uid (%d) doesn't match uid (%d) of\n" \
--	          "checkpoint image (%s).\n" \
--		  "This is dangerous.  Aborting for security reasons.\n" \
--	   "If you still want to do this, modify mtcp/%s:%d and re-compile.\n",
--	   getuid(), buf.st_uid, restorename, __FILE__, __LINE__ - 5);
--      abort();
-     }
-   }
- 
diff --git a/pkgs/os-specific/linux/ebtables/default.nix b/pkgs/os-specific/linux/ebtables/default.nix
new file mode 100644
index 000000000000..1f0539add939
--- /dev/null
+++ b/pkgs/os-specific/linux/ebtables/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "ebtables-2.0.9-2";
+
+  src = fetchurl {
+    url = mirror://sourceforge/ebtables/ebtables-v2.0.9-2.tar.gz;
+    sha256 = "18yni9zzhfi1ygkgifzj8qpn95cwwiw7j6b3wsl1bij39mj5z1cq";
+  };
+
+  makeFlags =
+    "LIBDIR=$(out)/lib BINDIR=$(out)/sbin MANDIR=$(out)/share/man " +
+    "ETCDIR=$(out)/etc INITDIR=$(TMPDIR) SYSCONFIGDIR=$(out)/etc/sysconfig";
+
+  preBuild =
+    ''
+      substituteInPlace Makefile --replace '-o root -g root' ""
+    '';
+
+  preInstall = "mkdir -p $out/etc/sysconfig";
+
+  meta = {
+    description = "A filtering tool for Linux-based bridging firewalls";
+    homepage = http://ebtables.sourceforge.net/;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix
new file mode 100644
index 000000000000..5b7e2dc7b5e4
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "iwlwifi-6000-ucode-9.221.4.1";
+
+  src = fetchurl {
+    url = "http://intellinuxwireless.org/iwlwifi/downloads/${name}.tgz";
+    sha256 = "7f04623231663dc4ee63df32fd890bfa9514dce1fab9dc7a25fda90350da836b";
+  };
+
+  buildPhase = "true";
+
+  installPhase = ''
+    ensureDir "$out"
+    chmod -x *
+    cp * "$out"
+  '';
+
+  meta = {
+    description = "Firmware for the Intel 6000 Series wireless card";
+
+    longDescription = ''
+      This package provides the Intel 6000 Series wireless card
+      firmware. It contains the `iwlwifi-6000-4.ucode' file.
+    '';
+
+    homepage = http://intellinuxwireless.org/;
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/radeon-juniper/default.nix b/pkgs/os-specific/linux/firmware/radeon-juniper/default.nix
new file mode 100644
index 000000000000..ad277ac8ddae
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/radeon-juniper/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "radeon-juniper-firmware-2010-04-08";
+
+  srcPfp = fetchurl {
+    url = "http://people.freedesktop.org/~agd5f/radeon_ucode/JUNIPER_pfp.bin";
+    sha256 = "1qm910p7qjs6n528q22gkwpprzdh39vbihdliykbpfs1pphrhkjz";
+  };
+  srcMe = fetchurl {
+    url = "http://people.freedesktop.org/~agd5f/radeon_ucode/JUNIPER_me.bin";
+    sha256 = "1869dhay3f75hhnsvdjhlrjd4fhdi8d6c3lhk45vp7fhjiw4741q";
+  };
+  srcRlc = fetchurl {
+    url = "http://people.freedesktop.org/~agd5f/radeon_ucode/JUNIPER_rlc.bin";
+    sha256 = "1y3xr7qc7cvszgw0bh66vzy36pn4m1sj17bzy5dc9kfw01kq3n0y";
+  };
+
+  unpackPhase = "true";
+  installPhase = ''
+    install -D $srcPfp $out/radeon/JUNIPER_pfp.bin
+    install -D $srcMe $out/radeon/JUNIPER_me.bin
+    install -D $srcRlc $out/radeon/JUNIPER_rlc.bin
+  '';
+
+  meta = {
+    description = "Juniper firmware for the RADEON chipset";
+    homepage = "http://people.freedesktop.org/~agd5f/radeon_ucode";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/radeon-r600/default.nix b/pkgs/os-specific/linux/firmware/radeon-r600/default.nix
new file mode 100644
index 000000000000..9a298ab96d4a
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/radeon-r600/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "radeon-r600-firmware-2009-12-09";
+
+  src = fetchurl {
+    url = "http://people.freedesktop.org/~agd5f/radeon_ucode/R600_rlc.bin";
+    sha256 = "11bxpivxycigv0ffbck33y9czgira3g8py33840zxzwcwbi59yps";
+  };
+
+  unpackPhase = "true";
+  installPhase = "install -D $src $out/radeon/R600_rlc.bin";
+
+  meta = {
+    description = "Firmware for the RADEON r600 chipset";
+    homepage = "http://people.freedesktop.org/~agd5f/radeon_ucode";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/radeon-r700/default.nix b/pkgs/os-specific/linux/firmware/radeon-r700/default.nix
new file mode 100644
index 000000000000..09342f687e95
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/radeon-r700/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "radeon-r700-firmware-2009-12-09";
+
+  src = fetchurl {
+    url = "http://people.freedesktop.org/~agd5f/radeon_ucode/R700_rlc.bin";
+    sha256 = "1lbgrlbhqijizg16z0g0qa6ggznpdy844cawnwdp1b0fkwhrbkga";
+  };
+
+  unpackPhase = "true";
+  installPhase = "install -D $src $out/radeon/R700_rlc.bin";
+
+  meta = {
+    description = "Firmware for the RADEON r700 chipset";
+    homepage = "http://people.freedesktop.org/~agd5f/radeon_ucode";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/rt2860/default.nix b/pkgs/os-specific/linux/firmware/rt2860/default.nix
new file mode 100644
index 000000000000..70601f065ef4
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/rt2860/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  name = "rt2860-fw-26";
+  src = fetchurl {
+    url = "http://www.ralinktech.com/download.php?t=U0wyRnpjMlYwY3k4eU1ERXdMekF6THpNeEwyUnZkMjVzYjJGa01UWTBNamsyTVRBNE1pNTZhWEE5UFQxU1ZESTROakJmUm1seWJYZGhjbVZmVmpJMkM%3D";
+    name = "RT2860_Firmware_V26.zip";
+    sha256 = "0kvjd8kfnmh8jj35jd10pnr1z7a00ks4c317dnnzgkd86mmcg4px";
+  };
+
+  buildInputs = [ unzip ];
+  
+  buildPhase = "true";
+
+  # Installation copies the firmware AND the license.  The license
+  # says: "Your rights to redistribute the Software shall be
+  # contingent upon your installation of this Agreement in its
+  # entirety in the same directory as the Software."
+  installPhase = "ensureDir $out/${name}; cp *.bin $out; cp *.txt $out/${name}";
+  
+  meta = {
+    description = "Firmware for the Ralink RT2860 wireless cards";
+    homepage = http://www.ralinktech.com/;
+    license = "non-free";
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/rtl8192c/default.nix b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
new file mode 100644
index 000000000000..0ab7436ebfff
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "rtl8192c-fw";
+  src = fetchurl {
+    url = "ftp://WebUser:n8W9ErCy@208.70.202.219/cn/wlan/92ce_se_de_linux_mac80211_0003.0401.2011.tar.gz";
+    sha256 = "002kj6f1xaali2iwrxvirqq0hbiyb2cpf93y2xycp3qd69cp8lik";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  # Installation copies the firmware AND the license.  The license
+  # says: "Your rights to redistribute the Software shall be
+  # contingent upon your installation of this Agreement in its
+  # entirety in the same directory as the Software."
+  installPhase = "ensureDir $out; cp -a firmware/* $out";
+  
+  meta = {
+    description = "Firmware for the Realtek RTL8192c wireless cards";
+    homepage = "http://www.realtek.com";
+    license = "non-free";
+  };
+}
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index c15cd3e00422..d14edf00dab1 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, utillinux }:
 
 stdenv.mkDerivation rec {
-  name = "fuse-2.8.4";
+  name = "fuse-2.8.5";
   
   builder = ./builder.sh;
   
   src = fetchurl {
     url = "mirror://sourceforge/fuse/${name}.tar.gz";
-    sha256 = "076y4n9ppmqlfarvm219694cn78qms7k2vh1b4454kkcgg9jmrh4";
+    sha256 = "114ssa7a7spwmkrn8362dgzdqiba4s8s4b3vyvyhvrlfmrk0xj5y";
   };
   
   configureFlags = "--disable-kernel-module";
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
new file mode 100644
index 000000000000..39f92d99b7f6
--- /dev/null
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libnl1, openssl }:
+stdenv.mkDerivation rec {
+
+  name = "hostapd-${version}";
+  version = "0.7.3";
+
+  src = fetchurl {
+    url = http://w1.fi/releases/hostapd-0.7.3.tar.gz;
+    sha256 = "0rqmjs4k50qjp2d0k71lg5vsh34w07w985cxjqklq6kyyf0jgsri";
+  };
+
+  buildInputs = [ libnl1 openssl ];
+
+  configurePhase = ''
+    cd hostapd
+    substituteInPlace defconfig --replace "#CONFIG_DRIVER_NL80211" "CONFIG_DRIVER_NL80211"
+    substituteInPlace Makefile --replace "/usr/local/bin/" "$out/bin/"
+    mv defconfig .config
+  '';
+  preInstall = "mkdir -p $out/bin";
+
+  meta = with stdenv.lib; {
+    homepage = http://w1.fi/hostapd/;
+    description = "A user space daemon for access point and authentication servers";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/htop/default.nix b/pkgs/os-specific/linux/htop/default.nix
index 6a2320993517..923f27981458 100644
--- a/pkgs/os-specific/linux/htop/default.nix
+++ b/pkgs/os-specific/linux/htop/default.nix
@@ -1,12 +1,18 @@
 {fetchurl, stdenv, ncurses}:
 
-stdenv.mkDerivation rec {
-  name = "htop-0.8.3";
+let
+  name = "htop-0.9";
+in
+stdenv.mkDerivation {
+  inherit name;
+
   src = fetchurl {
     url = "mirror://sourceforge/htop/${name}.tar.gz";
-    sha256 = "f03bac8999c57c399cbf4332831bcce905d0393d0f97f7e32a1407b48890dd9d";
+    sha256 = "4de65c38e1886bccd30ed692b30eb9bf195240680781bfe1eaf5faf84ee6fbfd";
   };
+
   buildInputs = [ncurses];
+
   meta = {
     description = "An interactive process viewer for Linux";
     homepage = "http://htop.sourceforge.net";
diff --git a/pkgs/os-specific/linux/iotop/default.nix b/pkgs/os-specific/linux/iotop/default.nix
index 54a6cf8e457b..e394b6123880 100644
--- a/pkgs/os-specific/linux/iotop/default.nix
+++ b/pkgs/os-specific/linux/iotop/default.nix
@@ -1,46 +1,21 @@
-x@{builderDefsPackage
-  , python, makeWrapper
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+{ stdenv, fetchurl, buildPythonPackage, pythonPackages }:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="iotop";
-    version="0.4.1";
-    name="${baseName}-${version}";
-    url="http://guichaz.free.fr/${baseName}/files/${name}.tar.bz2";
-    hash="1dfvw3khr2rvqllvs9wad9ca3ld4i7szqf0ibq87rn36ickrf3ll";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+buildPythonPackage rec {
+  name = "iotop-0.4.1";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://guichaz.free.fr/iotop/files/${name}.tar.bz2";
+    sha256 = "1dfvw3khr2rvqllvs9wad9ca3ld4i7szqf0ibq87rn36ickrf3ll";
   };
 
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+  pythonPath = [ pythonPackages.curses ];
+
+  doCheck = false;
 
-  phaseNames = ["installPythonPackage" "wrapBinContentsPython"];
-      
   meta = {
     description = "A tool to find out the processes doing the most IO";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = stdenv.lib.platforms.linux;
   };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://guichaz.free.fr/iotop/";
-    };
-  };
-}) x
-
+}
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index ba0f1d4fd0f9..806efdcba6d0 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -7,7 +7,9 @@ stdenv.mkDerivation rec {
     url = "http://devresources.linux-foundation.org/dev/iproute2/download/${name}.tar.bz2";
     sha256 = "18why1wy0v859axgrlfxn80zmskss0410hh9rf5gn9cr29zg9cla";
   };
- 
+
+  patches = [ ./vpnc.patch ];
+
   preConfigure =
     ''
       patchShebangs ./configure
diff --git a/pkgs/os-specific/linux/iproute/vpnc.patch b/pkgs/os-specific/linux/iproute/vpnc.patch
new file mode 100644
index 000000000000..0a65f3e5df5f
--- /dev/null
+++ b/pkgs/os-specific/linux/iproute/vpnc.patch
@@ -0,0 +1,15 @@
+vpnc fails with "RTNETLINK answers: No such device"
+Patch from: https://bugs.gentoo.org/attachment.cgi?id=245736
+In reference to: https://bugs.gentoo.org/show_bug.cgi?id=331447
+
+--- iproute2-2.6.35.old/ip/iproute.c	2010-09-02 16:00:21.805000124 +0200
++++ iproute2-2.6.35/ip/iproute.c	2010-09-02 16:00:40.782000125 +0200
+@@ -160,7 +160,7 @@
+ 	if (r->rtm_family == AF_INET6 && table != RT_TABLE_MAIN)
+ 		ip6_multiple_tables = 1;
+ 
+-	if (filter.cloned == !(r->rtm_flags&RTM_F_CLONED))
++	if (filter.cloned && !(r->rtm_flags&RTM_F_CLONED))
+ 		return 0;
+ 
+ 	if (r->rtm_family == AF_INET6 && !ip6_multiple_tables) {
diff --git a/pkgs/os-specific/linux/iptables/default.nix b/pkgs/os-specific/linux/iptables/default.nix
index 2f447f72ab23..a1dace598fef 100644
--- a/pkgs/os-specific/linux/iptables/default.nix
+++ b/pkgs/os-specific/linux/iptables/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "iptables-1.4.8";
+  name = "iptables-1.4.10";
 
   src = fetchurl {
     url = "http://www.netfilter.org/projects/iptables/files/${name}.tar.bz2";
-    sha256 = "342926b3f9635f89f479660835b0ba518ccd465552e41c29aa83c5af7d506496";
+    md5 = "f382fe693f0b59d87bd47bea65eca198";
   };
 
   # Install header files required by miniupnpd.
diff --git a/pkgs/os-specific/linux/iputils/builder.sh b/pkgs/os-specific/linux/iputils/builder.sh
deleted file mode 100644
index b5219c3fefc7..000000000000
--- a/pkgs/os-specific/linux/iputils/builder.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-source $stdenv/setup
-
-makeFlags="KERNEL_INCLUDE=$kernelHeaders/include LIBC_INCLUDE=$glibc/include"
-
-preConfigure="sed -e 's@check-kernel @@' -i Makefile"
-
-installPhase="
-mkdir -pv $out/bin $out/sbin
-install -c arping $out/sbin/
-install -c ping $out/bin/
-install -c ping6 $out/sbin/
-install -c rdisc $out/sbin/
-install -c tracepath $out/sbin/
-install -c tracepath6 $out/sbin/
-install -c traceroute6 $out/sbin/
-";
-
-genericBuild
diff --git a/pkgs/os-specific/linux/iputils/default.nix b/pkgs/os-specific/linux/iputils/default.nix
index 81433a313b9e..a50aefaec97d 100644
--- a/pkgs/os-specific/linux/iputils/default.nix
+++ b/pkgs/os-specific/linux/iputils/default.nix
@@ -1,15 +1,29 @@
-{stdenv, fetchurl, linuxHeaders, glibc}:
+{ stdenv, fetchurl, libsysfs, openssl }:
 
-assert stdenv.isLinux && stdenv.system != "powerpc-linux";
+assert stdenv ? glibc;
 
 stdenv.mkDerivation {
-  name = "iputils-20020927";
-  builder = ./builder.sh;
+  name = "iputils-20101006";
+  
   src = fetchurl {
-    url = ftp://ftp.nl.debian.org/debian/pool/main/i/iputils/iputils_20020927.orig.tar.gz;
-    md5 = "b5493f7a2997130a4f86c486c9993b86";
+    url = http://www.skbuff.net/iputils/iputils-s20101006.tar.bz2;
+    sha256 = "1rvfvdnmzlmgy9a6xv5v4n785zmn10v2l7yaq83rdfgbh1ng8fpx";
   };
 
-  inherit linuxHeaders glibc;
-  patches = [ ./open-max.patch ];
+  buildInputs = [ libsysfs openssl ];
+
+  # Urgh, it uses Make's `-l' dependency "feature". 
+  makeFlags = "VPATH=${libsysfs}/lib:${stdenv.glibc}/lib:${openssl}/lib";
+
+  installPhase =
+    ''
+      mkdir -p $out/sbin
+      cp -p arping ping ping6 rdisc tracepath tracepath6 traceroute6 $out/sbin/
+    '';
+    
+  meta = {
+    homepage = http://www.skbuff.net/iputils/;
+    description = "A set of small useful utilities for Linux networking";
+    platforms = stdenv.lib.platforms.linux;
+  };
 }
diff --git a/pkgs/os-specific/linux/iputils/open-max.patch b/pkgs/os-specific/linux/iputils/open-max.patch
deleted file mode 100644
index 26bb95bd9d88..000000000000
--- a/pkgs/os-specific/linux/iputils/open-max.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- iputils-s20070202/rdisc.c.open-max	2007-08-07 11:34:03.000000000 +0200
-+++ iputils-s20070202/rdisc.c	2007-08-07 11:41:30.000000000 +0200
-@@ -240,14 +240,25 @@
- {
- 	int t;
- 	pid_t pid;
--	
-+	long open_max;
-+
- 	if (trace)
- 		return;
- 
-+	if ((open_max = sysconf(_SC_OPEN_MAX)) == -1) {
-+		if (errno == 0) {
-+			(void) fprintf(stderr, "OPEN_MAX is not supported\n");
-+		}
-+		else {
-+			(void) fprintf(stderr, "sysconf() error\n");
-+		}
-+		exit(1);
-+	}
-+
- 	if ((pid=fork()) != 0)
- 		exit(0);
- 
--	for (t = 0; t < OPEN_MAX; t++)
-+	for (t = 0; t < open_max; t++)
- 		if (t != s)
- 			close(t);
- 
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
index a85e6f79bf1b..98a06556a194 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
   patchPhase = ''
     patch --verbose -p1 < "${./unifdef-getline.patch}"
     sed -i '/scsi/d' include/Kbuild
+    sed -i 's|/ %/: prepare scripts FORCE|%/: prepare scripts FORCE|' Makefile
   '';
 
   buildPhase = ''
diff --git a/pkgs/os-specific/linux/kernel/aufs2-33.patch b/pkgs/os-specific/linux/kernel/aufs2-33.patch
new file mode 100644
index 000000000000..49a660b0c9e8
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/aufs2-33.patch
@@ -0,0 +1,82 @@
+ufs2 base patch for linux-2.6.33
+
+diff --git a/fs/namei.c b/fs/namei.c
+index a4855af..1d12d37 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1207,7 +1207,7 @@ out:
+  * needs parent already locked. Doesn't follow mounts.
+  * SMP-safe.
+  */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+        int err;
+ 
+@@ -1217,7 +1217,7 @@ static struct dentry *lookup_hash(struct nameidata *nd)
+        return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+ 
+-static int __lookup_one_len(const char *name, struct qstr *this,
++int __lookup_one_len(const char *name, struct qstr *this,
+                struct dentry *base, int len)
+ {
+        unsigned long hash;
+diff --git a/fs/splice.c b/fs/splice.c
+index 3920866..b13a9a2 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1053,8 +1053,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-                          loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++                   loff_t *ppos, size_t len, unsigned int flags)
+ {
+        ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+                                loff_t *, size_t, unsigned int);
+@@ -1081,9 +1081,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-                        struct pipe_inode_info *pipe, size_t len,
+-                        unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++                 struct pipe_inode_info *pipe, size_t len,
++                 unsigned int flags)
+ {
+        ssize_t (*splice_read)(struct file *, loff_t *,
+                               struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index 05b441d..91bc74e 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+                int (*open)(struct inode *, struct file *));
+ 
++extern struct dentry *lookup_hash(struct nameidata *nd);
++extern int __lookup_one_len(const char *name, struct qstr *this,
++                           struct dentry *base, int len);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+ 
+ extern int follow_down(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 18e7c7c..8393b5c 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -82,4 +82,10 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
+ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
+                                      splice_direct_actor *);
+ 
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++                          loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++                        struct pipe_inode_info *pipe, size_t len,
++                        unsigned int flags);
++
+ #endif
+
diff --git a/pkgs/os-specific/linux/kernel/aufs2.1-3.0.patch b/pkgs/os-specific/linux/kernel/aufs2.1-3.0.patch
new file mode 100644
index 000000000000..000c6b995c71
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/aufs2.1-3.0.patch
@@ -0,0 +1,70 @@
+aufs2.1 base patch for linux-3.0
+
+diff --git a/fs/namei.c b/fs/namei.c
+index 14ab8d3..eb4aef1 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1697,7 +1697,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
+  * needs parent already locked. Doesn't follow mounts.
+  * SMP-safe.
+  */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index aa866d3..19afec6 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-			   loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++		    loff_t *ppos, size_t len, unsigned int flags)
+ {
+ 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ 				loff_t *, size_t, unsigned int);
+@@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-			 struct pipe_inode_info *pipe, size_t len,
+-			 unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++		  struct pipe_inode_info *pipe, size_t len,
++		  unsigned int flags)
+ {
+ 	ssize_t (*splice_read)(struct file *, loff_t *,
+ 			       struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index eba45ea..21ed6c9 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -82,6 +82,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ 		int (*open)(struct inode *, struct file *));
+ 
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+ 
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 997c3b4..be9a153 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
+ extern void splice_shrink_spd(struct pipe_inode_info *,
+ 				struct splice_pipe_desc *);
+ 
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++			   loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++			 struct pipe_inode_info *pipe, size_t len,
++			 unsigned int flags);
++
+ #endif
diff --git a/pkgs/os-specific/linux/kernel/aufs2.1-36.patch b/pkgs/os-specific/linux/kernel/aufs2.1-36.patch
new file mode 100644
index 000000000000..9003e67620c6
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/aufs2.1-36.patch
@@ -0,0 +1,81 @@
+aufs2.1 base patch for linux-2.6.36
+
+diff --git a/fs/namei.c b/fs/namei.c
+index 24896e8..19d69c5 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1159,7 +1159,7 @@ out:
+  * needs parent already locked. Doesn't follow mounts.
+  * SMP-safe.
+  */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ 	int err;
+ 
+@@ -1169,7 +1169,7 @@ static struct dentry *lookup_hash(struct nameidata *nd)
+ 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+ 
+-static int __lookup_one_len(const char *name, struct qstr *this,
++int __lookup_one_len(const char *name, struct qstr *this,
+ 		struct dentry *base, int len)
+ {
+ 	unsigned long hash;
+diff --git a/fs/splice.c b/fs/splice.c
+index 8f1dfae..278c94f 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-			   loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++		    loff_t *ppos, size_t len, unsigned int flags)
+ {
+ 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ 				loff_t *, size_t, unsigned int);
+@@ -1120,9 +1120,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-			 struct pipe_inode_info *pipe, size_t len,
+-			 unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++		  struct pipe_inode_info *pipe, size_t len,
++		  unsigned int flags)
+ {
+ 	ssize_t (*splice_read)(struct file *, loff_t *,
+ 			       struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index 05b441d..91bc74e 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ 		int (*open)(struct inode *, struct file *));
+ 
++extern struct dentry *lookup_hash(struct nameidata *nd);
++extern int __lookup_one_len(const char *name, struct qstr *this,
++			    struct dentry *base, int len);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+ 
+ extern int follow_down(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 997c3b4..be9a153 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
+ extern void splice_shrink_spd(struct pipe_inode_info *,
+ 				struct splice_pipe_desc *);
+ 
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++			   loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++			 struct pipe_inode_info *pipe, size_t len,
++			 unsigned int flags);
++
+ #endif
diff --git a/pkgs/os-specific/linux/kernel/aufs2.1-37.patch b/pkgs/os-specific/linux/kernel/aufs2.1-37.patch
new file mode 100644
index 000000000000..4cb58ad8a57a
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/aufs2.1-37.patch
@@ -0,0 +1,368 @@
+aufs2.1 base patch for linux-2.6.37
+
+diff --git a/fs/namei.c b/fs/namei.c
+index 4ff7ca5..a8c583f 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1161,12 +1161,12 @@ out:
+  * needs parent already locked. Doesn't follow mounts.
+  * SMP-safe.
+  */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+ 
+-static int __lookup_one_len(const char *name, struct qstr *this,
++int __lookup_one_len(const char *name, struct qstr *this,
+ 		struct dentry *base, int len)
+ {
+ 	unsigned long hash;
+diff --git a/fs/splice.c b/fs/splice.c
+index ce2f025..ff0ae69 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-			   loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++		    loff_t *ppos, size_t len, unsigned int flags)
+ {
+ 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ 				loff_t *, size_t, unsigned int);
+@@ -1120,9 +1120,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-			 struct pipe_inode_info *pipe, size_t len,
+-			 unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++		  struct pipe_inode_info *pipe, size_t len,
++		  unsigned int flags)
+ {
+ 	ssize_t (*splice_read)(struct file *, loff_t *,
+ 			       struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index 05b441d..91bc74e 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ 		int (*open)(struct inode *, struct file *));
+ 
++extern struct dentry *lookup_hash(struct nameidata *nd);
++extern int __lookup_one_len(const char *name, struct qstr *this,
++			    struct dentry *base, int len);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+ 
+ extern int follow_down(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 997c3b4..be9a153 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
+ extern void splice_shrink_spd(struct pipe_inode_info *,
+ 				struct splice_pipe_desc *);
+ 
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++			   loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++			 struct pipe_inode_info *pipe, size_t len,
++			 unsigned int flags);
++
+ #endif
+aufs2.1 standalone patch for linux-2.6.37
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index c3dee38..f529e4d 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -393,6 +393,8 @@ void file_sb_list_del(struct file *file)
+ 	}
+ }
+ 
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+ 
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index ae2727a..2c8071a 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -82,6 +82,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+  * the i_state of an inode while it is in use..
+  */
+ DEFINE_SPINLOCK(inode_lock);
++EXPORT_SYMBOL(inode_lock);
+ 
+ /*
+  * iprune_sem provides exclusion between the kswapd or try_to_free_pages
+diff --git a/fs/namei.c b/fs/namei.c
+index a8c583f..b020c45 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -347,6 +347,7 @@ int deny_write_access(struct file * file)
+ 
+ 	return 0;
+ }
++EXPORT_SYMBOL(deny_write_access);
+ 
+ /**
+  * path_get - get a reference to a path
+@@ -1165,6 +1166,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+ 
+ int __lookup_one_len(const char *name, struct qstr *this,
+ 		struct dentry *base, int len)
+@@ -1187,6 +1189,7 @@ int __lookup_one_len(const char *name, struct qstr *this,
+ 	this->hash = end_name_hash(hash);
+ 	return 0;
+ }
++EXPORT_SYMBOL(__lookup_one_len);
+ 
+ /**
+  * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 3dbfc07..3998762 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1321,6 +1321,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ 	}
+ 	return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+ 
+ static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index d309f38..f0e9568 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+ 
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ 	if (atomic_dec_and_test(&group->refcnt))
+ 		fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+ 
+ /*
+  * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+ 
+ 	return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index 325185e..adede09 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ 	if (atomic_dec_and_test(&mark->refcnt))
+ 		mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+ 
+ /*
+  * Any time a mark is getting freed we end up here.
+@@ -190,6 +191,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ 	if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ 		fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+ 
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -277,6 +279,7 @@ err:
+ 
+ 	return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+ 
+ /*
+  * clear any marks in a group in which mark->flags & flags is true
+@@ -332,6 +335,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ 	atomic_set(&mark->refcnt, 1);
+ 	mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+ 
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index 4197b9e..912817a 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ 	mutex_unlock(&dentry->d_inode->i_mutex);
+ 	return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+ 
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index ff0ae69..1c9e9b0 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1116,6 +1116,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ 
+ 	return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+ 
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+@@ -1142,6 +1143,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+ 
+ 	return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+ 
+ /**
+  * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 64c2ed9..e58b5d8 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -929,3 +929,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+ 	}
+ 	return ret;
+ }
++EXPORT_SYMBOL(cap_file_mmap);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 8d9c48f..29108aa 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -515,6 +515,7 @@ found:
+ 
+ 	return -EPERM;
+ }
++EXPORT_SYMBOL(devcgroup_inode_permission);
+ 
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index 1b798d3..3b7d2ca 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -360,6 +360,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode)
+ 		return 0;
+ 	return security_ops->path_mkdir(dir, dentry, mode);
+ }
++EXPORT_SYMBOL(security_path_mkdir);
+ 
+ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ {
+@@ -367,6 +368,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ 		return 0;
+ 	return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+ 
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -374,6 +376,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ 		return 0;
+ 	return security_ops->path_unlink(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_unlink);
+ 
+ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ 			  const char *old_name)
+@@ -382,6 +385,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ 		return 0;
+ 	return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+ 
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ 		       struct dentry *new_dentry)
+@@ -390,6 +394,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ 		return 0;
+ 	return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+ 
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ 			 struct path *new_dir, struct dentry *new_dentry)
+@@ -400,6 +405,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ 	return security_ops->path_rename(old_dir, old_dentry, new_dir,
+ 					 new_dentry);
+ }
++EXPORT_SYMBOL(security_path_rename);
+ 
+ int security_path_truncate(struct path *path)
+ {
+@@ -407,6 +413,7 @@ int security_path_truncate(struct path *path)
+ 		return 0;
+ 	return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+ 
+ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ 			mode_t mode)
+@@ -415,6 +422,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ 		return 0;
+ 	return security_ops->path_chmod(dentry, mnt, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+ 
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -422,6 +430,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ 		return 0;
+ 	return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+ 
+ int security_path_chroot(struct path *path)
+ {
+@@ -498,6 +507,7 @@ int security_inode_readlink(struct dentry *dentry)
+ 		return 0;
+ 	return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+ 
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -512,6 +522,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ 		return 0;
+ 	return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+ 
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -611,6 +622,7 @@ int security_file_permission(struct file *file, int mask)
+ 
+ 	return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+ 
+ int security_file_alloc(struct file *file)
+ {
+@@ -638,6 +650,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+ 		return ret;
+ 	return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_file_mmap);
+ 
+ int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
+ 			    unsigned long prot)
+
diff --git a/pkgs/os-specific/linux/kernel/aufs2.1-38.patch b/pkgs/os-specific/linux/kernel/aufs2.1-38.patch
new file mode 100644
index 000000000000..e6d4ccbb1645
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/aufs2.1-38.patch
@@ -0,0 +1,368 @@
+aufs2.1 base patch for linux-2.6.38
+
+diff --git a/fs/namei.c b/fs/namei.c
+index a4689eb..0513563 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1842,12 +1842,12 @@ out:
+  * needs parent already locked. Doesn't follow mounts.
+  * SMP-safe.
+  */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+ 
+-static int __lookup_one_len(const char *name, struct qstr *this,
++int __lookup_one_len(const char *name, struct qstr *this,
+ 		struct dentry *base, int len)
+ {
+ 	unsigned long hash;
+diff --git a/fs/splice.c b/fs/splice.c
+index 50a5d978..886e942 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1081,8 +1081,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-			   loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++		    loff_t *ppos, size_t len, unsigned int flags)
+ {
+ 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ 				loff_t *, size_t, unsigned int);
+@@ -1109,9 +1109,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-			 struct pipe_inode_info *pipe, size_t len,
+-			 unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++		  struct pipe_inode_info *pipe, size_t len,
++		  unsigned int flags)
+ {
+ 	ssize_t (*splice_read)(struct file *, loff_t *,
+ 			       struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index f276d4f..4eb5fcb 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -79,6 +79,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ 		int (*open)(struct inode *, struct file *));
+ 
++extern struct dentry *lookup_hash(struct nameidata *nd);
++extern int __lookup_one_len(const char *name, struct qstr *this,
++			    struct dentry *base, int len);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+ 
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 997c3b4..be9a153 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
+ extern void splice_shrink_spd(struct pipe_inode_info *,
+ 				struct splice_pipe_desc *);
+ 
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++			   loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++			 struct pipe_inode_info *pipe, size_t len,
++			 unsigned int flags);
++
+ #endif
+aufs2.1 standalone patch for linux-2.6.38
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index eb36b6b..12f2809 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -393,6 +393,8 @@ void file_sb_list_del(struct file *file)
+ 	}
+ }
+ 
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+ 
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index 0647d80..294b8ad 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -82,6 +82,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+  * the i_state of an inode while it is in use..
+  */
+ DEFINE_SPINLOCK(inode_lock);
++EXPORT_SYMBOL(inode_lock);
+ 
+ /*
+  * iprune_sem provides exclusion between the kswapd or try_to_free_pages
+diff --git a/fs/namei.c b/fs/namei.c
+index 0513563..e1d996e 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -353,6 +353,7 @@ int deny_write_access(struct file * file)
+ 
+ 	return 0;
+ }
++EXPORT_SYMBOL(deny_write_access);
+ 
+ /**
+  * path_get - get a reference to a path
+@@ -1846,6 +1847,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+ 
+ int __lookup_one_len(const char *name, struct qstr *this,
+ 		struct dentry *base, int len)
+@@ -1868,6 +1870,7 @@ int __lookup_one_len(const char *name, struct qstr *this,
+ 	this->hash = end_name_hash(hash);
+ 	return 0;
+ }
++EXPORT_SYMBOL(__lookup_one_len);
+ 
+ /**
+  * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index d1edf26..44ca259 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1465,6 +1465,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ 	}
+ 	return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+ 
+ static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index d309f38..f0e9568 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+ 
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ 	if (atomic_dec_and_test(&group->refcnt))
+ 		fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+ 
+ /*
+  * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+ 
+ 	return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index 325185e..adede09 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ 	if (atomic_dec_and_test(&mark->refcnt))
+ 		mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+ 
+ /*
+  * Any time a mark is getting freed we end up here.
+@@ -190,6 +191,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ 	if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ 		fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+ 
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -277,6 +279,7 @@ err:
+ 
+ 	return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+ 
+ /*
+  * clear any marks in a group in which mark->flags & flags is true
+@@ -332,6 +335,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ 	atomic_set(&mark->refcnt, 1);
+ 	mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+ 
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index b47aab3..cf7b1ac 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ 	mutex_unlock(&dentry->d_inode->i_mutex);
+ 	return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+ 
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index 886e942..9a77a3e 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1105,6 +1105,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ 
+ 	return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+ 
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+@@ -1131,6 +1132,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+ 
+ 	return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+ 
+ /**
+  * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 64c2ed9..e58b5d8 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -929,3 +929,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+ 	}
+ 	return ret;
+ }
++EXPORT_SYMBOL(cap_file_mmap);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 8d9c48f..29108aa 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -515,6 +515,7 @@ found:
+ 
+ 	return -EPERM;
+ }
++EXPORT_SYMBOL(devcgroup_inode_permission);
+ 
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index 7b7308a..140afc7 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -359,6 +359,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode)
+ 		return 0;
+ 	return security_ops->path_mkdir(dir, dentry, mode);
+ }
++EXPORT_SYMBOL(security_path_mkdir);
+ 
+ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ {
+@@ -366,6 +367,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ 		return 0;
+ 	return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+ 
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -373,6 +375,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ 		return 0;
+ 	return security_ops->path_unlink(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_unlink);
+ 
+ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ 			  const char *old_name)
+@@ -381,6 +384,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ 		return 0;
+ 	return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+ 
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ 		       struct dentry *new_dentry)
+@@ -389,6 +393,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ 		return 0;
+ 	return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+ 
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ 			 struct path *new_dir, struct dentry *new_dentry)
+@@ -399,6 +404,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ 	return security_ops->path_rename(old_dir, old_dentry, new_dir,
+ 					 new_dentry);
+ }
++EXPORT_SYMBOL(security_path_rename);
+ 
+ int security_path_truncate(struct path *path)
+ {
+@@ -406,6 +412,7 @@ int security_path_truncate(struct path *path)
+ 		return 0;
+ 	return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+ 
+ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ 			mode_t mode)
+@@ -414,6 +421,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ 		return 0;
+ 	return security_ops->path_chmod(dentry, mnt, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+ 
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -421,6 +429,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ 		return 0;
+ 	return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+ 
+ int security_path_chroot(struct path *path)
+ {
+@@ -497,6 +506,7 @@ int security_inode_readlink(struct dentry *dentry)
+ 		return 0;
+ 	return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+ 
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -511,6 +521,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ 		return 0;
+ 	return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+ 
+ int security_inode_exec_permission(struct inode *inode, unsigned int flags)
+ {
+@@ -619,6 +630,7 @@ int security_file_permission(struct file *file, int mask)
+ 
+ 	return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+ 
+ int security_file_alloc(struct file *file)
+ {
+@@ -646,6 +658,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+ 		return ret;
+ 	return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_file_mmap);
+ 
+ int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
+ 			    unsigned long prot)
+
diff --git a/pkgs/os-specific/linux/kernel/aufs2.1-39.patch b/pkgs/os-specific/linux/kernel/aufs2.1-39.patch
new file mode 100644
index 000000000000..e98dc85a214f
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/aufs2.1-39.patch
@@ -0,0 +1,70 @@
+aufs2.1 base patch for linux-2.6.39
+
+diff --git a/fs/namei.c b/fs/namei.c
+index e3c4f11..202d358 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1769,7 +1769,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
+  * needs parent already locked. Doesn't follow mounts.
+  * SMP-safe.
+  */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index 50a5d978..886e942 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1081,8 +1081,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-			   loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++		    loff_t *ppos, size_t len, unsigned int flags)
+ {
+ 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ 				loff_t *, size_t, unsigned int);
+@@ -1109,9 +1109,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-			 struct pipe_inode_info *pipe, size_t len,
+-			 unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++		  struct pipe_inode_info *pipe, size_t len,
++		  unsigned int flags)
+ {
+ 	ssize_t (*splice_read)(struct file *, loff_t *,
+ 			       struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index eba45ea..21ed6c9 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -82,6 +82,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ 		int (*open)(struct inode *, struct file *));
+ 
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+ 
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 997c3b4..be9a153 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
+ extern void splice_shrink_spd(struct pipe_inode_info *,
+ 				struct splice_pipe_desc *);
+ 
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++			   loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++			 struct pipe_inode_info *pipe, size_t len,
++			 unsigned int flags);
++
+ #endif
diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh
index bb030abaa6c9..61cb8f280810 100644
--- a/pkgs/os-specific/linux/kernel/builder.sh
+++ b/pkgs/os-specific/linux/kernel/builder.sh
@@ -16,8 +16,8 @@ postPatch() {
 }
 
 configurePhase() {
-    if test -n "$preConfigure"; then 
-        eval "$preConfigure"; 
+    if test -n "$preConfigure"; then
+        eval "$preConfigure";
     fi
 
     export INSTALL_PATH=$out
@@ -46,12 +46,6 @@ configurePhase() {
 }
 
 
-postBuild() {
-    # After the builder did a 'make all' (kernel + modules)
-    # we force building the target asked: bzImage/zImage/uImage/...
-    make $makeFlags $kernelTarget
-}
-
 installPhase() {
 
     ensureDir $out
@@ -148,8 +142,8 @@ installPhase() {
         fi
     fi
 
-    if test -n "$postInstall"; then 
-        eval "$postInstall"; 
+    if test -n "$postInstall"; then
+        eval "$postInstall";
     fi
 }
 
diff --git a/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.15.patch b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.15.patch
new file mode 100644
index 000000000000..4e399af8300d
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.15.patch
@@ -0,0 +1,44 @@
+--- a/fs/cifs/transport.c	2011-04-12 15:16:00.253887813 +0200
++++ b/fs/cifs/transport.c	2011-04-12 15:17:22.650296413 +0200
+@@ -247,9 +247,9 @@
+ 				    n_vec - first_vec, total_len);
+ 		if ((rc == -ENOSPC) || (rc == -EAGAIN)) {
+ 			i++;
+-			if(i >= 14) {
++			if(i >= 119) {
+ 				cERROR(1,
+-				   ("sends on sock %p stuck for 15 seconds",
++				   ("sends on sock %p stuck for 120 seconds",
+ 				    ssocket));
+ 				rc = -EAGAIN;
+ 				break;
+@@ -421,12 +421,12 @@
+ 	else if (long_op == 2) /* writes past end of file can take loong time */
+ 		timeout = 180 * HZ;
+ 	else if (long_op == 1)
+-		timeout = 45 * HZ; /* should be greater than 
++		timeout = 120 * HZ; /* should be greater than 
+ 			servers oplock break timeout (about 43 seconds) */
+ 	else if (long_op > 2) {
+ 		timeout = MAX_SCHEDULE_TIMEOUT;
+ 	} else
+-		timeout = 15 * HZ;
++		timeout = 120 * HZ;
+ 	/* wait for 15 seconds or until woken up due to response arriving or 
+ 	   due to last connection to this server being unmounted */
+ 	if (signal_pending(current)) {
+@@ -687,12 +687,12 @@
+ 	else if (long_op == 2) /* writes past end of file can take loong time */
+ 		timeout = 180 * HZ;
+ 	else if (long_op == 1)
+-		timeout = 45 * HZ; /* should be greater than 
++		timeout = 120 * HZ; /* should be greater than 
+ 			servers oplock break timeout (about 43 seconds) */
+ 	else if (long_op > 2) {
+ 		timeout = MAX_SCHEDULE_TIMEOUT;
+ 	} else
+-		timeout = 15 * HZ;
++		timeout = 120 * HZ;
+ 	/* wait for 15 seconds or until woken up due to response arriving or 
+ 	   due to last connection to this server being unmounted */
+ 	if (signal_pending(current)) {
diff --git a/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.25.patch b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.25.patch
new file mode 100644
index 000000000000..1c9544ae1dfd
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.25.patch
@@ -0,0 +1,46 @@
+--- /tmp/linux-2.6.32.14/fs/cifs/transport.c	2011-04-07 10:50:40.844188400 +0200
++++ linux-2.6.32.14/fs/cifs/transport.c	2011-04-07 10:52:22.092690465 +0200
+@@ -277,9 +277,9 @@
+ 				    n_vec - first_vec, total_len);
+ 		if ((rc == -ENOSPC) || (rc == -EAGAIN)) {
+ 			i++;
+-			if (i >= 14) {
++			if (i >= 119) {
+ 				cERROR(1,
+-				   ("sends on sock %p stuck for 15 seconds",
++				   ("sends on sock %p stuck for 120 seconds",
+ 				    ssocket));
+ 				rc = -EAGAIN;
+ 				break;
+@@ -553,11 +553,11 @@
+ 		goto out;
+
+ 	if (long_op == CIFS_STD_OP)
+-		timeout = 15 * HZ;
++		timeout = 120 * HZ;
+ 	else if (long_op == CIFS_VLONG_OP) /* e.g. slow writes past EOF */
+ 		timeout = 180 * HZ;
+ 	else if (long_op == CIFS_LONG_OP)
+-		timeout = 45 * HZ; /* should be greater than
++		timeout = 120 * HZ; /* should be greater than
+ 			servers oplock break timeout (about 43 seconds) */
+ 	else if (long_op == CIFS_ASYNC_OP)
+ 		goto out;
+@@ -744,7 +744,7 @@
+ 		goto out;
+
+ 	if (long_op == CIFS_STD_OP)
+-		timeout = 15 * HZ;
++		timeout = 120 * HZ;
+ 	/* wait for 15 seconds or until woken up due to response arriving or
+ 	   due to last connection to this server being unmounted */
+ 	else if (long_op == CIFS_ASYNC_OP)
+@@ -752,7 +752,7 @@
+ 	else if (long_op == CIFS_VLONG_OP) /* writes past EOF can be slow */
+ 		timeout = 180 * HZ;
+ 	else if (long_op == CIFS_LONG_OP)
+-		timeout = 45 * HZ; /* should be greater than
++		timeout = 120 * HZ; /* should be greater than
+ 			servers oplock break timeout (about 43 seconds) */
+ 	else if (long_op == CIFS_BLOCKING_OP)
+ 		timeout = 0x7FFFFFFF; /* large but no so large as to wrap */
diff --git a/pkgs/os-specific/linux/kernel/cifs-timeout.patch b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.29.patch
index b2dac3f016c4..b2dac3f016c4 100644
--- a/pkgs/os-specific/linux/kernel/cifs-timeout.patch
+++ b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.29.patch
diff --git a/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.35.patch b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.35.patch
new file mode 100644
index 000000000000..8043739ee9a8
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.35.patch
@@ -0,0 +1,45 @@
+--- /tmp/linux-2.6.32.14/fs/cifs/transport.c	2010-11-22 20:01:26.000000000 +0100
++++ linux-2.6.32.14/fs/cifs/transport.c	2011-03-29 15:31:14.926510480 +0200
+@@ -166,8 +166,8 @@
+ 			   after the retries we will kill the socket and
+ 			   reconnect which may clear the network problem.
+ 			*/
+-			if ((i >= 14) || (!server->noblocksnd && (i > 2))) {
+-				cERROR(1, "sends on sock %p stuck for 15 seconds",
++			if ((i >= 119) || (!server->noblocksnd && (i > 2))) {
++				cERROR(1, "sends on sock %p stuck for 119 seconds",
+ 				    ssocket);
+ 				rc = -EAGAIN;
+ 				break;
+@@ -458,11 +458,11 @@
+ 		goto out;
+ 
+ 	if (long_op == CIFS_STD_OP)
+-		timeout = 15 * HZ;
++		timeout = 120 * HZ;
+ 	else if (long_op == CIFS_VLONG_OP) /* e.g. slow writes past EOF */
+ 		timeout = 180 * HZ;
+ 	else if (long_op == CIFS_LONG_OP)
+-		timeout = 45 * HZ; /* should be greater than
++		timeout = 120 * HZ; /* should be greater than
+ 			servers oplock break timeout (about 43 seconds) */
+ 	else if (long_op == CIFS_ASYNC_OP)
+ 		goto out;
+@@ -650,7 +650,7 @@
+ 		goto out;
+ 
+ 	if (long_op == CIFS_STD_OP)
+-		timeout = 15 * HZ;
++		timeout = 120 * HZ;
+ 	/* wait for 15 seconds or until woken up due to response arriving or
+ 	   due to last connection to this server being unmounted */
+ 	else if (long_op == CIFS_ASYNC_OP)
+@@ -658,7 +658,7 @@
+ 	else if (long_op == CIFS_VLONG_OP) /* writes past EOF can be slow */
+ 		timeout = 180 * HZ;
+ 	else if (long_op == CIFS_LONG_OP)
+-		timeout = 45 * HZ; /* should be greater than
++		timeout = 120 * HZ; /* should be greater than
+ 			servers oplock break timeout (about 43 seconds) */
+ 	else if (long_op == CIFS_BLOCKING_OP)
+ 		timeout = 0x7FFFFFFF; /* large but no so large as to wrap */
diff --git a/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.38.patch b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.38.patch
new file mode 100644
index 000000000000..8168ffb5a1af
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/cifs-timeout-2.6.38.patch
@@ -0,0 +1,13 @@
+--- /tmp/linux-2.6.32.14/fs/cifs/transport.c	2011-03-27 20:37:20.000000000 +0200
++++ linux-2.6.32.14/fs/cifs/transport.c	2011-04-01 11:07:17.700305670 +0200
+@@ -182,8 +182,8 @@
+ 			   after the retries we will kill the socket and
+ 			   reconnect which may clear the network problem.
+ 			*/
+-			if ((i >= 14) || (!server->noblocksnd && (i > 2))) {
+-				cERROR(1, "sends on sock %p stuck for 15 seconds",
++			if ((i >= 119) || (!server->noblocksnd && (i > 2))) {
++				cERROR(1, "sends on sock %p stuck for 119 seconds",
+ 				    ssocket);
+ 				rc = -EAGAIN;
+ 				break;
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 42cefd5b584f..a86aef1af8e3 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -6,6 +6,9 @@
 , # The kernel version.
   version
 
+, # The version number used for the module directory
+  modDirVersion ? version
+
 , # The kernel configuration.
   config
 
@@ -35,6 +38,11 @@
 , extraMeta ? {}
 , ubootChooser ? null
 , postInstall ? ""
+, setModuleDir ? true
+
+, # After the builder did a 'make all' (kernel + modules)
+  # we force building the target asked: bzImage/zImage/uImage/...
+  postBuild ? "make $makeFlags $kernelTarget; make $makeFlags -C scripts unifdef"
 , ...
 }:
 
@@ -61,17 +69,26 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   passthru = {
-    inherit version;
+    inherit version modDirVersion;
     # Combine the `features' attribute sets of all the kernel patches.
     features = lib.fold (x: y: (if x ? features then x.features else {}) // y) features kernelPatches;
   };
-  
+
   builder = ./builder.sh;
 
   generateConfig = ./generate-config.pl;
 
   inherit preConfigure src module_init_tools localVersion postInstall;
 
+  #Currently, the builder sets $MODULE_DIR during installPhase. This causes
+  #problems with at least linux 3.0, so we need to conditionally avoid
+  #setting $MODULE_DIR. This prepend to postBuild accomplishes this with a
+  #sed/eval trick thanks to MarcWeber
+
+  postBuild = (if setModuleDir then "" else '' 
+    eval "$(type installPhase | sed -e '1d' -e '/export MODULE_DIR/d')";
+  '') + postBuild;
+
   patches = map (p: p.patch) kernelPatches;
 
   kernelConfig = kernelConfigFun config;
@@ -87,7 +104,7 @@ stdenv.mkDerivation {
   kernelBaseConfig = stdenv.platform.kernelBaseConfig;
   kernelTarget = stdenv.platform.kernelTarget;
   autoModules = stdenv.platform.kernelAutoModules;
-  
+
   # Should we trust platform.kernelArch? We can only do
   # that once we differentiate i686/x86_64 in platforms.
   arch =
@@ -133,5 +150,7 @@ stdenv.mkDerivation {
     license = "GPLv2";
     homepage = http://www.kernel.org/;
     maintainers = [ lib.maintainers.eelco ];
+    platforms = lib.platforms.linux;
   } // extraMeta;
 }
+
diff --git a/pkgs/os-specific/linux/kernel/getline.patch b/pkgs/os-specific/linux/kernel/getline.patch
new file mode 100644
index 000000000000..6ac768b9d865
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/getline.patch
@@ -0,0 +1,34 @@
+Allow compilation with recent versions of Glibc.
+From https://patchwork.kernel.org/patch/11166/.
+
+diff --git a/scripts/unifdef.c b/scripts/unifdef.c
+index 552025e..977e682 100644
+--- a/scripts/unifdef.c
++++ b/scripts/unifdef.c
+@@ -206,7 +206,7 @@  static void             done(void);
+ static void             error(const char *);
+ static int              findsym(const char *);
+ static void             flushline(bool);
+-static Linetype         getline(void);
++static Linetype         parseline(void);
+ static Linetype         ifeval(const char **);
+ static void             ignoreoff(void);
+ static void             ignoreon(void);
+@@ -512,7 +512,7 @@  process(void)
+ 
+ 	for (;;) {
+ 		linenum++;
+-		lineval = getline();
++		lineval = parseline();
+ 		trans_table[ifstate[depth]][lineval]();
+ 		debug("process %s -> %s depth %d",
+ 		    linetype_name[lineval],
+@@ -526,7 +526,7 @@  process(void)
+  * help from skipcomment().
+  */
+ static Linetype
+-getline(void)
++parseline(void)
+ {
+ 	const char *cp;
+ 	int cursym;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.15.nix b/pkgs/os-specific/linux/kernel/linux-2.6.15.nix
new file mode 100644
index 000000000000..2dd67f46167c
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.15.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, extraConfig ? "", ... } @ args:
+
+let
+  configWithPlatform = kernelPlatform:
+  ''
+    # Don't include any debug features.
+    DEBUG_KERNEL n
+
+    # Support drivers that need external firmware.
+    STANDALONE n
+
+    # Make /proc/config.gz available.
+    IKCONFIG_PROC y
+
+    # Optimize with -O2, not -Os.
+    CC_OPTIMIZE_FOR_SIZE n
+
+    # Enable various subsystems.
+    MTD_COMPLEX_MAPPINGS y # needed for many devices
+
+    # Networking options.
+    IP_PNP n
+    IPV6_PRIVACY y
+
+    # Filesystem options - in particular, enable extended attributes and
+    # ACLs for all filesystems that support them.
+    CIFS_XATTR y
+    CIFS_POSIX y
+
+    ${extraConfig}
+  '';
+in
+
+import ./generic.nix (rec {
+  version = "2.6.15.7";
+  postBuild = "make $makeFlags $kernelTarget";
+
+  src = fetchurl {
+    url = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${version}.tar.bz2";
+      sha256 = "43e0c251924324749b06464512532c3002d6294520faabdba5b3aea4e840b48b";
+  };
+
+  config = configWithPlatform stdenv.platform;
+  configCross = configWithPlatform stdenv.cross.platform;
+}
+
+// removeAttrs args ["extraConfig"]
+)
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.26.nix b/pkgs/os-specific/linux/kernel/linux-2.6.26.nix
new file mode 100644
index 000000000000..b402cdea7426
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.26.nix
@@ -0,0 +1,177 @@
+{ stdenv, fetchurl, extraConfig ? "", ... } @ args:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+        # Don't include any debug features.
+        DEBUG_KERNEL n
+
+	# Activate /proc/sys/kernel/modprobe
+	KMOD y
+
+        # Support drivers that need external firmware.
+        STANDALONE n
+
+        # Make /proc/config.gz available.
+        IKCONFIG_PROC y
+
+        # Optimize with -O2, not -Os.
+        CC_OPTIMIZE_FOR_SIZE n
+
+        # Virtualisation (KVM, Xen...).
+        PARAVIRT_GUEST y
+        KVM_CLOCK y
+        KVM_GUEST y
+
+        # Include the CFQ I/O scheduler in the kernel, rather than as a
+        # module, so that the initrd gets a good I/O scheduler.
+        IOSCHED_CFQ y
+
+        # Disable some expensive (?) features.
+        MARKERS n
+        KPROBES n
+        NUMA? n
+
+        # Enable various subsystems.
+        ACCESSIBILITY y # Accessibility support
+        AUXDISPLAY y # Auxiliary Display support
+        DONGLE y # Serial dongle support
+        HIPPI y
+        MTD_COMPLEX_MAPPINGS y # needed for many devices
+        NET_POCKET y # enable pocket and portable adapters
+        SCSI_LOWLEVEL y # enable lots of SCSI devices
+        SCSI_LOWLEVEL_PCMCIA y
+        SPI y # needed for many devices
+        SPI_MASTER y
+        WAN y
+
+        # Networking options.
+        IP_PNP n
+        IPV6_PRIVACY y
+
+        # Some settings to make sure that fbcondecor works - in particular,
+        # disable tileblitting and the drivers that need it.
+
+        # Enable various FB devices.
+        FB_EFI y
+        FB_NVIDIA_I2C y # Enable DDC Support
+        FB_RIVA_I2C y
+        FB_ATY_CT y # ach64 CT/VT/GT/LT (incl. 3D RAGE) support
+        FB_ATY_GX y # Mach64 GX support
+        FB_SAVAGE_I2C y
+        FB_SAVAGE_ACCEL y
+        FB_SIS_300 y
+        FB_SIS_315 y
+        FB_3DFX_ACCEL y
+        FB_TRIDENT_ACCEL y
+        FB_GEODE y
+
+        # Sound.
+        SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+        SND_USB_CAIAQ_INPUT y
+        PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+        # Enable a bunch of USB storage devices.
+        USB_STORAGE_DATAFAB y
+        USB_STORAGE_FREECOM y
+        USB_STORAGE_ISD200 y
+        USB_STORAGE_USBAT y
+        USB_STORAGE_SDDR09 y
+        USB_STORAGE_SDDR55 y
+        USB_STORAGE_JUMPSHOT y
+        USB_STORAGE_ONETOUCH y
+        USB_STORAGE_KARMA y
+        USB_STORAGE_CYPRESS_ATACB y
+
+        # USB serial devices.
+        USB_SERIAL_GENERIC y # USB Generic Serial Driver
+        USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+        USB_SERIAL_KEYSPAN_USA28 y
+        USB_SERIAL_KEYSPAN_USA28X y
+        USB_SERIAL_KEYSPAN_USA28XA y
+        USB_SERIAL_KEYSPAN_USA28XB y
+        USB_SERIAL_KEYSPAN_USA19 y
+        USB_SERIAL_KEYSPAN_USA18X y
+        USB_SERIAL_KEYSPAN_USA19W y
+        USB_SERIAL_KEYSPAN_USA19QW y
+        USB_SERIAL_KEYSPAN_USA19QI y
+        USB_SERIAL_KEYSPAN_USA49W y
+        USB_SERIAL_KEYSPAN_USA49WLC y
+
+        # Filesystem options - in particular, enable extended attributes and
+        # ACLs for all filesystems that support them.
+        EXT2_FS_XATTR y # Ext2 extended attributes
+        EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+        EXT2_FS_SECURITY y # Ext2 Security Labels
+        EXT2_FS_XIP y # Ext2 execute in place support
+        REISERFS_FS_XATTR y
+        REISERFS_FS_POSIX_ACL y
+        REISERFS_FS_SECURITY y
+        JFS_POSIX_ACL y
+        JFS_SECURITY y
+        XFS_QUOTA y
+        XFS_POSIX_ACL y
+        XFS_RT y # XFS Realtime subvolume support
+        OCFS2_DEBUG_MASKLOG n
+        NFSD_V2_ACL y
+        NFSD_V3 y
+        NFSD_V3_ACL y
+        NFSD_V4 y
+        CIFS_XATTR y
+        CIFS_POSIX y
+
+        # Misc. options.
+        8139TOO_8129 y
+        8139TOO_PIO n # PIO is slower
+        AIC79XX_DEBUG_ENABLE n
+        AIC7XXX_DEBUG_ENABLE n
+        AIC94XX_DEBUG n
+        BLK_DEV_BSG n
+        BLK_DEV_IDEACPI y # IDE ACPI support
+        BLK_DEV_IO_TRACE n
+        BT_HCIUART_BCSP y
+        BT_HCIUART_H4 y # UART (H4) protocol support
+        BT_HCIUART_LL y
+        BT_RFCOMM_TTY y # RFCOMM TTY support
+        CPU_FREQ_DEBUG n
+        CRASH_DUMP n
+        DMAR? n # experimental
+        FUSION y # Fusion MPT device support
+        IRDA_ULTRA y # Ultra (connectionless) protocol
+        KALLSYMS_EXTRA_PASS n
+        LOGO n # not needed
+        MEDIA_ATTACH y
+        MEGARAID_NEWGEN y
+        MODVERSIONS y
+        NET_FC y # Fibre Channel driver support
+        PCI_LEGACY y
+        PPP_MULTILINK y # PPP multilink support
+        SCSI_LOGGING y # SCSI logging facility
+        SERIAL_8250 y # 8250/16550 and compatible serial support
+        SLIP_COMPRESSED y # CSLIP compressed headers
+        SLIP_SMART y
+        THERMAL_HWMON y # Hardware monitoring support
+        USB_DEBUG n
+        USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+        X86_MCE y
+
+      ${extraConfig}
+   '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "2.6.26.8";
+
+    src = fetchurl {
+      url = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${version}.tar.bz2";
+      sha256 = "4f2991378a09bd4ba916236cba200052c18e52e44c9d7e4100337f7df2788dc9";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
index 4404edcd77c8..083948fd345b 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
@@ -3,11 +3,11 @@ args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "", ... }:
 import ./generic.nix (
 
   rec {
-    version = "2.6.27.53";
+    version = "2.6.27.59";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "05acrmlrsz9cd60002kwvwwsk2wvg0pf11j4s1wx8n9jsil3xxic";
+      url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.27/linux-${version}.tar.bz2";
+      sha256 = "0gvp9djj3s8h1375xdjv6ycd0mgmcbvfmswxkpwxdlplly5hr1kf";
     };
 
     features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.28.nix b/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
index 37fdffb840ef..d8e051a529c6 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
@@ -30,7 +30,7 @@ import ./generic.nix (
         PARAVIRT_GUEST y
         KVM_CLOCK y
         KVM_GUEST y
-        XEN y
+        XEN n
 
         # We need 64 GB (PAE) support for Xen guest support.
         HIGHMEM64G? y
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.29.nix b/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
index e91d956ce745..99354c23045d 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
@@ -30,7 +30,7 @@ import ./generic.nix (
         PARAVIRT_GUEST y
         KVM_CLOCK y
         KVM_GUEST y
-        XEN y
+        XEN n
 
         # We need 64 GB (PAE) support for Xen guest support.
         HIGHMEM64G? y
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.31.nix b/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
index d248e8f86083..523f3c9ceb5c 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
@@ -1,63 +1,214 @@
-args @ {stdenv, fetchurl, userModeLinux ? false, oldI686 ? false, ...}:
+{ stdenv, fetchurl, extraConfig ? "", ... } @ args:
 
-assert !userModeLinux;
+let
+  configWithPlatform = kernelPlatform:
+    ''
+      # Don't include any debug features.
+      DEBUG_KERNEL n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Include the CFQ I/O scheduler in the kernel, rather than as a
+      # module, so that the initrd gets a good I/O scheduler.
+      IOSCHED_CFQ y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      NUMA? n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      NET_POCKET y # enable pocket and portable adapters
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      IWLWIFI_LEDS? y
+      IWLWIFI_SPECTRUM_MEASUREMENT y
+      IWL3945_SPECTRUM_MEASUREMENT y
+      IWL4965 y # Intel Wireless WiFi 4965AGN
+      IWL5000 y # Intel Wireless WiFi 5000AGN
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # The intel drivers already require KMS
+      DRM_I915_KMS y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      OCFS2_FS_POSIX_ACL y
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_BSG n
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CPU_FREQ_DEBUG n
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      KALLSYMS_EXTRA_PASS n
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PCI_LEGACY y
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      ${extraConfig}
+    '';
+in
 
 import ./generic.nix (
 
   rec {
     version = "2.6.31.14";
-  
+
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
       sha256 = "1c6ivcjgns4gbx04mhnhndqikm3prqhhfm2a5zrb1mfyvvishqpp";
     };
 
-    features = {
-      iwlwifi = true;
-    };
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
 
-    preConfigure = if (stdenv.system != "armv5tel-linux") then ''
-        killOption () {
-          sed -re 's/^('"$1"')=[ym]/# \1 is not set/' -i .config
-        }
-        setOptionMod () {
-          sed -re 's/^# ('"$1"') is not set/\1=m/' -i .config
-          sed -re "1i$1=m" -i .config
-        }
-        setOptionYes () {
-          sed -re 's/^# ('"$1"') is not set/\1=y/' -i .config
-          sed -re "1i$1=y" -i .config
-        }
-        
-        make allmodconfig
-        
-	killOption CONFIG_CMDLINE_OVERRIDE
-
-        killOption CONFIG_IMA
-        killOption 'CONFIG_.*_DEBUG.*'
-        killOption 'CONFIG_DEBUG.*'
-        killOption CONFIG_AUDIT_ARCH
-        killOption CONFIG_PERF_COUNTERS
-        killOption 'CONFIG_GCOV.*'
-        killOption 'CONFIG_KGDB.*'
-        killOption 'CONFIG_.*_TEST'
-
-        killOption 'CONFIG_USB_OTG_BLACKLIST_HUB'
-
-        killOption CONFIG_KERNEL_BZIP2
-        killOption CONFIG_KERNEL_LZMA
-        setOptionYes CONFIG_KERNEL_GZIP
-        
-        killOption CONFIG_TASKSTATS
-        killOption CONFIG_PREEMPT_NONE
-        setOptionYes CONFIG_PREEMPT_VOLUNTARY
-        
-        cp .config ${config}
-    '' else "";
-
-    config = if (stdenv.system == "armv5tel-linux") then 
-      (./config-2.6.31-armv5tel) else "./kernel-config";
+    features.iwlwifi = true;
   }
 
-  // args
+  // removeAttrs args ["extraConfig"]
 )
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
index 1cef6d035f4b..1c2e1fb5e30c 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
@@ -198,11 +198,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.32.27";
+    version = "2.6.32.45";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "08zj1mysfhqz81vmly2cassbf6r5nzi9y6sps27c8sz9xfwzly5c";
+      url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.32/linux-${version}.tar.bz2";
+      sha256 = "1lyp0zl8hk2nz93n803iwfkg5g2dcd18hg0ifszg2rik8svvbbrs";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.33.nix b/pkgs/os-specific/linux/kernel/linux-2.6.33.nix
index cab697dc1d78..e473faa16a80 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.33.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.33.nix
@@ -197,11 +197,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.33.7";
+    version = "2.6.33.17";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "006shp6fkyzah02a33g1ch1x1svdlkl3kfp2b191c2vrrn6hgyim";
+      url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.33/linux-${version}.tar.bz2";
+      sha256 = "06z6r2jip781bxvrfc12gkckzig9s65pnhb3cg2c7c637phc6ky0";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.34.nix b/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
index a05548723962..d36a76864833 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
@@ -194,11 +194,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.34.7";
+    version = "2.6.34.10";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "0jyw7pl46iffv81qgrjf1cn492mks994klly8fvadc13c6jsb77h";
+      url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.34/linux-${version}.tar.bz2";
+      sha256 = "1sm3n5wxz1amql0ini5mspiaa4kvw9macsp5qyq1dhhfv06i2j31";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.35.nix b/pkgs/os-specific/linux/kernel/linux-2.6.35.nix
index edc86c518908..d94c5f382a57 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.35.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.35.nix
@@ -190,11 +190,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.35.7";
+    version = "2.6.35.14";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "f19c830e52d97fe35e9e32e1911de238e75b1cd29ca779de0d83f0906073ee2c";
+      url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.35/linux-${version}.tar.bz2";
+      sha256 = "1wzml7s9karfbk2yi36g1r8fyaq4d4f16yizc68zgchv0xzj39zl";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.36.nix b/pkgs/os-specific/linux/kernel/linux-2.6.36.nix
index 84d5e1a29329..4fa11413cabe 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.36.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.36.nix
@@ -192,11 +192,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.36.2";
+    version = "2.6.36.4";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "06wshmpgwfswdfqx5cc5nsqaa8vjyg3wab2zpzmvmc1gw564b8ll";
+      sha256 = "16pqjz3dgvaghfi0jqp2d0nqyz5fgbbxzs914vxslh2xxdxql0cg";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.37.nix b/pkgs/os-specific/linux/kernel/linux-2.6.37.nix
new file mode 100644
index 000000000000..3da1e27eb249
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.37.nix
@@ -0,0 +1,208 @@
+args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # Don't include any debug features.
+      DEBUG_KERNEL n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      NUMA? n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      NET_POCKET y # enable pocket and portable adapters
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      IWL4965 y # Intel Wireless WiFi 4965AGN
+      IWL5000 y # Intel Wireless WiFi 5000AGN
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # The intel drivers already require KMS
+      DRM_I915_KMS y
+      # Hybrid graphics support
+      VGA_SWITCHEROO y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CPU_FREQ_DEBUG n
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      KALLSYMS_EXTRA_PASS n
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "2.6.37.6";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
+      sha256 = "07khv9z27l5ny37c7malgkg4q65r1g83i4m9rb74p17y15rsv8ad";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    features.iwlwifi = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.38.nix b/pkgs/os-specific/linux/kernel/linux-2.6.38.nix
new file mode 100644
index 000000000000..c9f2fc906848
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.38.nix
@@ -0,0 +1,208 @@
+args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # Don't include any debug features.
+      DEBUG_KERNEL n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      NUMA? n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      NET_POCKET y # enable pocket and portable adapters
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      IWL4965 y # Intel Wireless WiFi 4965AGN
+      IWL5000 y # Intel Wireless WiFi 5000AGN
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # The intel drivers already require KMS
+      DRM_I915_KMS y
+      # Hybrid graphics support
+      VGA_SWITCHEROO y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CPU_FREQ_DEBUG n
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      KALLSYMS_EXTRA_PASS n
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "2.6.38.8";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
+      sha256 = "16zrwb2wjsg02l4sbbm7aipq9f9v267ys4n6hmaixa6v5rrf7gbi";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    features.iwlwifi = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.39.nix b/pkgs/os-specific/linux/kernel/linux-2.6.39.nix
new file mode 100644
index 000000000000..44a82e0836d1
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.39.nix
@@ -0,0 +1,209 @@
+args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+, perl, mktemp, module_init_tools
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # Don't include any debug features.
+      DEBUG_KERNEL n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      NUMA? n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      NET_POCKET y # enable pocket and portable adapters
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # The intel drivers already require KMS
+      DRM_I915_KMS y
+      # Hybrid graphics support
+      VGA_SWITCHEROO y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_L2CAP y
+      BT_RFCOMM m
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CPU_FREQ_DEBUG n
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      KALLSYMS_EXTRA_PASS n
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "2.6.39.4";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
+      sha256 = "10qijh322zbcnsjq21rj228fwksx1ij23gal8zw67gxlvgp48vnj";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    features.iwlwifi = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix
new file mode 100644
index 000000000000..94e43a01134c
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix
@@ -0,0 +1,218 @@
+args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+, perl, mktemp, module_init_tools
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # Don't include any debug features.
+      DEBUG_KERNEL n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      NUMA? n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      NET_POCKET y # enable pocket and portable adapters
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+      ATH9K_PCI y # Detect Atheros AR9xxx cards on PCI(e) bus
+      ATH9K_AHB y # Ditto, AHB bus
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # The intel drivers already require KMS
+      DRM_I915_KMS y
+      # Hybrid graphics support
+      VGA_SWITCHEROO y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_L2CAP y
+      BT_RFCOMM m
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      # Linux Containers
+      RT_GROUP_SCHED? y
+      CGROUP_DEVICE? y
+      CGROUP_MEM_RES_CTLR? y
+      CGROUP_MEM_RES_CTLR_SWAP? y
+      DEVPTS_MULTIPLE_INSTANCES? y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "3.0.3";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2";
+      sha256 = "1237i7a4r7a7p24ylx7wv8k34ni17lxg849xjyv54px84kbkb85n";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    setModuleDir = false;
+
+    features.iwlwifi = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/linux-3.1.nix b/pkgs/os-specific/linux/kernel/linux-3.1.nix
new file mode 100644
index 000000000000..a2b1fcfb86fe
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-3.1.nix
@@ -0,0 +1,220 @@
+args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+, perl, mktemp, module_init_tools
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # Don't include any debug features.
+      DEBUG_KERNEL n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      NUMA? n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      NET_POCKET y # enable pocket and portable adapters
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+      ATH9K_PCI y # Detect Atheros AR9xxx cards on PCI(e) bus
+      ATH9K_AHB y # Ditto, AHB bus
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # The intel drivers already require KMS
+      DRM_I915_KMS y
+      # Hybrid graphics support
+      VGA_SWITCHEROO y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_L2CAP y
+      BT_RFCOMM m
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      # Linux Containers
+      RT_GROUP_SCHED? y
+      CGROUP_DEVICE? y
+      CGROUP_MEM_RES_CTLR? y
+      CGROUP_MEM_RES_CTLR_SWAP? y
+      DEVPTS_MULTIPLE_INSTANCES? y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "3.1-rc3";
+
+    modDirVersion = "3.1.0-rc3";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v3.x/testing/linux-${version}.tar.bz2";
+      sha256 = "0ky6pawracgc27m0d4mq71f87yiwbp90k5aqn8qh5bdfq3ml84i6";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    setModuleDir = false;
+
+    features.iwlwifi = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.36.nix b/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.36.nix
index ed5eabf025b3..14fbe5afe9e3 100644
--- a/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.36.nix
+++ b/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.36.nix
@@ -194,11 +194,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "qi_lb60-2.6.35-openwrt-24283";
+    version = "qi_lb60-2.6.36.3-openwrt-24283";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.36.tar.bz2";
-      sha256 = "15a076d1a435a6bf8e92834eba4b390b4ec094ce06d47f89d071ca9e5788ce04";
+      url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.36.3.tar.bz2";
+      sha256 = "1kxj4m9f5iplbll1c5inszg5yxywakz533nl5p4ia84mq2ch03dc";
     };
 
     srcPatch = fetchsvn {
@@ -210,7 +210,7 @@ import ./generic.nix (
     preConfigure = ''
       cp -R ${srcPatch}/generic/files/* .
       chmod +w -R *
-      GLOBIGNORE='.:..:*preinit_as_init*'
+      GLOBIGNORE='.:..:*preinit_as_init*:*gpio-for-the-6th-row-of-the-keyboard*'
       for a in ${srcPatch}/generic/patches-2.6.36/* ${srcPatch}/xburst/patches-2.6.36/* ; do
         echo applying patch $a
         patch -p1 < $a
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 3ad48033f7a2..2b0d76d76edb 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -1,4 +1,4 @@
-{ fetchurl }:
+{ stdenv, fetchurl }:
 
 let
 
@@ -20,9 +20,25 @@ let
       FRAMEBUFFER_CONSOLE y
     '';
 
+  makeTuxonicePatch = { version, kernelVersion, sha256,
+    url ? "http://tuxonice.net/files/tuxonice-${version}-for-${kernelVersion}.patch.bz2" }:
+    { name = "tuxonice-${kernelVersion}";
+      patch = stdenv.mkDerivation {
+        name = "tuxonice-${version}-for-${kernelVersion}.patch";
+        src = fetchurl {
+          inherit url sha256;
+        };
+        phases = [ "installPhase" ];
+        installPhase = ''
+          source $stdenv/setup
+          bunzip2 -c $src > $out
+        '';
+      };
+    };
+
 in
 
-{
+rec {
 
   sec_perm_2_6_24 =
     { name = "sec_perm-2.6.24";
@@ -39,7 +55,7 @@ in
       extraConfig = fbcondecorConfig;
       features.fbConDecor = true;
     };
-      
+
   fbcondecor_2_6_27 =
     { name = "fbcondecor-0.9.4-2.6.27";
       patch = fetchurl {
@@ -59,7 +75,7 @@ in
       extraConfig = fbcondecorConfig;
       features.fbConDecor = true;
     };
-    
+
   fbcondecor_2_6_29 =
     { name = "fbcondecor-0.9.6-2.6.29.2";
       patch = fetchurl {
@@ -69,7 +85,7 @@ in
       extraConfig = fbcondecorConfig;
       features.fbConDecor = true;
     };
-    
+
   fbcondecor_2_6_31 =
     { name = "fbcondecor-0.9.6-2.6.31.2";
       patch = fetchurl {
@@ -101,6 +117,28 @@ in
       features.fbConDecor = true;
     };
 
+  fbcondecor_2_6_37 =
+    rec {
+      name = "fbcondecor-0.9.6-2.6.37";
+      patch = fetchurl {
+        url = "http://dev.gentoo.org/~spock/projects/fbcondecor/archive/${name}.patch";
+        sha256 = "1yap9q6mp15jhsysry4x17cpm5dj35g8l2d0p0vn1xq25x3jfkqk";
+      };
+      extraConfig = fbcondecorConfig;
+      features.fbConDecor = true;
+    };
+
+  fbcondecor_2_6_38 =
+    rec {
+      name = "fbcondecor-0.9.6-2.6.38";
+      patch = fetchurl {
+        url = "http://dev.gentoo.org/~spock/projects/fbcondecor/archive/${name}.patch";
+        sha256 = "1l8xqf5z227m5ay6azqba1qw10y26a4cwfhzzapzmmwq1bpr8mlw";
+      };
+      extraConfig = fbcondecorConfig;
+      features.fbConDecor = true;
+    };
+
   # From http://patchwork.kernel.org/patch/19495/
   ext4_softlockups_2_6_28 =
     { name = "ext4-softlockups-fix";
@@ -110,7 +148,7 @@ in
       };
     };
 
-  gcov_2_6_28 = 
+  gcov_2_6_28 =
     { name = "gcov";
       patch = fetchurl {
         url = http://buildfarm.st.ewi.tudelft.nl/~eelco/dist/linux-2.6.28-gcov.patch;
@@ -126,22 +164,22 @@ in
     };
 
   tracehook_2_6_32 =
-    { # From <http://people.redhat.com/roland/utrace/>.
+    { # From <http://userweb.kernel.org/~frob/utrace/>.
       name = "tracehook";
       patch = fetchurl {
-        url = http://people.redhat.com/roland/utrace/2.6.32/tracehook.patch;
+        url = http://userweb.kernel.org/~frob/utrace/2.6.32/tracehook.patch;
         sha256 = "1y009p8dyqknbjm8ryb495jqmvl372gfhswdn167xh2g1f24xqv8";
       };
     };
 
   utrace_2_6_32 =
-    { # From <http://people.redhat.com/roland/utrace/>, depends on the
+    { # From <http://userweb.kernel.org/~frob/utrace/>, depends on the
       # `tracehook' patch above.
       # See also <http://sourceware.org/systemtap/wiki/utrace>.
       name = "utrace";
       patch = fetchurl {
-        url = http://people.redhat.com/roland/utrace/2.6.32/utrace.patch;
-        sha256 = "1951mwc8jfiwrl0d2bb1zk9yrl7n7kadc00ymjsxrg2irda1b89r";
+        url = http://userweb.kernel.org/~frob/utrace/2.6.32/utrace.patch;
+        sha256 = "0argf19k9f0asiv4l4cnsxm5hw2xx8d794npaln88vwz87sj5nnq";
       };
       extraConfig =
         '' UTRACE y
@@ -157,6 +195,15 @@ in
       features.aufsBase = true;
     };
 
+  aufs2_2_6_33 =
+    { # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2-33;hb=aufs2-33
+      # Note that this merely the patch needed to build AUFS2 as a
+      # standalone package.
+      name = "aufs2";
+      patch = ./aufs2-33.patch;
+      features.aufsBase = true;
+    };
+
   aufs2_2_6_34 =
     { # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2-34;hb=aufs2-34
       # Note that this merely the patch needed to build AUFS2 as a
@@ -175,14 +222,90 @@ in
       features.aufsBase = true;
     };
 
+  aufs2_2_6_36 =
+    { # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-36;hb=aufs2.1-36
+      # Note that this merely the patch needed to build AUFS2 as a
+      # standalone package.
+      name = "aufs2";
+      patch = ./aufs2.1-36.patch;
+      features.aufsBase = true;
+      features.aufs2_1 = true;
+    };
+
+  aufs2_1_2_6_37 =
+    { # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-37;hb=refs/heads/aufs2.1-37
+      # Note that this merely the patch needed to build AUFS2.1 as a
+      # standalone package.
+      name = "aufs2.1";
+      patch = ./aufs2.1-37.patch;
+      features.aufsBase = true;
+      features.aufs2_1 = true;
+    };
+
+  aufs2_1_2_6_38 =
+    { # From http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-38;hb=refs/heads/aufs2.1-38
+      # Note that this merely the patch needed to build AUFS2.1 as a
+      # standalone package.
+      name = "aufs2.1";
+      patch = ./aufs2.1-38.patch;
+      features.aufsBase = true;
+      features.aufs2_1 = true;
+    };
+
+  aufs2_1_2_6_39 =
+    { # From http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-39;hb=refs/heads/aufs2.1-39
+      # Note that this merely the patch needed to build AUFS2.1 as a
+      # standalone package.
+      name = "aufs2.1";
+      patch = ./aufs2.1-39.patch;
+      features.aufsBase = true;
+      features.aufs2_1 = true;
+    };
+
+  aufs2_1_3_0 =
+    { # From http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs2-standalone.git;a=tree;h=ac52a37b0debba539bdfabba101f82b99136b380;hb=ac52a37b0debba539bdfabba101f82b99136b380
+      # Note that this merely the patch needed to build AUFS2.1 as a
+      # standalone package.
+      name = "aufs2.1";
+      patch = ./aufs2.1-3.0.patch;
+      features.aufsBase = true;
+      features.aufs2_1 = true;
+    };
+
   # Increase the timeout on CIFS requests from 15 to 120 seconds to
   # make CIFS more resilient to high load on the CIFS server.
-  cifs_timeout =
+  cifs_timeout_2_6_15 =
+    { name = "cifs-timeout";
+      patch = ./cifs-timeout-2.6.15.patch;
+      features.cifsTimeout = true;
+    };
+
+  cifs_timeout_2_6_25 =
+    { name = "cifs-timeout";
+      patch = ./cifs-timeout-2.6.25.patch;
+      features.cifsTimeout = true;
+    };
+
+  cifs_timeout_2_6_29 =
+    { name = "cifs-timeout";
+      patch = ./cifs-timeout-2.6.29.patch;
+      features.cifsTimeout = true;
+    };
+
+  cifs_timeout_2_6_35 =
     { name = "cifs-timeout";
-      patch = ./cifs-timeout.patch;
+      patch = ./cifs-timeout-2.6.35.patch;
       features.cifsTimeout = true;
     };
 
+  cifs_timeout_2_6_38 =
+    { name = "cifs-timeout";
+      patch = ./cifs-timeout-2.6.38.patch;
+      features.cifsTimeout = true;
+    };
+
+  cifs_timeout = cifs_timeout_2_6_29;
+
   no_xsave =
     { name = "no-xsave";
       patch = fetchurl {
@@ -224,10 +347,36 @@ in
       patch = ./guruplug-mach-type.patch;
     };
 
-  xen_pvclock_resume =
-    { # Fix the clock after a DomU restore following a Dom0 reboot or migration.
-      name = "xen-pvclock-resume";
-      patch = ./xen-pvclock-resume.patch;
+  tuxonice_2_6_34 = makeTuxonicePatch {
+    version = "3.2-rc2";
+    kernelVersion = "2.6.34";
+    sha256 = "0bagqinmky1kmvg3vw8cdysqklxrsfjm7gqrpxviq9jq8vyycviz";
+  };
+
+  tuxonice_2_6_35 = makeTuxonicePatch {
+    version = "3.2-rc2";
+    kernelVersion = "2.6.35";
+    sha256 = "00jbrqq6p1lyvli835wczc0vqsn0z73jpb2aak3ak0vgnvsxw37q";
+  };
+
+  tuxonice_2_6_36 = makeTuxonicePatch {
+    version = "3.2-rc2";
+    kernelVersion = "2.6.36";
+    sha256 = "1vcw3gpjdghnkli46j37pc6rp8mqk8dh688jv8rppzsry0ll7b7k";
+  };
+
+  tuxonice_2_6_37 = makeTuxonicePatch {
+    version = "3.2-rc2";
+    kernelVersion = "2.6.37";
+    url = "http://tuxonice.net/files/current-tuxonice-for-2.6.37.patch_0.bz2";
+    sha256 = "0acllabvbm9pmjnh0zx9mgnp47xbrl9ih6i037c85h0ymnjsxdhk";
+  };
+
+  glibc_getline =
+    {
+      # Patch to work around conflicting types for the `getline' function
+      # with recent Glibcs (2009).
+      name = "glibc-getline";
+      patch = ./getline.patch;
     };
-  
 }
diff --git a/pkgs/os-specific/linux/kernel/xen-pvclock-resume.patch b/pkgs/os-specific/linux/kernel/xen-pvclock-resume.patch
deleted file mode 100644
index b92bb74d30b4..000000000000
--- a/pkgs/os-specific/linux/kernel/xen-pvclock-resume.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
-Date: Mon, 25 Oct 2010 16:53:46 -0700
-Subject: [PATCH] x86/pvclock: zero last_value on resume
-
-If the guest domain has been suspend/resumed or migrated, then the
-system clock backing the pvclock clocksource may revert to a smaller
-value (ie, can be non-monotonic across the migration/save-restore).
-Make sure we zero last_value in that case so that the domain
-continues to see clock updates.
-
-Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
-
-diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h
-index cd02f32..6226870 100644
---- a/arch/x86/include/asm/pvclock.h
-+++ b/arch/x86/include/asm/pvclock.h
-@@ -11,5 +11,6 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src);
- void pvclock_read_wallclock(struct pvclock_wall_clock *wall,
- 			    struct pvclock_vcpu_time_info *vcpu,
- 			    struct timespec *ts);
-+void pvclock_resume(void);
- 
- #endif /* _ASM_X86_PVCLOCK_H */
-diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
-index 239427c..a4f07c1 100644
---- a/arch/x86/kernel/pvclock.c
-+++ b/arch/x86/kernel/pvclock.c
-@@ -120,6 +120,11 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src)
- 
- static atomic64_t last_value = ATOMIC64_INIT(0);
- 
-+void pvclock_resume(void)
-+{
-+	atomic64_set(&last_value, 0);
-+}
-+
- cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
- {
- 	struct pvclock_shadow_time shadow;
-diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-index b2bb5aa..5da5e53 100644
---- a/arch/x86/xen/time.c
-+++ b/arch/x86/xen/time.c
-@@ -426,6 +426,8 @@ void xen_timer_resume(void)
- {
- 	int cpu;
- 
-+	pvclock_resume();
-+
- 	if (xen_clockevent != &xen_vcpuop_clockevent)
- 		return;
diff --git a/pkgs/os-specific/linux/libaio/default.nix b/pkgs/os-specific/linux/libaio/default.nix
new file mode 100644
index 000000000000..57137400b2fe
--- /dev/null
+++ b/pkgs/os-specific/linux/libaio/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libaio-0.3.109";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/libs/aio/${name}.tar.bz2";
+    sha256 = "15772ki2wckf2mj4gm1vhrsmpd6rq20983nhlkfghjfblghgrkmm";
+  };
+
+  makeFlags = "prefix=$(out)";
+
+  meta = {
+    description = "Library for asynchronous I/O in Linux";
+    homepage = http://lse.sourceforge.net/io/aio.html;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/libatasmart/default.nix b/pkgs/os-specific/linux/libatasmart/default.nix
new file mode 100644
index 000000000000..86dffde4b557
--- /dev/null
+++ b/pkgs/os-specific/linux/libatasmart/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, udev }:
+
+stdenv.mkDerivation rec {
+  name = "libatasmart-0.17";
+
+  src = fetchurl {
+    url = "http://0pointer.de/public/${name}.tar.gz";
+    sha256 = "1zazxnqsirlv9gkzij6z31b21gv2nv7gkpja0wpxwb7kfh9a2qid";
+  };
+
+  buildInputs = [ pkgconfig udev ];
+
+  meta = {
+    homepage = http://0pointer.de/public/;
+    description = "Library for querying ATA SMART status";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/libnl/default.nix b/pkgs/os-specific/linux/libnl/default.nix
index cbe938d2ee41..35f05e9d0092 100644
--- a/pkgs/os-specific/linux/libnl/default.nix
+++ b/pkgs/os-specific/linux/libnl/default.nix
@@ -1,15 +1,14 @@
 {stdenv, fetchurl, bison, flex}:
 
 stdenv.mkDerivation rec {
-  name = "libnl-2.0";
+  name = "libnl-3.0";
 
   src = fetchurl {
     url = "${meta.homepage}files/${name}.tar.gz";
-    sha256 = "173sr25xpsakdvjcg62790v6kwcgxj5r0js2lx6hg89w7n8dqh2s";
+    sha256 = "1vac10m3w0m5lsypjcrhs2dzwng82nkbzqz8g8kyzkxb3qz5ql3s";
   };
 
   buildInputs = [ bison flex ];
-  postConfigure = "type -tp flex";
 
   meta = {
     homepage = "http://www.infradead.org/~tgr/libnl/";
diff --git a/pkgs/os-specific/linux/libnl/libnl-1.1-flags.patch b/pkgs/os-specific/linux/libnl/libnl-1.1-flags.patch
new file mode 100644
index 000000000000..bb09b362660f
--- /dev/null
+++ b/pkgs/os-specific/linux/libnl/libnl-1.1-flags.patch
@@ -0,0 +1,11 @@
+--- libnl-1.1/lib/Makefile.orig	2008-01-14 16:48:45.000000000 +0100
++++ libnl-1.1/lib/Makefile	2009-05-26 09:47:42.000000000 +0200
+@@ -48,7 +48,7 @@
+ 
+ $(OUT_SLIB): ../Makefile.opts $(OBJ)
+ 	@echo "  LD $(OUT_SLIB)"; \
+-	$(CC) -shared -Wl,-soname,libnl.so.1 -o $(OUT_SLIB) $(OBJ) $(LIBNL_LIB) -lc
++	$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname,libnl.so.1 -o $(OUT_SLIB) $(OBJ) $(LIBNL_LIB) -lc
+ 	@echo "  LN $(OUT_SLIB) $(LN1_SLIB)"; \
+ 	rm -f $(LN1_SLIB) ; $(LN) -s $(OUT_SLIB) $(LN1_SLIB)
+ 	@echo "  LN $(LN1_SLIB) $(LN_SLIB)"; \
diff --git a/pkgs/os-specific/linux/libnl/libnl-1.1-glibc-2.8-ULONG_MAX.patch b/pkgs/os-specific/linux/libnl/libnl-1.1-glibc-2.8-ULONG_MAX.patch
new file mode 100644
index 000000000000..79dd039a3388
--- /dev/null
+++ b/pkgs/os-specific/linux/libnl/libnl-1.1-glibc-2.8-ULONG_MAX.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/show_bug.cgi?id=225393
+
+--- libnl-1.1/include/netlink-local.h	2008-06-09 07:54:20 +0000
++++ libnl-1.1/include/netlink-local.h	2008-06-09 07:54:47 +0000
+@@ -26,6 +26,7 @@
+ #include <sys/socket.h>
+ #include <inttypes.h>
+ #include <assert.h>
++#include <limits.h>
+ 
+ #include <arpa/inet.h>
+ #include <netdb.h>
+
diff --git a/pkgs/os-specific/linux/libnl/libnl-1.1-minor-leaks.patch b/pkgs/os-specific/linux/libnl/libnl-1.1-minor-leaks.patch
new file mode 100644
index 000000000000..855a6ab3912e
--- /dev/null
+++ b/pkgs/os-specific/linux/libnl/libnl-1.1-minor-leaks.patch
@@ -0,0 +1,40 @@
+From: Patrick McHardy <kaber@trash.net>
+Date: Fri, 18 Jan 2008 16:55:49 +0000 (+0100)
+Subject: [LIBNL]: Fix minor memleaks on exit
+X-Git-Url: http://git.kernel.org/?p=libs%2Fnetlink%2Flibnl.git;a=commitdiff_plain;h=b64f15d6f947839236fa276d473d238f8c9b9d57;hp=e91bb2ffb090955d443e643a25b250bf3d33534a
+
+[LIBNL]: Fix minor memleaks on exit
+
+Make valgrind happy ...
+
+Signed-off-by: Patrick McHardy <kaber@trash.net>
+---
+
+diff --git a/lib/route/route_utils.c b/lib/route/route_utils.c
+index a12d169..1386cda 100644
+--- a/lib/route/route_utils.c
++++ b/lib/route/route_utils.c
+@@ -63,6 +63,11 @@ static void __init init_routing_table_names(void)
+ 	add_routing_table_name(RT_TABLE_LOCAL, "local");
+ };
+ 
++static void __exit release_routing_table_names(void)
++{
++	__trans_list_clear(&table_names);
++}
++
+ int rtnl_route_read_table_names(const char *path)
+ {
+ 	__trans_list_clear(&table_names);
+@@ -104,6 +109,11 @@ static void __init init_proto_names(void)
+ 	add_proto_name(RTPROT_STATIC, "static");
+ };
+ 
++static void __exit release_proto_names(void)
++{
++	__trans_list_clear(&proto_names);
++}
++
+ int rtnl_route_read_protocol_names(const char *path)
+ {
+ 	__trans_list_clear(&proto_names);
diff --git a/pkgs/os-specific/linux/libnl/libnl-1.1-vlan-header.patch b/pkgs/os-specific/linux/libnl/libnl-1.1-vlan-header.patch
new file mode 100644
index 000000000000..c4c2fc6382de
--- /dev/null
+++ b/pkgs/os-specific/linux/libnl/libnl-1.1-vlan-header.patch
@@ -0,0 +1,80 @@
+From: Patrick McHardy <kaber@trash.net>
+Date: Fri, 18 Jan 2008 16:55:48 +0000 (+0100)
+Subject: [LIBNL]: Add if_vlan.h
+X-Git-Url: http://git.kernel.org/?p=libs%2Fnetlink%2Flibnl.git;a=commitdiff_plain;h=e91bb2ffb090955d443e643a25b250bf3d33534a;hp=7f6b7a8eea0334b34d58dec72c66121a76f08958
+
+[LIBNL]: Add if_vlan.h
+
+vlan support needs VLAN_FLAG_REORDER_HDR, which is not available in
+older if_vlan.h versions. Add the current version from the kernel.
+
+Signed-off-by: Patrick McHardy <kaber@trash.net>
+---
+
+diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
+new file mode 100644
+index 0000000..068cd7b
+--- /dev/null
++++ include/linux/if_vlan.h
+@@ -0,0 +1,61 @@
++/*
++ * VLAN		An implementation of 802.1Q VLAN tagging.
++ *
++ * Authors:	Ben Greear <greearb@candelatech.com>
++ *
++ *		This program is free software; you can redistribute it and/or
++ *		modify it under the terms of the GNU General Public License
++ *		as published by the Free Software Foundation; either version
++ *		2 of the License, or (at your option) any later version.
++ *
++ */
++
++#ifndef _LINUX_IF_VLAN_H_
++#define _LINUX_IF_VLAN_H_
++
++
++/* VLAN IOCTLs are found in sockios.h */
++
++/* Passed in vlan_ioctl_args structure to determine behaviour. */
++enum vlan_ioctl_cmds {
++	ADD_VLAN_CMD,
++	DEL_VLAN_CMD,
++	SET_VLAN_INGRESS_PRIORITY_CMD,
++	SET_VLAN_EGRESS_PRIORITY_CMD,
++	GET_VLAN_INGRESS_PRIORITY_CMD,
++	GET_VLAN_EGRESS_PRIORITY_CMD,
++	SET_VLAN_NAME_TYPE_CMD,
++	SET_VLAN_FLAG_CMD,
++	GET_VLAN_REALDEV_NAME_CMD, /* If this works, you know it's a VLAN device, btw */
++	GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */
++};
++
++enum vlan_flags {
++	VLAN_FLAG_REORDER_HDR	= 0x1,
++};
++
++enum vlan_name_types {
++	VLAN_NAME_TYPE_PLUS_VID, /* Name will look like:  vlan0005 */
++	VLAN_NAME_TYPE_RAW_PLUS_VID, /* name will look like:  eth1.0005 */
++	VLAN_NAME_TYPE_PLUS_VID_NO_PAD, /* Name will look like:  vlan5 */
++	VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD, /* Name will look like:  eth0.5 */
++	VLAN_NAME_TYPE_HIGHEST
++};
++
++struct vlan_ioctl_args {
++	int cmd; /* Should be one of the vlan_ioctl_cmds enum above. */
++	char device1[24];
++
++        union {
++		char device2[24];
++		int VID;
++		unsigned int skb_priority;
++		unsigned int name_type;
++		unsigned int bind_type;
++		unsigned int flag; /* Matches vlan_dev_info flags */
++        } u;
++
++	short vlan_qos;
++};
++
++#endif /* !(_LINUX_IF_VLAN_H_) */
diff --git a/pkgs/os-specific/linux/libnl/v1.nix b/pkgs/os-specific/linux/libnl/v1.nix
new file mode 100644
index 000000000000..f3f7f3fa732c
--- /dev/null
+++ b/pkgs/os-specific/linux/libnl/v1.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, bison, flex}:
+
+stdenv.mkDerivation rec {
+  name = "libnl-1.1";
+
+  src = fetchurl {
+    url = "${meta.homepage}files/${name}.tar.gz";
+    sha256 = "1hzd48z8h8abkclq90wb7cciynpg3pwgyd0gzb5g12ndnv7s9kim";
+  };
+
+  buildInputs = [ bison flex ];
+  postConfigure = "type -tp flex";
+
+  patches = [
+    ./libnl-1.1-flags.patch
+    ./libnl-1.1-glibc-2.8-ULONG_MAX.patch
+    ./libnl-1.1-minor-leaks.patch
+    ./libnl-1.1-vlan-header.patch
+  ];
+
+  meta = {
+    homepage = "http://www.infradead.org/~tgr/libnl/";
+    description = "Linux NetLink interface library";
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/libnl/v2.nix b/pkgs/os-specific/linux/libnl/v2.nix
new file mode 100644
index 000000000000..cb5c022c3d4c
--- /dev/null
+++ b/pkgs/os-specific/linux/libnl/v2.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, bison, flex}:
+
+stdenv.mkDerivation rec {
+  name = "libnl-2.0";
+
+  src = fetchurl {
+    url = "${meta.homepage}files/${name}.tar.gz";
+    sha256 = "173sr25xpsakdvjcg62790v6kwcgxj5r0js2lx6hg89w7n8dqh2s";
+  };
+
+  buildInputs = [ bison flex ];
+
+  meta = {
+    homepage = "http://www.infradead.org/~tgr/libnl/";
+    description = "Linux NetLink interface library";
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/libselinux/builder.sh b/pkgs/os-specific/linux/libselinux/builder.sh
deleted file mode 100644
index 673af3dcc7b7..000000000000
--- a/pkgs/os-specific/linux/libselinux/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-source $stdenv/setup
-
-export DESTDIR=$out
-export PREFIX=$out
-
-genericBuild
diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix
index e0a02a141960..4be88a20e24a 100644
--- a/pkgs/os-specific/linux/libselinux/default.nix
+++ b/pkgs/os-specific/linux/libselinux/default.nix
@@ -1,12 +1,15 @@
 {stdenv, fetchurl, libsepol}:
 
-stdenv.mkDerivation {
-  builder = ./builder.sh;
-  name = "libselinux-1.30";
+stdenv.mkDerivation rec {
+  name = "libselinux-${version}";
+  version = "2.0.98";
+
   src = fetchurl {
-    url = http://www.nsa.gov/selinux/archives/libselinux-1.30.tgz;
-    md5 = "0b7d269c9b7d847059e4b11a710ab404";
+    url = "http://userspace.selinuxproject.org/releases/20101221/devel/${name}.tar.gz";
+    sha256 = "00irm7nyakgi4z8d6dlm6c70fkbl6rzk5w1w0ny2c564yw0d0dlz";
   };
 
-  buildInputs = [libsepol];
+  buildInputs = [ libsepol ];
+
+  preBuild = '' makeFlags="$makeFlags PREFIX=$out DESTDIR=$out" '';
 }
diff --git a/pkgs/os-specific/linux/libsemanage/default.nix b/pkgs/os-specific/linux/libsemanage/default.nix
new file mode 100644
index 000000000000..22e177191a57
--- /dev/null
+++ b/pkgs/os-specific/linux/libsemanage/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, libsepol, libselinux, ustr, bzip2, bison, flex }:
+stdenv.mkDerivation rec {
+
+  name = "libsemanage-${version}";
+  version = "2.0.46";
+
+  src = fetchurl {
+    url = "http://userspace.selinuxproject.org/releases/20101221/devel/${name}.tar.gz";
+    sha256 = "03ljdw48pn8vlk4h26w8z247c9wykp2198s1ksmxrai3avyz87wf";
+  };
+
+  NIX_LDFLAGS = "-lsepol";
+
+  makeFlags = "PREFIX=$(out) DESTDIR=$(out)";
+
+  buildInputs = [ libsepol libselinux ustr bzip2 bison flex ];
+
+  meta = with stdenv.lib; {
+    homepage = http://userspace.selinuxproject.org/;
+    description = "Policy management tools for SELinux";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/libsepol/builder.sh b/pkgs/os-specific/linux/libsepol/builder.sh
deleted file mode 100644
index 673af3dcc7b7..000000000000
--- a/pkgs/os-specific/linux/libsepol/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-source $stdenv/setup
-
-export DESTDIR=$out
-export PREFIX=$out
-
-genericBuild
diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix
index eac7efecaed4..1751994e3de3 100644
--- a/pkgs/os-specific/linux/libsepol/default.nix
+++ b/pkgs/os-specific/linux/libsepol/default.nix
@@ -1,10 +1,13 @@
 {stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  builder = ./builder.sh;
-  name = "libsepol-1.12";
+stdenv.mkDerivation rec {
+  name = "libsepol-${version}";
+  version = "2.0.42";
+
   src = fetchurl {
-    url = http://www.nsa.gov/selinux/archives/libsepol-1.12.tgz;
-    md5 = "937885f1fcbfe597a0f02aa9af044710";
+    url = "http://userspace.selinuxproject.org/releases/20101221/devel/${name}.tar.gz";
+    sha256 = "0sg61mb9qhyh4vplasar6nwd6j123v453zss93qws3h95fhrfc08";
   };
+
+  preBuild = '' makeFlags="$makeFlags PREFIX=$out DESTDIR=$out" '';
 }
diff --git a/pkgs/os-specific/linux/lsscsi/default.nix b/pkgs/os-specific/linux/lsscsi/default.nix
new file mode 100644
index 000000000000..886f6c799a43
--- /dev/null
+++ b/pkgs/os-specific/linux/lsscsi/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl }:
+
+assert stdenv.isLinux;
+
+stdenv.mkDerivation {
+  name = "lsscsi-0.24";
+
+  src = fetchurl {
+    url = "http://sg.danny.cz/scsi/lsscsi-0.24.tgz";
+    sha256 = "0c718w80vi9a0w48q8xmlnbyqzxfd8lax5dcbqg8gvg4l2zaba2c";
+  };
+
+  preConfigure = ''
+    substituteInPlace Makefile.in --replace /usr "$out"
+  '';
+}
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index 9a2dc2d28ace..ae4b962715c9 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, udev }:
+{ stdenv, fetchurl, pkgconfig, udev }:
 
 let
-  v = "2.02.65";
+  v = "2.02.86";
 in
 
 stdenv.mkDerivation {
@@ -9,12 +9,13 @@ stdenv.mkDerivation {
   
   src = fetchurl {
     url = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${v}.tgz";
-    sha256 = "1lbskrj4pxbipq8f0qhql3p1nqa796v4i1cy6n2fmmbs3fwmfh9a";
+    sha256 = "0bam8ampdqn4xx2agrvh5vn4xdi0gb9lmfsm31fm302y52jsyz2m";
   };
   
-  configureFlags = "--disable-readline --enable-udev_rules --enable-udev_sync";
+  configureFlags =
+    "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
 
-  buildInputs = [ udev ];
+  buildInputs = [ pkgconfig udev ];
   
   # To prevent make install from failing.
   preInstall = "installFlags=\"OWNER= GROUP= confdir=$out/etc\"";
diff --git a/pkgs/os-specific/linux/mountall/default.nix b/pkgs/os-specific/linux/mountall/default.nix
index 134f7577c96d..d3b0311b449a 100644
--- a/pkgs/os-specific/linux/mountall/default.nix
+++ b/pkgs/os-specific/linux/mountall/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libnih, dbus, udev, autoconf, automake, libtool, gettext }:
    
 stdenv.mkDerivation {
-  name = "mountall-2.15";
+  name = "mountall-2.31";
    
   src = fetchurl {
-    url = https://launchpad.net/ubuntu/+archive/primary/+files/mountall_2.15.tar.gz;
-    sha256 = "1ik9r1av0f17byfxr4l2w0qpaijxkfqvxws6gmc98liq6fyyzn4v";
+    url = https://launchpad.net/ubuntu/+archive/primary/+files/mountall_2.31.tar.gz;
+    sha256 = "09885v82kd8x7yf18vw7h6z4816jvn7gmjx5vicxlg4pqlzwqvhv";
   };
 
   patches = [ ./no-plymouth.patch ];
@@ -14,6 +14,8 @@ stdenv.mkDerivation {
 
   buildInputs = [ pkgconfig libnih dbus.libs udev autoconf automake libtool gettext ];
 
+  makeFlags = "initramfshookdir=$(out)/share/initramfs-tools/hooks upstart_jobs_initramfs_configdir=$(out)/share/initramfs-tools/event-driven/upstart-jobs";
+  
   meta = {
     homepage = https://launchpad.net/ubuntu/+source/mountall;
     description = "Utility to mount all filesystems and emit Upstart events";
diff --git a/pkgs/os-specific/linux/mountall/no-plymouth.patch b/pkgs/os-specific/linux/mountall/no-plymouth.patch
index 6bf8c95276ba..890dab9bc885 100644
--- a/pkgs/os-specific/linux/mountall/no-plymouth.patch
+++ b/pkgs/os-specific/linux/mountall/no-plymouth.patch
@@ -1,6 +1,6 @@
-diff -ru -x '*~' mountall-2.15-orig/configure.ac mountall-2.15/configure.ac
---- mountall-2.15-orig/configure.ac	2010-05-09 01:42:22.000000000 +0200
-+++ mountall-2.15/configure.ac	2010-06-03 13:46:09.000000000 +0200
+diff -ru -x '*~' mountall-2.31-orig/configure.ac mountall-2.31/configure.ac
+--- mountall-2.31-orig/configure.ac	2011-07-15 14:00:15.000000000 +0200
++++ mountall-2.31/configure.ac	2011-07-25 00:13:13.000000000 +0200
 @@ -29,7 +29,7 @@
  PKG_CHECK_MODULES([NIH_DBUS], [libnih-dbus >= 1.0.0])
  PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16])
@@ -10,9 +10,9 @@ diff -ru -x '*~' mountall-2.15-orig/configure.ac mountall-2.15/configure.ac
  
  # Checks for header files.
  
-diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
---- mountall-2.15-orig/src/mountall.c	2010-05-09 01:42:24.000000000 +0200
-+++ mountall-2.15/src/mountall.c	2010-07-07 14:40:47.000000000 +0200
+diff -ru -x '*~' mountall-2.31-orig/src/mountall.c mountall-2.31/src/mountall.c
+--- mountall-2.31-orig/src/mountall.c	2011-07-15 14:00:15.000000000 +0200
++++ mountall-2.31/src/mountall.c	2011-07-25 00:21:13.000000000 +0200
 @@ -64,8 +64,10 @@
  #include <nih-dbus/dbus_proxy.h>
  #include <nih-dbus/errors.h>
@@ -24,16 +24,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  
  #include "ioprio.h"
  
-@@ -75,7 +77,7 @@
- 
- #define BUILTIN_FSTAB   "/lib/init/fstab"
- 
--#define BOREDOM_TIMEOUT 3
-+#define BOREDOM_TIMEOUT 15
- 
- enum exit {
- 	EXIT_OK = 0,		/* Ok */
-@@ -214,15 +216,19 @@
+@@ -219,15 +221,19 @@
  void   boredom_timeout       (void *data, NihTimer *timer);
  
  int    plymouth_connect      (void);
@@ -52,8 +43,8 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
 +#endif
  
  void   usr1_handler          (void *data, NihSignal *signal);
- 
-@@ -241,8 +247,10 @@
+ int    set_dev_wait_time        (NihOption *option, const char *arg);
+@@ -247,8 +253,10 @@
   **/
  size_t num_local = 0;
  size_t num_local_mounted = 0;
@@ -64,7 +55,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  size_t num_virtual = 0;
  size_t num_virtual_mounted = 0;
  size_t num_swap = 0;
-@@ -310,6 +318,7 @@
+@@ -318,6 +326,7 @@
   **/
  static struct udev *udev = NULL;
  
@@ -72,7 +63,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  /**
   * ply_event_loop:
   *
-@@ -323,6 +332,7 @@
+@@ -331,6 +340,7 @@
   * Plymouth boot client.
   **/
  static ply_boot_client_t *ply_boot_client = NULL;
@@ -80,7 +71,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  
  /**
   * plymouth_error:
-@@ -1208,11 +1218,12 @@
+@@ -1253,11 +1263,12 @@
  			nih_debug ("%s is root filesystem", MOUNT_NAME (mnt));
  			tag = TAG_LOCAL;
  		} else if (is_remote (mnt)) {
@@ -95,7 +86,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  			{
  				tag = TAG_REMOTE;
  			} else {
-@@ -1475,7 +1486,8 @@
+@@ -1566,7 +1577,8 @@
  	/* Enforce local only after virtual filesystems triggered */
  	if ((! local_triggered)
  	    && virtual_triggered
@@ -105,7 +96,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  		nih_info (_("%s finished"), "local");
  		emit_event ("local-filesystems", NULL);
  		local_triggered = TRUE;
-@@ -1484,7 +1496,8 @@
+@@ -1575,7 +1587,8 @@
  	/* Enforce remote only after virtual filesystems triggrered */
  	if ((! remote_triggered)
  	    && virtual_triggered
@@ -115,7 +106,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  		nih_info (_("%s finished"), "remote");
  		emit_event ("remote-filesystems", NULL);
  		remote_triggered = TRUE;
-@@ -1494,7 +1507,9 @@
+@@ -1585,7 +1598,9 @@
  	if ((! filesystem_triggered)
  	    && virtual_triggered
  	    && local_triggered
@@ -126,7 +117,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  		nih_info (_("All filesystems mounted"));
  		emit_event ("filesystem", NULL);
  		filesystem_triggered = TRUE;
-@@ -1508,9 +1523,9 @@
+@@ -1599,9 +1614,9 @@
  		swap_triggered = TRUE;
  	}
  
@@ -139,7 +130,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  		   num_virtual_mounted, num_virtual,
  		   num_swap_mounted, num_swap);
  }
-@@ -2203,12 +2218,14 @@
+@@ -2442,12 +2457,14 @@
  	if (no_events)
  		return;
  
@@ -155,7 +146,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  	env = NIH_MUST (nih_str_array_new (NULL));
  
  	if (mnt) {
-@@ -2787,6 +2804,7 @@
+@@ -3026,6 +3043,7 @@
  int
  plymouth_connect (void)
  {
@@ -163,7 +154,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  	/* If we were already connected, just re-use that connection */
  	if (ply_boot_client)
  		return TRUE;
-@@ -2813,8 +2831,13 @@
+@@ -3052,8 +3070,13 @@
  	nih_info (_("Connected to Plymouth"));
  
  	return TRUE;
@@ -177,7 +168,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  void
  plymouth_disconnected (void *             user_data,
  		       ply_boot_client_t *client)
-@@ -2827,6 +2850,7 @@
+@@ -3066,6 +3089,7 @@
  	ply_boot_client_free (ply_boot_client);
  	ply_boot_client = NULL;
  }
@@ -185,7 +176,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  
  
  void
-@@ -2837,6 +2861,7 @@
+@@ -3076,6 +3100,7 @@
  
  	nih_assert (mnt != NULL);
  
@@ -193,7 +184,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  	/* No Plymouth => no progress information */
  	if (! plymouth_connect ())
  		return;
-@@ -2866,6 +2891,7 @@
+@@ -3105,6 +3130,7 @@
  				       plymouth_response,
  				       plymouth_failed,
  				       NULL);
@@ -201,7 +192,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  }
  
  void
-@@ -2881,20 +2907,31 @@
+@@ -3120,20 +3146,31 @@
  		NIH_LIST_FOREACH (mounts, iter) {
  			Mount *mnt = (Mount *)iter;
  
@@ -235,7 +226,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  	/* If we're already displaying messages, don't change them unless
  	 * the message is no longer valid for that mount point; otherwise
  	 * clear the message.
-@@ -3005,8 +3042,10 @@
+@@ -3244,8 +3281,10 @@
  							   plymouth_answer,
  							   plymouth_failed,
  							   NULL);
@@ -246,16 +237,23 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  void
  plymouth_response (void *             user_data,
  		   ply_boot_client_t *client)
-@@ -3125,7 +3164,7 @@
+@@ -3364,6 +3403,7 @@
  		break;
  	}
  }
--
 +#endif
  
+ /*
+  * set_dev_wait_time:
+@@ -3399,7 +3439,6 @@
+         return err;
+ }
  
+-
  /**
-@@ -3211,6 +3250,7 @@
+  * stop_mountpoint_timer:
+  * @mountpoint: mountpoint whose timer you want to stop.
+@@ -3673,6 +3712,7 @@
  				    (NihIoWatcher)udev_monitor_watcher,
  				    udev_monitor));
  
@@ -263,7 +261,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  	/* Initialise a Plymouth event loop; this is an epoll instance that
  	 * we can poll within our own main loop and call out to when needs
  	 * be.
-@@ -3224,6 +3264,7 @@
+@@ -3686,6 +3726,7 @@
  
  	/* Attempt an early connection to Plymouth */
  	plymouth_connect ();
@@ -271,7 +269,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  
  	mounts = NIH_MUST (nih_list_new (NULL));
  
-@@ -3236,7 +3277,9 @@
+@@ -3698,7 +3739,9 @@
  	 * from /etc/fstab and /proc/self/mountinfo to find out what else
  	 * we need to do.
  	 */
@@ -281,7 +279,7 @@ diff -ru -x '*~' mountall-2.15-orig/src/mountall.c mountall-2.15/src/mountall.c
  	parse_fstab (_PATH_MNTTAB);
  	parse_mountinfo ();
  
-@@ -3338,10 +3381,12 @@
+@@ -3822,10 +3865,12 @@
  	/* Flush the D-Bus connection to ensure all messages are sent */
  	dbus_connection_flush (connection);
  
diff --git a/pkgs/os-specific/linux/multipath-tools/default.nix b/pkgs/os-specific/linux/multipath-tools/default.nix
new file mode 100644
index 000000000000..b25321ca779c
--- /dev/null
+++ b/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, lvm2, libaio, gzip, readline, udev }:
+
+stdenv.mkDerivation rec {
+  name = "multipath-tools-0.4.9";
+
+  src = fetchurl {
+    url = "http://christophe.varoqui.free.fr/multipath-tools/${name}.tar.bz2";
+    sha256 = "04n7kazp1zrlqfza32phmqla0xkcq4zwn176qff5ida4a60whi4d";
+  };
+
+  sourceRoot = ".";
+
+  buildInputs = [ lvm2 libaio readline ];
+
+  preBuild =
+    ''
+      makeFlagsArray=(GZIP="${gzip}/bin/gzip -9 -c" prefix=$out mandir=$out/share/man/man8 man5dir=$out/share/man/man5 LIB=lib)
+      
+      substituteInPlace multipath/Makefile --replace /etc $out/etc
+      substituteInPlace kpartx/Makefile --replace /etc $out/etc
+      
+      substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
+      substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
+
+      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${udev}/libexec/scsi_id
+      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${udev}/libexec/scsi_id
+    '';
+
+  meta = {
+    description = "Tools for the Linux multipathing driver";
+    homepage = http://christophe.varoqui.free.fr/;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/ndiswrapper/default.nix b/pkgs/os-specific/linux/ndiswrapper/default.nix
index c36f29ca6c7f..75ff3fba3c6a 100644
--- a/pkgs/os-specific/linux/ndiswrapper/default.nix
+++ b/pkgs/os-specific/linux/ndiswrapper/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, kernel, perl }:
 
 stdenv.mkDerivation {
-  name = "ndiswrapper-1.53-stable";
+  name = "ndiswrapper-1.56-stable";
 
   # need at least .config and include 
   inherit kernel;
@@ -23,8 +23,8 @@ stdenv.mkDerivation {
 
   # should we use unstable? 
   src = fetchurl {
-    url = http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-1.53.tar.gz;
-    sha256 = "00622nxa3q9n8v7qdz274d0nzz9r13lx77xi27s5bnk0mkila03q";
+    url = http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-1.56.tar.gz;
+    sha256 = "10yqg1a08v6z1qm1qr1v4rbhl35c90gzrazapr09vp372hky8f57";
   };
 
   buildInputs = [ kernel perl ];
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index dd6c1875362a..f2065e1aa019 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -7,7 +7,7 @@
 
 with stdenv.lib;
 
-let versionNumber = "260.19.29"; in
+let versionNumber = "280.13"; in
 
 stdenv.mkDerivation {
   name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
@@ -18,12 +18,12 @@ stdenv.mkDerivation {
     if stdenv.system == "i686-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
-        sha256 = "0zbjmpwbc35bzg15j8zs7xy3qlaywhrb8mmps7df8bv59fb0krxn";
+        sha256 = "16xcidshamxvc80sdnkph5rpgf72m5zz4x155amg2433kkhsy8mj";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
-        sha256 = "119dhzafkfijfw94hw7sz0iffp1lshdh6vadvr6d1vr6hpcggdw6";
+        sha256 = "14x80qirwlfxhphzqvi92lpgs82qnzb7hq0vd02rkbwvvnkhgdxd";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
   cudaPath = stdenv.lib.makeLibraryPath [zlib stdenv.gcc.gcc];
 
   programPath = optionalString (!libsOnly) (stdenv.lib.makeLibraryPath
-    [ gtkLibs.gtk gtkLibs.atk gtkLibs.pango gtkLibs.glib xlibs.libXv ] );
+    [ gtkLibs.gtk gtkLibs.atk gtkLibs.pango gtkLibs.glib gtkLibs.gdk_pixbuf xlibs.libXv ] );
 
   buildInputs = [ perl ];
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy96.nix b/pkgs/os-specific/linux/nvidia-x11/legacy96.nix
index 23356b58d323..0d36013ffd28 100644
--- a/pkgs/os-specific/linux/nvidia-x11/legacy96.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/legacy96.nix
@@ -2,7 +2,7 @@
 
 let 
 
-  versionNumber = "96.43.18";
+  versionNumber = "96.43.19";
 
 in
 
@@ -15,12 +15,12 @@ stdenv.mkDerivation {
     if stdenv.system == "i686-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}-pkg0.run";
-        sha256 = "0ajlr5vmjgjl2rszzd86099p3fa4xcpy182pwibraggvzchi9ayw";
+        sha256 = "1j7im9ra7nmm1hn11c1brvf895xibs49xrxkxcrsnmpa17l10n72";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-pkg0.run";
-        sha256 = "0s8iq5djacqr686wd4g7fv8s9hpp2vbjnav82nqca18zanjj20rr";
+        sha256 = "1g8z36wz3ww1q6vjbypzwl0973vy0miz6rw2fd7v3a36yxl2gvn5";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 692643505e18..1e2d20c1edb5 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -8,11 +8,17 @@ stdenv.mkDerivation {
     sha256 = "015r3xdkjpqwcv4lvxavq0nybdpxhfjycqpzbx8agqd5sywkx3b0";
   };
 
-  buildInputs = [ flex cracklib ]
+  buildNativeInputs = [ flex ];
+  buildInputs = [ cracklib ]
     ++ stdenv.lib.optional
       (stdenv.system != "armv5tel-linux" && stdenv.system != "mips64-linux")
       libxcrypt;
 
+  crossAttrs = {
+    # Skip libxcrypt cross-building, as it fails for mips and armv5tel
+    propagatedBuildInputs = [ flex.hostDrv cracklib.hostDrv ];
+  };
+
   postInstall = ''
     mv -v $out/sbin/unix_chkpwd{,.orig}
     ln -sv /var/setuid-wrappers/unix_chkpwd $out/sbin/unix_chkpwd
diff --git a/pkgs/os-specific/linux/pm-utils/default.nix b/pkgs/os-specific/linux/pm-utils/default.nix
index b58555ba19f7..56fa5eed1951 100644
--- a/pkgs/os-specific/linux/pm-utils/default.nix
+++ b/pkgs/os-specific/linux/pm-utils/default.nix
@@ -1,11 +1,22 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, coreutils, gnugrep, utillinux, module_init_tools
+, procps, kbd }:
+
+let
+
+  binPath = stdenv.lib.makeSearchPath "bin"
+    [ coreutils gnugrep utillinux module_init_tools procps kbd ];
+
+  sbinPath = stdenv.lib.makeSearchPath "sbin"
+    [ procps ];
+    
+in 
 
 stdenv.mkDerivation rec {
-  name = "pm-utils-1.3.0";
+  name = "pm-utils-1.4.1";
 
   src = fetchurl {
     url = "http://pm-utils.freedesktop.org/releases/${name}.tar.gz";
-    md5 = "37d71f8adbb409442212a85a080d324d";
+    sha256 = "02qc6zaf7ams6qcc470fwb6jvr4abv3lrlx16clqpn36501rkn4f";
   };
 
   configureFlags = "--sysconfdir=/etc";
@@ -15,9 +26,11 @@ stdenv.mkDerivation rec {
       # Install the manpages (xmlto isn't really needed).
       substituteInPlace man/Makefile.in --replace '@HAVE_XMLTO_TRUE@' ""
 
-      # Don't screw up the PATH.
-      substituteInPlace pm/pm-functions.in --replace '/sbin:/usr/sbin:/bin:/usr/bin' '$PATH'
+      # Set the PATH properly.
+      substituteInPlace pm/pm-functions.in --replace '/sbin:/usr/sbin:/bin:/usr/bin' '$PATH:${binPath}:${sbinPath}'
 
+      substituteInPlace src/pm-action.in --replace 'tr ' '${coreutils}/bin/tr '
+      
       substituteInPlace pm/sleep.d/00logging --replace /bin/uname "$(type -P uname)"
     '';
 
diff --git a/pkgs/os-specific/linux/pmount/default.nix b/pkgs/os-specific/linux/pmount/default.nix
index feea32b33bbb..8f814c7212a3 100644
--- a/pkgs/os-specific/linux/pmount/default.nix
+++ b/pkgs/os-specific/linux/pmount/default.nix
@@ -7,12 +7,12 @@
 # constraint mention in the configure.ac
 assert stdenv.lib.hasSuffix "/" mediaDir;
 
-stdenv.mkDerivation {
-  name = "pmount-0.9.20";
+stdenv.mkDerivation rec {
+  name = "pmount-0.9.23";
 
   src = fetchurl {
-    url = https://alioth.debian.org/frs/download.php/3127/pmount-0.9.20.tar.gz;
-    sha256 = "0574d2e805610c179904f5c676b2b93e088906b91bcb76980daa4a8da1d23e8c";
+    url = "https://alioth.debian.org/frs/download.php/3310/${name}.tar.gz";
+    sha256 = "db38fc290b710e8e9e9d442da2fb627d41e13b3ee80326c15cc2595ba00ea036";
   };
 
   buildInputs = [ hal intltool utillinuxng ];
diff --git a/pkgs/os-specific/linux/policycoreutils/default.nix b/pkgs/os-specific/linux/policycoreutils/default.nix
new file mode 100644
index 000000000000..b75405b42727
--- /dev/null
+++ b/pkgs/os-specific/linux/policycoreutils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, libsepol, libselinux }:
+stdenv.mkDerivation rec {
+
+  name = "policycoreutils-${version}";
+  version = "2.0.85";
+
+  src = fetchurl {
+    url = http://userspace.selinuxproject.org/releases/20101221/devel/policycoreutils-2.0.85.tar.gz;
+    sha256 = "01q5ifacg24k9jdz85j9m17ps2l1p7abvh8pzy6qz55y68rycifb";
+  };
+
+  buildInputs = [ libsepol libselinux ];
+
+  NIX_LDFLAGS = "-lsepol";
+
+  makeFlags = "LOCALEDIR=$(out)/share/locale";
+
+  meta = with stdenv.lib; {
+    homepage = http://userspace.selinuxproject.org/;
+    description = "SELinux policy core utilities";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/powertop/default.nix b/pkgs/os-specific/linux/powertop/default.nix
index ca04fc49d144..aaa7d6f04e09 100644
--- a/pkgs/os-specific/linux/powertop/default.nix
+++ b/pkgs/os-specific/linux/powertop/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ncurses, gettext}:
 
 stdenv.mkDerivation {
-  name = "powertop-1.11";
+  name = "powertop-1.13";
   src = fetchurl {
-    url = http://www.lesswatts.org/projects/powertop/download/powertop-1.11.tar.gz;
-    sha256 = "1wl0c7sav5rf7andnx704vs3n5gj2b5g1adx8zjfbbgvwm9wrrvh";
+    url = http://www.lesswatts.org/projects/powertop/download/powertop-1.13.tar.gz;
+    sha256 = "164dqp6msdaxpi2bmvwawasyrf1sfvanlc9ddp97v1wnjh46dj1b";
   };
-  patches = [./powertop-1.8.patch];
+  patches = [./powertop-1.13.patch];
   buildInputs = [ncurses gettext];
 }
diff --git a/pkgs/os-specific/linux/powertop/powertop-1.13.patch b/pkgs/os-specific/linux/powertop/powertop-1.13.patch
new file mode 100644
index 000000000000..d8a7d546c54c
--- /dev/null
+++ b/pkgs/os-specific/linux/powertop/powertop-1.13.patch
@@ -0,0 +1,15 @@
+diff -ru powertop-1.13/Makefile powertop-1.13.new/Makefile
+--- powertop-1.13/Makefile
++++ powertop-1.13.new/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 1.13
+ 
+-BINDIR=/usr/bin
+-LOCALESDIR=/usr/share/locale
+-MANDIR=/usr/share/man/man8
++BINDIR=${out}/bin
++LOCALESDIR=${out}/share/locale
++MANDIR=${out}/share/man/man8
+ WARNFLAGS=-Wall  -W -Wshadow -W -Wformat -Wimplicit-function-declaration -Wimplicit-int
+ CFLAGS?=-Os -g ${WARNFLAGS}
+ CC?=gcc
diff --git a/pkgs/os-specific/linux/powertop/powertop-1.8.patch b/pkgs/os-specific/linux/powertop/powertop-1.8.patch
deleted file mode 100644
index 0a0d0e553822..000000000000
--- a/pkgs/os-specific/linux/powertop/powertop-1.8.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ru powertop-1.8/Makefile powertop-1.8.new/Makefile
---- powertop-1.8/Makefile	2007-08-19 19:43:08.000000000 +0200
-+++ powertop-1.8.new/Makefile	2007-09-23 12:54:59.000000000 +0200
-@@ -1,6 +1,6 @@
--BINDIR=/usr/bin
--LOCALESDIR=/usr/share/locale
--MANDIR=/usr/share/man/man1
-+BINDIR=${out}/bin
-+LOCALESDIR=${out}/share/locale
-+MANDIR=${out}/share/man/man1
- WARNFLAGS=-Wall  -W -Wshadow
- CFLAGS?=-Os -g ${WARNFLAGS}
- CC?=gcc
diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index ef7153871fd2..dad02a9e699d 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -1,33 +1,47 @@
-{ stdenv, fetchurl, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid }:
-   
+{ stdenv, fetchurl, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid, vde2
+, libjpeg, libpng, ncurses }:
+
 assert stdenv.isLinux;
-   
+
 stdenv.mkDerivation rec {
-  name = "qemu-kvm-0.13.0";
-   
+  name = "qemu-kvm-0.14.1";
+
   src = fetchurl {
     url = "mirror://sourceforge/kvm/${name}.tar.gz";
-    sha256 = "0lxym4p2bvqcb37h3wbjd81w4jrj4dn5kivdxcpx27iwgq6n1ckd";
+    sha256 = "09yshk2qzlb37hyp8iygyyf2if2d7r21b7rgkl0jyvv4p1m4z755";
   };
 
   patches = [ ./smb-tmpdir.patch ];
 
-  buildInputs = [ zlib SDL alsaLib pkgconfig pciutils libuuid ];
+  configureFlags = "--audio-drv-list=alsa";
+
+  enableParallelBuilding = true;
+
+  buildInputs =
+    [ zlib SDL alsaLib pkgconfig pciutils libuuid vde2 libjpeg libpng
+      ncurses
+    ];
 
   preBuild =
     ''
       # Don't use a hardcoded path to Samba.
       substituteInPlace ./net.h --replace /usr/sbin/smbd smbd
     '';
-  
+
   postInstall =
     ''
       # extboot.bin isn't installed due to a bug in the Makefile.
       cp pc-bios/optionrom/extboot.bin $out/share/qemu/
+
+      # Libvirt expects us to be called `qemu-kvm'.  Otherwise it will
+      # set the domain type to "qemu" rather than "kvm", which can
+      # cause architecture selection to misbehave.
+      ln -s $(cd $out/bin && echo qemu-system-*) $out/bin/qemu-kvm
     '';
 
   meta = {
     homepage = http://www.linux-kvm.org/;
     description = "A full virtualization solution for Linux on x86 hardware containing virtualization extensions";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/rtkit/default.nix b/pkgs/os-specific/linux/rtkit/default.nix
new file mode 100644
index 000000000000..05ebd0bf8455
--- /dev/null
+++ b/pkgs/os-specific/linux/rtkit/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, dbus, libcap }:
+
+stdenv.mkDerivation rec {
+  name = "rtkit-0.10";
+  
+  src = fetchurl {
+    url = "http://0pointer.de/public/${name}.tar.gz";
+    sha256 = "08118ya3pkxd6gbbshas23xwj483169fqmxzhp5sgmfr16n97skl";
+  };
+
+  buildInputs = [ pkgconfig dbus libcap ];
+  
+  meta = {
+    homepage = http://0pointer.de/blog/projects/rtkit;
+    descriptions = "A daemon that hands out real-time priority to processes";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/sepolgen/default.nix b/pkgs/os-specific/linux/sepolgen/default.nix
new file mode 100644
index 000000000000..a17a4153c47a
--- /dev/null
+++ b/pkgs/os-specific/linux/sepolgen/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, python }:
+stdenv.mkDerivation rec {
+
+  name = "sepolgen-${version}";
+  version = "1.0.23";
+
+  src = fetchurl {
+    url = http://userspace.selinuxproject.org/releases/20101221/devel/sepolgen-1.0.23.tar.gz;
+    sha256 = "04d11l091iclp8lnay9as7y473ydrjz7171h95ddsbn0ihj5if2p";
+  };
+
+  buildInputs = [ python ];
+  preBuild = '' makeFlags="$makeFlags DESTDIR=$out PACKAGEDIR=$out/lib/${python.libPrefix}/site-packages/sepolgen" '';
+
+  meta = with stdenv.lib; {
+    homepage = http://userspace.selinuxproject.org/;
+    description = "Python module for SELinux policy generation";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/sysfsutils/default.nix b/pkgs/os-specific/linux/sysfsutils/default.nix
index 0bb87eff3323..cecb65f50a2f 100644
--- a/pkgs/os-specific/linux/sysfsutils/default.nix
+++ b/pkgs/os-specific/linux/sysfsutils/default.nix
@@ -1,4 +1,5 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
+
 stdenv.mkDerivation rec {
   name = "sysfsutils-2.1.0";
 
@@ -9,11 +10,12 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://linux-diag.sourceforge.net/Sysfsutils.html;
-    longDescription = "
-      These are a set of utilites built upon sysfs, a new virtual
-      filesystem in Linux kernel versions 2.5+ that exposes a system's
-      device tree.
-    ";
+    longDescription =
+      ''
+        These are a set of utilites built upon sysfs, a new virtual
+        filesystem in Linux kernel versions 2.5+ that exposes a system's
+        device tree.
+      '';
     license = "GPL-v2 / LGPL-v2.1";
   };
 }
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index ae9ed8bf539b..1287da097ca7 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, nasm, perl }:
 
 stdenv.mkDerivation rec {
-  name = "syslinux-4.02";
+  name = "syslinux-4.03";
   
   src = fetchurl {
     url = "mirror://kernel/linux/utils/boot/syslinux/4.xx/${name}.tar.bz2";
-    sha256 = "0zrk6magnrfa7nmdk2rll7xaym9rapwqqgy0wdh3cfscjmcw9kwm";
+    sha256 = "0f6s1cnibw6j0jh9bn5qsx3vsar9l1w9b3xfjkvzglgr4kinfmf6";
   };
 
   patches = [ ./perl-deps.patch ];
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   preBuild =
     ''
       substituteInPlace gpxe/src/Makefile.housekeeping --replace /bin/echo $(type -P echo)
+      substituteInPlace gpxe/src/Makefile --replace /usr/bin/perl $(type -P perl)
       makeFlagsArray=(BINDIR=$out/bin SBINDIR=$out/sbin LIBDIR=$out/lib INCDIR=$out/include DATADIR=$out/share MANDIR=$out/share/man PERL=perl)
     '';
 }
diff --git a/pkgs/os-specific/linux/udev/145.nix b/pkgs/os-specific/linux/udev/145.nix
new file mode 100644
index 000000000000..fd1cb8a2d8dc
--- /dev/null
+++ b/pkgs/os-specific/linux/udev/145.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, gperf, pkgconfig, glib, acl, libusb, usbutils, pciutils }:
+
+assert stdenv ? glibc;
+
+stdenv.mkDerivation rec {
+  name = "udev-145";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/utils/kernel/hotplug/${name}.tar.bz2";
+    sha256 = "1zmibp6n7d582fqx8vmg9vb2a1435hghfpz36056bc25ccwf7yiv";
+  };
+
+  buildInputs = [gperf pkgconfig glib acl libusb usbutils];
+
+  configureFlags = "--with-pci-ids-path=${pciutils}/share/pci.ids";
+
+  preConfigure =
+    ''
+      substituteInPlace extras/keymap/Makefile.in \
+        --replace /usr/include ${stdenv.glibc}/include
+    '';
+
+  postInstall =
+    ''
+      # Install some rules that really should be installed by default.
+      for i in 40-alsa.rules 40-infiniband.rules 40-isdn.rules 40-pilot-links.rules 64-device-mapper.rules 64-md-raid.rules; do
+        cp rules/packages/$i $out/libexec/rules.d/
+      done
+
+      # The path to rule_generator.functions in write_cd_rules and
+      # write_net_rules is broken.  Also, don't store the mutable
+      # persistant rules in /etc/udev/rules.d but in
+      # /var/lib/udev/rules.d.
+      for i in $out/libexec/write_cd_rules $out/libexec/write_net_rules; do
+        substituteInPlace $i \
+          --replace /lib/udev $out/libexec \
+          --replace /etc/udev/rules.d /var/lib/udev/rules.d
+      done
+
+      # Don't set PATH to /bin:/sbin; won't work in NixOS.
+      substituteInPlace $out/libexec/rule_generator.functions \
+        --replace 'PATH=' '#PATH='
+
+      # Don't hardcore the FIRMWARE_DIRS variable; obtain it from the
+      # environment of the caller.
+      sed '3,4d' -i $out/libexec/firmware.sh
+    '';
+
+  meta = {
+    homepage = http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html;
+    description = "Udev manages the /dev filesystem";
+  };
+}
diff --git a/pkgs/os-specific/linux/udev/default.nix b/pkgs/os-specific/linux/udev/172.nix
index 4dec9200ed52..f8d7e1288f4b 100644
--- a/pkgs/os-specific/linux/udev/default.nix
+++ b/pkgs/os-specific/linux/udev/172.nix
@@ -4,11 +4,11 @@
 assert stdenv ? glibc;
 
 stdenv.mkDerivation rec {
-  name = "udev-160";
+  name = "udev-172";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/kernel/hotplug/${name}.tar.bz2";
-    sha256 = "0wx43bxiff8i80k7w3j2iszksdzw1hz6sanx8cjsiypgppi4fr12";
+    sha256 = "0smxggvhhilcqcsi98fmk0nngzy1x8v6ibas609zysgza74rr5dq";
   };
 
   buildInputs = [ gperf pkgconfig glib acl libusb usbutils ];
@@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
       --with-firmware-path=/root/test-firmware:/var/run/current-system/firmware
     '';
 
+  # Workaround for the Linux kernel headers being too old.
+  NIX_CFLAGS_COMPILE = "-DBTN_TRIGGER_HAPPY=0x2c0";
+    
   postInstall =
     ''
       # The path to rule_generator.functions in write_cd_rules and
@@ -36,6 +39,8 @@ stdenv.mkDerivation rec {
       sed -e '/PATH=/d' -i $out/libexec/rule_generator.functions
 
       ln -s $out/lib/ConsoleKit $out/etc/ConsoleKit
+
+      rm -rf $out/share/gtk-doc
     '';
   
   meta = {
diff --git a/pkgs/os-specific/linux/udisks/default.nix b/pkgs/os-specific/linux/udisks/default.nix
new file mode 100644
index 000000000000..17482f698999
--- /dev/null
+++ b/pkgs/os-specific/linux/udisks/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, sg3_utils, udev, glib, dbus, dbus_glib
+, polkit, parted, lvm2, libatasmart, intltool, libuuid, mdadm
+, libxslt, docbook_xsl, utillinux, automake, autoconf }:
+
+stdenv.mkDerivation rec {
+  name = "udisks-1.0.3";
+
+  src = fetchurl {
+    url = "http://hal.freedesktop.org/releases/${name}.tar.gz";
+    sha256 = "0jwavs2ag0cv46517j17943s16a8fw2lqk4k3cljgivh5aswwnyr";
+  };
+
+  # Move 80-udisks.rules manually to make the patch smaller
+  prePatch = "mv -v data/80-udisks.rules{,.in}";
+
+  # Not written a patch that can be accepted upstream yet
+  postPatch = "sed -e 's@/sbin/mdadm@${mdadm}&@' -i data/80-udisks.rules.in";
+
+  patches = [ ./purity.patch ];
+
+
+  buildInputs =
+    [ sg3_utils udev glib dbus dbus_glib polkit parted
+      lvm2 libatasmart intltool libuuid libxslt docbook_xsl
+    ];
+
+  buildNativeInputs = [ automake autoconf pkgconfig ];
+
+  configureFlags = "--localstatedir=/var";
+
+  preConfigure =
+    ''
+      # Ensure that udisks can find the necessary programs.
+      substituteInPlace src/main.c --replace \
+        "/sbin:/bin:/usr/sbin:/usr/bin" \
+        "${utillinux}/bin:${mdadm}/sbin:/var/run/current-system/sw/bin:/var/run/current-system/sw/sbin"
+
+      automake
+    '';
+
+  meta = {
+    homepage = http://www.freedesktop.org/wiki/Software/udisks;
+    description = "A daemon and command-line utility for querying and manipulating storage devices";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/udisks/purity.patch b/pkgs/os-specific/linux/udisks/purity.patch
new file mode 100644
index 000000000000..1896c757557a
--- /dev/null
+++ b/pkgs/os-specific/linux/udisks/purity.patch
@@ -0,0 +1,74 @@
+diff --git a/data/80-udisks.rules.in b/data/80-udisks.rules.in
+index 6720394..60b67ed 100644
+--- a/data/80-udisks.rules.in
++++ b/data/80-udisks.rules.in
+@@ -23,7 +23,7 @@ LABEL="ata_port_cardbus_end"
+ #  this is the case we can trigger a 'change' on the sas_expander device
+ #  when the bsg device appears)
+ #
+-SUBSYSTEM=="sas_expander", ACTION=="add|change", IMPORT{program}="udisks-probe-sas-expander /sys/%p"
++SUBSYSTEM=="sas_expander", ACTION=="add|change", IMPORT{program}="@slashlibdir@/udev/udisks-probe-sas-expander /sys/%p"
+ 
+ ##############################################################################################################
+ 
+@@ -54,7 +54,7 @@ ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="udisks_end"
+ # import UDISKS_DM_* and UDISKS_LVM2_* properties - the long-term plan is to make the lvm2 and
+ # device-mapper packages provide this information
+ #
+-KERNEL=="dm-*", IMPORT{program}="udisks-dm-export %M %m"
++KERNEL=="dm-*", IMPORT{program}="@slashlibdir@/udev/udisks-dm-export %M %m"
+ 
+ # Make udevd synthesize a 'change' uevent when last opener of a rw-fd closes the fd - this
+ # should be part of the device-mapper rules
+@@ -63,7 +63,7 @@ KERNEL=="dm-*", OPTIONS+="watch"
+ ##############################################################################################################
+ # Probe LVM2 Physical Volumes - this will eventually be part of the LVM2 package
+ 
+-ENV{ID_FS_TYPE}=="LVM2_member", TEST=="/lib/udev/udisks-lvm-pv-export", IMPORT{program}="udisks-lvm-pv-export $env{ID_FS_UUID}"
++ENV{ID_FS_TYPE}=="LVM2_member", TEST=="@slashlibdir@/udev/udisks-lvm-pv-export", IMPORT{program}="@slashlibdir@/udev/udisks-lvm-pv-export $env{ID_FS_UUID}"
+ 
+ ##############################################################################################################
+ 
+@@ -85,7 +85,7 @@ KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="", GOTO="probe_parttable_e
+ 
+ # scan for partition tables both on whole-disk and partitions
+ #
+-IMPORT{program}="udisks-part-id $tempnode"
++IMPORT{program}="@slashlibdir@/udev/udisks-part-id $tempnode"
+ 
+ LABEL="probe_parttable_end"
+ 
+@@ -109,13 +109,13 @@ LABEL="md_end"
+ #
+ 
+ # USB ATA enclosures with a SAT layer
+-KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", IMPORT{program}="udisks-probe-ata-smart $tempnode"
++KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", IMPORT{program}="@slashlibdir@/udev/udisks-probe-ata-smart $tempnode"
+ 
+ # ATA disks driven by libata
+-KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", IMPORT{program}="udisks-probe-ata-smart $tempnode"
++KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", IMPORT{program}="@slashlibdir@/udev/udisks-probe-ata-smart $tempnode"
+ 
+ # ATA disks connected via SAS (not driven by libata)
+-KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="disk", ENV{ID_VENDOR}=="ATA", IMPORT{program}="udisks-probe-ata-smart $tempnode"
++KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="disk", ENV{ID_VENDOR}=="ATA", IMPORT{program}="@slashlibdir@/udev/udisks-probe-ata-smart $tempnode"
+ 
+ 
+ # Example rule for tagging a device with a specific media type. Where and
+diff --git a/data/Makefile.am b/data/Makefile.am
+index ca6d8ac..ed9faa3 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -25,7 +25,11 @@ $(dbusconf_DATA): $(dbusconf_in_files) Makefile
+ 	cp $< $@
+ 
+ udevrulesdir = $(slashlibdir)/udev/rules.d
+-udevrules_DATA = 80-udisks.rules
++udevrules_in_files = 80-udisks.rules.in
++udevrules_DATA =  $(udevrules_in_files:.rules.in=.rules)
++
++$(udevrules_DATA): $(udevrules_in_files) Makefile
++	@sed -e "s|\@slashlibdir\@|$(slashlibdir)|g" $< > $@
+ 
+ pkgconfigdir = $(datadir)/pkgconfig
+ pkgconfig_DATA = udisks.pc
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
new file mode 100644
index 000000000000..441a1a06c401
--- /dev/null
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, xz, pkgconfig, glib, dbus, dbus_glib, polkit
+, intltool, libxslt, docbook_xsl, udev, libusb1, pmutils }:
+
+assert stdenv.isLinux;
+
+stdenv.mkDerivation rec {
+  name = "upower-0.9.12";
+
+  src = fetchurl {
+    url = "http://upower.freedesktop.org/releases/${name}.tar.xz";
+    sha256 = "1c2b2f74vxx1y7vkwbrx5z4j5pdgvsw00l6cldvy7a4k7hrbprq6";
+  };
+
+  buildInputs =
+    [ xz pkgconfig glib dbus dbus_glib polkit intltool
+      libxslt docbook_xsl udev libusb1
+    ];
+
+  configureFlags = "--with-backend=linux --localstatedir=/var";
+
+  preConfigure =
+    ''
+      substituteInPlace src/linux/up-backend.c \
+        --replace /usr/bin/pm- ${pmutils}/bin/pm- \
+        --replace /usr/sbin/pm- ${pmutils}/sbin/pm-
+    '';
+
+  installFlags = "localstatedir=$(TMPDIR)/var";
+
+  meta = {
+    homepage = http://upower.freedesktop.org/;
+    description = "A D-Bus service for power management";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/upstart/default.nix b/pkgs/os-specific/linux/upstart/default.nix
index 3f21e515e46d..fba832354754 100644
--- a/pkgs/os-specific/linux/upstart/default.nix
+++ b/pkgs/os-specific/linux/upstart/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, dbus, libnih }:
 
 stdenv.mkDerivation rec {
-  name = "upstart-0.6.6";
+  name = "upstart-0.6.7";
   
   src = fetchurl {
     url = "http://upstart.ubuntu.com/download/0.6/${name}.tar.gz";
-    sha256 = "1cy962n4ljjxfxaigcnqsl9gq8j09j28g5jg19zk4lc7h1503d3s";
+    sha256 = "1f1pds27cadi6ycii1fkn5bbs1brjqxa2b45wfn03ikc2azqxlr9";
   };
 
   buildInputs = [ pkgconfig dbus libnih ];
diff --git a/pkgs/os-specific/linux/util-linux-ng/default.nix b/pkgs/os-specific/linux/util-linux-ng/default.nix
index 2ae172c6c190..4e62be4ff32d 100644
--- a/pkgs/os-specific/linux/util-linux-ng/default.nix
+++ b/pkgs/os-specific/linux/util-linux-ng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses ? null }:
+{ stdenv, fetchurl, ncurses ? null, perl ? null }:
 
 stdenv.mkDerivation rec {
   name = "util-linux-ng-2.18";
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     ${if ncurses == null then "--without-ncurses" else ""}
   '';
 
-  buildInputs = stdenv.lib.optional (ncurses != null) ncurses;
+  buildInputs = stdenv.lib.optional (ncurses != null) ncurses
+             ++ stdenv.lib.optional (perl != null) perl;
 }
diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
new file mode 100644
index 000000000000..d20821e137c3
--- /dev/null
+++ b/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , libv4l, libjpeg, qt4
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="v4l-utils";
+    version="0.8.5";
+    name="${baseName}-${version}";
+    url="http://www.linuxtv.org/downloads/v4l-utils/${name}.tar.bz2";
+    hash="0k2rkra8lyimj6bwm8khq6xrhjdy67d09blxa6brnj7kpa7q81f2";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doUnpack" "doMakeInstall"];
+
+  makeFlags = [''PREFIX="" DESTDIR="$out"''];
+      
+  meta = {
+    description = "Video-4-Linux utilities";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.linuxtv.org/downloads/v4l-utils/";
+    };
+  };
+}) x
+
diff --git a/pkgs/os-specific/linux/wpa_supplicant/builder-gui-qt4.sh b/pkgs/os-specific/linux/wpa_supplicant/builder-gui-qt4.sh
deleted file mode 100644
index 728b5837b168..000000000000
--- a/pkgs/os-specific/linux/wpa_supplicant/builder-gui-qt4.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-source $stdenv/setup
-
-tar xfvz $src
-cd $pkgname-$version/wpa_supplicant
-cp defconfig .config
-substituteInPlace Makefile --replace /usr/local $out
-make wpa_gui-qt4
-cd wpa_gui-qt4
-cd icons
-make
-ensureDir $out/share/icons
-cp -av hicolor $out/share/icons
-cd ..
-ensureDir $out/bin
-cp wpa_gui $out/bin
-ensureDir $out/share/applications
-cp wpa_gui.desktop $out/share/applications
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index be7c5a38c2a6..875a4811f92d 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -1,53 +1,68 @@
-{stdenv, fetchurl, openssl
-, guiSupport ? false
-, qt4}:
-
-assert !guiSupport || qt4 != null;
+{stdenv, fetchurl, openssl, qt4, inkscape}:
 
 let
-  buildDirs = "wpa_supplicant wpa_passphrase wpa_cli";
-in
-
-stdenv.mkDerivation rec {
-  name = "wpa_supplicant-0.7.2";
-
+  version = "0.7.2";
   src = fetchurl {
-    url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
+    url = "http://hostap.epitest.fi/releases/wpa_supplicant-${version}.tar.gz";
     sha256 = "1gnwhnczli50gidsq22ya68hixmdrhd1sxw202ygihvg6xsjl06z";
   };
+in
+
+(stdenv.mkDerivation rec {
+  name = "wpa_supplicant-${version}";
+  inherit src;
 
   preBuild = ''
     cd wpa_supplicant
-    cp defconfig .config
-    echo CONFIG_DEBUG_SYSLOG=y >> .config
+    cp -v defconfig .config
+    echo CONFIG_DEBUG_SYSLOG=y | tee -a .config
     substituteInPlace Makefile --replace /usr/local $out
-    makeFlagsArray=(ALL="${buildDirs} ${if guiSupport then "wpa_gui-qt4" else ""}")
   '';
 
-  buildInputs = [openssl]
-    ++ stdenv.lib.optional guiSupport qt4;
-
-  # qt gui doesn't install because the executable is named differently from directory name
-  # so never include wpa_gui_-qt4 in buildDirs when running make install
-  preInstall = if guiSupport then ''
-    makeFlagsArray=(ALL="${buildDirs}")
-  '' else null;
+  buildInputs = [openssl];
 
   postInstall = ''
     ensureDir $out/share/man/man5 $out/share/man/man8
-    cp doc/docbook/*.5 $out/share/man/man5/
-    cp doc/docbook/*.8 $out/share/man/man8/
-  ''
-  + (if guiSupport then ''
-      pwd
-      cp wpa_gui-qt4/wpa_gui $out/sbin
-    '' else "");
+    cp -v doc/docbook/*.5 $out/share/man/man5/
+    cp -v doc/docbook/*.8 $out/share/man/man8/
+  '';
 
   meta = {
     homepage = http://hostap.epitest.fi/wpa_supplicant/;
     description = "A tool for connecting to WPA and WPA2-protected wireless networks";
-    maintainers = [stdenv.lib.maintainers.marcweber];
+    maintainers = with stdenv.lib.maintainers; [marcweber urkud];
     platforms = stdenv.lib.platforms.linux;
   };
+}) // {
+gui = stdenv.mkDerivation {
+  name = "wpa_gui-${version}";
 
+  inherit src;
+
+  buildInputs = [ qt4 ];
+
+  buildNativeInputs = [ inkscape ];
+
+  prePatch = "cd wpa_supplicant/wpa_gui-qt4";
+
+  configurePhase = ''
+    lrelease wpa_gui.pro
+    qmake'';
+
+# We do not install .xpm icons. First of all, I don't know where they should
+# be install. Second, this allows us to drop imagemagick build-time dependency.
+  postBuild = ''
+    sed -e '/ICONS.*xpm/d' -i icons/Makefile
+    make -C icons
+  '';
+
+  installPhase = ''
+    mkdir -pv $out/bin
+    cp -v wpa_gui $out/bin
+    mkdir -pv $out/share/applications
+    cp -v wpa_gui.desktop $out/share/applications
+    mkdir -pv $out/share/icons
+    cp -av icons/hicolor $out/share/icons
+  '';
+};
 }
diff --git a/pkgs/os-specific/linux/xf86-input-multitouch/default.nix b/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
new file mode 100644
index 000000000000..b8f88216dfa5
--- /dev/null
+++ b/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchgit
+, mtdev
+, xorgserver
+, xproto
+, pixman
+, xextproto
+, inputproto
+, randrproto
+, libpciaccess
+}:
+
+stdenv.mkDerivation {
+  name = "xf86-input-multitouch-20110312";
+
+  src = fetchgit {
+    url = http://bitmath.org/git/multitouch.git;
+    rev = "4d87c041f6a232aa30528d70d4b9946d1824b4ed";
+    sha256 = "de705e34bc75654139dfcbedfe43a3d182d140b198fcd57ab190d549471305ca";
+  };
+
+  # Configuration from http://bitmath.org/code/multitouch/
+  confFile = ''
+    Section "InputClass"
+        MatchIsTouchpad "true"
+        Identifier "Multitouch Touchpad"
+        Driver "multitouch"
+    EndSection
+  '';
+
+  buildInputs = [ mtdev xproto xextproto inputproto libpciaccess randrproto ];
+
+  buildPhase = ''
+    make INCLUDE="$NIX_CFLAGS_COMPILE -I${xorgserver}/include/xorg -I${pixman}/include/pixman-1 -Iinclude"
+  '';
+
+  installPhase = ''
+    make DESTDIR="$out" LIBDIR="lib" install
+    ensureDir $out/include/xorg
+    echo -n "$confFile" > $out/include/xorg/10-multitouch.conf
+  '';
+
+  meta = {
+    homepage = http://bitmath.org/code/multitouch/;
+
+    description = "Brings multitouch gestures to the Linux desktop";
+
+    license = "gplv2";
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
+
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/10-wacom.rules b/pkgs/os-specific/linux/xf86-input-wacom/10-wacom.rules
deleted file mode 100644
index ac7632a776d0..000000000000
--- a/pkgs/os-specific/linux/xf86-input-wacom/10-wacom.rules
+++ /dev/null
@@ -1,3 +0,0 @@
-# udev rule to create /dev/input/wacomN for wacom tablets
-
-KERNEL="event*", SYSFS{manufacturer}="WACOM", NAME="input/%k", SYMLINK="input/wacom%e"
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index 05993ad7b487..9cc25174c51f 100644
--- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -1,34 +1,29 @@
-{ stdenv, fetchurl, libX11, libXi, inputproto, file
-, xproto, ncurses, pkgconfig, xorgserver }:
+{ stdenv, fetchurl
+, file, inputproto, libX11, libXext, libXi, libXrandr, libXrender
+, ncurses, pkgconfig, randrproto, xorgserver, xproto, udev }:
 
 stdenv.mkDerivation rec {
-  name = "xf86-input-wacom-0.10.5";
+  name = "xf86-input-wacom-0.11.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2";
-    sha256 = "07rg9a9n1dyjff4awlc5imy44y0lg59qs8h4rr56lgjg612wkmy0";
+    sha256 = "1jmnrkf89a3jjbpn17gyndlv9lqc0n7qwyi22hraxypq213gjclx";
   };
 
-  buildInputs = [ libX11 libXi inputproto xproto ncurses pkgconfig xorgserver
-    file ];
-
-  patchPhase="sed -e s@/usr/bin/file@${file}/bin/file@g -i configure";
+  buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender
+    ncurses pkgconfig randrproto xorgserver xproto udev ];
 
   preConfigure = ''
-    configureFlags="--with-xorg-module-dir=$out/lib/xorg/modules/input
-    --with-sdkdir=$out/include/xorg"
+    ensureDir $out/share/X11/xorg.conf.d
+    configureFlags="--with-xorg-module-dir=$out/lib/xorg/modules
+    --with-sdkdir=$out/include/xorg --with-xorg-conf-dir=$out/share/X11/xorg.conf.d"
   '';
 
-  postInstall =
-    ''
-      ensureDir $out/etc/udev/rules.d
-      cp ${./10-wacom.rules} $out/etc/udev/rules.d/10-wacom.rules
-    '';
-
   meta = with stdenv.lib; {
-    maintainers = [ maintainers.urkud ];
+    maintainers = [ maintainers.goibhniu maintainers.urkud ];
     description = "Wacom digitizer driver for X11";
     homepage = http://linuxwacom.sourceforge.net;
+    license = licenses.gpl2;
     platforms = platforms.linux; # Probably, works with other unices as well
   };
 }
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
new file mode 100644
index 000000000000..1d93c0c5f222
--- /dev/null
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, erlang, python, libxml2, libxslt, xmlto
+, docbook_xml_dtd_45, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  name = "rabbitmq-server-2.4.0";
+
+  src = fetchurl {
+    url = "http://www.rabbitmq.com/releases/rabbitmq-server/v2.4.0/${name}.tar.gz";
+    sha256 = "0zvyyqw9kpzi791hvv8qj1aw0fpx5m5cgqfvffxfrdz8daxx3nma";
+  };
+
+  buildInputs =
+    [ erlang python libxml2 libxslt xmlto docbook_xml_dtd_45 docbook_xsl ];
+
+  preBuild =
+    ''
+      # Fix the "/usr/bin/env" in "calculate-relative".
+      patchShebangs .
+    '';
+
+  installFlags = "TARGET_DIR=$(out)/libexec/rabbitmq SBIN_DIR=$(out)/sbin MAN_DIR=$(out)/share/man";
+
+  postInstall =
+    ''
+      echo 'PATH=${erlang}/bin:${PATH:+:}$PATH' >> $out/sbin/rabbitmq-env
+    ''; # */
+
+  meta = {
+    homepage = http://www.rabbitmq.com/;
+    description = "An implementation of the AMQP messaging protocol";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/servers/dns/bind/9.5.0.nix b/pkgs/servers/dns/bind/9.5.0.nix
deleted file mode 100644
index b6361864d10b..000000000000
--- a/pkgs/servers/dns/bind/9.5.0.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-
-args : with args; 
-rec {
-  src = fetchurl {
-    url = http://ftp.isc.org/isc/bind9/9.5.0/bind-9.5.0.tar.gz;
-    sha256 = "0qfxipj6v9hs9plx388ysnyvpkiamgxpsq8xqzw9hliag4nc1d7v";
-  };
-
-  buildInputs = [openssl libtool];
-  configureFlags = ["--with-libtool" "--with-openssl=${openssl}"];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
-  name = "bind-9.5.0";
-  meta = {
-    description = "ISC BIND: a domain name server";
-  };
-}
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
new file mode 100644
index 000000000000..819bb30c5a61
--- /dev/null
+++ b/pkgs/servers/dns/bind/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, openssl, libtool, perl, libxml2 }:
+
+let
+  version = "9.7.2-P3";
+in
+stdenv.mkDerivation rec {
+
+  name = "bind-${version}";
+
+  src = fetchurl {
+    url = "http://ftp.isc.org/isc/bind9/${version}/${name}.tar.gz";
+    sha256 = "0zpvmgs75lisw746wccm2r428dmd4vv5s1pc512lyrmycr3mz56d";
+  };
+
+  patchPhase = ''
+    sed -i 's/^\t.*run/\t/' Makefile.in
+  '';
+
+  buildInputs = [ openssl libtool perl libxml2 ];
+
+  /* Why --with-libtool? */
+  configureFlags = [ "--with-libtool" "--with-openssl=${openssl}"
+    "--localstatedir=/var" ];
+      
+  meta = {
+    homepage = http://www.isc.org/software/bind;
+    description = "ISC BIND: a domain name server";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/servers/evolution-data-server/default.nix b/pkgs/servers/evolution-data-server/default.nix
index 84c1eee57e58..364bb55a5ee9 100644
--- a/pkgs/servers/evolution-data-server/default.nix
+++ b/pkgs/servers/evolution-data-server/default.nix
@@ -3,7 +3,7 @@ x@{builderDefsPackage
   , db4, krb5, openldap, glib, libxml2, GConf
   , nss, gtk, libgnome, libsoup, gnome_keyring
   , gtkdoc, sqlite, libgweather, libical, icu
-  , dbus_glib, gperf, nspr
+  , dbus_glib, gperf, nspr, gmp, nettle, libgdata_0_6
   , ...}:
 builderDefsPackage
 (a :  
@@ -14,9 +14,9 @@ let
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    url = "mirror://gnome/sources/evolution-data-server/2.30/evolution-data-server-2.30.3.tar.bz2";
-    hash = "147qkpiafrlq220qg2pmp9lbvh8bn339wh1699bgb7rvmdvycwrp";
-    version = "2.30.3";
+    url = "mirror://gnome/sources/evolution-data-server/2.32/evolution-data-server-2.32.3.tar.bz2";
+    hash = "744026a745b711b3e393b61fed21c4926d1b10a3aa7da64f4b33a3e3bf5b085c";
+    version = "2.32.3";
     name = "evolution-data-server-${version}";
   };
 in
diff --git a/pkgs/servers/ftp/vsftpd/default.nix b/pkgs/servers/ftp/vsftpd/default.nix
index 85006a1d1755..0fc1531056bc 100644
--- a/pkgs/servers/ftp/vsftpd/default.nix
+++ b/pkgs/servers/ftp/vsftpd/default.nix
@@ -1,28 +1,41 @@
-{ stdenv, fetchurl, openssl, libcap, pam }:
+{ stdenv, fetchurl, openssl, sslEnable ? false, libcap, pam }:
 
-stdenv.mkDerivation rec {
-  name = "vsftpd-2.0.5";
+stdenv.mkDerivation (rec {
+  name = "vsftpd-2.3.4";
   
   src = fetchurl {
     url = "ftp://vsftpd.beasts.org/users/cevans/${name}.tar.gz";
-    sha256 = "0nzsxknnaqnfk853yjsmi31sl02jf5ydix9wxbldv4i7vzqfnqjl";
+    sha256 = "0nhsqwnb8qkbxx5wjahara1ln85hp151v656psra5brpckwysrml";
   };
-  
-  NIX_LDFLAGS = "-lcrypt -lssl -lcrypto -lpam -lcap";
 
-  preInstall = ''
-    ensureDir $out/{,s}bin
-    ensureDir $out/man/man{5,8}
+  # The gcc-wrappers use -idirafter for glibc, and vsftpd also, and
+  # their dummyinc come before those of glibc, then the build works bad.
+  prePatch = ''
+    sed -i -e 's/-idirafter.*//' Makefile
   '';
-
-  patches = [ ./fix.patch ] ;
   
+  preBuild =''
+    makeFlagsArray=( "LIBS=${if sslEnable then "-lcrypt -lssl -lcrypto " else ""}-lpam -lcap" )
+  '';
+
+  buildInputs = [ openssl libcap pam ];
+
+  installPhase = ''
+    mkdir -pv $out/sbin
+    install -v -m 755 vsftpd $out/sbin/vsftpd
+
+    mkdir -pv $out/share/man/man{5,8}
+    install -v -m 644 vsftpd.8 $out/share/man/man8/vsftpd.8
+    install -v -m 644 vsftpd.conf.5 $out/share/man/man5/vsftpd.conf.5
+
+    mkdir -pv $out/etc/xinetd.d
+    install -v -m 644 xinetd.d/vsftpd $out/etc/xinetd.d/vsftpd
+  '';
+} // (if sslEnable then {
   preConfigure = ''
+    echo "Will enable SSL"
     sed -i "/VSF_BUILD_SSL/s/^#undef/#define/" builddefs.h
-    sed -i "s@/etc/vsftpd.user_list@$out/vsftpd.user_list@" vsftpd.conf.5 tunables.c
   '';
 
-  postInstall = "cp ${./vsftpd.user_list} $out/vsftpd.user_list";
-
-  buildInputs = [ openssl libcap pam ];
-}
+} else { })
+)
diff --git a/pkgs/servers/ftp/vsftpd/fix.patch b/pkgs/servers/ftp/vsftpd/fix.patch
deleted file mode 100644
index aefce9395617..000000000000
--- a/pkgs/servers/ftp/vsftpd/fix.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -rc vsftpd-2.0.3/Makefile vsftpd-2.0.3-new/Makefile
-*** vsftpd-2.0.3/Makefile	Fri Mar 11 20:34:15 2005
---- vsftpd-2.0.3-new/Makefile	Mon Sep 12 17:06:31 2005
-***************
-*** 5,11 ****
-  #CFLAGS = -g
-  CFLAGS	=	-O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion
-  
-- LIBS	=	`./vsf_findlibs.sh`
-  LINK	=	-Wl,-s
-  
-  OBJS	=	main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
---- 5,10 ----
-***************
-*** 24,44 ****
-  	$(CC) -o vsftpd $(OBJS) $(LINK) $(LIBS)
-  
-  install:
-! 	if [ -x /usr/local/sbin ]; then \
-! 		$(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
-  	else \
-! 		$(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
-! 	if [ -x /usr/local/man ]; then \
-! 		$(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
-! 		$(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
-! 	elif [ -x /usr/share/man ]; then \
-! 		$(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
-! 		$(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
-  	else \
-! 		$(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
-! 		$(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
-! 	if [ -x /etc/xinetd.d ]; then \
-! 		$(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
-  
-  clean:
-  	rm -f *.o *.swp vsftpd
---- 23,41 ----
-  	$(CC) -o vsftpd $(OBJS) $(LINK) $(LIBS)
-  
-  install:
-! 	if [ -x $$out/sbin ]; then \
-! 		$(INSTALL) -m 755 vsftpd $$out/sbin/vsftpd; \
-  	else \
-! 		$(INSTALL) -m 755 vsftpd $$out/sbin/vsftpd; fi
-! 	if [ -x $$out/man ]; then \
-! 		$(INSTALL) -m 644 vsftpd.8 $$out/man/man8/vsftpd.8; \
-! 		$(INSTALL) -m 644 vsftpd.conf.5 $$out/man/man5/vsftpd.conf.5; \
-! 	elif [ -x $$out/share/man ]; then \
-! 		$(INSTALL) -m 644 vsftpd.8 $$out/man/man8/vsftpd.8; \
-! 		$(INSTALL) -m 644 vsftpd.conf.5 $$out/share/man/man5/vsftpd.conf.5; \
-  	else \
-! 		$(INSTALL) -m 644 vsftpd.8 $$out/man/man8/vsftpd.8; \
-! 		$(INSTALL) -m 644 vsftpd.conf.5 $$out/man/man5/vsftpd.conf.5; fi
-  
-  clean:
-  	rm -f *.o *.swp vsftpd
diff --git a/pkgs/servers/ftp/vsftpd/vsftpd.user_list b/pkgs/servers/ftp/vsftpd/vsftpd.user_list
deleted file mode 100644
index 4200a1e93447..000000000000
--- a/pkgs/servers/ftp/vsftpd/vsftpd.user_list
+++ /dev/null
@@ -1,3 +0,0 @@
-#list users here that can (not) connect to vsftpd (only needed when userlistenable=true)
-
-raidbackup
diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix
index 067e7c4446b2..31c9deaf3af0 100644
--- a/pkgs/servers/gpsd/default.nix
+++ b/pkgs/servers/gpsd/default.nix
@@ -1,40 +1,29 @@
-{ fetchurl, stdenv, python, pkgconfig, dbus, dbus_glib
+{ fetchurl, stdenv, pythonPackages, pkgconfig, dbus, dbus_glib
 , ncurses, libX11, libXt, libXpm, libXaw, libXext, makeWrapper
+, libusb1, docbook_xml_dtd_412, docbook_xsl, bc
 , libxslt, xmlto, gpsdUser ? "gpsd" }:
 
 stdenv.mkDerivation rec {
-  name = "gpsd-2.39";
+  name = "gpsd-2.95";
 
   src = fetchurl {
     url = "http://download.berlios.de/gpsd/${name}.tar.gz";
-    sha256 = "089ahf97dhws3sk8nc88687h4ny2rlavkzg4wxqkhb0i0fs2yfzf";
+    sha256 = "1bjhyjg561kwp6zc2wg58njdvpnsj5yaa2slz8g3ga1176jl68w3";
   };
 
-  buildInputs = [
-    python pkgconfig dbus dbus_glib ncurses
-    libX11 libXt libXpm libXaw libXext
-    makeWrapper libxslt xmlto
-  ];
+  buildNativeInputs = [ makeWrapper pkgconfig docbook_xml_dtd_412 docbook_xsl
+    xmlto bc pythonPackages.wrapPython ];
 
-  configureFlags = "--enable-dbus --enable-gpsd-user=${gpsdUser} "
+  pythonPath = [ pythonPackages.curses ];
 
-    # Make sure `xgpsspeed' has libXt and libX11 in its RPATH.
-    + "LDFLAGS=-Wl,--rpath=${libXt}/lib:${libX11}/lib";
+  buildInputs = [ pythonPackages.python dbus dbus_glib ncurses libX11 libXt
+    libXpm libXaw libXext libxslt libusb1 ];
+
+  configureFlags = "--enable-static --enable-dbus --enable-gpsd-user=${gpsdUser}";
 
   doCheck = true;
 
-  postInstall = ''
-    for prog in "$out/bin"/*
-    do
-      if grep -q python "$prog"
-      then
-          echo "patching \`$prog'..."
-          wrapProgram "$prog"                                                   \
-            --prefix PATH ":" "${python}/bin"                                   \
-            --prefix PYTHONPATH ":" "$out/lib/${python.libPrefix}/site-packages"
-      fi
-    done
-  '';
+  postInstall = "wrapPythonPrograms";
 
   meta = {
     description = "`gpsd', a GPS service daemon";
diff --git a/pkgs/servers/http/apache-httpd/default.nix b/pkgs/servers/http/apache-httpd/default.nix
index ab3f62331851..1e48381deec3 100644
--- a/pkgs/servers/http/apache-httpd/default.nix
+++ b/pkgs/servers/http/apache-httpd/default.nix
@@ -1,17 +1,19 @@
 { stdenv, fetchurl, openssl, perl, zlib
 , sslSupport, proxySupport ? true
 , apr, aprutil, pcre
+, ldapSupport ? true, openldap
 }:
 
 assert sslSupport -> openssl != null;
+assert ldapSupport -> aprutil.ldapSupport && openldap != null;
 
 stdenv.mkDerivation rec {
-  version = "2.2.17";
+  version = "2.2.19";
   name = "apache-httpd-${version}";
 
   src = fetchurl {
     url = "mirror://apache/httpd/httpd-${version}.tar.bz2";
-    sha256 = "017vc5g0dwjycai2qa8427vkw6wpa57ylhajw6nrmynq7qgg32l6";
+    sha1 = "5676da63f3203129287d7c09a16cf523c00ec6cf";
   };
 
   buildInputs = [perl apr aprutil pcre] ++
@@ -29,6 +31,7 @@ stdenv.mkDerivation rec {
     --enable-authn-alias
     ${if proxySupport then "--enable-proxy" else ""}
     ${if sslSupport then "--enable-ssl --with-ssl=${openssl}" else ""}
+    ${if ldapSupport then "--enable-ldap --enable-authnz-ldap" else ""}
   '';
 
   postInstall = ''
diff --git a/pkgs/servers/http/apache-modules/mod_fastcgi/default.nix b/pkgs/servers/http/apache-modules/mod_fastcgi/default.nix
index 4a016f991ebd..5fdf74551723 100644
--- a/pkgs/servers/http/apache-modules/mod_fastcgi/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_fastcgi/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
       more scalable.
     '';
 
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
index b5073428754c..c8f0da7040cc 100644
--- a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     description = "Host Python applications in Apache through the WSGI interface";
     license = "ASL2.0";
 
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix b/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix
index 8ddadf3f05f5..96fd594aacb7 100644
--- a/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix
+++ b/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, apacheHttpd, jdk}:
 
 stdenv.mkDerivation {
-  name = "tomcat-connectors-1.2.28";
+  name = "tomcat-connectors-1.2.31";
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = http://mirror.hostfuss.com/apache/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz;
-    sha256 = "0vzy864ky5374fwsxm9kcyybwc8asb8r4civnlhl2x90sg7dv3w9";
+    url = http://apache.hippo.nl//tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz;
+    sha256 = "0604mcxj7zdzdl2f8krpj8ig1r5qkga3hia28pijdpvy9n6pxij8";
   };
 
   inherit apacheHttpd;
diff --git a/pkgs/servers/http/joseki/default.nix b/pkgs/servers/http/joseki/default.nix
new file mode 100644
index 000000000000..0a83dd09601f
--- /dev/null
+++ b/pkgs/servers/http/joseki/default.nix
@@ -0,0 +1,112 @@
+x@{builderDefsPackage
+  , unzip
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="jena-joseki";
+    version="3.4.3-201103";
+    name="${baseName}-${version}";
+  };
+in
+rec {
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  tarballs = {
+    jenaBin = a.fetchurl {
+      url = "mirror://sourceforge/project/jena/Jena/Jena-2.6.4/jena-2.6.4.zip";
+      sha256 = "ec23a24eee9148b1ddb366ab035a48eacd43c2b50c534a7bdd9cf31c6f8a9e7c";
+    };
+    josekiBin = a.fetchurl {
+      url = "mirror://sourceforge/project/joseki/Joseki-SPARQL/Joseki-3.4.3/joseki-3.4.3.zip";
+      sha256 = "cde1138e7bafcc2db7800dcde08f268237accd76c0a3e4b4c95cc96eacdcad12";
+    };
+    tdbBin = a.fetchurl {
+      url = "mirror://sourceforge/project/jena/TDB/TDB-0.8.9/tdb-0.8.9.zip";
+      sha256 = "78fd4b6cea5a6e412f1d58ba8a9e1fc72315becdf06f3675e4e604cd4435779e";
+    };
+    arqBin = a.fetchurl {
+      url = "mirror://sourceforge/project/jena/ARQ/ARQ-2.8.7/arq-2.8.7.zip";
+      sha256 = "66990e92514a85a9596a7efaf128041002cd098e063964dd5d2264cfcdd26070";
+    };
+    jettyBin = a.fetchurl {
+      url = "http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip";
+      sha256 = "96c08eb87ec3772dccc2b3dba54fea85ccc3f804faf7429eecfba3ed55648187";
+    };
+  };
+  tarballFiles = map (x: builtins.getAttr x tarballs) (builtins.attrNames tarballs);
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doDeploy" "fixScripts"];
+
+  fixScripts = a.doPatchShebangs ''$TARGET/bin'';
+      
+  doDeploy = a.fullDepEntry (''
+    ${a.lib.concatStringsSep ";" (map (y : "unzip ${y}") tarballFiles)}
+    for i in */; do cp -rTf $i merged; done
+    cd merged
+    
+    for i in "lib/"jsp-*/*.jar; do 
+      ln -s "''${i#lib/}" "lib" || true
+    done
+
+    cp [Cc]opyright* doc
+    mkdir lib/obsolete
+    (
+      ls "lib/"log4j-[0-9]*.jar | sort | tac | tail -n +2 ;
+      ls "lib/"slf4j-api-[0-9]*.jar | sort | tac | tail -n +2 ;
+      ls "lib/"xercesImpl-[0-9]*.jar | sort | tac | tail -n +2 ;
+      ls "lib/"arq-[0-9]*.jar | sort | tac | tail -n +2
+      ls "lib/"tdb-[0-9]*.jar | sort | tac | tail -n +2
+      ls "lib/"jetty-[0-9]*.jar | sort | tac | tail -n +2
+      ls "lib/"jetty-util-[0-9]*.jar | sort | tac | tail -n +2
+    ) | 
+      xargs -I @@ mv @@  lib/obsolete
+
+    mv lib/slf4j-simple-*.jar lib/obsolete
+
+    ensureDir "$out/share"
+    TARGET="$out/share/${name}-dist"
+    cp -r . "$TARGET"
+    ln -s  "$TARGET/lib" "$out/lib"
+    chmod a+x "$TARGET/bin/"*
+    ensureDir "$out/bin"
+
+    echo -e '#! /bin/sh\nls "'"$TARGET"'"/bin' > "$out/bin/jena-list-commands"
+    echo '#! /bin/sh' >> "$out/bin/jena-command"
+    echo 'export JENAROOT="'"$TARGET"'"' >> "$out/bin/jena-command"
+    echo 'export JOSEKIROOT="'"$TARGET"'"' >> "$out/bin/jena-command"
+    echo 'export TDBROOT="'"$TARGET"'"' >> "$out/bin/jena-command"
+    echo 'export ARQROOT="'"$TARGET"'"' >> "$out/bin/jena-command"
+    echo 'sh "'"$TARGET"'"/bin/"$@"' >> "$out/bin/jena-command"
+
+    chmod a+x "$out/bin/"*
+  '') ["defEnsureDir" "minInit" "addInputs"];
+
+  trimVersions = a.fullDepEntry (''
+  '') ["doDeploy" "minInit"];
+
+  passthru = {
+    inherit tarballs;
+  };
+
+  meta = {
+    description = "An RDF database with SparQL interface over HTTP";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      []; # Builder is just unpacking/mixing what is needed
+    license = "free"; # mix of packages under different licenses
+    homepage = "http://openjena.org/";
+  };
+}) x
+
diff --git a/pkgs/servers/http/mini-httpd/default.nix b/pkgs/servers/http/mini-httpd/default.nix
new file mode 100644
index 000000000000..a6ae56b65341
--- /dev/null
+++ b/pkgs/servers/http/mini-httpd/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, boost }:
+
+stdenv.mkDerivation {
+  name = "mini-httpd-1.1";
+
+  src = fetchurl {
+    url = "mirror://savannah/mini-httpd/mini-httpd-1.1.tar.gz";
+    sha256 = "12hqvh67hgxmc9b3fhb8gb5ash7j6f7d0mxv47zkmjl7k3vw3ny7";
+  };
+
+  buildInputs = [ boost ];
+
+  meta = {
+    homepage = "http://mini-httpd.nongnu.org/";
+    description = "a minimalistic high-performance web server";
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/servers/http/myserver/default.nix b/pkgs/servers/http/myserver/default.nix
index 776c121399e2..32526ddf65de 100644
--- a/pkgs/servers/http/myserver/default.nix
+++ b/pkgs/servers/http/myserver/default.nix
@@ -1,16 +1,17 @@
 { fetchurl, stdenv, libgcrypt, libevent, libidn, gnutls
-, libxml2, zlib, guile, texinfo, cppunit, xz }:
+, libxml2, zlib, guile, texinfo, cppunit, xz, psmisc }:
 
-let version = "0.10"; in
-  stdenv.mkDerivation rec {
+let version = "0.11"; in
+  stdenv.mkDerivation (rec {
     name = "myserver-${version}";
 
     src = fetchurl {
       url = "mirror://gnu/myserver/${version}/${name}.tar.xz";
-      sha256 = "0w8njgka54if8ycd9cyxgmqa0ivv7r0rka7gda3x2rfr2z4nxvpb";
+      sha256 = "02y3vv4hxpy5h710y79s8ipzshhc370gbz1wm85x0lnq5nqxj2ax";
     };
 
-    patches = [ ./disable-dns-lookup-in-chroot.patch ];
+    patches =
+      [ ./disable-dns-lookup-in-chroot.patch ];
 
     buildInputs =
       [ libgcrypt libevent libidn gnutls libxml2 zlib guile texinfo xz ]
@@ -42,3 +43,11 @@ let version = "0.10"; in
       platforms = stdenv.lib.platforms.gnu;
     };
   }
+
+  //
+
+  # On GNU/Linux the `test_suite' process sometimes stays around, so
+  # forcefully terminate it.
+  (if stdenv.isLinux
+   then { postCheck = "${psmisc}/bin/killall test_suite || true"; }
+   else { }))
diff --git a/pkgs/servers/http/myserver/installable-binary.patch b/pkgs/servers/http/myserver/installable-binary.patch
new file mode 100644
index 000000000000..346e76afd5ec
--- /dev/null
+++ b/pkgs/servers/http/myserver/installable-binary.patch
@@ -0,0 +1,14 @@
+We actually want the `myserver' binary to be installable.  Failing to do that
+it gets an RPATH pointing to $top_builddir/src/.libs.
+
+--- myserver-0.10/src/Makefile.in	2010-10-14 12:45:42.000000000 +0200
++++ myserver-0.10/src/Makefile.in	2011-03-03 22:23:05.000000000 +0100
+@@ -1307,7 +1307,6 @@ libmyserver_la_LIBADD = \
+ 		$(INTLLIBS) $(LDFLAGS)
+ 
+ myserver_CXXFLAGS = $(AM_CXXFLAGS) $(CXXFLAGS) -DHOST_STR=\"$(build)\" -DPREFIX=\"$(prefix)\"
+-myserver_LDFLAGS = -static -no-install
+ myserver_LDADD = libmyserver.la $(PTHREAD_LIB) $(IDN_LIB) \
+ 	$(XNET_LIB) $(DL_LIB) $(ZLIB_LIB) \
+ 	$(XML_LIBS) $(INTLLIBS) $(LDFLAGS)
+
diff --git a/pkgs/servers/http/nginx/src-for-default.nix b/pkgs/servers/http/nginx/src-for-default.nix
index 02bf2efae9cb..319427c0e02e 100644
--- a/pkgs/servers/http/nginx/src-for-default.nix
+++ b/pkgs/servers/http/nginx/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="0.7.65";
-   name="nginx-0.7.65";
-   hash="0fn35sm94p7s28hrih1qb2b634zdzkldsfhzk7gixc09bapwrw69";
+   version="1.0.0";
+   name="nginx-1.0.0";
+   hash="00f0fjkdqi0xl1kcg6d91zmvj82n8w1znp5w9v152rymxv5ddqrx";
    url="http://sysoev.ru/nginx/nginx-${version}.tar.gz";
-   advertisedUrl="http://sysoev.ru/nginx/nginx-0.7.65.tar.gz";
+   advertisedUrl="http://sysoev.ru/nginx/nginx-1.0.0.tar.gz";
   
   
 }
diff --git a/pkgs/servers/http/nginx/src-info-for-default.nix b/pkgs/servers/http/nginx/src-info-for-default.nix
index 3784e931f39e..10ba1c8cd4bb 100644
--- a/pkgs/servers/http/nginx/src-info-for-default.nix
+++ b/pkgs/servers/http/nginx/src-info-for-default.nix
@@ -1,4 +1,4 @@
 {
-  downloadPage = "http://sysoev.ru/nginx/";
+  downloadPage = "http://sysoev.ru/nginx/download.html";
   baseName = "nginx";
 }
diff --git a/pkgs/servers/http/redstore/default.nix b/pkgs/servers/http/redstore/default.nix
index 87a89072ec69..c47449ce6bd7 100644
--- a/pkgs/servers/http/redstore/default.nix
+++ b/pkgs/servers/http/redstore/default.nix
@@ -1,32 +1,25 @@
-x@{builderDefsPackage
-  , redland, pkgconfig, gmp
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  s = import ./src-for-default.nix;
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-in
-rec {
-  src = a.fetchUrlFromSrcInfo s;
+{ stdenv, fetchurl, redland, pkgconfig, gmp, zlib, librdf_raptor2
+  , librdf_rasqal }:
 
-  inherit (s) name;
-  inherit buildInputs;
+stdenv.mkDerivation rec {
+  name = "redstore-0.5.2";
+
+  src = fetchurl {
+    url = "http://www.aelius.com/njh/redstore/${name}.tar.gz";
+    sha256 = "fdbe499a7bbe8c8a756ecb738b83ea375e96af16a1d74245b75600d4d40adb7d";
+  };
+
+  buildInputs = [ gmp pkgconfig redland zlib librdf_raptor2 librdf_rasqal ];
+     
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${librdf_raptor2}/include/raptor2"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${librdf_rasqal}/include/rasqal"
+  '';
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
   meta = {
     description = "An HTTP interface to Redland RDF store";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = with stdenv.lib.platforms;
       linux ++ freebsd ++ gnu;
   };
-}) x
-
+}
diff --git a/pkgs/servers/http/redstore/src-for-default.nix b/pkgs/servers/http/redstore/src-for-default.nix
deleted file mode 100644
index 963abcb7dbb3..000000000000
--- a/pkgs/servers/http/redstore/src-for-default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-rec {
-   version="0.4";
-   name="redstore-0.4";
-   hash="1fs54v0d0kkqaz9ajacabb8wifrglvg6kkhd5b0mxmnng352wpp7";
-   url="http://redstore.googlecode.com/files/redstore-${version}.tar.gz";
-   advertisedUrl="http://redstore.googlecode.com/files/redstore-0.4.tar.gz";
-  
-  
-}
diff --git a/pkgs/servers/http/redstore/src-info-for-default.nix b/pkgs/servers/http/redstore/src-info-for-default.nix
deleted file mode 100644
index fe1082a587e7..000000000000
--- a/pkgs/servers/http/redstore/src-info-for-default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  downloadPage = "http://code.google.com/p/redstore/downloads/list";
-  baseName = "redstore";
-  choiceCommand = '' head -n 1 | 
-   sed -re "s@[&].*@@; s@.*[?]name=(.*)@http://$(sed -re "s@.*/p/([^/]+)/.*@\\1@" <<< "$(getAttr downloadPage)").googlecode.com/files/\\1@" '';
-}
diff --git a/pkgs/servers/http/tomcat/6.0.nix b/pkgs/servers/http/tomcat/6.0.nix
index 317634d9ab46..79393a5d7cf9 100644
--- a/pkgs/servers/http/tomcat/6.0.nix
+++ b/pkgs/servers/http/tomcat/6.0.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 
-let version = "6.0.29"; in
+let version = "6.0.32"; in
 
 stdenv.mkDerivation rec {
   name = "apache-tomcat-${version}";
 
   src = fetchurl {
     url = "mirror://apache/tomcat/tomcat-6/v${version}/bin/${name}.tar.gz";
-    sha256 = "0v96wmd4fnk3qskw32k8mb77f7yssqqinsrf9sir672l5ggmmcjc";
+    sha256 = "505e649d1ffcf746e66be8295c8244a2949349dedf678e9f2a659c4736968c5e";
   };
 
   installPhase =
diff --git a/pkgs/servers/http/tomcat/axis2/default.nix b/pkgs/servers/http/tomcat/axis2/default.nix
index 066dfff36a73..66e0f78f5ca3 100644
--- a/pkgs/servers/http/tomcat/axis2/default.nix
+++ b/pkgs/servers/http/tomcat/axis2/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, apacheAnt, jdk, unzip}:
 
 stdenv.mkDerivation {
-  name = "axis2-1.5.1";
+  name = "axis2-1.5.4";
 
   src = fetchurl {
-    url = http://www.bizdirusa.com/mirrors/apache/ws/axis2/1_5_1/axis2-1.5.1-bin.zip;
-    sha256 = "04zcn9g4r7pxfpp5g5rpjjlddr5mibqmsz4lfbkz2vjf3jrldgy5";
+    url = http://apache.mirror.easycolocate.nl/axis/axis2/java/core/1.5.4/axis2-1.5.4-bin.zip;
+    sha256 = "0mqnsj14g8aqmh3gjxgys6kwa7q8jkjgczb0hlcr4v2par0hdfng";
   };
 
   buildInputs = [ unzip apacheAnt jdk ];
diff --git a/pkgs/servers/mail/freepops/default.nix b/pkgs/servers/mail/freepops/default.nix
new file mode 100644
index 000000000000..d58660297623
--- /dev/null
+++ b/pkgs/servers/mail/freepops/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, pkgconfig, openssl, lua5, curl, readline, bison, expat}:
+
+stdenv.mkDerivation {
+  name = "freepops-0.2.9";
+  src = fetchurl {
+    url = mirror://sf/freepops/0.2.9/freepops-0.2.9.tar.gz;
+    sha256 = "3a065e30cafed03d9b6fdb28251ae5bf0d8aeb62181746154beecd25dc0c9cae";
+  };
+  buildInputs = [pkgconfig openssl lua5 curl readline bison expat];
+  configurePhase =
+  ''
+    export WHERE=$prefix/
+    export LOCALEDIR=$prefix/share/locale/
+    ./configure.sh linux
+  '';
+
+  meta = {
+    description = "An extensible pop3 server";
+    longDescription = ''
+      FreePOPs is an extensible pop3 server. Its main purpose is to provide
+      a pop3 interface to a webmail.
+    '';
+    homepage = http://www.freepops.org/;
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [ pierron ];
+  };
+}
diff --git a/pkgs/servers/mediatomb/default.nix b/pkgs/servers/mediatomb/default.nix
new file mode 100644
index 000000000000..d040a4c9a57a
--- /dev/null
+++ b/pkgs/servers/mediatomb/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl
+, sqlite, expat, spidermonkey, taglib, libexif, curl, ffmpeg, file }:
+stdenv.mkDerivation rec {
+
+  name = "mediatomb-${version}";
+  version = "0.12.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mediatomb/${name}.tar.gz";
+    sha256 = "1k8i5zvgik7cad7znd8358grzwh62frpqww1a5rwkldrlws3q5ii";
+  };
+
+  buildInputs = [ sqlite expat spidermonkey taglib libexif curl ffmpeg file ];
+
+  configureFlags = [ "--enable-inotify" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://mediatomb.cc;
+    description = "UPnP MediaServer with a web user interface,";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/servers/monitoring/zabbix/default.nix b/pkgs/servers/monitoring/zabbix/default.nix
index e1e7c5acd717..09d536274508 100644
--- a/pkgs/servers/monitoring/zabbix/default.nix
+++ b/pkgs/servers/monitoring/zabbix/default.nix
@@ -2,11 +2,11 @@
 
 let
 
-  version = "1.8.3";
+  version = "1.8.4";
   
   src = fetchurl {
     url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
-    sha256 = "0p064602bgkwcs0hmij9i8fn50bx4w6liw8b71hs6qcn3isjs9ip";
+    sha256 = "0fhn4gw8r96dy0z227k5bl144zpmgsk1jkwzhi61qqr44mz27fqc";
   };
 
   preConfigure =
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index 10b59417f8fc..0c3257d61c37 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -7,10 +7,10 @@ let
   opt = stdenv.lib.optional;
 in
 stdenv.mkDerivation rec {
-  name = "mpd-0.15.9";
+  name = "mpd-0.16.3";
   src = fetchurl {
     url = "mirror://sourceforge/musicpd/${name}.tar.bz2";
-    sha256 = "1fv7ydxs755rsj4pijmsjjpvzlhy5idpvdi6p46nsq3ivjha2msa";
+    sha256 = "1liihxj58f944gapdqg15firl6phbxh3y3vjxq9m8dlvm37pkpsq";
   };
   buildInputs = [ pkgconfig glib ]
     ++ opt alsaSupport alsaLib
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
       music. Through plugins and libraries it can play a variety of sound
       files while being controlled by its network protocol.
     '';
-    homepage = http://mpd.wikia.com/;
+    homepage = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki;
     license = "GPLv2";
     maintainers = with stdenv.lib.maintainers; [ astsmtl ];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/servers/pies/default.nix b/pkgs/servers/pies/default.nix
new file mode 100644
index 000000000000..495326acf3e5
--- /dev/null
+++ b/pkgs/servers/pies/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "pies-1.2";
+
+  src = fetchurl {
+    url = "mirror://gnu/pies/${name}.tar.bz2";
+    sha256 = "18w0dbg77i56cx1bwa789w0qi3l4xkkbascxcv2b6gbm0zmjg1g6";
+  };
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU Pies, a program invocation and execution supervisor";
+
+    longDescription =
+      '' The name Pies (pronounced "p-yes") stands for Program Invocation and
+         Execution Supervisor.  This utility starts and controls execution of
+         external programs, called components.  Each component is a
+         stand-alone program, which is executed in the foreground.  Upon
+         startup, pies reads the list of components from its configuration
+         file, starts them, and remains in the background, controlling their
+         execution.  If any of the components terminates, the default action
+         of Pies is to restart it.  However, it can also be programmed to
+         perform a variety of another actions such as, e.g., sending mail
+         notifications to the system administrator, invoking another external
+         program, etc.
+
+         Pies can be used for a wide variety of tasks.  Its most obious use
+         is to put in backgound a program which normally cannot detach itself
+         from the controlling terminal, such as, e.g., minicom.  It can
+         launch and control components of some complex system, such as
+         Jabberd or MeTA1 (and it offers much more control over them than the
+         native utilities).  Finally, it can replace the inetd utility!
+      '';
+
+    license = "GPLv3+";
+
+    homepage = http://www.gnu.org/software/pies/;
+
+    platforms = stdenv.lib.platforms.gnu;
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
diff --git a/pkgs/servers/polipo/default.nix b/pkgs/servers/polipo/default.nix
new file mode 100644
index 000000000000..80865478746f
--- /dev/null
+++ b/pkgs/servers/polipo/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, texinfo }:
+stdenv.mkDerivation rec {
+
+  name = "polipo-${version}";
+  version = "1.0.4";
+
+  src = fetchurl {
+    url = "http://freehaven.net/~chrisd/polipo/${name}.tar.gz";
+    sha256 = "0dh4kjj6vfb75nxv7q3y2kvxsq8cwrd8svsrypa810jln8x8lign";
+  };
+
+  buildInputs = [ texinfo ];
+  makeFlags = [ "PREFIX=$(out)" "LOCAL_ROOT=$(out)/share/polipo/www" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.pps.jussieu.fr/~jch/software/polipo/;
+    description = "A small and fast caching web proxy";
+    license = licenses.mit;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.all;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 40af62072439..41c819cbe3fa 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -1,25 +1,27 @@
 { stdenv, fetchurl, pkgconfig, gnum4, gdbm, libtool, glib, dbus, avahi
-, gconf, liboil, gtk, libX11, libICE, libSM, libXtst, libXi, intltool, gettext
-, libcap, alsaLib, libsamplerate, libsndfile, speex, bluez, udev
-, ...}:
+, gconf, gtk, libX11, libICE, libSM, libXtst, libXi, intltool, gettext
+, alsaLib, libsamplerate, libsndfile, speex, bluez, udev
+, jackaudioSupport ? false, jackaudio ? null }:
+
+assert jackaudioSupport -> jackaudio != null;
 
 stdenv.mkDerivation rec {
-  name = "pulseaudio-0.9.21";
+  name = "pulseaudio-0.9.23";
 
   src = fetchurl {
-    url = "http://0pointer.de/lennart/projects/pulseaudio/${name}.tar.gz";
-    sha256 = "0m72rrbgy9qncwhqsq9q35niicy6i06sk3g5i8w9bvkhmib27qll";
+    url = "http://freedesktop.org/software/pulseaudio/releases/${name}.tar.gz";
+    sha256 = "0kms3w1i48j9368amr8wv83gk4szrnglh1biyp8jyqyb2k388gmg";
   };
 
   # Since `libpulse*.la' contain `-lgdbm', it must be propagated.
   propagatedBuildInputs = [ gdbm ];
 
-  buildInputs = [
-    pkgconfig gnum4 libtool glib dbus avahi gconf liboil
-    libsamplerate libsndfile speex alsaLib libcap
-    gtk libX11 libICE libSM libXtst libXi
-    intltool gettext bluez udev
-  ];
+  buildInputs =
+    [ pkgconfig gnum4 libtool intltool glib dbus avahi
+      libsamplerate libsndfile speex alsaLib bluez udev
+      #gtk gconf libX11 libICE libSM libXtst libXi
+    ]
+    ++ stdenv.lib.optional jackaudioSupport jackaudio;
 
   preConfigure = ''
     # Change the `padsp' script so that it contains the full path to
@@ -33,10 +35,16 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = ''
-    --disable-solaris --disable-hal --disable-jack --localstatedir=/var
+    --disable-solaris --disable-hal --disable-jack
     --disable-oss-output --disable-oss-wrapper
+    --localstatedir=/var --sysconfdir=/etc
+    ${if jackaudioSupport then "--enable-jack" else ""}
   '';
 
+  installFlags = "sysconfdir=$(out)/etc";
+
+  enableParallelBuilding = true;
+
   meta = {
     description = "PulseAudio, a sound server for POSIX and Win32 systems";
 
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index af29fdb8d9f9..c76c52e5fcc4 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, readline, pam, openldap, popt, iniparser, libunwind, fam
-, acl
+, acl, cups
 , useKerberos ? false, kerberos ? null, winbind ? true
 
 # Eg. smbclient and smbspool require a smb.conf file.
@@ -21,16 +21,18 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "samba-3.5.6";
+  name = "samba-3.6.0";
 
   src = fetchurl {
     url = "http://us3.samba.org/samba/ftp/stable/${name}.tar.gz";
-    sha256 = "1nj78bahph9fwxv0v3lz31cy6z167jgmvz63d8l9mlbmhf310r26";
+    sha256 = "0gzm09l75i95iibcxykc2h2m9haqx70jp1bpis1mhmvqwillbhg1";
   };
 
-  buildInputs = [ readline pam openldap popt iniparser libunwind fam acl ]
+  buildInputs = [ readline pam openldap popt iniparser libunwind fam acl cups ]
     ++ stdenv.lib.optional useKerberos kerberos;
 
+  enableParallelBuilding = true;
+
   preConfigure = "cd source3";
 
   configureFlags = ''
@@ -49,6 +51,8 @@ stdenv.mkDerivation rec {
   # Need to use a DESTDIR because `make install' tries to write in /var and /etc.
   installFlags = "DESTDIR=$(TMPDIR)/inst";
 
+  stripAllList = [ "bin" "sbin" ];
+
   postInstall =
     ''
       mkdir -p $out
@@ -56,6 +60,8 @@ stdenv.mkDerivation rec {
   
       mkdir -pv $out/lib/cups/backend
       ln -sv ../../../bin/smbspool $out/lib/cups/backend/smb
+      mkdir -pv $out/etc/openldap/schema
+      cp ../examples/LDAP/samba.schema $out/etc/openldap/schema
     '' # */
     + stdenv.lib.optionalString (configDir == "") "touch $out/lib/smb.conf";
 }
diff --git a/pkgs/servers/sip/freeswitch/default.nix b/pkgs/servers/sip/freeswitch/default.nix
new file mode 100644
index 000000000000..770dc6d277be
--- /dev/null
+++ b/pkgs/servers/sip/freeswitch/default.nix
@@ -0,0 +1,20 @@
+{ fetchurl, stdenv, ncurses, curl, pkgconfig, gnutls, readline, openssl, perl, libjpeg }:
+
+stdenv.mkDerivation rec {
+  name = "freeswitch-1.0.7";
+
+  src = fetchurl {
+    url = http://latest.freeswitch.org/freeswitch-1.0.7.tar.gz;
+    sha256 = "0r7mqsc50y7aqm8arbwiq75ikwfrrfhhzdf9r070snrf3b8qkj8w";
+  };
+
+  buildInputs = [ ncurses curl pkgconfig gnutls readline openssl perl libjpeg ];
+
+  meta = {
+    description = "Cross-Platform Scalable FREE Multi-Protocol Soft Switch";
+    homepage = http://freeswitch.org/;
+    license = "MPL1.1";
+    maintainers = with stdenv.lib.maintainers; [ viric ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/servers/sip/sipwitch/default.nix b/pkgs/servers/sip/sipwitch/default.nix
new file mode 100644
index 000000000000..2e2e24938a3f
--- /dev/null
+++ b/pkgs/servers/sip/sipwitch/default.nix
@@ -0,0 +1,26 @@
+{ fetchurl, stdenv, pkgconfig, ucommon, libosip, libexosip, gnutls, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "sipwitch-1.1.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/sipwitch/${name}.tar.gz";
+    sha256 = "14irv1zda6xjsrizc0dvy85fcjx3szbb94jkh3q4s20ywc4s41kx";
+  };
+
+  buildInputs = [ pkgconfig ucommon libosip libexosip gnutls zlib ];
+
+  preConfigure = ''
+    export configureFlags="--sysconfdir=$out/etc"
+  '';
+
+  doCheck = true;
+
+  meta = {
+    description = "Secure peer-to-peer VoIP server that uses the SIP protocol";
+    homepage = http://www.gnu.org/software/sipwitch/;
+    license = "GPLv3+";
+    maintainers = with stdenv.lib.maintainers; [ viric ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/servers/sql/mysql/jdbc/builder.sh b/pkgs/servers/sql/mysql/jdbc/builder.sh
index a85cd11d5d2d..29ecbc1aebe3 100644
--- a/pkgs/servers/sql/mysql/jdbc/builder.sh
+++ b/pkgs/servers/sql/mysql/jdbc/builder.sh
@@ -2,7 +2,7 @@ source $stdenv/setup
 
 set -e
 
-tar zxvf $src
+unzip $src
 cd mysql-connector-java-*
 
 ensureDir $out/share/java
diff --git a/pkgs/servers/sql/mysql/jdbc/default.nix b/pkgs/servers/sql/mysql/jdbc/default.nix
index 0e2b38e100a1..0f411b43f9f0 100644
--- a/pkgs/servers/sql/mysql/jdbc/default.nix
+++ b/pkgs/servers/sql/mysql/jdbc/default.nix
@@ -1,13 +1,13 @@
-{stdenv, fetchurl, ant}:
+{stdenv, fetchurl, ant, unzip}:
 
 stdenv.mkDerivation {
-  name = "mysql-connector-java-5.1.14";
+  name = "mysql-connector-java-5.1.17";
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = ftp://mirror.leaseweb.com/mysql/Downloads/Connector-J/mysql-connector-java-5.1.14.tar.gz;
-    sha256 = "1l1jgaf498pvmvls3ilwyxpcafywfabf5kjc8qgzx7559lx8fvya";
+    url = ftp://mirror.leaseweb.com/mysql/Downloads/Connector-J/mysql-connector-java-5.1.17.zip;
+    sha256 = "1c4hsx0qwb3rp66a1dllnah2zi9gqqnr4aqm9p59yrqj5jr22ldp";
   };
 
-  buildInputs = [ant];
+  buildInputs = [ unzip ant ];
 }
diff --git a/pkgs/servers/sql/mysql51/default.nix b/pkgs/servers/sql/mysql51/default.nix
index b1dda007fef8..ddf5c16bef19 100644
--- a/pkgs/servers/sql/mysql51/default.nix
+++ b/pkgs/servers/sql/mysql51/default.nix
@@ -3,11 +3,11 @@
 # Note: zlib is not required; MySQL can use an internal zlib.
 
 stdenv.mkDerivation {
-  name = "mysql-5.1.51";
+  name = "mysql-5.1.54";
 
   src = fetchurl {
-    url = ftp://mirror.leaseweb.com/mysql/Downloads/MySQL-5.1/mysql-5.1.51.tar.gz;
-    sha256 = "10i8ljsv7j1ggbqjmi7h6ahlgnaihh70z58n8rnl53065wi65n9r";
+    url = ftp://mirror.leaseweb.com/mysql/Downloads/MySQL-5.1/mysql-5.1.54.tar.gz;
+    sha256 = "07xbnwk7h1xya8s6dw34nrv7ampzag8l0l1szd2pc9zyqkzhydw4";
   };
 
   buildInputs = [ps ncurses zlib perl openssl];
diff --git a/pkgs/servers/sql/mysql55/default.nix b/pkgs/servers/sql/mysql55/default.nix
new file mode 100644
index 000000000000..6a824b4f51c7
--- /dev/null
+++ b/pkgs/servers/sql/mysql55/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, cmake, bison, ncurses, openssl, readline, zlib}:
+
+# Note: zlib is not required; MySQL can use an internal zlib.
+
+stdenv.mkDerivation {
+  name = "mysql-5.5.15";
+
+  src = fetchurl {
+    url = ftp://mirror.leaseweb.com/mysql/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz;
+    sha256 = "10jwkkmp231swc986z01nsp0q67kp0zdkfb4q4v9if2vn6a51ldy";
+  };
+
+  buildInputs = [ cmake bison ncurses openssl readline zlib ];
+  
+  cmakeFlags = "-DWITH_SSL=yes -DWITH_READLINE=yes -DWITH_EMBEDDED_SERVER=yes -DWITH_ZLIB=yes -DINSTALL_SCRIPTDIR=bin";
+  
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
+
+  postInstall = ''
+    sed -i -e "s|basedir=\"\"|basedir=\"$out\"|" $out/bin/mysql_install_db
+    rm -rf $out/mysql-test $out/sql-bench
+  '';
+
+  meta = {
+    homepage = http://www.mysql.com/;
+    description = "The world's most popular open source database";
+  };
+}
diff --git a/pkgs/servers/sql/virtuoso/default.nix b/pkgs/servers/sql/virtuoso/default.nix
index b302dc697142..20c3d1f2cf90 100644
--- a/pkgs/servers/sql/virtuoso/default.nix
+++ b/pkgs/servers/sql/virtuoso/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libxml2, openssl, readline, gawk }:
 
 stdenv.mkDerivation rec {
-  name = "virtuoso-opensource-6.1.1";
+  name = "virtuoso-opensource-6.1.3";
 
   src = fetchurl {
     url = "mirror://sf/virtuoso/${name}.tar.gz";
-    sha256 = "1sd70j9i26ml16lig9r9lmrdf5q0kybq71r6vzzzc5v5jxjz0l7w";
+    sha256 = "0rj629qjsibpllazngbhzhsh90x6nidpn292qz1xdvirwvb2h3s2";
   };
 
   buildInputs = [ libxml2 openssl readline gawk ];
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
 
   postInstall=''
     echo Move documentation
-    mkdir $out/share/doc
-    mv $out/share/virtuoso/doc $out/share/doc/${name}
+    mkdir -pv $out/share/doc
+    mv -v $out/share/virtuoso/doc $out/share/doc/${name}
     find $out -name "*.a" -delete -o -name "*.jar" -delete -o -type d -empty -delete
     '';
   
diff --git a/pkgs/servers/x11/xorg/builder.sh b/pkgs/servers/x11/xorg/builder.sh
index 528042e3df98..c33d1806fd60 100644
--- a/pkgs/servers/x11/xorg/builder.sh
+++ b/pkgs/servers/x11/xorg/builder.sh
@@ -38,12 +38,15 @@ postInstall() {
 }
 
 
-installFlags="appdefaultdir=$out/share/X11/app-defaults"
+installFlags="appdefaultdir=$out/share/X11/app-defaults $installFlags"
 
 
 if test -n "$x11BuildHook"; then
     source $x11BuildHook
-fi   
+fi
+
+
+enableParallelBuilding=1
 
 
 genericBuild
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index a19cb8ee57d4..f25289a683a3 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -11,58 +11,58 @@ let
     name = "applewmproto-1.4.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/applewmproto-1.4.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/applewmproto-1.4.1.tar.bz2;
       sha256 = "06fyixmx36qac2qqwmra3l9xr570rankm9kzmk0mgqyhgldrw1h8";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   bdftopcf = (stdenv.mkDerivation ((if overrides ? bdftopcf then overrides.bdftopcf else x: x) {
-    name = "bdftopcf-1.0.2";
+    name = "bdftopcf-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/bdftopcf-1.0.2.tar.bz2;
-      sha256 = "0sx09m677xjvq88sg4yq21y79zck47bvpzanpll35z9psq6py08i";
+      url = mirror://xorg/X11R7.6/src/everything/bdftopcf-1.0.3.tar.bz2;
+      sha256 = "02hx981f7jfwylxj21s91yvv4h597nqqzz3vd6ar81zyn84b944w";
     };
     buildInputs = [pkgconfig libXfont ];
   })) // {inherit libXfont ;};
     
   bigreqsproto = (stdenv.mkDerivation ((if overrides ? bigreqsproto then overrides.bigreqsproto else x: x) {
-    name = "bigreqsproto-1.1.0";
+    name = "bigreqsproto-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/bigreqsproto-1.1.0.tar.bz2;
-      sha256 = "1g8725413gz4lj4cc8svqvk4b4r9alj84127xslv16as7hny2r28";
+      url = mirror://xorg/X11R7.6/src/everything/bigreqsproto-1.1.1.tar.bz2;
+      sha256 = "16phzxa55lr749rghpaa699h1lcpndmw7izxzgl1bljq5f3qafqw";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   compositeproto = (stdenv.mkDerivation ((if overrides ? compositeproto then overrides.compositeproto else x: x) {
-    name = "compositeproto-0.4.1";
+    name = "compositeproto-0.4.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/compositeproto-0.4.1.tar.bz2;
-      sha256 = "1139c3nqrwx9fca3b4xrf07jdl31g25dbq5d7981c50yfdv4ax72";
+      url = mirror://xorg/X11R7.6/src/everything/compositeproto-0.4.2.tar.bz2;
+      sha256 = "1z0crmf669hirw4s7972mmp8xig80kfndja9h559haqbpvq5k4q4";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   damageproto = (stdenv.mkDerivation ((if overrides ? damageproto then overrides.damageproto else x: x) {
-    name = "damageproto-1.2.0";
+    name = "damageproto-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/damageproto-1.2.0.tar.bz2;
-      sha256 = "13zfd4qni9sw1ym8zd95sk2a39nh50rpwmsnzpbdksif19vm00m5";
+      url = mirror://xorg/X11R7.6/src/everything/damageproto-1.2.1.tar.bz2;
+      sha256 = "0nzwr5pv9hg7c21n995pdiv0zqhs91yz3r8rn3aska4ykcp12z2w";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   dmxproto = (stdenv.mkDerivation ((if overrides ? dmxproto then overrides.dmxproto else x: x) {
-    name = "dmxproto-2.3";
+    name = "dmxproto-2.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/dmxproto-2.3.tar.bz2;
-      sha256 = "1c03qkb7gj1fd84wz5c8kxanvmfpgx06r3j6i4s9wd8z7aj2r21s";
+      url = mirror://xorg/individual/proto/dmxproto-2.3.1.tar.bz2;
+      sha256 = "02b5x9dkgajizm8dqyx2w6hmqx3v25l67mgf35nj6sz0lgk52877";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -71,398 +71,398 @@ let
     name = "dri2proto-2.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/proto/dri2proto-2.3.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/dri2proto-2.3.tar.bz2;
       sha256 = "0xz6nf5rrn1fvply5mq7dd1w89r73mggylp9lpzzwdfvl291h55j";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   encodings = (stdenv.mkDerivation ((if overrides ? encodings then overrides.encodings else x: x) {
-    name = "encodings-1.0.3";
+    name = "encodings-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/encodings-1.0.3.tar.bz2;
-      sha256 = "0lqgp2rmygn0dhmjy658cyv6mq2g7a88z7srfb2mmq7b99npdn87";
+      url = mirror://xorg/X11R7.6/src/everything/encodings-1.0.4.tar.bz2;
+      sha256 = "0ffmaw80vmfwdgvdkp6495xgsqszb6s0iira5j0j6pd4i0lk3mnf";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   fixesproto = (stdenv.mkDerivation ((if overrides ? fixesproto then overrides.fixesproto else x: x) {
-    name = "fixesproto-4.1.1";
+    name = "fixesproto-4.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/fixesproto-4.1.1.tar.bz2;
-      sha256 = "1vv4y5zjlh2x6vbxx1nj770aznrbb1amr57q8wwd1fylda8k4ap7";
+      url = mirror://xorg/X11R7.6/src/everything/fixesproto-4.1.2.tar.bz2;
+      sha256 = "0mzq8kh1v1w2mrl4y82qzgv8jzlr3n4jmss56h3r1h9knp6byk6y";
     };
     buildInputs = [pkgconfig xextproto ];
   })) // {inherit xextproto ;};
     
   fontadobe100dpi = (stdenv.mkDerivation ((if overrides ? fontadobe100dpi then overrides.fontadobe100dpi else x: x) {
-    name = "font-adobe-100dpi-1.0.2";
+    name = "font-adobe-100dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/font/font-adobe-100dpi-1.0.2.tar.bz2;
-      sha256 = "0xb767577698d9ribv4p4lgi7f8sjb8y6nvd357i5g23404nw0bi";
+      url = mirror://xorg/X11R7.6/src/everything/font-adobe-100dpi-1.0.3.tar.bz2;
+      sha256 = "0m60f5bd0caambrk8ksknb5dks7wzsg7g7xaf0j21jxmx8rq9h5j";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontadobe75dpi = (stdenv.mkDerivation ((if overrides ? fontadobe75dpi then overrides.fontadobe75dpi else x: x) {
-    name = "font-adobe-75dpi-1.0.2";
+    name = "font-adobe-75dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/font/font-adobe-75dpi-1.0.2.tar.bz2;
-      sha256 = "1z8h2gq7r553lf1fphk3pya6g4n8rs5f00kffyqdy284j77wlj9d";
+      url = mirror://xorg/X11R7.6/src/everything/font-adobe-75dpi-1.0.3.tar.bz2;
+      sha256 = "02advcv9lyxpvrjv8bjh1b797lzg6jvhipclz49z8r8y98g4l0n6";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontadobeutopia100dpi = (stdenv.mkDerivation ((if overrides ? fontadobeutopia100dpi then overrides.fontadobeutopia100dpi else x: x) {
-    name = "font-adobe-utopia-100dpi-1.0.3";
+    name = "font-adobe-utopia-100dpi-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/font/font-adobe-utopia-100dpi-1.0.3.tar.bz2;
-      sha256 = "1b4cdjynwzrlsnqfi930gpvbs2mvjrawak801385pf0hfb9x2j70";
+      url = mirror://xorg/X11R7.6/src/everything/font-adobe-utopia-100dpi-1.0.4.tar.bz2;
+      sha256 = "19dd9znam1ah72jmdh7i6ny2ss2r6m21z9v0l43xvikw48zmwvyi";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontadobeutopia75dpi = (stdenv.mkDerivation ((if overrides ? fontadobeutopia75dpi then overrides.fontadobeutopia75dpi else x: x) {
-    name = "font-adobe-utopia-75dpi-1.0.3";
+    name = "font-adobe-utopia-75dpi-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/font/font-adobe-utopia-75dpi-1.0.3.tar.bz2;
-      sha256 = "1qs2jp6vw9j07qk38f0ambjd9g6d3ph4ichfgjjkaymmvd5bwk97";
+      url = mirror://xorg/X11R7.6/src/everything/font-adobe-utopia-75dpi-1.0.4.tar.bz2;
+      sha256 = "152wigpph5wvl4k9m3l4mchxxisgsnzlx033mn5iqrpkc6f72cl7";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontadobeutopiatype1 = (stdenv.mkDerivation ((if overrides ? fontadobeutopiatype1 then overrides.fontadobeutopiatype1 else x: x) {
-    name = "font-adobe-utopia-type1-1.0.3";
+    name = "font-adobe-utopia-type1-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/font/font-adobe-utopia-type1-1.0.3.tar.bz2;
-      sha256 = "1y8h0v15m3j0d83c3rp14bg5shx7kpg34vjaky8gvwndjdr4dyjh";
+      url = mirror://xorg/X11R7.6/src/everything/font-adobe-utopia-type1-1.0.4.tar.bz2;
+      sha256 = "0xw0pdnzj5jljsbbhakc6q9ha2qnca1jr81zk7w70yl9bw83b54p";
     };
     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.2";
+    name = "font-alias-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-alias-1.0.2.tar.bz2;
-      sha256 = "0w42ndi73wiyrc9zj7g0syxnfq2x2cncjpchm5pdnpihz7rxd2s3";
+      url = mirror://xorg/X11R7.6/src/everything/font-alias-1.0.3.tar.bz2;
+      sha256 = "16ic8wfwwr3jicaml7b5a0sk6plcgc1kg84w02881yhwmqm3nicb";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   fontarabicmisc = (stdenv.mkDerivation ((if overrides ? fontarabicmisc then overrides.fontarabicmisc else x: x) {
-    name = "font-arabic-misc-1.0.1";
+    name = "font-arabic-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-arabic-misc-1.0.1.tar.bz2;
-      sha256 = "0q3gxbk4wcj1cpw1fhs66vf7ddar8fmkml47g8rlv127zmd31c7l";
+      url = mirror://xorg/X11R7.6/src/everything/font-arabic-misc-1.0.3.tar.bz2;
+      sha256 = "1x246dfnxnmflzf0qzy62k8jdpkb6jkgspcjgbk8jcq9lw99npah";
     };
     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.1";
+    name = "font-bh-100dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bh-100dpi-1.0.1.tar.bz2;
-      sha256 = "15rk3k1w12pidz9373y388zqmbrmw13pmj2aydk35689gd46hvf4";
+      url = mirror://xorg/X11R7.6/src/everything/font-bh-100dpi-1.0.3.tar.bz2;
+      sha256 = "10cl4gm38dw68jzln99ijix730y7cbx8np096gmpjjwff1i73h13";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontbh75dpi = (stdenv.mkDerivation ((if overrides ? fontbh75dpi then overrides.fontbh75dpi else x: x) {
-    name = "font-bh-75dpi-1.0.1";
+    name = "font-bh-75dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bh-75dpi-1.0.1.tar.bz2;
-      sha256 = "0h4xnrbznb2vyy950h9iq0fyxgwpdkw5pb2l424g0sgifylpacca";
+      url = mirror://xorg/X11R7.6/src/everything/font-bh-75dpi-1.0.3.tar.bz2;
+      sha256 = "073jmhf0sr2j1l8da97pzsqj805f7mf9r2gy92j4diljmi8sm1il";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontbhlucidatypewriter100dpi = (stdenv.mkDerivation ((if overrides ? fontbhlucidatypewriter100dpi then overrides.fontbhlucidatypewriter100dpi else x: x) {
-    name = "font-bh-lucidatypewriter-100dpi-1.0.1";
+    name = "font-bh-lucidatypewriter-100dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bh-lucidatypewriter-100dpi-1.0.1.tar.bz2;
-      sha256 = "1acd04cd2ls7c1gihywa2hf67ijm7iz4q5c7q9wd9yx3wp2gfml1";
+      url = mirror://xorg/X11R7.6/src/everything/font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2;
+      sha256 = "1fqzckxdzjv4802iad2fdrkpaxl4w0hhs9lxlkyraq2kq9ik7a32";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontbhlucidatypewriter75dpi = (stdenv.mkDerivation ((if overrides ? fontbhlucidatypewriter75dpi then overrides.fontbhlucidatypewriter75dpi else x: x) {
-    name = "font-bh-lucidatypewriter-75dpi-1.0.1";
+    name = "font-bh-lucidatypewriter-75dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bh-lucidatypewriter-75dpi-1.0.1.tar.bz2;
-      sha256 = "0h9qxgb7v6i12qjyc98ry3ym52a602kkpsvycjb6r4f62icrrzr0";
+      url = mirror://xorg/X11R7.6/src/everything/font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2;
+      sha256 = "0cfbxdp5m12cm7jsh3my0lym9328cgm7fa9faz2hqj05wbxnmhaa";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontbhttf = (stdenv.mkDerivation ((if overrides ? fontbhttf then overrides.fontbhttf else x: x) {
-    name = "font-bh-ttf-1.0.1";
+    name = "font-bh-ttf-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bh-ttf-1.0.1.tar.bz2;
-      sha256 = "1j57lzrvnzhi56y7nzz4najymgvf093574czjh77zpy4ls22zrqw";
+      url = mirror://xorg/X11R7.6/src/everything/font-bh-ttf-1.0.3.tar.bz2;
+      sha256 = "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv";
     };
     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.1";
+    name = "font-bh-type1-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bh-type1-1.0.1.tar.bz2;
-      sha256 = "0idvayiwbysvhmrm0870hpw0cy0hgadcfl0zhgrvmq6dqqk5yfys";
+      url = mirror://xorg/X11R7.6/src/everything/font-bh-type1-1.0.3.tar.bz2;
+      sha256 = "1hb3iav089albp4sdgnlh50k47cdjif9p4axm0kkjvs8jyi5a53n";
     };
     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.1";
+    name = "font-bitstream-100dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bitstream-100dpi-1.0.1.tar.bz2;
-      sha256 = "0iq3kzabfvdssivhi4vmzhjan535ws48hxgc8rp0xh0d9nvwj19y";
+      url = mirror://xorg/X11R7.6/src/everything/font-bitstream-100dpi-1.0.3.tar.bz2;
+      sha256 = "1kmn9jbck3vghz6rj3bhc3h0w6gh0qiaqm90cjkqsz1x9r2dgq7b";
     };
     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.1";
+    name = "font-bitstream-75dpi-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bitstream-75dpi-1.0.1.tar.bz2;
-      sha256 = "0av66i14x3wj379jkgcjswawkis0imvr31v7wmkaa5qmqaqir7ng";
+      url = mirror://xorg/X11R7.6/src/everything/font-bitstream-75dpi-1.0.3.tar.bz2;
+      sha256 = "13plbifkvfvdfym6gjbgy9wx2xbdxi9hfrl1k22xayy02135wgxs";
     };
     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.1";
+    name = "font-bitstream-type1-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-bitstream-type1-1.0.1.tar.bz2;
-      sha256 = "1aqkw51m69k8dlwj3cllnqnfjgvpy59vd8n140v1ah4isk0pq0ji";
+      url = mirror://xorg/X11R7.6/src/everything/font-bitstream-type1-1.0.3.tar.bz2;
+      sha256 = "1256z0jhcf5gbh1d03593qdwnag708rxqa032izmfb5dmmlhbsn6";
     };
     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.1";
+    name = "font-cronyx-cyrillic-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-cronyx-cyrillic-1.0.1.tar.bz2;
-      sha256 = "08ilkby85m8pj2nn3hnfawmxzg8gq36fpw4g7r8i2cgyi913md7p";
+      url = mirror://xorg/X11R7.6/src/everything/font-cronyx-cyrillic-1.0.3.tar.bz2;
+      sha256 = "0ai1v4n61k8j9x2a1knvfbl2xjxk3xxmqaq3p9vpqrspc69k31kf";
     };
     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.1";
+    name = "font-cursor-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-cursor-misc-1.0.1.tar.bz2;
-      sha256 = "1cy1gl9xnkab8ddb1krxpisa2c4cr0h47flsir23b8za3f305vny";
+      url = mirror://xorg/X11R7.6/src/everything/font-cursor-misc-1.0.3.tar.bz2;
+      sha256 = "0dd6vfiagjc4zmvlskrbjz85jfqhf060cpys8j0y1qpcbsrkwdhp";
     };
     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.1";
+    name = "font-daewoo-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-daewoo-misc-1.0.1.tar.bz2;
-      sha256 = "14g4wqymc0csnpc0qa0pjndl3wqid13ll2vgk1yfqvy6h113wa72";
+      url = mirror://xorg/X11R7.6/src/everything/font-daewoo-misc-1.0.3.tar.bz2;
+      sha256 = "1s2bbhizzgbbbn5wqs3vw53n619cclxksljvm759h9p1prqdwrdw";
     };
     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.1";
+    name = "font-dec-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-dec-misc-1.0.1.tar.bz2;
-      sha256 = "0lk596dw3yk9wspqy167q72r76pwzph9v4rhx0vf41ywzm5dl87v";
+      url = mirror://xorg/X11R7.6/src/everything/font-dec-misc-1.0.3.tar.bz2;
+      sha256 = "0yzza0l4zwyy7accr1s8ab7fjqkpwggqydbm2vc19scdby5xz7g1";
     };
     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.1";
+    name = "font-ibm-type1-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-ibm-type1-1.0.1.tar.bz2;
-      sha256 = "06f9dihdss70w3h3rdak1zwkr0gdnryfw2lnsi85rp8grjashzl8";
+      url = mirror://xorg/X11R7.6/src/everything/font-ibm-type1-1.0.3.tar.bz2;
+      sha256 = "1pyjll4adch3z5cg663s6vhi02k8m6488f0mrasg81ssvg9jinzx";
     };
     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.1";
+    name = "font-isas-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-isas-misc-1.0.1.tar.bz2;
-      sha256 = "0yza5kqj89b81whkrdhficwryhzfgya4w5p8l33lvscixdlh9zjj";
+      url = mirror://xorg/X11R7.6/src/everything/font-isas-misc-1.0.3.tar.bz2;
+      sha256 = "0rx8q02rkx673a7skkpnvfkg28i8gmqzgf25s9yi0lar915sn92q";
     };
     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.1";
+    name = "font-jis-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-jis-misc-1.0.1.tar.bz2;
-      sha256 = "1kz8ajxsalxhkqbs9m1icwrqji0972f1knqljaa62nrr0k19hfx6";
+      url = mirror://xorg/X11R7.6/src/everything/font-jis-misc-1.0.3.tar.bz2;
+      sha256 = "0rdc3xdz12pnv951538q6wilx8mrdndpkphpbblszsv7nc8cw61b";
     };
     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.1";
+    name = "font-micro-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-micro-misc-1.0.1.tar.bz2;
-      sha256 = "0awpwich27vhaccrqh6rg330yvfaab0d3jm6d0wzclxz73m8gfd5";
+      url = mirror://xorg/X11R7.6/src/everything/font-micro-misc-1.0.3.tar.bz2;
+      sha256 = "1dldxlh54zq1yzfnrh83j5vm0k4ijprrs5yl18gm3n9j1z0q2cws";
     };
     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.1";
+    name = "font-misc-cyrillic-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-misc-cyrillic-1.0.1.tar.bz2;
-      sha256 = "0xdgv2ad4qq1dvp6cy99wmrynri267n8dzbjk5220n6rjgyzpyns";
+      url = mirror://xorg/X11R7.6/src/everything/font-misc-cyrillic-1.0.3.tar.bz2;
+      sha256 = "0q2ybxs8wvylvw95j6x9i800rismsmx4b587alwbfqiw6biy63z4";
     };
     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.1";
+    name = "font-misc-ethiopic-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-misc-ethiopic-1.0.1.tar.bz2;
-      sha256 = "0j6rsf5nwgm8afvjr6c3ga5rnhpd2dqhwnczsyr4fh3c9fcklfxz";
+      url = mirror://xorg/X11R7.6/src/everything/font-misc-ethiopic-1.0.3.tar.bz2;
+      sha256 = "19cq7iq0pfad0nc2v28n681fdq3fcw1l1hzaq0wpkgpx7bc1zjsk";
     };
     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.1";
+    name = "font-misc-meltho-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-misc-meltho-1.0.1.tar.bz2;
-      sha256 = "0616v6pamg41q4yhm7wiaycky49hhkfwvabn8r89w64ayfhdfrjk";
+      url = mirror://xorg/X11R7.6/src/everything/font-misc-meltho-1.0.3.tar.bz2;
+      sha256 = "148793fqwzrc3bmh2vlw5fdiwjc2n7vs25cic35gfp452czk489p";
     };
     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.0";
+    name = "font-misc-misc-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-misc-misc-1.1.0.tar.bz2;
-      sha256 = "0ys9in88psmxsryci4pq5jj9208jlzamsmfdxw8rlcagp6555xsh";
+      url = mirror://xorg/X11R7.6/src/everything/font-misc-misc-1.1.2.tar.bz2;
+      sha256 = "150pq6n8n984fah34n3k133kggn9v0c5k07igv29sxp1wi07krxq";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontmuttmisc = (stdenv.mkDerivation ((if overrides ? fontmuttmisc then overrides.fontmuttmisc else x: x) {
-    name = "font-mutt-misc-1.0.1";
+    name = "font-mutt-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-mutt-misc-1.0.1.tar.bz2;
-      sha256 = "09bfj00kaf31zncj5k2dm1in5ldp8pmrhrji9vprp16iyp5k7gvp";
+      url = mirror://xorg/X11R7.6/src/everything/font-mutt-misc-1.0.3.tar.bz2;
+      sha256 = "13qghgr1zzpv64m0p42195k1kc77pksiv059fdvijz1n6kdplpxx";
     };
     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.0";
+    name = "font-schumacher-misc-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-schumacher-misc-1.1.0.tar.bz2;
-      sha256 = "0k8vvssb2dyr9vwal493zkq7x1d0draffvh8wvjzwc1rnmgr20rh";
+      url = mirror://xorg/X11R7.6/src/everything/font-schumacher-misc-1.1.2.tar.bz2;
+      sha256 = "0nkym3n48b4v36y4s927bbkjnsmicajarnf6vlp7wxp0as304i74";
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir ;};
     
   fontscreencyrillic = (stdenv.mkDerivation ((if overrides ? fontscreencyrillic then overrides.fontscreencyrillic else x: x) {
-    name = "font-screen-cyrillic-1.0.2";
+    name = "font-screen-cyrillic-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-screen-cyrillic-1.0.2.tar.bz2;
-      sha256 = "04dyzq73yq0278pk9ssbhb9ia518djgzj9ybi8snvw9zn4gqipf5";
+      url = mirror://xorg/X11R7.6/src/everything/font-screen-cyrillic-1.0.4.tar.bz2;
+      sha256 = "0yayf1qlv7irf58nngddz2f1q04qkpr5jwp4aja2j5gyvzl32hl2";
     };
     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.1";
+    name = "font-sony-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-sony-misc-1.0.1.tar.bz2;
-      sha256 = "1jjnzhxzbk2x1byp77yddcni0myd73sxilqj75fkkkkl9j22d5fs";
+      url = mirror://xorg/X11R7.6/src/everything/font-sony-misc-1.0.3.tar.bz2;
+      sha256 = "1xfgcx4gsgik5mkgkca31fj3w72jw9iw76qyrajrsz1lp8ka6hr0";
     };
     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.0";
+    name = "fontsproto-2.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/fontsproto-2.1.0.tar.bz2;
-      sha256 = "0dgb7b49h60wvrcpzax1i7wa03lpkl5f6jkfpb4qh90lr4fzd6js";
+      url = mirror://xorg/X11R7.6/src/everything/fontsproto-2.1.1.tar.bz2;
+      sha256 = "1g1rsvj0lb7744x6fj18d989ymf7zgry3v3fzipnnzljwa0vr6lw";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   fontsunmisc = (stdenv.mkDerivation ((if overrides ? fontsunmisc then overrides.fontsunmisc else x: x) {
-    name = "font-sun-misc-1.0.1";
+    name = "font-sun-misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-sun-misc-1.0.1.tar.bz2;
-      sha256 = "02cxmssnri09iz2a673f38x3wj94yn96m55b69s1m5cgxbsj45a1";
+      url = mirror://xorg/X11R7.6/src/everything/font-sun-misc-1.0.3.tar.bz2;
+      sha256 = "1q6jcqrffg9q5f5raivzwx9ffvf7r11g6g0b125na1bhpz5ly7s8";
     };
     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.1.1";
+    name = "font-util-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-util-1.1.1.tar.bz2;
-      sha256 = "121gq3iiz0hydvcqfh88adrqkky3zs48irjwa31xfgvw1lxiwgx3";
+      url = mirror://xorg/X11R7.6/src/everything/font-util-1.2.0.tar.bz2;
+      sha256 = "04lp7xlrcqfyrsnvdgyqbanlnzr13lhn28v0kr2nzpvcmqbwdfnv";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   fontwinitzkicyrillic = (stdenv.mkDerivation ((if overrides ? fontwinitzkicyrillic then overrides.fontwinitzkicyrillic else x: x) {
-    name = "font-winitzki-cyrillic-1.0.1";
+    name = "font-winitzki-cyrillic-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-winitzki-cyrillic-1.0.1.tar.bz2;
-      sha256 = "0ihlvf6rsd8hpdyp09zfisvp44sxdddpi3zbld1ya66vf2gw4mvw";
+      url = mirror://xorg/X11R7.6/src/everything/font-winitzki-cyrillic-1.0.3.tar.bz2;
+      sha256 = "181n1bgq8vxfxqicmy1jpm1hnr6gwn1kdhl6hr4frjigs1ikpldb";
     };
     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.2";
+    name = "font-xfree86-type1-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/font-xfree86-type1-1.0.2.tar.bz2;
-      sha256 = "1k86ryqkhq3rrvsz5w7a28i9n5jv29hx6p5kq6r1k9p5mzm6l0ks";
+      url = mirror://xorg/X11R7.6/src/everything/font-xfree86-type1-1.0.4.tar.bz2;
+      sha256 = "0jp3zc0qfdaqfkgzrb44vi9vi0a8ygb35wp082yz7rvvxhmg9sya";
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
@@ -478,51 +478,51 @@ let
   })) // {inherit ;};
     
   glproto = (stdenv.mkDerivation ((if overrides ? glproto then overrides.glproto else x: x) {
-    name = "glproto-1.4.11";
+    name = "glproto-1.4.12";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/proto/glproto-1.4.11.tar.bz2;
-      sha256 = "0lclh6fnz6k5xqbqarsvzx6sg7gjkprg27k7797xn0agsy4isj7y";
+      url = mirror://xorg/X11R7.6/src/everything/glproto-1.4.12.tar.bz2;
+      sha256 = "1pjpnj78hski4krvsbf55pkhhsrahvlb825dwl804q0b36fpmgj8";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   iceauth = (stdenv.mkDerivation ((if overrides ? iceauth then overrides.iceauth else x: x) {
-    name = "iceauth-1.0.3";
+    name = "iceauth-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/iceauth-1.0.3.tar.bz2;
-      sha256 = "07nq2y8py2hvp54dklvv9y8l6b76wlmfkw3llh02dnpjr7v3zjmb";
+      url = mirror://xorg/X11R7.6/src/everything/iceauth-1.0.4.tar.bz2;
+      sha256 = "13ck97rz53l490aba3xpgv4psgk4rywh1vi6slg1n4zhai2zvrhf";
     };
     buildInputs = [pkgconfig libICE xproto ];
   })) // {inherit libICE xproto ;};
     
   imake = (stdenv.mkDerivation ((if overrides ? imake then overrides.imake else x: x) {
-    name = "imake-1.0.3";
+    name = "imake-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/util/imake-1.0.3.tar.bz2;
-      sha256 = "1sjknp0g39r7ywp44drcrb8r92159a9nxgnjc90mjcksvm2540ch";
+      url = mirror://xorg/individual/util/imake-1.0.4.tar.bz2;
+      sha256 = "1zj6y59yip40hrdvvljjmnsfqddzxpxmbmd8842010rhkvq7zcmc";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
     
   inputproto = (stdenv.mkDerivation ((if overrides ? inputproto then overrides.inputproto else x: x) {
-    name = "inputproto-2.0";
+    name = "inputproto-2.0.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/inputproto-2.0.tar.bz2;
-      sha256 = "1x0sx8ilw857r69ddfr94x66gf8x17284nd20c9hmclajbvmfbs7";
+      url = mirror://xorg/X11R7.6/src/everything/inputproto-2.0.1.tar.bz2;
+      sha256 = "0i2a28bnvv68i6z8qx09iw95c1wchqc2migx1s7764pqipc3srk3";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   kbproto = (stdenv.mkDerivation ((if overrides ? kbproto then overrides.kbproto else x: x) {
-    name = "kbproto-1.0.4";
+    name = "kbproto-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/kbproto-1.0.4.tar.bz2;
-      sha256 = "0g30x2jgabp3bx6h556f9777dk384xk45zfzh7mw7l0k2f9jkahv";
+      url = mirror://xorg/X11R7.6/src/everything/kbproto-1.0.5.tar.bz2;
+      sha256 = "17glym611bbkca371ihpcnx9ydp4asay4psqq267j00pbr94zfhf";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -531,38 +531,38 @@ let
     name = "libAppleWM-1.4.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libAppleWM-1.4.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/libAppleWM-1.4.0.tar.bz2;
       sha256 = "10hw7rvwc2b0v3v6mc6vaq8xs6vim4bg43rnhspf4p26mlb2dsf8";
     };
     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.2";
+    name = "libFS-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libFS-1.0.2.tar.bz2;
-      sha256 = "0j9hrqsn808zpr573p6vnpg17p3nk7ry7d6x1ghjdc52xbjmyamg";
+      url = mirror://xorg/X11R7.6/src/everything/libFS-1.0.3.tar.bz2;
+      sha256 = "0694iyc1rdz0fqnalgzpgzmxfaklrdk0jz769fsn1bv88mszjymb";
     };
     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.6";
+    name = "libICE-1.0.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libICE-1.0.6.tar.bz2;
-      sha256 = "12sn3d28figzmszcacbcv4v1k03jdp4g2ca5riza4ajxa1cnhd58";
+      url = mirror://xorg/X11R7.6/src/everything/libICE-1.0.7.tar.bz2;
+      sha256 = "00drapw7n793nqy23m76vxj5yzlgx7prmprkhzp3qiqs2lpnkcd8";
     };
     buildInputs = [pkgconfig xproto xtrans ];
   })) // {inherit xproto xtrans ;};
     
   libSM = (stdenv.mkDerivation ((if overrides ? libSM then overrides.libSM else x: x) {
-    name = "libSM-1.1.1";
+    name = "libSM-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libSM-1.1.1.tar.bz2;
-      sha256 = "1q3wmblw594vzylndcb20cdq3yjgzpy2xmghyhzin0vaii6ih3gm";
+      url = mirror://xorg/X11R7.6/src/everything/libSM-1.2.0.tar.bz2;
+      sha256 = "1jspgbd9g1d20kl18nnbzv37f1kpfybjff2xn08dmgv7f0dxzn0c";
     };
     buildInputs = [pkgconfig libICE libuuid xproto xtrans ];
   })) // {inherit libICE libuuid xproto xtrans ;};
@@ -571,28 +571,28 @@ let
     name = "libWindowsWM-1.0.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libWindowsWM-1.0.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/libWindowsWM-1.0.1.tar.bz2;
       sha256 = "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15";
     };
     buildInputs = [pkgconfig windowswmproto libX11 libXext xextproto ];
   })) // {inherit windowswmproto libX11 libXext xextproto ;};
     
   libX11 = (stdenv.mkDerivation ((if overrides ? libX11 then overrides.libX11 else x: x) {
-    name = "libX11-1.3.4";
+    name = "libX11-1.4.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libX11-1.3.4.tar.bz2;
-      sha256 = "0i58i744fh9jp0wdyifc9ip5ahvanniyfzana0s15kgpwn627mw8";
+      url = mirror://xorg/individual/lib/libX11-1.4.1.tar.bz2;
+      sha256 = "1qiwyqaf9vfn52nwp7nxlbixld3r9jyzsarnkwk0ynk4k3vy1x3h";
     };
-    buildInputs = [pkgconfig bigreqsproto inputproto kbproto libXau libxcb xcmiscproto libXdmcp xextproto xf86bigfontproto xproto xtrans ];
-  })) // {inherit bigreqsproto inputproto kbproto libXau libxcb xcmiscproto libXdmcp xextproto xf86bigfontproto xproto xtrans ;};
+    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.0";
+    name = "libXScrnSaver-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXScrnSaver-1.2.0.tar.bz2;
-      sha256 = "11bz918c8c2r8m5y5rgm25f0xsq7l46g5rdx4r941dif1zn7n1jv";
+      url = mirror://xorg/X11R7.6/src/everything/libXScrnSaver-1.2.1.tar.bz2;
+      sha256 = "16i59gac2sixgi692w4lvq5cp8hkl6rc375bh0ib51gsyvi6cfnf";
     };
     buildInputs = [pkgconfig scrnsaverproto libX11 libXext xextproto ];
   })) // {inherit scrnsaverproto libX11 libXext xextproto ;};
@@ -601,38 +601,38 @@ let
     name = "libXau-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXau-1.0.6.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/libXau-1.0.6.tar.bz2;
       sha256 = "1z3h07wj2kg2hnzj4gd9pc3rkj4n0mfw6f9skg9w1hfwzrgl317f";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
     
   libXaw = (stdenv.mkDerivation ((if overrides ? libXaw then overrides.libXaw else x: x) {
-    name = "libXaw-1.0.7";
+    name = "libXaw-1.0.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXaw-1.0.7.tar.bz2;
-      sha256 = "0a7kqs23c3vwf2gibdm4xw8ylw7fqn0h72c01z4b31lmn3lsw2kl";
+      url = mirror://xorg/individual/lib/libXaw-1.0.9.tar.bz2;
+      sha256 = "0dxh5ldcmzl6afq0a9172ryah1341g0zysm8vk2lmqkqdda7ffd8";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto libXmu libXpm xproto libXt ];
   })) // {inherit libX11 libXext xextproto libXmu libXpm xproto libXt ;};
     
   libXcomposite = (stdenv.mkDerivation ((if overrides ? libXcomposite then overrides.libXcomposite else x: x) {
-    name = "libXcomposite-0.4.2";
+    name = "libXcomposite-0.4.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXcomposite-0.4.2.tar.bz2;
-      sha256 = "007qcqhp0dhvq2v7nkpz282rbwa6m9pmmpg4ypb30hv8yw5xwas4";
+      url = mirror://xorg/X11R7.6/src/everything/libXcomposite-0.4.3.tar.bz2;
+      sha256 = "1b8sniijb85v4my6v30ma9yqnwl4hkclci9l1hqxnipfyhl4sa9j";
     };
-    buildInputs = [pkgconfig compositeproto fixesproto libX11 libXext libXfixes xproto ];
-  })) // {inherit compositeproto fixesproto libX11 libXext libXfixes xproto ;};
+    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.10";
+    name = "libXcursor-1.1.11";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXcursor-1.1.10.tar.bz2;
-      sha256 = "1gbcwf5v108m96y9gpghjb3hv7chvibh1k3b9chc7wh34bv6si5r";
+      url = mirror://xorg/X11R7.6/src/everything/libXcursor-1.1.11.tar.bz2;
+      sha256 = "1zpn5dx66l5ql9qv0yz41qlbap4imkkvi0p6j2a6zh72g52zfvm0";
     };
     buildInputs = [pkgconfig fixesproto libX11 libXfixes xproto libXrender ];
   })) // {inherit fixesproto libX11 libXfixes xproto libXrender ;};
@@ -641,28 +641,28 @@ let
     name = "libXdamage-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXdamage-1.1.3.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/libXdamage-1.1.3.tar.bz2;
       sha256 = "1a678bwap74sqczbr2z4y4fvbr35km3inkm8bi1igjyk4v46jqdw";
     };
     buildInputs = [pkgconfig damageproto fixesproto libX11 xextproto libXfixes xproto ];
   })) // {inherit damageproto fixesproto libX11 xextproto libXfixes xproto ;};
     
   libXdmcp = (stdenv.mkDerivation ((if overrides ? libXdmcp then overrides.libXdmcp else x: x) {
-    name = "libXdmcp-1.0.3";
+    name = "libXdmcp-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXdmcp-1.0.3.tar.bz2;
-      sha256 = "1jvqfcc7cng7qsdqxj1ivbki3id1kkb3mdqn9zgddzi0mqpkl0yq";
+      url = mirror://xorg/X11R7.6/src/everything/libXdmcp-1.1.0.tar.bz2;
+      sha256 = "0wh0q4ih9p3nsxsjjj9a3d03nhiyjggpl7gbavdzsfia36iyk85q";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
     
   libXext = (stdenv.mkDerivation ((if overrides ? libXext then overrides.libXext else x: x) {
-    name = "libXext-1.1.2";
+    name = "libXext-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXext-1.1.2.tar.bz2;
-      sha256 = "0x2gzqrdzdzyrw8h9qz4ml8yyplb5ki78pvf17ibdjajkkv0ysmc";
+      url = mirror://xorg/X11R7.6/src/everything/libXext-1.2.0.tar.bz2;
+      sha256 = "1xvgvrbg9lc812zi44hsyr461hiiwy05alckq847ki213qhkxvaa";
     };
     buildInputs = [pkgconfig libX11 xextproto xproto ];
   })) // {inherit libX11 xextproto xproto ;};
@@ -671,88 +671,88 @@ let
     name = "libXfixes-4.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXfixes-4.0.5.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/libXfixes-4.0.5.tar.bz2;
       sha256 = "0x4drdxrslxf4vgcfyba0f0fbxg98c8x5dfrl7azakhf8qhd0v1f";
     };
     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.2";
+    name = "libXfont-1.4.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXfont-1.4.2.tar.bz2;
-      sha256 = "0ns99rhfz29y6bbc8slfaxjr132bb9x072vnhgv2kzfbk62mlpyh";
+      url = mirror://xorg/X11R7.6/src/everything/libXfont-1.4.3.tar.bz2;
+      sha256 = "1k79f8vcibd114ydndvna8axx39bsdaj351f16901lh155jlb4pp";
     };
     buildInputs = [pkgconfig libfontenc fontsproto freetype xproto xtrans zlib ];
   })) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
     
   libXft = (stdenv.mkDerivation ((if overrides ? libXft then overrides.libXft else x: x) {
-    name = "libXft-2.1.14";
+    name = "libXft-2.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXft-2.1.14.tar.bz2;
-      sha256 = "0phpypmkj0dl9vq7wl0jr207gky4s37sbi7sspgx7jl19dcrs3kh";
+      url = mirror://xorg/X11R7.6/src/everything/libXft-2.2.0.tar.bz2;
+      sha256 = "1cprbz7xnxkb7axblw8sdaw9ibkngmz60d0ypk1drhd0dpjmls68";
     };
-    buildInputs = [pkgconfig fontconfig freetype libXrender ];
-  })) // {inherit fontconfig freetype libXrender ;};
+    buildInputs = [pkgconfig fontconfig freetype xproto libXrender ];
+  })) // {inherit fontconfig freetype xproto libXrender ;};
     
   libXi = (stdenv.mkDerivation ((if overrides ? libXi then overrides.libXi else x: x) {
-    name = "libXi-1.3";
+    name = "libXi-1.4.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXi-1.3.tar.bz2;
-      sha256 = "0jwl19w8ry30v4wyar3fv9xbhzp3fbx1mq6p7c342s1qc068qarn";
+      url = mirror://xorg/individual/lib/libXi-1.4.1.tar.bz2;
+      sha256 = "19i92if8anv5pg2mwyy93jcllk1mgxx5gchi8zkjlk7r604ir7sr";
     };
     buildInputs = [pkgconfig inputproto libX11 libXext xextproto xproto ];
   })) // {inherit inputproto libX11 libXext xextproto xproto ;};
     
   libXinerama = (stdenv.mkDerivation ((if overrides ? libXinerama then overrides.libXinerama else x: x) {
-    name = "libXinerama-1.1";
+    name = "libXinerama-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXinerama-1.1.tar.bz2;
-      sha256 = "0d5zf9ksbhmpmzk5iglkvwvxkf69cl0r3m4dr56b8cg1q9s9xlz0";
+      url = mirror://xorg/X11R7.6/src/everything/libXinerama-1.1.1.tar.bz2;
+      sha256 = "17vpsscracg1hza0avrczm9fc7xx3229qhicy101mw6cx2hb9qmv";
     };
     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.0.5";
+    name = "libXmu-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXmu-1.0.5.tar.bz2;
-      sha256 = "1mr6f4pqzzdpkqghp6jpb9grgc5z4w8hn0hqhjmcy68hxjqbd4h6";
+      url = mirror://xorg/X11R7.6/src/everything/libXmu-1.1.0.tar.bz2;
+      sha256 = "1b9nkml1mk8yi76bv23cikbfrd7hlp48h710yqgcrpkh7cq1za8g";
     };
     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.0";
+    name = "libXp-1.0.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXp-1.0.0.tar.bz2;
-      sha256 = "1blwrr5zhmwwy87j0svmhv3hc13acyn5j14n5rv0anz81iav2r3y";
+      url = mirror://xorg/individual/lib/libXp-1.0.1.tar.bz2;
+      sha256 = "1lj3cjg9ygbmclxvayy5v88kkndpy9jq6y68p13dc5jn01hg5lbi";
     };
     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.8";
+    name = "libXpm-3.5.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXpm-3.5.8.tar.bz2;
-      sha256 = "0k1cajiw7ijzphrysr2d4yc5s10822nvkbh4xvhkbqz66am7m9q2";
+      url = mirror://xorg/X11R7.6/src/everything/libXpm-3.5.9.tar.bz2;
+      sha256 = "07k2zpiadck1p986pgksfm5zfdm6h5vjy6p0hv59h1dbkh103pca";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ];
   })) // {inherit libX11 libXext xextproto xproto libXt ;};
     
   libXrandr = (stdenv.mkDerivation ((if overrides ? libXrandr then overrides.libXrandr else x: x) {
-    name = "libXrandr-1.3.0";
+    name = "libXrandr-1.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXrandr-1.3.0.tar.bz2;
-      sha256 = "0y1fh1jf199kdkx7yl8h9azz468pq2d6dvdk1213l5y5fw7wwqar";
+      url = mirror://xorg/X11R7.6/src/everything/libXrandr-1.3.1.tar.bz2;
+      sha256 = "0qf6aywqk2mgd5hw0nr24xxp5k015aa11sax5yycn14wch4agfv2";
     };
     buildInputs = [pkgconfig randrproto renderproto libX11 libXext xextproto xproto libXrender ];
   })) // {inherit randrproto renderproto libX11 libXext xextproto xproto libXrender ;};
@@ -761,118 +761,118 @@ let
     name = "libXrender-0.9.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXrender-0.9.6.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/libXrender-0.9.6.tar.bz2;
       sha256 = "0s567qgys8m6782lbrpvpscm8fkk2jm2717g7s3hm7hhcgib2n3z";
     };
     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.4";
+    name = "libXres-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXres-1.0.4.tar.bz2;
-      sha256 = "1pvjfn3mczr788x4nh877f911w63abx7z29gng7ri1zgf1x5czs5";
+      url = mirror://xorg/X11R7.6/src/everything/libXres-1.0.5.tar.bz2;
+      sha256 = "0nd032jn3im6ar71xm1wgcmb4pa76c73nl8lavdkih609d30y2x0";
     };
     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.0.8";
+    name = "libXt-1.0.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXt-1.0.8.tar.bz2;
-      sha256 = "0z03nbb0lhxshpnyx2nl9kw0n3civjkag1mfiqf82qc64n0jrxbh";
+      url = mirror://xorg/X11R7.6/src/everything/libXt-1.0.9.tar.bz2;
+      sha256 = "00bbms32fkzrxhdm9kybb2404ad6f3d6v4qgl83py7w09dcipfga";
     };
     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.1.0";
+    name = "libXtst-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXtst-1.1.0.tar.bz2;
-      sha256 = "09pblj4h8i6fdl553lsgn511vgygl6jq4dx83chmfsg0g53hyi5x";
+      url = mirror://xorg/X11R7.6/src/everything/libXtst-1.2.0.tar.bz2;
+      sha256 = "022lx3c57pkkw11j2k5s1f5idf53li5qg291766bvxi1nl90jbks";
     };
     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.5";
+    name = "libXv-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXv-1.0.5.tar.bz2;
-      sha256 = "0430v78igg9hgkf5alj3sb20i7xg88if3pl5r9ybkvzy4bgsyjfm";
+      url = mirror://xorg/X11R7.6/src/everything/libXv-1.0.6.tar.bz2;
+      sha256 = "1vpmr9wnbz990ivarsp5rcmdg483fd2nk695plzlzx5h9dcqw3z2";
     };
     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.5";
+    name = "libXvMC-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXvMC-1.0.5.tar.bz2;
-      sha256 = "0zyyiwrfx303lfcb8av4apbql2r2w34rzc0czq7ayhw3s9lcfi06";
+      url = mirror://xorg/X11R7.6/src/everything/libXvMC-1.0.6.tar.bz2;
+      sha256 = "14ik1kgpnds213dsa16i8cf5qg3hc7vccy9jz4a4ml8zqzlq1nix";
     };
     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.1";
+    name = "libXxf86dga-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXxf86dga-1.1.1.tar.bz2;
-      sha256 = "05jnvsl70c1dgvkldrgaqsjq72ar0papprx346w5rwfgbs4zhdwd";
+      url = mirror://xorg/X11R7.6/src/everything/libXxf86dga-1.1.2.tar.bz2;
+      sha256 = "01jsc0jg7mjngfbh3j942595pwbyxf2m9kljy3zb6gyfcbsm59hv";
     };
     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.2";
+    name = "libXxf86misc-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXxf86misc-1.0.2.tar.bz2;
-      sha256 = "1cvwjl4f83ic97j9da95x2a7gd0hw5vnv1pxn49d3z1lpyqvcr4f";
+      url = mirror://xorg/individual/lib/libXxf86misc-1.0.3.tar.bz2;
+      sha256 = "0nvbq9y6k6m9hxdvg3crycqsnnxf1859wrisqcs37z9fhq044gsn";
     };
     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.0";
+    name = "libXxf86vm-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libXxf86vm-1.1.0.tar.bz2;
-      sha256 = "1s4dhgl879hkfys28gl3rflas4ci48kiyx359rzjdi9pndvybibw";
+      url = mirror://xorg/X11R7.6/src/everything/libXxf86vm-1.1.1.tar.bz2;
+      sha256 = "17i342h7a2nqfz4lpk8cay0vc0h4i7nxdc6xli9r7mggk8iykji1";
     };
     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.0";
+    name = "libdmx-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libdmx-1.1.0.tar.bz2;
-      sha256 = "1mg2sd8xlwcz6lysdc3zld05a2fa1a4hfxxhbh87cpfc93wah10r";
+      url = mirror://xorg/X11R7.6/src/everything/libdmx-1.1.1.tar.bz2;
+      sha256 = "066yndshwq2nzkd0z0w96wq37rnhb23s6vq50bg4kiqb8y3nxpm6";
     };
     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.0.5";
+    name = "libfontenc-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libfontenc-1.0.5.tar.bz2;
-      sha256 = "001749s6whw04fv0426zk48p0wqn29g2ba5i42kkvbg9641xwg3z";
+      url = mirror://xorg/X11R7.6/src/everything/libfontenc-1.1.0.tar.bz2;
+      sha256 = "1gww1cbi17q15lh2ws6qzspp807issbyk5wlzjmgw6pn880ip2il";
     };
     buildInputs = [pkgconfig xproto zlib ];
   })) // {inherit xproto zlib ;};
     
   libpciaccess = (stdenv.mkDerivation ((if overrides ? libpciaccess then overrides.libpciaccess else x: x) {
-    name = "libpciaccess-0.12.0";
+    name = "libpciaccess-0.12.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libpciaccess-0.12.0.tar.bz2;
-      sha256 = "0msnx3mcbqgghjscq3z1nh894k71k3bx659iaqlhgaqa3h7c1czn";
+      url = mirror://xorg/individual/lib/libpciaccess-0.12.1.tar.bz2;
+      sha256 = "0i3kdmvl1mcjrkhklpli45sqsy4pvipm6swifbcyxx4cwkqdfiyc";
     };
     buildInputs = [pkgconfig zlib ];
   })) // {inherit zlib ;};
@@ -881,218 +881,208 @@ let
     name = "libpthread-stubs-0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/libpthread-stubs-0.3.tar.bz2;
       sha256 = "16bjv3in19l84hbri41iayvvg4ls9gv1ma0x0qlbmwy67i7dbdim";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   libxcb = (stdenv.mkDerivation ((if overrides ? libxcb then overrides.libxcb else x: x) {
-    name = "libxcb-1.6";
+    name = "libxcb-1.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = http://xcb.freedesktop.org/dist/libxcb-1.6.tar.bz2;
-      sha256 = "0di9mm6d8wmscgfaw6sfa8znrk522y8dnl4xhy87wqx4fhbwirhs";
+      url = mirror://xorg/X11R7.6/src/everything/libxcb-1.7.tar.bz2;
+      sha256 = "1pr40wa3i1f0iwx83c8alcycy9sfzd2y1qlc63kr8q56w8sxqxp7";
     };
     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.6";
+    name = "libxkbfile-1.0.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/libxkbfile-1.0.6.tar.bz2;
-      sha256 = "0fb0l221m5fsifydrih3fg6ndlsrm0d4fa53cx0rk0i7dcgkr91c";
+      url = mirror://xorg/X11R7.6/src/everything/libxkbfile-1.0.7.tar.bz2;
+      sha256 = "1r9a1xnn57431hfp1am2r5h23pa1zh646482li3vd5ivfc53fzk6";
     };
     buildInputs = [pkgconfig kbproto libX11 ];
   })) // {inherit kbproto libX11 ;};
     
   lndir = (stdenv.mkDerivation ((if overrides ? lndir then overrides.lndir else x: x) {
-    name = "lndir-1.0.1";
+    name = "lndir-1.0.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/util/lndir-1.0.1.tar.bz2;
-      sha256 = "0a84q8m3x8qbyrhx7r2k7wmhdb5588vcb1r21ifkx8yaaw1360fk";
+      url = mirror://xorg/individual/util/lndir-1.0.2.tar.bz2;
+      sha256 = "1d988z0ywy2k53s7i43ff0j5qac1cpy9j0gjwmiprq66w8rh24z5";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
     
   luit = (stdenv.mkDerivation ((if overrides ? luit then overrides.luit else x: x) {
-    name = "luit-1.0.4";
+    name = "luit-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/luit-1.0.4.tar.bz2;
-      sha256 = "0ll2rcg65h0gd18jkj56kbp9j7816j0cnycxz1h20razjw0da76i";
+      url = mirror://xorg/X11R7.6/src/everything/luit-1.1.0.tar.bz2;
+      sha256 = "1l83b5yknh4svqzwsppvmm2q9l0mvsfwm16ik7q3yss8m5zgvypi";
     };
-    buildInputs = [pkgconfig libfontenc libX11 zlib ];
-  })) // {inherit libfontenc libX11 zlib ;};
+    buildInputs = [pkgconfig libfontenc zlib ];
+  })) // {inherit libfontenc zlib ;};
     
   makedepend = (stdenv.mkDerivation ((if overrides ? makedepend then overrides.makedepend else x: x) {
-    name = "makedepend-1.0.2";
+    name = "makedepend-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/makedepend-1.0.2.tar.bz2;
-      sha256 = "0mvnjrx161wrzn602c3fd012fixsi8j74dvqahk5nz1dlf8b18j1";
+      url = mirror://xorg/X11R7.6/src/everything/makedepend-1.0.3.tar.bz2;
+      sha256 = "0dxpz376bvphjg8q0nqrcf4y0dbni0c6jj5y16qymr37wlq1s99s";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
     
   mkfontdir = (stdenv.mkDerivation ((if overrides ? mkfontdir then overrides.mkfontdir else x: x) {
-    name = "mkfontdir-1.0.5";
+    name = "mkfontdir-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/mkfontdir-1.0.5.tar.bz2;
-      sha256 = "02rd3b8gp3dxfws2fff07fcxm0z2rlbdhxqm23wijdjhzw66ad55";
+      url = mirror://xorg/X11R7.6/src/everything/mkfontdir-1.0.6.tar.bz2;
+      sha256 = "0nf8p0zsndd9qmrw70h2wdq7sz6j066q73lpp262dlpq21inrmam";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   mkfontscale = (stdenv.mkDerivation ((if overrides ? mkfontscale then overrides.mkfontscale else x: x) {
-    name = "mkfontscale-1.0.7";
+    name = "mkfontscale-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/mkfontscale-1.0.7.tar.bz2;
-      sha256 = "09vivvbw6hbx7n1aq4k4gp23g3pp1bv1zjw2cmm22cx2rhlv41l3";
+      url = mirror://xorg/X11R7.6/src/everything/mkfontscale-1.0.8.tar.bz2;
+      sha256 = "1yah41gr5hlihbjm5l1kykdqj1p5rx6y4vrqraxbzvkrrn37gdbf";
     };
     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.18.2";
+    name = "pixman-0.20.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/pixman-0.18.2.tar.bz2;
-      sha256 = "08rr88cy33k427vyxryxa9yssfy6j9s9m1vcvqmjl2949qv63818";
+      url = mirror://xorg/individual/lib/pixman-0.20.2.tar.bz2;
+      sha256 = "1agl6f63y2wiqr6n9slzhisnilcg8byafp2l8wmw713bk8k6yc9h";
     };
     buildInputs = [pkgconfig perl ];
   })) // {inherit perl ;};
     
-  pixman_0_20_0 = (stdenv.mkDerivation ((if overrides ? pixman then overrides.pixman else x: x) {
-    name = "pixman-0.20.0";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/lib/pixman-0.20.0.tar.bz2;
-      sha256 = "1dc804v98222n5awx1x1inwwdp6p7yksiw5yr8jip2pk3fbak627";
-    };
-    buildInputs = [pkgconfig perl ];
-  })) // {inherit perl ;};
-
   printproto = (stdenv.mkDerivation ((if overrides ? printproto then overrides.printproto else x: x) {
-    name = "printproto-1.0.4";
+    name = "printproto-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/proto/printproto-1.0.4.tar.bz2;
-      sha256 = "1gnkpz8iyl27gyjvy8rhm9v6g5qvz3632pn5djxks577i0qsjngh";
+      url = mirror://xorg/individual/proto/printproto-1.0.5.tar.bz2;
+      sha256 = "06liap8n4s25sgp27d371cc7yg9a08dxcr3pmdjp761vyin3360j";
     };
     buildInputs = [pkgconfig libXau ];
   })) // {inherit libXau ;};
     
   randrproto = (stdenv.mkDerivation ((if overrides ? randrproto then overrides.randrproto else x: x) {
-    name = "randrproto-1.3.1";
+    name = "randrproto-1.3.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/randrproto-1.3.1.tar.bz2;
-      sha256 = "1jl5k46lq4p1jv4mfdpj8zp4m79wzfnyxq97dbd4a2kimv0a6g6r";
+      url = mirror://xorg/X11R7.6/src/everything/randrproto-1.3.2.tar.bz2;
+      sha256 = "0wfwcq85wbm0g5r0snc7prgki1wi3kxrxhcxinyr54n45ihh03fr";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   recordproto = (stdenv.mkDerivation ((if overrides ? recordproto then overrides.recordproto else x: x) {
-    name = "recordproto-1.14";
+    name = "recordproto-1.14.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/recordproto-1.14.tar.bz2;
-      sha256 = "0ryhd6g2h7bg7vzf7dvfgf3n2bbscpqhr9x01alkxamxs9dkglhv";
+      url = mirror://xorg/X11R7.6/src/everything/recordproto-1.14.1.tar.bz2;
+      sha256 = "1389fc3r8h8xqix11y9ngw7a13i1mvw68jkhicgvq676sd1v0zmj";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   renderproto = (stdenv.mkDerivation ((if overrides ? renderproto then overrides.renderproto else x: x) {
-    name = "renderproto-0.11";
+    name = "renderproto-0.11.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/renderproto-0.11.tar.bz2;
-      sha256 = "1hpzxlmk4hylriqx10h9ixq64ksk3lbhr2cli8r9mvdnn3cxdlf4";
+      url = mirror://xorg/X11R7.6/src/everything/renderproto-0.11.1.tar.bz2;
+      sha256 = "0dr5xw6s0qmqg0q5pdkb4jkdhaja0vbfqla79qh5j1xjj9dmlwq6";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   resourceproto = (stdenv.mkDerivation ((if overrides ? resourceproto then overrides.resourceproto else x: x) {
-    name = "resourceproto-1.1.0";
+    name = "resourceproto-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/resourceproto-1.1.0.tar.bz2;
-      sha256 = "0sxk97siq4qkm4r0q6c4fdb7glbasbbx1lj4p0dis574cyq9m3a0";
+      url = mirror://xorg/X11R7.6/src/everything/resourceproto-1.1.1.tar.bz2;
+      sha256 = "1imqlkvn4mfjsflwvqx8dj0n7i7frdpzkdafq001r25ak6782yc5";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   scrnsaverproto = (stdenv.mkDerivation ((if overrides ? scrnsaverproto then overrides.scrnsaverproto else x: x) {
-    name = "scrnsaverproto-1.2.0";
+    name = "scrnsaverproto-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/scrnsaverproto-1.2.0.tar.bz2;
-      sha256 = "16adwjq9cnf15a4gv87c0s1kkwm1w1k3lg1s6nmhszk128r0mbyy";
+      url = mirror://xorg/X11R7.6/src/everything/scrnsaverproto-1.2.1.tar.bz2;
+      sha256 = "1w94c1an7cy9v68289xbqszaj6g5qx5a29qx67fwsvqkmhygglps";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   sessreg = (stdenv.mkDerivation ((if overrides ? sessreg then overrides.sessreg else x: x) {
-    name = "sessreg-1.0.5";
+    name = "sessreg-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/sessreg-1.0.5.tar.bz2;
-      sha256 = "1afir60wikx4xx0d5mbk01s5p5l4wk6y37gfiy0vnlwd078gn21k";
+      url = mirror://xorg/X11R7.6/src/everything/sessreg-1.0.6.tar.bz2;
+      sha256 = "143ivrs2pbkid4wr1hri9221z4gi9dlkq7x60jarcz9bhiq1dwvk";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
     
   setxkbmap = (stdenv.mkDerivation ((if overrides ? setxkbmap then overrides.setxkbmap else x: x) {
-    name = "setxkbmap-1.1.0";
+    name = "setxkbmap-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/setxkbmap-1.1.0.tar.bz2;
-      sha256 = "0r5g9wyyywp90hclhvqkiq6nbgrs0wrwcqvds76dzxjb98qjnbwk";
+      url = mirror://xorg/X11R7.6/src/everything/setxkbmap-1.2.0.tar.bz2;
+      sha256 = "0fdfvc0fqdp11ly5iywrsi4w7rln4dq02b0b91yjmjm83fzr35cr";
     };
     buildInputs = [pkgconfig libX11 libxkbfile ];
   })) // {inherit libX11 libxkbfile ;};
     
   smproxy = (stdenv.mkDerivation ((if overrides ? smproxy then overrides.smproxy else x: x) {
-    name = "smproxy-1.0.3";
+    name = "smproxy-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/smproxy-1.0.3.tar.bz2;
-      sha256 = "0ddfsh2mf938xvac6179cnf8n8n47njb8xyrlyjc43r8hdad538v";
+      url = mirror://xorg/X11R7.6/src/everything/smproxy-1.0.4.tar.bz2;
+      sha256 = "0wj4z4ars9j4k5pysl42jpx4zclrz3ifwgqxrcdlmb3l5xvyb4ip";
     };
-    buildInputs = [pkgconfig libXmu libXt ];
-  })) // {inherit libXmu libXt ;};
+    buildInputs = [pkgconfig libSM libXmu libXt ];
+  })) // {inherit libSM libXmu libXt ;};
     
   twm = (stdenv.mkDerivation ((if overrides ? twm then overrides.twm else x: x) {
-    name = "twm-1.0.4";
+    name = "twm-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/twm-1.0.4.tar.bz2;
-      sha256 = "1yp1inyglf818pp4rjh250zva4i2jip79m3vkf90h593mvwqi86s";
+      url = mirror://xorg/individual/app/twm-1.0.6.tar.bz2;
+      sha256 = "1scly9kv3kx8zh8bfljsdd32dsb4j05xzn8c5x270xcshzbwmp77";
     };
     buildInputs = [pkgconfig libICE libSM libX11 libXext libXmu libXt ];
   })) // {inherit libICE libSM libX11 libXext libXmu libXt ;};
     
   utilmacros = (stdenv.mkDerivation ((if overrides ? utilmacros then overrides.utilmacros else x: x) {
-    name = "util-macros-1.10.0";
+    name = "util-macros-1.11.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/util/util-macros-1.10.0.tar.bz2;
-      sha256 = "0a8in00qqyksij66wgk1m1cp6n4lii88a0c6g1s7cqshwp5b6lmr";
+      url = mirror://xorg/X11R7.6/src/everything/util-macros-1.11.0.tar.bz2;
+      sha256 = "1kya7z5rad93zmc0ij7jhl3shh1k37szmjg1rv75lizqlib4slz8";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   videoproto = (stdenv.mkDerivation ((if overrides ? videoproto then overrides.videoproto else x: x) {
-    name = "videoproto-2.3.0";
+    name = "videoproto-2.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/videoproto-2.3.0.tar.bz2;
-      sha256 = "0pq46hgnrx459v7rlskzk50qi7llk358j9csbbrxcq0vb97cjasg";
+      url = mirror://xorg/X11R7.6/src/everything/videoproto-2.3.1.tar.bz2;
+      sha256 = "0nk3i6gwkqq1w8zwn7bxz344pi1dwcjrmf6hr330h7hxjcj6viry";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -1101,48 +1091,48 @@ let
     name = "windowswmproto-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/windowswmproto-1.0.4.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/windowswmproto-1.0.4.tar.bz2;
       sha256 = "0syjxgy4m8l94qrm03nvn5k6bkxc8knnlld1gbllym97nvnv0ny0";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   x11perf = (stdenv.mkDerivation ((if overrides ? x11perf then overrides.x11perf else x: x) {
-    name = "x11perf-1.5.1";
+    name = "x11perf-1.5.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/x11perf-1.5.1.tar.bz2;
-      sha256 = "0mkhzxvjn9n5ax013wj3lz7jmlm07l57ds2vxy2r9ylkkxbnlk5b";
+      url = mirror://xorg/individual/app/x11perf-1.5.3.tar.bz2;
+      sha256 = "1g91ksfrvj59hvxvfj1xb730aqscg5wdnc3grrab1wz7mxap6k9r";
     };
     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.4";
+    name = "xauth-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xauth-1.0.4.tar.bz2;
-      sha256 = "0nba0xg19y124cswy37ds5dmxfw4avd303xhhq5jf65vp34904gr";
+      url = mirror://xorg/X11R7.6/src/everything/xauth-1.0.5.tar.bz2;
+      sha256 = "0v3lmm3qil8shgm7731pl0wd32kpq7w73w5d4mjq1bqxzw09a4vd";
     };
     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.1.1";
+    name = "xbacklight-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xbacklight-1.1.1.tar.bz2;
-      sha256 = "1ckgc3mbi5z3wv1fa9nf4yv028xh9911qkqz4f4h171vr28xhcjx";
+      url = mirror://xorg/X11R7.6/src/everything/xbacklight-1.1.2.tar.bz2;
+      sha256 = "02b5jfys2msla2yvg5s0knzyxg2104r25czkwd49i8g8kp804bxg";
     };
-    buildInputs = [pkgconfig libX11 libXrandr libXrender ];
-  })) // {inherit libX11 libXrandr libXrender ;};
+    buildInputs = [pkgconfig libX11 libXrandr ];
+  })) // {inherit libX11 libXrandr ;};
     
   xbitmaps = (stdenv.mkDerivation ((if overrides ? xbitmaps then overrides.xbitmaps else x: x) {
-    name = "xbitmaps-1.1.0";
+    name = "xbitmaps-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xbitmaps-1.1.0.tar.bz2;
-      sha256 = "0qc7mmljabh06s4vkz9nkrca1d3f5yr7nr3927pbfdh6iff0b8n9";
+      url = mirror://xorg/X11R7.6/src/everything/xbitmaps-1.1.1.tar.bz2;
+      sha256 = "178ym90kwidia6nas4qr5n5yqh698vv8r02js0r4vg3b6lsb0w9n";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -1151,7 +1141,7 @@ let
     name = "xcb-proto-1.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = http://xcb.freedesktop.org/dist/xcb-proto-1.6.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xcb-proto-1.6.tar.bz2;
       sha256 = "18jwkgd2ayvd0zzwawnbh86b4xqjq29mgsq44h06yj8jkcaw2azm";
     };
     buildInputs = [pkgconfig python ];
@@ -1161,58 +1151,58 @@ let
     name = "xcb-util-0.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = http://xcb.freedesktop.org/dist/xcb-util-0.3.6.tar.bz2;
+      url = mirror://xorg/individual/xcb/xcb-util-0.3.6.tar.bz2;
       sha256 = "0mqfyq6skm19hhfmd5kmcn0v4di4pmbdszmbf2lmhn01mc8yxf7z";
     };
     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.4";
+    name = "xclock-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xclock-1.0.4.tar.bz2;
-      sha256 = "1w7dwrxjwhllynvkvms236jnls8aik8g755kbpycj4aj62v07fb9";
+      url = mirror://xorg/individual/app/xclock-1.0.5.tar.bz2;
+      sha256 = "16jcmsmhz503mqv7wz7daqqhm11phsws0g7fryzlz0gk4jg1daak";
     };
-    buildInputs = [pkgconfig libX11 libXaw libXft libxkbfile libXrender libXt ];
-  })) // {inherit libX11 libXaw libXft libxkbfile libXrender libXt ;};
+    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.0";
+    name = "xcmiscproto-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xcmiscproto-1.2.0.tar.bz2;
-      sha256 = "13pnmizik323jdzdrhf3vyibmf63qmv4wcly8smyki85f1mw05yy";
+      url = mirror://xorg/X11R7.6/src/everything/xcmiscproto-1.2.1.tar.bz2;
+      sha256 = "05acy1axzkrq6z9xlbmz1kg66lbgfqzky8v4qfdl16gv5gi2f3kk";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xcmsdb = (stdenv.mkDerivation ((if overrides ? xcmsdb then overrides.xcmsdb else x: x) {
-    name = "xcmsdb-1.0.2";
+    name = "xcmsdb-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xcmsdb-1.0.2.tar.bz2;
-      sha256 = "1kps2q1gr9l168agqmsk6l9xp2b01qbs9j7i0wb4lkga6ikcdjmz";
+      url = mirror://xorg/X11R7.6/src/everything/xcmsdb-1.0.3.tar.bz2;
+      sha256 = "102s9lsghdp5n3bsg4chlkhrk0jh0kxvg2g0pyi1zmzfy5hd0dxj";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
     
   xcursorgen = (stdenv.mkDerivation ((if overrides ? xcursorgen then overrides.xcursorgen else x: x) {
-    name = "xcursorgen-1.0.3";
+    name = "xcursorgen-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xcursorgen-1.0.3.tar.bz2;
-      sha256 = "0m62paz36b38bx9xpb79qmf9im1yamgmlvj0hp5gy88wi3z3ypzd";
+      url = mirror://xorg/X11R7.6/src/everything/xcursorgen-1.0.4.tar.bz2;
+      sha256 = "07azdw6w18hdgrd6z3nawrhn1m18nyp24cz54ih91vpz8hpxnany";
     };
     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.2";
+    name = "xcursor-themes-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xcursor-themes-1.0.2.tar.bz2;
-      sha256 = "1mhlfnjdq5c0h9k2h088fq82bdsr0g2001x4l2gw15173lpqqyaz";
+      url = mirror://xorg/X11R7.6/src/everything/xcursor-themes-1.0.3.tar.bz2;
+      sha256 = "1is4bak0qkkhv63mfa5l7492r475586y52yzfxyv3psppn662ilr";
     };
     buildInputs = [pkgconfig libXcursor ];
   })) // {inherit libXcursor ;};
@@ -1228,51 +1218,51 @@ let
   })) // {inherit libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ;};
     
   xdpyinfo = (stdenv.mkDerivation ((if overrides ? xdpyinfo then overrides.xdpyinfo else x: x) {
-    name = "xdpyinfo-1.1.0";
+    name = "xdpyinfo-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xdpyinfo-1.1.0.tar.bz2;
-      sha256 = "0c86d890bbdswhpnknlfn1xg5xbjgymjhnfk4vp44gv5cpz8s3bq";
+      url = mirror://xorg/X11R7.6/src/everything/xdpyinfo-1.2.0.tar.bz2;
+      sha256 = "1kmmfawcjxgmp06jb3w7d0pxbrcxrrgfx3m1lbwj3gygir4ssnzy";
     };
-    buildInputs = [pkgconfig libdmx libX11 libXcomposite libXext libXi libXinerama libXp libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ];
-  })) // {inherit libdmx libX11 libXcomposite libXext libXi libXinerama libXp libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ;};
+    buildInputs = [pkgconfig libdmx libX11 libXcomposite libXext libXi libXinerama libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ];
+  })) // {inherit libdmx libX11 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.3";
+    name = "xdriinfo-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xdriinfo-1.0.3.tar.bz2;
-      sha256 = "1715vk6vhxdsn7ir3gd2gy90b4d31llddkysssgxg66713yjlxib";
+      url = mirror://xorg/X11R7.6/src/everything/xdriinfo-1.0.4.tar.bz2;
+      sha256 = "076bjix941znyjmh3j5jjsnhp2gv2iq53d0ks29mvvv87cyy9iim";
     };
     buildInputs = [pkgconfig glproto libX11 ];
   })) // {inherit glproto libX11 ;};
     
   xev = (stdenv.mkDerivation ((if overrides ? xev then overrides.xev else x: x) {
-    name = "xev-1.0.4";
+    name = "xev-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xev-1.0.4.tar.bz2;
-      sha256 = "1s7x06jw3y6blq4nfgm8m55jphp933idwcs6yivyc956anbrrbbz";
+      url = mirror://xorg/X11R7.6/src/everything/xev-1.1.0.tar.bz2;
+      sha256 = "1ih1rxf2b6bpsggvbx4ibyx70bzgcyjl98l1894d0smjxmlc4n9q";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
     
   xextproto = (stdenv.mkDerivation ((if overrides ? xextproto then overrides.xextproto else x: x) {
-    name = "xextproto-7.1.1";
+    name = "xextproto-7.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xextproto-7.1.1.tar.bz2;
-      sha256 = "16adjr7hfzf5qaikrq7341p2g6n2nj8gvxgc9jr2qz6mvlqvs2kd";
+      url = mirror://xorg/X11R7.6/src/everything/xextproto-7.1.2.tar.bz2;
+      sha256 = "16ci2mc9g85fsb7lgml349rbgf97v7l9688by71agv682bhjky7n";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xeyes = (stdenv.mkDerivation ((if overrides ? xeyes then overrides.xeyes else x: x) {
-    name = "xeyes-1.1.0";
+    name = "xeyes-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xeyes-1.1.0.tar.bz2;
-      sha256 = "01ymjkdhz0jrra47l1cqc4vkklaw3frmzgwwvq6jyvm0zr0rcswr";
+      url = mirror://xorg/individual/app/xeyes-1.1.1.tar.bz2;
+      sha256 = "08d5x2kar5kg4yammw6hhk10iva6jmh8cqq176a1z7nm1il9hplp";
     };
     buildInputs = [pkgconfig libX11 libXext libXmu libXrender libXt ];
   })) // {inherit libX11 libXext libXmu libXrender libXt ;};
@@ -1281,7 +1271,7 @@ let
     name = "xf86bigfontproto-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86bigfontproto-1.2.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86bigfontproto-1.2.0.tar.bz2;
       sha256 = "0j0n7sj5xfjpmmgx6n5x556rw21hdd18fwmavp95wps7qki214ms";
     };
     buildInputs = [pkgconfig ];
@@ -1291,18 +1281,18 @@ let
     name = "xf86dgaproto-2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86dgaproto-2.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86dgaproto-2.1.tar.bz2;
       sha256 = "0l4hx48207mx0hp09026r6gy9nl3asbq0c75hri19wp1118zcpmc";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xf86driproto = (stdenv.mkDerivation ((if overrides ? xf86driproto then overrides.xf86driproto else x: x) {
-    name = "xf86driproto-2.1.0";
+    name = "xf86driproto-2.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86driproto-2.1.0.tar.bz2;
-      sha256 = "1gp1vkzypwnd9lvn23vzazl6xxm77vgsgmkyi4p5hgnhzzg14gyj";
+      url = mirror://xorg/individual/proto/xf86driproto-2.1.1.tar.bz2;
+      sha256 = "07v69m0g2dfzb653jni4x656jlr7l84c1k39j8qc8vfb45r8sjww";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -1311,73 +1301,69 @@ let
     name = "xf86-input-acecad-1.4.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-input-acecad-1.4.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-acecad-1.4.0.tar.bz2;
       sha256 = "0mnmvffxwgcvsa208vffsqlai7lldjc46rdk6j0j4q00df5isd28";
     };
     buildInputs = [pkgconfig inputproto randrproto xorgserver xproto ];
   })) // {inherit inputproto randrproto xorgserver xproto ;};
     
   xf86inputaiptek = (stdenv.mkDerivation ((if overrides ? xf86inputaiptek then overrides.xf86inputaiptek else x: x) {
-    name = "xf86-input-aiptek-1.3.0";
+    name = "xf86-input-aiptek-1.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-input-aiptek-1.3.0.tar.bz2;
-      sha256 = "0p2ygfh883wbwk5n1ippd7f562bwrsvbpgriqwvw7zqx0axkazxk";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-aiptek-1.3.1.tar.bz2;
+      sha256 = "16pby473s65lfd2v60fwayzfhf1n6x696lrx720zwb2p22rlsna3";
     };
     buildInputs = [pkgconfig inputproto randrproto xorgserver xproto ];
   })) // {inherit inputproto randrproto xorgserver xproto ;};
     
   xf86inputevdev = (stdenv.mkDerivation ((if overrides ? xf86inputevdev then overrides.xf86inputevdev else x: x) {
-    name = "xf86-input-evdev-2.5.0";
+    name = "xf86-input-evdev-2.6.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-evdev-2.5.0.tar.bz2;
-      sha256 = "0cq34rk3fqlbjnakwzw2138xvwzmf52ffy9grgsrxl6qr4x1gv4x";
+      url = mirror://xorg/individual/driver/xf86-input-evdev-2.6.0.tar.bz2;
+      sha256 = "1b2kcxm7bc255ym56dpl1fw3km44f5ny3hwn65sa90w13acz7rxh";
     };
     buildInputs = [pkgconfig inputproto xorgserver xproto ];
   })) // {inherit inputproto xorgserver xproto ;};
     
   xf86inputjoystick = (stdenv.mkDerivation ((if overrides ? xf86inputjoystick then overrides.xf86inputjoystick else x: x) {
-    name = "xf86-input-joystick-1.4.99.2";
+    name = "xf86-input-joystick-1.5.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-input-joystick-1.4.99.2.tar.bz2;
-      sha256 = "1fsjabi8221wi1xnqla1kdawng91h6s8nkhh992jsdk0hlxfj93j";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-joystick-1.5.0.tar.bz2;
+      sha256 = "1ac2lap4npylyzg0pi0zy0n48wvicgz9kw0z9ih9ylk9sz2ii0bi";
     };
     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.4.0";
+    name = "xf86-input-keyboard-1.5.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-input-keyboard-1.4.0.tar.bz2;
-      sha256 = "19fnlr555pf5y0s01mlhski6v9rvsjzp6b2n5i7sppb8rb7kcbc4";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-keyboard-1.5.0.tar.bz2;
+      sha256 = "1c4ww4yj23shqwhc52r512qsy5baf1sxsb7jj7pfnralj07520r3";
     };
-    buildInputs = [pkgconfig inputproto kbproto randrproto xorgserver xproto ];
-  })) // {inherit inputproto kbproto randrproto xorgserver xproto ;};
+    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.5.0";
+    name = "xf86-input-mouse-1.6.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-input-mouse-1.5.0.tar.bz2;
-      sha256 = "15xk3a6ld9zphqhfm1w69cmnsd13fz8k9xx70w7b4bxbf84f40zk";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-mouse-1.6.0.tar.bz2;
+      sha256 = "1nzvlbhvdyki3h1s4x2i3ps1immf3wfns6az2i3669v8a5g29bn7";
     };
-    buildInputs = [pkgconfig inputproto randrproto xorgserver xproto ];
-  })) // {inherit inputproto randrproto xorgserver xproto ;};
+    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.3.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-synaptics-1.3.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-synaptics-1.3.0.tar.bz2;
       sha256 = "1mwgb85qjyzx2yfi7jhgvd435zdyqxyq9aqwlsldmlpkqi8358rh";
     };
-    preConfigure = ''
-      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${xorgserver}/include/xorg"
-    '';
-    configureFlags = [ "--with-xorg-conf-dir=$out/share/X11/xorg.conf.d" ];
     buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
   })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
     
@@ -1385,18 +1371,18 @@ let
     name = "xf86-input-vmmouse-12.6.10";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-vmmouse-12.6.10.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-vmmouse-12.6.10.tar.bz2;
       sha256 = "0409lkwk1ws8vw4axxilwmcs8qxj8lq5dma2i2iz49q6hrd9sdm6";
     };
     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.3.0";
+    name = "xf86-input-void-1.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-input-void-1.3.0.tar.bz2;
-      sha256 = "03qk5gaw8msmi39m6024p61b0faw91b3vn257hdy40vpcggms5p2";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-input-void-1.3.1.tar.bz2;
+      sha256 = "0x662i756p0nqmfv76ppm28ir2sbvcm32r71ycd9bxc3mj29g9mb";
     };
     buildInputs = [pkgconfig xorgserver xproto ];
   })) // {inherit xorgserver xproto ;};
@@ -1412,51 +1398,51 @@ let
   })) // {inherit ;};
     
   xf86videoapm = (stdenv.mkDerivation ((if overrides ? xf86videoapm then overrides.xf86videoapm else x: x) {
-    name = "xf86-video-apm-1.2.2";
+    name = "xf86-video-apm-1.2.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-apm-1.2.2.tar.bz2;
-      sha256 = "0lhp3karp7v59p4i7lxk8yc5amsqihwa5pfcf9zpqphx7q3dv3k7";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-apm-1.2.3.tar.bz2;
+      sha256 = "1nih9ayiw13aa1s8j6gr99b207215if055c6yvsrssnpvccflij0";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
     
   xf86videoark = (stdenv.mkDerivation ((if overrides ? xf86videoark then overrides.xf86videoark else x: x) {
-    name = "xf86-video-ark-0.7.2";
+    name = "xf86-video-ark-0.7.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-ark-0.7.2.tar.bz2;
-      sha256 = "0hap0q41bxq10a2jxbkpb93ad7zxbl1l64bcy4vjhf5xbvhz67nv";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-ark-0.7.3.tar.bz2;
+      sha256 = "164gyaaddjjma0xqys0knid2rsd0c7jlab02c8wh3bk4bib9l51r";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
     
   xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) {
-    name = "xf86-video-ast-0.89.9";
+    name = "xf86-video-ast-0.91.10";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-ast-0.89.9.tar.bz2;
-      sha256 = "00dllv1vs8xg9gbsabixsz846xd9y6ijibpl2ljhafip5b9ic3w8";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-ast-0.91.10.tar.bz2;
+      sha256 = "05fcp0svdd4skkfgag1rrram6v3xzgasf582dihpyrwlz28186vy";
     };
     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.12.4";
+    name = "xf86-video-ati-6.14.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-ati-6.12.4.tar.bz2;
-      sha256 = "1xiqyf5pa8k0mva3ikq2i1xq8yn9lswmrsbr9xi9p8c7f1m0dpng";
+      url = mirror://xorg/individual/driver/xf86-video-ati-6.14.2.tar.bz2;
+      sha256 = "017974b622eea3b4483405368492b0c6f178854a9b9753d50e13c578b8a328dc";
     };
-    buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xineramaproto xorgserver xproto ];
-  })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xineramaproto xorgserver xproto ;};
+    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 ;};
     
   xf86videochips = (stdenv.mkDerivation ((if overrides ? xf86videochips then overrides.xf86videochips else x: x) {
-    name = "xf86-video-chips-1.2.2";
+    name = "xf86-video-chips-1.2.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-chips-1.2.2.tar.bz2;
-      sha256 = "03kz0gvg0ryynj4pllbismb77aq2wmsy7zpk4cxynby6zwnfyvzz";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-chips-1.2.3.tar.bz2;
+      sha256 = "07fb03cxdlis2rjphz2pl59cjhldrhqric8p0gi4wkgq0s72fq85";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -1465,68 +1451,68 @@ let
     name = "xf86-video-cirrus-1.3.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-cirrus-1.3.2.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-cirrus-1.3.2.tar.bz2;
       sha256 = "06na525xy5d6xf5g13bjsk9cyxly5arzgrk9j8dmxfll5jj9i6jj";
     };
     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.2";
+    name = "xf86-video-dummy-0.3.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-dummy-0.3.2.tar.bz2;
-      sha256 = "1yj5bk79lxdqrdivznqxpds7dh2fdx3d9anz1y990pqb3g1cp2ck";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-dummy-0.3.4.tar.bz2;
+      sha256 = "1p0vhxvx25d8fp59i72664smhd0z5zw0i2kipk0879xk1vsxz13y";
     };
     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.1";
+    name = "xf86-video-fbdev-0.4.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-fbdev-0.4.1.tar.bz2;
-      sha256 = "13r8nwl8z0kwqvgmiaj9wrjwid4d55cs1vn6qsf3lhr3jlbmgy1b";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-fbdev-0.4.2.tar.bz2;
+      sha256 = "1mc23w0bfmak5216411xh58nrs93jlxmi6l412hmqzhxnjs73clk";
     };
     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.6";
+    name = "xf86-video-geode-2.11.10";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-geode-2.11.6.tar.bz2;
-      sha256 = "148zfkxzw3g56wbhfix4ggw781szbay3rrrjgyji7nq8pi3xl6ja";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-geode-2.11.10.tar.bz2;
+      sha256 = "1zdb3y5df1dcqlvijg8hxcd6520a5c69jk52yz7ww194ka2c8icf";
     };
-    buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
-  })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
+    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.0.3";
+    name = "xf86-video-glide-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-glide-1.0.3.tar.bz2;
-      sha256 = "1n76g133iq5pd8pll9k37j2szp8py2qmzr6w0r5jhd13lrazi1gi";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-glide-1.1.0.tar.bz2;
+      sha256 = "1wf35ai8z3qqk2a97rp72jzvm28ylw2wj2hllrsn29p7jpznh5aw";
     };
-    buildInputs = [pkgconfig fontsproto randrproto renderproto xextproto xorgserver xproto ];
-  })) // {inherit fontsproto randrproto renderproto xextproto xorgserver xproto ;};
+    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.4";
+    name = "xf86-video-glint-1.2.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-glint-1.2.4.tar.bz2;
-      sha256 = "0vypk7njd6927imi80akfyd6q2wl1d8ragg6p8sx4qf208xnx3az";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-glint-1.2.5.tar.bz2;
+      sha256 = "0jw1kkyja8hvvhrr3ldl1r5vpqfhn1xmqkpgd2jrkc5p59rz4xan";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xorgserver xproto ;};
     
   xf86videoi128 = (stdenv.mkDerivation ((if overrides ? xf86videoi128 then overrides.xf86videoi128 else x: x) {
-    name = "xf86-video-i128-1.3.3";
+    name = "xf86-video-i128-1.3.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-i128-1.3.3.tar.bz2;
-      sha256 = "0bmh6adk0pkzkcn0p4xkfi8r2hmya1rp2d6c0mfhfm1viv7921jd";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-i128-1.3.4.tar.bz2;
+      sha256 = "1kwb4ifxwm77s1ks19csmq2ymgs36bxqwvwv24ssvxb9znki76xn";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -1535,48 +1521,58 @@ let
     name = "xf86-video-i740-1.3.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-i740-1.3.2.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-i740-1.3.2.tar.bz2;
       sha256 = "0hzr5fz6d5jk9jxh9plfgvgias3w7xzyg1n4gx0hs2lc7mm9qm28";
     };
     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.13.0";
+    name = "xf86-video-intel-2.14.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/driver/xf86-video-intel-2.14.0.tar.bz2;
+      sha256 = "1pq7nm6whc2nmrizf774q042580cfms6yp6yd5p52q59g6jkg371";
+    };
+    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_14_901 = (stdenv.mkDerivation ((if overrides ? xf86videointel then overrides.xf86videointel else x: x) {
+    name = "xf86-video-intel-2.14.901";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-intel-2.13.0.tar.bz2;
-      sha256 = "11y85xsm21zaadn7di8vkglbi5d9ibgghzfbjhlkgbn4s3lgmcnq";
+      url = mirror://xorg/individual/driver/xf86-video-intel-2.14.901.tar.bz2;
+      sha256 = "1hm3zn96ahmirvx1iv87sk7fl7g8a6h1j7560gyw7y5b3l1zmg5r";
     };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXvMC ;};
+    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 ;};
     
   xf86videomach64 = (stdenv.mkDerivation ((if overrides ? xf86videomach64 then overrides.xf86videomach64 else x: x) {
     name = "xf86-video-mach64-6.8.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-mach64-6.8.2.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-mach64-6.8.2.tar.bz2;
       sha256 = "07b7dkb6xc10pvf483dg52r2klpikmw339i5ln9ig913601r84dr";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ;};
     
   xf86videomga = (stdenv.mkDerivation ((if overrides ? xf86videomga then overrides.xf86videomga else x: x) {
-    name = "xf86-video-mga-1.4.11";
+    name = "xf86-video-mga-1.4.13";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-mga-1.4.11.tar.bz2;
-      sha256 = "1rlp1ywvcfk04p7h5n0s2pm7r4d7jkzr5nnv3pa78vs8dwqj46f9";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-mga-1.4.13.tar.bz2;
+      sha256 = "1xnzxmp9cfpi6q7fx2r74iwyb33wkdrqcf38dhwydbaaxigvsmxn";
     };
     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.4";
+    name = "xf86-video-neomagic-1.2.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-neomagic-1.2.4.tar.bz2;
-      sha256 = "0lw3i7dkrg98dzjdci6yf4dn3a9j2rmd31hab7s46wh0dnca4ka3";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-neomagic-1.2.5.tar.bz2;
+      sha256 = "0jshn5k1byq0msl1ymip3m2xycrd8jkk6nzm5dx2av5xlj1rxdn0";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
@@ -1585,18 +1581,18 @@ let
     name = "xf86-video-newport-0.2.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-newport-0.2.3.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-newport-0.2.3.tar.bz2;
       sha256 = "0w02rz49gipnfl33vak3zgis8bh9i0v5ykyj8qh9vzddjm7ypjp6";
     };
     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.15";
+    name = "xf86-video-nv-2.1.18";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-nv-2.1.15.tar.bz2;
-      sha256 = "0h9nbbp4dd4lcm9bjmfgv9p9pdq6hj535mnjf70xkkip0i0y1361";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-nv-2.1.18.tar.bz2;
+      sha256 = "05glbi9jc7j9nm4sf4qvl3z87s48ibm3i283lqz85kbphg62dxvc";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -1605,7 +1601,7 @@ let
     name = "xf86-video-openchrome-0.2.904";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-openchrome-0.2.904.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-openchrome-0.2.904.tar.bz2;
       sha256 = "1sksddn0pc3izvab5ppxhprs1xzk5ijwqz5ylivx1cb5hg2gggf7";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ];
@@ -1615,18 +1611,18 @@ let
     name = "xf86-video-r128-6.8.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-r128-6.8.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-r128-6.8.1.tar.bz2;
       sha256 = "1jlybabm3k09hhlzx1xilndqngk3xgdck66n94sr02w5hg622zji";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ;};
     
   xf86videorendition = (stdenv.mkDerivation ((if overrides ? xf86videorendition then overrides.xf86videorendition else x: x) {
-    name = "xf86-video-rendition-4.2.3";
+    name = "xf86-video-rendition-4.2.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-rendition-4.2.3.tar.bz2;
-      sha256 = "152dfsjf75xbkl8a2xlpr1pl5365b3svhfj9y9dfxzi963ymjmcx";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-rendition-4.2.4.tar.bz2;
+      sha256 = "1a9anxgqs7wc8d7jb5nw6dgmynw0sxiwp9p90h4w19y315kqx6rv";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
@@ -1635,7 +1631,7 @@ let
     name = "xf86-video-s3-0.6.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-s3-0.6.3.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-s3-0.6.3.tar.bz2;
       sha256 = "0i2i1080cw3pxy1pm43bskb80n7wql0cxpyd2s61v0didsm6b7zd";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
@@ -1645,7 +1641,7 @@ let
     name = "xf86-video-s3virge-1.10.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-s3virge-1.10.4.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-s3virge-1.10.4.tar.bz2;
       sha256 = "1f3zjs6a3j2a8lfdilijggpwbg9cs88qksrvzvd71ggxf5p0vl0w";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
@@ -1655,38 +1651,38 @@ let
     name = "xf86-video-savage-2.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-savage-2.3.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-savage-2.3.1.tar.bz2;
       sha256 = "1ays1l4phyjcdikc9d1zwgswivcrb1grkh7klv5klvqahbfxqjib";
     };
     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.3";
+    name = "xf86-video-siliconmotion-1.7.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-siliconmotion-1.7.3.tar.bz2;
-      sha256 = "0aqb0sl2ds6n3wqq452xn6d5zkavryiks154xa6c1596wj5ldnpb";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-siliconmotion-1.7.4.tar.bz2;
+      sha256 = "1mq4dsg2f77wxl0n4fnm6a5p3lajyhra6rxx29z52p5b1x412xdl";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
     
   xf86videosis = (stdenv.mkDerivation ((if overrides ? xf86videosis then overrides.xf86videosis else x: x) {
-    name = "xf86-video-sis-0.10.2";
+    name = "xf86-video-sis-0.10.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-sis-0.10.2.tar.bz2;
-      sha256 = "1hi8h7ixfbwhnqiara9xx5y6pzi3svnvma97j2dncmg3k4bp1b9s";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-sis-0.10.3.tar.bz2;
+      sha256 = "0dy7a7iil35nz1xlazrcq0sp474p6wy0f1pa5y0spbfj5zib6fcv";
     };
     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 ;};
     
   xf86videosisusb = (stdenv.mkDerivation ((if overrides ? xf86videosisusb then overrides.xf86videosisusb else x: x) {
-    name = "xf86-video-sisusb-0.9.3";
+    name = "xf86-video-sisusb-0.9.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-sisusb-0.9.3.tar.bz2;
-      sha256 = "1clvnjkjzs2fmjm58fv31x6b5nk6y5ahb5vwvrizpm9irh7aky8x";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-sisusb-0.9.4.tar.bz2;
+      sha256 = "0b5afc1dqj8h34fldl35hzf7wphj1x76czkd461bfarnvyljgfrb";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xextproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto videoproto xextproto xineramaproto xorgserver xproto ;};
@@ -1695,7 +1691,7 @@ let
     name = "xf86-video-suncg14-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-suncg14-1.1.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-suncg14-1.1.1.tar.bz2;
       sha256 = "1n108xbwg803v2sk51galx66ph8wdb0ym84fx45h0jrr41wh0hyb";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
@@ -1705,7 +1701,7 @@ let
     name = "xf86-video-suncg3-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-suncg3-1.1.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-suncg3-1.1.1.tar.bz2;
       sha256 = "06c4hzmd5cfzbw79yrv3knss80hllciamz734ij1pbzj6j6fjvym";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
@@ -1715,7 +1711,7 @@ let
     name = "xf86-video-suncg6-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-suncg6-1.1.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-suncg6-1.1.1.tar.bz2;
       sha256 = "07w0hm63fiy5l3cpcjsl0ig8z84z9r36xm0cmnpiv3g75dy6q8fi";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
@@ -1725,7 +1721,7 @@ let
     name = "xf86-video-sunffb-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-sunffb-1.2.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-sunffb-1.2.1.tar.bz2;
       sha256 = "04byax4sc1fn183vyyq0q11q730k16h2by4ggjky7s36wgv7ldzx";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xextproto xorgserver xproto ];
@@ -1735,7 +1731,7 @@ let
     name = "xf86-video-sunleo-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-sunleo-1.2.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-sunleo-1.2.0.tar.bz2;
       sha256 = "01kffjbshmwix2cdb95j0cx2qmrss6yfjj7y5qssw83h36bvw5dk";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
@@ -1745,7 +1741,7 @@ let
     name = "xf86-video-suntcx-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-suntcx-1.1.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-suntcx-1.1.1.tar.bz2;
       sha256 = "07lqah5sizhwjpzr4vcpwgvbl86fwz4k0c3skp63sq58ng21acal";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
@@ -1755,7 +1751,7 @@ let
     name = "xf86-video-tdfx-1.4.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-tdfx-1.4.3.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-tdfx-1.4.3.tar.bz2;
       sha256 = "0cxz1rsc87cnf0ba1zfwhk0lhfas92ysc9b13q6x21m31b53bn9s";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
@@ -1765,28 +1761,28 @@ let
     name = "xf86-video-tga-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-tga-1.2.1.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-tga-1.2.1.tar.bz2;
       sha256 = "0mdqrn02zzkdnmhg4vh9djaawg6b2p82g5qbj66z8b30yr77b93h";
     };
     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.3";
+    name = "xf86-video-trident-1.3.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-trident-1.3.3.tar.bz2;
-      sha256 = "1x8ibnkq6vv9ify1alc65hj5c8np7bii9dp61cw7b87hyfvflhb2";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-trident-1.3.4.tar.bz2;
+      sha256 = "1a4wybqwd617mg8lzn1xvi5m0iibimxpvyqsr31mhb7gw0qidrjq";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
     
   xf86videotseng = (stdenv.mkDerivation ((if overrides ? xf86videotseng then overrides.xf86videotseng else x: x) {
-    name = "xf86-video-tseng-1.2.3";
+    name = "xf86-video-tseng-1.2.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-tseng-1.2.3.tar.bz2;
-      sha256 = "11via1r9b3x0cfa0ys44w9hff9s5a2wf50hgi1zfhjysg4zbnmh5";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-tseng-1.2.4.tar.bz2;
+      sha256 = "0gfiwx2p51k3k78qic8y9y0d3d6nhhbmzfvzmw5hx3ba9kxmvpfh";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -1795,7 +1791,7 @@ let
     name = "xf86-video-v4l-0.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-v4l-0.2.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-v4l-0.2.0.tar.bz2;
       sha256 = "0pcjc75hgbih3qvhpsx8d4fljysfk025slxcqyyhr45dzch93zyb";
     };
     buildInputs = [pkgconfig randrproto videoproto xorgserver xproto ];
@@ -1805,28 +1801,28 @@ let
     name = "xf86-video-vesa-2.3.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-vesa-2.3.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-vesa-2.3.0.tar.bz2;
       sha256 = "0yhdj39d8rfv2n4i52dg7cg1rsrclagn7rjs3pc3jdajjh75mn4f";
     };
     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-11.0.2";
+    name = "xf86-video-vmware-11.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-vmware-11.0.2.tar.bz2;
-      sha256 = "1lkmyichry4kz4mhj35ry482rflz622gq8j788iq8j5rcjjrvcga";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-vmware-11.0.3.tar.bz2;
+      sha256 = "18rqkzr1dvzgdr2khlhhpai69z28rnrfl8jiw9hnahbyv2r7qjmj";
     };
-    buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xineramaproto xorgserver xproto ];
-  })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xineramaproto xorgserver xproto ;};
+    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.3";
+    name = "xf86-video-voodoo-1.2.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-voodoo-1.2.3.tar.bz2;
-      sha256 = "1s99ms9kjb1ypq8ra340iyc14x3mkh4vpbbz85r5nchrmfclsp82";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-voodoo-1.2.4.tar.bz2;
+      sha256 = "0ha748yz92yzn6hp2rhin3il8f4j2rs4vkgdvqkagnv1ryxkh0ph";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ;};
@@ -1835,138 +1831,138 @@ let
     name = "xf86-video-wsfb-0.3.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-wsfb-0.3.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-wsfb-0.3.0.tar.bz2;
       sha256 = "17lqhir0adcccfkrzz2sr8cpv5vkakk0w7xfc22vv7c6jz9vdgbq";
     };
     buildInputs = [pkgconfig xorgserver xproto ];
   })) // {inherit xorgserver xproto ;};
     
   xf86videoxgi = (stdenv.mkDerivation ((if overrides ? xf86videoxgi then overrides.xf86videoxgi else x: x) {
-    name = "xf86-video-xgi-1.5.1";
+    name = "xf86-video-xgi-1.6.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-xgi-1.5.1.tar.bz2;
-      sha256 = "064yginmdlcrk09rmwgbjn1jvgm38j9prfhmzv25yd4xgwlga6fb";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-xgi-1.6.0.tar.bz2;
+      sha256 = "05wl9a51pik5swkzpyhh4y2gf6m3hd458r4142p5w39bbkmhcd78";
     };
     buildInputs = [pkgconfig fontsproto glproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto glproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xineramaproto xorgserver xproto ;};
     
   xf86videoxgixp = (stdenv.mkDerivation ((if overrides ? xf86videoxgixp then overrides.xf86videoxgixp else x: x) {
-    name = "xf86-video-xgixp-1.7.99.4";
+    name = "xf86-video-xgixp-1.8.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86-video-xgixp-1.7.99.4.tar.bz2;
-      sha256 = "15bk90pr8xcwiva1bhfmqz3qjyycwnid4x7iwrwxc47zi661f2pf";
+      url = mirror://xorg/X11R7.6/src/everything/xf86-video-xgixp-1.8.0.tar.bz2;
+      sha256 = "06np5s3f3451vmjwpxbn8hb7d4dhsxff2af8qy8jlc24rinnv9is";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
     
   xf86vidmodeproto = (stdenv.mkDerivation ((if overrides ? xf86vidmodeproto then overrides.xf86vidmodeproto else x: x) {
-    name = "xf86vidmodeproto-2.3";
+    name = "xf86vidmodeproto-2.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xf86vidmodeproto-2.3.tar.bz2;
-      sha256 = "0iy25ayr105x5b6yfi1a2xvmgc7jaghghp6hjk2k2ys0ll9lcw4g";
+      url = mirror://xorg/individual/proto/xf86vidmodeproto-2.3.1.tar.bz2;
+      sha256 = "0w47d7gfa8zizh2bshdr2rffvbr4jqjv019mdgyh6cmplyd4kna5";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xfs = (stdenv.mkDerivation ((if overrides ? xfs then overrides.xfs else x: x) {
-    name = "xfs-1.1.0";
+    name = "xfs-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xfs-1.1.0.tar.bz2;
-      sha256 = "0vazp4p2c9xayd1gdmlqqhklsv0770sgwvmafgjsi204rnxx9fj7";
+      url = mirror://xorg/individual/app/xfs-1.1.1.tar.bz2;
+      sha256 = "1yxm87az3xghngcsd50zz6mdgi9j6vm8pw90sjqzshwq7hx7d0qc";
     };
     buildInputs = [pkgconfig libFS libXfont xtrans ];
   })) // {inherit libFS libXfont xtrans ;};
     
   xgamma = (stdenv.mkDerivation ((if overrides ? xgamma then overrides.xgamma else x: x) {
-    name = "xgamma-1.0.3";
+    name = "xgamma-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xgamma-1.0.3.tar.bz2;
-      sha256 = "06kf7r0fq1gn2sw6rb0mxlpc5ac78hh09cviapdw5idxzf42bsz5";
+      url = mirror://xorg/X11R7.6/src/everything/xgamma-1.0.4.tar.bz2;
+      sha256 = "05lfx9517why64b3n14drid7vn1d2g2ymg22034vqq50h9437j3x";
     };
     buildInputs = [pkgconfig libX11 libXxf86vm ];
   })) // {inherit libX11 libXxf86vm ;};
     
   xhost = (stdenv.mkDerivation ((if overrides ? xhost then overrides.xhost else x: x) {
-    name = "xhost-1.0.3";
+    name = "xhost-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xhost-1.0.3.tar.bz2;
-      sha256 = "05xd6j8l120kcz4vz9pdrv1wnfhkq2rlagizliry57z8cmy00qrd";
+      url = mirror://xorg/X11R7.6/src/everything/xhost-1.0.4.tar.bz2;
+      sha256 = "15558q9hgmw6vbwc2sgjkfpzw342lxci9w8vcbrmi8mpmrnc00jy";
     };
     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";
+    name = "xineramaproto-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xineramaproto-1.2.tar.bz2;
-      sha256 = "0r5slwkj8h8v548ysgwhm6idqnij8w96nkgr33ch2wpcrs3q1s2q";
+      url = mirror://xorg/individual/proto/xineramaproto-1.2.1.tar.bz2;
+      sha256 = "0ns8abd27x7gbp4r44z3wc5k9zqxxj8zjnazqpcyr4n17nxp8xcp";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xinit = (stdenv.mkDerivation ((if overrides ? xinit then overrides.xinit else x: x) {
-    name = "xinit-1.2.1";
+    name = "xinit-1.3.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xinit-1.2.1.tar.bz2;
-      sha256 = "01wvdi69v9yadzavch6l8c80v1rqgxsyl6cl3byq0v8vx0xcgg0n";
+      url = mirror://xorg/individual/app/xinit-1.3.0.tar.bz2;
+      sha256 = "0k70bw6x2zgvmd0l7xyzbps18pbzfz26yzjva1vcz9s239pf6xms";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
     
   xinput = (stdenv.mkDerivation ((if overrides ? xinput then overrides.xinput else x: x) {
-    name = "xinput-1.5.2";
+    name = "xinput-1.5.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xinput-1.5.2.tar.bz2;
-      sha256 = "1433lw6xv59f240rgrpgyf9qrmh9knpx64gg95bm32cjvh0qdrrc";
+      url = mirror://xorg/X11R7.6/src/everything/xinput-1.5.3.tar.bz2;
+      sha256 = "0xjwi1sjmvmmzgcvzvz4q8wn0gs7x3aivknx77yfxnndrqqy3bba";
     };
     buildInputs = [pkgconfig inputproto libX11 libXext libXi ];
   })) // {inherit inputproto libX11 libXext libXi ;};
     
   xkbcomp = (stdenv.mkDerivation ((if overrides ? xkbcomp then overrides.xkbcomp else x: x) {
-    name = "xkbcomp-1.1.1";
+    name = "xkbcomp-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xkbcomp-1.1.1.tar.bz2;
-      sha256 = "0qz6hbypcv350cqrnlks7ncby6gl6g4v5rb550ga9zyr8gyvqxcp";
+      url = mirror://xorg/individual/app/xkbcomp-1.2.1.tar.bz2;
+      sha256 = "1sv51rliqs6wygrp2hc79a5pgn6ly0bbr4sa8a8x00j4j4kjaqdp";
     };
     buildInputs = [pkgconfig libX11 libxkbfile ];
   })) // {inherit libX11 libxkbfile ;};
     
   xkbevd = (stdenv.mkDerivation ((if overrides ? xkbevd then overrides.xkbevd else x: x) {
-    name = "xkbevd-1.1.0";
+    name = "xkbevd-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xkbevd-1.1.0.tar.bz2;
-      sha256 = "1px26hmn4rv1m997r7bg01w2viaybxgsm4ddahwz27rj43fpl0s6";
+      url = mirror://xorg/X11R7.6/src/everything/xkbevd-1.1.2.tar.bz2;
+      sha256 = "0qzbh1wb2fg0wsyfqr4j15443caa1xfcxwdf1gzb4gpbkxn98qnd";
     };
     buildInputs = [pkgconfig libX11 libxkbfile ];
   })) // {inherit libX11 libxkbfile ;};
     
   xkbutils = (stdenv.mkDerivation ((if overrides ? xkbutils then overrides.xkbutils else x: x) {
-    name = "xkbutils-1.0.2";
+    name = "xkbutils-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xkbutils-1.0.2.tar.bz2;
-      sha256 = "1vhbqyqgvdzkqlkvj80sg6w4phk8f21g6n8n5djb5pm4ji2pv8qj";
+      url = mirror://xorg/X11R7.6/src/everything/xkbutils-1.0.3.tar.bz2;
+      sha256 = "1ga913pw6chssf2016kjyjl6ar2lj83pa497w97ak2kq603sy2g4";
     };
-    buildInputs = [pkgconfig inputproto libX11 libXaw libxkbfile ];
-  })) // {inherit inputproto libX11 libXaw libxkbfile ;};
+    buildInputs = [pkgconfig inputproto libX11 libXaw xproto libXt ];
+  })) // {inherit inputproto libX11 libXaw xproto libXt ;};
     
   xkill = (stdenv.mkDerivation ((if overrides ? xkill then overrides.xkill else x: x) {
-    name = "xkill-1.0.2";
+    name = "xkill-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xkill-1.0.2.tar.bz2;
-      sha256 = "09sskbg2njl52kq7x8l95m7sfg195b06f0wdp8fankizilwz0bak";
+      url = mirror://xorg/X11R7.6/src/everything/xkill-1.0.3.tar.bz2;
+      sha256 = "1ac110qbb9a4x1dim3vaghvdk3jc708i2p3f4rmag33458khg0xx";
     };
     buildInputs = [pkgconfig libX11 libXmu ];
   })) // {inherit libX11 libXmu ;};
@@ -1975,18 +1971,18 @@ let
     name = "xlsatoms-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xlsatoms-1.1.0.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xlsatoms-1.1.0.tar.bz2;
       sha256 = "03fbknvq7rixfgpv5945s7r82jz2xc06a0n09w1p22hl4pd7l0aa";
     };
     buildInputs = [pkgconfig libxcb ];
   })) // {inherit libxcb ;};
     
   xlsclients = (stdenv.mkDerivation ((if overrides ? xlsclients then overrides.xlsclients else x: x) {
-    name = "xlsclients-1.1.0";
+    name = "xlsclients-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xlsclients-1.1.0.tar.bz2;
-      sha256 = "037sph4zyar6061445xmf1bqrmm00k6qr9lpypjnrx4ragsm2nzr";
+      url = mirror://xorg/X11R7.6/src/everything/xlsclients-1.1.1.tar.bz2;
+      sha256 = "0ng81cm40881gddzwrfdbsvbnqfpqllxaxdsa8m2ljqxlq9mwfs5";
     };
     buildInputs = [pkgconfig libxcb xcbutil ];
   })) // {inherit libxcb xcbutil ;};
@@ -2002,51 +1998,51 @@ let
   })) // {inherit libXaw libXt ;};
     
   xmodmap = (stdenv.mkDerivation ((if overrides ? xmodmap then overrides.xmodmap else x: x) {
-    name = "xmodmap-1.0.4";
+    name = "xmodmap-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xmodmap-1.0.4.tar.bz2;
-      sha256 = "1v8bpp3svyza9nn3f8jlilf01nwwzchr3a0sl5h9vxcrbm966nl0";
+      url = mirror://xorg/X11R7.6/src/everything/xmodmap-1.0.5.tar.bz2;
+      sha256 = "00il5y6q2m90f62cqzgc0ni5qg3y946gf98jj325kx8cgfhyf7j2";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
     
   xorgcffiles = (stdenv.mkDerivation ((if overrides ? xorgcffiles then overrides.xorgcffiles else x: x) {
-    name = "xorg-cf-files-1.0.3";
+    name = "xorg-cf-files-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/util/xorg-cf-files-1.0.3.tar.bz2;
-      sha256 = "02z2w72bwa1hvjyp7ilw37qs2zbr7cggabq18jzdpb4dzgcdwcmw";
+      url = mirror://xorg/individual/util/xorg-cf-files-1.0.4.tar.bz2;
+      sha256 = "0s86h66b3w4623m88fg2csp41cnr08qc8i3gkj85k3wpwj1wxs9n";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xorgdocs = (stdenv.mkDerivation ((if overrides ? xorgdocs then overrides.xorgdocs else x: x) {
-    name = "xorg-docs-1.5";
+    name = "xorg-docs-1.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xorg-docs-1.5.tar.bz2;
-      sha256 = "1z7afnz0cxla7dz9gj95vwrwzqph7w90kd6d5ah7dbcp5rc67k32";
+      url = mirror://xorg/X11R7.6/src/everything/xorg-docs-1.6.tar.bz2;
+      sha256 = "0clxy41642jx77mmw5j2fnwa88ms1a7z1z8xpzrgs45bhv21pcpn";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) {
-    name = "xorg-server-1.8.2";
+    name = "xorg-server-1.9.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xserver/xorg-server-1.8.2.tar.bz2;
-      sha256 = "1qmcmrv26p8645nwdm2q558mpvi75fpn9knkacanzysw5497w5aj";
+      url = mirror://xorg/individual/xserver/xorg-server-1.9.5.tar.bz2;
+      sha256 = "1p19w1s840jb1ah6na0c9k23gbh9wwz1il272irqy3jggh4pbirz";
     };
-    buildInputs = [pkgconfig bigreqsproto damageproto dbus fixesproto fontsproto inputproto kbproto libdrm openssl libpciaccess perl pixman randrproto renderproto libX11 libXau libXaw xcmiscproto libXdmcp xextproto libXfixes libXfont libxkbfile libXmu libXpm xproto libXrender libXres libXt xtrans libXv ];
-  })) // {inherit bigreqsproto damageproto dbus fixesproto fontsproto inputproto kbproto libdrm openssl libpciaccess perl pixman randrproto renderproto libX11 libXau libXaw xcmiscproto libXdmcp xextproto libXfixes libXfont libxkbfile libXmu libXpm xproto libXrender libXres libXt xtrans libXv ;};
+    buildInputs = [pkgconfig bigreqsproto damageproto fixesproto fontsproto inputproto kbproto libdrm openssl libpciaccess perl randrproto renderproto libX11 libXau libXaw xcmiscproto libXdmcp xextproto libXfixes libxkbfile libXmu libXpm xproto libXrender libXres libXt xtrans libXv ];
+  })) // {inherit bigreqsproto damageproto fixesproto fontsproto inputproto kbproto libdrm openssl libpciaccess perl randrproto renderproto libX11 libXau libXaw xcmiscproto libXdmcp xextproto libXfixes libxkbfile libXmu libXpm xproto libXrender libXres libXt xtrans libXv ;};
     
   xorgsgmldoctools = (stdenv.mkDerivation ((if overrides ? xorgsgmldoctools then overrides.xorgsgmldoctools else x: x) {
-    name = "xorg-sgml-doctools-1.3";
+    name = "xorg-sgml-doctools-1.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xorg-sgml-doctools-1.3.tar.bz2;
-      sha256 = "1cnvfmdnyadh56sj29snz5k94zjbnf9aiad6l8dsdi2dm2gjgh6m";
+      url = mirror://xorg/X11R7.6/src/everything/xorg-sgml-doctools-1.6.tar.bz2;
+      sha256 = "0smfsman09dqqw6h638w44lgp2kng2jwk53sb74i7r53x1v09llq";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -2055,128 +2051,128 @@ let
     name = "xpr-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xpr-1.0.3.tar.bz2;
+      url = mirror://xorg/X11R7.6/src/everything/xpr-1.0.3.tar.bz2;
       sha256 = "0zckkd45lzbikmdn29r12faby8g5prjkacc1z8aw87pq9sqdcy18";
     };
     buildInputs = [pkgconfig libX11 libXmu ];
   })) // {inherit libX11 libXmu ;};
     
   xprop = (stdenv.mkDerivation ((if overrides ? xprop then overrides.xprop else x: x) {
-    name = "xprop-1.1.0";
+    name = "xprop-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xprop-1.1.0.tar.bz2;
-      sha256 = "09k2qvfg5fvya8a26082ks3laif5fa9a3zdg7c8mz2bl2n80g3nc";
+      url = mirror://xorg/X11R7.6/src/everything/xprop-1.2.0.tar.bz2;
+      sha256 = "173bpq7x2amr77xy28f9m4nfdwr340wj3jw9hkbbznq35c48ql2k";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
     
   xproto = (stdenv.mkDerivation ((if overrides ? xproto then overrides.xproto else x: x) {
-    name = "xproto-7.0.17";
+    name = "xproto-7.0.20";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/proto/xproto-7.0.17.tar.bz2;
-      sha256 = "00cxgwaijhz7vp60washz03nvwk42f7sz72xkzfcx01pbgf1yb4v";
+      url = mirror://xorg/X11R7.6/src/everything/xproto-7.0.20.tar.bz2;
+      sha256 = "0alyxrd8wmdvdqm1v3q4x5brv4prj0gxf59pp9h5wycvgpj7zs1z";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xrandr = (stdenv.mkDerivation ((if overrides ? xrandr then overrides.xrandr else x: x) {
-    name = "xrandr-1.3.3";
+    name = "xrandr-1.3.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xrandr-1.3.3.tar.bz2;
-      sha256 = "0iiywk10vi56k7bpdlhn4wv0friz8vzz6dbfhy1xrnrvsgkg73wn";
+      url = mirror://xorg/X11R7.6/src/everything/xrandr-1.3.4.tar.bz2;
+      sha256 = "1nsadgvn57b9way7v0s4yk2729rwqj1m5fbilmd38lfcws928jjy";
     };
     buildInputs = [pkgconfig libX11 libXrandr libXrender ];
   })) // {inherit libX11 libXrandr libXrender ;};
     
   xrdb = (stdenv.mkDerivation ((if overrides ? xrdb then overrides.xrdb else x: x) {
-    name = "xrdb-1.0.6";
+    name = "xrdb-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xrdb-1.0.6.tar.bz2;
-      sha256 = "16gwcvpp93mn65dqg5ijc5yns7mglsnabx2dn4icypv6chvjl1ld";
+      url = mirror://xorg/individual/app/xrdb-1.0.8.tar.bz2;
+      sha256 = "1r2k50qnflj40iandhxhvnrvnhy4qliz5kymlh682455gjmlgn7z";
     };
     buildInputs = [pkgconfig libX11 libXmu ];
   })) // {inherit libX11 libXmu ;};
     
   xrefresh = (stdenv.mkDerivation ((if overrides ? xrefresh then overrides.xrefresh else x: x) {
-    name = "xrefresh-1.0.3";
+    name = "xrefresh-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xrefresh-1.0.3.tar.bz2;
-      sha256 = "1nbyglx05jjz1yjj50x5w449z9f90rw8xzzwrbxvyjximvvsbq1y";
+      url = mirror://xorg/X11R7.6/src/everything/xrefresh-1.0.4.tar.bz2;
+      sha256 = "0ywxzwa4kmnnmf8idr8ssgcil9xvbhnk155zpsh2i8ay93mh5586";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
     
   xset = (stdenv.mkDerivation ((if overrides ? xset then overrides.xset else x: x) {
-    name = "xset-1.1.0";
+    name = "xset-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xset-1.1.0.tar.bz2;
-      sha256 = "0hs6amxfjbqp2y6bxxihmfnhxral6isb5l18z1fa54080g35kj3j";
+      url = mirror://xorg/X11R7.6/src/everything/xset-1.2.1.tar.bz2;
+      sha256 = "18cja8b9xrilpshz0z8bkmpjm6pjb20w71xf41jgm70h4dymz6gc";
     };
-    buildInputs = [pkgconfig libX11 libXext libXmu libXp libXxf86misc ];
-  })) // {inherit libX11 libXext libXmu libXp libXxf86misc ;};
+    buildInputs = [pkgconfig libX11 libXext libXmu libXxf86misc ];
+  })) // {inherit libX11 libXext libXmu libXxf86misc ;};
     
   xsetroot = (stdenv.mkDerivation ((if overrides ? xsetroot then overrides.xsetroot else x: x) {
-    name = "xsetroot-1.0.3";
+    name = "xsetroot-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xsetroot-1.0.3.tar.bz2;
-      sha256 = "0j4gfa6f177hy230fb0gnnj6ibkwbmh9x7rwrmgspqvdd3615rfp";
+      url = mirror://xorg/X11R7.6/src/everything/xsetroot-1.1.0.tar.bz2;
+      sha256 = "1bazzsf9sy0q2bj4lxvh1kvyrhmpggzb7jg575i15sksksa3xwc8";
     };
-    buildInputs = [pkgconfig libX11 xbitmaps libXmu ];
-  })) // {inherit libX11 xbitmaps libXmu ;};
+    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.5";
+    name = "xtrans-1.2.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xtrans-1.2.5.tar.bz2;
-      sha256 = "1688p5v9jalykyj97jv34a6mxfipa7givb7fvbjpd0fsyj8s6wfc";
+      url = mirror://xorg/X11R7.6/src/everything/xtrans-1.2.6.tar.bz2;
+      sha256 = "1im5kj6y8j8m9i5lf1c33dkag6sb7g1zmi0niydqrfyx0lvsgyf5";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
     
   xvinfo = (stdenv.mkDerivation ((if overrides ? xvinfo then overrides.xvinfo else x: x) {
-    name = "xvinfo-1.1.0";
+    name = "xvinfo-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xvinfo-1.1.0.tar.bz2;
-      sha256 = "1yvfx1lli1k90h8ww0krgd9y3cr0c47nklmr5b6daayrl1n8yc8a";
+      url = mirror://xorg/X11R7.6/src/everything/xvinfo-1.1.1.tar.bz2;
+      sha256 = "119rd93d7661ll1rfcdssn78l0b97326smziyr2f5wdwj2hlmiv0";
     };
     buildInputs = [pkgconfig libX11 libXv ];
   })) // {inherit libX11 libXv ;};
     
   xwd = (stdenv.mkDerivation ((if overrides ? xwd then overrides.xwd else x: x) {
-    name = "xwd-1.0.3";
+    name = "xwd-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xwd-1.0.3.tar.bz2;
-      sha256 = "1zg3grx6sjm2w1aqyn80k7qvf9p00pp0k4ihsiil8mbc13mdpwpz";
+      url = mirror://xorg/X11R7.6/src/everything/xwd-1.0.4.tar.bz2;
+      sha256 = "07mh72j794hwq5rnqkmdd4wj27mqmdc3da4jkwpva2hsj64wi9mp";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
     
   xwininfo = (stdenv.mkDerivation ((if overrides ? xwininfo then overrides.xwininfo else x: x) {
-    name = "xwininfo-1.0.5";
+    name = "xwininfo-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xwininfo-1.0.5.tar.bz2;
-      sha256 = "1nfw5jj67g0vnmq5l7622agb3c27jzgl2vbcrsnfgi0bgcdbidld";
+      url = mirror://xorg/X11R7.6/src/everything/xwininfo-1.1.1.tar.bz2;
+      sha256 = "0g9ll8hv0k5cjz4l5kdv64xzmalf9mpwjzcy8nx6myvh92z5fnk4";
     };
-    buildInputs = [pkgconfig libX11 libXext ];
-  })) // {inherit libX11 libXext ;};
+    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.2";
+    name = "xwud-1.0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.5/src/everything/xwud-1.0.2.tar.bz2;
-      sha256 = "1h8ap7c29yib6fza2qgbf6pl11km0wjdmairjrl13i0dzzxmsd44";
+      url = mirror://xorg/X11R7.6/src/everything/xwud-1.0.3.tar.bz2;
+      sha256 = "0hrc6gbipg7cximgkaxixlha9m2fph31dpzhzdfw7g63bkhfmzc8";
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
diff --git a/pkgs/servers/x11/xorg/extra.list b/pkgs/servers/x11/xorg/extra.list
index 405e041545de..6dd80a89978d 100644
--- a/pkgs/servers/x11/xorg/extra.list
+++ b/pkgs/servers/x11/xorg/extra.list
@@ -1,5 +1,2 @@
-http://xcb.freedesktop.org/dist/xcb-proto-1.6.tar.bz2
-http://xcb.freedesktop.org/dist/xcb-util-0.3.6.tar.bz2
-http://xcb.freedesktop.org/dist/libxcb-1.6.tar.bz2
-http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2
-mirror://xorg/individual/lib/pixman-0.18.2.tar.bz2
+mirror://xorg/individual/xcb/xcb-util-0.3.6.tar.bz2
+mirror://xorg/individual/lib/pixman-0.20.2.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 2e4ff56294cf..444a0637906c 100755
--- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
+++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -25,8 +25,10 @@ my @missingPCs = ("fontconfig", "libdrm", "libXaw", "zlib", "perl", "python", "m
 $pcMap{$_} = $_ foreach @missingPCs;
 $pcMap{"freetype2"} = "freetype";
 $pcMap{"libpng12"} = "libpng";
+$pcMap{"libpng"} = "libpng";
 $pcMap{"dbus-1"} = "dbus";
 $pcMap{"uuid"} = "libuuid";
+$pcMap{"libudev"} = "udev";
 $pcMap{"gl"} = "mesa";
 $pcMap{"\$PIXMAN"} = "pixman";
 $pcMap{"\$RENDERPROTO"} = "renderproto";
diff --git a/pkgs/servers/x11/xorg/old.list b/pkgs/servers/x11/xorg/old.list
index b54159cf2204..5eacf46d1c36 100644
--- a/pkgs/servers/x11/xorg/old.list
+++ b/pkgs/servers/x11/xorg/old.list
@@ -1,15 +1,15 @@
-mirror://xorg/individual/app/twm-1.0.4.tar.bz2
-mirror://xorg/individual/app/xclock-1.0.4.tar.bz2
+mirror://xorg/individual/app/twm-1.0.6.tar.bz2
+mirror://xorg/individual/app/xclock-1.0.5.tar.bz2
 mirror://xorg/individual/app/xdm-1.1.10.tar.bz2
-mirror://xorg/individual/app/xeyes-1.1.0.tar.bz2
-mirror://xorg/individual/app/xfs-1.1.0.tar.bz2
-mirror://xorg/individual/app/xinit-1.2.1.tar.bz2
+mirror://xorg/individual/app/xeyes-1.1.1.tar.bz2
+mirror://xorg/individual/app/xfs-1.1.1.tar.bz2
+mirror://xorg/individual/app/xinit-1.3.0.tar.bz2
 mirror://xorg/individual/app/xmessage-1.0.3.tar.bz2
-mirror://xorg/individual/lib/libXp-1.0.0.tar.bz2
-mirror://xorg/individual/lib/libXxf86misc-1.0.2.tar.bz2
-mirror://xorg/individual/proto/printproto-1.0.4.tar.bz2
+mirror://xorg/individual/lib/libXp-1.0.1.tar.bz2
+mirror://xorg/individual/lib/libXxf86misc-1.0.3.tar.bz2
+mirror://xorg/individual/proto/printproto-1.0.5.tar.bz2
 mirror://xorg/individual/proto/xf86miscproto-0.9.3.tar.bz2
 mirror://xorg/individual/util/gccmakedep-1.0.2.tar.bz2
-mirror://xorg/individual/util/imake-1.0.3.tar.bz2
-mirror://xorg/individual/util/lndir-1.0.1.tar.bz2
-mirror://xorg/individual/util/xorg-cf-files-1.0.3.tar.bz2
+mirror://xorg/individual/util/imake-1.0.4.tar.bz2
+mirror://xorg/individual/util/lndir-1.0.2.tar.bz2
+mirror://xorg/individual/util/xorg-cf-files-1.0.4.tar.bz2
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 87d4924a363c..c896062bcd77 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -49,6 +49,11 @@ in
 
   libX11 = attrs: attrs // {
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    postInstall =
+      ''
+        # Remove useless DocBook XML files.
+        rm -rf $out/share/doc
+      '';
   };
 
   libXrender = attrs: attrs // {
@@ -63,13 +68,32 @@ in
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
+  # Propagate some build inputs because of header file dependencies.
+  # Note: most of these are in Requires.private, so maybe builder.sh
+  # should propagate them automatically.
   libXt = attrs: attrs // {
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    propagatedBuildInputs = [ xorg.libSM ];
   };
 
+  compositeproto = attrs: attrs // {
+    propagatedBuildInputs = [ xorg.fixesproto ];
+  };
+  
+  libXcomposite = attrs: attrs // {
+    propagatedBuildInputs = [ xorg.libXfixes ];
+  };
+  
+  libXaw = attrs: attrs // {
+    propagatedBuildInputs = [ xorg.libXmu ];
+  };
+  
   libXft = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [ xorg.xproto xorg.libX11
-        xorg.renderproto ];
+    buildInputs = attrs.buildInputs ++
+      [ xorg.xproto xorg.libX11 xorg.renderproto ];
+    # probably, fontconfig and freetype could be added
+    # pkgconfig seems to be nice, too...
+    propagatedBuildInputs = [ xorg.libXrender ];
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
@@ -91,13 +115,13 @@ in
   };
 
   xf86inputevdev = attrs: attrs // {
-    configureFlags = "--with-sdkdir=\${out}/include/xorg";
     preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
     buildInputs = attrs.buildInputs ++ [xorg.kbproto xorg.libxkbfile xorg.randrproto];
+    installFlags = "sdkdir=\${out}/include/xorg";
   };
 
   xf86inputsynaptics = attrs: attrs // {
-    makeFlags = "sdkdir=\${out}/include/xorg";
+    installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/include/xorg";
   };
 
   xf86videointel = attrs: attrs // {
@@ -128,6 +152,10 @@ in
     buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
   };
 
+  xvinfo = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [xorg.libXext];
+  };
+
   xkbcomp = attrs: attrs // {
     NIX_CFLAGS_COMPILE = "-DDFLT_XKB_CONFIG_ROOT=\".\"";
   };
@@ -135,15 +163,17 @@ in
   xorgserver = attrs: attrs // {
     patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch];
     buildInputs = attrs.buildInputs ++
-      [ args.zlib args.udev args.mesa
+      [ args.zlib args.udev args.mesa args.dbus.libs
         xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
         xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
-        xorg.xineramaproto xorg.dri2proto xorg.xf86dgaproto
+        xorg.xineramaproto xorg.xf86dgaproto
         xorg.dmxproto xorg.libdmx xorg.xf86vidmodeproto
-        xorg.recordproto xorg.libXext
+        xorg.recordproto xorg.libXext xorg.pixman xorg.libXfont
       ];
     propagatedBuildInputs =
-      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto ];
+      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto
+        xorg.dri2proto xorg.kbproto
+      ];
     postInstall =
       ''
         rm -fr $out/share/X11/xkb/compiled
@@ -162,4 +192,12 @@ in
     '';
   };
 
+  twm = attrs: attrs // {
+    buildNativeInputs = [args.bison args.flex];
+  };
+
+  xbacklight = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [xorg.libXrender];
+  };
+
 }
diff --git a/pkgs/servers/x11/xorg/tarballs-7.5.list b/pkgs/servers/x11/xorg/tarballs-7.5.list
deleted file mode 100644
index 7c0748893ee4..000000000000
--- a/pkgs/servers/x11/xorg/tarballs-7.5.list
+++ /dev/null
@@ -1,197 +0,0 @@
-mirror://xorg/X11R7.5/src/everything/applewmproto-1.4.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/bdftopcf-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/bigreqsproto-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/compositeproto-0.4.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/damageproto-1.2.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/dmxproto-2.3.tar.bz2
-mirror://xorg/individual/proto/dri2proto-2.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/encodings-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/fixesproto-4.1.1.tar.bz2
-mirror://xorg/individual/font/font-adobe-100dpi-1.0.2.tar.bz2
-mirror://xorg/individual/font/font-adobe-75dpi-1.0.2.tar.bz2
-mirror://xorg/individual/font/font-adobe-utopia-100dpi-1.0.3.tar.bz2
-mirror://xorg/individual/font/font-adobe-utopia-75dpi-1.0.3.tar.bz2
-mirror://xorg/individual/font/font-adobe-utopia-type1-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-alias-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-arabic-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bh-100dpi-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bh-75dpi-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bh-lucidatypewriter-100dpi-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bh-lucidatypewriter-75dpi-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bh-ttf-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bh-type1-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bitstream-100dpi-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bitstream-75dpi-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-bitstream-type1-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-cronyx-cyrillic-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-cursor-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-daewoo-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-dec-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-ibm-type1-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-isas-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-jis-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-micro-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-misc-cyrillic-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-misc-ethiopic-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-misc-meltho-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-misc-misc-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-mutt-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-schumacher-misc-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-screen-cyrillic-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-sony-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/fontsproto-2.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-sun-misc-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-util-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-winitzki-cyrillic-1.0.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/font-xfree86-type1-1.0.2.tar.bz2
-mirror://xorg/individual/proto/glproto-1.4.11.tar.bz2
-mirror://xorg/X11R7.5/src/everything/iceauth-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/inputproto-2.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/kbproto-1.0.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libAppleWM-1.4.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libdmx-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libfontenc-1.0.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libFS-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libICE-1.0.6.tar.bz2
-mirror://xorg/individual/lib/libpciaccess-0.12.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libSM-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libWindowsWM-1.0.1.tar.bz2
-mirror://xorg/individual/lib/libX11-1.3.4.tar.bz2
-mirror://xorg/individual/lib/libXau-1.0.6.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXaw-1.0.7.tar.bz2
-mirror://xorg/individual/lib/libXcomposite-0.4.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXcursor-1.1.10.tar.bz2
-mirror://xorg/individual/lib/libXdamage-1.1.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXdmcp-1.0.3.tar.bz2
-mirror://xorg/individual/lib/libXext-1.1.2.tar.bz2
-mirror://xorg/individual/lib/libXfixes-4.0.5.tar.bz2
-mirror://xorg/individual/lib/libXfont-1.4.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXft-2.1.14.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXi-1.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXinerama-1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libxkbfile-1.0.6.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXmu-1.0.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXpm-3.5.8.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXrandr-1.3.0.tar.bz2
-mirror://xorg/individual/lib/libXrender-0.9.6.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXres-1.0.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXScrnSaver-1.2.0.tar.bz2
-mirror://xorg/individual/lib/libXt-1.0.8.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXtst-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXv-1.0.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXvMC-1.0.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXxf86dga-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/libXxf86vm-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/luit-1.0.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/makedepend-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/mkfontdir-1.0.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/mkfontscale-1.0.7.tar.bz2
-mirror://xorg/X11R7.5/src/everything/randrproto-1.3.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/recordproto-1.14.tar.bz2
-mirror://xorg/X11R7.5/src/everything/renderproto-0.11.tar.bz2
-mirror://xorg/X11R7.5/src/everything/resourceproto-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/scrnsaverproto-1.2.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/sessreg-1.0.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/setxkbmap-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/smproxy-1.0.3.tar.bz2
-mirror://xorg/individual/util/util-macros-1.10.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/videoproto-2.3.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/windowswmproto-1.0.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/x11perf-1.5.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xauth-1.0.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xbacklight-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xbitmaps-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xcmiscproto-1.2.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xcmsdb-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xcursorgen-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xcursor-themes-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xdpyinfo-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xdriinfo-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xev-1.0.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xextproto-7.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86bigfontproto-1.2.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86dgaproto-2.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86driproto-2.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-input-acecad-1.4.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-input-aiptek-1.3.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-evdev-2.5.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-input-joystick-1.4.99.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-input-keyboard-1.4.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-input-mouse-1.5.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-synaptics-1.3.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-vmmouse-12.6.10.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-input-vmmouse-12.6.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-input-void-1.3.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-apm-1.2.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-ark-0.7.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-ast-0.89.9.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-ati-6.12.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-chips-1.2.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-cirrus-1.3.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-dummy-0.3.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-fbdev-0.4.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-geode-2.11.6.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-glide-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-glint-1.2.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-i128-1.3.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-i740-1.3.2.tar.bz2
-mirror://xorg/individual/driver/xf86-video-intel-2.13.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-mach64-6.8.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-mga-1.4.11.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-neomagic-1.2.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-newport-0.2.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-nv-2.1.15.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-openchrome-0.2.904.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-r128-6.8.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-rendition-4.2.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-s3-0.6.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-s3virge-1.10.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-savage-2.3.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-siliconmotion-1.7.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-sis-0.10.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-sisusb-0.9.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-suncg14-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-suncg3-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-suncg6-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-sunffb-1.2.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-sunleo-1.2.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-suntcx-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-tdfx-1.4.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-tga-1.2.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-trident-1.3.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-tseng-1.2.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-v4l-0.2.0.tar.bz2
-mirror://xorg/individual/driver/xf86-video-vesa-2.3.0.tar.bz2
-mirror://xorg/individual/driver/xf86-video-vmware-11.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-voodoo-1.2.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-wsfb-0.3.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-xgi-1.5.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86-video-xgixp-1.7.99.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xf86vidmodeproto-2.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xgamma-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xhost-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xineramaproto-1.2.tar.bz2
-mirror://xorg/individual/app/xinput-1.5.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xkbcomp-1.1.1.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xkbevd-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xkbutils-1.0.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xkill-1.0.2.tar.bz2
-mirror://xorg/individual/app/xlsatoms-1.1.0.tar.bz2
-mirror://xorg/individual/app/xlsclients-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xmodmap-1.0.4.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xorg-docs-1.5.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.8.2.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xorg-sgml-doctools-1.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xpr-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xprop-1.1.0.tar.bz2
-mirror://xorg/individual/proto/xproto-7.0.17.tar.bz2
-mirror://xorg/individual/app/xrandr-1.3.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xrdb-1.0.6.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xrefresh-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xset-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xsetroot-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xtrans-1.2.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xvinfo-1.1.0.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xwd-1.0.3.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xwininfo-1.0.5.tar.bz2
-mirror://xorg/X11R7.5/src/everything/xwud-1.0.2.tar.bz2
diff --git a/pkgs/servers/x11/xorg/tarballs-7.6.list b/pkgs/servers/x11/xorg/tarballs-7.6.list
new file mode 100644
index 000000000000..c8039d24671c
--- /dev/null
+++ b/pkgs/servers/x11/xorg/tarballs-7.6.list
@@ -0,0 +1,199 @@
+mirror://xorg/X11R7.6/src/everything/applewmproto-1.4.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/bdftopcf-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/bigreqsproto-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/compositeproto-0.4.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/damageproto-1.2.1.tar.bz2
+mirror://xorg/individual/proto/dmxproto-2.3.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/dri2proto-2.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/encodings-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/fixesproto-4.1.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-adobe-100dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-adobe-75dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-adobe-utopia-100dpi-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-adobe-utopia-75dpi-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-adobe-utopia-type1-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-alias-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-arabic-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bh-100dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bh-75dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bh-ttf-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bh-type1-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bitstream-100dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bitstream-75dpi-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-bitstream-type1-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-cronyx-cyrillic-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-cursor-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-daewoo-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-dec-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-ibm-type1-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-isas-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-jis-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-micro-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-misc-cyrillic-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-misc-ethiopic-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-misc-meltho-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-misc-misc-1.1.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-mutt-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-schumacher-misc-1.1.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-screen-cyrillic-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-sony-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/fontsproto-2.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-sun-misc-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-util-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-winitzki-cyrillic-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/font-xfree86-type1-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/glproto-1.4.12.tar.bz2
+mirror://xorg/X11R7.6/src/everything/iceauth-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/inputproto-2.0.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/kbproto-1.0.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libAppleWM-1.4.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libdmx-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libfontenc-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libFS-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libICE-1.0.7.tar.bz2
+mirror://xorg/individual/lib/libpciaccess-0.12.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libpthread-stubs-0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libSM-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libWindowsWM-1.0.1.tar.bz2
+mirror://xorg/individual/lib/libX11-1.4.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXau-1.0.6.tar.bz2
+mirror://xorg/individual/lib/libXaw-1.0.9.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libxcb-1.7.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXcomposite-0.4.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXcursor-1.1.11.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXdamage-1.1.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXdmcp-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXext-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXfixes-4.0.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXfont-1.4.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXft-2.2.0.tar.bz2
+mirror://xorg/individual/lib/libXi-1.4.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXinerama-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libxkbfile-1.0.7.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXmu-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXpm-3.5.9.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXrandr-1.3.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXrender-0.9.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXres-1.0.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXScrnSaver-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXt-1.0.9.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXtst-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXv-1.0.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXvMC-1.0.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXxf86dga-1.1.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/libXxf86vm-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/luit-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/makedepend-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/mkfontdir-1.0.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/mkfontscale-1.0.8.tar.bz2
+mirror://xorg/X11R7.6/src/everything/randrproto-1.3.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/recordproto-1.14.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/renderproto-0.11.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/resourceproto-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/scrnsaverproto-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/sessreg-1.0.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/setxkbmap-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/smproxy-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/util-macros-1.11.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/videoproto-2.3.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/windowswmproto-1.0.4.tar.bz2
+mirror://xorg/individual/app/x11perf-1.5.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xauth-1.0.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xbacklight-1.1.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xbitmaps-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xcb-proto-1.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xcmiscproto-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xcmsdb-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xcursorgen-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xcursor-themes-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xdpyinfo-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xdriinfo-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xev-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xextproto-7.1.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86bigfontproto-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86dgaproto-2.1.tar.bz2
+mirror://xorg/individual/proto/xf86driproto-2.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-acecad-1.4.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-aiptek-1.3.1.tar.bz2
+mirror://xorg/individual/driver/xf86-input-evdev-2.6.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-joystick-1.5.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-keyboard-1.5.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-mouse-1.6.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-synaptics-1.3.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-vmmouse-12.6.10.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-input-void-1.3.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-apm-1.2.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-ark-0.7.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-ast-0.91.10.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ati-6.14.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-chips-1.2.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-cirrus-1.3.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-dummy-0.3.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-fbdev-0.4.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-geode-2.11.10.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-glide-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-glint-1.2.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-i128-1.3.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-i740-1.3.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-intel-2.14.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-mach64-6.8.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-mga-1.4.13.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-neomagic-1.2.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-newport-0.2.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-nv-2.1.18.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-openchrome-0.2.904.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-r128-6.8.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-rendition-4.2.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-s3-0.6.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-s3virge-1.10.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-savage-2.3.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-siliconmotion-1.7.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-sis-0.10.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-sisusb-0.9.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-suncg14-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-suncg3-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-suncg6-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-sunffb-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-sunleo-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-suntcx-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-tdfx-1.4.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-tga-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-trident-1.3.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-tseng-1.2.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-v4l-0.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-vesa-2.3.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-vmware-11.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-voodoo-1.2.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-wsfb-0.3.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-xgi-1.6.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xf86-video-xgixp-1.8.0.tar.bz2
+mirror://xorg/individual/proto/xf86vidmodeproto-2.3.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xgamma-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xhost-1.0.4.tar.bz2
+mirror://xorg/individual/proto/xineramaproto-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xinput-1.5.3.tar.bz2
+mirror://xorg/individual/app/xkbcomp-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xkbevd-1.1.2.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xkbutils-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xkill-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xlsatoms-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xlsclients-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xmodmap-1.0.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xorg-docs-1.6.tar.bz2
+mirror://xorg/individual/xserver/xorg-server-1.9.5.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xorg-sgml-doctools-1.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xpr-1.0.3.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xprop-1.2.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xproto-7.0.20.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xrandr-1.3.4.tar.bz2
+mirror://xorg/individual/app/xrdb-1.0.8.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xrefresh-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xset-1.2.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xsetroot-1.1.0.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xtrans-1.2.6.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xvinfo-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xwd-1.0.4.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xwininfo-1.1.1.tar.bz2
+mirror://xorg/X11R7.6/src/everything/xwud-1.0.3.tar.bz2
diff --git a/pkgs/shells/bash-completion/default.nix b/pkgs/shells/bash-completion/default.nix
new file mode 100644
index 000000000000..0cda358b8efb
--- /dev/null
+++ b/pkgs/shells/bash-completion/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+let
+  version = "1.3";
+in
+stdenv.mkDerivation {
+  name = "bash-completion-${version}";
+
+  src = fetchurl {
+    url = "http://bash-completion.alioth.debian.org/files/bash-completion-${version}.tar.bz2";
+    sha256 = "8ebe30579f0f3e1a521013bcdd183193605dab353d7a244ff2582fb3a36f7bec";
+  };
+
+  postInstall = ''
+    rm $out/etc/profile.d/bash_completion.sh
+    rmdir $out/etc/profile.d
+  '';
+
+  meta = {
+    homepage = "http://bash-completion.alioth.debian.org/";
+    description = "Programmable completion for the bash shell";
+    license = "GPL";
+
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/shells/ipython/default.nix b/pkgs/shells/ipython/default.nix
index 68064dded3d9..2c029b764b04 100644
--- a/pkgs/shells/ipython/default.nix
+++ b/pkgs/shells/ipython/default.nix
@@ -1,13 +1,16 @@
-{ stdenv, fetchurl, buildPythonPackage }:
+{ stdenv, fetchurl, buildPythonPackage, pythonPackages }:
 
 buildPythonPackage {
   name = "ipython-0.10.1";
+  namePrefix = "";
 
   src = fetchurl {
     url = "http://ipython.scipy.org/dist/0.10.1/ipython-0.10.1.tar.gz";
     sha256 = "18zwrg25zn72w4rmcwxzcw11ibgp001fawm2sz189zv86z70fxi2";
   };
 
+  propagatedBuildInputs = [ pythonPackages.readline ];
+
   doCheck = false;
 
   meta = {
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 5e135524af9b..3e596c4ef0ea 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -101,7 +101,7 @@ rec {
         NIX_CFLAGS_LINK = "-static";
 
         configureFlags =
-          (if args ? configureFlags then args.configureFlags else "")
+          (if args ? configureFlags then toString args.configureFlags else "")
           + " --disable-shared"; # brrr...
       });
       isStatic = true;
@@ -197,7 +197,7 @@ rec {
     { mkDerivation = args: stdenv.mkDerivation (args // extraAttrs); };
 
 
-  /* Return a modified stdenv that perfoms the build under $out/.build
+  /* Return a modified stdenv that performs the build under $out/.build
      instead of in $TMPDIR.  Thus, the sources are kept available.
      This is useful for things like debugging or generation of
      dynamic analysis reports. */ 
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 2203601f836e..ce10399eb5d5 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -212,17 +212,17 @@ rec {
   };
 
   gccWithStaticLibs = stdenvLinuxBoot3Pkgs.gcc.gcc.override (rec {
-        ppl = stdenvLinuxBoot3Pkgs.ppl.override {
-          static = true;
-          gmpxx = stdenvLinuxBoot3Pkgs.gmpxx.override {
-            static = true;
-          };
-        };
-        cloogppl = stdenvLinuxBoot3Pkgs.cloogppl.override {
-          inherit ppl;
-          static = true;
-        };
-      });
+    ppl = stdenvLinuxBoot3Pkgs.ppl.override {
+      static = true;
+      gmpxx = stdenvLinuxBoot3Pkgs.gmpxx.override {
+        static = true;
+      };
+    };
+    cloogppl = stdenvLinuxBoot3Pkgs.cloogppl.override {
+      inherit ppl;
+      static = true;
+    };
+  });
 
   # 8) Construct a fourth stdenv identical to the second, except that
   #    this one uses the dynamically linked GCC and Binutils from step
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index b89523cbc853..ba2a953a457f 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -77,6 +77,7 @@ rec {
       CLEAR
       CONFIG_STATIC y
       CONFIG_CPIO y
+      # (shlevy) Are these necessary?
       CONFIG_FEATURE_CPIO_O y
       CONFIG_FEATURE_CPIO_P y
     '';
@@ -218,7 +219,7 @@ rec {
 
       buildCommand = ''
         ${build}/in-nixpkgs/mkdir $out
-        ${build}/in-nixpkgs/bzip2 -d < ${build}/on-server/bootstrap-tools.cpio.bz2 | (cd $out && ${build}/in-nixpkgs/cpio -V -i)
+        ${build}/in-nixpkgs/bzip2 -d < ${build}/on-server/bootstrap-tools.cpio.bz2 | (cd $out && ${build}/in-nixpkgs/cpio -v -i)
 
         for i in $out/bin/* $out/libexec/gcc/*/*/*; do
             echo patching $i
diff --git a/pkgs/tools/X11/x11vnc/default.nix b/pkgs/tools/X11/x11vnc/default.nix
index f51d3c2f290a..ceb3798f6de1 100644
--- a/pkgs/tools/X11/x11vnc/default.nix
+++ b/pkgs/tools/X11/x11vnc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, zlib, libjpeg, xorg }:
 
 stdenv.mkDerivation rec {
-  name = "x11vnc-0.9.10";
+  name = "x11vnc-0.9.12";
 
   src = fetchurl {
     url = "mirror://sourceforge/libvncserver/${name}.tar.gz";
-    sha256 = "04g0da04g4iw0qwvn43a8vh2im4wx9rwl1w41acsbdi8b0amhlck";
+    sha256 = "60a7cceee2c9a5f1c854340b2bae13f975ac55906237042f81f795b28a154a79";
   };
 
   buildInputs =
diff --git a/pkgs/tools/X11/xbindkeys/default.nix b/pkgs/tools/X11/xbindkeys/default.nix
new file mode 100644
index 000000000000..dc79bd9e2d13
--- /dev/null
+++ b/pkgs/tools/X11/xbindkeys/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libX11, guile }:
+
+let version = "1.8.5"; in
+stdenv.mkDerivation {
+  name = "xbindkeys-${version}";
+  src = fetchurl {
+    url = "http://www.nongnu.org/xbindkeys/xbindkeys-${version}.tar.gz";
+    sha256 = "10gwyvj69yyqgk1xxbrl37gx3c3jfpgr92mz62b1x5q6jiq7hbyn";
+  };
+
+  buildInputs = [ libX11 guile ];
+
+  meta = {
+    homepage = http://www.nongnu.org/xbindkeys/xbindkeys.html;
+    description = "Launch shell commands with your keyboard or your mouse under X Window";
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/tools/X11/xdotool/default.nix b/pkgs/tools/X11/xdotool/default.nix
new file mode 100644
index 000000000000..c0acb2f70c84
--- /dev/null
+++ b/pkgs/tools/X11/xdotool/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, libX11, perl, libXtst, xextproto, libXi }:
+
+let version = "2.20101012.3049"; in
+stdenv.mkDerivation {
+  name = "xdotool-${version}";
+  src = fetchurl {
+    url = "http://semicomplete.googlecode.com/files/xdotool-${version}.tar.gz";
+    sha256 = "0amkb1zvdk0gj7va3rjw9arbyj8pgprkdik05yl6rghq21q076ls";
+  };
+
+  buildInputs = [ libX11 perl libXtst xextproto libXi ];
+
+  configurePhase = ''
+    export makeFlags="PREFIX=$out";
+  '';
+
+  meta = {
+    homepage = http://www.semicomplete.com/projects/xdotool/;
+    description = "Fake keyboard/mouse input, window management, and more";
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/tools/X11/xmacro/default.nix b/pkgs/tools/X11/xmacro/default.nix
index 1b18138f28b3..12bb2903107c 100644
--- a/pkgs/tools/X11/xmacro/default.nix
+++ b/pkgs/tools/X11/xmacro/default.nix
@@ -8,7 +8,12 @@ stdenv.mkDerivation {
     md5 = "d2956b82f3d5380e58a75ccc721fb746";
   };
 
-  preBuild = " sed -e 's/-pedantic//g' -i Makefile ";
+  preBuild = ''
+    sed -e 's/-pedantic//g' -i Makefile
+    sed -e 's/iostream[.]h/iostream/' -i *.cpp
+    sed -e 's/iomanip[.]h/iomanip/' -i *.cpp
+    sed -e '1iusing namespace std;' -i *.cpp
+  '';
 
   preInstall = "echo -e 'install:\n	mkdir \${out}/bin;\n	cp xmacrorec xmacrorec2 xmacroplay \${out}/bin;' >>Makefile; ";
 
diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix
index a35812f22a53..4ea21acac4c9 100644
--- a/pkgs/tools/X11/xnee/default.nix
+++ b/pkgs/tools/X11/xnee/default.nix
@@ -1,31 +1,54 @@
-args :  
-let 
-  fetchurl = args.fetchurl;
-  lib=args.lib;
-
-  version = lib.attrByPath ["version"] "3.01" args; 
-  buildInputs = with args; [
-    libX11 xproto libXext xextproto libXtst gtk
-    libXi inputproto pkgconfig recordproto 
-  ];
-in
-rec {
+{ fetchurl, stdenv, libX11, xproto, libXext, xextproto, libXtst
+, gtk, libXi, inputproto, pkgconfig, recordproto, texinfo }:
+
+stdenv.mkDerivation rec {
+  name = "xnee-3.10";
+
   src = fetchurl {
-    url = "mirror://gnu/xnee/Xnee-${version}.tar.gz";
-    sha256 = "1g6wq1hjrmx102gg768nfs8a1ck77g5fn4pmprpsz9123xl4d181";
+    url = "mirror://gnu/xnee/${name}.tar.gz";
+    sha256 = "0mkbp0gikm1mv9g2v0vs7krinkz392p1crvaira8ml9q94py0q32";
   };
 
-  inherit buildInputs;
-  configureFlags = [
-    "--disable-gnome-applet"
-  ];
+  patchPhase =
+    '' for i in `find cnee/test -name \*.sh`
+       do
+         sed -i "$i" -e's|/bin/bash|/bin/sh|g ; s|/usr/bin/env bash|/bin/sh|g'
+       done
+    '';
+
+  buildInputs =
+    [ libX11 xproto libXext xextproto libXtst gtk
+      libXi inputproto pkgconfig recordproto
+      texinfo
+    ];
+
+  configureFlags =
+    # Do a static build because `libxnee' doesn't get installed anyway.
+    [ "--disable-gnome-applet" "--enable-static" ];
+
+  # `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
+  # lacks libXi.
+  makeFlags = "LDFLAGS=-lXi";
+
+  # XXX: Actually tests require an X server.
+  doCheck = true;
 
-  /* doConfigure should be specified separately */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
-  name = "xnee-" + version;
   meta = {
-    description = "X event recording and replay tool.";
+    description = "GNU Xnee, an X11 event recording and replay tool";
+
+    longDescription =
+      '' Xnee is a suite of programs that can record, replay and distribute
+         user actions under the X11 environment.  Think of it as a robot that
+         can imitate the job you just did.  Xnee can be used to automate
+         tests, demonstrate programs, distribute actions, record & replay
+         "macros", retype a file.
+      '';
+
+    license = "GPLv3+";
+
+    homepage = http://www.gnu.org/software/xnee/;
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
-
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
new file mode 100644
index 000000000000..3b535dabbae1
--- /dev/null
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -0,0 +1,62 @@
+x@{builderDefsPackage
+  , python, gtk, pygtk, gnutls, cairo, libtool, glib, pkgconfig, libtasn1
+  , libffi, cyrus_sasl, intltool, perl, perlPackages, firefox36Pkgs
+  , kbproto, libX11, libXext, xextproto, pygobject
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["perlPackages" "firefox36Pkgs" "gtkLibs"];
+
+  buildInputs = (map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames)))
+    ++ [perlPackages.TextCSV firefox36Pkgs.xulrunner ];
+  sourceInfo = rec {
+    baseName="gtk-vnc";
+    majorVersion="0.4";
+    minorVersion="2";
+    version="${majorVersion}.${minorVersion}";
+    name="${baseName}-${version}";
+    url="mirror://gnome/sources/${baseName}/${majorVersion}/${name}.tar.gz";
+    hash="1fkhzwpw50rnwp51lsbny16p2ckzx5rkcaiaqvkd90vwnm2cccls";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  configureFlags = [
+    "--with-python"
+    "--with-examples"
+  ];
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["fixMakefiles" "doConfigure" "doMakeInstall"];
+
+  fixMakefiles = a.fullDepEntry ''
+    find . -name 'Makefile*' -exec sed -i '{}' -e 's@=codegendir pygtk-2.0@=codegendir pygobject-2.0@' ';'
+  '' ["minInit" "doUnpack"];
+      
+  meta = {
+    description = "A GTK VNC widget";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.lgpl21;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://ftp.gnome.org/pub/GNOME/sources/gtk-vnc";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index f76b86ffcb2b..dd76bdd26e8d 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -5,11 +5,11 @@ fontDirectories, fontutil }:
 with stdenv.lib;
 
 stdenv.mkDerivation {
-  name = "tigervnc-svn-4086";
+  name = "tigervnc-svn-4232";
   src = fetchsvn {
     url = https://tigervnc.svn.sourceforge.net/svnroot/tigervnc/trunk;
-    rev = 4086;
-    sha256 = "0aqn9d5yz21k5l4mwh5f73il77w2rbvsrz91z3lz4bizivvkwszc";
+    rev = 4232;
+    sha256 = "070lsddgx6qj7bpw4p65w54fr7z46vp8wyshv9p0fh3k5izrfnxj";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix
index 88f4592b34ca..15b8ead7d38b 100644
--- a/pkgs/tools/archivers/sharutils/default.nix
+++ b/pkgs/tools/archivers/sharutils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "sharutils-4.10";
+  name = "sharutils-4.11.1";
 
   src = fetchurl {
     url = "mirror://gnu/sharutils/${name}.tar.bz2";
-    sha256 = "0q9g8ywsd5vwzzzvrgq3hzfqsdln9rhsqq0dhiwv2sr974c4xz5h";
+    sha256 = "1mallg1gprimlggdisfzdmh1xi676jsfdlfyvanlcw72ny8fsj3g";
   };
 
   # GNU Gettext is needed on non-GNU platforms.
diff --git a/pkgs/tools/archivers/unshield/default.nix b/pkgs/tools/archivers/unshield/default.nix
index bc7906e2243f..251a62ee4894 100644
--- a/pkgs/tools/archivers/unshield/default.nix
+++ b/pkgs/tools/archivers/unshield/default.nix
@@ -1,10 +1,15 @@
-{stdenv, fetchurl, zlib}:
+{stdenv, fetchsvn, zlib, autoconf, automake, libtool}:
 
 stdenv.mkDerivation {
-  name = "unshield-0.6";
-  src = fetchurl {
-    url = mirror://sourceforge/synce/Unshield/0.6/unshield-0.6.tar.gz;
-    sha256 = "07q48zwvjz9f8barql4b894fzz897agscvj13i6gkpy862aya41b";
+  name = "unshield-0.7pre3955";
+  src = fetchsvn {
+    url = https://synce.svn.sourceforge.net/svnroot/synce/trunk/unshield;
+    rev = 3955;
+    sha256 = "0rpk7sb7b0v19qn4jn0iih505l4zkpns3mrbmm88p61xiz06zg7a";
   };
   configureFlags = "--with-zlib=${zlib}";
+  buildInputs = [autoconf automake libtool];
+  preConfigure = ''
+    ./bootstrap
+  '';
 }
diff --git a/pkgs/tools/archivers/zip/builder.sh b/pkgs/tools/archivers/zip/builder.sh
deleted file mode 100644
index da58762b4342..000000000000
--- a/pkgs/tools/archivers/zip/builder.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-source $stdenv/setup
-
-buildFlags="-f unix/Makefile generic"
-
-installFlags="-f unix/Makefile prefix=$out INSTALL=cp"
-
-genericBuild
diff --git a/pkgs/tools/archivers/zip/default.nix b/pkgs/tools/archivers/zip/default.nix
index 9498bf089ff2..884af0f0b035 100644
--- a/pkgs/tools/archivers/zip/default.nix
+++ b/pkgs/tools/archivers/zip/default.nix
@@ -1,12 +1,19 @@
-{stdenv, fetchurl}: stdenv.mkDerivation {
-  name = "zip-2.32";
-  builder = ./builder.sh;
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "zip-3.0";
+
   src = fetchurl {
-    url = ftp://ftp.info-zip.org/pub/infozip/src/zip232.tgz;
-    md5 = "8a4da4460386e324debe97f3b7fe4d96";
+    url = ftp://ftp.info-zip.org/pub/infozip/src/zip30.tgz;
+    sha256 = "0sb3h3067pzf3a7mlxn1hikpcjrsvycjcnj9hl9b1c3ykcgvps7h";
   };
 
+  buildFlags="-f unix/Makefile generic";
+
+  installFlags="-f unix/Makefile prefix=$(out) INSTALL=cp";
+
   meta = {
     homepage = http://www.info-zip.org;
   };
 }
+
diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix
new file mode 100644
index 000000000000..c6ad08768231
--- /dev/null
+++ b/pkgs/tools/backup/bacula/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, sqlite, zlib, acl, ncurses, openssl, readline}:
+
+stdenv.mkDerivation {
+  name = "bacula-5.0.3";
+
+  src = fetchurl {
+    url = mirror://sourceforge/bacula/bacula-5.0.3.tar.gz;
+    sha256 = "1d7x6jw5x9ljbdxvcc8k635lsxcbxw9kzjyxf6l4zsdv3275j1cr";
+  };
+
+  buildInputs = [ sqlite zlib acl ncurses openssl readline ];
+
+  configureFlags = [ "--with-sqlite3=${sqlite}" ];
+
+  meta = {
+    description = "Enterprise ready, Network Backup Tool";
+    homepage = http://bacula.org/;
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
new file mode 100644
index 000000000000..e08ea1e03f4b
--- /dev/null
+++ b/pkgs/tools/backup/bup/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, python, unzip, perl }:
+
+stdenv.mkDerivation {
+  name = "bup-0.24b";
+  src = fetchurl {
+    url = "https://github.com/apenwarr/bup/zipball/bup-0.24b";
+    sha256 = "0l50i8mrg43ahd8fn1n6pwa0xslxr07pvkh0r4qyywv55172ip8v";
+    name = "bup-0.24b.zip";
+  };
+  buildInputs = [ unzip python perl ];
+  patchPhase = ''
+    for f in cmd/* lib/tornado/* lib/tornado/test/* t/* wvtest.py main.py; do
+      substituteInPlace $f --replace "/usr/bin/env python" "${python}/bin/python"
+    done
+    substituteInPlace Makefile --replace "./format-subst.pl" "perl ./format-subst.pl"
+    substituteInPlace lib/bup/csetup.py --replace "'bupsplit.c'])" "'bupsplit.c'], library_dirs=['${python}/lib'])"
+  '';
+  makeFlags = "MANDIR=$(out)/man DOCDIR=$(out)/share/doc/bup BINDIR=$(out)/bin LIBDIR=$(out)/lib/bup";
+  meta = {
+    description = "Highly efficient file backup system based on the git packfile format. Capable of doing *fast* incremental backups of virtual machine images.";
+    homepage = "https://github.com/apenwarr/bup";
+  };
+}
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index d2c28fa638e5..98d4c1d8c30b 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python, librsync, gnupg, boto, makeWrapper }:
 
 stdenv.mkDerivation {
-  name = "duplicity-0.6.08b";
+  name = "duplicity-0.6.14";
 
   src = fetchurl {
-    url = http://code.launchpad.net/duplicity/0.6-series/0.6.08b/+download/duplicity-0.6.08b.tar.gz;
-    sha256 = "03bahzdq2dqngiqadfy1jwzn8an1fm46nl9frd0v6a4c52mr1g8i";
+    url = http://code.launchpad.net/duplicity/0.6-series/0.6.14/+download/duplicity-0.6.14.tar.gz;
+    sha256 = "1h0gxi7hdz22fvah9mcavimfgahf31pixy1mx2mivncl14b45wf7";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/bluetooth/bluedevil/default.nix b/pkgs/tools/bluetooth/bluedevil/default.nix
new file mode 100644
index 000000000000..287036f3e0a8
--- /dev/null
+++ b/pkgs/tools/bluetooth/bluedevil/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchgit, cmake, automoc4, kdelibs, libbluedevil, shared_mime_info }:
+
+stdenv.mkDerivation rec {
+  name = "bluedevil-20110303";
+
+  src = fetchgit {
+    url = git://anongit.kde.org/bluedevil.git;
+    sha256 = "1chx3cx43wic1sgzc651vxxiy9khbp9hcm7n40nmhnj9czfcg46q";
+    rev = "7e513008aa6430d3b8d0052b14201d1d813c80b9";
+  };
+
+  buildInputs = [ cmake kdelibs libbluedevil shared_mime_info automoc4 ];
+
+}
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 47de82db1580..bbc2f0b48784 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, intltool, python, pyrex, pygobject, pygtk
 , notify, pythonDBus, bluez, glib, gtk, libstartup_notification
-, makeWrapper, xdg_utils
+, makeWrapper, xdg_utils, obex_data_server
 }:
    
 stdenv.mkDerivation rec {
@@ -29,6 +29,9 @@ stdenv.mkDerivation rec {
               --set PYTHONPATH "$(toPythonPath $out):$PYTHONPATH" \
               --prefix PATH : ${xdg_utils}/bin
       done
+
+      mkdir -p $out/nix-support
+      echo ${obex_data_server} > $out/nix-support/propagated-user-env-packages
     ''; # */
 
   meta = {
diff --git a/pkgs/tools/bluetooth/obex-data-server/default.nix b/pkgs/tools/bluetooth/obex-data-server/default.nix
index c01794b26ba6..790b57f4a76d 100644
--- a/pkgs/tools/bluetooth/obex-data-server/default.nix
+++ b/pkgs/tools/bluetooth/obex-data-server/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libusb, glib, dbus_glib, bluez, openobex }:
    
 stdenv.mkDerivation rec {
-  name = "obex-data-server-0.4.5";
+  name = "obex-data-server-0.4.6";
    
   src = fetchurl {
     url = "http://tadas.dailyda.com/software/${name}.tar.gz";
-    sha256 = "0qy7mrwr3xfplcxlrq97hiiyda7r9jn24015y9azahi7q5xjfhg7";
+    sha256 = "0kq940wqs9j8qjnl58d6l3zhx0jaszci356xprx23l6nvdfld6dk";
   };
 
   buildInputs = [ pkgconfig libusb glib dbus_glib bluez openobex ];
diff --git a/pkgs/tools/bluetooth/obexd/default.nix b/pkgs/tools/bluetooth/obexd/default.nix
index a07394b02375..215ecb167bad 100644
--- a/pkgs/tools/bluetooth/obexd/default.nix
+++ b/pkgs/tools/bluetooth/obexd/default.nix
@@ -1,14 +1,16 @@
 { stdenv, fetchurl, pkgconfig, glib, dbus, openobex, bluez, libical }:
    
 stdenv.mkDerivation rec {
-  name = "obexd-0.27";
+  name = "obexd-0.40";
    
   src = fetchurl {
     url = "mirror://kernel/linux/bluetooth/${name}.tar.gz";
-    sha256 = "17vlrhn1wgsbdd7f0ggw5nvs657miilhi5jc05pfmi4h18b8710l";
+    sha256 = "0jz0ldg2wvdzzl639xzf76hqwj23svlg3zv1r8nc3hik3pgs6h2l";
   };
 
-  buildInputs = [ pkgconfig glib dbus.libs openobex bluez libical ];
+  buildInputs = [ glib dbus.libs openobex bluez libical ];
+
+  buildNativeInputs = [ pkgconfig ];
 
   meta = {
     homepage = http://www.bluez.org/;
diff --git a/pkgs/tools/cd-dvd/cdrdao/adjust-includes-for-glibc-212.patch b/pkgs/tools/cd-dvd/cdrdao/adjust-includes-for-glibc-212.patch
new file mode 100644
index 000000000000..6d58eb6e9a56
--- /dev/null
+++ b/pkgs/tools/cd-dvd/cdrdao/adjust-includes-for-glibc-212.patch
@@ -0,0 +1,15 @@
+Adjust some headers for glibc 2.12 compatibility.
+Patch is a diff between the 1.2.3 release and CVS HEAD.
+
+--- cdrdao-1.2.3/dao/ScsiIf-linux.cc	2009-09-28 05:42:03.000000000 -0430
++++ /home/kkallio/q/src/r/cvs/cdrdao/cdrdao/dao/ScsiIf-linux.cc	2010-08-06 07:50:46.000000000 -0430
+@@ -19,6 +19,9 @@
+ 
+ #include <config.h>
+ 
++#include <sys/types.h>
++#include <sys/stat.h>
++
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <unistd.h>
diff --git a/pkgs/tools/cd-dvd/cdrdao/default.nix b/pkgs/tools/cd-dvd/cdrdao/default.nix
index e03f5f706aa6..375bbcda7e4d 100644
--- a/pkgs/tools/cd-dvd/cdrdao/default.nix
+++ b/pkgs/tools/cd-dvd/cdrdao/default.nix
@@ -12,9 +12,13 @@ stdenv.mkDerivation {
 
   buildInputs = [ lame libvorbis libmad pkgconfig libao ];
 
+  # Adjust some headers to match glibc 2.12 ... patch is a diff between
+  # the cdrdao CVS head and the 1.2.3 release.
+  patches = [ ./adjust-includes-for-glibc-212.patch ];
+
   # we have glibc/include/linux as a symlink to the kernel headers,
   # and the magic '..' points to kernelheaders, and not back to the glibc/include
-  patchPhase = ''
+  postPatch = ''
     sed -i 's,linux/../,,g' dao/sg_err.h
   '';
 
diff --git a/pkgs/tools/cd-dvd/mkcue/default.nix b/pkgs/tools/cd-dvd/mkcue/default.nix
new file mode 100644
index 000000000000..e1aa3cc18580
--- /dev/null
+++ b/pkgs/tools/cd-dvd/mkcue/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mkcue-1";
+
+  src = fetchurl {
+    url = "https://diplodocus.org/dist/audio/${name}.tar.bz2";
+    sha256 = "08md7si3frb8sjfqf3pm7qbrcvkbd10mzszlbydkxnyxdb530b04";
+  };
+
+  preInstall = "mkdir -pv $out/bin";
+  postInstall = "chmod -v +w $out/bin/mkcue";
+}
diff --git a/pkgs/tools/cd-dvd/mkisofs/default.nix b/pkgs/tools/cd-dvd/mkisofs/default.nix
deleted file mode 100644
index 255e7467def4..000000000000
--- a/pkgs/tools/cd-dvd/mkisofs/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ fetchurl, stdenv, gettext }:
-
-stdenv.mkDerivation rec {
-  name = "mkisofs-1.13";
-
-  src = fetchurl {
-    url = "mirror://gnu/isofsmk/${name}.tar.gz";
-    sha256 = "13f8zynl64aaqjgxf0m1m2gbizdh7ndicg5d1bm6s0x97bqifrfn";
-  };
-
-  buildInputs = [ gettext ];
-
-  doCheck = true;
-
-  meta = {
-    homepage = http://savannah.gnu.org/projects/isofsmk;
-
-    description = "GNU mkisofs, an ISO 9660 filesystem builder";
-
-    license = "GPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/tools/cd-dvd/xorriso/default.nix b/pkgs/tools/cd-dvd/xorriso/default.nix
new file mode 100644
index 000000000000..1b489f9a5caf
--- /dev/null
+++ b/pkgs/tools/cd-dvd/xorriso/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, libcdio, zlib, bzip2, readline, acl }:
+
+stdenv.mkDerivation rec {
+  name = "xorriso-1.1.4";
+
+  src = fetchurl {
+    url = "mirror://gnu/xorriso/${name}.tar.gz";
+    sha256 = "0zxmln5kw5prqrs8bahwz4lhvl914xphsjizlz3nr9y2l39350j8";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ libcdio zlib bzip2 readline ]
+    ++ stdenv.lib.optional stdenv.isLinux acl;
+
+  meta = {
+    description = "GNU xorriso, an ISO 9660 Rock Ridge file system manipulator";
+
+    longDescription =
+      '' GNU xorriso copies file objects from POSIX compliant filesystems
+         into Rock Ridge enhanced ISO 9660 filesystems and allows
+         session-wise manipulation of such filesystems.  It can load the
+         management information of existing ISO images and it writes the
+         session results to optical media or to filesystem objects.  Vice
+         versa xorriso is able to copy file objects out of ISO 9660
+         filesystems.
+      '';
+
+    license = "GPLv3+";
+
+    homepage = http://www.gnu.org/software/xorriso/;
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix
index 0faa3e22c5c0..41dda513e573 100644
--- a/pkgs/tools/compression/lrzip/default.nix
+++ b/pkgs/tools/compression/lrzip/default.nix
@@ -1,16 +1,14 @@
-{stdenv, fetchurl, zlib, lzo, bzip2, nasm}:
+{stdenv, fetchurl, zlib, lzo, bzip2, nasm, perl}:
 
 stdenv.mkDerivation rec {
-  name = "lrzip-0.44";
+  name = "lrzip-0.606";
 
   src = fetchurl {
     url = "http://ck.kolivas.org/apps/lrzip/${name}.tar.bz2";
-    sha256 = "1ncr6igs8v6yxp60sgb9h4ra8wb7jzbxiyj4a9m4nrxyw8fwm2iv";
+    sha256 = "03qxqs7y868w2kfpa84xmhdnh3b4j9x29g4hkzyrg8f4cxgkcv8k";
   };
 
-  NIX_CFLAGS_COMPILE = "-isystem ${zlib}/include";
-
-  buildInputs = [ zlib lzo bzip2 nasm ];
+  buildInputs = [ zlib lzo bzip2 nasm perl ];
 
   meta = {
     homepage = http://ck.kolivas.org/apps/lrzip/;
diff --git a/pkgs/tools/compression/upx/default.nix b/pkgs/tools/compression/upx/default.nix
index 33e0e5a52013..c3fd01d5c88b 100644
--- a/pkgs/tools/compression/upx/default.nix
+++ b/pkgs/tools/compression/upx/default.nix
@@ -1,14 +1,28 @@
 {stdenv, fetchurl, ucl, zlib}:
 
 stdenv.mkDerivation {
-  name = "upx-3.04";
+  name = "upx-3.07";
   src = fetchurl {
-    url = http://upx.sourceforge.net/download/upx-3.04-src.tar.bz2;
-    sha256 = "15vxjzaf21vfanidv6d0zf37jgy4xfhn399nc66651b064pnbf39";
+    url = http://upx.sourceforge.net/download/upx-3.07-src.tar.bz2;
+    sha256 = "07pcgjn7x0a734mvhgqwz24qkm1rzqrkcp67pmagzz6i765cp7bs";
   };
+
   buildInputs = [ ucl zlib ];
 
-  preConfigure = "cd src";
+  lzmaSrc = fetchurl {
+    url = mirror://sourceforge/sevenzip/lzma443.tar.bz2;
+    sha256 = "1ck4z81y6xv1x9ky8abqn3mj9xj2dwg41bmd5j431xgi8crgd1ds";
+  };
+
+  preConfigure = "
+    export UPX_UCLDIR=${ucl}
+    mkdir lzma443
+    pushd lzma443
+    tar xf $lzmaSrc
+    popd
+    export UPX_LZMADIR=`pwd`/lzma443
+    cd src
+  ";
 
   installPhase = "ensureDir $out/bin ; cp upx.out $out/bin/upx";
 
diff --git a/pkgs/tools/filesystems/aefs/default.nix b/pkgs/tools/filesystems/aefs/default.nix
index 8bf52795be2d..4d57e90c5925 100644
--- a/pkgs/tools/filesystems/aefs/default.nix
+++ b/pkgs/tools/filesystems/aefs/default.nix
@@ -1,17 +1,19 @@
-{stdenv, fetchurl, fuse}:
+{ stdenv, fetchurl, fuse, fetchsvn }:
   
-stdenv.mkDerivation {
-  name = "aefs-0.3pre285";
+stdenv.mkDerivation rec {
+  name = "aefs-0.3pre288";
   
   src = fetchurl {
-    url = http://nixos.org/tarballs/aefs-0.3pre285.tar.bz2;
-    sha256 = "1psciqllzm08c21h6k2zxmvmi0grkvaiq177giv1avzzzfhq0z3c";
+    url = "http://nixos.org/tarballs/${name}.tar.bz2";
+    sha256 = "0s102s75h7ycjppvbankadsgpw6w1p4fc676zdpd64x8s66bs6lp";
   };
 
-  buildInputs = [fuse];
+  buildInputs = [ fuse ];
 
   meta = {
     homepage = http://www.st.ewi.tudelft.nl/~dolstra/aefs/;
     description = "A cryptographic filesystem implemented in userspace using FUSE";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
   };
 }
diff --git a/pkgs/tools/filesystems/archivemount/default.nix b/pkgs/tools/filesystems/archivemount/default.nix
new file mode 100644
index 000000000000..c05d2e98af32
--- /dev/null
+++ b/pkgs/tools/filesystems/archivemount/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, fuse, libarchive }:
+
+let
+  name = "archivemount-0.6.1";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "http://www.cybernoia.de/software/archivemount/${name}.tar.gz";
+    sha256 = "9235d6377a70a7c25aa288dab6b0e8ef906d1d219d43e5b8fcdb8cf3ace98e01";
+  };
+
+  buildInputs = [ pkgconfig fuse libarchive ];
+
+  meta = {
+    description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives.";
+    license = "GPL2";
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index 1d5f6d8ffcda..8cc212deee47 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ neon zlib ];
   
-  patches = [ ./davfs2-install.patch ]; 
+  patches = [ ./davfs2-install.patch ./isdir.patch ]; 
 
   meta = {
     longDescription = "Web Distributed Authoring and Versioning (WebDAV), an extension to the HTTP-protocol, allows authoring of resources on a remote web server. davfs2 provides the ability to access such resources like a typical filesystem, allowing for use by standard applications with no built-in support for WebDAV.";
diff --git a/pkgs/tools/filesystems/davfs2/isdir.patch b/pkgs/tools/filesystems/davfs2/isdir.patch
new file mode 100644
index 000000000000..ae69b4460f5a
--- /dev/null
+++ b/pkgs/tools/filesystems/davfs2/isdir.patch
@@ -0,0 +1,30 @@
+diff -ur davfs2-1.4.5-old/src/dav_coda.c davfs2-1.4.5-new/src/dav_coda.c
+--- davfs2-1.4.5-old/src/dav_coda.c	2009-06-04 20:30:32.000000000 +0200
++++ davfs2-1.4.5-new/src/dav_coda.c	2011-02-09 19:51:22.260530572 +0100
+@@ -52,6 +52,10 @@
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
++#ifdef HAVE_SYS_STAT_H
++#include <sys/stat.h>
++#endif
++
+ 
+ #include "defaults.h"
+ #include "mount_davfs.h"
+diff -ur davfs2-1.4.5-old/src/dav_fuse.c davfs2-1.4.5-new/src/dav_fuse.c
+--- davfs2-1.4.5-old/src/dav_fuse.c	2009-06-30 20:06:44.000000000 +0200
++++ davfs2-1.4.5-new/src/dav_fuse.c	2011-02-09 19:52:23.938220524 +0100
+@@ -41,6 +41,12 @@
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
++#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
++#ifdef HAVE_SYS_STAT_H
++#include <sys/stat.h>
++#endif
+ 
+ #include "defaults.h"
+ #include "mount_davfs.h"
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index 903b8f10347f..eba987774b64 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libuuid }:
 
 stdenv.mkDerivation rec {
-  name = "e2fsprogs-1.41.12";
+  name = "e2fsprogs-1.41.14";
 
   src = fetchurl {
     url = "mirror://sourceforge/e2fsprogs/${name}.tar.gz";
-    sha256 = "084zpg4ma6g4y4plz7alfqc1q78jss8lfmpk4w7zvnmz43fd09lw";
+    sha256 = "0xmisymd0p4pr18gv8260kn5kb6lpp54mgpw194fqjvwvpzc32iz";
   };
 
   buildInputs = [ pkgconfig libuuid ];
diff --git a/pkgs/tools/filesystems/fsfs/default.nix b/pkgs/tools/filesystems/fsfs/default.nix
new file mode 100644
index 000000000000..622424c302fb
--- /dev/null
+++ b/pkgs/tools/filesystems/fsfs/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, openssl, fuse}:
+
+throw "It still does not build"
+
+stdenv.mkDerivation {
+  name = "fsfs-0.1.1";
+  src = fetchurl {
+    url = mirror://sourceforge/fsfs/fsfs-0.1.1.tar.gz;
+    sha256 = "05wka9aq182li2r7gxcd8bb3rhpns7ads0k59v7w1jza60l57c74";
+  };
+
+  buildInputs = [ fuse openssl ];
+
+  patchPhase = ''
+    sed -i -e 's,CONFDIR=\(.*\),CONFDIR='$out/etc, \
+      -e 's,USERCONFPREFIX=\(.*\),USERCONFPREFIX='$out/var/lib, Makefile \
+      src/Makefile src/utils/Makefile
+  '';
+
+  preInstall = ''
+    ensureDir $out/etc $out/var/lib
+    makeFlags="$makeFlags prefix=$out"
+  '';
+
+  meta = {
+    homepage = http://fsfs.sourceforge.net/;
+    description = "Secure distributed file system in user space";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 19ec65e4fca0..bf7b5f40801e 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mtools-4.0.15";
+  name = "mtools-4.0.17";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${name}.tar.bz2";
-    sha256 = "169qjy3fmmhxiy0jljh84jvjh8mh1p8gglwqgjhq7hbw235fy399";
+    sha256 = "1dpch2wsiwhyg7xhsdvmc1pws8biwqkmnqjc3mdj2bd76273bk0f";
   };
 
   doCheck = true;
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/mtools/;
     description = "GNU mtools, utilities to access MS-DOS disks";
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/tools/filesystems/smbnetfs/default.nix b/pkgs/tools/filesystems/smbnetfs/default.nix
new file mode 100644
index 000000000000..616f61e6c84c
--- /dev/null
+++ b/pkgs/tools/filesystems/smbnetfs/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , fuse, samba, pkgconfig
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="smbnetfs";
+    dirBaseName="SMBNetFS";
+    version="0.5.3a";
+    name="${baseName}-${version}";
+    project="${baseName}";
+    url="mirror://sourceforge/project/${project}/${baseName}/${dirBaseName}-${version}/${name}.tar.bz2";
+    hash="0fzlw11y2vkxmjzz3qcypqlvz074v6a3pl4pyffbniqal64qgrsw";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A FUSE FS for mounting Samba shares";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://sourceforge.net/projects/smbnetfs/files/smbnetfs";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/filesystems/squashfs/default.nix b/pkgs/tools/filesystems/squashfs/default.nix
index a092064dbf5b..a7eb9eb0a1f2 100644
--- a/pkgs/tools/filesystems/squashfs/default.nix
+++ b/pkgs/tools/filesystems/squashfs/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, zlib, attr}:
+{stdenv, fetchurl, zlib, attr, xz}:
 
 stdenv.mkDerivation rec {
   name = "squashfs-4.1";
@@ -8,16 +8,17 @@ stdenv.mkDerivation rec {
     sha256 = "0sh40r7gz81fg7ivgr7rld8spvqb6hsfvnf6gd3gbcr5b830v1rs";
   };
   
-  buildInputs = [zlib attr];
+  buildInputs = [zlib attr xz];
 
   preBuild = ''
     cd squashfs-tools
   '';
+  IUSE="+gzip +lzma";
 
   NIX_LDFLAGS = "-lgcc_s"; # for pthread_cancel
 
   installFlags = "INSTALL_DIR=\${out}/bin";
-
+  makeFlags = "XZ_SUPPORT=1";
   meta = {
     homepage = http://squashfs.sourceforge.net/;
     description = "Tool for creating and unpacking squashfs filesystems";
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 92e7d854fd88..606914cd976e 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
   };
   
   buildInputs = [ pkgconfig glib fuse ];
+  postInstall = ''
+    ensureDir $out/sbin
+    ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
+  '';
 
   meta = {
     homepage = http://fuse.sourceforge.net/sshfs.html;
diff --git a/pkgs/tools/filesystems/udftools/default.nix b/pkgs/tools/filesystems/udftools/default.nix
new file mode 100644
index 000000000000..fae14102e513
--- /dev/null
+++ b/pkgs/tools/filesystems/udftools/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , ncurses, readline
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="udftools";
+    version="1.0.0b3";
+    name="${baseName}-${version}";
+    project="linux-udf";
+    url="mirror://sourceforge/${project}/${baseName}/${version}/${name}.tar.gz";
+    hash="180414z7jblby64556i8p24rcaas937zwnyp1zg073jdin3rw1y5";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["fixIncludes" "doConfigure" "doMakeInstall"];
+      
+  fixIncludes = a.fullDepEntry ''
+    sed -e '1i#include <limits.h>' -i cdrwtool/cdrwtool.c -i pktsetup/pktsetup.c
+    sed -e 's@[(]char[*][)]spm [+]=@spm = ((char*) spm) + @' -i wrudf/wrudf.c
+  '' ["doUnpack" "minInit"];
+
+  meta = {
+    description = "UDF tools";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2Plus;
+  };
+  passthru = {
+  };
+}) x
+
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 92b8a980a8d7..303fc0868745 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -49,6 +49,6 @@ rec {
       a.lib.maintainers.raskin
     ];
     platforms = with a.lib.platforms; 
-      linux ++ freebsd ++ darwin;
+      linux;
   };
 }
diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix
index 0e5131b603d0..232b6c5464a9 100644
--- a/pkgs/tools/graphics/cuneiform/default.nix
+++ b/pkgs/tools/graphics/cuneiform/default.nix
@@ -28,8 +28,10 @@ rec {
     cmake .. -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=$out -DDL_LIB=${libc}/lib
   '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
       
+  needLib64 = a.stdenv.system == "x86_64-linux";
+
   postInstall = a.fullDepEntry(''
-    patchelf --set-rpath $out/lib${if a.stdenv.gcc.gcc != null then ":${a.stdenv.gcc.gcc}/lib" else ""}:${a.imagemagick}/lib $out/bin/cuneiform
+    patchelf --set-rpath $out/lib${if needLib64 then "64" else ""}${if a.stdenv.gcc.gcc != null then ":${a.stdenv.gcc.gcc}/lib" else ""}${if a.stdenv.gcc.gcc != null && needLib64 then ":${a.stdenv.gcc.gcc}/lib64" else ""}:${a.imagemagick}/lib $out/bin/cuneiform
   '') ["minInit" "addInputs" "doMakeInstall"];
 
   name = "cuneiform-" + version;
diff --git a/pkgs/tools/graphics/dcraw/default.nix b/pkgs/tools/graphics/dcraw/default.nix
index 30af04d25d9b..8ee02710b05f 100644
--- a/pkgs/tools/graphics/dcraw/default.nix
+++ b/pkgs/tools/graphics/dcraw/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.cybercom.net/~dcoffin/dcraw/;
     description = "Decoder for many camera raw picture formats";
     license = "free";
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.allBut "i686-cygwin";
     maintainers = [ stdenv.lib.maintainers.urkud ];
   };
 }
diff --git a/pkgs/tools/graphics/dmtx/default.nix b/pkgs/tools/graphics/dmtx/default.nix
index bc222fa59cc2..ae3a227a4fe0 100644
--- a/pkgs/tools/graphics/dmtx/default.nix
+++ b/pkgs/tools/graphics/dmtx/default.nix
@@ -7,7 +7,7 @@ let
   buildInputs = with args; [
     libpng libtiff libjpeg librsvg imagemagick pkgconfig
     zlib libX11 bzip2 libtool freetype fontconfig 
-    ghostscript jasper
+    ghostscript jasper xz
   ];
 in
 rec {
diff --git a/pkgs/tools/graphics/glxinfo/default.nix b/pkgs/tools/graphics/glxinfo/default.nix
index d1978134a710..02db33f92cb1 100644
--- a/pkgs/tools/graphics/glxinfo/default.nix
+++ b/pkgs/tools/graphics/glxinfo/default.nix
@@ -1,23 +1,27 @@
 {stdenv, fetchurl, x11, mesa}:
 
+let version = "8.0.1"; in
+
 stdenv.mkDerivation {
-  name = "glxinfo-7.8.2";
-  
+  name = "glxinfo-${version}";
+
   src = fetchurl {
-    url = ftp://ftp.freedesktop.org/pub/mesa/7.8.2/MesaDemos-7.8.2.tar.bz2;
-    md5 = "757d9e2e06f48b1a52848be9b0307ced";
+    url = "ftp://ftp.freedesktop.org/pub/mesa/demos/${version}/mesa-demos-${version}.tar.bz2";
+    sha256 = "1lbp1llpx0hl5k79xb653yvjvk9mlikj73r8xjzyxqqp1nrg5isb";
   };
 
   buildInputs = [x11 mesa];
 
+  configurePhase = "true";
+
   buildPhase = "
-    cd progs/xdemos
-    gcc glxinfo.c -o glxinfo -lGL -lX11 
+    cd src/xdemos
+    gcc glxinfo.c -o glxinfo -lGL -lX11
     gcc glxgears.c -o glxgears -lGL -lX11
   ";
 
   installPhase = "
     ensureDir $out/bin
-    cp glxinfo glxgears $out/bin
+    cp glxinfo glxgears $out/bin/
   ";
 }
diff --git a/pkgs/tools/graphics/graphviz/2.24.nix b/pkgs/tools/graphics/graphviz/2.24.nix
new file mode 100644
index 000000000000..af04ab54dbe4
--- /dev/null
+++ b/pkgs/tools/graphics/graphviz/2.24.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, x11, libpng, libjpeg, expat, libXaw
+, yacc, libtool, fontconfig, pango, gd
+}:
+
+assert libpng != null && libjpeg != null && expat != null;
+
+stdenv.mkDerivation rec {
+  name = "graphviz-2.24.0";
+
+  src = fetchurl {
+    url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
+    sha256 = "01182be7851ef6d292a916b19ac25a33bce5dccbd4661bf3101abbd3dfb1ae00";
+  };
+
+  buildInputs = [pkgconfig x11 libpng libjpeg expat libXaw yacc libtool fontconfig pango gd];
+  
+  configureFlags =
+    [ "--with-pngincludedir=${libpng}/include"
+      "--with-pnglibdir=${libpng}/lib"
+      "--with-jpegincludedir=${libjpeg}/include"
+      "--with-jpeglibdir=${libjpeg}/lib"
+      "--with-expatincludedir=${expat}/include"
+      "--with-expatlibdir=${expat}/lib"
+      "--with-codegens"
+    ]
+    ++ stdenv.lib.optional (x11 == null) "--without-x";
+
+  meta = {
+    description = "A program for visualising graphs";
+    homepage = http://www.graphviz.org/;
+  };
+}
diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix
index 042f5befab0c..678744ad5bbc 100644
--- a/pkgs/tools/graphics/graphviz/default.nix
+++ b/pkgs/tools/graphics/graphviz/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchurl, pkgconfig, x11, libpng, libjpeg, expat, libXaw
-, yacc, libtool, fontconfig, pango, gd
+{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw
+, yacc, libtool, fontconfig, pango, gd, xlibs
 }:
 
-assert libpng != null && libjpeg != null && expat != null;
-
 stdenv.mkDerivation rec {
-  name = "graphviz-2.22.2";
+  name = "graphviz-2.28.0";
 
   src = fetchurl {
     url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
-    sha256 = "1yzda1al32la3wyrxwc1hs83sx9p84zh6xlpcpkx90xvjaav827v";
+    sha256 = "0xpwg99cd8sp0c6r8klsmc66h1pday64kmnr4v6f9jkqqmrpkank";
   };
 
-  buildInputs = [pkgconfig x11 libpng libjpeg expat libXaw yacc libtool fontconfig pango gd];
+  buildInputs =
+    [ pkgconfig libpng libjpeg expat libXaw yacc libtool fontconfig
+      pango gd
+    ] ++ stdenv.lib.optionals (xlibs != null) [ xlibs.xlibs xlibs.libXrender ];
   
   configureFlags =
     [ "--with-pngincludedir=${libpng}/include"
@@ -22,7 +23,11 @@ stdenv.mkDerivation rec {
       "--with-expatincludedir=${expat}/include"
       "--with-expatlibdir=${expat}/lib"
     ]
-    ++ stdenv.lib.optional (x11 == null) "--without-x";
+    ++ stdenv.lib.optional (xlibs == null) "--without-x";
+
+  preBuild = ''
+    sed -e 's@am__append_5 *=.*@am_append_5 =@' -i lib/gvc/Makefile
+  '';
 
   meta = {
     description = "A program for visualising graphs";
diff --git a/pkgs/tools/graphics/optipng/default.nix b/pkgs/tools/graphics/optipng/default.nix
index 76305a343e6a..a7cb20ca1cf7 100644
--- a/pkgs/tools/graphics/optipng/default.nix
+++ b/pkgs/tools/graphics/optipng/default.nix
@@ -3,11 +3,11 @@
 # This package comes with its own copy of zlib, libpng and pngxtern
 
 stdenv.mkDerivation rec {
-  name = "optipng-0.6.4";
+  name = "optipng-0.6.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/optipng/${name}.tar.gz";
-    sha256 = "0ivnm07zlww20i7dba0zk5dyg8f3hlj03j7vazq520r43lmqj01h";
+    sha256 = "0i2vpakj60bb0zgy4bynly2mwxiv5fq48yjqjzmrbnqwjh1y5619";
   };
 
   meta = {
diff --git a/pkgs/tools/graphics/welkin/default.nix b/pkgs/tools/graphics/welkin/default.nix
new file mode 100644
index 000000000000..0076b2a4a862
--- /dev/null
+++ b/pkgs/tools/graphics/welkin/default.nix
@@ -0,0 +1,59 @@
+x@{builderDefsPackage
+  , jre
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["jre"];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="welkin";
+    version="1.1";
+    name="${baseName}-${version}";
+    url="http://simile.mit.edu/dist/welkin/${name}.tar.gz";
+    hash="0hr2xvfz887fdf2ysiqydv6m13gbdl5x0fh4960i655d5imvd5x0";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doDeploy" "createBin"];
+
+  doDeploy = a.simplyShare "welkin";
+
+  createBin = a.fullDepEntry ''
+    ensureDir "$out/bin"
+    echo "#! ${a.stdenv.shell}" > "$out/bin/welkin"
+    echo "export JAVA_HOME=${jre}" >> "$out/bin/welkin"
+    echo "\"$out/share/welkin/welkin.sh\" \"\$@\"" >> "$out/bin/welkin"
+    sed -e 's@[.]/lib/welkin[.]jar@"'"$out"'/share/welkin/lib/welkin.jar"@' -i "$out/share/welkin/welkin.sh"
+    chmod a+x "$out/bin/welkin"
+  '' ["minInit" "defEnsureDir"];
+      
+  meta = {
+    description = "An RDF visualizer";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      [];
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://simile.mit.edu/dist/welkin/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/misc/aws-mturk-clt/default.nix b/pkgs/tools/misc/aws-mturk-clt/default.nix
new file mode 100644
index 000000000000..f2fe1d959303
--- /dev/null
+++ b/pkgs/tools/misc/aws-mturk-clt/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, jre }:
+
+stdenv.mkDerivation rec {
+  name = "aws-mturk-clt-1.3.0";
+  
+  src = fetchurl {
+    url = "http://mturk.s3.amazonaws.com/CLTSource/${name}.tar.gz";
+    sha256 = "06p0cbb5afmqjjlibbw9gb08jp270c7j57lhnf9ld50sm1z021ln";
+  };
+
+  installPhase =
+    ''
+      mkdir -p $out
+      cp -prvd bin $out/
+
+      for i in $out/bin/*.sh; do
+        sed -i "$i" -e "s|^MTURK_CMD_HOME=.*|MTURK_CMD_HOME=$out\nexport JAVA_HOME=${jre}|"
+      done
+
+      mkdir -p $out/lib
+      cp -prvd lib/* $out/lib/
+    ''; # */
+
+  meta = {
+    homepage = https://requester.mturk.com/developer;
+    description = "Command line tools for interacting with the Amazon Mechanical Turk";
+    license = "unfree-redistributable";
+
+    longDescription =
+      ''
+        The Amazon Mechanical Turk is a crowdsourcing marketplace that
+        allows users (“requesters”) to submit tasks to be performed by
+        other humans (“workers”) for a small fee.  This package
+        contains command-line tools for submitting tasks, querying
+        results, and so on.
+
+        The command-line tools expect a file
+        <filename>mturk.properties<filename> in the current directory,
+        which should contain the following:
+
+        <screen>
+        access_key=[insert your access key here]
+        secret_key=[insert your secret key here]
+        service_url=http://mechanicalturk.amazonaws.com/?Service=AWSMechanicalTurkRequester
+        </screen>
+      '';
+  };
+}
diff --git a/pkgs/tools/misc/bc/default.nix b/pkgs/tools/misc/bc/default.nix
index 2d3d70d5ead3..164bc3d55f05 100644
--- a/pkgs/tools/misc/bc/default.nix
+++ b/pkgs/tools/misc/bc/default.nix
@@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./readlinefix.patch ];
 
+  preConfigure = ''
+    sed -i 's/program.*save/static &/' bc/load.c
+  '';
+
   configureFlags = [ "--with-readline" ];
 
   buildInputs = [flex readline];
diff --git a/pkgs/tools/misc/convmv/default.nix b/pkgs/tools/misc/convmv/default.nix
index c49e25a4dc57..a4b84f13507c 100644
--- a/pkgs/tools/misc/convmv/default.nix
+++ b/pkgs/tools/misc/convmv/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ perl ];
 
   meta = with stdenv.lib; {
-    platforms = platforms.all;
+    platforms = platforms.linux ++ platforms.freebsd ++ platforms.cygwin;
     maintainers = [ maintainers.urkud ];
   };
 }
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 65d5cb6c8f9b..4db9df467219 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -1,8 +1,11 @@
-{ stdenv, fetchurl, aclSupport ? false, acl ? null, perl, gmp ? null}:
+{ stdenv, fetchurl, perl, gmp ? null
+, aclSupport ? false, acl ? null
+, selinuxSupport? false, libselinux ? null, libsepol ? null }:
 
 assert aclSupport -> acl != null;
+assert selinuxSupport -> ( (libselinux != null) && (libsepol != null) );
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "coreutils-8.10";
 
   src = fetchurl {
@@ -11,11 +14,16 @@ stdenv.mkDerivation rec {
   };
 
   buildNativeInputs = [ perl ];
-  buildInputs = [ gmp ] ++ stdenv.lib.optional aclSupport acl;
+  buildInputs = [ gmp ]
+    ++ stdenv.lib.optional aclSupport acl
+    ++ stdenv.lib.optional selinuxSupport libselinux
+    ++ stdenv.lib.optional selinuxSupport libsepol;
 
   crossAttrs = {
     buildInputs = [ gmp ]
       ++ stdenv.lib.optional aclSupport acl.hostDrv
+      ++ stdenv.lib.optional selinuxSupport libselinux.hostDrv
+      ++ stdenv.lib.optional selinuxSupport libsepol.hostDrv
       ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
         stdenv.gccCross.libc.libiconv.hostDrv;
 
@@ -48,4 +56,5 @@ stdenv.mkDerivation rec {
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
-}
+} // (if selinuxSupport then { NIX_LDFLAGS = "-lsepol"; } else { } ) )
+
diff --git a/pkgs/tools/misc/dmg2img/default.nix b/pkgs/tools/misc/dmg2img/default.nix
new file mode 100644
index 000000000000..72e368e709e1
--- /dev/null
+++ b/pkgs/tools/misc/dmg2img/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, zlib, bzip2, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "dmg2img-1.6.2";
+
+  src = fetchurl {
+    url = "http://vu1tur.eu.org/tools/${name}.tar.gz";
+    sha256 = "1ibxjsrl9g877qi3jjpv0zdgl4x8j1vnd4y27q17a8my1jkhh5cg";
+  };
+ 
+  buildInputs = [zlib bzip2 openssl];
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp dmg2img $out/bin
+  '';
+}
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index 868ea6e4b5d6..04a0662a3b6e 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -1,16 +1,16 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "fdupes-1.40";
+  name = "fdupes-1.50-PR2";
   src = fetchurl {
-    url = http://premium.caribe.net/~adrian2/programs/fdupes-1.40.tar.gz;
-    sha256 = "1ryxpckgrmqa4y7nx9a9xpg4z1r00k11kc1cm7lqv87l9g293vg1";
+    url = http://fdupes.googlecode.com/files/fdupes-1.50-PR2.tar.gz;
+    sha256 = "068nxcn3xilaphq53sywli9ndydy4gijfi2mz7h45kpy0q9cgwjs";
   };
 
-  installPhase =  ''
-    mkdir -p $out/{bin,man/man1}
-    make INSTALLDIR=$out/bin MANPAGEDIR=$out/man install
-  '';
+  # workaround: otherwise make install fails (should be fixed in trunk)
+  preInstall = "ensureDir $out/bin $out/man/man1";
+
+  makeFlags = "PREFIX=\${out}";
 
   meta = {
     description = "identifies duplicate files residing within specified directories.";
@@ -18,7 +18,11 @@ stdenv.mkDerivation {
       FDUPES uses md5sums and then a byte by byte comparison to finde duplicate
       files within a set of directories.
     '';
-    homepage = http://premium.caribe.net/~adrian2/fdupes.html;
+    homepage = http://code.google.com/p/fdupes/;
     license = "MIT";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [
+      stdenv.lib.maintainers.z77z
+    ];
   };
 }
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 0349661833cb..01a674fe2274 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,10 +1,11 @@
 {stdenv, fetchurl}:
  
 stdenv.mkDerivation {
-  name = "file-5.03";
+  name = "file-5.04";
+
   src = fetchurl {
-    url = ftp://ftp.astron.com/pub/file/file-5.03.tar.gz;
-    sha256 = "1fwmpplwc6h2g89ribq7w8x2np0yn5k7bw042815rv7jkrzv9nhy";
+    url = ftp://ftp.astron.com/pub/file/file-5.04.tar.gz;
+    sha256 = "0316lj3jxmp2g8azv0iykmmwjsnjanq93bklccwb6k77jiwnx7jc";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/gnokii/default.nix b/pkgs/tools/misc/gnokii/default.nix
index 7ce810a7b56f..d0354a7bb6ed 100644
--- a/pkgs/tools/misc/gnokii/default.nix
+++ b/pkgs/tools/misc/gnokii/default.nix
@@ -5,7 +5,8 @@ let
   s = import ./src-for-default.nix; 
   buildInputs = with a; [
     perl intltool gettext libusb
-    glib pkgconfig
+    glib gtk pkgconfig bluez readline
+    libXpm pcsclite libical
   ];
 in
 
@@ -18,19 +19,8 @@ rec {
   configureFlags = [];
 
   /* doConfigure should be removed if not needed */
-  phaseNames = [ "setDebug" "doConfigure" "doMakeInstall"];
+  phaseNames = [ "doConfigure" "doMakeInstall"];
 
-  setDebug = a.fullDepEntry ''
-    mkdir -p $out/src
-    cp -R * $out/src
-    cd $out/src
-
-    export NIX_STRIP_DEBUG=0
-    export CFLAGS="-ggdb -O0 -include ${a.stdenv.glibc}/include/locale.h"
-    export CXXFLAGS="-ggdb -O0"
-
-  '' [ "minInit" "doUnpack" ];
-      
   inherit(s) name;
   meta = {
     description = "Cellphone tool";
diff --git a/pkgs/tools/misc/gnokii/src-for-default.nix b/pkgs/tools/misc/gnokii/src-for-default.nix
index c428690cae73..360f98de7584 100644
--- a/pkgs/tools/misc/gnokii/src-for-default.nix
+++ b/pkgs/tools/misc/gnokii/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="0.6.29";
-   name="gnokii-0.6.29";
-   hash="0w94balyy9l0xy8x3z20f127b5ijpm9a9fbbskz147jyzhprgw0l";
+   version="0.6.30";
+   name="gnokii-0.6.30";
+   hash="0k14dymifk7dx3z58cqrc4mgxrm17s4jk12chwdfjhjarz390x8p";
    url="http://www.gnokii.org/download/gnokii/gnokii-${version}.tar.gz";
-   advertisedUrl="http://www.gnokii.org/download/gnokii/gnokii-0.6.29.tar.gz";
+   advertisedUrl="http://www.gnokii.org/download/gnokii/gnokii-0.6.30.tar.gz";
   
   
 }
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 5cc8d54f3931..249456580d4b 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -2,11 +2,11 @@
 , pkgconfig, gtkmm, gnomedocutils, libxml2 }:
 
 stdenv.mkDerivation {
-  name = "gparted-0.5.1";
+  name = "gparted-0.8.1";
 
   src = fetchurl {
-    url = mirror://sourceforge/gparted/gparted-0.5.1/gparted-0.5.1.tar.bz2;
-    sha256 = "1mqi1hxv6bahp771bqld0a6wx7khdxvz353n47q1wmqykmn4wbp0";
+    url = mirror://sourceforge/gparted/gparted-0.5.1/gparted-0.8.1.tar.bz2;
+    sha256 = "128pnrcqp3d4a4jnjxm0mqglbyrs2q841pmg5g8ilyc827b6j163";
   };
 
   configureFlags = "--disable-doc";
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     description = "Graphical disk partitioning tool";
     homepage = http://gparted.sourceforge.net;
     license = "GPLv2";
+    platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/tools/misc/grub/1.98.nix b/pkgs/tools/misc/grub/1.98.nix
new file mode 100644
index 000000000000..df7d3408b619
--- /dev/null
+++ b/pkgs/tools/misc/grub/1.98.nix
@@ -0,0 +1,79 @@
+{ fetchurl, stdenv, bison, gettext, ncurses, libusb, freetype, qemu }:
+
+let unifont_bdf = fetchurl {
+      url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
+      sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
+    };
+in
+
+stdenv.mkDerivation rec {
+  name = "grub-1.98";
+
+  src = fetchurl {
+    url = "ftp://alpha.gnu.org/gnu/grub/${name}.tar.gz";
+    sha256 = "05660x82y2rwrzm0d1c4z07fbh02qwmacsmbbav6fa855s4w3wmy";
+  };
+
+  buildInputs = [ bison ncurses libusb freetype gettext ]
+    ++ stdenv.lib.optional doCheck qemu;
+
+  preConfigure =
+    '' for i in "tests/util/"*.in
+       do
+         sed -i "$i" -e's|/bin/bash|/bin/sh|g'
+       done
+
+       # Apparently, the QEMU executable is no longer called
+       # `qemu-system-i386', even on i386.
+       #
+       # In addition, use `-nodefaults' to avoid errors like:
+       #
+       #  chardev: opening backend "stdio" failed
+       #  qemu: could not open serial device 'stdio': Invalid argument
+       #
+       # See <http://www.mail-archive.com/qemu-devel@nongnu.org/msg22775.html>.
+       sed -i "tests/util/grub-shell.in" \
+           -e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
+    '';
+
+  patches =
+    [ # The udev rules for LVM create symlinks in /dev/mapper rathe
+      # than device nodes, causing GRUB to fail to recognize LVM
+      # volumes. See
+      # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550704
+      # This ugly workaround makes `find_root_device' use stat() on
+      # files in /dev/mapper instead of lstat().
+      ./device-mapper-symlinks.patch
+    ];
+
+  postPatch =
+    '' gunzip < "${unifont_bdf}" > "unifont.bdf"
+       sed -i "configure" \
+           -e "s|/usr/src/unifont.bdf|$PWD/unifont.bdf|g"
+    '';
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU GRUB, the Grand Unified Boot Loader (2.x alpha)";
+
+    longDescription =
+      '' GNU GRUB is a Multiboot boot loader. It was derived from GRUB, GRand
+         Unified Bootloader, which was originally designed and implemented by
+         Erich Stefan Boleyn.
+
+         Briefly, the boot loader is the first software program that runs when a
+         computer starts.  It is responsible for loading and transferring
+         control to the operating system kernel software (such as the Hurd or
+         the Linux).  The kernel, in turn, initializes the rest of the
+         operating system (e.g., GNU).
+      '';
+
+    homepage = http://www.gnu.org/software/grub/;
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;
+  };
+}
diff --git a/pkgs/tools/misc/grub/1.9x.nix b/pkgs/tools/misc/grub/1.9x.nix
index 25d56c28511c..59c490b810c4 100644
--- a/pkgs/tools/misc/grub/1.9x.nix
+++ b/pkgs/tools/misc/grub/1.9x.nix
@@ -1,20 +1,25 @@
-{ fetchurl, stdenv, bison, gettext, ncurses, libusb, freetype, qemu }:
+{ fetchurl, stdenv, xz, flex, bison, gettext, ncurses, libusb, freetype, qemu
+, EFIsupport ? false }:
 
-let unifont_bdf = fetchurl {
+let
+    prefix = "grub${if EFIsupport then "-efi" else ""}";
+    version = "1.99";
+    unifont_bdf = fetchurl {
       url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
       sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
     };
 in
 
 stdenv.mkDerivation rec {
-  name = "grub-1.98";
+  name = "${prefix}-${version}";
 
   src = fetchurl {
-    url = "ftp://alpha.gnu.org/gnu/grub/${name}.tar.gz";
-    sha256 = "05660x82y2rwrzm0d1c4z07fbh02qwmacsmbbav6fa855s4w3wmy";
+    url = "mirror://gnu/grub/grub-${version}.tar.xz";
+    sha256 = "06q2a7bg1mbsms604a89fkdnwrc1jg9hr2mmfdmg3il39j6i827k";
   };
 
-  buildInputs = [ bison ncurses libusb freetype gettext ]
+  buildNativeInputs = [ xz flex bison ];
+  buildInputs = [ ncurses libusb freetype gettext ]
     ++ stdenv.lib.optional doCheck qemu;
 
   preConfigure =
@@ -36,26 +41,25 @@ stdenv.mkDerivation rec {
            -e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
     '';
 
-  patches =
-    [ # The udev rules for LVM create symlinks in /dev/mapper rathe
-      # than device nodes, causing GRUB to fail to recognize LVM
-      # volumes. See
-      # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550704
-      # This ugly workaround makes `find_root_device' use stat() on
-      # files in /dev/mapper instead of lstat().
-      ./device-mapper-symlinks.patch
-    ];
-
-  postPatch =
+  prePatch =
     '' gunzip < "${unifont_bdf}" > "unifont.bdf"
        sed -i "configure" \
            -e "s|/usr/src/unifont.bdf|$PWD/unifont.bdf|g"
     '';
 
+  configureFlags =
+    let arch = if stdenv.system == "i686-linux" then "i386"
+               else if stdenv.system == "x86_64-linux" then "x86_64"
+               else throw "unsupported EFI firmware architecture";
+    in
+      stdenv.lib.optionals EFIsupport
+        [ "--with-platform=efi" "--target=${arch}" "--program-prefix=" ];
+
   doCheck = false;
+  enableParallelBuilding = true;
 
   meta = {
-    description = "GNU GRUB, the Grand Unified Boot Loader (2.x alpha)";
+    description = "GNU GRUB, the Grand Unified Boot Loader (2.x beta)";
 
     longDescription =
       '' GNU GRUB is a Multiboot boot loader. It was derived from GRUB, GRand
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
new file mode 100644
index 000000000000..0b0120ab2791
--- /dev/null
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchgit, pkgconfig, libusb1, udev
+, enableGUI ? true, qt4 ? null
+}:
+
+stdenv.mkDerivation {
+  name = "heimdall-1.3.0";
+
+  src = fetchgit {
+    url = git://github.com/Benjamin-Dobell/Heimdall.git;
+    rev = "ed9b08e5d9e3db60d52bccf6cb6919fb4bd47602";
+    sha256 = "e65f18299a05699595548cb27393a01b4e1dbbced82d4add8d0d55ef6514a691";
+  };
+
+  buildInputs =
+    [ pkgconfig libusb1 udev ]
+    ++ stdenv.lib.optional enableGUI qt4 ;
+
+  makeFlags = "udevrulesdir=$(out)/lib/udev/rules.d";
+  
+  preConfigure =
+    ''
+      pushd libpit
+      ./configure
+      make
+      popd
+    
+      cd heimdall
+      substituteInPlace Makefile.in --replace sudo true
+
+      # Give ownership of the Galaxy S USB device to the logged in
+      # user.
+      substituteInPlace 60-heimdall-galaxy-s.rules --replace 'MODE="0666"' 'TAG+="udev-acl"'
+    '';
+
+  postBuild = stdenv.lib.optionalString enableGUI
+    ''
+      pushd ../heimdall-frontend
+      substituteInPlace Source/mainwindow.cpp --replace /usr/bin $out/bin
+      qmake heimdall-frontend.pro OUTPUTDIR=$out/bin
+      make
+      popd
+    '';
+
+  postInstall =
+    ''
+      mkdir -p $out/share/doc/heimdall
+      cp ../Linux/README $out/share/doc/heimdall/
+    '' + stdenv.lib.optionalString enableGUI ''
+      make -C ../heimdall-frontend install
+    '';
+
+  meta = {
+    homepage = http://www.glassechidna.com.au/products/heimdall/;
+    description = "A cross-platform open-source tool suite used to flash firmware onto Samsung Galaxy S devices";
+    license = "bsd";
+  };
+}
diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix
new file mode 100644
index 000000000000..f5f9112639c5
--- /dev/null
+++ b/pkgs/tools/misc/ised/default.nix
@@ -0,0 +1,47 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="ised";
+    version="2.2.2";
+    name="${baseName}-${version}";
+    url="mirror://sf/project/ised/${name}.tar.bz2";
+    hash="1nb1cnsbs2k3j9cy2kc2kg01rd7wf3jwxm62rwn1rjlc46nwdlmn";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A numeric sequence editor";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl3Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "ised.sf.net";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/misc/keychain/default.nix b/pkgs/tools/misc/keychain/default.nix
index 36b29083e088..881c65ef74b6 100644
--- a/pkgs/tools/misc/keychain/default.nix
+++ b/pkgs/tools/misc/keychain/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "keychain-2.6.6";
+  name = "keychain-2.7.1";
 
   src = fetchurl {
-    url = http://gentoo.chem.wisc.edu/gentoo/distfiles/keychain-2.6.6.tar.bz2;
-    sha256 = "10v0hzkgrb5cazm1gk0g4ncwp8sqvfk7xfyx59cjd69kzhbbn6ic";
+    url = mirror://gentoo/distfiles/keychain-2.7.1.tar.bz2;
+    sha256 = "14ai6wjwnj09xnl81ar2dlr5kwb8y1k5ck6nc549shpng0zzw1qi";
   };
 
   phases = "unpackPhase buildPhase";
diff --git a/pkgs/tools/misc/mc/default.nix b/pkgs/tools/misc/mc/default.nix
index 4a76adfd6216..d3ea7a38a74b 100644
--- a/pkgs/tools/misc/mc/default.nix
+++ b/pkgs/tools/misc/mc/default.nix
@@ -1,66 +1,20 @@
-{ stdenv, fetchurl, lib, pkgconfig, glib, ncurses, e2fsprogs, gpm
-, libX11, libXt, shebangfix, perl, zip, unzip, gettext, slang}:
+{ stdenv, fetchurl, pkgconfig, glib, gpm, file, e2fsprogs
+, libX11, libICE, perl, zip, unzip, gettext, slang}:
 
 stdenv.mkDerivation rec {
-  name = "mc-4.6.1";
+  name = "mc-4.7.5.3";
+  
   src = fetchurl {
-    url = "http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/${name}.tar.gz";
-    sha256 = "0zly25mwdn84s0wqx9mzyqi177mm828716nv1n6a4a5cm8yv0sh8";
+    url = http://www.midnight-commander.org/downloads/mc-4.7.5.3.tar.bz2;
+    sha256 = "1di8fsdg6y98iq3846j145qjk4bf5rgjj2hxnxdbcwfp8p3v8x88";
   };
-  buildInputs = [pkgconfig glib ncurses libX11 libXt
-                 shebangfix perl zip unzip slang gettext e2fsprogs gpm];
-  
-  # Fix the paths to the terminfo files. Otherwise mc has no colors
-  preConfigure = ''
-    sed -i -e "s|/usr/lib/terminfo|${ncurses}/lib/terminfo|" configure
-  '';
-  configureFlags = "--enable-charset";
-  
-  # Stole some patches from LFS which fix some nasty bugs
-  patches = [ ./mc-4.6.1-bash32-1.patch ./mc-4.6.1-debian_fixes-1.patch ];
   
-  # Required to enable the Debian UTF8 fixes
-  CPPFLAGS = "-DUTF8";
-  
-  # The Debian UTF8 patch expects that the documentation is in UTF8 format,
-  # therefore we have to convert them (I stole this also from LFS)
-  
-  postBuildPhase = ''
-    for file in lib/mc.hint{,.es,.it,.nl} doc/{es,it}/mc.hlp.*
-    do
-        iconv -f ISO-8859-1 -t UTF-8 $file > $file.utf8 &&
-        mv $file.utf8 $file
-    done &&
-    for file in lib/mc.hint{.cs,.hu,.pl} doc/{hu,pl}/mc.hlp.*
-    do
-        iconv -f ISO-8859-2 -t UTF-8 $file > $file.utf8 &&
-        mv $file.utf8 $file
-    done &&
-    for file in lib/mc.hint.sr doc/sr/mc.hlp.sr
-    do
-        iconv -f ISO-8859-5 -t UTF-8 $file > $file.utf8 &&
-        mv $file.utf8 $file
-    done &&
-    for file in doc/ru/mc.hlp.ru lib/mc.hint.ru
-    do
-        iconv -f KOI8-R -t UTF-8 $file > $file.utf8 &&
-        mv $file.utf8 $file
-    done &&
+  buildInputs = [ pkgconfig perl glib gpm slang zip unzip file gettext libX11 libICE e2fsprogs ];
 
-    iconv -f KOI8-U -t UTF-8 lib/mc.hint.uk > lib/mc.hint.uk.utf8 &&
-    mv lib/mc.hint.uk.utf8 lib/mc.hint.uk &&
-    iconv -f BIG5 -t UTF-8 lib/mc.hint.zh > lib/mc.hint.zh.utf8 &&
-    mv lib/mc.hint.zh.utf8 lib/mc.hint.zh
-    # foo
-  '';
-  
-  makeFlags = "UNZIP=unzip";
-  postInstall = ''
-    find $out -iname "*.pl" | xargs shebangfix;
-  '';
   meta = {
     description = "File Manager and User Shell for the GNU Project";
-    homepage = http://www.ibiblio.org/mc;
-    maintainers = [ lib.maintainers.sander ];
+    homepage = http://www.midnight-commander.org;
+    license = "GPLv2+";
+    maintainers = [ stdenv.lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/tools/misc/memtest86/default.nix b/pkgs/tools/misc/memtest86/default.nix
index 480a29c63c95..1e744afdf409 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.10";
+  name = "memtest86+-4.20";
   
   src = fetchurl {
-    url = http://www.memtest.org/download/4.10/memtest86+-4.10.tar.gz;
-    sha256 = "0kxa2m7vfcm543wp53fv16sjjf5p12mzdz5rm87mrrr6hw43a6gq";
+    url = http://www.memtest.org/download/4.20/memtest86+-4.20.tar.gz;
+    sha256 = "0dw7kvfxiwqdmhapbz6ds1j9fralbky56hnzj4c6fsqfinbwwc2n";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/misc/myhasktags/default.nix b/pkgs/tools/misc/myhasktags/default.nix
index 686aa804cf02..3d00dfe54f4d 100644
--- a/pkgs/tools/misc/myhasktags/default.nix
+++ b/pkgs/tools/misc/myhasktags/default.nix
@@ -1,4 +1,4 @@
-{fetchurl, stdenv, ghcReal} :
+{fetchurl, stdenv, ghcPlain} :
 
 /* use case:
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
     ensureDir $out/bin
     ghc --make $src -o $out/bin/hasktags-modified
   '';
-  buildInputs = [ ghcReal ];
+  buildInputs = [ ghcPlain ];
 
   meta = {
     description = "my patched version of hasktags. Should be merged into hasktags?";
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 9cfa87f8383c..f9a35b235fc9 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,17 +1,20 @@
 { fetchurl, stdenv, perl }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20101202";
+  name = "parallel-20110822";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "156jnsf9dhmbi7r207fns2vphpnjdrbz5ndkp8m6d8b1p2qfj46i";
+    sha256 = "0ryj97b9w2mzvmnqhkh384s59v62gf0vlyj8qphiy34505x5pznb";
   };
 
   patchPhase =
     '' sed -i "src/parallel" -e's|/usr/bin/perl|${perl}/bin/perl|g'
+    '';
 
-       rm -vf src/sem
+  preBuild =
+    # The `sem' program wants to write to `~/.parallel'.
+    '' export HOME="$PWD"
     '';
 
   buildInputs = [ perl ];
diff --git a/pkgs/tools/misc/parted/2.3.nix b/pkgs/tools/misc/parted/2.3.nix
new file mode 100644
index 000000000000..622753e2303a
--- /dev/null
+++ b/pkgs/tools/misc/parted/2.3.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, devicemapper, libuuid, gettext, readline
+, utillinuxng, xz, enableStatic ? false, hurd ? null }:
+
+stdenv.mkDerivation rec {
+  name = "parted-2.3";
+
+  src = fetchurl {
+    url = "mirror://gnu/parted/${name}.tar.xz";
+    sha256 = "0sabj81nawcjm8ww34lxg65ka8crv3w2ab4crh8ypw5agg681836";
+  };
+
+  buildNativeInputs = [ xz ];
+  buildInputs = [ libuuid ]
+    ++ stdenv.lib.optional (readline != null) readline
+    ++ stdenv.lib.optional (gettext != null) gettext
+    ++ stdenv.lib.optional (devicemapper != null) devicemapper
+    ++ stdenv.lib.optional (hurd != null) hurd;
+
+  configureFlags =
+       (if (readline != null)
+        then [ "--with-readline" ]
+        else [ "--without-readline" ])
+    ++ stdenv.lib.optional (devicemapper == null) "--disable-device-mapper"
+    ++ stdenv.lib.optional enableStatic "--enable-static";
+
+  doCheck = true;
+
+  preCheck =
+    stdenv.lib.optionalString doCheck
+      # The `t0400-loop-clobber-infloop.sh' test wants `mkswap'.
+      "export PATH=\"${utillinuxng}/sbin:$PATH\"";
+
+  meta = {
+    description = "GNU Parted, a tool to create, destroy, resize, check, and copy partitions";
+
+    longDescription = ''
+      GNU Parted is an industrial-strength package for creating, destroying,
+      resizing, checking and copying partitions, and the file systems on
+      them.  This is useful for creating space for new operating systems,
+      reorganising disk usage, copying data on hard disks and disk imaging.
+
+      It contains a library, libparted, and a command-line frontend, parted,
+      which also serves as a sample implementation and script backend.
+    '';
+
+    homepage = http://www.gnu.org/software/parted/;
+    license = "GPLv3+";
+
+    maintainers = [
+      # Add your name here!
+      stdenv.lib.maintainers.ludo
+    ];
+
+    # GNU Parted requires libuuid, which is part of util-linux-ng.
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix
index 622753e2303a..8ceab316be92 100644
--- a/pkgs/tools/misc/parted/default.nix
+++ b/pkgs/tools/misc/parted/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, devicemapper, libuuid, gettext, readline
-, utillinuxng, xz, enableStatic ? false, hurd ? null }:
+, utillinuxng, xz, check, enableStatic ? false, hurd ? null }:
 
 stdenv.mkDerivation rec {
-  name = "parted-2.3";
+  name = "parted-3.0";
 
   src = fetchurl {
     url = "mirror://gnu/parted/${name}.tar.xz";
-    sha256 = "0sabj81nawcjm8ww34lxg65ka8crv3w2ab4crh8ypw5agg681836";
+    sha256 = "054ybvjkj1mbm4mpn1rl12jzhvqg37b0xwwr4ly1zisvzrjhi11a";
   };
 
   buildNativeInputs = [ xz ];
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (readline != null) readline
     ++ stdenv.lib.optional (gettext != null) gettext
     ++ stdenv.lib.optional (devicemapper != null) devicemapper
-    ++ stdenv.lib.optional (hurd != null) hurd;
+    ++ stdenv.lib.optional (hurd != null) hurd
+    ++ stdenv.lib.optional doCheck check;
 
   configureFlags =
        (if (readline != null)
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index b45b1a0aa1fb..46be78965fbd 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt4, kdelibs, kdebase,
+{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt4, kdelibs, kde_baseapps,
   automoc4, phonon, perl }:
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs =
-    [ cmake gettext parted libuuid qt4 kdelibs kdebase automoc4 perl phonon ];
+    [ cmake gettext parted libuuid qt4 kdelibs kde_baseapps automoc4 perl phonon ];
 
   preConfigure = ''
     export VERBOSE=1
diff --git a/pkgs/tools/misc/pinentry/default.nix b/pkgs/tools/misc/pinentry/default.nix
deleted file mode 100644
index 004f3afa9b77..000000000000
--- a/pkgs/tools/misc/pinentry/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib
-, useGtk ? true, gtk ? null
-, useNcurses ? true, ncurses ? null
-, useQt4 ? false, qt4 ? null }:
-
-assert useGtk -> (gtk != null);
-assert useNcurses -> (ncurses != null);
-assert useQt4 -> (qt4 != null);
-
-stdenv.mkDerivation rec {
-  name = "pinentry-0.8.0";
-
-  src = fetchurl {
-    url = "mirror://gnupg/pinentry/${name}.tar.gz";
-    sha256 = "06phs3gbs6gf0z9g28z3jgsw312dhhpdgzrx4hhps53xrbwpyv22";
-  };
-
-  buildInputs = [ glib pkgconfig gtk ncurses ] ++ stdenv.lib.optional useQt4 qt4;
-
-  meta = { 
-    description = "GnuPG's interface to passphrase input";
-
-    longDescription = ''
-      Pinentry provides a console and a GTK+ GUI that allows users to
-      enter a passphrase when `gpg' or `gpg2' is run and needs it.
-    '';
-
-    homepage = http://gnupg.org/aegypten2/;
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index 2e5d7c90dedf..f39ce5eff9b7 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -1,16 +1,18 @@
 { stdenv, fetchurl } :
 
 stdenv.mkDerivation {
-  name = "pv-1.1.4";
+  name = "pv-1.2.0";
 
   src = fetchurl {
-    url = http://pipeviewer.googlecode.com/files/pv-1.1.4.tar.bz2;
-    sha256 = "c8613c240ab4297f6ad346f0047138f551a093c603eeb581d5e83091cad3a559";
+    url = http://pipeviewer.googlecode.com/files/pv-1.2.0.tar.bz2;
+    sha256 = "0rn6rpiw7c16pgkhcslax9p1mxkxkmk6ivc9hjmsis7r69niyag3";
   };
 
   meta = {
     homepage = http://www.ivarch.com/programs/pv;
     description = "Tool for monitoring the progress of data through a pipeline";
     license = "free";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; all;
   };
 }
diff --git a/pkgs/tools/misc/recutils/default.nix b/pkgs/tools/misc/recutils/default.nix
index 47536778f88a..307c60bd6111 100644
--- a/pkgs/tools/misc/recutils/default.nix
+++ b/pkgs/tools/misc/recutils/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, gettext, emacs, curl, check, bc }:
 
 stdenv.mkDerivation rec {
-  name = "recutils-1.0";
+  name = "recutils-1.3";
 
   src = fetchurl {
     url = "mirror://gnu/recutils/${name}.tar.gz";
-    sha256 = "1m8ir31wjybm9x8bv73f330kb2hkmc8lrpwgd5h9avva4x5b7g5d";
+    sha256 = "0ywf939vw4zbpq6dmvw656fhkx8izma99pr1akzh8hs2rc9sp2pr";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/misc/rockbox-utility/default.nix b/pkgs/tools/misc/rockbox-utility/default.nix
new file mode 100644
index 000000000000..d2fa91d3fe80
--- /dev/null
+++ b/pkgs/tools/misc/rockbox-utility/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, libusb, qt4 }:
+
+stdenv.mkDerivation  rec {
+  name = "rockbox-utility-${version}";
+  version = "1.2.8";
+
+  src = fetchurl {
+    url = "http://download.rockbox.org/rbutil/source/rbutil_${version}-src.tar.bz2";
+    sha256 = "1gjwlyrwvzfdhqdwvq1chdnjkcn9lk21ixp92h5y74826j3ahdgs";
+  };
+
+  buildInputs = [ libusb qt4 ];
+
+  preBuild = ''
+    cd rbutil/rbutilqt
+    qmake
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin 
+    cp RockboxUtility $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "open source firmware for mp3 players";
+    homepage = http://www.rockbox.org;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/tools/misc/rrdtool/default.nix b/pkgs/tools/misc/rrdtool/default.nix
index 9a50a4af5517..5270ddad35e7 100644
--- a/pkgs/tools/misc/rrdtool/default.nix
+++ b/pkgs/tools/misc/rrdtool/default.nix
@@ -1,10 +1,10 @@
 { fetchurl, stdenv, gettext, perl, pkgconfig, libxml2, pango, cairo }:
 
 stdenv.mkDerivation {
-  name = "rrdtool-1.3.6";
+  name = "rrdtool-1.4.5";
   src = fetchurl {
-    url = http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.6.tar.gz;
-    sha256 = "e958760cb0d182c53a878cb2ba5c290c252c2c506082c988e5dd3f3301b895a2";
+    url = http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz;
+    sha256 = "07fgn0y4yj7p2vh6a37q273hf98gkfw2sdam5r1ldn1k0m1ayrqj";
   };
   buildInputs = [ gettext perl pkgconfig libxml2 pango cairo ];
 
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index 998737660242..a7a08f291872 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -1,27 +1,40 @@
-{stdenv, fetchurl, udev, intltool, python, pkgconfig, glib, xmlto,
-  makeWrapper, pygobject, pygtk, docbook_xml_dtd_412, docbook_xsl,
-  pythonDBus, libxml2, desktop_file_utils, libusb, cups, pycups,
-  notify }:
+{ stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto
+, makeWrapper, pygobject, pygtk, docbook_xml_dtd_412, docbook_xsl
+, pythonDBus, libxml2, desktop_file_utils, libusb, cups, pycups
+, xz, pythonPackages
+, withGUI ? true
+}:
 
 stdenv.mkDerivation rec {
   name = "${meta.name}-${meta.version}";
 
   src = fetchurl {
-    url = "http://cyberelk.net/tim/data/${meta.name}/1.2/${name}.tar.bz2";
-    sha256 = "16xjvahmdkkix7281gx7ac9zqaxgfb7pjjlgcc6kmw52cifk86ww";
+    url = "http://cyberelk.net/tim/data/${meta.name}/1.3/${name}.tar.xz";
+    sha256 = "1d50rqgpyrzyrxwq3qhafzq9075qm2wxdrh1f1q7whlr0chxi3mw";
   };
-  buildInputs = [ udev intltool python pkgconfig glib xmlto docbook_xml_dtd_412
-    libxml2 docbook_xsl desktop_file_utils libusb cups makeWrapper pygobject
-    pygtk pythonDBus pycups notify ];
 
+  buildInputs =
+    [ xz intltool pkgconfig glib udev libusb cups xmlto
+      libxml2 docbook_xml_dtd_412 docbook_xsl desktop_file_utils
+      pythonPackages.python pythonPackages.wrapPython
+    ];
+
+  pythonPath =
+    [ pythonDBus pycups pygobject ]
+    ++ stdenv.lib.optionals withGUI [ pygtk pythonPackages.notify ];
+    
   configureFlags = "--with-udev-rules";
 
-  postInstall = ''
-    wrapProgram $out/bin/system-config-printer --set PYTHONPATH "$PYTHONPATH:$(toPythonPath $out):$(toPythonPath ${notify})/gtk-2.0"
-  '';
+  postInstall =
+    ''
+      wrapPythonPrograms
+      ( cd $out/share/system-config-printer/troubleshoot
+        mv .__init__.py-wrapped __init__.py
+      )
+    '';
 
   meta = {
     name = "system-config-printer";
-    version = "1.2.4";
+    version = "1.3.4";
   };
 }
diff --git a/pkgs/tools/misc/vfdecrypt/default.nix b/pkgs/tools/misc/vfdecrypt/default.nix
new file mode 100644
index 000000000000..46a841113a17
--- /dev/null
+++ b/pkgs/tools/misc/vfdecrypt/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchgit, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "vfdecrypt";
+
+  src = fetchgit {
+    url = git://github.com/dra1nerdrake/VFDecrypt.git;
+    rev = "4e2fa32816254907e82886b936afcae9859a876c";
+    sha256 = "0b945805f7f60bf48556c2db45c9ab26485fb05acbc6160a563d529b20cb56a3";
+  };
+  buildInputs = [openssl];
+  installPhase = ''
+    ensureDir $out/bin
+    cp vfdecrypt $out/bin
+  '';
+}
diff --git a/pkgs/tools/misc/vorbisgain/default.nix b/pkgs/tools/misc/vorbisgain/default.nix
new file mode 100644
index 000000000000..0c3fb2122933
--- /dev/null
+++ b/pkgs/tools/misc/vorbisgain/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, unzip, libogg, libvorbis }:
+
+stdenv.mkDerivation rec {
+  name = "vorbisgain-0.34";
+
+  src = fetchurl {
+    url = "http://sjeng.org/ftp/vorbis/${name}.zip";
+    sha256 = "1sjxl20ahhjv63b8a99sq9p14vz3lf1gacivkk0x2c11cc9zw4nr";
+  };
+
+  buildInputs = [ unzip libogg libvorbis ];
+  patchPhase = ''
+    chmod -v +x configure
+    sed -e 's/^        /\t/' -i Makefile.*
+    configureFlags="--mandir=$out/share/man"
+    '';
+}
diff --git a/pkgs/tools/misc/xburst-tools/default.nix b/pkgs/tools/misc/xburst-tools/default.nix
index 685307bb0227..63f5470aa9ec 100644
--- a/pkgs/tools/misc/xburst-tools/default.nix
+++ b/pkgs/tools/misc/xburst-tools/default.nix
@@ -2,29 +2,24 @@
 , gccCross ? null }:
 
 let
-  version = "2010-07-29";
+  version = "2011-03-08";
 in
 stdenv.mkDerivation {
   name = "xburst-tools-${version}";
 
   src = fetchgit {
     url = git://projects.qi-hardware.com/xburst-tools.git;
-    rev = "00be212db22643ad602eaf60b30eb943f119e78d";
-    sha256 = "66ea1a81b71bad599d76691f07a986f9bb2ccecf397e8486b661d8baace3460e";
+    rev = "a3a38cabf1e854667d90f49f0b4487e28974a3a6";
+    sha256 = "ac5671708cf9d18de79207530335f6781fa4bedf55288069786f4ecb971c4658";
   };
 
-  prePatch = ''
-    find . -name Makefile* -exec sed -i \
-      -e s/mipsel-openwrt-linux-/mipsel-unknown-linux-/ {} \;
-  '';
-
-  patches = [ ./gcc-4.4.patch ];
-
   preConfigure = ''
     sh autogen.sh
   '';
 
-  configureFlags = if gccCross != null then "--enable-firmware" else "";
+  configureFlags = if gccCross != null then
+    "--enable-firmware CROSS_COMPILE=${gccCross.crossConfig}-"
+    else "";
 
   # Not to strip cross build binaries (this is for the gcc-cross-wrapper)
   dontCrossStrip = true;
diff --git a/pkgs/tools/misc/xburst-tools/gcc-4.4.patch b/pkgs/tools/misc/xburst-tools/gcc-4.4.patch
deleted file mode 100644
index 79b7be3d34fa..000000000000
--- a/pkgs/tools/misc/xburst-tools/gcc-4.4.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/xbboot/host-app/host_main.c b/xbboot/host-app/host_main.c
-index 8835869..0d6fcc0 100644
---- a/xbboot/host-app/host_main.c
-+++ b/xbboot/host-app/host_main.c
-@@ -9,6 +9,7 @@
- //
- 
- #include <stdio.h>
-+#include <stdint.h>
- #include <string.h>
- #include <usb.h>
- #include <time.h>
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
new file mode 100644
index 000000000000..cb2631bd5d84
--- /dev/null
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -0,0 +1,56 @@
+x@{builderDefsPackage
+  , libX11, xproto, libXt, libICE
+  , libSM, libXext
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="xdaliclock";
+    version="2.35";
+    name="${baseName}-${version}";
+    project="${baseName}";
+    url="http://www.jwz.org/${project}/${name}.tar.gz";
+    hash="0iybha2d0wqb4wkpw7l1zi3zhw57kqh3y7p4ja1k0fmvrzqc08g7";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "prepareDirs" "doMakeInstall"];
+
+  prepareDirs = a.fullDepEntry ''
+    ensureDir "$out/bin" "$out/share" "$out/share/man/man1"
+  '' ["minInit" "defEnsureDir"];
+
+  goSrcDir = "cd X11";
+      
+  meta = {
+    description = "A clock application that morphs digits when they are changed";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux ++ freebsd;
+    license = "free";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.jwz.org/xdaliclock/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/aircrack-ng/default.nix b/pkgs/tools/networking/aircrack-ng/default.nix
index a83506efa1c1..394022c2d08e 100644
--- a/pkgs/tools/networking/aircrack-ng/default.nix
+++ b/pkgs/tools/networking/aircrack-ng/default.nix
@@ -1,11 +1,15 @@
-{stdenv, fetchurl, libpcap, openssl, zlib, wirelesstools}:
+{stdenv, fetchsvn, libpcap, openssl, zlib, wirelesstools}:
 
-stdenv.mkDerivation {
-  name = "aircrack-ng-1.0-rc2";
+let
+  rev = "1859";
+in
+stdenv.mkDerivation rec {
+  name = "aircrack-ng-1.1-${rev}";
 
-  src = fetchurl {
-    url = http://download.aircrack-ng.org/aircrack-ng-1.0-rc2.tar.gz;
-    sha256 = "9d52f15f3fca52775ecb9cfc1f0aeb04c3c3bd3101665d5760d395f7d2a87d8b";
+  src = fetchsvn {
+    url = "http://trac.aircrack-ng.org/svn/trunk";
+    inherit rev;
+    sha256 = "6ca98321ef3f14af9c78b2fe25091c4e79e3c28679f240b80f8aeda71b84ab4a";
   };
 
   buildInputs = [libpcap openssl zlib];
diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix
index 5d433fdee391..383a2963ff23 100644
--- a/pkgs/tools/networking/aria2/default.nix
+++ b/pkgs/tools/networking/aria2/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, libxml2, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "aria2-1.9.3";
+  name = "aria2-1.10.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/aria2/stable/${name}/${name}.tar.bz2";
-    sha256 = "04vnvq5f797bbyrrv1kzvnv8h02f4wbhvsl34syi4gygimfrwkrn";
+    sha256 = "1cbcrxwdc6gp4l4zqg2i18zdg5ry5f9r3zj66kx6l5plwfjv9fdc";
   };
 
   buildInputs = [ openssl libxml2 zlib ];
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index 67997c700e99..7fa1fce66a5e 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, nettools, iputils, iproute, makeWrapper, coreutils, gnused }:
 
 stdenv.mkDerivation rec {
-  name = "dhcp-4.1.1-P1";
+  name = "dhcp-4.1.2-P1";
   
   src = fetchurl {
     url = "http://ftp.isc.org/isc/dhcp/${name}.tar.gz";
-    sha256 = "1nk36bk7yiqaj779czvlbxjs6jfn53qw7601171nx5mird806r1g";
+    sha256 = "1kcdsylyx0ai0wlmc6rc6b1qi2fsndqh1pvgvddd3i4hmbhi6vmz";
   };
 
   patches =
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
       # recover when the wlan interface goes down.  Instead just flush
       # all addresses, routes and neighbours of the interface.
       ./flush-if.patch
+
+      # Make sure that the hostname gets set on reboot.  Without this
+      # patch, the hostname doesn't get set properly if the old
+      # hostname (i.e. before reboot) is equal to the new hostname.
+      ./set-hostname.patch
     ];
 
   # Fixes "socket.c:591: error: invalid application of 'sizeof' to
@@ -24,7 +29,7 @@ stdenv.mkDerivation rec {
   # due to an uninitialized variable.
   CFLAGS = "-g -O2 -Wall";
 
-  buildInputs = [makeWrapper];
+  buildInputs = [ makeWrapper ];
 
   postInstall =
     ''
diff --git a/pkgs/tools/networking/dhcp/flush-if.patch b/pkgs/tools/networking/dhcp/flush-if.patch
index a6d914231ee4..ff72248b0abb 100644
--- a/pkgs/tools/networking/dhcp/flush-if.patch
+++ b/pkgs/tools/networking/dhcp/flush-if.patch
@@ -10,9 +10,9 @@ diff --exclude '*~' -rc dhcp-4.1.0p1-orig/client/scripts/linux dhcp-4.1.0p1/clie
 + # Delete the old addresses, routes and ARP information for this
 + # interface.
 + flush_if() {
-+   ${ip} address flush dev $interface
-+   ${ip} route flush dev $interface
-+   ${ip} neighbour flush dev $interface
++   ${ip} -4 address flush dev $interface
++   ${ip} -4 route flush dev $interface
++   ${ip} -4 neighbour flush dev $interface
 + }
 + 
   # Invoke the local dhcp client enter hooks, if they exist.
diff --git a/pkgs/tools/networking/dhcp/set-hostname.patch b/pkgs/tools/networking/dhcp/set-hostname.patch
new file mode 100644
index 000000000000..495a8a124be3
--- /dev/null
+++ b/pkgs/tools/networking/dhcp/set-hostname.patch
@@ -0,0 +1,14 @@
+diff -ru -x '*~' dhcp-4.1.2-P1-orig//client/scripts/linux dhcp-4.1.2-P1//client/scripts/linux
+--- dhcp-4.1.2-P1-orig//client/scripts/linux	2010-09-15 00:49:48.000000000 +0200
++++ dhcp-4.1.2-P1//client/scripts/linux	2011-04-01 16:08:10.984372269 +0200
+@@ -133,9 +133,7 @@
+      [ x$current_hostname = "x(none)" ] || \
+      [ x$current_hostname = xlocalhost ] || \
+      [ x$current_hostname = x$old_host_name ]; then
+-    if [ x$new_host_name != x$old_host_name ]; then
+-      hostname "$new_host_name"
+-    fi
++    hostname "$new_host_name"
+   fi
+     
+   if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index c88ce3522d52..0390c847acb8 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dnsmasq-2.55";
+  name = "dnsmasq-2.57";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.gz";
-    sha256 = "0agrz7lvqdvh7ps173nr5yl00dblv2lpd0x9pm64f03zjzsyqqyg";
+    sha256 = "1bpq1wsc7cs1nqs7abhn96nxmdncdf7c58987f9kdmi246wcgq62";
   };
 
   makeFlags = "DESTDIR= BINDIR=$(out)/bin MANDIR=$(out)/man LOCALEDIR=$(out)/share/locale";
diff --git a/pkgs/tools/networking/dropbear/default.nix b/pkgs/tools/networking/dropbear/default.nix
index 986c9806591a..f42c8f7ebe9b 100644
--- a/pkgs/tools/networking/dropbear/default.nix
+++ b/pkgs/tools/networking/dropbear/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, zlib, enableStatic ? false }:
+{ stdenv, fetchurl, zlib, enableStatic ? false,
+sftpPath ? "/var/run/current-system/sw/libexec/sftp-server" }:
 
 stdenv.mkDerivation rec {
   name = "dropbear-0.52";
@@ -12,6 +13,14 @@ stdenv.mkDerivation rec {
 
   configureFlags = stdenv.lib.optional enableStatic "LDFLAGS=-static";
 
+  CFLAGS = "-DSFTPSERVER_PATH=\\\"${sftpPath}\\\"";
+
+  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
+  ];
+
   buildInputs = [ zlib ];
 
   meta = {
diff --git a/pkgs/tools/networking/dropbear/pass-path.patch b/pkgs/tools/networking/dropbear/pass-path.patch
new file mode 100644
index 000000000000..1e223e0ad64d
--- /dev/null
+++ b/pkgs/tools/networking/dropbear/pass-path.patch
@@ -0,0 +1,31 @@
+diff --git a/svr-chansession.c b/svr-chansession.c
+index 23dad8c..32cac13 100644
+--- a/svr-chansession.c
++++ b/svr-chansession.c
+@@ -823,6 +823,7 @@ static void addchildpid(struct ChanSess *chansess, pid_t pid) {
+ static void execchild(void *user_data) {
+ 	struct ChanSess *chansess = user_data;
+ 	char *usershell = NULL;
++	const char *path = DEFAULT_PATH;
+ 
+     /* with uClinux we'll have vfork()ed, so don't want to overwrite the
+      * hostkey. can't think of a workaround to clear it */
+@@ -835,6 +836,9 @@ static void execchild(void *user_data) {
+ 	reseedrandom();
+ #endif
+ 
++    if (getenv("PATH"))
++        path = getenv("PATH");
++
+ 	/* clear environment */
+ 	/* if we're debugging using valgrind etc, we need to keep the LD_PRELOAD
+ 	 * etc. This is hazardous, so should only be used for debugging. */
+@@ -878,7 +882,7 @@ static void execchild(void *user_data) {
+ 	addnewvar("LOGNAME", ses.authstate.pw_name);
+ 	addnewvar("HOME", ses.authstate.pw_dir);
+ 	addnewvar("SHELL", get_user_shell());
+-	addnewvar("PATH", DEFAULT_PATH);
++	addnewvar("PATH", path);
+ 	if (chansess->term != NULL) {
+ 		addnewvar("TERM", chansess->term);
+ 	}
diff --git a/pkgs/tools/networking/fuppes/default.nix b/pkgs/tools/networking/fuppes/default.nix
new file mode 100644
index 000000000000..711c3516bda2
--- /dev/null
+++ b/pkgs/tools/networking/fuppes/default.nix
@@ -0,0 +1,54 @@
+{stdenv, fetchurl, pkgconfig, pcre, libxml2, sqlite, ffmpeg, imagemagick,
+exiv2, mp4v2, lame, libvorbis, flac, libmad, faad2}:
+
+stdenv.mkDerivation rec {
+  name = "fuppes-0.660";
+  src = fetchurl {
+    url = mirror://sourceforge/project/fuppes/fuppes/SVN-660/fuppes-0.660.tar.gz;
+    sha256 = "1c385b29878927e5f1e55ae2c9ad284849d1522d9517a88e34feb92bd5195173";
+  };
+
+  patches = [
+    ./fuppes-faad-exanpse-backward-symbols-macro.patch
+  ];
+
+  buildInputs = [
+    pkgconfig pcre libxml2 sqlite ffmpeg imagemagick exiv2 mp4v2 lame
+    libvorbis flac libmad faad2
+  ];
+
+  configureFlags = [
+    "--enable-ffmpegthumbnailer"
+    "--enable-magickwand"
+    "--enable-exiv2"
+    "--enable-transcoder-ffmpeg"
+    "--enable-mp4v2"
+    "--enable-lame"
+    "--enable-vorbis"
+    "--enable-flac"
+    "--enable-mad"
+    "--enable-faad"
+  ];
+
+  postFixup = ''
+    patchelf --set-rpath "$(patchelf --print-rpath $out/bin/fuppes):${faad2}/lib" $out/bin/fuppes
+    patchelf --set-rpath "$(patchelf --print-rpath $out/bin/fuppesd):${faad2}/lib" $out/bin/fuppesd
+  '';
+
+  meta = {
+    description = "UPnP A/V Media Server";
+    longDescription = ''
+      FUPPES is a free, multiplatform UPnP A/V Media Server.
+
+      FUPPES supports a wide range of UPnP MediaRenderers as well as
+      on-the-fly transcoding of various audio, video and image formats.
+
+      FUPPES also includes basic DLNA support.
+    '';
+    homepage = http://fuppes.ulrich-voelkel.de/;
+    license = stdenv.lib.licenses.gpl2;
+
+    maintainers = [ stdenv.lib.maintainers.pierron ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch b/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch
new file mode 100644
index 000000000000..c88a6fb4427e
--- /dev/null
+++ b/pkgs/tools/networking/fuppes/fuppes-faad-exanpse-backward-symbols-macro.patch
@@ -0,0 +1,91 @@
+diff -x _inst -x _build -x .svn -ur fuppes-0.660/src/lib/Transcoding/FaadWrapper.cpp fuppes-0.660.new/src/lib/Transcoding/FaadWrapper.cpp
+--- fuppes-0.660/src/lib/Transcoding/FaadWrapper.cpp	2009-11-19 10:16:25.000000000 +0100
++++ fuppes-0.660.new/src/lib/Transcoding/FaadWrapper.cpp	2011-01-30 22:25:34.171263052 +0100
+@@ -329,13 +329,19 @@
+   
+   CloseFile();
+ }
+-  
++
++// These macros are used to convert old function names to new ones based on
++// the #define declared in faad headers.  The two-level macro are used to
++// expanse the macro which are gave to to_str.
++#define to_str_(fun) #fun
++#define to_str(fun) to_str_(fun)
++
+ bool CFaadWrapper::LoadLib()
+ {
+   #ifdef WIN32 
+-  std::string sLibName = "libfaad-0.dll"; 
++  std::string sLibName = "libfaad-2.dll"; 
+   #else   
+-  std::string sLibName = "libfaad.so.0"; 
++  std::string sLibName = "libfaad.so.2"; 
+   #endif 
+    
+   if(!CSharedConfig::Shared()->FaadLibName().empty()) { 
+@@ -350,54 +356,54 @@
+     return false; 
+   }
+  
+-  m_faacDecOpen = (faacDecOpen_t)FuppesGetProcAddress(m_LibHandle, "faacDecOpen"); 
++  m_faacDecOpen = (faacDecOpen_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecOpen)); 
+   if(!m_faacDecOpen) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecOpen'", __FILE__, __LINE__);    
+     return false; 
+   }
+ 
+-  m_faacDecGetErrorMessage = (faacDecGetErrorMessage_t)FuppesGetProcAddress(m_LibHandle, "faacDecGetErrorMessage"); 
++  m_faacDecGetErrorMessage = (faacDecGetErrorMessage_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecGetErrorMessage)); 
+   if(!m_faacDecGetErrorMessage) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecGetErrorMessage'", __FILE__, __LINE__);    
+     return false; 
+   }
+   
+-  m_faacDecGetCurrentConfiguration = (faacDecGetCurrentConfiguration_t)FuppesGetProcAddress(m_LibHandle, "faacDecGetCurrentConfiguration"); 
++  m_faacDecGetCurrentConfiguration = (faacDecGetCurrentConfiguration_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecGetCurrentConfiguration)); 
+   if(!m_faacDecGetCurrentConfiguration) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecGetCurrentConfiguration'", __FILE__, __LINE__);    
+   } 
+ 
+-  m_faacDecSetConfiguration = (faacDecSetConfiguration_t)FuppesGetProcAddress(m_LibHandle, "faacDecSetConfiguration"); 
++  m_faacDecSetConfiguration = (faacDecSetConfiguration_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecSetConfiguration)); 
+   if(!m_faacDecSetConfiguration) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecSetConfiguration'", __FILE__, __LINE__);    
+   } 
+ 
+-  m_faacDecInit = (faacDecInit_t)FuppesGetProcAddress(m_LibHandle, "faacDecInit"); 
++  m_faacDecInit = (faacDecInit_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecInit)); 
+   if(!m_faacDecInit) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecInit'", __FILE__, __LINE__);    
+   } 
+ 
+-  m_faacDecInit2 = (faacDecInit2_t)FuppesGetProcAddress(m_LibHandle, "faacDecInit2"); 
++  m_faacDecInit2 = (faacDecInit2_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecInit2)); 
+   if(!m_faacDecInit2) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecInit2'", __FILE__, __LINE__);    
+     return false; 
+   }
+   
+-  m_faacDecDecode = (faacDecDecode_t)FuppesGetProcAddress(m_LibHandle, "faacDecDecode"); 
++  m_faacDecDecode = (faacDecDecode_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecDecode)); 
+   if(!m_faacDecDecode) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecDecode'", __FILE__, __LINE__);    
+     return false; 
+   } 
+ 
+-  m_faacDecClose = (faacDecClose_t)FuppesGetProcAddress(m_LibHandle, "faacDecClose"); 
++  m_faacDecClose = (faacDecClose_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecClose)); 
+   if(!m_faacDecClose) { 
+     CSharedLog::Shared()->Log(L_EXT, "cannot load symbol 'faacDecClose'", __FILE__, __LINE__);    
+     return false; 
+   } 
+ 
+-  m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, "AudioSpecificConfig"); 
++  m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, to_str(AudioSpecificConfig)); 
+   if(!m_AudioSpecificConfig) {
+-		m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, "faacDecAudioSpecificConfig"); 
++		m_AudioSpecificConfig = (AudioSpecificConfig_t)FuppesGetProcAddress(m_LibHandle, to_str(faacDecAudioSpecificConfig)); 
+ 		if(!m_AudioSpecificConfig) {  
+   	  CSharedLog::Shared()->Log(L_EXT, "cannot load symbol '(faacDec)AudioSpecificConfig'", __FILE__, __LINE__);    
+       return false;
diff --git a/pkgs/tools/networking/getmail/default.nix b/pkgs/tools/networking/getmail/default.nix
index 4e10a2b3be1e..23fe3ad36740 100644
--- a/pkgs/tools/networking/getmail/default.nix
+++ b/pkgs/tools/networking/getmail/default.nix
@@ -1,48 +1,23 @@
-x@{builderDefsPackage
-  , python, makeWrapper
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+{ stdenv, fetchurl, buildPythonPackage, pythonPackages }:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="getmail";
-    version="4.20.0";
-    name="${baseName}-${version}";
-    url="http://pyropus.ca/software/${baseName}/old-versions/${name}.tar.gz";
-    hash="17cpyra61virk1d223w8pdwhv2qzhbwdbnrr1ab1znf4cv9m3knn";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+buildPythonPackage rec {
+  name = "getmail-4.20.0";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://pyropus.ca/software/getmail/old-versions/${name}.tar.gz";
+    sha256 = "17cpyra61virk1d223w8pdwhv2qzhbwdbnrr1ab1znf4cv9m3knn";
   };
 
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+  pythonPath = [ pythonPackages.ssl ];
+
+  doCheck = false;
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["installPythonPackage" "patchShebangs" "wrapBinContentsPython"];
-  patchShebangs = (a.doPatchShebangs "$out/bin");
-      
+  installCommand = "python setup.py install --prefix=\"\$prefix\"";
+  
   meta = {
-    description = "A program for retrieval of mail";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
+    description = "A program for retrieving mail";
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = stdenv.lib.platforms.linux;
   };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://pyropus.ca/software/getmail/";
-    };
-  };
-}) x
-
+}
diff --git a/pkgs/tools/networking/inadyn/default.nix b/pkgs/tools/networking/inadyn/default.nix
new file mode 100644
index 000000000000..ea50eb431f8d
--- /dev/null
+++ b/pkgs/tools/networking/inadyn/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "inadyn-1.96.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/inadyn/${name}.tar.gz";
+    sha256 = "0zyqhq1y3wrns4bxlmbkgs5bl5g7wrvkc7xc4fk50papygyc4q51";
+  };
+
+  meta = {
+    homepage = http://inadyn.sourceforge.net/;
+    description = "Free dynamic DNS client";
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/pkgs/tools/networking/isync/default.nix b/pkgs/tools/networking/isync/default.nix
new file mode 100644
index 000000000000..aca9b47195d3
--- /dev/null
+++ b/pkgs/tools/networking/isync/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, openssl, pkgconfig, db4 }:
+
+stdenv.mkDerivation rec {
+  name = "isync-1.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/isync/isync-1.0.4.tar.gz";
+    sha256 = "1xmgzypl5a3i0fz1ca55vfbs5mv2l9icwf2gk8rvlbwrkn2wid68";
+  };
+
+  patches = [ ./isync-recursice-imap.patch ]; # usefull patch to enable subfolders listing
+  buildInputs = [ openssl pkgconfig db4 ];
+
+  meta = {
+    homepage = http://isync.sourceforge.net/;
+    description = "Free IMAP and MailDir mailbox synchronizer";
+    licenses = [ "GPLv2+" ];
+
+    maintainers = [ stdenv.lib.maintainers.viric ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/isync/isync-recursice-imap.patch b/pkgs/tools/networking/isync/isync-recursice-imap.patch
new file mode 100644
index 000000000000..db12069950fd
--- /dev/null
+++ b/pkgs/tools/networking/isync/isync-recursice-imap.patch
@@ -0,0 +1,114 @@
+diff -rupN ../isync-1.0.4_original/./src/drv_imap.c ./src/drv_imap.c
+--- ../isync-1.0.4_original/./src/drv_imap.c	2007-09-22 01:44:12.000000000 -0700
++++ ./src/drv_imap.c	2009-04-22 15:28:58.000000000 -0700
+@@ -1678,7 +1678,7 @@ imap_list( store_t *gctx, string_list_t 
+ 	int ret;
+ 
+ 	imap->boxes = 0;
+-	if ((ret = imap_exec_b( ctx, 0, "LIST \"\" \"%s%%\"", ctx->prefix )) != DRV_OK)
++	if ((ret = imap_exec_b( ctx, 0, "LIST \"\" \"%s*\"", ctx->prefix )) != DRV_OK)
+ 		return ret;
+ 	*retb = imap->boxes;
+ 	return DRV_OK;
+diff -rupN ../isync-1.0.4_original/./src/drv_maildir.c ./src/drv_maildir.c
+--- ../isync-1.0.4_original/./src/drv_maildir.c	2008-02-23 01:02:21.000000000 -0800
++++ ./src/drv_maildir.c	2009-04-22 15:34:05.000000000 -0700
+@@ -24,6 +24,7 @@
+ 
+ #include "isync.h"
+ 
++#include <assert.h>
+ #include <limits.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -46,6 +47,56 @@
+ #include <db.h>
+ #endif /* USE_DB */
+ 
++static void encode_maildir_box(const char* in, char* out, size_t size)
++{
++	const char* p;
++	char c;
++	size_t out_chars;
++
++	for (p = in, out_chars = 0; (c = *p); ++p, ++out, ++out_chars) {
++		assert(out_chars < size);
++		if (c == '/') {
++			assert(out_chars < size - 1);
++			*(out++) = '~';
++			*out = '-';
++			++out_chars;
++		}
++		else if (c == '~') {
++			assert(out_chars < size - 1);
++			*(out++) = '~';
++			*out = '~';
++			++out_chars;
++		}
++		else {
++			*out = c;
++		}
++	}
++	assert(out_chars < size);
++	*out = 0;
++}
++
++static void decode_maildir_box(const char* in, char* out, size_t size)
++{
++	const char* p;
++	char c;
++	size_t out_chars;
++
++	for (p = in, out_chars = 0; (c = *p); ++p, ++out, ++out_chars) {
++		assert(out_chars < size);
++		if (c == '~') {
++			assert(out_chars < size - 1);
++			c = *(++p);
++			*out = (c == '-' ? '/' : '~');
++			++out_chars;
++		}
++		else {
++			*out = c;
++		}
++	}
++	assert(out_chars < size);
++	*out = 0;
++}
++
+ typedef struct maildir_store_conf {
+ 	store_conf_t gen;
+ 	char *inbox;
+@@ -164,14 +215,17 @@ maildir_list( store_t *gctx, string_list
+ 		const char *inbox = ((maildir_store_conf_t *)gctx->conf)->inbox;
+ 		int bl;
+ 		struct stat st;
+-		char buf[PATH_MAX];
++ 		char buf[PATH_MAX], box[PATH_MAX];
+ 
+ 		if (*de->d_name == '.')
+ 			continue;
+ 		bl = nfsnprintf( buf, sizeof(buf), "%s%s/cur", gctx->conf->path, de->d_name );
+ 		if (stat( buf, &st ) || !S_ISDIR(st.st_mode))
+ 			continue;
+-		add_string_list( retb, !memcmp( buf, inbox, bl - 4 ) && !inbox[bl - 4] ? "INBOX" : de->d_name );
++ 
++ 		decode_maildir_box(de->d_name, box, PATH_MAX);
++  		add_string_list( retb,
++ 		                 !memcmp( buf, inbox, bl - 4 ) && !inbox[bl - 4] ? "INBOX" : box );
+ 	}
+ 	closedir (dir);
+ 
+@@ -717,8 +771,11 @@ maildir_prepare( store_t *gctx, int opts
+ #endif /* USE_DB */
+ 	if (!strcmp( gctx->name, "INBOX" ))
+ 		gctx->path = nfstrdup( ((maildir_store_conf_t *)gctx->conf)->inbox );
+-	else
+-		nfasprintf( &gctx->path, "%s%s", gctx->conf->path, gctx->name );
++ 	else {
++ 		char box[_POSIX_PATH_MAX];
++ 		encode_maildir_box(gctx->name, box, _POSIX_PATH_MAX);
++ 		nfasprintf( &gctx->path, "%s%s", gctx->conf->path, box );
++ 	}
+ 	if (opts & OPEN_SETFLAGS)
+ 		opts |= OPEN_OLD;
+ 	if (opts & OPEN_EXPUNGE)
diff --git a/pkgs/tools/networking/knetworkmanager/live.nix b/pkgs/tools/networking/knetworkmanager/live.nix
new file mode 100644
index 000000000000..5c812e196392
--- /dev/null
+++ b/pkgs/tools/networking/knetworkmanager/live.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchgit, fetchgitrevision, cmake, kdelibs, automoc4, networkmanager, kdebase_workspace
+, repository ? "git://anongit.kde.org/networkmanagement"
+, branch ? "heads/master"
+, rev ? fetchgitrevision repository branch
+, src ? fetchgit {
+    url = repository;
+    rev = rev;
+  }
+}:
+
+stdenv.mkDerivation rec {
+  name = "knetwork-manager-${version}";
+  version = "live";
+
+  inherit src;  
+
+  buildInputs = [
+    cmake kdelibs automoc4 networkmanager kdebase_workspace
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://kde.org;
+    description = "KDE systray and plasma applet for network management.";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [  phreedom ];
+  };
+}
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index c0e4f61b7027..1b651cab996c 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -1,11 +1,12 @@
-{stdenv, fetchurl, readline}:
-stdenv.mkDerivation {
-  name = "lftp-3.5.14";
+{stdenv, fetchurl, gnutls, libtasn1, pkgconfig, readline, zlib, xz}:
+
+stdenv.mkDerivation rec {
+  name = "lftp-4.3.1";
 
   src = fetchurl {
-    url = ftp://ftp.cs.tu-berlin.de/pub/net/ftp/lftp/lftp-3.5.14.tar.bz2;
-    sha256 = "0hzrbhpgvndpd4wd08whfv1iqzbcijs1nxz40rhn651xabhiasrv";
+    url = "ftp://ftp.cs.tu-berlin.de/pub/net/ftp/lftp/${name}.tar.xz";
+    sha256 = "0v3591fknmimarzk5icm0qxdcfzfckwi2drh165vsiggmj590iyx";
   };
 
-  buildInputs = [readline];
+  buildInputs = [gnutls libtasn1 pkgconfig readline zlib xz];
 }
diff --git a/pkgs/tools/networking/miniupnpc/default.nix b/pkgs/tools/networking/miniupnpc/default.nix
new file mode 100644
index 000000000000..19ef811713a5
--- /dev/null
+++ b/pkgs/tools/networking/miniupnpc/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "miniupnpc-1.5";
+
+  src = fetchurl {
+    url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
+    sha256 = "0mx950lfxcjpsfny8qcjx6phb74v4zw1rlj99xicd4icx5j0w3s4";
+  };
+
+  installFlags = "PREFIX=$(out) INSTALLPREFIX=$(out)";
+
+  postInstall =
+    ''
+      ensureDir $out/share/man/man3
+      cp man3/miniupnpc.3 $out/share/man/man3/
+    '';
+
+  meta = {
+    homepage = http://miniupnp.free.fr/;
+    description = "A client that implements the UPnP Internet Gateway Device (IGD) specification";
+  };
+}
diff --git a/pkgs/tools/networking/mtr/default.nix b/pkgs/tools/networking/mtr/default.nix
new file mode 100644
index 000000000000..d4cfaa4ce9bd
--- /dev/null
+++ b/pkgs/tools/networking/mtr/default.nix
@@ -0,0 +1,47 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="mtr";
+    version="0.80";
+    name="${baseName}-${version}";
+    url="ftp://ftp.bitwizard.nl/${baseName}/${name}.tar.gz";
+    hash="1h0fzxy5cwml3p2nq749sq8mk2dsvm4qb1ah7a9hbf7kzabxvfvn";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A network diagnostics tool";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "ftp://ftp.bitwizard.nl/mtr/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index cbdaa39b16f1..0e795ed739e2 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -1,21 +1,32 @@
-{stdenv, fetchurl, pkgconfig, glib}:
+{ stdenv, fetchurl, pkgconfig, glib }:
 
-stdenv.mkDerivation rec {
-  name = "nbd-2.9.18";
+let
+  name = "nbd-2.9.23";
+in
+stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/nbd/${name}.tar.bz2";
-    sha256 = "afaaae330625b61ad67ba988721ddc4ad54bfc7e501daeb45f721c205bfb00f3";
+    sha256 = "0ab44fe9e80c3f41bb1025ecda351a874affd46bf56ba4033ea03700c3b83803";
   };
 
   buildInputs = [pkgconfig glib];
   postInstall = ''install -D -m 444 README "$out/share/doc/nbd/README"'';
 
+  # The test suite doesn't succeed on Hydra (NixOS), because it assumes
+  # that certain global configuration files available.
+  doCheck = false;
+
+  # Glib calls `clock_gettime', which is in librt.  Since we're using
+  # a static Glib, we need to pass it explicitly.
+  NIX_LDFLAGS = "-lrt";
+
   meta = {
     homepage = "http://nbd.sourceforge.net";
     description = "map arbitrary files as block devices over the network";
     license = "GPLv2";
-    maintainers = [ stdenv.lib.maintainers.simons  ];
+    maintainers = [ stdenv.lib.maintainers.simons ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/ndisc6/default.nix b/pkgs/tools/networking/ndisc6/default.nix
new file mode 100644
index 000000000000..1d66d30aabaa
--- /dev/null
+++ b/pkgs/tools/networking/ndisc6/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  name = "ndisc6-1.0.1";
+
+  src = fetchurl {
+    url = "http://www.remlab.net/files/ndisc6/archive/${name}.tar.bz2";
+    sha256 = "1pggc9x3zki1sv08rs8x4fm7pmd3sn1nwkan3szax19xg049xbqx";
+  };
+
+  buildInputs = [ perl ];
+
+  configureFlags = "--localstatedir=/var";
+
+  installFlags = "localstatedir=$(TMPDIR)";
+
+  meta = {
+    homepage = http://www.remlab.net/ndisc6/;
+    description = "A small collection of useful tools for IPv6 networking";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
new file mode 100644
index 000000000000..515e30673653
--- /dev/null
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk, glib, libglade
+, networkmanager, GConf, libnotify, gnome_keyring, dbus_glib
+, polkit}:
+stdenv.mkDerivation rec {
+
+  name = "network-manager-applet-${version}";
+  version = "0.8.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/network-manager-applet/0.8/network-manager-applet-${version}.tar.bz2";
+    sha256 = "0rn3mr0v8i3bkfhpvx6bbyhv1i6j6s120pkayq2318bg5ivbk12a";
+  };
+
+  buildInputs = [ intltool pkgconfig gtk glib libglade networkmanager GConf libnotify
+                  gnome_keyring dbus_glib polkit];
+
+  meta = with stdenv.lib; {
+    homepage = http://projects.gnome.org/NetworkManager/;
+    description = "NetworkManager control appler for GNOME.";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
new file mode 100644
index 000000000000..edfc9f547f42
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, intltool, wirelesstools, pkgconfig, dbus, dbus_glib
+, udev, libnl1, libuuid, polkit, gnutls, ppp, dhcp, iptables, libtasn1
+, libgcrypt }:
+stdenv.mkDerivation rec {
+
+  name = "network-manager-${version}";
+  version = "0.8.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/NetworkManager/0.8/NetworkManager-${version}.tar.bz2";
+    sha256 = "1yhr1zc9p2dakvg6m33jgkf09r6f6bzly7kqqjcpim4r66z6y4nw";
+  };
+
+  configureFlags = [ "--with-distro=gentoo" "--with-dhclient=${dhcp}/sbin"
+    "--with-dhcpcd=${dhcp}/sbin" "--with-iptables=${iptables}/sbin/iptables"
+    "--with-crypto=gnutls" "--disable-more-warnings"
+    "--with-udev-dir=\${out}/lib/udev" ];
+
+  buildInputs = [ intltool wirelesstools pkgconfig dbus dbus_glib udev libnl1 libuuid polkit gnutls ppp libtasn1 libgcrypt ];
+
+  meta = with stdenv.lib; {
+    homepage = http://projects.gnome.org/NetworkManager/;
+    description = "Network configuration and management in an easy way. Desktop environment independent.";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/nzbget/default.nix b/pkgs/tools/networking/nzbget/default.nix
new file mode 100644
index 000000000000..8a2e8eeb72fa
--- /dev/null
+++ b/pkgs/tools/networking/nzbget/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, ncurses, libsigcxx, libpar2
+, gnutls, libgcrypt }:
+
+stdenv.mkDerivation rec {
+  name = "nzbget-0.7.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/nzbget/${name}.tar.gz";
+    sha256 = "07kp2rwxzgcr7zrs65hwkva7l3s4czq4vxwmkbhv85k8kz6bp65p";
+  };
+
+  buildInputs = [ pkgconfig libxml2 ncurses libsigcxx libpar2 gnutls libgcrypt ];
+
+  postInstall =
+    ''
+      mkdir -p $out/etc
+      cp nzbget.conf.example $out/etc/
+    '';
+
+  meta = {
+    homepage = http://nzbget.sourceforge.net/;
+    license = "GPLv2+";
+    description = "A command line tool for downloading files from news servers";
+  };
+}
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index bb123d87bdf4..8f0dd8e9a6cb 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -1,4 +1,4 @@
-{fetchurl, buildPythonPackage}:
+{ fetchurl, buildPythonPackage, ssl }:
 
 buildPythonPackage {
   name = "offlineimap-6.2.0.2";
@@ -8,10 +8,9 @@ buildPythonPackage {
     sha256 = "1w69qv1dm37m53k8cd068lk5z3qjlscnjxr397gs8kdsfds67v7c";
   };
 
-  doCheck = false;
+  propagatedBuildInputs = [ ssl ];
 
-  preConfigure = "set -x";
-  buildInputs = [ ];
+  doCheck = false;
 
   meta = {
     description = "IMAP to local files bridge";
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 9c3d63d1f5ad..69243b4f68e9 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -6,33 +6,38 @@
 let
 
   hpnSrc = fetchurl {
-    url = http://www.psc.edu/networking/projects/hpn-ssh/openssh-5.3p1-hpn13v7.diff.gz;
-    sha256 = "1kqir6v14z77l0wn9j4jzdqsip5s1ky34w749psvbshbp9dzizn8";
+    url = http://www.psc.edu/networking/projects/hpn-ssh/openssh-5.8p1-hpn13v11.diff.gz;
+    sha256 = "1xwx2m2sihpy57mwdnc9km3c72hxfdjyp5mmr1vcx2c8kp901db2";
   };
 
 in
 
 stdenv.mkDerivation rec {
-  name = "openssh-5.6p1";
+  name = "openssh-5.8p2";
 
   src = fetchurl {
     url = "ftp://ftp.nl.uu.net/pub/OpenBSD/OpenSSH/portable/${name}.tar.gz";
-    sha256 = "0avc7jgp8i2jlp7b8q8g4nyil56v5fp09c1v54dc4ql15cxzb2jk";
+    sha1 = "64798328d310e4f06c9f01228107520adbc8b3e5";
   };
 
   prePatch = stdenv.lib.optionalString hpnSupport
     ''
       gunzip -c ${hpnSrc} | patch -p1
+      export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
     '';
     
   patches = [ ./locale_archive.patch ];
 
-  buildInputs = [ zlib openssl perl libedit pkgconfig pam ];
+  buildNativeInptus = [ perl ];
+  buildInputs = [ zlib openssl libedit pkgconfig pam ];
 
+  # I set --disable-strip because later we strip anyway. And it fails to strip
+  # properly when cross building.
   configureFlags =
     ''
       --with-mantype=man
       --with-libedit=yes
+      --disable-strip
       ${if pam != null then "--with-pam" else "--without-pam"}
       ${if etcDir != null then "--sysconfdir=${etcDir}" else ""}
     '';
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 94629861b58e..b9285a8c2195 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, iproute, lzo, openssl, nettools}:
 
 stdenv.mkDerivation rec {
-  name = "openvpn-2.1.4";
+  name = "openvpn-2.2.0";
 
   src = fetchurl {
     url = "http://swupdate.openvpn.net/community/releases/${name}.tar.gz";
-    sha256 = "1x9aymbk580zp35b7dhhkn29a4chhxnzrxjfmp948bgqvvjpizk7";
+    sha256 = "0rr59b3ybqr2j5jxl2fdzmm5qbh0hvwi03xfaha6s7k4l6mymsvi";
   };
 
   buildInputs = [ iproute lzo openssl ];
diff --git a/pkgs/tools/networking/p2p/bit-tornado/default.nix b/pkgs/tools/networking/p2p/bit-tornado/default.nix
index 19752082b0e7..98c53fdc3a7f 100644
--- a/pkgs/tools/networking/p2p/bit-tornado/default.nix
+++ b/pkgs/tools/networking/p2p/bit-tornado/default.nix
@@ -10,17 +10,12 @@ stdenv.mkDerivation {
   buildInputs = [python];
 
   buildPhase = " ";
-  installPhase = "python setup.py install --prefix=$out ;"+
-	" echo 'export PYTHONPATH=$PYTHONPATH:'$out'/lib/python2.4/site-packages:"+
-	wxPython26+"/lib/python2.4/site-packages:"+
-	wxPython26+"/lib/python2.6/site-packages:"+
-	"'$out'/lib/python2.5/site-packages:"+
-	"'$out'/lib/python2.6/site-packages:"+
-	wxPython26+"/lib/python2.4/site-packages/wx-2.6-gtk2-unicode:"+
-	wxPython26+"/lib/python2.6/site-packages/wx-2.6-gtk2-unicode:"+
-	wxPython26+"/lib/python2.5/site-packages/wx-2.6-gtk2-unicode; "+
-	"python `which btdownloadgui.py` --ipv6_enabled 1 --ipv6_binds_v4 0 \"$@\";' >"+
-	"$out/bin/bittornado ; chmod a+rx $out/bin/bittornado;";
+  installPhase = ''
+    python setup.py install --prefix=$out ;
+    echo 'export PYTHONPATH=$PYTHONPATH:'$out'/lib/${python.libPrefix}/site-packages:${wxPython26}/lib/${python.libPrefix}/site-packages:${wxPython26}/lib/${python.libPrefix}/site-packages/wx-2.6-gtk2-unicode
+    python `which btdownloadgui.py` --ipv6_enabled 1 --ipv6_binds_v4 0 "$@";' > $out/bin/bittornado ; 
+    chmod a+rx $out/bin/bittornado;
+  '';
 
   meta = {
     description = "Bittorrent client with IPv6 support.";
diff --git a/pkgs/tools/networking/p2p/libtorrent/default.nix b/pkgs/tools/networking/p2p/libtorrent/default.nix
index b1456c0666e1..76aedf1c0ef9 100644
--- a/pkgs/tools/networking/p2p/libtorrent/default.nix
+++ b/pkgs/tools/networking/p2p/libtorrent/default.nix
@@ -1,19 +1,23 @@
 { stdenv, fetchurl, pkgconfig, openssl, libsigcxx }:
 
-stdenv.mkDerivation rec {
-  pname = "libtorrent";
-  version = "0.12.6";
+let
+  version = "0.12.9";
+in
+stdenv.mkDerivation {
+  name = "libtorrent-${version}";
 
-  name = "${pname}-${version}";
-  
   src = fetchurl {
-    url = "http://libtorrent.rakshasa.no/downloads/${name}.tar.gz";
-    sha256 = "0abisz3jgfv4zmyzbsknzvz9hwakxxpdgfl33qk0aslnchqz60kv";
+    url = "http://libtorrent.rakshasa.no/downloads/libtorrent-${version}.tar.gz";
+    sha256 = "0r5gjh2kc6fdimh5xxg7qsx2390cxw4fz6srgr20y1sxsj6rxp0m";
   };
 
   buildInputs = [ pkgconfig openssl libsigcxx ];
-  
+
   meta = {
+    homepage = "http://libtorrent.rakshasa.no/";
     description = "A BitTorrent library written in C++ for *nix, with a focus on high performance and good code";
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/tools/networking/p2p/rtorrent/default.nix b/pkgs/tools/networking/p2p/rtorrent/default.nix
index eee5b5acbaae..b45542a6358d 100644
--- a/pkgs/tools/networking/p2p/rtorrent/default.nix
+++ b/pkgs/tools/networking/p2p/rtorrent/default.nix
@@ -1,20 +1,24 @@
 { stdenv, fetchurl, libtorrent, ncurses, pkgconfig, libsigcxx, curl
 , zlib, openssl }:
 
-stdenv.mkDerivation rec {
-  pname = "rtorrent";
-  version = "0.8.6";
+let
+  version = "0.8.9";
+in
+stdenv.mkDerivation {
+  name = "rtorrent-${version}";
 
-  name = "${pname}-${version}";
-  
   src = fetchurl {
-    url = "http://libtorrent.rakshasa.no/downloads/${name}.tar.gz";
-    sha256 = "1nrj1cgjhscf40zhp70m4p6gq96rqg815dn43yyjl5i42n7cd5lc";
+    url = "http://libtorrent.rakshasa.no/downloads/rtorrent-${version}.tar.gz";
+    sha256 = "cca70eb36a0c176bbd6fdb3afe2bc9f163fa4c9377fc33bc29689dec60cf6d84";
   };
 
   buildInputs = [ libtorrent ncurses pkgconfig libsigcxx curl zlib openssl ];
-  
+
   meta = {
+    homepage = "http://libtorrent.rakshasa.no/";
     description = "An ncurses client for libtorrent, ideal for use with screen or dtach";
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/tools/networking/p2p/seeks/default.nix b/pkgs/tools/networking/p2p/seeks/default.nix
index 50b833059389..1c6c59acd9fe 100644
--- a/pkgs/tools/networking/p2p/seeks/default.nix
+++ b/pkgs/tools/networking/p2p/seeks/default.nix
@@ -1,18 +1,18 @@
 { fetchurl, stdenv, zlib, docbook2x, pcre, curl, libxml2, libevent, perl
-, pkgconfig, protobuf, tokyocabinet }:
+, pkgconfig, protobuf, tokyocabinet, opencv }:
 
-let version = "0.3.0"; in
+let version = "0.3.3"; in
 stdenv.mkDerivation {
   name = "seeks-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/seeks/solo/seeks-${version}.tar.gz";
-    sha256 = "07gkf7666bx5fk3zk0s47fj659czlyk3ag9bihkl5mdjfikb6k46";
+    sha256 = "1zsl6ixmkvjhy9r2cs22g4q31gg5fkhayvws5jra7jfgmzbrll5c";
   };
 
   buildInputs =
     [ zlib docbook2x pcre curl libxml2 libevent perl pkgconfig
-      protobuf tokyocabinet
+      protobuf tokyocabinet opencv
     ];
 
   configureFlags =
@@ -22,6 +22,9 @@ stdenv.mkDerivation {
       "--with-libevent=${libevent}"
     ];
 
+  # FIXME: Test suite needs <https://code.google.com/p/googletest/>.
+  doCheck = false;
+
   meta = {
     description = "Seeks, a social web search engine";
 
diff --git a/pkgs/tools/networking/pdsh/default.nix b/pkgs/tools/networking/pdsh/default.nix
index 9ab03a5ebc50..07dfd5c30a71 100644
--- a/pkgs/tools/networking/pdsh/default.nix
+++ b/pkgs/tools/networking/pdsh/default.nix
@@ -1,10 +1,14 @@
 {stdenv, fetchurl, perl, readline, rsh, ssh, pam}:
 
-stdenv.mkDerivation rec {
-  name = "pdsh-2.22";
+let
+  name = "pdsh-2.26";
+in
+stdenv.mkDerivation {
+  inherit name;
+
   src = fetchurl {
-    url = "mirror://sourceforge/pdsh/${name}.tar.bz2";
-    sha256 = "1b3c5dbaa8nhw2a5h89khs501m6ywg3zfzv7zahgsvjc8zcnfg8q";
+    url = "http://pdsh.googlecode.com/files/${name}.tar.bz2";
+    sha256 = "ada2f35509064bf9cd0fd5ca39a351108cdd6f5155b05f39f1711a271298469a";
   };
 
   buildInputs = [perl readline ssh pam];
@@ -18,27 +22,19 @@ stdenv.mkDerivation rec {
     configureFlagsArray=(
       "--infodir=$out/share/info"
       "--mandir=$out/share/man"
-      "--with-machines=$out/etc/machines"
+      "--with-machines=/etc/pdsh/machines"
       ${if readline == null then "--without-readline" else "--with-readline"}
       ${if ssh == null then "--without-ssh" else "--with-ssh"}
       ${if pam == null then "--without-pam" else "--with-pam"}
       ${if rsh == false then "--without-rsh" else "--with-rsh"}
       "--with-dshgroups"
       "--with-xcpu"
-      "--without-genders"
-      "--without-mqshell"
-      "--without-mrsh"
-      "--without-netgroup"
-      "--without-nodeattr"
-      "--without-nodeupdown"
-      "--without-qshell"
-      "--without-slurm"
       "--disable-debug"
     )
   '';
 
   meta = {
-    homepage = "https://computing.llnl.gov/linux/pdsh.html";
+    homepage = "http://code.google.com/p/pdsh/";
     description = "A high-performance, parallel remote shell utility.";
     license = "GPLv2";
 
diff --git a/pkgs/tools/networking/radvd/default.nix b/pkgs/tools/networking/radvd/default.nix
new file mode 100644
index 000000000000..31351436d943
--- /dev/null
+++ b/pkgs/tools/networking/radvd/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, bison, flex }:
+
+stdenv.mkDerivation rec {
+  name = "radvd-1.7";
+  
+  src = fetchurl {
+    url = "http://www.litech.org/radvd/dist/${name}.tar.gz";
+    sha256 = "04rlz5fhparridjm32wcq9h1s3vxyiac7d3l6cvfgrlxixikgrzq";
+  };
+
+  buildInputs = [ bison flex ];
+
+  meta.homepage = http://www.litech.org/radvd/;
+  meta.description = "IPv6 Router Advertisement Daemon";
+}
diff --git a/pkgs/tools/networking/s3cmd/default.nix b/pkgs/tools/networking/s3cmd/default.nix
new file mode 100644
index 000000000000..4b12ce4c5986
--- /dev/null
+++ b/pkgs/tools/networking/s3cmd/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name = "s3cmd-1.0.1";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/s3tools/${name}.tar.gz";
+    sha256 = "1kmxhilwix5plv3qb49as6jknll3pq5abw948h28jisskkm2cs6p";
+  };
+
+  buildInputs = [ pythonPackages.python pythonPackages.wrapPython ];
+
+  pythonPath = [ pythonPackages.ssl ];
+  
+  installPhase =
+    ''
+      python setup.py install --prefix=$out
+      wrapPythonPrograms
+    '';
+
+  meta = {
+    homepage = http://s3tools.org/;
+    description = "A command-line tool to manipulate Amazon S3 buckets";
+  };
+}
diff --git a/pkgs/tools/networking/siege/default.nix b/pkgs/tools/networking/siege/default.nix
new file mode 100644
index 000000000000..bb588f365999
--- /dev/null
+++ b/pkgs/tools/networking/siege/default.nix
@@ -0,0 +1,51 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="siege";
+    version="2.70";
+    name="${baseName}-${version}";
+    url="ftp://ftp.joedog.org/pub/siege/${name}.tar.gz";
+    hash="14fxfmfsqwyahc91w4vn3n8hvclf78n4k1xllqsrpvjb5asvrd1w";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "createDirs" "doMakeInstall"];
+
+  createDirs = a.fullDepEntry ''
+    ensureDir "$out/"{bin,lib,share/man,etc}
+  '' ["defEnsureDir"];
+
+  meta = {
+    description = "HTTP load tester";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.joedog.org/index/siege-home";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/ssmtp/default.nix b/pkgs/tools/networking/ssmtp/default.nix
index bdfcd3a1729c..cce44325316d 100644
--- a/pkgs/tools/networking/ssmtp/default.nix
+++ b/pkgs/tools/networking/ssmtp/default.nix
@@ -3,29 +3,27 @@
 assert tlsSupport -> openssl != null;
 
 stdenv.mkDerivation {
-  name = "ssmtp-2.61-12";
+  name = "ssmtp-2.64";
+  
   src = fetchurl {
-    url = http://ftp.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.61.orig.tar.gz;
-    sha256 = "2151ad18cb73f9a254f796dde2b48be7318b45410b59fedbb258db5a41044fb5";
+    url = http://ftp.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.64.orig.tar.bz2;
+    sha256 = "0dps8s87ag4g3jr6dk88hs9zl46h3790marc5c2qw7l71k4pvhr2";
   };
-  patches = [
-    (fetchurl {
-      url = http://ftp.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.61-12.diff.gz;
-      sha256 = "2eb5b2af76d220f14e5133ec4078bab531209fb2f9f8f4e780a0ab8de4818d39";
-     })
-  ];
-  configureFlags = "${if tlsSupport then "--enable-ssl" else ""}";
-  postConfigure = "
-    sed -e '/INSTALLED_CONFIGURATION_FILE/d' \\
-        -e 's|\\(DSSMTPCONFDIR.*\\).(.*)\\(.*$\\)|\\1/etc/ssmtp\\2|' \\
-        -e 's|\\(DCONFIGURATION_FILE.*\\).(.*)\\(.*$\\)|\\1/etc/ssmtp/ssmtp.conf\\2|' \\
-        -e 's|\\(DREVALIASES_FILE.*\\).(.*)\\(.*$\\)|\\1/etc/ssmtp/revaliases\\2|' \\
-        -e \"s| /lib| $out/lib|\" -i Makefile
-    substituteInPlace ssmtp.c --replace gnutls/ openssl/ --replace openssl.h ssl.h
-    substituteInPlace Makefile --replace /usr/lib/libgnutls-openssl.so -lssl
-  ";
-  preInstall = "ensureDir $out/lib";
+
+  configureFlags = "--sysconfdir=/etc ${if tlsSupport then "--enable-ssl" else ""}";
+
+  postConfigure =
+    ''
+      # Don't run the script that interactively generates a config file.
+      # Also don't install the broken, cyclic symlink /lib/sendmail.
+      sed -e '/INSTALLED_CONFIGURATION_FILE/d' \
+          -e 's|/lib/sendmail|$(TMPDIR)/sendmail|' \
+          -i Makefile
+    '';
+
+  installFlags = "etcdir=$(out)/etc";
+
   installTargets = [ "install" "install-sendmail" ];
-  postInstall = "install ssmtp.conf $out/etc/ssmtp ";
+  
   buildInputs = stdenv.lib.optional tlsSupport openssl;
 }
diff --git a/pkgs/tools/networking/vde2/default.nix b/pkgs/tools/networking/vde2/default.nix
new file mode 100644
index 000000000000..3bf2b05dd56c
--- /dev/null
+++ b/pkgs/tools/networking/vde2/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, openssl, libpcap }:
+
+stdenv.mkDerivation rec {
+  name = "vde2-2.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/vde/vde2/2.3.1/${name}.tar.gz";
+    sha256 = "1vbrds8k1cn1fgvpkg2ck2227l5yy2f0qxk44sg3vymq0aiw8y37";
+  };
+
+  buildInputs = [ openssl libpcap ];
+
+  meta = {
+    homepage = http://vde.sourceforge.net/;
+    description = "Virtual Distributed Ethernet, an Ethernet compliant virtual network";
+  };
+}
diff --git a/pkgs/tools/networking/vlan/default.nix b/pkgs/tools/networking/vlan/default.nix
new file mode 100644
index 000000000000..221d0f176428
--- /dev/null
+++ b/pkgs/tools/networking/vlan/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "vlan-1.9";
+
+  src = fetchurl {
+    url = mirror://gentoo/distfiles/vlan.1.9.tar.gz;
+    sha256 = "1jjc5f26hj7bk8nkjxsa8znfxcf8pgry2ipnwmj2fr6ky0dhm3rv";
+  };
+
+  preBuild =
+    ''
+      # Ouch, the tarball contains pre-compiled binaries.
+      make clean
+    '';
+
+  installPhase =
+    ''
+      mkdir -p $out/sbin
+      cp vconfig $out/sbin/
+      
+      mkdir -p $out/share/man/man8
+      cp vconfig.8 $out/share/man/man8/
+    '';
+
+  meta = { 
+    description = "User mode programs to enable VLANs on Ethernet devices";
+  };
+}
diff --git a/pkgs/tools/networking/wakelan/default.nix b/pkgs/tools/networking/wakelan/default.nix
new file mode 100644
index 000000000000..6cc18ec8678f
--- /dev/null
+++ b/pkgs/tools/networking/wakelan/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "wakelan-1.1";
+
+  src = fetchurl {
+    url = "mirror://metalab/system/network/misc/${name}.tar.gz";
+    sha256 = "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x";
+  };
+
+  preInstall = ''
+    ensureDir $out/man/man1 $out/bin
+  '';
+
+  meta = {
+    description = "Send a wake-on-lan packet";
+
+    longDescription =
+      '' WakeLan sends a properly formatted UDP packet across the
+         network which will cause a wake-on-lan enabled computer to
+         power on.
+      '';
+
+    license = "GPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.viric ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
new file mode 100644
index 000000000000..13c5a5d9260d
--- /dev/null
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -0,0 +1,48 @@
+x@{builderDefsPackage
+  , ncurses
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="wavemon";
+    version="0.7.2";
+    name="${baseName}-${version}";
+    url="http://eden-feed.erg.abdn.ac.uk/wavemon/stable-releases/${name}.tar.bz2";
+    hash="1w1nq082mpjkcj7q6qs80104vki9kddwqv1wch6nmwwh0l72dgma";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "WiFi state monitor";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://eden-feed.erg.abdn.ac.uk/wavemon/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/wicd/default.nix b/pkgs/tools/networking/wicd/default.nix
index 70cc4a3b46cf..19f30713a9fe 100644
--- a/pkgs/tools/networking/wicd/default.nix
+++ b/pkgs/tools/networking/wicd/default.nix
@@ -6,20 +6,25 @@
 # on urwid which has not been packaged at this time (2009-12-27).
 
 stdenv.mkDerivation rec {
-  name = "wicd-1.7.0";
+  name = "wicd-1.7.1-beta2";
   
   src = fetchurl {
-    url = "mirror://sourceforge/project/wicd/wicd-stable/${name}/${name}.tar.bz2";
-    sha256 = "0civfmpjlsvnaiw7fkpq34mh5ndhfzb9mkl3q2d3rjd4z0mnki8l";
+    url = "mirror://sourceforge/wicd/wicd-1.7.1b2.tar.bz2";
+    sha256 = "13ga6a2ip8dy8h49wvv02jxxfvpk5q5sm2wz76dy62y1xsrm23c1";
   };
 
   buildInputs = [ python ];
 
-  patches = [ ./no-var-install.patch ./pygtk.patch ./mkdir-networks.patch ];
+  patches = [ ./no-var-install.patch ./mkdir-networks.patch ./pygtk.patch ./no-optimization.patch ];
 
   # Should I be using pygtk's propogated build inputs?
+  # !!! Should use makeWrapper.
   postPatch = ''
+    # We don't have "python2".
+    substituteInPlace wicd/wicd-daemon.py --replace 'misc.find_path("python2")' "'${python}/bin/python'"
+    
     substituteInPlace in/scripts=wicd.in --subst-var-by TEMPLATE-DEFAULT $out/share/other/dhclient.conf.template.default
+    
     sed -i "2iexport PATH=\$PATH\$\{PATH:+:\}${python}/bin:${wpa_supplicant}/sbin:${dhcp}/sbin:${wirelesstools}/sbin:${nettools}/sbin:${iproute}/sbin" in/scripts=wicd.in
     sed -i "3iexport PYTHONPATH=\$PYTHONPATH\$\{PYTHONPATH:+:\}$(toPythonPath $out):$(toPythonPath ${pygobject})/gtk-2.0:$(toPythonPath ${pythonDBus})" in/scripts=wicd.in
     sed -i "4iexport LC_ALL=\\\"${locale}\\\"" in/scripts=wicd.in
@@ -56,7 +61,7 @@ stdenv.mkDerivation rec {
     --icons=$out/share/icons/hicolour/ \
     --translations=$out/share/locale/ \
     --autostart=$out/etc/xdg/autostart/ \
-    --varlib=$out/share/ \
+    --varlib=/var/lib/wicd/ \
     --docdir=$out/share/doc/ \
     --mandir=$out/share/man/ \
     --kdedir=$out/share/autostart/ \
@@ -74,6 +79,12 @@ stdenv.mkDerivation rec {
     python setup.py install --prefix=$out
     ensureDir $out/share/other
     cp other/dhclient.conf.template.default $out/share/other/dhclient.conf.template.default
+
+    # Add a template for "WPA2 Enterprise" encryption as used, e.g., by the
+    # Eduroam network.  Taken and adapted from
+    # <http://wicd.net/punbb/viewtopic.php?id=87>.
+    cp -v "${./wpa2-ttls}" "$out/etc/encryption/templates/wpa2-ttls"
+    echo "wpa2-ttls" >> "$out/etc/encryption/templates/active"
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/wicd/no-optimization.patch b/pkgs/tools/networking/wicd/no-optimization.patch
new file mode 100644
index 000000000000..fb04846d85b1
--- /dev/null
+++ b/pkgs/tools/networking/wicd/no-optimization.patch
@@ -0,0 +1,21 @@
+With optimizations on, python will overwrite the nix store.
+
+--- wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:09.733096865 -0400
++++ wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:16.397096864 -0400
+@@ -1,3 +1,3 @@
+ #!/bin/bash
+ 
+-exec %PYTHON% -O %SHARE%daemon/wicd-daemon.py $@
++exec %PYTHON% -B %SHARE%daemon/wicd-daemon.py $@
+
+--- wicd-1.7.1b2/wicd/wicd-daemon.py.old     2011-04-07 08:28:38.668311226 -0400
++++ wicd-1.7.1b2/wicd/wicd-daemon.py 2011-04-07 08:28:59.111311223 -0400
+@@ -1806,7 +1806,7 @@
+     wicd_bus = dbus.service.BusName('org.wicd.daemon', bus=bus)
+     daemon = WicdDaemon(wicd_bus, auto_connect=auto_connect)
+     if not no_poll:
+-        child_pid = Popen([misc.find_path("python2"), "-O", 
++        child_pid = Popen([misc.find_path("python2"), "-B",
+                           os.path.join(wpath.daemon, "monitor.py")],
+                           shell=False, close_fds=True).pid
+     atexit.register(on_exit, child_pid)
diff --git a/pkgs/tools/networking/wicd/no-var-install.patch b/pkgs/tools/networking/wicd/no-var-install.patch
index 9a333332fcf2..95a5499f283c 100644
--- a/pkgs/tools/networking/wicd/no-var-install.patch
+++ b/pkgs/tools/networking/wicd/no-var-install.patch
@@ -14,3 +14,12 @@ The install tries to create files in /var.  This patch removes those steps.
      (wpath.sbin,  ['scripts/wicd']),  
      (wpath.daemon, ['wicd/monitor.py', 'wicd/wicd-daemon.py',
                   'wicd/suspend.py', 'wicd/autoconnect.py']), 
+@@ -558,7 +555,7 @@
+     if not wpath.no_install_docs:
+         data.append((wpath.docdir, ['INSTALL', 'LICENSE', 'AUTHORS',
+                                      'README', 'CHANGES', ]))
+-        data.append((wpath.varlib, ['other/WHEREAREMYFILES']))
++        data.append((wpath.share, ['other/WHEREAREMYFILES']))
+     if not wpath.no_install_kde:
+         if not wpath.no_install_gtk:
+             data.append((wpath.kdedir, ['other/wicd-tray.desktop']))
diff --git a/pkgs/tools/networking/wicd/wpa2-ttls b/pkgs/tools/networking/wicd/wpa2-ttls
new file mode 100644
index 000000000000..7efdeffec84c
--- /dev/null
+++ b/pkgs/tools/networking/wicd/wpa2-ttls
@@ -0,0 +1,19 @@
+name = WPA2-TTLS
+author = various contributors
+version = 1
+require identity *Identity anonymous_identity *Anonymous_identity password *Password ca_cert *Path_to_CA_Cert
+-----
+ctrl_interface=/var/run/wpa_supplicant
+network={
+        ssid="$_ESSID"
+        scan_ssid=$_SCAN
+        proto=WPA2
+        key_mgmt=WPA-EAP
+        group=CCMP TKIP
+        eap=TTLS
+        identity="$_IDENTITY"
+        password="$_PASSWORD"
+        anonymous_identity="$_ANONYMOUS_IDENTITY"
+        ca_cert="$_CA_CERT"
+        phase2="auth=PAP"
+}
diff --git a/pkgs/tools/package-management/cabal-install/0.10.2.nix b/pkgs/tools/package-management/cabal-install/0.10.2.nix
new file mode 100644
index 000000000000..e71c99cd0c37
--- /dev/null
+++ b/pkgs/tools/package-management/cabal-install/0.10.2.nix
@@ -0,0 +1,20 @@
+{ cabal, HTTP, network, random, time, zlib }:
+
+cabal.mkDerivation (self: {
+  pname = "cabal-install";
+  version = "0.10.2";
+  sha256 = "05gmgxdlymp66c87szx1vq6hlraispdh6pm0n85s74yihjwwhmv3";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ HTTP network random time zlib ];
+  meta = {
+    homepage = "http://www.haskell.org/cabal/";
+    description = "The command-line interface for Cabal and Hackage";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/tools/package-management/cabal-install/0.6.2.nix b/pkgs/tools/package-management/cabal-install/0.6.2.nix
new file mode 100644
index 000000000000..83a2121a16be
--- /dev/null
+++ b/pkgs/tools/package-management/cabal-install/0.6.2.nix
@@ -0,0 +1,20 @@
+{ cabal, HTTP, network, random, zlib }:
+
+cabal.mkDerivation (self: {
+  pname = "cabal-install";
+  version = "0.6.2";
+  sha256 = "d8ea91bd0a2a624ab1cf52ddfe48cef02b532bb5e2fcda3fd72ca51efc04b41a";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ HTTP network random zlib ];
+  meta = {
+    homepage = "http://www.haskell.org/cabal/";
+    description = "The command-line interface for Cabal and Hackage";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/tools/package-management/cabal-install/0.8.0.nix b/pkgs/tools/package-management/cabal-install/0.8.0.nix
index 5e9f59f771ac..aa6369bb05cc 100644
--- a/pkgs/tools/package-management/cabal-install/0.8.0.nix
+++ b/pkgs/tools/package-management/cabal-install/0.8.0.nix
@@ -1,13 +1,20 @@
-{cabal, HTTP, network, zlib} :
+{ cabal, HTTP, network, random, time, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cabal-install";
-  name = self.fname;
-  version = "0.8.0"; # Haskell Platform 2010.1.0.0
+  version = "0.8.0";
   sha256 = "6d16618ff454f8d732cad64a53b767b5b6bb95ba4970b260a40e8f467035493c";
-  extraBuildInputs = [HTTP network zlib];
-
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ HTTP network random time zlib ];
   meta = {
+    homepage = "http://www.haskell.org/cabal/";
     description = "The command-line interface for Cabal and Hackage";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/tools/package-management/cabal-install/0.8.2.nix b/pkgs/tools/package-management/cabal-install/0.8.2.nix
index e739f806e6ce..c27b429afb4f 100644
--- a/pkgs/tools/package-management/cabal-install/0.8.2.nix
+++ b/pkgs/tools/package-management/cabal-install/0.8.2.nix
@@ -1,13 +1,20 @@
-{cabal, HTTP, network, zlib} :
+{ cabal, HTTP, network, random, time, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cabal-install";
-  name = self.fname;
-  version = "0.8.2"; # Haskell Platform 2010.2.0.0
+  version = "0.8.2";
   sha256 = "8f896ab46ec6c578f620ce4150f7cd04a2088be793113b33cc570b13b6b86e0b";
-  extraBuildInputs = [HTTP network zlib];
-
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ HTTP network random time zlib ];
   meta = {
+    homepage = "http://www.haskell.org/cabal/";
     description = "The command-line interface for Cabal and Hackage";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/tools/package-management/cabal-install/default.nix b/pkgs/tools/package-management/cabal-install/default.nix
deleted file mode 100644
index aafafab453de..000000000000
--- a/pkgs/tools/package-management/cabal-install/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, HTTP, network, zlib} :
-
-cabal.mkDerivation (self : {
-  pname = "cabal-install";
-  name = self.fname;
-  version = "0.6.2"; # Haskell Platform 2009.0.0
-  sha256 = "d8ea91bd0a2a624ab1cf52ddfe48cef02b532bb5e2fcda3fd72ca51efc04b41a";
-  extraBuildInputs = [HTTP network zlib];
-
-  meta = {
-    description = "The command-line interface for Cabal and Hackage";
-  };
-})
diff --git a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
index e129d9e29ec8..4d03ec9ab66a 100644
--- a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
+++ b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
@@ -3,8 +3,8 @@
 stdenv.mkDerivation {
   name = "DisnixWebService-0.2";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/792274/download/3/DisnixWebService-0.2.tar.bz2;
-    sha256 = "1ccgrab896cs7bg5m99iam4cyvdj9q3gkmjkg9awqb710l9168sh";
+    url = http://hydra.nixos.org/build/910953/download/4/DisnixWebService-0.2.tar.bz2;
+    sha256 = "1469l2ykhdjmplkw01x64f7aq9rms05ig9sagyb8l2zksjm6lla8";
   };
   buildInputs = [ apacheAnt ];
   PREFIX = ''''${env.out}'';
@@ -18,4 +18,10 @@ stdenv.mkDerivation {
   '';
   buildPhase = "ant";
   installPhase = "ant install";
+  
+  meta = {
+    description = "A SOAP interface and client for Disnix";
+    license = "MIT";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+  };
 }
diff --git a/pkgs/tools/package-management/disnix/activation-scripts/default.nix b/pkgs/tools/package-management/disnix/activation-scripts/default.nix
index d1507e253a85..4e1442935ee5 100644
--- a/pkgs/tools/package-management/disnix/activation-scripts/default.nix
+++ b/pkgs/tools/package-management/disnix/activation-scripts/default.nix
@@ -16,10 +16,10 @@ assert enableSubversionRepository -> subversion != null;
 assert enableEjabberdDump -> ejabberd != null;
 
 stdenv.mkDerivation {
-  name = "disnix-activation-scripts-0.2pre25210";
+  name = "disnix-activation-scripts-0.2";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/816489/download/1/disnix-activation-scripts-0.2pre25210.tar.gz;
-    sha256 = "1jski4fjz4pmh0knh3rgfkkmc7i2krs164nh0fasbh2radksm0hl";
+    url = http://hydra.nixos.org/build/910903/download/1/disnix-activation-scripts-0.2.tar.gz;
+    sha256 = "0r7yqvh3jnbvpb6lmr10lm4r5pvi4jaw0c6rhlyl5q6nh3mxymnd";
   };
   
   preConfigure = if enableEjabberdDump then "export PATH=$PATH:${ejabberd}/sbin" else "";
@@ -39,4 +39,10 @@ stdenv.mkDerivation {
                 ++ stdenv.lib.optional enableMySQLDatabase mysql
 		++ stdenv.lib.optional enablePostgreSQLDatabase postgresql
 		++ stdenv.lib.optional enableSubversionRepository subversion;
+
+  meta = {
+    description = "Provides various activation types for Disnix";
+    license = "MIT";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+  };
 }
diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix
index 981afc8bbe32..fbb19159ef86 100644
--- a/pkgs/tools/package-management/disnix/default.nix
+++ b/pkgs/tools/package-management/disnix/default.nix
@@ -1,14 +1,20 @@
 {stdenv, fetchurl, pkgconfig, dbus_glib, libxml2, libxslt, getopt, nixUnstable, gettext, libiconv}:
 
 stdenv.mkDerivation {
-  name = "disnix-0.2pre25293";
+  name = "disnix-0.3pre27244";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/829056/download/4/disnix-0.2pre25293.tar.gz;
-    sha256 = "0nsq0kk390x3s8wvdp043n1mdi6jb43770d8s3vsc96qiajs1b9j";
+    url = http://hydra.nixos.org/build/1083290/download/4/disnix-0.3pre27244.tar.gz;
+    sha256 = "1x7y34mxs26k019y9y8fsnzdk7wmjqfmybw99qgqqxy5kblvlzns";
   };
   buildInputs = [ pkgconfig dbus_glib libxml2 libxslt getopt nixUnstable ]
                 ++ stdenv.lib.optional (!stdenv.isLinux) libiconv
 		++ stdenv.lib.optional (!stdenv.isLinux) gettext;
   dontStrip = true;
   NIX_STRIP_DEBUG = true;
+  
+  meta = {
+    description = "A distributed deployment extension for Nix";
+    license = "LGPLv2.1+";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+  };
 }
diff --git a/pkgs/tools/package-management/disnix/disnixos/default.nix b/pkgs/tools/package-management/disnix/disnixos/default.nix
index c7ed91175a6a..1a7ca5716044 100644
--- a/pkgs/tools/package-management/disnix/disnixos/default.nix
+++ b/pkgs/tools/package-management/disnix/disnixos/default.nix
@@ -1,12 +1,18 @@
 {stdenv, fetchurl, disnix, socat, pkgconfig}:
 
 stdenv.mkDerivation {
-  name = "disnixos-0.1pre25259";
+  name = "disnixos-0.2pre27672";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/825090/download/1/disnixos-0.1pre25259.tar.gz;
-    sha256 = "0g1pjw2f7jacp8kd9q90bihvr3s3cz9l19ddjfajc0harall61ms";
+    url = http://hydra.nixos.org/build/1153468/download/3/disnixos-0.2pre27672.tar.gz;
+    sha256 = "0z74p9fnvchvl78brj2p3r9h0wwvpl86zk0ynzqcf8ww0h71ws08";
   };
   buildInputs = [ socat pkgconfig disnix ];
   dontStrip = true;
   NIX_STRIP_DEBUG = true;
+  
+  meta = {
+    description = "Provides complementary NixOS infrastructure deployment to NixOS";
+    license = "LGPLv2.1+";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+  };
 }
diff --git a/pkgs/tools/package-management/nix/custom.nix b/pkgs/tools/package-management/nix/custom.nix
index a84718e7b4aa..6a73c0e9528e 100644
--- a/pkgs/tools/package-management/nix/custom.nix
+++ b/pkgs/tools/package-management/nix/custom.nix
@@ -10,8 +10,10 @@
 , libxml2 ? null
 , docbook5_xsl ? null, libxslt ? null
 , docbook5 ? null, docbook_xml_dtd_43 ? null 
+, perlPackages
 , boehmgc ? null
 , pkgconfig ? null
+, sqlite ? null
 , configureFlags ? []
 , lib
 , enableScripts ? []
@@ -35,6 +37,7 @@ stdenv.mkDerivation {
   	++ (if w3m != null then [w3m] else [])
   	++ (if libxml2 != null then [libxml2] else [])
   	++ (if boehmgc != null then [boehmgc] else [])
+  	++ (if sqlite != null then [sqlite] else [])
   	++ (if pkgconfig != null then [pkgconfig] else [])
   ;
 
@@ -50,7 +53,10 @@ stdenv.mkDerivation {
   configureFlags = ''
     --with-store-dir=${storeDir} --localstatedir=${stateDir}
     --with-aterm=${aterm} --with-bdb=${db4} --with-bzip2=${bzip2}
+    --with-sqlite=${sqlite}
     --disable-init-state
+    --with-dbi=${perlPackages.DBI}/lib/perl5/site_perl
+    --with-dbd-sqlite=${perlPackages.DBDSQLite}/lib/perl5/site_perl
     ${toString configureFlags}
   '';
 
diff --git a/pkgs/tools/package-management/nix/sqlite.nix b/pkgs/tools/package-management/nix/sqlite.nix
deleted file mode 100644
index d4bec98dc549..000000000000
--- a/pkgs/tools/package-management/nix/sqlite.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, perl, curl, bzip2, sqlite, openssl ? null
-, pkgconfig, boehmgc
-, storeDir ? "/nix/store"
-, stateDir ? "/nix/var"
-}:
-
-stdenv.mkDerivation rec {
-  name = "nix-1.0pre25179";
-
-  src = fetchurl {
-    url = "http://hydra.nixos.org/build/811883/download/4/${name}.tar.bz2";
-    sha256 = "4a6f7ca69428d24f253f8f199589d25fca1e7146a6591288392423634e3303f7";
-  };
-
-  buildInputs = [ perl curl openssl pkgconfig boehmgc ];
-
-  configureFlags = ''
-    --with-store-dir=${storeDir} --localstatedir=${stateDir}
-    --with-bzip2=${bzip2} --with-sqlite=${sqlite}
-    --disable-init-state
-    --enable-gc
-    CFLAGS=-O3 CXXFLAGS=-O3
-  '';
-
-  doCheck = true;
-
-  meta = {
-    description = "The Nix Deployment System";
-    homepage = http://nixos.org/;
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 2dac26dd1b1d..c89b913200b9 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, perl, curl, bzip2, openssl ? null
-, pkgconfig, boehmgc
+{ stdenv, fetchurl, perl, curl, bzip2, sqlite, openssl ? null
+, pkgconfig, boehmgc, perlPackages
 , storeDir ? "/nix/store"
 , stateDir ? "/nix/var"
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.0pre24855";
+  name = "nix-1.0pre28391";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/774404/download/4/${name}.tar.bz2";
-    sha256 = "cd2a75a04fc03dcafbab1d183e6ee485b491e17f1680bb7ee38738a2b1235932";
+    url = "http://hydra.nixos.org/build/1232663/download/4/${name}.tar.bz2";
+    sha256 = "c990f0ad564960b1d82fdbed32bee0db64c26b57400f027f01434237edd1be0f";
   };
 
   buildNativeInputs = [ perl pkgconfig ];
@@ -18,7 +18,9 @@ stdenv.mkDerivation rec {
   configureFlags =
     ''
       --with-store-dir=${storeDir} --localstatedir=${stateDir}
-      --with-bzip2=${bzip2}
+      --with-bzip2=${bzip2} --with-sqlite=${sqlite}
+      --with-dbi=${perlPackages.DBI}/lib/perl5/site_perl
+      --with-dbd-sqlite=${perlPackages.DBDSQLite}/lib/perl5/site_perl
       --disable-init-state
       --enable-gc
       CFLAGS=-O3 CXXFLAGS=-O3
@@ -28,13 +30,15 @@ stdenv.mkDerivation rec {
     configureFlags =
       ''
         --with-store-dir=${storeDir} --localstatedir=${stateDir}
-        --with-bzip2=${bzip2.hostDrv}
+        --with-bzip2=${bzip2.hostDrv} --with-sqlite=${sqlite.hostDrv}
         --disable-init-state
         CFLAGS=-O3 CXXFLAGS=-O3
       '';
     doCheck = false;
   };
 
+  enableParallelBuilding = true;
+
   doCheck = true;
 
   meta = {
diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix
new file mode 100644
index 000000000000..b0bb090b64d0
--- /dev/null
+++ b/pkgs/tools/package-management/opkg/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, pkgconfig, curl, gpgme}:
+
+stdenv.mkDerivation {
+  name = "opkg-0.1.8";
+  src = fetchurl {
+    url = http://opkg.googlecode.com/files/opkg-0.1.8.tar.gz;
+    sha256 = "0q0w7hmc6zk7pnddamd5v8d76qnh3043lzh5np24jbb6plqbz57z";
+  };
+  buildInputs = [ pkgconfig curl gpgme ];
+}
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index 3c558bbf6730..3d759d733adb 100644
--- a/pkgs/tools/security/gnupg/default.nix
+++ b/pkgs/tools/security/gnupg/default.nix
@@ -13,11 +13,11 @@ assert useUsb -> (libusb != null);
 assert useCurl -> (curl != null);
 
 stdenv.mkDerivation rec {
-  name = "gnupg-2.0.16";
+  name = "gnupg-2.0.18";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "02x86pgzkdx9fg6mma36lrd8746zr1qvm995rvvb1sq2gjbvnnhd";
+    sha256 = "0nxf5nbgxi5splnw6xww5iy6sw367kz9x1cy5aaznhx45ivdvbj8";
   };
 
   buildInputs = [ readline zlib libgpgerror pth libgcrypt libassuan libksba ]
diff --git a/pkgs/tools/security/mktemp/default.nix b/pkgs/tools/security/mktemp/default.nix
index 001fa4f09535..4017aa4f9f19 100644
--- a/pkgs/tools/security/mktemp/default.nix
+++ b/pkgs/tools/security/mktemp/default.nix
@@ -1,8 +1,11 @@
-{stdenv, fetchurl}:
-  
+{ stdenv, fetchurl, groff }:
+
 stdenv.mkDerivation {
   name = "mktemp-1.6";
-  
+
+  # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
+  NROFF = "${groff}/bin/nroff";
+
   src = fetchurl {
     url = ftp://ftp.mktemp.org/pub/mktemp/mktemp-1.6.tar.gz;
     sha256 = "1nfj89b0dv1c2fyqi1pg54fyzs3462cbp7jv7lskqsxvqy4mh9x1";
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index 46966835e148..143c75285c4a 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -4,22 +4,13 @@
 }:
   
 stdenv.mkDerivation rec {
-  name = "nmap-5.21";
+  name = "nmap-5.50";
 
   src = fetchurl {
     url = "http://nmap.org/dist/${name}.tar.bz2";
-    sha256 = "1fmh05iamynmr8zic3bja6dr0pfiwp0hr2nc2wpiqm2pc7w29jwz";
+    sha256 = "aa044113caa47e172c154daed73afc70ffa18d359eb47c22a9ea85ffcb14ffb8";
   };
 
-  patches =
-    [ (fetchurl {
-        url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-analyzer/nmap/files/nmap-5.21-openssl-1.patch?revision=1.1";
-        sha256 = "0q0kgwvg5b770xpp31a5a3lxh8d5ik6d5bv11nlh3syd78q6f08y";
-      })
-    ];
-
-  patchFlags = "-p0";
-
   postInstall =
     ''
       wrapProgram $out/bin/zenmap --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" --prefix PYTHONPATH : $(toPythonPath ${pygtk})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pygobject})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pycairo})/gtk-2.0
diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix
new file mode 100644
index 000000000000..524a582fcb02
--- /dev/null
+++ b/pkgs/tools/security/pinentry/default.nix
@@ -0,0 +1,40 @@
+{ fetchurl, stdenv, pkgconfig, glib
+, useGtk ? true, gtk
+, useNcurses ? true, ncurses
+, useQt4 ? false, qt4 }:
+
+assert useGtk || useNcurses || useQt4;
+
+stdenv.mkDerivation rec {
+  name = "pinentry-0.8.0";
+
+  src = fetchurl {
+    url = "mirror://gnupg/pinentry/${name}.tar.gz";
+    sha256 = "06phs3gbs6gf0z9g28z3jgsw312dhhpdgzrx4hhps53xrbwpyv22";
+  };
+
+  buildInputs = let opt = stdenv.lib.optional; in []
+    ++ opt useGtk glib
+    ++ opt useGtk gtk
+    ++ opt useNcurses ncurses
+    ++ opt useQt4 qt4;
+
+  configureFlags = [ "--disable-pinentry-gtk" "--disable-pinentry-qt" ]
+    ++ (if useGtk || useQt4 then ["--with-x"] else ["--without-x"])
+    ++ (if useGtk then ["--enable-pinentry-gtk2"] else ["--disable-pinentry-gtk"])
+    ++ (if useQt4 then ["--enable-pinentry-qt4"] else ["--disable-pinentry-qt4"]);
+
+  buildNativeInputs = [ pkgconfig ];
+
+  meta = {
+    description = "GnuPG's interface to passphrase input";
+
+    longDescription = ''
+      Pinentry provides a console and a GTK+ GUI that allows users to
+      enter a passphrase when `gpg' or `gpg2' is run and needs it.
+    '';
+
+    homepage = http://gnupg.org/aegypten2/;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/tools/misc/pinentry/duplicate-glib-defs.patch b/pkgs/tools/security/pinentry/duplicate-glib-defs.patch
index 78796ee2f53a..78796ee2f53a 100644
--- a/pkgs/tools/misc/pinentry/duplicate-glib-defs.patch
+++ b/pkgs/tools/security/pinentry/duplicate-glib-defs.patch
diff --git a/pkgs/tools/security/polkit-gnome/default.nix b/pkgs/tools/security/polkit-gnome/default.nix
new file mode 100644
index 000000000000..9adab0fb0c27
--- /dev/null
+++ b/pkgs/tools/security/polkit-gnome/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, gtk, polkit, dbus_glib, intltool }:
+stdenv.mkDerivation rec {
+
+  name = "polkit-gnome-${version}";
+  version = "0.96";
+
+  src = fetchurl {
+    url = http://hal.freedesktop.org/releases/polkit-gnome-0.96.tar.bz2;
+    sha256 = "14la7j3h1k1s88amkcv8rzq9wmhgzypvxpwaxwg2x2k55l1wi5hd";
+  };
+
+  buildInputs = [ pkgconfig gtk polkit dbus_glib intltool ];
+
+  configureFlags = [ "--disable-introspection" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://hal.freedesktop.org/docs/PolicyKit/;
+    description = "A dbus session bus service that is used to bring up authentication dialogs";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/security/polkit-kde-agent/default.nix b/pkgs/tools/security/polkit-kde-agent/default.nix
new file mode 100644
index 000000000000..eff290f54fa8
--- /dev/null
+++ b/pkgs/tools/security/polkit-kde-agent/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, kdelibs, polkit_qt_1, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "polkit-kde-agent-1-0.99.0";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/apps/KDE4.x/admin/${name}.tar.bz2";
+    sha256 = "0rxlq6x0vhvha8i6w109zpzzacp4imins55v4p4fq7a3k0kgywg3";
+  };
+
+  buildInputs = [ kdelibs polkit_qt_1 ];
+
+  buildNativeInputs = [ gettext ];
+
+  patchPhase = "sed -e s/KDE4_AUTOSTART/AUTOSTART/ -i CMakeLists.txt";
+}
diff --git a/pkgs/tools/security/super/default.nix b/pkgs/tools/security/super/default.nix
new file mode 100644
index 000000000000..0d2e34a41253
--- /dev/null
+++ b/pkgs/tools/security/super/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "super-3.30.0";
+
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "http://ftp.ucolick.org/pub/users/will/${name}-tar.gz";
+    sha256 = "1sxgixx1yg7h8g9799v79rk15gb39gn7p7fx032c078wxx38qwq4";
+  };
+
+  NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE";
+
+  configureFlags = "--sysconfdir=/etc --localstatedir=/var";
+
+  installFlags = "sysconfdir=$(out)/etc localstatedir=$(TMPDIR)";
+
+  meta = {
+    homepage = http://ftp.ucolick.org/pub/users/will/;
+    description = "Allows users to execute scripts as if they were root";
+    longDescription =
+      ''
+        This package provides two commands: 1) “super”, which allows
+        users to execute commands under a different uid/gid (specified
+        in /etc/super.tab); and 2) “setuid”, which allows root to
+        execute a command under a different uid.
+      '';
+  };  
+}
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 040e53774a3d..62a75c16b4e4 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libevent, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "tor-0.2.1.27";
+  name = "tor-0.2.1.30";
 
   src = fetchurl {
     url = "http://www.torproject.org/dist/${name}.tar.gz";
-    sha256 = "07367wynpbbqnwzis3z8zf8k9b6cgywcrjzn7gpdal8m4dkmqkgc";
+    sha256 = "02g15k8w5r57r9r6lz0sxzzvqx200y397y142cjswsd4zyla2lpk";
   };
 
   patchPhase =
diff --git a/pkgs/tools/system/ddrescue/default.nix b/pkgs/tools/system/ddrescue/default.nix
index ea169b82e895..0cc3fb369947 100644
--- a/pkgs/tools/system/ddrescue/default.nix
+++ b/pkgs/tools/system/ddrescue/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "ddrescue-1.13";
+  name = "ddrescue-1.14";
 
   src = fetchurl {
     url = "mirror://gnu/ddrescue/${name}.tar.gz";
-    sha256 = "1fh3lim8nvy6984vbvyvc3w3mb6bdksdsln8an1l9k6im6b507cc";
+    sha256 = "01m9m8lisf7ly7xl97plqnl5dj253ms1gbk1bbpwv3nnchnvj5yd";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/system/efibootmgr/default.nix b/pkgs/tools/system/efibootmgr/default.nix
new file mode 100644
index 000000000000..bf4c429808b2
--- /dev/null
+++ b/pkgs/tools/system/efibootmgr/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, pciutils, perl, zlib}:
+
+let version = "0.5.4"; in
+
+stdenv.mkDerivation {
+  name = "efibootmgr-${version}";
+
+  buildInputs = [ pciutils zlib perl ];
+
+  
+  src = fetchurl {
+    url = "http://linux.dell.com/efibootmgr/permalink/efibootmgr-${version}.tar.gz";
+    sha256 = "0wcfgf8x4p4xfh38m9x3njwsxibm9bhnmvpjj94lj9sk9xxa8qmm";
+  };
+
+  patchPhase = ''
+    substituteInPlace "./tools/install.pl" \
+      --replace "/usr/bin/perl" "${perl}/bin/perl"
+  '';
+
+  preBuild = ''
+    export makeFlags="BINDIR=$out/sbin"
+  '';
+
+  meta = {
+    description = "A Linux user-space application to modify the Intel Extensible Firmware Interface (EFI) Boot Manager";
+    homepage = http://linux.dell.com/efibootmgr/;
+    license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/tools/system/fakeroot/default.nix b/pkgs/tools/system/fakeroot/default.nix
new file mode 100644
index 000000000000..e9c4f4165097
--- /dev/null
+++ b/pkgs/tools/system/fakeroot/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "fakeroot-1.14.5";
+
+  src = fetchurl {
+    url = http://ftp.de.debian.org/debian/pool/main/f/fakeroot/fakeroot_1.14.5.orig.tar.bz2;
+    sha256 = "0s5f785qsh057z05l9i5k1h9cbj9x26ki37l4wh4iyabjhschddh";
+  };
+
+  meta = {
+    homepage = http://fakeroot.alioth.debian.org/;
+    description = "Give a fake root environment through LD_PRELOAD";
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+
+}
diff --git a/pkgs/tools/system/fdisk/default.nix b/pkgs/tools/system/fdisk/default.nix
index ddb162b45993..3c85fa598030 100644
--- a/pkgs/tools/system/fdisk/default.nix
+++ b/pkgs/tools/system/fdisk/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, parted, libuuid, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "fdisk-1.2.4";
+  name = "fdisk-1.2.5";
 
   src = fetchurl {
     url = "mirror://gnu/fdisk/${name}.tar.bz2";
-    sha256 = "17xl8xa1cwaxcdw49m1kqwralhac2y2z8nbx7mwlf28dpplvd9p0";
+    sha256 = "1pwwblr85g4r6h5jwp8m5339v7f747z35bpnm945vjnw5mrch3lk";
   };
 
   buildInputs = [ parted libuuid gettext ];
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
new file mode 100644
index 000000000000..a53e51342065
--- /dev/null
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -0,0 +1,39 @@
+{ fetchurl, stdenv, libgcrypt, readline }:
+
+stdenv.mkDerivation rec {
+  name = "freeipmi-1.0.5";
+
+  src = fetchurl {
+    url = "mirror://gnu/freeipmi/${name}.tar.gz";
+    sha256 = "0wxq6h530wjiyaz8s12zqzp4rj4a8bg3cnsqf0aaq70d20gmxf1x";
+  };
+
+  buildInputs = [ libgcrypt readline ];
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU FreeIPMI, an implementation of the Intelligent Platform Management Interface";
+
+    longDescription =
+      '' GNU FreeIPMI provides in-band and out-of-band IPMI software based on
+         the IPMI v1.5/2.0 specification.  The IPMI specification defines a
+         set of interfaces for platform management and is implemented by a
+         number vendors for system management.  The features of IPMI that
+         most users will be interested in are sensor monitoring, system event
+         monitoring, power control, and serial-over-LAN (SOL).  The FreeIPMI
+         tools and libraries listed below should provide users with the
+         ability to access and utilize these and many other features.  A
+         number of useful features for large HPC or cluster environments have
+         also been implemented into FreeIPMI. See the README or FAQ for more
+         info.
+      '';
+
+    homepage = http://www.gnu.org/software/freeipmi/;
+
+    license = "GPLv3+";
+
+    maintainers = with stdenv.lib.maintainers; [ raskin ludo ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/tools/system/gdmap/default.nix b/pkgs/tools/system/gdmap/default.nix
index f361e862b636..e9592b366661 100644
--- a/pkgs/tools/system/gdmap/default.nix
+++ b/pkgs/tools/system/gdmap/default.nix
@@ -1,16 +1,19 @@
 { stdenv, fetchurl, gtk, pkgconfig, libxml2, intltool, gettext }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "gdmap-0.8.1";
   
   src = fetchurl {
-    url = http://downloads.sourceforge.net/gdmap/gdmap-0.8.1.tar.gz;
+    url = "mirror://sourceforge/gdmap/${name}.tar.gz";
     sha256 = "0nr8l88cg19zj585hczj8v73yh21k7j13xivhlzl8jdk0j0cj052";
   };
 
   buildInputs = [ gtk pkgconfig libxml2 intltool gettext ];
 
+  patches = [ ./get_sensitive.patch ./set_flags.patch ];
+
   meta = {
+    homepage = http://gdmap.sourceforge.net;
     description = "Recursive rectangle map of disk usage";
   };
 }
diff --git a/pkgs/tools/system/gdmap/get_sensitive.patch b/pkgs/tools/system/gdmap/get_sensitive.patch
new file mode 100644
index 000000000000..3cdb6291dfac
--- /dev/null
+++ b/pkgs/tools/system/gdmap/get_sensitive.patch
@@ -0,0 +1,34 @@
+From 166de50914191303b232ec123cfbaadad521560c Mon Sep 17 00:00:00 2001
+From: Alexander Myltsev <avm@altlinux.ru>
+Date: Wed, 21 Apr 2010 22:43:14 +0400
+Subject: [PATCH] GTK_WIDGET_SENSITIVE -> gtk_widget_get_sensitive
+
+---
+ gdmap/src/gui_support.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/gui_support.c b/src/gui_support.c
+index 3027e29..45272d3 100644
+--- a/src/gui_support.c
++++ b/src/gui_support.c
+@@ -85,7 +85,7 @@ on_ebox_enter(GtkWidget* box, GdkEventCrossing* event, GtkLabel* label) {
+   const char* text;
+ 
+   (void)event;
+-  if (GTK_WIDGET_SENSITIVE(label)) {
++  if (gtk_widget_get_sensitive(GTK_WIDGET(label))) {
+     char* temp;
+ 
+     text = g_object_get_data(G_OBJECT(label), "label");
+@@ -129,7 +129,7 @@ static void on_clear_label(GtkWidget* widget) {
+ void ui_event_label_set_sensitive(GtkWidget* ebox, gboolean set) {
+   gpointer callback = g_object_get_data(G_OBJECT(ebox), "callback");
+   GtkWidget* child = GTK_BIN(ebox)->child;
+-  if (GTK_WIDGET_SENSITIVE(child) == set) return;
++  if (gtk_widget_get_sensitive(child) == set) return;
+ 
+   if (set && !callback) return;
+   gtk_widget_set_sensitive(child, set);
+-- 
+1.7.3.3
+
diff --git a/pkgs/tools/system/gdmap/set_flags.patch b/pkgs/tools/system/gdmap/set_flags.patch
new file mode 100644
index 000000000000..388836f6e5f4
--- /dev/null
+++ b/pkgs/tools/system/gdmap/set_flags.patch
@@ -0,0 +1,25 @@
+From 9a5537d2b0aba18438dd77a45354ac2e73eae23d Mon Sep 17 00:00:00 2001
+From: Alexander Myltsev <avm@altlinux.ru>
+Date: Mon, 13 Dec 2010 23:24:30 +0300
+Subject: [PATCH] GTK_WIDGET_SET_FLAGS -> gtk_widget_set_can_focus
+
+---
+ gdmap/src/gui_support.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/gui_support.c b/src/gui_support.c
+index 45272d3..ca02d72 100644
+--- a/src/gui_support.c
++++ b/src/gui_support.c
+@@ -164,7 +164,7 @@ GtkWidget* ui_create_event_label(const char* text, GCallback callback,
+                         // GDK_FOCUS_CHANGE_MASK |
+                         GDK_ENTER_NOTIFY_MASK |
+                         GDK_LEAVE_NOTIFY_MASK);
+-  GTK_WIDGET_SET_FLAGS(ebox, GTK_CAN_FOCUS);
++  gtk_widget_set_can_focus(ebox, TRUE);
+ 
+   gtk_widget_show(ebox);
+ 
+-- 
+1.7.3.3
+
diff --git a/pkgs/tools/system/gptfdisk/default.nix b/pkgs/tools/system/gptfdisk/default.nix
new file mode 100644
index 000000000000..bc32b29b33fd
--- /dev/null
+++ b/pkgs/tools/system/gptfdisk/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, libuuid, popt, icu }:
+
+stdenv.mkDerivation rec {
+  name = "gptfdisk-0.7.1";
+
+  src = fetchurl {
+    url = "http://www.rodsbooks.com/gdisk/${name}.tgz";
+    sha256 = "142mrlcaprh7a6r55wvaxpvjmkffh7w8lcagarmwq4cfibfrnwd8";
+  };
+
+  buildInputs = [ libuuid popt icu ];
+
+  installPhase = ''
+    ensureDir $out/sbin
+    ensureDir $out/share/man/man8
+    install -v -m755 gdisk sgdisk fixparts $out/sbin
+    install -v -m644 gdisk.8 sgdisk.8 fixparts.8 \
+        $out/share/man/man8
+  '';
+
+  meta = {
+    description = "A set of text-mode partitioning tools for Globally Unique Identifier (GUID) Partition Table (GPT) disks";
+
+    license = "GPLv2";
+
+    homepage = http://www.rodsbooks.com/gdisk/;
+
+    maintainers = stdenv.lib.maintainers.shlevy;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/tools/system/ioping/default.nix b/pkgs/tools/system/ioping/default.nix
new file mode 100644
index 000000000000..d721feb9d74d
--- /dev/null
+++ b/pkgs/tools/system/ioping/default.nix
@@ -0,0 +1,50 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="ioping";
+    version="0.4";
+    name="${baseName}-${version}";
+    url="http://ioping.googlecode.com/files/${name}.tar.gz";
+    hash="064pfjhg2a4hj6ly0wc9z85awiqry55n6wpx8kxzl9qasls0q447";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doMakeInstall"];
+  makeFlags = [
+    ''PREFIX="$out"''
+  ];
+      
+  meta = {
+    description = "Filesystem IO delay time measurer";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl3Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://code.google.com/p/ioping/downloads/list";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
new file mode 100644
index 000000000000..d5252116f640
--- /dev/null
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -0,0 +1,55 @@
+x@{builderDefsPackage
+  , openssl
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="ipmiutil";
+    version="2.7.3";
+    name="${baseName}-${version}";
+    project="${baseName}";
+    url="mirror://sourceforge/project/${project}/${baseName}/${name}.tar.gz";
+    hash="0z6ykz5db4ws7hpi25waf9vznwsh0vp819h5s7s8r054vxslrfpq";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "fixMakefile" "doMakeInstall"];
+
+  fixMakefile = a .fullDepEntry ''
+    sed -e "s@/usr@$out@g" -i Makefile */Makefile */*/Makefile
+    sed -e "s@/etc@$out/etc@g" -i Makefile */Makefile
+    sed -e "s@/var@$out/var@g" -i Makefile */Makefile
+  '' ["minInit" "doConfigure"];
+      
+  meta = {
+    description = "IPMI utilities";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.bsd3;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://sourceforge.net/projects/ipmiutil/files/ipmiutil/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/system/lxc/default.nix b/pkgs/tools/system/lxc/default.nix
index 5976d03fc33a..3d9e0f740b5c 100644
--- a/pkgs/tools/system/lxc/default.nix
+++ b/pkgs/tools/system/lxc/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libcap}:
 
 stdenv.mkDerivation rec{
-  name = "lxc-0.7.3";
+  name = "lxc-0.7.5";
 
   src = fetchurl {
-    url = "mirror://sourceforge/lxc/${name}.tar.gz";
-    sha256 = "02fs90gj8vc3sls2kknqhdv8nk7r2k85slx8x8slfz4vnz6jhfzs";
+    url = "http://lxc.sf.net/download/lxc/${name}.tar.gz";
+    sha256 = "019ec63f250c874bf7625b1f1bf555b1a6e3a947937a4fca73100abddf829b1c";
   };
 
   patchPhase = ''
@@ -14,6 +14,12 @@ stdenv.mkDerivation rec{
 
   configureFlags = [ "--localstatedir=/var" ];
 
+  postInstall = '' 
+    cd "$out/lib"
+    lib=liblxc.so.?.*
+    ln -s $lib $(echo $lib | sed -re 's/(liblxc[.]so[.].)[.].*/\1/')
+  '';
+
   buildInputs = [ libcap ];
 
   meta = {
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index 3c31e4b53457..e1e515aaf013 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -1,16 +1,16 @@
-{stdenv, fetchurl, libX11, xproto, libXt, xextproto}:
+{stdenv, fetchurl, libX11, xproto, libXt, xextproto, libXext}:
 
-stdenv.mkDerivation {
-  name = "plan9port-20090318";
+stdenv.mkDerivation rec {
+  name = "plan9port-20110103";
   
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = http://swtch.com/plan9port/plan9port-20090318.tgz;
-    sha256 = "1idb2l1s5j34sa1dj1wwnvj97z5z7cy73qjafrxf2bbda26axzqj";
+    url = "http://swtch.com/plan9port/${name}.tgz";
+    sha256 = "12hq3k03jgva72498qa1dyndakbhbfg0sc1jhcap9cxqj04xf0dc";
   };
 
-  buildInputs = [ libX11 xproto libXt xextproto ];
+  buildInputs = [ libX11 xproto libXt xextproto libXext ];
 
   meta = {
     homepage = "http://swtch.com/plan9port/";
diff --git a/pkgs/tools/system/sg3_utils/default.nix b/pkgs/tools/system/sg3_utils/default.nix
index a87ba0d0a075..e2fa8eacc914 100644
--- a/pkgs/tools/system/sg3_utils/default.nix
+++ b/pkgs/tools/system/sg3_utils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "sg3_utils-1.29";
+  name = "sg3_utils-1.31";
 
   src = fetchurl {
     url = "http://sg.danny.cz/sg/p/${name}.tgz";
-    sha256 = "0d1vlijp9y4n3c0sm0zzba38ad87b5v6nh3prgd8sfwvy79720fi";
+    sha256 = "190hhkhl096fxkspkr93lrq1n79xz5c5i2n4n4g998qc3yv3hjyq";
   };
 
   meta = {
diff --git a/pkgs/tools/system/sleuthkit/default.nix b/pkgs/tools/system/sleuthkit/default.nix
new file mode 100644
index 000000000000..86ec54ecb8fa
--- /dev/null
+++ b/pkgs/tools/system/sleuthkit/default.nix
@@ -0,0 +1,48 @@
+x@{builderDefsPackage
+  , libewf, afflib, openssl, zlib
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="sleuthkit";
+    version="3.2.2";
+    name="${baseName}-${version}";
+    url="mirror://sourceforge/project/${baseName}/${baseName}/${version}/${name}.tar.gz";
+    hash="02hik5xvbgh1dpisvc3wlhhq1aprnlsk0spbw6h5khpbq9wqnmgj";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A forensic/data recovery tool";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "IBM Public License";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://sourceforge.net/projects/sleuthkit/files/sleuthkit";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index 8cab529d5c38..140e0008ed83 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -1,11 +1,14 @@
 {stdenv, fetchurl}:
 
-stdenv.mkDerivation rec {
-  name = "smartmontools-5.38";
-  
+let
+  name = "smartmontools-5.41";
+in
+stdenv.mkDerivation {
+  inherit name;
+
   src = fetchurl {
     url = "mirror://sourceforge/smartmontools/${name}.tar.gz";
-    sha256 = "1s1i5y5n3jx681y03jj459yy4ijaq564z8bp2cgqb97wl4h762dj";
+    sha256 = "173eb14e3253a30230f38c7e684085bcae7fa021efff58bdf94c2702ac76fa32";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index 584da1559b8e..f5ee2f1bcbba 100644
--- a/pkgs/tools/misc/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     description = "Next-generation syslogd with advanced networking and filtering capabilities.";
     license = "GPLv2";
 
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/tools/system/tree/default.nix b/pkgs/tools/system/tree/default.nix
new file mode 100644
index 000000000000..549cc449f024
--- /dev/null
+++ b/pkgs/tools/system/tree/default.nix
@@ -0,0 +1,57 @@
+{stdenv, fetchurl}:
+
+let
+  version = "1.6.0";
+
+  # These settings are found in the Makefile, but there seems to be no
+  # way to select one ore the other setting other than editing the file
+  # manually, so we have to duplicate the know how here.
+  systemFlags =
+    if stdenv.isDarwin then ''
+      CFLAGS="-O2 -Wall -fomit-frame-pointer -no-cpp-precomp"
+      LDFLAGS=
+      EXTRA_OBJS=strverscmp.o
+    '' else if stdenv.isCygwin then ''
+      CFLAGS="-O2 -Wall -fomit-frame-pointer -DCYGWIN"
+      LDFLAGS=-s
+      TREE_DEST=tree.exe
+      EXTRA_OBJS=strverscmp.o
+    '' else if stdenv.isBSD then ''
+      CFLAGS="-O2 -Wall -fomit-frame-pointer"
+      LDFLAGS=-s
+      EXTRA_OBJS=strverscmp.o
+    '' else
+    ""; # use linux flags by default
+in
+stdenv.mkDerivation {
+  name = "tree-${version}";
+
+  src = fetchurl {
+    url = "http://mama.indstate.edu/users/ice/tree/src/tree-${version}.tgz";
+    sha256 = "4dc470a74880338b01da41701d8db90d0fb178877e526d385931a007d68d7591";
+  };
+
+  configurePhase = ''
+    sed -i Makefile -e 's|^OBJS=|OBJS=$(EXTRA_OBJS) |'
+    makeFlagsArray=(
+      prefix=$out
+      MANDIR=$out/share/man/man1
+      ${systemFlags}
+    )
+  '';
+
+  meta = {
+    homepage = "http://mama.indstate.edu/users/ice/tree/";
+    description = "command to produce a depth indented directory listing";
+    license = "GPLv2";
+
+    longDescription = ''
+      Tree is a recursive directory listing command that produces a
+      depth indented listing of files, which is colorized ala dircolors if
+      the LS_COLORS environment variable is set and output is to tty.
+    '';
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [stdenv.lib.maintainers.simons];
+  };
+}
diff --git a/pkgs/tools/text/colordiff/default.nix b/pkgs/tools/text/colordiff/default.nix
new file mode 100644
index 000000000000..07ce3de3d13d
--- /dev/null
+++ b/pkgs/tools/text/colordiff/default.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, perl /*, xmlto */}:
+
+stdenv.mkDerivation {
+  name = "colordiff-1.0.9";
+  src = fetchurl {
+    url = http://colordiff.sourceforge.net/colordiff-1.0.9.tar.gz;
+    sha256 = "b2c25d81c10f22380798f146cc5b54ffc5aeb6e5ca1208be2b9508fec1d8e4a6";
+  };
+
+  buildInputs = [ perl /* xmlto */ ];
+  dontBuild = 1; # do not build doc yet.
+  installPhase = ''make INSTALL_DIR=/bin MAN_DIR=/man DESTDIR="$out" install'';
+}
diff --git a/pkgs/tools/text/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index 59fb08aad5f0..dcc4116813ba 100644
--- a/pkgs/tools/text/dos2unix/default.nix
+++ b/pkgs/tools/text/dos2unix/default.nix
@@ -1,41 +1,24 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, perl, gettext }:
 
 stdenv.mkDerivation {
-  name = "dos2unix-2.2";
+  name = "dos2unix-5.3.1";
   
   src = fetchurl {
-    url = http://cvs.fedoraproject.org/repo/pkgs/dos2unix/dos2unix-3.1.tar.bz2/f90026a397cf787083ec2e4892c6dcdd/dos2unix-3.1.tar.bz2;
-    md5 = "f90026a397cf787083ec2e4892c6dcdd";
+    url = http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz;
+    sha256 = "0bwqw3wi0j4f1x8d39xw5v57ac0bc58j41vjx8v2qm1smg9jyci1";
   };
-  
-  patches = [
-    ./dos2unix-3.1.patch
-    ./dos2unix-3.1-segfault.patch
-    ./dos2unix-3.1-safeconv.patch
-    ./dos2unix-3.1-manpage-update-57507.patch
-    ./dos2unix-3.1-preserve-file-modes.patch
-    ./dos2unix-3.1-tmppath.patch
-    ./dos2unix-c-missing-arg.patch
-    ./dos2unix-missing-proto.patch
-    ./dos2unix-manpage.patch
-    ./dos2unix-preserve-file-modes.patch
-  ];
 
-  installPhase = ''
-    ensureDir $out/bin
-    ensureDir $out/share/man/man1
-    install -p -m755 dos2unix $out/bin
-    install  -p -m644 dos2unix.1 $out/share/man/man1
-    ln -s dos2unix $out/bin/mac2unix
+  configurePhase = ''
+    sed -i -e s,/usr,$out, Makefile
   '';
 
-  buildPhase = ''
-    rm -f dos2unix
-    make dos2unix
-  '';
+  buildInputs = [ perl gettext ];
 
   meta = {
-    homepage = http://unknown/;
-    description = "dos2unix tool";
+    homepage = http://waterlan.home.xs4all.nl/dos2unix.html;
+    description = "Tools to transform text files from dos to unix formats and vicervesa";
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; all;
   };
 }
diff --git a/pkgs/tools/text/dos2unix/dos2unix-3.1-manpage-update-57507.patch b/pkgs/tools/text/dos2unix/dos2unix-3.1-manpage-update-57507.patch
deleted file mode 100644
index e27096666f24..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-3.1-manpage-update-57507.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-Patch by Bill Anderson, to fix bug:
-	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=57507
-
-
-
-Description of Problem:
-
-The dos2unix man page examples are confusing.
-For instance, one piece of text mentions "c.txt", but that file
-isn't used in the following example.
-
-
-
---- dos2unix-3.1/dos2unix.1	2004-09-28 03:17:29.000000000 -0600
-+++ dos2unix-3.1/dos2unix.1-new	2004-09-28 03:16:32.000000000 -0600
-@@ -1,123 +1,126 @@
- .\" $$Id: dos2unix.1 2.2 1995/03/31 01:50:45 blin Exp blin $$
--.TH dos2unix 1 "dos2unix v3.0" "1995.03.31"
--
--.SH NAME
--
-+.\" 
-+.TH "dos2unix" "1" "dos2unix v3.0" "1995.03.31" ""
-+.SH "NAME"
- dos2unix \- DOS/MAC to UNIX text file format converter
- 
--.SH SYNOPSYS
--
--dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]
--.PP
-+.SH "SYNOPSYS"
-+dos2unix [options] [\-c convmode] [\-o file ...] [\-n infile outfile ...]
-+.PP 
- Options:
--.PP
--[-hkqV] [--help] [--keepdate] [--quiet] [--version]
--
--.SH DESCRIPTION
-+.PP 
-+[\-hkqV] [\-\-help] [\-\-keepdate] [\-\-quiet] [\-\-version]
- 
--.PP
-+.SH "DESCRIPTION"
-+.PP 
- This manual page documents dos2unix, the program that converts plain text
- files in DOS/MAC format to UNIX format.
- 
--.SH OPTIONS
--
-+.SH "OPTIONS"
- The following options are available:
--.TP
--.B \-h --help
-+.TP 
-+.B \-h \-\-help
- Print online help.
- 
--.TP
--.B \-k --keepdate
-+.TP 
-+.B \-k \-\-keepdate
- Keep the date stamp of output file same as input file.
- 
--.TP
--.B \-q --quiet
-+.TP 
-+.B \-q \-\-quiet
- Quiet mode. Suppress all warning and messages.
- 
--.TP
--.B \-V --version
-+.TP 
-+.B \-V \-\-version
- Prints version information.
- 
--.TP
--.B \-c --convmode convmode
--Sets conversion mode. Simulates dos2unix under SunOS.
-+.TP 
-+.B \-c \-\-convmode convmode
-+Sets conversion mode. Where convmode is one of:
-+.B ASCII, 7bit, ISO, Mac
-+with ASCII being the default.
-+Simulates dos2unix under SunOS.
-+
-+
- 
--.TP
--.B \-o --oldfile file ...
-+.TP 
-+.B \-o \-\-oldfile file ...
- Old file mode. Convert the file and write output to it. The program 
- default to run in this mode. Wildcard names may be used.
- 
--.TP
--.B \-n --newfile infile outfile ...
-+.TP 
-+.B \-n \-\-newfile infile outfile ...
- New file mode. Convert the infile and write output to outfile. File names
- must be given in pairs and wildcard names should NOT be used or you WILL 
- lost your files. 
- 
--.SH EXAMPLES
--
--.LP
-+.SH "EXAMPLES"
-+.LP 
- Get input from stdin and write output to stdout.
--.IP
-+.IP 
- .B dos2unix
- 
--.LP
-+.LP 
- Convert and replace a.txt. Convert and replace b.txt.
--.IP
-+.IP 
- .B dos2unix a.txt b.txt
--.IP
--.B dos2unix -o a.txt b.txt
-+.IP 
-+.B dos2unix \-o a.txt b.txt
- 
--.LP
-+.LP 
- Convert and replace a.txt in ASCII conversion mode. 
-+.IP 
-+.B dos2unix a.txt \-c iso b.txt
-+
-+.LP 
- Convert and replace b.txt in ISO conversion mode.
-+.IP 
-+.B dos2unix \-c ascii a.txt \-c iso b.txt
-+
-+.LP 
- Convert c.txt from Mac to Unix ascii format.
--.IP
--.B dos2unix a.txt -c iso b.txt
--.IP
--.B dos2unix -c ascii a.txt -c iso b.txt
--.IP
--.B dos2unix -c mac a.txt  b.txt
- 
--.LP
-+.IP 
-+.B dos2unix \-c mac c.txt  b.txt
-+
-+.LP 
- Convert and replace a.txt while keeping original date stamp.
--.IP
--.B dos2unix -k a.txt
--.IP
--.B dos2unix -k -o a.txt
-+.IP 
-+.B dos2unix \-k a.txt
-+.IP 
-+.B dos2unix \-k \-o a.txt
- 
--.LP
-+.LP 
- Convert a.txt and write to e.txt.
--.IP
--.B dos2unix -n a.txt e.txt
-+.IP 
-+.B dos2unix \-n a.txt e.txt
- 
--.LP
-+.LP 
- Convert a.txt and write to e.txt, keep date stamp of e.txt same as a.txt.
--.IP
--.B dos2unix -k -n a.txt e.txt 
-+.IP 
-+.B dos2unix \-k \-n a.txt e.txt 
- 
--.LP
-+.LP 
- Convert and replace a.txt. Convert b.txt and write to e.txt.
--.IP
--.B dos2unix a.txt -n b.txt e.txt
--.IP
--.B dos2unix -o a.txt -n b.txt e.txt
-+.IP 
-+.B dos2unix a.txt \-n b.txt e.txt
-+.IP 
-+.B dos2unix \-o a.txt \-n b.txt e.txt
- 
--.LP
-+.LP 
- Convert c.txt and write to e.txt. Convert and replace a.txt.
- Convert and replace b.txt. Convert d.txt and write to f.txt.
--.IP
--.B dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
-+.IP 
-+.B dos2unix \-n c.txt e.txt \-o a.txt b.txt \-n d.txt f.txt
- 
--.SH DIAGNOSTICS
--
--.SH BUGS
-+.SH "DIAGNOSTICS"
- 
-+.SH "BUGS"
- The program does not work properly under MSDOS in stdio processing mode. 
- If you know why is that so, please tell me.
- 
--.SH AUTHORS
--
--Benjamin Lin -
-+.SH "AUTHORS"
-+Benjamin Lin \-
- .B <blin@socs.uts.edu.au>
- 
- 
-@@ -125,18 +128,17 @@
- .B <wuebben@kde.org>
- 
- 
--.SH MISCELLANY
--
-+.SH "MISCELLANY"
- Tested environment:
--.IP
-+.IP 
- Linux 1.2.0 with GNU C 2.5.8
--.IP
-+.IP 
- SunOS 4.1.3 with GNU C 2.6.3
--.IP
--MS-DOS 6.20 with Borland C++ 4.02
--.PP
-+.IP 
-+MS\-DOS 6.20 with Borland C++ 4.02
-+.PP 
- Suggestions and bug reports are welcome.
- 
--.SH SEE ALSO
-+.SH "SEE ALSO"
- unix2dos(1) mac2unix(1)
- 
diff --git a/pkgs/tools/text/dos2unix/dos2unix-3.1-preserve-file-modes.patch b/pkgs/tools/text/dos2unix/dos2unix-3.1-preserve-file-modes.patch
deleted file mode 100644
index 7e8f3bdd55d5..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-3.1-preserve-file-modes.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- dos2unix-3.1/dos2unix.c.mode	2003-05-21 08:09:08.000000000 -0700
-+++ dos2unix-3.1/dos2unix.c	2003-05-21 08:09:56.000000000 -0700
-@@ -345,11 +345,14 @@ int ConvertDosToUnixOldFile(char* ipInFN
-   char TempPath[16];
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-+  mode_t mode = S_IRUSR | S_IWUSR;
-   int fd;
- 
-   /* retrieve ipInFN file date stamp */
--  if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-+  if (stat(ipInFN, &StatBuf))
-     RetVal = -1;
-+  else
-+    mode = StatBuf.st_mode;
- 
-   strcpy (TempPath, "./u2dtmpXXXXXX");
-   if((fd=mkstemp (TempPath))<0) {
-@@ -357,6 +360,9 @@ int ConvertDosToUnixOldFile(char* ipInFN
- 	  RetVal = -1;
-   }
- 
-+  if (!RetVal && fchmod (fd, mode) && fchmod (fd, S_IRUSR | S_IWUSR))
-+    RetVal = -1;
-+
- #ifdef DEBUG
-   fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
- #endif DEBUG
diff --git a/pkgs/tools/text/dos2unix/dos2unix-3.1-safeconv.patch b/pkgs/tools/text/dos2unix/dos2unix-3.1-safeconv.patch
deleted file mode 100644
index 11998be1fddf..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-3.1-safeconv.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-* Fix http://bugzilla.redhat.com/57508 (make dos2unix not modify Mac
-  files unless in mac2unix mode)
-* Make mac2unix mode not create duplicate Unix line delimiters when
-  run on a DOS file. (mschwendt@users.sf.net)
-
-diff -Nur dos2unix-3.1-orig/dos2unix.c dos2unix-3.1/dos2unix.c
---- dos2unix-3.1-orig/dos2unix.c	1998-11-19 13:19:25.000000000 +0100
-+++ dos2unix-3.1/dos2unix.c	2004-09-26 20:57:41.606587616 +0200
-@@ -153,6 +153,24 @@
- }
- 
- 
-+void StripDelimiter(FILE* ipInF, FILE* ipOutF, CFlag *ipFlag, int CurChar)
-+{
-+  int TempNextChar;
-+  /* Don't modify Mac files when in dos2unix mode. */
-+  if ( (TempNextChar = getc(ipInF)) != EOF) {
-+    ungetc( TempNextChar, ipInF );  /* put back peek char */
-+    if ( TempNextChar != '\x0a' ) {
-+      putc( CurChar, ipOutF );  /* Mac line, put back CR */
-+    }
-+  }
-+  else if ( CurChar == '\x0d' ) {  /* EOF: last Mac line delimiter (CR)? */
-+    putc( CurChar, ipOutF );
-+  }
-+  if (ipFlag->NewLine) {  /* add additional LF? */
-+    putc('\n', ipOutF);
-+  }
-+}
-+
- /* converts stream ipInF to UNIX format text and write to stream ipOutF
-  * RetVal: 0  if success
-  *         -1  otherwise
-@@ -161,6 +179,7 @@
- {
-     int RetVal = 0;
-     int TempChar;
-+    int TempNextChar;
-     
-     if ( macmode )
-       ipFlag->ConvMode = 3;
-@@ -177,9 +196,7 @@
- 		break;
- 	      } 
- 	    } else {
--	      if (ipFlag->NewLine) {
--		putc('\n', ipOutF);
--	      }
-+	      StripDelimiter( ipInF, ipOutF, ipFlag, TempChar );
- 	    }
- 	  }
- 	  break;
-@@ -193,9 +210,7 @@
- 		break;
- 	      }
- 	    } else {
--	      if (ipFlag->NewLine) {
--		putc('\n', ipOutF);
--	      }
-+	      StripDelimiter( ipInF, ipOutF, ipFlag, TempChar );
- 	    }
- 	  }
- 	  break;
-@@ -209,9 +224,7 @@
- 		break;
- 	      }
- 	    } else {
--	      if (ipFlag->NewLine) {
--		putc('\n', ipOutF);
--	      }
-+	      StripDelimiter( ipInF, ipOutF, ipFlag, TempChar );
- 	    }
- 	  }
- 	  break;
-@@ -227,6 +240,13 @@
- 		}
- 	      }
- 	    else{
-+	      if ( (TempNextChar = getc(ipInF)) != EOF) {
-+		ungetc( TempNextChar, ipInF );  /* put back peek char */
-+		/* Don't touch this delimiter if it's a CR,LF pair. */
-+		if ( TempNextChar == '\x0a' ) {
-+		  continue;
-+		}
-+	      }
- 	      if (putc('\x0a', ipOutF) == EOF)
- 		{
- 		  RetVal = -1;
diff --git a/pkgs/tools/text/dos2unix/dos2unix-3.1-segfault.patch b/pkgs/tools/text/dos2unix/dos2unix-3.1-segfault.patch
deleted file mode 100644
index 7c8391bd2bdb..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-3.1-segfault.patch
+++ /dev/null
@@ -1,93 +0,0 @@
---- dos2unix-3.1/dos2unix.c.segf	Thu Jan 17 17:27:42 2002
-+++ dos2unix-3.1/dos2unix.c	Thu Jan 17 17:28:07 2002
-@@ -147,9 +147,9 @@
-  * RetVal: NULL if failure
-  *         file stream otherwise
-  */
--FILE* OpenOutFile(char *ipFN)
-+FILE* OpenOutFile(int fd)
- {
--  return (fopen(ipFN, W_CNTRL));
-+  return (fdopen(fd, W_CNTRL));
- }
- 
- 
-@@ -260,14 +260,17 @@
-   char TempPath[16];
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-+  int fd;
- 
-   /* retrieve ipInFN file date stamp */
-   if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
--  strcpy (TempPath, "./d2utmp");
--  strcat (TempPath, "XXXXXX");
--  mkstemp (TempPath);
-+  strcpy (TempPath, "./d2utmpXXXXXX");
-+  if((fd=mkstemp (TempPath))<0) {
-+	  perror("Failed to open output temp file");
-+	  RetVal = -1;
-+  }
- 
- #ifdef DEBUG
-   fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
-@@ -278,7 +281,7 @@
-     RetVal = -1;
- 
-   /* can open out file? */
--  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
-+  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-     RetVal = -1;
-@@ -295,6 +298,8 @@
-   /* can close out file? */
-   if ((TempF) && (fclose(TempF) == EOF))
-     RetVal = -1;
-+  if(fd>=0)
-+	  close(fd);
- 
-   if ((!RetVal) && (ipFlag->KeepDate))
-   {
-@@ -340,14 +345,17 @@
-   char TempPath[16];
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-+  int fd;
- 
-   /* retrieve ipInFN file date stamp */
-   if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
--  strcpy (TempPath, "./u2dtmp");
--  strcat (TempPath, "XXXXXX");
--  mkstemp (TempPath);
-+  strcpy (TempPath, "./u2dtmpXXXXXX");
-+  if((fd=mkstemp (TempPath))<0) {
-+	  perror("Failed to open output temp file");
-+	  RetVal = -1;
-+  }
- 
- #ifdef DEBUG
-   fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
-@@ -358,7 +366,7 @@
-     RetVal = -1;
- 
-   /* can open out file? */
--  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
-+  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-     RetVal = -1;
-@@ -376,6 +384,9 @@
-   if ((TempF) && (fclose(TempF) == EOF))
-     RetVal = -1;
- 
-+  if(fd>=0)
-+	  close(fd);
-+
-   if ((!RetVal) && (ipFlag->KeepDate))
-   {
-     UTimeBuf.actime = StatBuf.st_atime;
diff --git a/pkgs/tools/text/dos2unix/dos2unix-3.1-tmppath.patch b/pkgs/tools/text/dos2unix/dos2unix-3.1-tmppath.patch
deleted file mode 100644
index 6db6c84e04a7..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-3.1-tmppath.patch
+++ /dev/null
@@ -1,141 +0,0 @@
---- dos2unix-3.1/dos2unix.c.tmppath	2004-10-20 16:00:00.342561008 +0200
-+++ dos2unix-3.1/dos2unix.c	2004-10-20 16:01:42.210074792 +0200
-@@ -69,6 +69,7 @@
- #ifdef __MSDOS__
- #  include <dir.h>
- #endif __MSDOS__
-+#include <libgen.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -267,6 +268,39 @@
-     return RetVal;
- }
- 
-+static int MakeTempFileFrom(const char *OutFN, char **fname_ret)
-+{
-+  char *cpy = strdup(OutFN);
-+  char *dir = NULL;
-+  size_t fname_len = 0;
-+  char  *fname_str = NULL;
-+  int fd = -1;
-+  
-+  *fname_ret = NULL;
-+  
-+  if (!cpy)
-+    goto make_failed;
-+  
-+  dir = dirname(cpy);
-+  
-+  fname_len = strlen(dir) + strlen("/d2utmpXXXXXX") + sizeof (char);
-+  if (!(fname_str = malloc(fname_len)))
-+    goto make_failed;
-+  sprintf(fname_str, "%s%s", dir, "/d2utmpXXXXXX");
-+  *fname_ret = fname_str;
-+  
-+  free(cpy);
-+  
-+  if ((fd = mkstemp(fname_str)) == -1)
-+    goto make_failed;
-+  
-+  return (fd);
-+  
-+ make_failed:
-+  free(*fname_ret);
-+  *fname_ret = NULL;
-+  return (-1);
-+}
- 
- /* convert file ipInFN to UNIX format text and write to file ipOutFN
-  * RetVal: 0 if success
-@@ -277,7 +311,7 @@
-   int RetVal = 0;
-   FILE *InF = NULL;
-   FILE *TempF = NULL;
--  char TempPath[16];
-+  char *TempPath;
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-   int fd;
-@@ -286,8 +320,7 @@
-   if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
--  strcpy (TempPath, "./d2utmpXXXXXX");
--  if((fd=mkstemp (TempPath))<0) {
-+  if((fd = MakeTempFileFrom(ipOutFN, &TempPath))<0) {
- 	  perror("Failed to open output temp file");
- 	  RetVal = -1;
-   }
-@@ -304,6 +337,7 @@
-   if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-+    InF = NULL;
-     RetVal = -1;
-   }
- 
-@@ -337,9 +371,6 @@
-   /* can rename temp file to out file? */
-   if (!RetVal)
-   {
--    if (stat(ipOutFN, &StatBuf) == 0)
--      unlink(ipOutFN);
--
-     if ((rename(TempPath, ipOutFN) == -1) && (!ipFlag->Quiet))
-     {
-       fprintf(stderr, "dos2unix: problems renaming '%s' to '%s'\n", TempPath, ipOutFN);
-@@ -347,6 +378,7 @@
-       RetVal = -1;
-     }
-   }
-+  free(TempPath);
-   return RetVal;
- }
- 
-@@ -362,7 +394,7 @@
-   int RetVal = 0;
-   FILE *InF = NULL;
-   FILE *TempF = NULL;
--  char TempPath[16];
-+  char *TempPath;
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-   mode_t mode = S_IRUSR | S_IWUSR;
-@@ -374,8 +406,7 @@
-   else
-     mode = StatBuf.st_mode;
- 
--  strcpy (TempPath, "./u2dtmpXXXXXX");
--  if((fd=mkstemp (TempPath))<0) {
-+  if((fd = MakeTempFileFrom(ipInFN, &TempPath))<0) {
- 	  perror("Failed to open output temp file");
- 	  RetVal = -1;
-   }
-@@ -395,6 +426,7 @@
-   if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-+    InF = NULL;
-     RetVal = -1;
-   }
- 
-@@ -422,10 +454,6 @@
-       RetVal = -1;
-   }
- 
--  /* can delete in file? */
--  if ((!RetVal) && (unlink(ipInFN) == -1))
--    RetVal = -1;
--
-   /* any error? */
-   if ((RetVal) && (unlink(TempPath)))
-     RetVal = -1;
-@@ -440,6 +468,7 @@
-     }
-     RetVal = -1;
-   }
-+  free(TempPath);
-   return RetVal;
- }
- 
diff --git a/pkgs/tools/text/dos2unix/dos2unix-3.1.patch b/pkgs/tools/text/dos2unix/dos2unix-3.1.patch
deleted file mode 100644
index 5f823b2e7a9b..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-3.1.patch
+++ /dev/null
@@ -1,49 +0,0 @@
---- dos2unix-3.1/Makefile.orig	Thu Nov 19 07:09:38 1998
-+++ dos2unix-3.1/Makefile	Fri Nov 17 13:25:35 2000
-@@ -1,10 +1,12 @@
-+CFLAGS=
-+
- default: dos2unix
- 
- all:	dos2unix link install
- 
- 
- dos2unix:
--	gcc -O dos2unix.c -o dos2unix
-+	gcc $(CFLAGS) dos2unix.c -o dos2unix
- 
- 
- link:	
-@@ -12,11 +14,10 @@
- 	ln -s dos2unix.1 mac2unix.1		
- 
- clean:
--	rm dos2unix
-+	rm -f dos2unix mac2unix mac2unix.1 *~ *.orig core
- 
- install:
- 	install -m 755 dos2unix /usr/local/bin
- 	install -m 644 dos2unix.1 /usr/local/man/man1
- 	install -m 755 mac2unix /usr/local/bin
- 	install -m 644 mac2unix.1 /usr/local/man/man1
--
---- dos2unix-3.1/dos2unix.c.orig	Thu Nov 19 07:19:25 1998
-+++ dos2unix-3.1/dos2unix.c	Fri Nov 17 13:25:25 2000
-@@ -267,7 +267,7 @@
- 
-   strcpy (TempPath, "./d2utmp");
-   strcat (TempPath, "XXXXXX");
--  mktemp (TempPath);
-+  mkstemp (TempPath);
- 
- #ifdef DEBUG
-   fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
-@@ -347,7 +347,7 @@
- 
-   strcpy (TempPath, "./u2dtmp");
-   strcat (TempPath, "XXXXXX");
--  mktemp (TempPath);
-+  mkstemp (TempPath);
- 
- #ifdef DEBUG
-   fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
diff --git a/pkgs/tools/text/dos2unix/dos2unix-c-missing-arg.patch b/pkgs/tools/text/dos2unix/dos2unix-c-missing-arg.patch
deleted file mode 100644
index ff63e67134f7..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-c-missing-arg.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up dos2unix-3.1/dos2unix.c.c-missing-arg dos2unix-3.1/dos2unix.c
---- dos2unix-3.1/dos2unix.c.c-missing-arg	2008-01-18 09:24:21.000000000 +0000
-+++ dos2unix-3.1/dos2unix.c	2008-01-18 09:25:43.000000000 +0000
-@@ -533,19 +533,28 @@ int main (int argc, char *argv[])
-       
-       if ((strcmp(argv[ArgIdx],"-c") == 0) || (strcmp(argv[ArgIdx],"--convmode") == 0))
-       {
--        ArgIdx++;
--        if (strcmpi(argv[ArgIdx],"ASCII") == 0)
--          pFlag->ConvMode = 0;
--        else if (strcmpi(argv[ArgIdx], "7Bit") == 0)
--          pFlag->ConvMode = 1;
--        else if (strcmpi(argv[ArgIdx], "ISO") == 0)
--          pFlag->ConvMode = 2;
--        else if (strcmpi(argv[ArgIdx], "Mac") == 0)
--          pFlag->ConvMode = 3;
-+        if (++ArgIdx < argc)
-+        {
-+          if (strcmpi(argv[ArgIdx],"ASCII") == 0)
-+            pFlag->ConvMode = 0;
-+          else if (strcmpi(argv[ArgIdx], "7Bit") == 0)
-+            pFlag->ConvMode = 1;
-+          else if (strcmpi(argv[ArgIdx], "ISO") == 0)
-+            pFlag->ConvMode = 2;
-+          else if (strcmpi(argv[ArgIdx], "Mac") == 0)
-+            pFlag->ConvMode = 3;
-+          else
-+          {
-+            if (!pFlag->Quiet)
-+              fprintf(stderr, "dos2unix: invalid %s conversion mode specified\n",argv[ArgIdx]);
-+            ShouldExit = 1;
-+          }
-+        }
-         else
-         {
-+          ArgIdx--;
-           if (!pFlag->Quiet)
--            fprintf(stderr, "dos2unix: invalid %s conversion mode specified\n",argv[ArgIdx]);
-+            fprintf(stderr,"dos2unix: option `%s' requires an argument\n",argv[ArgIdx]);
-           ShouldExit = 1;
-         }
-       }
diff --git a/pkgs/tools/text/dos2unix/dos2unix-manpage.patch b/pkgs/tools/text/dos2unix/dos2unix-manpage.patch
deleted file mode 100644
index f9e1e6701bc7..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-manpage.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up dos2unix-3.1/dos2unix.1.manpage dos2unix-3.1/dos2unix.1
---- dos2unix-3.1/dos2unix.1.manpage	2008-09-08 09:58:46.000000000 +0100
-+++ dos2unix-3.1/dos2unix.1	2008-09-08 09:58:56.000000000 +0100
-@@ -52,7 +52,7 @@ default to run in this mode. Wildcard na
- .B \-n \-\-newfile infile outfile ...
- New file mode. Convert the infile and write output to outfile. File names
- must be given in pairs and wildcard names should NOT be used or you WILL 
--lost your files. 
-+lose your files. 
- 
- .SH "EXAMPLES"
- .LP 
diff --git a/pkgs/tools/text/dos2unix/dos2unix-missing-proto.patch b/pkgs/tools/text/dos2unix/dos2unix-missing-proto.patch
deleted file mode 100644
index 72cd2c0b6a45..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-missing-proto.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up dos2unix-3.1/dos2unix.c.missing-proto dos2unix-3.1/dos2unix.c
---- dos2unix-3.1/dos2unix.c.missing-proto	2008-04-14 17:11:58.000000000 +0100
-+++ dos2unix-3.1/dos2unix.c	2008-04-14 17:12:42.000000000 +0100
-@@ -75,6 +75,11 @@ static int macmode = 0;
- #include <string.h>
- #include <utime.h>
- #include <sys/stat.h>
-+#if defined(__MSDOS__) || defined(__WIN32__) || defined(_WIN32)
-+#  include <io.h>
-+#else
-+#  include <unistd.h>
-+#endif
- #include "dos2unix.h"
- 
- 
diff --git a/pkgs/tools/text/dos2unix/dos2unix-preserve-file-modes.patch b/pkgs/tools/text/dos2unix/dos2unix-preserve-file-modes.patch
deleted file mode 100644
index 1d4ab5d8e71e..000000000000
--- a/pkgs/tools/text/dos2unix/dos2unix-preserve-file-modes.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up dos2unix-3.1/dos2unix.c.preserve-file-modes dos2unix-3.1/dos2unix.c
---- dos2unix-3.1/dos2unix.c.preserve-file-modes	2008-09-08 09:58:05.000000000 +0100
-+++ dos2unix-3.1/dos2unix.c	2008-09-08 10:16:04.000000000 +0100
-@@ -320,9 +320,10 @@ int ConvertDosToUnixNewFile(char *ipInFN
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-   int fd;
-+  mode_t mask;
- 
-   /* retrieve ipInFN file date stamp */
--  if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-+  if (stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
-   if((fd = MakeTempFileFrom(ipOutFN, &TempPath))<0) {
-@@ -346,6 +347,12 @@ int ConvertDosToUnixNewFile(char *ipInFN
-     RetVal = -1;
-   }
- 
-+  /* preserve original mode as modified by umask */
-+  mask = umask(0);
-+  umask(mask);
-+  if (!RetVal && fchmod(fd, StatBuf.st_mode & ~mask))
-+    RetVal = -1;
-+
-   /* conversion sucessful? */
-   if ((!RetVal) && (ConvertDosToUnix(InF, TempF, ipFlag)))
-     RetVal = -1;
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index 63956a630354..a474a036661b 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, qt4, perl, kdelibs, kdebase, automoc4, phonon, gettext}:
+{ stdenv, fetchurl, cmake, qt4, perl, kdelibs, automoc4, phonon, gettext, kde_baseapps }:
 
 stdenv.mkDerivation rec {
   name = "kdiff3-0.9.95";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   };
 
   # kdebase allows having a konqueror plugin built
-  buildInputs = [ cmake qt4 perl kdelibs automoc4 phonon gettext kdebase ];
+  buildInputs = [ cmake qt4 perl kdelibs automoc4 phonon gettext kde_baseapps ];
 
   # Adjust the version of the DocBook XML to 4.2 ( so that it validates ).
   patches = [ ./adjust-docbook-xml-version-to-4.2.patch ];
diff --git a/pkgs/tools/text/mairix/default.nix b/pkgs/tools/text/mairix/default.nix
new file mode 100644
index 000000000000..feaf3afe52b4
--- /dev/null
+++ b/pkgs/tools/text/mairix/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, zlib, bzip2, bison, flex }:
+
+stdenv.mkDerivation rec {
+  name = "mairix-0.22";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mairix/${name}.tar.gz";
+    sha256 = "0kwxq738nbv8ip5gkq2bw320qs1vg0pnv7wsc0p5cxwzxxrv47ql";
+  };
+
+  buildInputs = [ zlib bzip2 bison flex ];
+
+  meta = {
+    homepage = http://www.rc0.org.uk/mairix;
+    license = "GPLv2+";
+    description = "Program for indexing and searching email messages stored in maildir, MH or mbox";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/pkgs/tools/text/sgml/opensp/compat.nix b/pkgs/tools/text/sgml/opensp/compat.nix
new file mode 100644
index 000000000000..8e521da20848
--- /dev/null
+++ b/pkgs/tools/text/sgml/opensp/compat.nix
@@ -0,0 +1,15 @@
+{ stdenv, opensp }:
+
+stdenv.mkDerivation {
+  name = "sp-compat-${builtins.substring 7 100 opensp.name}";
+
+  buildCommand = ''
+    mkdir -pv $out/bin
+    for i in ${opensp}/bin/o*; do
+      ln -sv $i $out/bin/''${i#${opensp}/bin/o}
+    done
+    '';
+
+  meta.description =
+    "Compatibility wrapper for old programs looking for original sp programs";
+}
diff --git a/pkgs/tools/text/source-highlight/default.nix b/pkgs/tools/text/source-highlight/default.nix
index 35dc7a8a8e6e..ae46d212f016 100644
--- a/pkgs/tools/text/source-highlight/default.nix
+++ b/pkgs/tools/text/source-highlight/default.nix
@@ -2,27 +2,31 @@
 
 let
   name = "source-highlight";
-  version = "3.1.3";
+  version = "3.1.4";
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
       url = "mirror://gnu/src-highlite/${name}-${version}.tar.gz";
-      sha256 = "2d819f2ffdc8bb23a87635bdfbc51545db22605a8e544f66f86054b8075af0b5";
+      sha256 = "1jd30ansx2pld196lik6r85aifdhd0cav701vasf4ws8kc8zkcxc";
     };
 
+  # Help it find Boost::Regex.
+  preConfigure =
+    '' export ax_cv_boost_regex=yes
+       export link_regex=yes
+       export BOOST_REGEX_LIB=-lboost_regex
+    '';
+
   buildInputs = [boost];
-  doCheck = false;		# The test suite fails with a trivial
-				# error, so I'll disable it for now.
-				# Whoever bumps this build to the next
-				# version, please re-enable it though!
+  doCheck = true;
 
   meta = {
-    description = "render source code with syntax highlighting";
+    description = "GNU Source-Highlight, source code renderer with syntax highlighting";
     homepage = "http://www.gnu.org/software/src-highlite/";
     license = "GPLv3+";
-    maintainers = [ ];
+    maintainers = [ stdenv.lib.maintainers.ludo ];
     platforms = stdenv.lib.platforms.all;
     longDescription =
       ''
diff --git a/pkgs/tools/text/unix2dos/default.nix b/pkgs/tools/text/unix2dos/default.nix
deleted file mode 100644
index 326149feb210..000000000000
--- a/pkgs/tools/text/unix2dos/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "unix2dos-2.2";
-  
-  src = fetchurl {
-    url = http://cvs.fedoraproject.org/repo/pkgs/unix2dos/unix2dos-2.2.src.tar.gz/e4488c241fa9067a48a7534a21d4babb/unix2dos-2.2.src.tar.gz;
-    md5 = "e4488c241fa9067a48a7534a21d4babb";
-  };
-
-  patches = [
-    ./unix2dos-mkstemp.patch
-    ./unix2dos-2.2-segfault.patch
-    ./unix2dos-2.2-manpage.patch
-    ./unix2dos-2.2-mode.patch
-    ./unix2dos-2.2-tmppath.patch
-    ./unix2dos-preserve-file-modes.patch
-  ];
-
-  sourceRoot = ".";
-
-  buildPhase = ''
-    cc -o unix2dos unix2dos.c
-  '';
-
-  installPhase = ''
-    ensureDir $out/bin
-    ensureDir $out/share/man
-    install -p -m755 unix2dos $out/bin
-    install -p -m444 unix2dos.1 $out/share/man
-  '';
-
-  meta = {
-    homepage = http://unknown/;
-    description = "unix2dos tool";
-  };
-}
diff --git a/pkgs/tools/text/unix2dos/unix2dos-2.2-manpage.patch b/pkgs/tools/text/unix2dos/unix2dos-2.2-manpage.patch
deleted file mode 100644
index 1172e2f82ea7..000000000000
--- a/pkgs/tools/text/unix2dos/unix2dos-2.2-manpage.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up unix2dos-2.2/unix2dos.1.man unix2dos-2.2/unix2dos.1
---- unix2dos-2.2/unix2dos.1.man	1995-03-30 17:03:22.000000000 +0100
-+++ unix2dos-2.2/unix2dos.1	2008-09-08 09:49:19.000000000 +0100
-@@ -16,7 +16,7 @@ Options:
- .SH DESCRIPTION
- 
- .PP
--This manual page documents dos2unix, the program that converts text 
-+This manual page documents unix2dos, the program that converts text 
- files in UNIX format to DOS format.
- 
- .SH OPTIONS
-@@ -40,7 +40,7 @@ Prints version information.
- 
- .TP
- .B \-c --convmode convmode
--Sets conversion mode. Simulates dos2unix under SunOS.
-+Sets conversion mode. Simulates unix2dos under SunOS.
- 
- .TP
- .B \-o --oldfile file ...
-@@ -51,7 +51,7 @@ default to run in this mode. Wildcard na
- .B \-n --newfile infile outfile ...
- New file mode. Convert the infile and write output to outfile. File names
- must be given in pairs and wildcard names should NOT be used or you WILL 
--lost your files. 
-+lose your files. 
- 
- .SH EXAMPLES
- 
-@@ -71,9 +71,9 @@ Convert and replace a.txt. Convert and r
- Convert and replace a.txt in ASCII conversion mode.
- Convert and replace b.txt in ISO conversion mode.
- .IP
--.B dos2unix a.txt -c iso b.txt
-+.B unix2dos a.txt -c iso b.txt
- .IP
--.B dos2unix -c ascii a.txt -c iso b.txt
-+.B unix2dos -c ascii a.txt -c iso b.txt
- 
- .LP
- Convert and replace a.txt while keeping original date stamp.
diff --git a/pkgs/tools/text/unix2dos/unix2dos-2.2-mode.patch b/pkgs/tools/text/unix2dos/unix2dos-2.2-mode.patch
deleted file mode 100644
index f5ff62aab823..000000000000
--- a/pkgs/tools/text/unix2dos/unix2dos-2.2-mode.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up unix2dos-2.2/unix2dos.c.mode unix2dos-2.2/unix2dos.c
---- unix2dos-2.2/unix2dos.c.mode	2008-09-08 10:13:39.000000000 +0100
-+++ unix2dos-2.2/unix2dos.c	2008-09-08 10:13:39.000000000 +0100
-@@ -292,11 +292,14 @@ int ConvertUnixToDosOldFile(char* ipInFN
-   char TempPath[16];
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-+  mode_t mode = S_IRUSR | S_IWUSR;
-   int fd;
- 
-   /* retrieve ipInFN file date stamp */
--  if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-+  if (stat(ipInFN, &StatBuf))
-     RetVal = -1;
-+  else
-+    mode = StatBuf.st_mode;
- 
-   strcpy (TempPath, "./u2dtmpXXXXXX");
-   if((fd=mkstemp (TempPath)) < 0) {
-@@ -304,6 +307,9 @@ int ConvertUnixToDosOldFile(char* ipInFN
-       RetVal = -1;
-   }
- 
-+  if (!RetVal && fchmod (fd, mode) && fchmod (fd, S_IRUSR | S_IWUSR))
-+    RetVal = -1;
-+
- #ifdef DEBUG
-   fprintf(stderr, "unix2dos: using %s as temp file\n", TempPath);
- #endif DEBUG    
diff --git a/pkgs/tools/text/unix2dos/unix2dos-2.2-segfault.patch b/pkgs/tools/text/unix2dos/unix2dos-2.2-segfault.patch
deleted file mode 100644
index a92f57cfe70c..000000000000
--- a/pkgs/tools/text/unix2dos/unix2dos-2.2-segfault.patch
+++ /dev/null
@@ -1,94 +0,0 @@
---- unix2dos-2.2/unix2dos.c.segf	Thu Jan 17 17:09:49 2002
-+++ unix2dos-2.2/unix2dos.c	Thu Jan 17 17:12:47 2002
-@@ -131,9 +131,9 @@
-  * RetVal: NULL if failure
-  *         file stream otherwise
-  */
--FILE* OpenOutFile(char *ipFN)
-+FILE* OpenOutFile(int fd)
- {
--  return (fopen(ipFN, W_CNTRL));
-+  return (fdopen(fd, W_CNTRL));
- }
- 
- 
-@@ -207,14 +207,17 @@
-   char TempPath[16];
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-+  int fd;
- 
-   /* retrieve ipInFN file date stamp */
-   if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
--  strcpy (TempPath, "./u2dtmp");
--  strcat (TempPath, "XXXXXX");
--  mkstemp (TempPath);
-+  strcpy (TempPath, "./u2dtmpXXXXXX");
-+  if((fd=mkstemp (TempPath)) < 0) {
-+	  perror("Can't open output temp file");
-+	  RetVal = -1;
-+  }
- 
- #ifdef DEBUG
-   fprintf(stderr, "unix2dos: using %s as temp file\n", TempPath);
-@@ -225,7 +228,7 @@
-     RetVal = -1;
- 
-   /* can open out file? */
--  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
-+  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-     RetVal = -1;
-@@ -243,6 +246,9 @@
-   if ((TempF) && (fclose(TempF) == EOF))
-     RetVal = -1;
- 
-+  if(fd>=0)
-+	  close(fd);
-+
-   if ((!RetVal) && (ipFlag->KeepDate))
-   {
-     UTimeBuf.actime = StatBuf.st_atime;
-@@ -286,14 +292,17 @@
-   char TempPath[16];
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-+  int fd;
- 
-   /* retrieve ipInFN file date stamp */
-   if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
--  strcpy (TempPath, "./u2dtmp");
--  strcat (TempPath, "XXXXXX");
--  mkstemp (TempPath);
-+  strcpy (TempPath, "./u2dtmpXXXXXX");
-+  if((fd=mkstemp (TempPath)) < 0) {
-+      perror("Can't open output temp file");
-+      RetVal = -1;
-+  }
- 
- #ifdef DEBUG
-   fprintf(stderr, "unix2dos: using %s as temp file\n", TempPath);
-@@ -304,7 +313,7 @@
-     RetVal = -1;
- 
-   /* can open out file? */
--  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
-+  if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-     RetVal = -1;
-@@ -322,6 +331,9 @@
-   if ((TempF) && (fclose(TempF) == EOF))
-     RetVal = -1;
- 
-+  if(fd>=0)
-+	  close(fd);
-+
-   if ((!RetVal) && (ipFlag->KeepDate))
-   {
-     UTimeBuf.actime = StatBuf.st_atime;
diff --git a/pkgs/tools/text/unix2dos/unix2dos-2.2-tmppath.patch b/pkgs/tools/text/unix2dos/unix2dos-2.2-tmppath.patch
deleted file mode 100644
index f8ad138f4da0..000000000000
--- a/pkgs/tools/text/unix2dos/unix2dos-2.2-tmppath.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-diff -up unix2dos-2.2/unix2dos.c.tmppath unix2dos-2.2/unix2dos.c
---- unix2dos-2.2/unix2dos.c.tmppath	2008-09-08 10:14:30.000000000 +0100
-+++ unix2dos-2.2/unix2dos.c	2008-09-08 10:14:30.000000000 +0100
-@@ -57,7 +57,10 @@
- 
- #ifdef __MSDOS__
- #  include <dir.h>
-+#else
-+#  include <unistd.h>
- #endif __MSDOS
-+#include <libgen.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -195,6 +198,40 @@ int ConvertUnixToDos(FILE* ipInF, FILE* 
- }
- 
- 
-+static int MakeTempFileFrom(const char *OutFN, char **fname_ret)
-+{
-+  char *cpy = strdup(OutFN);
-+  char *dir = NULL;
-+  size_t fname_len = 0;
-+  char  *fname_str = NULL;
-+  int fd = -1;
-+  
-+  *fname_ret = NULL;
-+ 
-+  if (!cpy)
-+    goto make_failed;
-+  
-+  dir = dirname(cpy);
-+  
-+  fname_len = strlen(dir) + strlen("/u2dtmpXXXXXX") + sizeof (char);
-+  if (!(fname_str = malloc(fname_len)))
-+    goto make_failed;
-+  sprintf(fname_str, "%s%s", dir, "/u2dtmpXXXXXX");
-+  *fname_ret = fname_str;
-+
-+  free(cpy);
-+
-+  if ((fd = mkstemp(fname_str)) == -1)
-+    goto make_failed;
-+  
-+  return (fd);
-+  
-+ make_failed:
-+  free(*fname_ret);
-+  *fname_ret = NULL;
-+  return (-1);
-+}
-+
- /* convert file ipInFN to DOS format text and write to file ipOutFN
-  * RetVal: 0 if success
-  *         -1 otherwise
-@@ -204,7 +241,7 @@ int ConvertUnixToDosNewFile(char *ipInFN
-   int RetVal = 0;
-   FILE *InF = NULL;
-   FILE *TempF = NULL;
--  char TempPath[16];
-+  char *TempPath;
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-   int fd;
-@@ -213,8 +250,7 @@ int ConvertUnixToDosNewFile(char *ipInFN
-   if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
--  strcpy (TempPath, "./u2dtmpXXXXXX");
--  if((fd=mkstemp (TempPath)) < 0) {
-+  if((fd = MakeTempFileFrom (ipOutFN, &TempPath)) < 0) {
- 	  perror("Can't open output temp file");
- 	  RetVal = -1;
-   }
-@@ -231,6 +267,7 @@ int ConvertUnixToDosNewFile(char *ipInFN
-   if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-+    InF = NULL;
-     RetVal = -1;
-   }
- 
-@@ -265,9 +302,6 @@ int ConvertUnixToDosNewFile(char *ipInFN
-   /* can rename temp file to out file? */
-   if (!RetVal)
-   {
--    if (stat(ipOutFN, &StatBuf) == 0)
--      unlink(ipOutFN);
--
-     if ((rename(TempPath, ipOutFN) == -1) && (!ipFlag->Quiet))
-     {
-       fprintf(stderr, "unix2dos: problems renaming '%s' to '%s'\n", TempPath, ipOutFN);
-@@ -275,6 +309,7 @@ int ConvertUnixToDosNewFile(char *ipInFN
-       RetVal = -1;
-     }
-   }
-+  free(TempPath);
- 
-   return RetVal;
- }
-@@ -289,7 +324,7 @@ int ConvertUnixToDosOldFile(char* ipInFN
-   int RetVal = 0;
-   FILE *InF = NULL;
-   FILE *TempF = NULL;
--  char TempPath[16];
-+  char *TempPath;
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-   mode_t mode = S_IRUSR | S_IWUSR;
-@@ -301,8 +336,7 @@ int ConvertUnixToDosOldFile(char* ipInFN
-   else
-     mode = StatBuf.st_mode;
- 
--  strcpy (TempPath, "./u2dtmpXXXXXX");
--  if((fd=mkstemp (TempPath)) < 0) {
-+  if((fd = MakeTempFileFrom(ipInFN, &TempPath)) < 0) {
-       perror("Can't open output temp file");
-       RetVal = -1;
-   }
-@@ -322,6 +356,7 @@ int ConvertUnixToDosOldFile(char* ipInFN
-   if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
-   {
-     fclose (InF);
-+    InF = NULL;
-     RetVal = -1;
-   }
- 
-@@ -349,10 +384,6 @@ int ConvertUnixToDosOldFile(char* ipInFN
-       RetVal = -1;
-   }
- 
--  /* can delete in file? */
--  if ((!RetVal) && (unlink(ipInFN) == -1))
--    RetVal = -1;
--
-   /* any error? */
-   if ((RetVal) && (unlink(TempPath)))
-     RetVal = -1;
-@@ -367,6 +398,7 @@ int ConvertUnixToDosOldFile(char* ipInFN
-     }
-     RetVal = -1;
-   }
-+  free(TempPath);
-   return RetVal;
- }
- 
diff --git a/pkgs/tools/text/unix2dos/unix2dos-mkstemp.patch b/pkgs/tools/text/unix2dos/unix2dos-mkstemp.patch
deleted file mode 100644
index 034e0a00b686..000000000000
--- a/pkgs/tools/text/unix2dos/unix2dos-mkstemp.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- unix2dos-2.2/unix2dos.c.orig	Fri Nov 17 13:29:24 2000
-+++ unix2dos-2.2/unix2dos.c	Fri Nov 17 13:30:16 2000
-@@ -214,7 +214,7 @@
- 
-   strcpy (TempPath, "./u2dtmp");
-   strcat (TempPath, "XXXXXX");
--  mktemp (TempPath);
-+  mkstemp (TempPath);
- 
- #ifdef DEBUG
-   fprintf(stderr, "unix2dos: using %s as temp file\n", TempPath);
-@@ -293,7 +293,7 @@
- 
-   strcpy (TempPath, "./u2dtmp");
-   strcat (TempPath, "XXXXXX");
--  mktemp (TempPath);
-+  mkstemp (TempPath);
- 
- #ifdef DEBUG
-   fprintf(stderr, "unix2dos: using %s as temp file\n", TempPath);
diff --git a/pkgs/tools/text/unix2dos/unix2dos-preserve-file-modes.patch b/pkgs/tools/text/unix2dos/unix2dos-preserve-file-modes.patch
deleted file mode 100644
index e824044b50c6..000000000000
--- a/pkgs/tools/text/unix2dos/unix2dos-preserve-file-modes.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up unix2dos-2.2/unix2dos.c~ unix2dos-2.2/unix2dos.c
---- unix2dos-2.2/unix2dos.c~	2008-03-03 13:16:34.000000000 +0000
-+++ unix2dos-2.2/unix2dos.c	2008-03-03 13:22:10.000000000 +0000
-@@ -244,10 +244,11 @@ int ConvertUnixToDosNewFile(char *ipInFN
-   char *TempPath;
-   struct stat StatBuf;
-   struct utimbuf UTimeBuf;
-+  mode_t mask;
-   int fd;
- 
-   /* retrieve ipInFN file date stamp */
--  if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
-+  if (stat(ipInFN, &StatBuf))
-     RetVal = -1;
- 
-   if((fd = MakeTempFileFrom (ipOutFN, &TempPath)) < 0) {
-@@ -271,6 +272,12 @@ int ConvertUnixToDosNewFile(char *ipInFN
-     RetVal = -1;
-   }
- 
-+  /* preserve original mode as modified by umask */
-+  mask = umask(0);
-+  umask(mask);
-+  if (!RetVal && fchmod(fd, StatBuf.st_mode & ~mask))
-+      RetVal = -1;
-+
-   /* conversion sucessful? */
-   if ((!RetVal) && (ConvertUnixToDos(InF, TempF, ipFlag)))
-     RetVal = -1;
diff --git a/pkgs/tools/typesetting/lhs2tex/default.nix b/pkgs/tools/typesetting/lhs2tex/default.nix
index 012c98f68871..61e1dfb9d875 100644
--- a/pkgs/tools/typesetting/lhs2tex/default.nix
+++ b/pkgs/tools/typesetting/lhs2tex/default.nix
@@ -1,14 +1,11 @@
-{cabal, tetex, polytable, regexCompat}:
+{cabal, texLive, regexCompat}:
 
-#assert tetex == polytable.tetex;
-
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "lhs2tex";
-  version = "1.16";
+  version = "1.17";
   name = self.fname;
-  sha256 = "aa43ec92e8d7c94213365a7211d605314476977155e36420caa3cfb394f7c76f";
-  extraBuildInputs = [tetex regexCompat];
-  propagatedBuildInputs = [polytable]; # automatically in user-env now with cabal
+  sha256 = "1x49316m5xm4f6hw5q7kia9rpfpygxhk5gnifd54ai0zjmdlkxrc";
+  extraBuildInputs = [regexCompat texLive];
 
   postInstall = ''
     ensureDir "$out/share/doc/$name"
@@ -17,9 +14,14 @@ cabal.mkDerivation (self : {
   '';
 
   meta = {
+    homepage = "http://www.andres-loeh.de/lhs2tex/";
     description = "Preprocessor for typesetting Haskell sources with LaTeX";
-    license = "GPLv2";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
 
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index ba70016c3c45..f91b77fb9284 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.4";
+  version = "0.7.7";
   name = "pdf2djvu-${version}";
 
   src = fetchurl {
     url = "http://pdf2djvu.googlecode.com/files/pdf2djvu_${version}.tar.gz";
-    sha256 = "4ca375cd4e873d82428bd934ecc7cdbc6331a8236090c2424bd3c3b7bfc1331c";
+    sha256 = "17fi5yq936hgjby5jp2hsb1inqqxab4mh58lkxvf1jkrrz658za5";
   };
 
   buildInputs = [ pkgconfig djvulibre poppler fontconfig libjpeg ];
diff --git a/pkgs/tools/video/dvgrab/default.nix b/pkgs/tools/video/dvgrab/default.nix
new file mode 100644
index 000000000000..de2964a798f9
--- /dev/null
+++ b/pkgs/tools/video/dvgrab/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, libunwind, libraw1394, libjpeg, libiec61883, libdv
+, libavc1394, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "dvgrab-3.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/kino/${name}.tar.gz";
+    sha256 = "1y8arv14nc9sf8njfcxf96pb4nyimpsly1fnhcbj406k54s1h42r";
+  };
+
+  buildInputs =
+    [ libunwind libraw1394 libjpeg libiec61883 libdv libavc1394
+      pkgconfig
+    ];
+
+  meta = {
+    description = "dvgrab, receive and store audio & video over IEEE1394";
+
+    longDescription =
+      '' dvgrab receives audio and video data from a digital camcorder via an
+         IEEE1394 (widely known as FireWire) or USB link and stores them into
+         one of several file formats. It features autosplit of long video
+         sequences, and supports saving the data as raw frames, AVI type 1,
+         AVI type 2, Quicktime DV, a series of JPEG stills or MPEG2-TS.
+      '';
+
+    homepage = http://kinodv.org/;
+
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.gnu;
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
diff --git a/pkgs/tools/video/mjpegtools/default.nix b/pkgs/tools/video/mjpegtools/default.nix
index e69d14a234b5..b70d8f4c9ba4 100644
--- a/pkgs/tools/video/mjpegtools/default.nix
+++ b/pkgs/tools/video/mjpegtools/default.nix
@@ -1,15 +1,15 @@
-{stdenv, fetchurl, libjpeg, libX11}:
+{ stdenv, fetchurl, gtk, libdv, libjpeg, libpng, libX11, pkgconfig, SDL, SDL_gfx }:
 
-stdenv.mkDerivation {
-  name = "mjpegtools-1.9.0rc3";
+# TODO:
+# - make dependencies optional
+# - libpng-apng as alternative to libpng?
+# - libXxf86dga support? checking for XF86DGAQueryExtension in -lXxf86dga... no
+
+stdenv.mkDerivation rec {
+  name = "mjpegtools-2.0.0";
   src = fetchurl {
-    url = mirror://sourceforge/mjpeg/mjpegtools-1.9.0rc3.tar.gz;
-    sha256 = "1xvgqzdb2rw6j4ss65k4hrzrbsl74p7k5l4qgf5dbfcw522kw7lb";
+    url = "mirror://sourceforge/mjpeg/${name}.tar.gz";
+    sha256 = "bf3541593e71602f7b440c2e7d81b433f53d0511e74642f35bea9b3feded7a97";
   };
-  buildInputs = [libjpeg libX11];
-  patches = [ ( fetchurl {
-      url = "http://bugs.gentoo.org/attachment.cgi?id=145622";
-      sha256 = "0c3bdrkr0qsrd3jybzz84z9gs4bq90rvxg87ffw08149v5qjz7a1";
-      name = "patch.patch";
-  } ) ]; # from gentoo. Don't know why it broke. Make it compile again.
+  buildInputs = [ gtk libdv libjpeg libpng libX11 pkgconfig SDL SDL_gfx ];
 }
diff --git a/pkgs/tools/video/rtmpdump/default.nix b/pkgs/tools/video/rtmpdump/default.nix
index 3f79e57592f5..275e81ae0ee8 100644
--- a/pkgs/tools/video/rtmpdump/default.nix
+++ b/pkgs/tools/video/rtmpdump/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, zlib, gnutls}:
+{stdenv, fetchurl, zlib, gnutls, libgcrypt}:
 
 stdenv.mkDerivation {
   name = "rtmpdump-2.2d";
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "0w2cr3mgp4dcabmr7d7pnsn8f2r1zvar553vfavnzqv61gnhyrm5";
   };
 
-  buildInputs = [ zlib gnutls ];
+  buildInputs = [ zlib gnutls libgcrypt ];
 
   makeFlags = "CRYPTO=GNUTLS posix";
 
diff --git a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix b/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
index 622b26f0b356..d0ab00057f5a 100644
--- a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
   
   src = fetchurl {
     url = http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip;
-    sha256 = "0wsgd656wiwn0maqanz6c61jdwaz0gva8wx25x312xnsl8k0gy94";
+    sha256 = "310e3b405c11b979b1cd210c5b4c32e97065d616f6bfa449c4e1e50420ce8002";
   };
 
   # Amazon EC2 requires that disk images are writable.  If they're
diff --git a/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix b/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix
index e242b1e69d12..7f856b8165de 100644
--- a/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix
+++ b/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, unzip, makeWrapper, jre }:
 
 stdenv.mkDerivation {
-  name = "ec2-api-tools-1.3-53907";
+  name = "ec2-api-tools-1.4.2.2";
   
   src = fetchurl {
     url = http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip;
-    sha256 = "1jdkc74a9fmjqwvq1pnbsnfqyxxjg5zgaynybmdms5piinvb204d";
+    sha256 = "e4dea0fb23b7e17bfe794b80f83bef47f290e2c9296105a80a7aecf7d33ecaf2";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/tools/virtualization/euca2ools/default.nix b/pkgs/tools/virtualization/euca2ools/default.nix
new file mode 100644
index 000000000000..b82f7de1b2a9
--- /dev/null
+++ b/pkgs/tools/virtualization/euca2ools/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, which, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name = "euca2ools-1.3.1";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://eucalyptussoftware.com/downloads/releases/${name}.tar.gz";
+    sha256 = "1k4hakbxqsv2gzcdrf6dbyrpnajcan9yilddhs47cg7lgqw7b41f";
+  };
+
+  makeFlags = "PREFIX=$(out)";
+
+  buildInputs = [ which pythonPackages.python pythonPackages.wrapPython ];
+
+  # We need boto 1.9 for now.  See https://bugs.launchpad.net/euca2ools/devel/+bug/623888
+  pythonPath = [ pythonPackages.setuptools pythonPackages.boto_1_9 pythonPackages.m2crypto pythonPackages.ssl ];
+
+  preBuild =
+    ''
+      substituteInPlace Makefile --replace "-o root" ""
+    
+      substituteInPlace euca2ools/Makefile \
+        --replace 'python setup.py install' "python setup.py install --prefix=$out"
+    '';
+
+  postInstall = "wrapPythonPrograms";
+
+  meta = {
+    homepage = http://open.eucalyptus.com/downloads;
+    description = "Tools for interacting with Amazon EC2/S3-compatible cloud computing services";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 917926aa3658..264391bd328a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -71,7 +71,7 @@ let
         else configExpr;
 
   # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc)
-  platform = if platform_ != null then platform_ 
+  platform = if platform_ != null then platform_
     else getConfig [ "platform" ] (import ./platforms.nix).pc;
 
   # Return an attribute from the Nixpkgs configuration file, or
@@ -99,7 +99,8 @@ let
 
 
   # Return the complete set of packages, after applying the overrides
-  # returned by the `overrider' function (see above).
+  # returned by the `overrider' function (see above).  Warning: this
+  # function is very expensive!
   applyGlobalOverrides = overrider:
     let
       # Call the overrider function.  We don't want stdenv overrides
@@ -266,17 +267,17 @@ let
     inherit stdenv git;
   };
 
-  fetchmtn = import ../build-support/fetchmtn {
-    inherit monotone stdenv;
-    cacheDB = getConfig ["fetchmtn" "cacheDB"] "";
-    defaultDBMirrors = getConfig ["fetchmtn" "defaultDBMirrors"] [];
-  };
+  fetchgitrevision = import ../build-support/fetchgitrevision runCommand git;
+
+  fetchmtn = callPackage ../build-support/fetchmtn (getConfig ["fetchmtn"] {});
 
   fetchsvn = import ../build-support/fetchsvn {
     inherit stdenv subversion openssh;
     sshSupport = true;
   };
 
+  fetchsvnrevision = import ../build-support/fetchsvnrevision runCommand subversion;
+
   fetchsvnssh = import ../build-support/fetchsvnssh {
     inherit stdenv subversion openssh expect;
     sshSupport = true;
@@ -311,7 +312,7 @@ let
     inherit stdenv perl cpio contents ubootChooser;
   };
 
-  makeWrapper = makeSetupHook ../build-support/make-wrapper/make-wrapper.sh;
+  makeWrapper = makeSetupHook {} ../build-support/make-wrapper/make-wrapper.sh;
 
   makeModulesClosure = {kernel, rootModules, allowMissing ? false}:
     import ../build-support/kernel/modules-closure.nix {
@@ -343,6 +344,7 @@ let
 
   platforms = import ./platforms.nix;
 
+
   ### TOOLS
 
   acct = callPackage ../tools/system/acct { };
@@ -351,6 +353,8 @@ let
 
   aircrackng = callPackage ../tools/networking/aircrack-ng { };
 
+  archivemount = callPackage ../tools/filesystems/archivemount { };
+
   asymptote = builderDefsPackage ../tools/graphics/asymptote {
     inherit freeglut ghostscriptX imagemagick fftw boehmgc
       mesa ncurses readline gsl libsigsegv python zlib perl
@@ -380,38 +384,38 @@ let
     client = true;
   });
 
-  aria = builderDefsPackage (import ../tools/networking/aria) {
-  };
+  aria = builderDefsPackage (import ../tools/networking/aria) { };
 
   aria2 = callPackage ../tools/networking/aria2 { };
 
   at = callPackage ../tools/system/at { };
 
-  autogen = callPackage ../development/tools/misc/autogen { };
+  autogen = callPackage ../development/tools/misc/autogen {
+    guile = guile_1_8;
+  };
 
   autojump = callPackage ../tools/misc/autojump { };
 
-  avahi =
-    let qt4Support = getConfig [ "avahi" "qt4Support" ] false;
-    in
-      makeOverridable (import ../development/libraries/avahi) {
-        inherit stdenv fetchurl pkgconfig libdaemon dbus perl perlXMLParser
-          expat gettext intltool lib;
-        inherit (gtkLibs) glib gtk;
-        inherit qt4Support;
-        qt4 = if qt4Support then qt4 else null;
-      };
+  avahi = callPackage ../development/libraries/avahi {
+    qt4Support = getConfig [ "avahi" "qt4Support" ] false;
+  };
+
+  aws_mturk_clt = callPackage ../tools/misc/aws-mturk-clt { };
 
   axel = callPackage ../tools/networking/axel { };
 
   azureus = callPackage ../tools/networking/p2p/azureus { };
 
+  banner = callPackage ../games/banner {};
+
   barcode = callPackage ../tools/graphics/barcode {};
 
   bc = callPackage ../tools/misc/bc { };
 
   bfr = callPackage ../tools/misc/bfr { };
 
+  bluedevil = newScope pkgs.kde4 ../tools/bluetooth/bluedevil { };
+
   bootchart = callPackage ../tools/system/bootchart { };
 
   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
@@ -426,18 +430,19 @@ let
 
   mcrl2 = callPackage ../tools/misc/mcrl2 { };
 
-  syslogng = callPackage ../tools/misc/syslog-ng { };
+  syslogng = callPackage ../tools/system/syslog-ng { };
 
   asciidoc = callPackage ../tools/typesetting/asciidoc { };
 
   autossh = callPackage ../tools/networking/autossh { };
 
+  bacula = callPackage ../tools/backup/bacula { };
+
   bibtextools = callPackage ../tools/typesetting/bibtex-tools {
     inherit (strategoPackages016) strategoxt sdf;
   };
 
   bittorrent = callPackage ../tools/networking/p2p/bittorrent {
-    wxPython = wxPython26;
     gui = true;
   };
 
@@ -457,6 +462,8 @@ let
 
   bsdiff = callPackage ../tools/compression/bsdiff { };
 
+  bup = callPackage ../tools/backup/bup { };
+
   bzip2 = callPackage ../tools/compression/bzip2 { };
 
   cabextract = callPackage ../tools/archivers/cabextract { };
@@ -485,12 +492,16 @@ let
 
   cksfv = callPackage ../tools/networking/cksfv { };
 
+  colordiff = callPackage ../tools/text/colordiff { };
+
   convertlit = callPackage ../tools/text/convertlit { };
 
   unifdef = callPackage ../development/tools/misc/unifdef { };
 
   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
 
+  cloog = callPackage ../development/libraries/cloog { };
+
   cloogppl = callPackage ../development/libraries/cloog-ppl { };
 
   convmv = callPackage ../tools/misc/convmv { };
@@ -526,7 +537,7 @@ let
   dar = callPackage ../tools/archivers/dar { };
 
   davfs2 = callPackage ../tools/filesystems/davfs2 {
-    neon = neon028;
+    neon = neon029;
   };
 
   dcraw = callPackage ../tools/graphics/dcraw { };
@@ -564,6 +575,8 @@ let
 
   dirmngr = callPackage ../tools/security/dirmngr { };
 
+  dmg2img = callPackage ../tools/misc/dmg2img { };
+
   docbook2x = callPackage ../tools/typesetting/docbook2x {
     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
     libiconv = if stdenv.isDarwin then libiconv else null;
@@ -585,12 +598,16 @@ let
 
   dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
 
+  dvgrab = callPackage ../tools/video/dvgrab { };
+
   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
 
   ebook_tools = callPackage ../tools/text/ebook-tools { };
 
   ecryptfs = callPackage ../tools/security/ecryptfs { };
 
+  efibootmgr = callPackage ../tools/system/efibootmgr { };
+
   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
 
   encfs = callPackage ../tools/filesystems/encfs { };
@@ -599,16 +616,20 @@ let
 
   ethtool = callPackage ../tools/misc/ethtool { };
 
+  euca2ools = callPackage ../tools/virtualization/euca2ools { };
+
   exif = callPackage ../tools/graphics/exif { };
 
   exiftags = callPackage ../tools/graphics/exiftags { };
 
   expect = callPackage ../tools/misc/expect { };
 
+  fakeroot = callPackage ../tools/system/fakeroot { };
+
   fcron = callPackage ../tools/system/fcron {  # see also cron
   };
 
-  fdisk = callPackage ../tools/system/fdisk { };
+  fdisk = callPackage ../tools/system/fdisk { parted = parted_2_3; };
 
   fdm = callPackage ../tools/networking/fdm {};
 
@@ -635,27 +656,35 @@ let
     withX11 = true;
   };
 
+  freeipmi = callPackage ../tools/system/freeipmi {};
+
+  freetalk = callPackage ../applications/networking/instant-messengers/freetalk {
+    guile = guile_1_8;
+  };
+
   ftgl = callPackage ../development/libraries/ftgl { };
 
-  dos2unix = callPackage ../tools/text/dos2unix { };
+  fuppes = callPackage ../tools/networking/fuppes {
+    ffmpeg = ffmpeg_0_6_90;
+  };
 
-  unix2dos = callPackage ../tools/text/unix2dos { };
+  fsfs = callPackage ../tools/filesystems/fsfs { };
+
+  dos2unix = callPackage ../tools/text/dos2unix { };
 
   uni2ascii = callPackage ../tools/text/uni2ascii { };
 
   gawk = callPackage ../tools/text/gawk { };
 
   gdmap = callPackage ../tools/system/gdmap {
-    inherit (gtkLibs216) gtk;
+    inherit (pkgs.gtkLibs) gtk;
   };
 
   genext2fs = callPackage ../tools/filesystems/genext2fs { };
 
   gengetopt = callPackage ../development/tools/misc/gengetopt { };
 
-  getmail = callPackage ../tools/networking/getmail {
-    python = pythonFull;
-  };
+  getmail = callPackage ../tools/networking/getmail { };
 
   getopt = callPackage ../tools/misc/getopt { };
 
@@ -670,8 +699,10 @@ let
   glxinfo = callPackage ../tools/graphics/glxinfo { };
 
   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
-    inherit intltool perl gettext libusb pkgconfig;
+    inherit intltool perl gettext libusb pkgconfig bluez readline pcsclite
+      libical;
     inherit (gtkLibs) gtk glib;
+    inherit (xorg) libXpm;
   };
 
   gnugrep =
@@ -711,10 +742,17 @@ let
 
   gource = callPackage ../tools/misc/gource { };
 
+  gptfdisk = callPackage ../tools/system/gptfdisk { };
+
   graphviz = callPackage ../tools/graphics/graphviz {
     inherit (gtkLibs) pango;
   };
 
+  /* Last version to export to dia */
+  graphviz_2_24 = callPackage ../tools/graphics/graphviz/2.0.nix {
+    inherit (gtkLibs) pango;
+  };
+
   /* Readded by Michael Raskin. There are programs in the wild
    * that do want 2.0 but not 2.22. Please give a day's notice for
    * objections before removal.
@@ -731,7 +769,13 @@ let
     buggyBiosCDSupport = getConfig ["grub" "buggyBiosCDSupport"] true;
   };
 
-  grub2 = callPackage ../tools/misc/grub/1.9x.nix { };
+  grub19x = callPackage ../tools/misc/grub/1.9x.nix { };
+
+  grub198 = callPackage ../tools/misc/grub/1.98.nix { };
+
+  grub2 = grub19x;
+
+  # grub2_efi = callPackage ../tools/misc/grub/1.9x.nix { EFIsupport = true; };
 
   gssdp = callPackage ../development/libraries/gssdp {
     inherit (gnome) libsoup;
@@ -741,6 +785,8 @@ let
 
   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
 
+  gtkvnc = callPackage ../tools/admin/gtk-vnc {};
+
   gupnp = callPackage ../development/libraries/gupnp {
     inherit (gnome) libsoup;
   };
@@ -762,7 +808,9 @@ let
   hddtemp = callPackage ../tools/misc/hddtemp { };
 
   hdf5 = callPackage ../tools/misc/hdf5 { };
-  
+
+  heimdall = callPackage ../tools/misc/heimdall { };
+
   hevea = callPackage ../tools/typesetting/hevea { };
 
   highlight = callPackage ../tools/text/highlight { };
@@ -771,6 +819,10 @@ let
 
   httpfs2 = callPackage ../tools/filesystems/httpfs { };
 
+  hydra = callPackage ../development/tools/misc/hydra {
+    nix = nixSqlite;
+  };
+
   iasl = callPackage ../development/compilers/iasl { };
 
   idutils = callPackage ../tools/misc/idutils { };
@@ -781,8 +833,12 @@ let
     inherit (perlPackages) MailIMAPClient;
   };
 
+  inadyn = callPackage ../tools/networking/inadyn { };
+
   inetutils = callPackage ../tools/networking/inetutils { };
 
+  ioping = callPackage ../tools/system/ioping {};
+
   iodine = callPackage ../tools/networking/iodine { };
 
   iperf = callPackage ../tools/networking/iperf { };
@@ -791,9 +847,19 @@ let
     static = false;
   };
 
+  ipmiutil = callPackage ../tools/system/ipmiutil {};
+
+  ised = callPackage ../tools/misc/ised {};
+
+  isl = callPackage ../development/libraries/isl { };
+
+  isync = callPackage ../tools/networking/isync { };
+
   jdiskreport = callPackage ../tools/misc/jdiskreport { };
 
-  jfsrec = callPackage ../tools/filesystems/jfsrec { };
+  jfsrec = callPackage ../tools/filesystems/jfsrec {
+    boost = boost144;
+  };
 
   jfsutils = callPackage ../tools/filesystems/jfsutils { };
 
@@ -807,6 +873,8 @@ let
     inherit (gnome) glib;
   };
 
+  jscoverage = callPackage ../development/tools/misc/jscoverage { };
+
   jwhois = callPackage ../tools/networking/jwhois { };
 
   kdiff3 = newScope pkgs.kde4 ../tools/text/kdiff3 { };
@@ -819,6 +887,10 @@ let
 
   most = callPackage ../tools/misc/most { };
 
+  ninka = callPackage ../development/tools/misc/ninka { };
+
+  nodejs = callPackage ../development/web/nodejs {};
+
   lftp = callPackage ../tools/networking/lftp { };
 
   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
@@ -843,7 +915,11 @@ let
 
   lzop = callPackage ../tools/compression/lzop { };
 
-  mailutils = callPackage ../tools/networking/mailutils { };
+  mailutils = callPackage ../tools/networking/mailutils {
+    guile = guile_1_8;
+  };
+
+  mairix = callPackage ../tools/text/mairix { };
 
   man = callPackage ../tools/misc/man { };
 
@@ -855,17 +931,23 @@ let
 
   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
 
-  mcron = callPackage ../tools/system/mcron { };
+  mcron = callPackage ../tools/system/mcron {
+    guile = guile_1_8;
+  };
 
   mdbtools = callPackage ../tools/misc/mdbtools { };
 
   mdbtools_git = callPackage ../tools/misc/mdbtools/git.nix { };
 
+  miniupnpc = callPackage ../tools/networking/miniupnpc { };
+
   miniupnpd = callPackage ../tools/networking/miniupnpd { };
 
+  minixml = callPackage ../development/libraries/minixml { };
+
   mjpegtools = callPackage ../tools/video/mjpegtools { };
 
-  mkisofs = callPackage ../tools/cd-dvd/mkisofs { };
+  mkcue = callPackage ../tools/cd-dvd/mkcue { };
 
   mktemp = callPackage ../tools/security/mktemp { };
 
@@ -887,6 +969,8 @@ let
 
   mtools = callPackage ../tools/filesystems/mtools { };
 
+  mtr = callPackage ../tools/networking/mtr {};
+
   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
     multitrandata = callPackage ../tools/text/multitran/data { };
 
@@ -925,6 +1009,8 @@ let
 
   ncompress = callPackage ../tools/compression/ncompress { };
 
+  ndisc6 = callPackage ../tools/networking/ndisc6 { };
+
   netcat = callPackage ../tools/networking/netcat { };
 
   netkittftp = callPackage ../tools/networking/netkit/tftp { };
@@ -933,8 +1019,14 @@ let
 
   netselect = callPackage ../tools/networking/netselect { };
 
+  networkmanager = callPackage ../tools/networking/network-manager { };
+
+  networkmanagerapplet = newScope gnome ../tools/networking/network-manager-applet { };
+
   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
 
+  nlopt = callPackage ../development/libraries/nlopt {};
+
   nmap = callPackage ../tools/security/nmap {
     inherit (pythonPackages) pysqlite;
   };
@@ -949,6 +1041,8 @@ let
 
   nylon = callPackage ../tools/networking/nylon { };
 
+  nzbget = callPackage ../tools/networking/nzbget { };
+
   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
 
   obexd = callPackage ../tools/bluetooth/obexd { };
@@ -957,19 +1051,8 @@ let
 
   obexftp = callPackage ../tools/bluetooth/obexftp { };
 
-  offlineimap = import ../tools/networking/offlineimap {
-    inherit fetchurl;
-    # I did not find any better way of reusing buildPythonPackage+setuptools
-    # for a python with openssl support
-    buildPythonPackage = assert pythonFull.opensslSupport;
-      import ../development/python-modules/generic {
-        inherit makeWrapper lib;
-        python = pythonFull;
-        setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
-          inherit makeWrapper;
-          python = pythonFull;
-        };
-      };
+  offlineimap = callPackage ../tools/networking/offlineimap {
+    ssl = pythonPackages.ssl;
   };
 
   opendbx = callPackage ../development/libraries/opendbx { };
@@ -992,10 +1075,13 @@ let
   openssh = callPackage ../tools/networking/openssh {
     hpnSupport = false;
     etcDir = "/etc/ssh";
+    pam = if stdenv.isLinux then pam else null;
   };
 
   opensp = callPackage ../tools/text/sgml/opensp { };
 
+  spCompat = callPackage ../tools/text/sgml/opensp/compat.nix { };
+
   openvpn = callPackage ../tools/networking/openvpn { };
 
   optipng = callPackage ../tools/graphics/optipng { };
@@ -1013,6 +1099,7 @@ let
   patchutils = callPackage ../tools/text/patchutils { };
 
   parted = callPackage ../tools/misc/parted { };
+  parted_2_3 = callPackage ../tools/misc/parted/2.3.nix { };
 
   hurdPartedCross =
     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
@@ -1056,7 +1143,7 @@ let
 
   philter = callPackage ../tools/networking/philter { };
 
-  pinentry = callPackage ../tools/misc/pinentry {
+  pinentry = callPackage ../tools/security/pinentry {
     inherit (gnome) glib gtk;
   };
 
@@ -1072,10 +1159,18 @@ let
 
   pngnq = callPackage ../tools/graphics/pngnq { };
 
+  polipo = callPackage ../servers/polipo { };
+
+  polkit_gnome = callPackage ../tools/security/polkit-gnome { };
+
+  polkit_kde_agent = newScope pkgs.kde4 ../tools/security/polkit-kde-agent { };
+
   povray = callPackage ../tools/graphics/povray { };
 
   ppl = callPackage ../development/libraries/ppl { };
 
+  ppl0_11 = callPackage ../development/libraries/ppl/0.11.nix { };
+
   /* WARNING: this version is unsuitable for using with a setuid wrapper */
   ppp = builderDefsPackage (import ../tools/networking/ppp) {
   };
@@ -1096,10 +1191,7 @@ let
 
   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
-  pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
-    inherit python pkgconfig dbus_glib;
-    dbus = dbus.libs;
-  };
+  pythonDBus = callPackage ../development/python-modules/dbus { };
 
   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
     inherit python;
@@ -1120,6 +1212,8 @@ let
     qt = qt4;
   };
 
+  radvd = callPackage ../tools/networking/radvd { };
+
   rtmpdump = callPackage ../tools/video/rtmpdump { };
 
   recutils = callPackage ../tools/misc/recutils { };
@@ -1152,6 +1246,8 @@ let
 
   rlwrap = callPackage ../tools/misc/rlwrap { };
 
+  rockbox_utility = callPackage ../tools/misc/rockbox-utility { };
+
   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
     inherit ppp;
   };
@@ -1174,6 +1270,8 @@ let
 
   s3backer = callPackage ../tools/filesystems/s3backer { };
 
+  s3cmd = callPackage ../tools/networking/s3cmd { };
+
   s3sync = callPackage ../tools/networking/s3sync { };
 
   sablotron = callPackage ../tools/text/xml/sablotron { };
@@ -1194,6 +1292,10 @@ let
 
   shebangfix = callPackage ../tools/misc/shebangfix { };
 
+  siege = callPackage ../tools/networking/siege {};
+
+  sleuthkit = callPackage ../tools/system/sleuthkit {};
+
   slimrat = callPackage ../tools/networking/slimrat {
     inherit (perlPackages) WWWMechanize LWP;
   };
@@ -1202,6 +1304,8 @@ let
 
   smartmontools = callPackage ../tools/system/smartmontools { };
 
+  smbnetfs = callPackage ../tools/filesystems/smbnetfs {};
+
   fusesmb = callPackage ../tools/filesystems/fusesmb { };
 
   socat = callPackage ../tools/networking/socat { };
@@ -1218,8 +1322,9 @@ let
 
   sudo = callPackage ../tools/security/sudo { };
 
-  suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) {
-  };
+  suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) { };
+
+  super = callPackage ../tools/security/super { };
 
   ssmtp = callPackage ../tools/networking/ssmtp {
     tlsSupport = true;
@@ -1240,7 +1345,6 @@ let
   svnfs = callPackage ../tools/filesystems/svnfs { };
 
   system_config_printer = callPackage ../tools/misc/system-config-printer {
-    inherit (pythonPackages) notify;
     libxml2 = libxml2Python;
    };
 
@@ -1261,6 +1365,7 @@ let
   texmacs = callPackage ../applications/editors/texmacs {
     tex = texLive; /* tetex is also an option */
     extraFonts = true;
+    guile = guile_1_8;
   };
 
   tmux = callPackage ../tools/misc/tmux { };
@@ -1274,6 +1379,8 @@ let
 
   ucl = callPackage ../development/libraries/ucl { };
 
+  udftools = callPackage ../tools/filesystems/udftools {};
+
   ufraw = callPackage ../applications/graphics/ufraw {
     inherit (gnome) gtk;
   };
@@ -1290,8 +1397,14 @@ let
     inherit pciutils libx86 zlib;
   };
 
+  vde2 = callPackage ../tools/networking/vde2 { };
+
   verilog = callPackage ../applications/science/electronics/verilog {};
 
+  vfdecrypt = callPackage ../tools/misc/vfdecrypt { };
+
+  vifm = callPackage ../applications/misc/vifm {};
+
   viking = callPackage ../applications/misc/viking { };
 
   vncrec = builderDefsPackage ../tools/video/vncrec {
@@ -1300,10 +1413,14 @@ let
       libXp;
   };
 
+  vorbisgain = callPackage ../tools/misc/vorbisgain { };
+
   vpnc = callPackage ../tools/networking/vpnc { };
 
   vtun = callPackage ../tools/networking/vtun { };
 
+  welkin = callPackage ../tools/graphics/welkin {};
+
   testdisk = callPackage ../tools/misc/testdisk { };
 
   htmlTidy = callPackage ../tools/text/html-tidy { };
@@ -1350,6 +1467,12 @@ let
 
   uptimed = callPackage ../tools/system/uptimed { };
 
+  vlan = callPackage ../tools/networking/vlan { };
+
+  wakelan = callPackage ../tools/networking/wakelan { };
+
+  wavemon = callPackage ../tools/networking/wavemon { };
+
   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
     tomcat = tomcat6;
   };
@@ -1433,6 +1556,8 @@ let
     inherit python setuptools;
   };
 
+  xorriso = callPackage ../tools/cd-dvd/xorriso { };
+
   xpf = callPackage ../tools/text/xml/xpf {
     libxml2 = libxml2Python;
   };
@@ -1447,6 +1572,7 @@ let
 
   zsync = callPackage ../tools/compression/zsync { };
 
+
   ### SHELLS
 
 
@@ -1458,21 +1584,11 @@ let
     interactive = true;
   });
 
+  bashCompletion = callPackage ../shells/bash-completion { };
+
   dash = callPackage ../shells/dash { };
 
-  ipython = callPackage ../shells/ipython {
-    # I did not find any better way of reusing buildPythonPackage+setuptools
-    # for a python with openssl support
-    buildPythonPackage = assert pythonFull.readlineSupport;
-      import ../development/python-modules/generic {
-        inherit makeWrapper lib;
-        python = pythonFull;
-        setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
-          inherit makeWrapper;
-          python = pythonFull;
-        };
-      };
- };
+  ipython = callPackage ../shells/ipython { };
 
   tcsh = callPackage ../shells/tcsh { };
 
@@ -1503,6 +1619,10 @@ let
     buildClang = true;
   };
 
+  clangSVN = llvmSVN.override {
+    buildClang = true;
+  };
+
   clean = callPackage ../development/compilers/clean { };
 
   cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { };
@@ -1514,9 +1634,7 @@ let
   };
   };
 
-  ecl = builderDefsPackage ../development/compilers/ecl {
-    inherit gmp mpfr;
-  };
+  ecl = callPackage ../development/compilers/ecl { };
 
   eql = callPackage ../development/compilers/eql {};
 
@@ -1553,7 +1671,8 @@ let
   });
 
   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
-    inherit fetchurl stdenv noSysDirs;
+    inherit fetchurl noSysDirs gmp mpfr;
+    stdenv = overrideGCC stdenv gcc42;
     texinfo = texinfo49;
     profiledCompiler = false;
   });
@@ -1592,6 +1711,8 @@ let
 
   gcc45 = gcc45_real;
 
+  gcc46 = gcc46_real;
+
   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
     (makeOverridable (import ../development/compilers/gcc-4.5) {
       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
@@ -1604,6 +1725,19 @@ let
       cross = assert crossSystem != null; crossSystem;
     });
 
+  gcc46_realCross = lib.addMetaAttrs { platforms = []; }
+    (makeOverridable (import ../development/compilers/gcc-4.6) {
+      inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
+        cloog gettext which noSysDirs;
+      ppl = ppl0_11;
+      binutilsCross = binutilsCross;
+      libcCross = libcCross;
+      profiledCompiler = false;
+      enableMultilib = false;
+      crossStageStatic = false;
+      cross = assert crossSystem != null; crossSystem;
+    });
+
   gcc_realCross = gcc45_realCross;
 
   gccCrossStageStatic = let
@@ -1679,6 +1813,33 @@ let
     profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
   }));
 
+  gcc46_real = lowPrio (wrapGCC (callPackage ../development/compilers/gcc-4.6 {
+    inherit noSysDirs;
+    cross = null;
+    libcCross = null;
+    binutilsCross = null;
+
+    ppl = ppl0_11;
+    cloogppl = null;
+
+    # bootstrapping a profiled compiler does not work in the sheevaplug:
+    # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
+    profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
+  }));
+
+  # A non-stripped version of GCC.
+  gcc46_debug = lowPrio (wrapGCC (callPackage ../development/compilers/gcc-4.6 {
+    stripped = false;
+
+    inherit noSysDirs;
+    cross = null;
+    libcCross = null;
+    binutilsCross = null;
+
+    ppl = ppl0_11;
+    cloogppl = null;
+  }));
+
   gccApple =
     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
       inherit fetchurl stdenv noSysDirs;
@@ -1738,6 +1899,14 @@ let
     profiledCompiler = false;
   });
 
+  gfortran46 = wrapGCC (gcc46_real.gcc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
   gcj = gcj45;
 
   gcj44 = wrapGCC (gcc44.gcc.override {
@@ -1768,6 +1937,20 @@ let
       libXrandr xproto renderproto xextproto inputproto randrproto;
   });
 
+  gcj46 = wrapGCC (gcc46.gcc.override {
+    name = "gcj";
+    langJava = true;
+    langFortran = false;
+    langCC = true;
+    langC = false;
+    profiledCompiler = false;
+    inherit zip unzip zlib boehmgc gettext pkgconfig perl;
+    inherit (gtkLibs) gtk;
+    inherit (gnome) libart_lgpl;
+    inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
+      libXrandr xproto renderproto xextproto inputproto randrproto;
+  });
+
   gnat = gnat45;
 
   gnat44 = wrapGCC (gcc44.gcc.override {
@@ -1796,10 +1979,33 @@ let
     ppl = null;
   });
 
+  gnat46 = wrapGCC (gcc46_real.gcc.override {
+    name = "gnat";
+    langCC = false;
+    langC = true;
+    langAda = true;
+    profiledCompiler = false;
+    gnatboot = gnat45;
+    # We can't use the ppl stuff, because we would have
+    # libstdc++ problems.
+    cloogppl = null;
+    ppl = null;
+    cloog = null;
+  });
+
   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
     inherit fetchurl stdenv;
   });
 
+  gccgo = gccgo46;
+
+  gccgo46 = wrapGCC (gcc46_real.gcc.override {
+    name = "gccgo";
+    langCC = true; #required for go
+    langC = true;
+    langGo = true;
+  });
+
   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
     name = "ghdl";
@@ -1857,92 +2063,114 @@ let
     inherit fetchurl stdenv perl ncurses gmp libedit;
   });
 
+  ghc6121Binary = lowPrio (import ../development/compilers/ghc/6.12.1-binary.nix {
+    inherit fetchurl stdenv perl ncurses gmp;
+  });
+
   # For several compiler versions, we export a large set of Haskell-related
   # packages.
 
   # This should point to the current default version.
-  haskellPackages = haskellPackages_ghc6123;
+  haskellPackages = haskellPackages_ghc704;
 
-  # Old versions of ghc that currently don't build because the binary
-  # is broken.
-  /*
-  haskellPackages_ghc642 = callPackage ./haskell-packages.nix {
-    ghc = import ../development/compilers/ghc/6.4.2.nix {
-      inherit fetchurl stdenv perl ncurses readline m4 gmp;
-      ghc = ghc642Binary;  };
-  };
-
-  haskellPackages_ghc661 = callPackage ./haskell-packages.nix {
-    ghc = import ../development/compilers/ghc/6.6.1.nix {
-      inherit fetchurl stdenv readline perl58 gmp ncurses m4;
-      ghc = ghc642Binary;
-  };
-  };
-
-  haskellPackages_ghc682 = callPackage ./haskell-packages.nix {
-    ghc = import ../development/compilers/ghc/6.8.2.nix {
-      inherit fetchurl stdenv perl gmp ncurses m4;
-      readline = readline5;
-      ghc = ghc642Binary;
-  };
-  };
-
-  haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
-    inherit pkgs;
-    ghc = callPackage ../development/compilers/ghc/6.8.3.nix {
-      ghc = ghc642Binary;
-      haddock = import ../development/tools/documentation/haddock/boot.nix {
-        inherit gmp;
-        cabal = import ../development/libraries/haskell/cabal/cabal.nix {
-          inherit stdenv fetchurl lib;
-          ghc = ghc642Binary;    };
-      };
-    };
-  });
-  */
-
-  # NOTE: After discussion, we decided to enable recurseIntoAttrs for all
-  # currently available ghc versions. (Before, it used to be enabled only
-  # for a selected few versions.) If someone complains about nix-env -qa
-  # output being spammed by lots of Haskell packages, we can talk about
-  # reducing the number or "enabled" versions again.
+  # NOTE (recurseIntoAttrs): After discussion, we originally decided to
+  # enable it for all GHC versions. However, this is getting too much,
+  # particularly in connection with Hydra builds for all these packages.
+  # So we enable it for selected versions only.
 
   # Helper functions to abstract away from repetitive instantiations.
-  haskellPackagesFun = ghcPath : profDefault : modifyPrio : recurseIntoAttrs (import ./haskell-packages.nix {
-    inherit pkgs newScope modifyPrio;
-    enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
-    ghc = callPackage ghcPath {
-      ghc = ghc6101Binary;    };
-  });
+  haskellPackagesFun =
+    ghcPath : ghcBinary : prefFun : profExplicit : profDefault : modifyPrio :
+      import ./haskell-packages.nix {
+        inherit pkgs newScope modifyPrio prefFun;
+        enableLibraryProfiling =
+          if profExplicit then profDefault
+                          else getConfig [ "cabal" "libraryProfiling" ] profDefault;
+        ghc = callPackage ghcPath { ghc = ghcBinary; };
+      };
 
   # Currently active GHC versions.
-  haskellPackages_ghc6101 =
-    haskellPackagesFun ../development/compilers/ghc/6.10.1.nix false (x : x);
-
-  haskellPackages_ghc6102 =
-    haskellPackagesFun ../development/compilers/ghc/6.10.2.nix false (x : x);
-
-  haskellPackages_ghc6103 =
-    haskellPackagesFun ../development/compilers/ghc/6.10.3.nix false (x : x);
-
   haskellPackages_ghc6104 =
-    haskellPackagesFun ../development/compilers/ghc/6.10.4.nix false (x : x);
+    recurseIntoAttrs
+      (haskellPackagesFun ../development/compilers/ghc/6.10.4.nix
+        ghc6101Binary (x : x.ghc6104Prefs) false false lowPrio);
 
   haskellPackages_ghc6121 =
-    haskellPackagesFun ../development/compilers/ghc/6.12.1.nix false (x : x);
+    haskellPackagesFun ../development/compilers/ghc/6.12.1.nix
+      ghc6101Binary (x : x.ghc6121Prefs) false false lowPrio;
 
   haskellPackages_ghc6122 =
-    haskellPackagesFun ../development/compilers/ghc/6.12.2.nix false (x : x);
+    haskellPackagesFun ../development/compilers/ghc/6.12.2.nix
+      ghc6101Binary (x : x.ghc6122Prefs) false false lowPrio;
 
-  # Current default version.
   haskellPackages_ghc6123 =
-    haskellPackagesFun ../development/compilers/ghc/6.12.3.nix false (x : x);
+    recurseIntoAttrs
+      (haskellPackagesFun ../development/compilers/ghc/6.12.3.nix
+        ghc6101Binary (x : x.ghc6123Prefs) false false lowPrio);
 
+  # Will never make it into a platform release, severe bugs; leave at lowPrio.
   haskellPackages_ghc701 =
-    haskellPackagesFun ../development/compilers/ghc/7.0.1.nix  false lowPrio;
-
+    haskellPackagesFun ../development/compilers/ghc/7.0.1.nix
+      ghc6101Binary (x : x.ghc701Prefs) false false lowPrio;
+
+  haskellPackages_ghc702 =
+    haskellPackagesFun ../development/compilers/ghc/7.0.2.nix
+      ghc6101Binary (x : x.ghc702Prefs) false false lowPrio;
+
+  haskellPackages_ghc703 =
+    haskellPackagesFun ../development/compilers/ghc/7.0.3.nix
+      ghc6101Binary (x : x.ghc703Prefs) false false lowPrio;
+
+  # Current default version: 7.0.4
+  # Note that the platform isn't officially released for ghc-7.0.4, but
+  # it works without problems.
+
+  # The following items are a bit convoluted, but they serve the
+  # following purpose:
+  #   - for the default version of GHC, both profiling and
+  #     non-profiling versions should be built by Hydra --
+  #     therefore, the _no_profiling and _profiling calls;
+  #   - however, if a user just upgrades a profile, then the
+  #     cabal/libraryProfiling setting should be respected; i.e.,
+  #     the versions not matching the profiling config setting
+  #     should have low priority -- therefore, the use of
+  #     haskellDefaultVersionPrioFun;
+  #   - it should be possible to select library versions that
+  #     respect the config setting using the standard
+  #     haskellPackages_ghc704 path -- therefore, the additional
+  #     call in haskellPackages_ghc704, without recurseIntoAttrs,
+  #     so that Hydra doesn't build these.
+  haskellDefaultVersionPrioFun =
+    profDefault :
+    if getConfig [ "cabal" "libraryProfiling" ] false == profDefault
+      then (x : x)
+      else lowPrio;
+
+  haskellPackages_ghc704_no_profiling =
+    recurseIntoAttrs
+      (haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
+        ghc6101Binary (x : x.ghc704Prefs) true false
+        (haskellDefaultVersionPrioFun false));
+
+  haskellPackages_ghc704_profiling =
+    recurseIntoAttrs
+      (haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
+        ghc6101Binary (x : x.ghc704Prefs) true true
+        (haskellDefaultVersionPrioFun true));
+
+  haskellPackages_ghc704 =
+    haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
+      ghc6101Binary (x : x.ghc704Prefs) false false (x : x);
+
+  haskellPackages_ghc721 =
+    recurseIntoAttrs
+      (haskellPackagesFun ../development/compilers/ghc/7.2.1.nix
+        ghc6121Binary (x : x.ghc721Prefs) false false lowPrio);
+
+  # Still a release candidate.
   haskellPackages_ghcHEAD =
-    haskellPackagesFun ../development/compilers/ghc/head.nix   false lowPrio;
+    haskellPackagesFun ../development/compilers/ghc/head.nix
+      ghc6121Binary (x : x.ghcHEADPrefs) false false lowPrio;
 
   haxeDist = import ../development/compilers/haxe {
     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
@@ -1973,6 +2201,12 @@ let
 
   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
 
+  openjdk = callPackage ../development/compilers/openjdk { };
+
+  openjre = callPackage ../development/compilers/openjdk {
+    jreOnly = true;
+  };
+
   j2sdk14x = (
     assert system == "i686-linux";
     import ../development/compilers/jdk/default-1.4.nix {
@@ -2005,13 +2239,16 @@ let
 
   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
     inherit makeWrapper;
-    inherit (gtkLibs) gtk glib pango atk;
+    inherit (gtkLibs) gtk glib pango atk gdk_pixbuf;
     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
-    fpc = fpc_2_4_0;
+    fpc = fpc;
   };
 
   llvm = callPackage ../development/compilers/llvm { };
 
+  # Works partially
+  llvmSVN = callPackage ../development/compilers/llvm/svn-head.nix { };
+
   mitscheme = callPackage ../development/compilers/mit-scheme { };
 
   mlton = callPackage ../development/compilers/mlton { };
@@ -2047,26 +2284,39 @@ let
 
     camlzip = callPackage ../development/ocaml-modules/camlzip { };
 
-    camomile = camomile_0_7_3;
-    camomile_0_7_3 = callPackage ../development/ocaml-modules/camomile/0.7.3.nix { };
-    camomile_0_8_1 = callPackage ../development/ocaml-modules/camomile/0.8.1.nix { };
+    camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { };
+    camomile = callPackage ../development/ocaml-modules/camomile { };
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
     findlib = callPackage ../development/tools/ocaml/findlib { };
 
-    lablgtk = callPackage ../development/libraries/lablgtk {
-      inherit (gnome) libgnomecanvas;
+    gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
+
+    lablgtk = callPackage ../development/ocaml-modules/lablgtk {
+      inherit (gnome) libgnomecanvas libglade gtksourceview;
+    };
+
+    lablgtkmathview = callPackage ../development/ocaml-modules/lablgtkmathview {
+      gtkmathview = callPackage ../development/libraries/gtkmathview { };
     };
 
     menhir = callPackage ../development/ocaml-modules/menhir { };
 
-    ocaml_batteries = callPackage ../development/ocaml-modules/batteries { };
+    ocaml_batteries = callPackage ../development/ocaml-modules/batteries {
+      camomile = camomile_0_8_2;
+    };
 
     ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { };
 
+    ocaml_expat = callPackage ../development/ocaml-modules/expat { };
+
+    ocaml_http = callPackage ../development/ocaml-modules/http { };
+
     ocaml_lwt = callPackage ../development/ocaml-modules/lwt { };
 
+    ocaml_mysql = callPackage ../development/ocaml-modules/mysql { };
+
     ocamlnet = callPackage ../development/ocaml-modules/ocamlnet { };
 
     ocaml_pcre = callPackage ../development/ocaml-modules/pcre {
@@ -2080,6 +2330,10 @@ let
     ocaml_ssl = callPackage ../development/ocaml-modules/ssl { };
 
     ounit = callPackage ../development/ocaml-modules/ounit { };
+
+    ulex08 = callPackage ../development/ocaml-modules/ulex/0.8 {
+      camlp5 = camlp5_transitional;
+    };
   };
 
   ocamlPackages = recurseIntoAttrs ocamlPackages_3_11_1;
@@ -2098,6 +2352,9 @@ let
 
   roadsend = callPackage ../development/compilers/roadsend { };
 
+  # TODO: the corresponding nix file is missing
+  # rust = pkgsi686Linux.callPackage ../development/compilers/rust {};
+
   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
     inherit makeWrapper clisp;
   };
@@ -2181,6 +2438,8 @@ let
     inherit sbcl;
   };
 
+  angelscript = callPackage ../development/interpreters/angelscript {};
+
   clisp = callPackage ../development/interpreters/clisp { };
 
   # compatibility issues in 2.47 - at list 2.44.1 is known good
@@ -2194,9 +2453,11 @@ let
 
   groovy = callPackage ../development/interpreters/groovy { };
 
-  guile = callPackage ../development/interpreters/guile { };
+  guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { };
+
+  guile_2_0 = callPackage ../development/interpreters/guile { };
 
-  guile_1_9 = callPackage ../development/interpreters/guile/1.9.nix { };
+  guile = guile_2_0;
 
   io = builderDefsPackage (import ../development/interpreters/io) {
     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
@@ -2204,12 +2465,18 @@ let
       freeglut e2fsprogs libsamplerate pcre libevent libedit;
   };
 
+  j = callPackage ../development/interpreters/j {};
+
   kaffe = callPackage ../development/interpreters/kaffe { };
 
+  kona = callPackage ../development/interpreters/kona {};
+
   lua4 = callPackage ../development/interpreters/lua-4 { };
 
   lua5 = callPackage ../development/interpreters/lua-5 { };
 
+  lua5_0 = callPackage ../development/interpreters/lua-5/5.0.3.nix { };
+
   maude = callPackage ../development/interpreters/maude { };
 
   octave = callPackage ../development/interpreters/octave {
@@ -2237,19 +2504,25 @@ let
   php5_2 = makeOverridable (import ../development/interpreters/php/5.2.nix) {
     inherit
       stdenv fetchurl lib composableDerivation autoconf automake
-      flex bison apacheHttpd mysql libxml2
+      flex bison apacheHttpd mysql libxml2 readline
       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
   };
 
   php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) {
     inherit
       stdenv fetchurl lib composableDerivation autoconf automake
-      flex bison apacheHttpd mysql libxml2
+      flex bison apacheHttpd mysql libxml2 readline
       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
   };
 
+  php_apc = callPackage ../development/libraries/php-apc { };
+
+  php_xcache = callPackage ../development/libraries/php-xcache { };
+
   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
 
+  picolisp = callPackage ../development/interpreters/picolisp {};
+
   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
     inherit cairo fontconfig freetype libjpeg libpng openssl
       perl mesa zlib which;
@@ -2260,51 +2533,27 @@ let
 
   polyml = callPackage ../development/compilers/polyml { };
 
-  python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
-  python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
-  python27 = if getConfig ["python" "full"] false then python27Full else python27Base;
-  pythonBase = python26Base;
-  pythonFull = python26Full;
+  pure = callPackage ../development/interpreters/pure {};
 
-  pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { };
+  python = python27;
 
-  python24 = callPackage ../development/interpreters/python/2.4 { };
+  python26 = callPackage ../development/interpreters/python/2.6 { };
 
-  python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
-    inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
-    arch = if stdenv.isDarwin then darwinArchUtility else null;
-    sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
-  });
-
-  python26Full = lowPrio (python26Base.override {
-    # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
-    db4 = if getConfig ["python" "db4Support"] true then db4 else null;
-    sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
-    readline = if getConfig ["python" "readlineSupport"] true then readline else null;
-    openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
-    tk = if getConfig ["python" "tkSupport"] true then tk else null;
-    tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
-    libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
-    xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
-    ncurses = if getConfig ["python" "curses"] true then ncurses else null;
-  });
+  python27 = callPackage ../development/interpreters/python/2.7 { };
 
-  python27Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.7) {
-    inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
-    arch = if stdenv.isDarwin then darwinArchUtility else null;
-    sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
-  });
+  python3 = callPackage ../development/interpreters/python/3.1 {
+    arch = if stdenv.isDarwin then pkgs.darwinArchUtility else null;
+    sw_vers = if stdenv.isDarwin then pkgs.darwinSwVersUtility else null;
+  };
 
-  python27Full = lowPrio (python27Base.override {
-    inherit (pkgs) db4 sqlite readline openssl tcl tk ncurses;
-    inherit (pkgs.xlibs) libX11 xproto;
-  });
+  python32 = callPackage ../development/interpreters/python/3.2 {
+    arch = if stdenv.isDarwin then pkgs.darwinArchUtility else null;
+    sw_vers = if stdenv.isDarwin then pkgs.darwinSwVersUtility else null;
+  };
 
-  python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
-    inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
-    arch = if stdenv.isDarwin then darwinArchUtility else null;
-    sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
-  });
+  pythonFull = callPackage ../development/interpreters/python/wrapper.nix {
+    extraLibs = lib.attrValues python.modules;
+  };
 
   pyrex = pyrex095;
 
@@ -2314,15 +2563,15 @@ let
 
   qi = callPackage ../development/compilers/qi { };
 
-  racket = callPackage ../development/interpreters/racket { };
+  racket = callPackage ../development/interpreters/racket {
+    inherit (gtkLibs) pango glib gtk;
+  };
 
   ruby18 = callPackage ../development/interpreters/ruby { };
   #ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
   ruby = ruby18;
 
-  rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
-    inherit pkgs stdenv;
-  });
+  rubyLibs = recurseIntoAttrs (callPackage ../development/interpreters/ruby/libs.nix { });
 
   rake = callPackage ../development/ruby-modules/rake { };
 
@@ -2332,7 +2581,7 @@ let
     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
   };
 
-  rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
+  rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/rubygems.nix) {
     inherit ruby makeWrapper;
   };
   rubygems = rubygemsFun ruby;
@@ -2350,16 +2599,14 @@ let
 
   xulrunnerWrapper = {application, launcher}:
     import ../development/interpreters/xulrunner/wrapper {
-      inherit stdenv application launcher;
-      xulrunner = firefox36Pkgs.xulrunner;
+      inherit stdenv application launcher xulrunner;
     };
 
+  xulrunner = pkgs.firefoxPkgs.xulrunner;
 
   ### DEVELOPMENT / MISC
 
-  avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {
-    gcc = gcc40;
-  };
+  avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {};
 
   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
 
@@ -2389,6 +2636,8 @@ let
 
   guile_lib = callPackage ../development/guile-modules/guile-lib { };
 
+  guile_ncurses = callPackage ../development/guile-modules/guile-ncurses { };
+
   windowssdk = (
     import ../development/misc/windows-sdk {
       inherit fetchurl stdenv cabextract;
@@ -2434,15 +2683,26 @@ let
   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
 
   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix {
-    doCheck = if stdenv.isArm then false else true;
+    doCheck = !stdenv.isArm && !stdenv.isCygwin
+      # Some of the parallel tests seem to hang on `i386-pc-solaris2.11'.
+      && stdenv.system != "i386-sunos";
   };
 
+  automoc4 = callPackage ../development/tools/misc/automoc4 { };
+
   avrdude = callPackage ../development/tools/misc/avrdude { };
 
+  bam = callPackage ../development/tools/build-managers/bam {};
+
   binutils = callPackage ../development/tools/misc/binutils {
     inherit noSysDirs;
   };
 
+  binutils_gold = callPackage ../development/tools/misc/binutils {
+    inherit noSysDirs;
+    gold = true;
+  };
+
   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
     inherit stdenv fetchurl zlib;
     noSysDirs = true;
@@ -2457,6 +2717,8 @@ let
 
   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
 
+  bison25 = callPackage ../development/tools/parsing/bison/bison-2.5.nix { };
+
   buildbot = callPackage ../development/tools/build-managers/buildbot {
     inherit (pythonPackages) twisted;
   };
@@ -2465,6 +2727,8 @@ let
 
   ccache = callPackage ../development/tools/misc/ccache { };
 
+  complexity = callPackage ../development/tools/misc/complexity { };
+
   ctags = callPackage ../development/tools/misc/ctags { };
 
   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
@@ -2487,6 +2751,8 @@ let
 
   cscope = callPackage ../development/tools/misc/cscope { };
 
+  csslint = callPackage ../development/web/csslint { };
+
   dejagnu = callPackage ../development/tools/misc/dejagnu { };
 
   ddd = callPackage ../development/tools/misc/ddd { };
@@ -2497,7 +2763,11 @@ let
     inherit python pil makeWrapper;
   };
 
-  doxygen = callPackage ../development/tools/documentation/doxygen {
+  doxygen = lowPrio (callPackage ../development/tools/documentation/doxygen {
+    qt = null;
+  });
+
+  doxygen_gui = doxygen.override {
     qt = qt4;
   };
 
@@ -2564,8 +2834,12 @@ let
 
   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
 
+  intelgen4asm = callPackage ../development/misc/intelgen4asm { };
+
   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
 
+  jam = callPackage ../development/tools/build-managers/jam { };
+
   jikespg = callPackage ../development/tools/parsing/jikespg { };
 
   lcov = callPackage ../development/tools/analysis/lcov { };
@@ -2580,7 +2854,20 @@ let
 
   ltrace = callPackage ../development/tools/misc/ltrace { };
 
-  mig = callPackage ../os-specific/gnu/mig { };
+  mig = callPackage ../os-specific/gnu/mig
+    (if stdenv.isLinux
+     then {
+       # Build natively, but force use of a 32-bit environment because we're
+       # targeting `i586-pc-gnu'.
+       stdenv = (import ../stdenv {
+         system = "i686-linux";
+         stdenvType = "i686-linux";
+         allPackages = args:
+           import ./all-packages.nix ({ inherit config; } // args);
+         inherit platform;
+       }).stdenv;
+     }
+     else { });
 
   mk = callPackage ../development/tools/build-managers/mk { };
 
@@ -2606,6 +2893,8 @@ let
 
   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
 
+  peg = callPackage ../development/tools/parsing/peg { };
+
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
 
   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
@@ -2631,7 +2920,8 @@ let
 
   # couldn't find the source yet
   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
-    jre = jdk;  };
+    jre = jdk;
+  };
 
   scons = callPackage ../development/tools/build-managers/scons { };
 
@@ -2694,10 +2984,9 @@ let
 
   acl = callPackage ../development/libraries/acl { };
 
-  adns = import ../development/libraries/adns/1.4.nix {
-    inherit stdenv fetchurl;
-    static = getPkgConfig "adns" "static" (stdenv ? isStatic || stdenv ? isDietLibC);
-  };
+  adns = callPackage ../development/libraries/adns { };
+
+  afflib = callPackage ../development/libraries/afflib {};
 
   agg = callPackage ../development/libraries/agg { };
 
@@ -2713,6 +3002,8 @@ let
     bdbSupport = true;
   };
 
+  asio = callPackage ../development/libraries/asio { };
+
   aspell = callPackage ../development/libraries/aspell { };
 
   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
@@ -2721,14 +3012,12 @@ let
 
   aterm = aterm25;
 
-  aterm242fixes = lowPrio (import ../development/libraries/aterm/2.4.2-fixes.nix {
-    inherit fetchurl stdenv;
-  });
-
   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
 
   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
 
+  attica = callPackage ../development/libraries/attica { };
+
   attr = callPackage ../development/libraries/attr { };
 
   aubio = callPackage ../development/libraries/aubio { };
@@ -2743,7 +3032,13 @@ let
 
   boolstuff = callPackage ../development/libraries/boolstuff { };
 
-  boost = callPackage ../development/libraries/boost { };
+  boost142 = callPackage ../development/libraries/boost/1.42.nix { };
+  boost144 = callPackage ../development/libraries/boost/1.44.nix { };
+  boost146 = callPackage ../development/libraries/boost/1.46.nix { };
+  boost147 = callPackage ../development/libraries/boost/1.47.nix { };
+  # 1.47.0 doesn't compile on Darwin. The issue is probably trivial to
+  # fix, but no-one has done it yet.
+  boost = if stdenv.isDarwin then boost146 else boost147;
 
   # A Boost build with all library variants enabled.  Very large (about 250 MB).
   boostFull = appendToName "full" (boost.override {
@@ -2760,15 +3055,16 @@ let
   buddy = callPackage ../development/libraries/buddy { };
 
   cairo = callPackage ../development/libraries/cairo { };
-  cairo_1_10_0 = callPackage ../development/libraries/cairo/1.10.nix {
-    pixman = xlibs.pixman_0_20_0;
-  };
 
   cairomm = callPackage ../development/libraries/cairomm { };
 
   scmccid = callPackage ../development/libraries/scmccid { };
 
   ccrtp = callPackage ../development/libraries/ccrtp { };
+  ccrtp_1_8 = callPackage ../development/libraries/ccrtp/1.8.nix { };
+
+  celt = callPackage ../development/libraries/celt {};
+  celt_0_7 = callPackage ../development/libraries/celt/0.7.nix {};
 
   cgui = callPackage ../development/libraries/cgui {};
 
@@ -2807,7 +3103,9 @@ let
   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
   };
 
-  cluceneCore = callPackage ../development/libraries/clucene-core { };
+  clucene_core = callPackage ../development/libraries/clucene-core { };
+
+  cluceneCore = clucene_core; # !!! remove this
 
   clutter = callPackage ../development/libraries/clutter {
     inherit (gnome) glib pango gtk;
@@ -2817,6 +3115,10 @@ let
     inherit (gnome) gtk;
   };
 
+  cminpack = callPackage ../development/libraries/cminpack { };
+
+  coin3d = callPackage ../development/libraries/coin3d { };
+
   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
 
   confuse = callPackage ../development/libraries/confuse { };
@@ -2828,6 +3130,7 @@ let
   ctl = callPackage ../development/libraries/ctl { };
 
   cppunit = callPackage ../development/libraries/cppunit { };
+  cppunit_1_10 = callPackage ../development/libraries/cppunit/1.10.nix { };
 
   cracklib = callPackage ../development/libraries/cracklib { };
 
@@ -2841,8 +3144,12 @@ let
 
   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
 
+  db47 = callPackage ../development/libraries/db4/db4-4.7.nix { };
+
+  db48 = callPackage ../development/libraries/db4/db4-4.8.nix { };
+
   dbus = callPackage ../development/libraries/dbus {
-    useX11 = true; # !!! `false' doesn't build
+    useX11 = true;
   };
 
   dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
@@ -2855,10 +3162,16 @@ let
 
   directfb = callPackage ../development/libraries/directfb { };
 
+  dotconf = callPackage ../development/libraries/dotconf { };
+
+  dssi = callPackage ../development/libraries/dssi {};
+
   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
     stdenv = overrideGCC stdenv gcc45;
   };
 
+  eigen = callPackage ../development/libraries/eigen {};
+
   enchant = callPackage ../development/libraries/enchant {
     inherit (gnome) glib;
   };
@@ -2882,10 +3195,7 @@ let
 
   eventlog = callPackage ../development/libraries/eventlog { };
 
-  facile = callPackage ../development/libraries/facile {
-    # Actually, we don't need this version but we need native-code compilation
-    ocaml = ocaml_3_10_0;
-  };
+  facile = callPackage ../development/libraries/facile { };
 
   faac = callPackage ../development/libraries/faac { };
 
@@ -2902,6 +3212,10 @@ let
     vpxSupport = if !stdenv.isMips then true else false;
   };
 
+  ffmpeg_0_6_90 = callPackage ../development/libraries/ffmpeg/0.6.90.nix {
+    vpxSupport = if !stdenv.isMips then true else false;
+  };
+
   fftw = callPackage ../development/libraries/fftw {
     singlePrecision = false;
   };
@@ -2910,6 +3224,10 @@ let
     singlePrecision = true;
   };
 
+  flann = callPackage ../development/libraries/flann { };
+
+  flite = callPackage ../development/libraries/flite { };
+
   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
 
   fltk20 = callPackage ../development/libraries/fltk { };
@@ -2937,6 +3255,8 @@ let
 
   fribidi = callPackage ../development/libraries/fribidi { };
 
+  funambol = callPackage ../development/libraries/funambol { };
+
   fam = gamin;
 
   gamin = callPackage ../development/libraries/gamin { };
@@ -2945,17 +3265,19 @@ let
     stdenv = overrideGCC stdenv gcc41;
   };
 
-  gdbm = callPackage ../development/libraries/gdbm { };
-
-  gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
-    inherit (gtkLibs1x) gtk;
+  gdome2 = callPackage ../development/libraries/gdome2 {
+    inherit (gnome) gtkdoc;
   };
 
+  gdbm = callPackage ../development/libraries/gdbm { };
+
   gegl = callPackage ../development/libraries/gegl {
     #  avocodec avformat librsvg
     inherit (gtkLibs) pango glib gtk;
   };
 
+  geoclue = callPackage ../development/libraries/geoclue {};
+
   geoip = builderDefsPackage ../development/libraries/geoip {
     inherit zlib;
   };
@@ -2973,6 +3295,8 @@ let
 
   gdal = callPackage ../development/libraries/gdal { };
 
+  ggz_base_libs = callPackage ../development/libraries/ggz_base_libs {};
+
   giblib = callPackage ../development/libraries/giblib { };
 
   glew = callPackage ../development/libraries/glew { };
@@ -2982,7 +3306,7 @@ let
   glibc = glibc213;
 
   glibc25 = callPackage ../development/libraries/glibc-2.5 {
-    kernelHeaders = linuxHeaders;
+    kernelHeaders = linuxHeaders_2_6_28;
     installLocales = false;
   };
 
@@ -3036,12 +3360,6 @@ let
 
   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
 
-  libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
-
-  libdwg = callPackage ../development/libraries/libdwg { };
-
-  libgadu = callPackage ../development/libraries/libgadu { };
-
   eglibc = callPackage ../development/libraries/eglibc {
     kernelHeaders = linuxHeaders;
     installLocales = getPkgConfig "glibc" "locales" false;
@@ -3077,8 +3395,6 @@ let
 
   gmime = callPackage ../development/libraries/gmime { };
 
-  gmime_2_2 = callPackage ../development/libraries/gmime/2.2.x.nix { };
-
   gmm = callPackage ../development/libraries/gmm { };
 
   gmp =
@@ -3115,7 +3431,8 @@ let
 
   gst_all = recurseIntoAttrs
     (let callPackage = newScope pkgs.gst_all; in
-     import ../development/libraries/gstreamer { inherit callPackage pkgs; });
+     import ../development/libraries/gstreamer { inherit callPackage; }
+    );
 
   gnet = callPackage ../development/libraries/gnet { };
 
@@ -3131,6 +3448,8 @@ let
 
   gsl = callPackage ../development/libraries/gsl { };
 
+  gsm = callPackage ../development/libraries/gsm {};
+
   gsoap = callPackage ../development/libraries/gsoap { };
 
   gss = callPackage ../development/libraries/gss { };
@@ -3139,13 +3458,13 @@ let
     inherit (gnome) gtk;
   };
 
-  gtkLibs = gtkLibs220;
+  gtkmathview = callPackage ../development/libraries/gtkmathview { };
 
-  glib = gtkLibs.glib;
-  gtk = gtkLibs.gtk;
-  pango = gtkLibs.pango;
+  gtkLibs = pkgs.gtkLibs224;
 
-  gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {
+  inherit (pkgs.gtkLibs) glib gtk pango;
+
+  gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in {
 
     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
 
@@ -3153,7 +3472,7 @@ let
 
   });
 
-  gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in rec {
+  gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in {
 
     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
 
@@ -3171,40 +3490,44 @@ let
 
   });
 
-  gtkLibs218 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs218; in rec {
+  gtkLibs220 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs220; in {
 
-    glib = callPackage ../development/libraries/glib/2.22.x.nix { };
+    glib = callPackage ../development/libraries/glib/2.24.x.nix { };
 
     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
 
-    atk = callPackage ../development/libraries/atk/1.28.x.nix { };
+    atk = callPackage ../development/libraries/atk/1.30.x.nix { };
 
-    pango = callPackage ../development/libraries/pango/1.26.x.nix { };
+    pango = callPackage ../development/libraries/pango/1.28.x.nix { };
 
     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
 
-    gtk = callPackage ../development/libraries/gtk+/2.18.x.nix { };
+    gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
 
     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
 
   });
 
-  gtkLibs220 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs220; in rec {
+  gtkLibs224 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs224; in {
 
-    glib = callPackage ../development/libraries/glib/2.24.x.nix { };
+    glib = callPackage ../development/libraries/glib/2.28.x.nix { };
 
     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
 
-    atk = callPackage ../development/libraries/atk/1.30.x.nix { };
+    atk = callPackage ../development/libraries/atk/1.32.x.nix { };
 
     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
 
     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
 
-    gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
+    gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.22.x.nix { };
+
+    gtk = callPackage ../development/libraries/gtk+/2.24.x.nix { };
 
     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
 
+    gob2 = callPackage ../development/tools/misc/gob2 { };
+
   });
 
   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
@@ -3231,16 +3554,16 @@ let
 
   gtkspell = callPackage ../development/libraries/gtkspell { };
 
+  gts = callPackage ../development/libraries/gts { };
+
   # TODO : Add MIT Kerberos and let admin choose.
   kerberos = heimdal;
 
-  heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
-
-  herqqSvn = callPackage ../development/libraries/herqq/svn.nix { };
+  hawknl = callPackage ../development/libraries/hawknl { };
 
-  herqq070 = callPackage ../development/libraries/herqq/0.7.0.nix { };
+  heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
 
-  herqq080 = callPackage ../development/libraries/herqq/0.8.0.nix { };
+  herqq = callPackage ../development/libraries/herqq { };
 
   hspell = callPackage ../development/libraries/hspell { };
 
@@ -3324,6 +3647,8 @@ let
 
   levmar = callPackage ../development/libraries/levmar { };
 
+  leptonica = callPackage ../development/libraries/leptonica { };
+
   lib3ds = callPackage ../development/libraries/lib3ds { };
 
   libaal = callPackage ../development/libraries/libaal { };
@@ -3334,22 +3659,22 @@ let
 
   libarchive = callPackage ../development/libraries/libarchive { };
 
+  libass = callPackage ../development/libraries/libass { };
+
   libassuan1 = callPackage ../development/libraries/libassuan1 { };
 
   libassuan = callPackage ../development/libraries/libassuan { };
 
+  libav = callPackage ../development/libraries/libav { };
+
   libavc1394 = callPackage ../development/libraries/libavc1394 { };
 
+  libbluedevil = callPackage ../development/libraries/libbluedevil { };
+
   libcaca = callPackage ../development/libraries/libcaca { };
 
   libcanberra = callPackage ../development/libraries/libcanberra {
-    /* Using GNU Make 3.82 leads to this:
-
-         Makefile:939: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.
-
-       So use 3.81.  */
-    stdenv = overrideInStdenv stdenv [gnumake381];
-    gstreamer = gst_all.gstreamer;
+    # gstreamer = gst_all.gstreamer;
   };
 
   libcdaudio = callPackage ../development/libraries/libcdaudio { };
@@ -3381,29 +3706,44 @@ let
     inherit sqlite mysql;
   };
 
+  libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
+
   libdevil = callPackage ../development/libraries/libdevil { };
 
   libdiscid = callPackage ../development/libraries/libdiscid { };
 
-  libdv = callPackage ../development/libraries/libdv { };
+  libdmtx = callPackage ../development/libraries/libdmtx { };
 
-  libdrm = if stdenv.isDarwin then null else (import ../development/libraries/libdrm {
+  libdrm = if stdenv.isDarwin then null else (callPackage ../development/libraries/libdrm {
     inherit fetchurl stdenv pkgconfig;
     inherit (xorg) libpthreadstubs;
   });
 
+  libdv = callPackage ../development/libraries/libdv { };
+
+  libdwg = callPackage ../development/libraries/libdwg { };
+
   libdvdcss = callPackage ../development/libraries/libdvdcss { };
 
   libdvdnav = callPackage ../development/libraries/libdvdnav { };
 
   libdvdread = callPackage ../development/libraries/libdvdread { };
 
+  libebml = callPackage ../development/libraries/libebml { };
+
   libedit = callPackage ../development/libraries/libedit { };
 
   libelf = callPackage ../development/libraries/libelf { };
 
+  libgadu = callPackage ../development/libraries/libgadu { };
+
+  libgdata = (newScope gnome) ../development/libraries/libgdata {};
+  libgdata_0_6 = (newScope gnome) ../development/libraries/libgdata/0.6.nix {};
+
   liblo = callPackage ../development/libraries/liblo { };
 
+  liblrdf = callPackage ../development/libraries/liblrdf {};
+
   libev = builderDefsPackage ../development/libraries/libev {
   };
 
@@ -3413,11 +3753,15 @@ let
 
   libexif = callPackage ../development/libraries/libexif { };
 
+  libexosip = callPackage ../development/libraries/exosip {};
+
   libextractor = callPackage ../development/libraries/libextractor {
     inherit (gnome) gtk;
     libmpeg2 = mpeg2dec;
   };
 
+  libf2c = callPackage ../development/libraries/libf2c {};
+
   libfixposix = callPackage ../development/libraries/libfixposix {};
 
   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
@@ -3454,6 +3798,8 @@ let
 
   liblastfm = callPackage ../development/libraries/liblastfm { };
 
+  liblikeback = newScope pkgs.kde4 ../development/libraries/liblikeback { };
+
   liblqr1 = callPackage ../development/libraries/liblqr-1 {
     inherit (gnome) glib;
   };
@@ -3472,9 +3818,7 @@ let
 
   libsamplerate = callPackage ../development/libraries/libsamplerate { };
 
-  libspectre = callPackage ../development/libraries/libspectre {
-    ghostscript = ghostscriptX;
-  };
+  libspectre = callPackage ../development/libraries/libspectre { };
 
   libgsf = callPackage ../development/libraries/libgsf {
     inherit (gnome) glib gnomevfs libbonobo;
@@ -3504,6 +3848,8 @@ let
     libtool = libtool_1_5;
   };
 
+  libkate = callPackage ../development/libraries/libkate { };
+
   libksba = callPackage ../development/libraries/libksba { };
 
   libmad = callPackage ../development/libraries/libmad { };
@@ -3514,6 +3860,8 @@ let
 
   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
 
+  libmatroska = callPackage ../development/libraries/libmatroska { };
+
   libmcs = callPackage ../development/libraries/libmcs { };
 
   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
@@ -3522,12 +3870,16 @@ let
 
   libmilter = callPackage ../development/libraries/libmilter { };
 
+  libmms = callPackage ../development/libraries/libmms { };
+
   libmowgli = callPackage ../development/libraries/libmowgli { };
 
   libmng = callPackage ../development/libraries/libmng { };
 
   libmpcdec = callPackage ../development/libraries/libmpcdec { };
 
+  libmrss = callPackage ../development/libraries/libmrss { };
+
   libmsn = callPackage ../development/libraries/libmsn { };
 
   libmspack = callPackage ../development/libraries/libmspack { };
@@ -3544,12 +3896,16 @@ let
 
   libnova = callPackage ../development/libraries/libnova { };
 
+  libnxml = callPackage ../development/libraries/libnxml { };
+
   libofa = callPackage ../development/libraries/libofa { };
 
   libofx = callPackage ../development/libraries/libofx { };
 
   libogg = callPackage ../development/libraries/libogg { };
 
+  liboggz = callPackage ../development/libraries/liboggz { };
+
   liboil = callPackage ../development/libraries/liboil { };
 
   liboop = callPackage ../development/libraries/liboop { };
@@ -3560,6 +3916,8 @@ let
 
   libp11 = callPackage ../development/libraries/libp11 { };
 
+  libpar2 = callPackage ../development/libraries/libpar2 { };
+
   libpcap = callPackage ../development/libraries/libpcap { };
 
   libpng = callPackage ../development/libraries/libpng { };
@@ -3596,6 +3954,8 @@ let
 
   libtiff = callPackage ../development/libraries/libtiff { };
 
+  libtiger = callPackage ../development/libraries/libtiger { };
+
   libtommath = callPackage ../development/libraries/libtommath { };
 
   libtorrentRasterbar = callPackage ../development/libraries/libtorrent-rasterbar { };
@@ -3620,6 +3980,8 @@ let
 
   libv4l = callPackage ../development/libraries/libv4l { };
 
+  libva = callPackage ../development/libraries/libva { };
+
   libvdpau = callPackage ../development/libraries/libvdpau { };
 
   libvirt = callPackage ../development/libraries/libvirt { };
@@ -3680,17 +4042,21 @@ let
   libzip = callPackage ../development/libraries/libzip { };
 
   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
+  libzrtpcpp_1_6 = callPackage ../development/libraries/libzrtpcpp/1.6.nix {
+    ccrtp = ccrtp_1_8;
+  };
 
   lightning = callPackage ../development/libraries/lightning { };
 
   liquidwar = builderDefsPackage ../games/liquidwar {
     inherit (xlibs) xproto libX11 libXrender;
-    inherit gmp guile mesa libjpeg libpng
+    inherit gmp mesa libjpeg libpng
       expat gettext perl
       SDL SDL_image SDL_mixer SDL_ttf
       curl sqlite
       libogg libvorbis
       ;
+   guile = guile_1_8;
   };
 
   log4cxx = callPackage ../development/libraries/log4cxx { };
@@ -3731,11 +4097,15 @@ let
 
   ming = callPackage ../development/libraries/ming { };
 
+  mkvtoolnix = callPackage ../applications/video/mkvtoolnix { };
+
   mlt = callPackage ../development/libraries/mlt {
     qt = qt4;
   };
 
-  mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
+  libmpeg2 = callPackage ../development/libraries/libmpeg2 { };
+
+  mpeg2dec = libmpeg2;
 
   msilbc = callPackage ../development/libraries/msilbc { };
 
@@ -3745,8 +4115,14 @@ let
 
   mpich2 = callPackage ../development/libraries/mpich2 { };
 
+  mtdev = callPackage ../development/libraries/mtdev { };
+
   muparser = callPackage ../development/libraries/muparser { };
 
+  mygui = callPackage ../development/libraries/mygui {};
+
+  myguiSvn = callPackage ../development/libraries/mygui/svn.nix {};
+
   ncurses = makeOverridable (import ../development/libraries/ncurses) {
     inherit fetchurl stdenv;
     unicode = system != "i686-cygwin";
@@ -3783,9 +4159,11 @@ let
     includeTools = true;
   };
 
+  ntrack = callPackage ../development/libraries/ntrack { };
+
   ode = builderDefsPackage (import ../development/libraries/ode) {
   };
-  
+
   ogre = callPackage ../development/libraries/ogre {};
 
   openal = callPackage ../development/libraries/openal { };
@@ -3800,7 +4178,13 @@ let
   openct = callPackage ../development/libraries/openct { };
 
   opencv = callPackage ../development/libraries/opencv {
-      inherit (gst_all) gstreamer;
+    ffmpeg = ffmpeg_0_6_90;
+    inherit (gst_all) gstreamer;
+  };
+
+  opencv_2_1 = callPackage ../development/libraries/opencv/2.1.nix {
+    ffmpeg = ffmpeg_0_6_90;
+    inherit (gst_all) gstreamer;
   };
 
   # this ctl version is needed by openexr_viewers
@@ -3826,6 +4210,8 @@ let
 
   openjpeg = callPackage ../development/libraries/openjpeg { };
 
+  openscenegraph = callPackage ../development/libraries/openscenegraph {};
+
   openssl = callPackage ../development/libraries/openssl {
     fetchurl = fetchurlBoot;
   };
@@ -3843,41 +4229,60 @@ let
 
   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
 
+  phonon = callPackage ../development/libraries/phonon { };
+
+  phonon_backend_gstreamer = callPackage ../development/libraries/phonon-backend-gstreamer { };
+
   phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
 
   physfs = callPackage ../development/libraries/physfs { };
 
   plib = callPackage ../development/libraries/plib { };
 
+  pocketsphinx = callPackage ../development/libraries/pocketsphinx { };
+
   podofo = callPackage ../development/libraries/podofo { };
 
   polkit = callPackage ../development/libraries/polkit { };
 
+  polkit_qt_1 = callPackage ../development/libraries/polkit-qt-1 { };
+
   policykit = callPackage ../development/libraries/policykit { };
 
   poppler = callPackage ../development/libraries/poppler {
+    gtkSupport = true;
     qt4Support = false;
   };
 
   popplerQt4 = poppler.override {
-    inherit qt4;
+    gtkSupport = false;
     qt4Support = true;
   };
 
   popt = callPackage ../development/libraries/popt { };
 
   portaudio = callPackage ../development/libraries/portaudio { };
+  portaudioSVN = callPackage ../development/libraries/portaudio/svn-head.nix { };
+
+  prison = callPackage ../development/libraries/prison { };
 
   proj = callPackage ../development/libraries/proj { };
 
   postgis = callPackage ../development/libraries/postgis { };
 
   protobuf = callPackage ../development/libraries/protobuf { };
+  protobuf_2_2_0 = callPackage ../development/libraries/protobuf/2.2.0.nix { };
 
   pth = callPackage ../development/libraries/pth { };
 
   ptlib = callPackage ../development/libraries/ptlib {};
 
+  qca2 = callPackage ../development/libraries/qca2 {};
+
+  qca2_ossl = callPackage ../development/libraries/qca2/ossl.nix {};
+
+  qimageblitz = callPackage ../development/libraries/qimageblitz {};
+
   qjson = callPackage ../development/libraries/qjson { };
 
   qt3 = callPackage ../development/libraries/qt-3 {
@@ -3896,7 +4301,6 @@ let
   };
 
   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
-    inherit (pkgs.gst_all) gstreamer gstPluginsBase;
     inherit (pkgs.gnome) glib;
   };
 
@@ -3916,6 +4320,8 @@ let
 
   quesoglc = callPackage ../development/libraries/quesoglc { };
 
+  qwt = callPackage ../development/libraries/qwt {};
+
   readline = readline6;
 
   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
@@ -3926,16 +4332,17 @@ let
 
   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
 
+  librdf_raptor2 = callPackage ../development/libraries/librdf/raptor2.nix { };
+
   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
 
+  librdf_redland = callPackage ../development/libraries/librdf/redland.nix { };
+
   librdf = callPackage ../development/libraries/librdf { };
 
   qrupdate = callPackage ../development/libraries/qrupdate { };
 
-  redland = callPackage ../development/libraries/redland/1.0.10.nix {
-    bdb = db4;
-    postgresql = null;
-  };
+  redland = pkgs.librdf_redland;
 
   rhino = callPackage ../development/libraries/java/rhino {
     ant = apacheAntGcj;
@@ -3973,18 +4380,32 @@ let
 
   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
 
+  simgear = callPackage ../development/libraries/simgear {};
+
+  sfml_git = callPackage ../development/libraries/sfml { };
+
   slang = callPackage ../development/libraries/slang { };
 
   slibGuile = callPackage ../development/libraries/slib {
-    scheme = guile;
+    scheme = guile_1_8;
   };
 
+  smpeg = callPackage ../development/libraries/smpeg { };
+
   snack = callPackage ../development/libraries/snack {
         # optional
   };
 
+  soqt = callPackage ../development/libraries/soqt { };
+
+  speechd = callPackage ../development/libraries/speechd { };
+
+  speech_tools = callPackage ../development/libraries/speech-tools {};
+
   speex = callPackage ../development/libraries/speex { };
 
+  sphinxbase = callPackage ../development/libraries/sphinxbase { };
+
   srtp = callPackage ../development/libraries/srtp {};
 
   sqlite = callPackage ../development/libraries/sqlite {
@@ -4003,6 +4424,8 @@ let
 
   stlport = callPackage ../development/libraries/stlport { };
 
+  strigi = callPackage ../development/libraries/strigi {};
+
   suitesparse = callPackage ../development/libraries/suitesparse { };
 
   sword = callPackage ../development/libraries/sword { };
@@ -4013,8 +4436,6 @@ let
 
   taglib = callPackage ../development/libraries/taglib { };
 
-  taglib17 = callPackage ../development/libraries/taglib/1.7.nix { };
-
   taglib_extras = callPackage ../development/libraries/taglib-extras { };
 
   talloc = callPackage ../development/libraries/talloc { };
@@ -4039,6 +4460,8 @@ let
 
   tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };
 
+  tremor = callPackage ../development/libraries/tremor { };
+
   unicap = callPackage ../development/libraries/unicap {};
 
   unixODBC = callPackage ../development/libraries/unixODBC { };
@@ -4050,26 +4473,47 @@ let
 
   urt = callPackage ../development/libraries/urt { };
 
+  ustr = callPackage ../development/libraries/ustr { };
+
+  ucommon = callPackage ../development/libraries/ucommon { };
+
   vamp = callPackage ../development/libraries/audio/vamp { };
 
   vigra = callPackage ../development/libraries/vigra { };
 
+  vmime = callPackage ../development/libraries/vmime { };
+
   vtk = callPackage ../development/libraries/vtk { };
 
   vxl = callPackage ../development/libraries/vxl { };
 
-  webkit = ((builderDefsPackage ../development/libraries/webkit {
-    inherit (gnome28) gtkdoc libsoup;
-    inherit (gtkLibs) gtk atk pango glib;
-    inherit freetype fontconfig gettext gperf curl
-      libjpeg libtiff libpng libxml2 libxslt sqlite
-      icu cairo perl intltool automake libtool
-      pkgconfig autoconf bison libproxy enchant
-      python ruby which flex;
-    inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
-      gstPluginsGood;
-    inherit (xlibs) libXt renderproto libXrender;
-  }).deepOverride {libsoup = gnome28.libsoup_2_31;});
+  webkit =
+    builderDefsPackage ../development/libraries/webkit {
+      inherit (gnome28) gtkdoc libsoup;
+      inherit (gtkLibs) gtk atk pango glib;
+      inherit freetype fontconfig gettext gperf curl
+        libjpeg libtiff libpng libxml2 libxslt sqlite
+        icu cairo perl intltool automake libtool
+        pkgconfig autoconf bison libproxy enchant
+        python ruby which flex geoclue;
+      inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
+        gstPluginsGood;
+      inherit (xlibs) libXt renderproto libXrender;
+    };
+
+  webkitSVN =
+    builderDefsPackage ../development/libraries/webkit/svn.nix {
+      inherit (gnome28) gtkdoc libsoup;
+      inherit (gtkLibs) gtk atk pango glib;
+      inherit freetype fontconfig gettext gperf curl
+        libjpeg libtiff libpng libxml2 libxslt sqlite
+        icu cairo perl intltool automake libtool
+        pkgconfig autoconf bison libproxy enchant
+        python ruby which flex geoclue;
+      inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
+        gstPluginsGood;
+      inherit (xlibs) libXt renderproto libXrender;
+    };
 
   wvstreams = callPackage ../development/libraries/wvstreams { };
 
@@ -4083,6 +4527,14 @@ let
     inherit (gtkLibs) gtk;
   };
 
+  wxGTK29 = callPackage ../development/libraries/wxGTK-2.9 {
+    inherit (gtkLibs) gtk;
+  };
+
+  wxGTK290 = callPackage ../development/libraries/wxGTK-2.9/2.9.0.nix {
+    inherit (gtkLibs) gtk;
+  };
+
   wtk = callPackage ../development/libraries/wtk { };
 
   x264 = callPackage ../development/libraries/x264 { };
@@ -4092,6 +4544,11 @@ let
   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
   };
 
+  xapian10 = callPackage ../development/libraries/xapian/1.0.x.nix { };
+
+  xapianBindings10 = callPackage ../development/libraries/xapian/bindings/1.0.x.nix {  # TODO perl php Java, tcl, C#, python
+  };
+
   Xaw3d = callPackage ../development/libraries/Xaw3d { };
 
   xbase = callPackage ../development/libraries/xbase { };
@@ -4100,6 +4557,8 @@ let
 
   xautolock = callPackage ../misc/screensavers/xautolock { };
 
+  xercesc = callPackage ../development/libraries/xercesc {};
+
   xercesJava = callPackage ../development/libraries/java/xerces {
     ant   = apacheAntGcj;  # for bootstrap purposes
     javac = gcj;
@@ -4204,6 +4663,11 @@ let
   zziplib = callPackage ../development/libraries/zziplib { };
 
 
+  ### DEVELOPMENT / LIBRARIES / JAVASCRIPT
+
+  jquery_ui = callPackage ../development/libraries/javascript/jquery-ui { };
+
+
   ### DEVELOPMENT / PERL MODULES
 
   buildPerlPackage = import ../development/perl-modules/generic perl;
@@ -4221,34 +4685,18 @@ let
 
   ### DEVELOPMENT / PYTHON MODULES
 
-  buildPythonPackage = import ../development/python-modules/generic {
-    inherit python setuptools makeWrapper lib;
-  };
-
-  buildPython26Package = import ../development/python-modules/generic {
-    inherit makeWrapper lib;
-    python = python26;
-    setuptools = setuptools.override { python = python26; };
-  };
-
-  buildPython27Package = import ../development/python-modules/generic {
-    inherit makeWrapper lib;
-    python = python27;
-    setuptools = setuptools.override { python = python27; doCheck = false; };
-  };
+  buildPythonPackage = pythonPackages.buildPythonPackage;
 
-  pythonPackages = python26Packages;
+  pythonPackages = python27Packages;
 
   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
     inherit pkgs;
     python = python26;
-    buildPythonPackage = buildPython26Package;
   });
 
   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
     inherit pkgs;
     python = python27;
-    buildPythonPackage = buildPython27Package;
   });
 
   foursuite = callPackage ../development/python-modules/4suite { };
@@ -4267,6 +4715,8 @@ let
 
   pycups = callPackage ../development/python-modules/pycups { };
 
+  pyexiv2 = callPackage ../development/python-modules/pyexiv2 { };
+
   pygame = callPackage ../development/python-modules/pygame { };
 
   pygobject = callPackage ../development/python-modules/pygobject { };
@@ -4291,25 +4741,22 @@ let
 
   pyxml = callPackage ../development/python-modules/pyxml { };
 
-  setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
-    inherit python makeWrapper;
-  };
+  setuptools = pythonPackages.setuptools;
 
-  wxPython = wxPython26;
-
-  wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
-    wxGTK = wxGTK26;
-  };
-
-  wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
+  wxPython = pythonPackages.wxPython;
+  wxPython26 = pythonPackages.wxPython26;
+  wxPython28 = pythonPackages.wxPython28;
 
   twisted = pythonPackages.twisted;
 
   ZopeInterface = pythonPackages.zopeInterface;
 
+  /*
   zope = callPackage ../development/python-modules/zope {
     python = python24;
   };
+  */
+
 
   ### SERVERS
 
@@ -4321,8 +4768,8 @@ let
 
   sabnzbd = callPackage ../servers/sabnzbd { };
 
-  bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
-    inherit openssl libtool;
+  bind = callPackage ../servers/dns/bind {
+    inherit openssl libtool perl;
   };
 
   dico = callPackage ../servers/dico { };
@@ -4354,6 +4801,10 @@ let
 
   firebird = callPackage ../servers/firebird { };
 
+  freepops = callPackage ../servers/mail/freepops { };
+
+  freeswitch = callPackage ../servers/sip/freeswitch { };
+
   ghostOne = callPackage ../servers/games/ghost-one {
     boost = boostFull;
   };
@@ -4368,8 +4819,14 @@ let
 
   jetty61 = callPackage ../servers/http/jetty/6.1 { };
 
+  joseki = callPackage ../servers/http/joseki {};
+
   lighttpd = callPackage ../servers/http/lighttpd { };
 
+  mediatomb = callPackage ../servers/mediatomb {
+    ffmpeg = ffmpeg_0_6_90;
+  };
+
   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
 
   mod_fastcgi = callPackage ../servers/http/apache-modules/mod_fastcgi { };
@@ -4378,6 +4835,8 @@ let
 
   mpd = callPackage ../servers/mpd { };
 
+  miniHttpd = callPackage ../servers/http/mini-httpd {};
+
   myserver = callPackage ../servers/http/myserver { };
 
   nginx = builderDefsPackage (import ../servers/http/nginx) {
@@ -4388,10 +4847,17 @@ let
 
   pulseaudio = callPackage ../servers/pulseaudio {
     gconf = gnome.GConf;
+    # The following are disabled in the default build, because if this
+    # functionality is desired, they are only needed in the PulseAudio
+    # server.
+    bluez = null;
+    avahi = null;
   };
 
   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
 
+  pies = callPackage ../servers/pies { };
+
   portmap = callPackage ../servers/portmap { };
 
   monetdb = callPackage ../servers/sql/monetdb { };
@@ -4411,6 +4877,8 @@ let
     ps = procps; /* !!! Linux only */
   };
 
+  mysql55 = callPackage ../servers/sql/mysql55 { };
+
   mysql = mysql51;
 
   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
@@ -4441,6 +4909,8 @@ let
     inherit xmpppy python makeWrapper fetchcvs;
   };
 
+  rabbitmq_server = callPackage ../servers/amqp/rabbitmq-server { };
+
   radius = callPackage ../servers/radius { };
 
   redstore = callPackage ../servers/http/redstore { };
@@ -4449,6 +4919,8 @@ let
 
   shishi = callPackage ../servers/shishi { };
 
+  sipwitch = callPackage ../servers/sip/sipwitch { };
+
   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
     inherit fetchurl stdenv perl lib composableDerivation;
   });
@@ -4472,17 +4944,8 @@ let
     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
       libxslt expat libdrm libpng zlib perl mesa
       xkeyboard_config dbus hal libuuid openssl gperf m4
-      autoconf libtool xmlto asciidoc udev;
-
-    # XXX: Update to newer Automake on the next big rebuild; better yet:
-    # remove the dependency on Automake.
+      autoconf libtool xmlto asciidoc udev flex bison python;
     automake = automake110x;
-
-    # !!! pythonBase is used instead of python because this causes an
-    # infinite recursion when the flag python.full is set to true.
-    # Packages contained in the loop are python, tk, xlibs-wrapper,
-    # libX11, libxcd (and xcb-proto).
-    python = pythonBase;
   });
 
   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
@@ -4512,7 +4975,10 @@ let
 
   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
 
-  alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
+  alsaPlugins = callPackage ../os-specific/linux/alsa-plugins {
+    jackaudio = null;
+  };
+
   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
 
   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
@@ -4521,6 +4987,8 @@ let
 
   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
 
+  checkpolicy = callPackage ../os-specific/linux/checkpolicy { };
+
   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
 
   conky = callPackage ../os-specific/linux/conky { };
@@ -4544,6 +5012,8 @@ let
 
   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
 
+  darwinInstallNameToolUtility = callPackage ../os-specific/darwin/install_name_tool { };
+
   devicemapper = lvm2;
 
   dmidecode = callPackage ../os-specific/linux/dmidecode { };
@@ -4585,6 +5055,8 @@ let
 
   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
 
+  ebtables = callPackage ../os-specific/linux/ebtables { };
+
   eject = callPackage ../os-specific/linux/eject { };
 
   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
@@ -4611,6 +5083,8 @@ let
 
   hibernate = callPackage ../os-specific/linux/hibernate { };
 
+  hostapd = callPackage ../os-specific/linux/hostapd { };
+
   htop = callPackage ../os-specific/linux/htop { };
 
   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
@@ -4663,18 +5137,11 @@ let
 
   ifplugd = callPackage ../os-specific/linux/ifplugd { };
 
-  iotop = callPackage ../os-specific/linux/iotop {
-    python = pythonFull;
-  };
+  iotop = callPackage ../os-specific/linux/iotop { };
 
   iproute = callPackage ../os-specific/linux/iproute { };
 
-  iputils = (
-    import ../os-specific/linux/iputils {
-    inherit fetchurl stdenv;
-    glibc = stdenv.gcc.libc;
-    linuxHeaders = stdenv.gcc.libc.kernelHeaders;
-  });
+  iputils = callPackage ../os-specific/linux/iputils { };
 
   iptables = callPackage ../os-specific/linux/iptables { };
 
@@ -4692,12 +5159,22 @@ let
 
   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
 
+  iwlwifi6000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-6000-ucode { };
+
   kbd = callPackage ../os-specific/linux/kbd { };
 
+  libaio = callPackage ../os-specific/linux/libaio { };
+
+  libatasmart = callPackage ../os-specific/linux/libatasmart { };
+
   libcgroup = callPackage ../os-specific/linux/libcg { };
 
   libnl = callPackage ../os-specific/linux/libnl { };
 
+  libnl2 = callPackage ../os-specific/linux/libnl/v2.nix { };
+
+  libnl1 = callPackage ../os-specific/linux/libnl/v1.nix { };
+
   linuxHeaders = linuxHeaders_2_6_32;
 
   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
@@ -4726,28 +5203,56 @@ let
 
   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
 
+  linux_2_6_15 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.15.nix) {
+    inherit fetchurl perl mktemp module_init_tools;
+    stdenv = overrideInStdenv stdenv [gcc34 gnumake381];
+    kernelPatches =
+      [ kernelPatches.cifs_timeout_2_6_15
+      ];
+  };
+
   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
-    inherit fetchurl stdenv perl mktemp module_init_tools;
+    inherit fetchurl perl mktemp module_init_tools;
+    extraConfig = "KMOD y";
+    stdenv = overrideInStdenv stdenv [gnumake381];
+    kernelPatches =
+      [ kernelPatches.fbcondecor_2_6_25
+        kernelPatches.sec_perm_2_6_24
+        kernelPatches.glibc_getline
+	kernelPatches.cifs_timeout_2_6_25
+      ];
+  };
+
+  linux_2_6_26 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.26.nix) {
+    inherit fetchurl perl mktemp module_init_tools;
+    stdenv = overrideInStdenv stdenv [gnumake381];
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_25
         kernelPatches.sec_perm_2_6_24
+        kernelPatches.glibc_getline
+	kernelPatches.cifs_timeout_2_6_25
       ];
   };
 
   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
-    inherit fetchurl stdenv perl mktemp module_init_tools;
+    inherit fetchurl perl mktemp module_init_tools;
+    stdenv = overrideInStdenv stdenv [gnumake381];
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_27
         kernelPatches.sec_perm_2_6_24
+	kernelPatches.cifs_timeout_2_6_25
       ];
   };
 
   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
-    inherit fetchurl stdenv perl mktemp module_init_tools;
+    inherit fetchurl perl mktemp module_init_tools;
+    stdenv = overrideInStdenv stdenv [gnumake381];
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_28
         kernelPatches.sec_perm_2_6_24
         kernelPatches.ext4_softlockups_2_6_28
+        kernelPatches.glibc_getline
+	kernelPatches.cifs_timeout_2_6_25
       ];
   };
 
@@ -4756,12 +5261,15 @@ let
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_29
         kernelPatches.sec_perm_2_6_24
+	kernelPatches.cifs_timeout_2_6_29
       ];
   };
 
   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
     inherit fetchurl stdenv perl mktemp module_init_tools platform;
-    kernelPatches = [];
+    kernelPatches =
+      [ kernelPatches.cifs_timeout_2_6_29
+      ];
   };
 
   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
@@ -4770,10 +5278,9 @@ let
       [ kernelPatches.fbcondecor_2_6_31
         kernelPatches.sec_perm_2_6_24
         kernelPatches.aufs2_2_6_32
-        kernelPatches.cifs_timeout
+        kernelPatches.cifs_timeout_2_6_29
         kernelPatches.no_xsave
         kernelPatches.dell_rfkill
-        kernelPatches.xen_pvclock_resume
       ];
   };
 
@@ -4803,6 +5310,7 @@ let
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_31
         kernelPatches.sec_perm_2_6_24
+        kernelPatches.aufs2_2_6_32
         kernelPatches.tracehook_2_6_32
         kernelPatches.utrace_2_6_32
       ];
@@ -4828,7 +5336,9 @@ let
     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_33
+        kernelPatches.aufs2_2_6_33
         kernelPatches.sec_perm_2_6_24
+	kernelPatches.cifs_timeout_2_6_29
       ];
   };
 
@@ -4854,27 +5364,47 @@ let
       [ /*kernelPatches.fbcondecor_2_6_33*/
         kernelPatches.sec_perm_2_6_24
         kernelPatches.aufs2_2_6_34
+	kernelPatches.cifs_timeout_2_6_29
       ];
   };
 
+  linux_2_6_34_tuxonice = linux_2_6_34.override (attrs: {
+    kernelPatches = attrs.kernelPatches ++ [
+      kernelPatches.tuxonice_2_6_34
+    ];
+  });
+
   linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
     kernelPatches =
       [ #kernelPatches.fbcondecor_2_6_35
         kernelPatches.sec_perm_2_6_24
         kernelPatches.aufs2_2_6_35
+	kernelPatches.cifs_timeout_2_6_35
       ] ++ lib.optional (platform.kernelArch == "arm")
         kernelPatches.sheevaplug_modules_2_6_35;
   };
 
+  linux_2_6_35_tuxonice = linux_2_6_35.override (attrs: {
+    kernelPatches = attrs.kernelPatches ++ [
+      kernelPatches.tuxonice_2_6_35
+    ];
+  });
+
   linux_nanonote_jz_2_6_34 = makeOverridable
     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix) {
       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
+      kernelPatches =
+        [ kernelPatches.aufs2_2_6_34
+        ];
     };
 
   linux_nanonote_jz_2_6_35 = makeOverridable
     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix) {
       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
+      kernelPatches =
+        [ kernelPatches.aufs2_2_6_35
+        ];
     };
 
   linux_nanonote_jz_2_6_36 = makeOverridable
@@ -4883,8 +5413,9 @@ let
       kernelPatches =
         [ #kernelPatches.fbcondecor_2_6_35
           kernelPatches.sec_perm_2_6_24
-          #kernelPatches.aufs2_2_6_35
+          kernelPatches.aufs2_2_6_36
           kernelPatches.mips_restart_2_6_36
+	  kernelPatches.cifs_timeout_2_6_35
         ];
     };
 
@@ -4895,7 +5426,7 @@ let
       '';
       extraMeta = {
         platforms = ["i686-linux"];
-	maintainers = [lib.maintainers.raskin];
+        maintainers = [lib.maintainers.raskin];
       };
   };
 
@@ -4904,11 +5435,79 @@ let
     kernelPatches =
       [ #kernelPatches.fbcondecor_2_6_35
         kernelPatches.sec_perm_2_6_24
-        #kernelPatches.aufs2_2_6_35
+        kernelPatches.aufs2_2_6_36
+        kernelPatches.mips_restart_2_6_36
+        kernelPatches.cifs_timeout_2_6_35
         kernelPatches.mips_restart_2_6_36
       ];
   };
 
+  linux_2_6_36_tuxonice = linux_2_6_36.override (attrs: {
+    kernelPatches = attrs.kernelPatches ++ [
+      kernelPatches.tuxonice_2_6_36
+    ];
+  });
+
+  linux_2_6_37 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.37.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [ kernelPatches.fbcondecor_2_6_37
+        kernelPatches.sec_perm_2_6_24
+        kernelPatches.aufs2_1_2_6_37
+	kernelPatches.cifs_timeout_2_6_35
+        #kernelPatches.mips_restart_2_6_36
+      ];
+  };
+
+  linux_2_6_37_tuxonice = linux_2_6_37.override (attrs: {
+    kernelPatches = attrs.kernelPatches ++ [
+      kernelPatches.tuxonice_2_6_37
+    ];
+  });
+
+  linux_2_6_38 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.38.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [ kernelPatches.fbcondecor_2_6_38
+        kernelPatches.sec_perm_2_6_24
+        kernelPatches.aufs2_1_2_6_38
+	kernelPatches.cifs_timeout_2_6_38
+        #kernelPatches.mips_restart_2_6_36
+      ];
+  };
+
+  linux_2_6_38_ati = linux_2_6_38.override { extraConfig="DRM_RADEON_KMS y"; };
+
+  linux_2_6_39 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.39.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [ #kernelPatches.fbcondecor_2_6_38
+        kernelPatches.sec_perm_2_6_24
+        kernelPatches.aufs2_1_2_6_39
+        #kernelPatches.mips_restart_2_6_36
+      ];
+  };
+
+  linux_3_0 = makeOverridable (import ../os-specific/linux/kernel/linux-3.0.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [ #kernelPatches.fbcondecor_2_6_38
+        kernelPatches.sec_perm_2_6_24
+        kernelPatches.aufs2_1_3_0
+        #kernelPatches.mips_restart_2_6_36
+      ];
+  };
+
+  linux_3_1 = makeOverridable (import ../os-specific/linux/kernel/linux-3.1.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [ #kernelPatches.fbcondecor_2_6_38
+        kernelPatches.sec_perm_2_6_24
+        #kernelPatches.aufs2_1_2_6_38
+        #kernelPatches.mips_restart_2_6_36
+      ];
+  };
+
   /* Linux kernel modules are inherently tied to a specific kernel.  So
      rather than provide specific instances of those packages for a
      specific kernel, we have a function that builds those packages
@@ -4927,6 +5526,14 @@ let
 
     aufs2 = callPackage ../os-specific/linux/aufs2 { };
 
+    aufs2_1 = if kernel.features ? aufs2_1 then
+      callPackage ../os-specific/linux/aufs2.1 { }
+      else null;
+
+    aufs2_1_util = if kernel.features ? aufs2_1 then
+      callPackage ../os-specific/linux/aufs2.1-util { }
+      else null;
+
     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
 
     blcr = callPackage ../os-specific/linux/blcr {
@@ -5021,11 +5628,21 @@ let
     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_xen pkgs.linuxPackages_2_6_32_xen);
   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
+  linuxPackages_2_6_34_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_34_tuxonice pkgs.linuxPackages_2_6_34_tuxonice);
   linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
+  linuxPackages_2_6_35_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_35_tuxonice pkgs.linuxPackages_2_6_35_tuxonice);
   linuxPackages_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_2_6_36 pkgs.linuxPackages_2_6_36);
-  linuxPackages_nanonote_jz_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_34 pkgs.linuxPackages_nanonote_jz_2_6_34); 
-  linuxPackages_nanonote_jz_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_35 pkgs.linuxPackages_nanonote_jz_2_6_35); 
-  linuxPackages_nanonote_jz_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_36 pkgs.linuxPackages_nanonote_jz_2_6_36); 
+  linuxPackages_2_6_36_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_36_tuxonice pkgs.linuxPackages_2_6_36_tuxonice);
+  linuxPackages_2_6_37 = recurseIntoAttrs (linuxPackagesFor linux_2_6_37 pkgs.linuxPackages_2_6_37);
+  linuxPackages_2_6_37_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_37_tuxonice pkgs.linuxPackages_2_6_37_tuxonice);
+  linuxPackages_2_6_38 = recurseIntoAttrs (linuxPackagesFor linux_2_6_38 pkgs.linuxPackages_2_6_38);
+  linuxPackages_2_6_38_ati = recurseIntoAttrs (linuxPackagesFor linux_2_6_38_ati pkgs.linuxPackages_2_6_38);
+  linuxPackages_2_6_39 = recurseIntoAttrs (linuxPackagesFor linux_2_6_39 pkgs.linuxPackages_2_6_39);
+  linuxPackages_3_0 = recurseIntoAttrs (linuxPackagesFor linux_3_0 pkgs.linuxPackages_3_0);
+  linuxPackages_3_1 = recurseIntoAttrs (linuxPackagesFor linux_3_1 pkgs.linuxPackages_3_1);
+  linuxPackages_nanonote_jz_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_34 pkgs.linuxPackages_nanonote_jz_2_6_34);
+  linuxPackages_nanonote_jz_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_35 pkgs.linuxPackages_nanonote_jz_2_6_35);
+  linuxPackages_nanonote_jz_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_36 pkgs.linuxPackages_nanonote_jz_2_6_36);
 
   # The current default kernel / kernel modules.
   linux = linux_2_6_32;
@@ -5035,11 +5652,11 @@ let
 
   libselinux = callPackage ../os-specific/linux/libselinux { };
 
+  libsemanage = callPackage ../os-specific/linux/libsemanage { };
+
   libraw1394 = callPackage ../development/libraries/libraw1394 { };
 
-  libsexy = callPackage ../development/libraries/libsexy {
-    inherit (gtkLibs) glib gtk pango;
-  };
+  libsexy = callPackage ../development/libraries/libsexy { };
 
   librsvg = gnome.librsvg;
 
@@ -5073,6 +5690,8 @@ let
 
   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
 
+  lsscsi = callPackage ../os-specific/linux/lsscsi { };
+
   lvm2 = callPackage ../os-specific/linux/lvm2 { };
 
   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
@@ -5106,6 +5725,8 @@ let
     stdenv = overrideGCC stdenv gcc34;
   };
 
+  multipath_tools = callPackage ../os-specific/linux/multipath-tools { };
+
   nettools = callPackage ../os-specific/linux/net-tools { };
 
   neverball = callPackage ../games/neverball { };
@@ -5147,10 +5768,16 @@ let
     config = getConfig ["pcmciaUtils" "config"] null;
   };
 
+  phat = callPackage ../development/libraries/phat {
+    inherit (gnome) gtk libgnomecanvas;
+  };
+
   pmount = callPackage ../os-specific/linux/pmount { };
 
   pmutils = callPackage ../os-specific/linux/pm-utils { };
 
+  policycoreutils = callPackage ../os-specific/linux/policycoreutils { };
+
   powertop = callPackage ../os-specific/linux/powertop { };
 
   procps = callPackage ../os-specific/linux/procps { };
@@ -5161,12 +5788,22 @@ let
 
   radeontools = callPackage ../os-specific/linux/radeontools { };
 
+  radeonR700 = callPackage ../os-specific/linux/firmware/radeon-r700 { };
+  radeonR600 = callPackage ../os-specific/linux/firmware/radeon-r600 { };
+  radeonJuniper = callPackage ../os-specific/linux/firmware/radeon-juniper { };
+
   rfkill = callPackage ../os-specific/linux/rfkill { };
 
+  rt2860fw = callPackage ../os-specific/linux/firmware/rt2860 { };
+
   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
 
   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
 
+  rtkit = callPackage ../os-specific/linux/rtkit { };
+
+  rtl8192cfw = callPackage ../os-specific/linux/firmware/rtl8192c { };
+
   sdparm = callPackage ../os-specific/linux/sdparm { };
 
   shadow = callPackage ../os-specific/linux/shadow { };
@@ -5198,6 +5835,7 @@ let
 
   trackballs = callPackage ../games/trackballs {
     debug = false;
+    guile = guile_1_8;
   };
 
   tunctl = callPackage ../os-specific/linux/tunctl { };
@@ -5209,6 +5847,7 @@ let
 
   ubootChooser = name : if (name == "upstream") then ubootUpstream
     else if (name == "sheevaplug") then ubootSheevaplug
+    else if (name == "guruplug") then ubootGuruplug
     else if (name == "nanonote") then ubootNanonote
     else throw "Unknown uboot";
 
@@ -5229,7 +5868,11 @@ let
     cross = assert crossSystem != null; crossSystem;
   };
 
-  udev = callPackage ../os-specific/linux/udev { };
+  udev145 = callPackage ../os-specific/linux/udev/145.nix { };
+  udev172 = callPackage ../os-specific/linux/udev/172.nix { };
+  udev = udev172;
+
+  udisks = callPackage ../os-specific/linux/udisks { };
 
   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
     inherit fetchurl stdenv perl mktemp module_init_tools;
@@ -5242,6 +5885,8 @@ let
 
   untie = callPackage ../os-specific/linux/untie {};
 
+  upower = callPackage ../os-specific/linux/upower { };
+
   upstart = callPackage ../os-specific/linux/upstart { };
 
   usbutils = callPackage ../os-specific/linux/usbutils { };
@@ -5250,14 +5895,17 @@ let
 
   utillinuxCurses = utillinuxngCurses;
 
-  utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
+  utillinuxng = lowPrio (callPackage ../os-specific/linux/util-linux-ng {
     ncurses = null;
-  };
+    perl = null;
+  });
 
   utillinuxngCurses = utillinuxng.override {
-    inherit ncurses;
+    inherit ncurses perl;
   };
 
+  v4l_utils = callPackage ../os-specific/linux/v4l-utils {};
+
   windows = rec {
     w32api = callPackage ../os-specific/windows/w32api {
       gccCross = gccCrossStageStatic;
@@ -5303,15 +5951,12 @@ let
   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
 
   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
-    guiSupport = false;
   };
-  # prebuild binaries:
-  wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
 
-  # deprecated, but contains icon ? Does no longer build
-  /* didn't build Sun Apr 25 20:34:18 CEST 2010
-  wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
-  */
+  wpa_supplicant_gui = pkgs.wpa_supplicant.gui;
+
+  xf86_input_multitouch =
+    callPackage ../os-specific/linux/xf86-input-multitouch { };
 
   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
 
@@ -5347,6 +5992,8 @@ let
 
   clearlyU = callPackage ../data/fonts/clearlyU { };
 
+  cm_unicode = callPackage ../data/fonts/cm-unicode {};
+
   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
     inherit (perlPackages) FontTTF;
   };
@@ -5373,6 +6020,8 @@ let
 
   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
 
+  gentium = callPackage ../data/fonts/gentium {};
+
   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
 
   inconsolata = callPackage ../data/fonts/inconsolata {};
@@ -5381,11 +6030,9 @@ let
 
   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
 
-  libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
+  libertine = builderDefsPackage (import ../data/fonts/libertine) {
     inherit fontforge;
   };
-  libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
-  };
 
   lmodern = callPackage ../data/fonts/lmodern { };
 
@@ -5395,6 +6042,10 @@ let
 
   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
 
+  oldstandard = callPackage ../data/fonts/oldstandard { };
+
+  posix_man_pages = callPackage ../data/documentation/man-pages-posix { };
+
   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
 
   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
@@ -5417,6 +6068,10 @@ let
     inherit fetchurl;
   };
 
+  theano = callPackage ../data/fonts/theano { };
+
+  tempora_lgc = callPackage ../data/fonts/tempora-lgc { };
+
   terminus_font = callPackage ../data/fonts/terminus-font { };
 
   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
@@ -5447,15 +6102,17 @@ let
 
   aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
 
+  aangifte2010 = callPackage_i686 ../applications/taxes/aangifte-2010 { };
+
   abcde = callPackage ../applications/audio/abcde { };
 
   abiword = callPackage ../applications/office/abiword {
     inherit (gnome) libglade libgnomecanvas;
   };
 
-  adobeReader = callPackage_i686 ../applications/misc/adobe-reader {
-    inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
-  };
+  adobeReader = callPackage_i686 ../applications/misc/adobe-reader { };
+
+  akunambol = newScope pkgs.kde4 ../applications/networking/sync/akunambol { };
 
   amarok = newScope pkgs.kde4 ../applications/audio/amarok { };
 
@@ -5468,11 +6125,19 @@ let
     inherit (gnome) libgnomecanvas;
   };
 
+  ardour3 =  lowPrio (callPackage ../applications/audio/ardour/ardour3.nix {
+    inherit (gtkLibs) glib pango gtk glibmm gtkmm;
+    inherit (gnome) libgnomecanvas libgnomecanvasmm;
+  });
+
   arora = callPackage ../applications/networking/browsers/arora { };
 
   audacious = callPackage ../applications/audio/audacious { };
 
-  audacity = callPackage ../applications/audio/audacity { };
+  audacity = callPackage ../applications/audio/audacity {
+    portaudio = portaudioSVN;
+    ffmpeg = ffmpeg_0_6_90;
+  };
 
   aumix = callPackage ../applications/audio/aumix {
     gtkGUI = false;
@@ -5483,6 +6148,8 @@ let
   avidemux = callPackage ../applications/video/avidemux {
   };
 
+  avogadro = callPackage ../applications/science/chemistry/avogadro { };
+
   awesome = callPackage ../applications/window-managers/awesome {
     inherit (gtkLibs) glib pango;
     lua = lua5;
@@ -5493,9 +6160,7 @@ let
 
   batik = callPackage ../applications/graphics/batik { };
 
-  bazaar = callPackage ../applications/version-management/bazaar {
-    python = pythonFull;
-  };
+  bazaar = callPackage ../applications/version-management/bazaar { };
 
   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
     inherit bazaar;
@@ -5503,51 +6168,33 @@ let
 
   beast = callPackage ../applications/audio/beast {
     inherit (gnome) libgnomecanvas libart_lgpl;
+    guile = guile_1_8;
   };
 
   bibletime = newScope pkgs.kde45 ../applications/misc/bibletime {
     qt = qt4;
-  } ;
-
-  bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
-
-  bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
+  };
 
-  # commented out because it's using the new configuration style proposal which is unstable
-  #biew = import ../applications/misc/biew {
-  #  inherit lib stdenv fetchurl ncurses;
-  #};
+  bitcoin = callPackage ../applications/misc/bitcoin {
+    wxGTK = wxGTK290;
+    db4 = db47;
+    inherit (xlibs) libSM;
+  };
 
-  # only to be able to compile blender - I couldn't compile the default openal software
-  # Perhaps this can be removed - don't know which one openal{,soft} is better
-  freealut_soft = callPackage ../development/libraries/freealut {
-    openal = openalSoft;  };
+  bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
 
-  blender = callPackage ../applications/misc/blender/2.49.nix {
-    python = python26Base;
-  };
+  blender = callPackage ../applications/misc/blender/2.49.nix { };
 
-  blender_2_50 = lowPrio (import ../applications/misc/blender {
-    inherit stdenv fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
-      libsamplerate libtiff ilmbase;
+  blender_2_57 = lowPrio (import ../applications/misc/blender {
+    inherit stdenv fetchurl SDL cmake gettext ilmbase libjpeg libpng
+      libsamplerate libtiff mesa openal openexr openjpeg zlib;
     inherit (xlibs) libXi;
-    python = python31Base;
+    python = python32;
   });
 
-  bmp = callPackage ../applications/audio/bmp {
-    inherit (gnome) esound libglade;
-  };
-
-  bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
-
-  bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
-
   bvi = callPackage ../applications/editors/bvi { };
 
-  calibre = callPackage ../applications/misc/calibre {
-    python = python26Full;
-    inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
-  };
+  calibre = callPackage ../applications/misc/calibre { };
 
   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
@@ -5575,16 +6222,13 @@ let
     };
 
   chrome = callPackage ../applications/networking/browsers/chromium {
-    inherit (gtkLibs) gtk glib pango atk;
     inherit (gnome) GConf;
     patchelf = patchelf06;
-    libjpeg = libjpeg62;
   };
 
   chromeWrapper = wrapFirefox chrome "chrome" "";
 
   cinelerra = callPackage ../applications/video/cinelerra {
-    fftw = fftwSinglePrec;
     inherit (gnome) esound;
   };
 
@@ -5637,6 +6281,11 @@ let
 
   darcs = haskellPackages.darcs;
 
+  darktable = callPackage ../applications/graphics/darktable {
+    inherit (gnome) GConf gnome_keyring libglade atk;
+    inherit (xlibs) libxcb pixman libpthreadstubs libXau;
+  };
+
   dia = callPackage ../applications/graphics/dia { };
 
   digikam = newScope pkgs.kde4 ../applications/graphics/digikam { };
@@ -5650,7 +6299,7 @@ let
   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
     inherit libpng libtiff libjpeg imagemagick librsvg
       pkgconfig bzip2 zlib libtool freetype fontconfig
-      ghostscript jasper;
+      ghostscript jasper xz;
     inherit (xlibs) libX11;
   };
 
@@ -5662,15 +6311,7 @@ let
 
   eaglemode = callPackage ../applications/misc/eaglemode { };
 
-  eclipse = callPackage ../applications/editors/eclipse {
-    # GTK 2.18 gives glitches such as mouse clicks on buttons not
-    # working correctly.
-    inherit (gtkLibs216) glib gtk;
-  };
-  eclipseLatest = eclipse.override { version = "latest"; };
-  eclipse36 = callPackage ../applications/editors/eclipse {
-      version = "3.6.1";
-  };
+  eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse { });
 
   ed = callPackage ../applications/editors/ed { };
 
@@ -5690,8 +6331,8 @@ let
        processing `lib-src/Makefile.in' with cpp, and the escaping rules for
        literal backslashes have changed.  */
     stdenv = overrideGCC stdenv gcc44;
-    xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
-    gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
+    xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
+    gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
   };
 
   emacs23 = callPackage ../applications/editors/emacs-23 {
@@ -5700,8 +6341,8 @@ let
     Xaw3d = null;
     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
     # TODO: these packages don't build on Darwin.
-    gconf = if stdenv.isDarwin then null else gnome.GConf;
-    librsvg = if stdenv.isDarwin then null else librsvg;
+    gconf = null /* if stdenv.isDarwin then null else gnome.GConf */;
+    librsvg = null /* if stdenv.isDarwin then null else librsvg */;
   };
 
   emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
@@ -5775,8 +6416,12 @@ let
 
   espeak = callPackage ../applications/audio/espeak { };
 
+  esniper = callPackage ../applications/networking/esniper { };
+
   evopedia = callPackage ../applications/misc/evopedia { };
 
+  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.
@@ -5785,9 +6430,7 @@ let
       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
   });
 
-  evolution_data_server = (newScope (gnome // gtkLibs))
-  ../servers/evolution-data-server {
-  };
+  evolution_data_server = newScope (gnome // gtkLibs) ../servers/evolution-data-server { };
 
   exrdisplay = callPackage ../applications/graphics/exrdisplay {
     fltk = fltk20;
@@ -5825,62 +6468,65 @@ let
 
   wvdial = callPackage ../os-specific/linux/wvdial { };
 
-  fbida = builderDefsPackage ../applications/graphics/fbida {
-    inherit libjpeg libexif giflib libtiff libpng
-      imagemagick ghostscript which curl pkgconfig
-      freetype fontconfig;
-  };
+  fbida = callPackage ../applications/graphics/fbida { };
 
   fdupes = callPackage ../tools/misc/fdupes { };
 
   feh = callPackage ../applications/graphics/feh { };
 
-  filelight = newScope pkgs.kde4 ../applications/misc/filelight { };
+  filelight = if pkgs.kde4.kdeutils ? filelight then pkgs.kde4.kdeutils.filelight
+    else newScope pkgs.kde4 ../applications/misc/filelight { };
+
+  firefox = pkgs.firefoxPkgs.firefox;
+
+  firefoxWrapper = wrapFirefox pkgs.firefox "firefox" "";
+
+  firefoxPkgs = pkgs.firefox50Pkgs;
+
+  firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
+    inherit (gtkLibs) gtk pango;
+    inherit (gnome) libIDL;
+  };
 
-  firefox = firefox36Pkgs.firefox;
-  firefoxWrapper = firefox36Wrapper;
+  firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
 
-  firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
+  firefox50Pkgs = callPackage ../applications/networking/browsers/firefox/5.0.nix {
     inherit (gtkLibs) gtk pango;
     inherit (gnome) libIDL;
   };
 
-  firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
+  firefox50Wrapper = wrapFirefox firefox50Pkgs.firefox "firefox" "";
 
-  firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
+  firefox60Pkgs = callPackage ../applications/networking/browsers/firefox/6.0.nix {
     inherit (gtkLibs) gtk pango;
     inherit (gnome) libIDL;
   };
 
-  firefox40Pkgs = let p = (applyGlobalOverrides (x : {cairo = x.cairo_1_10_0;}));
-  in p.callPackage 
-      ../applications/networking/browsers/firefox/4.0.nix {
-    inherit (p.gtkLibs) gtk pango;
-    inherit (p.gnome) libIDL;
+  firefox60Wrapper = lowPrio (wrapFirefox firefox60Pkgs.firefox "firefox" "");
+
+  firefox70b1Pkgs = callPackage ../applications/networking/browsers/firefox/7.0.nix {
+    inherit (gtkLibs) gtk pango;
+    inherit (gnome) libIDL;
   };
 
-  firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
+  firefox70b1Wrapper = lowPrio (wrapFirefox firefox70b1Pkgs.firefox "firefox" "");
 
   flac = callPackage ../applications/audio/flac { };
 
   flashplayer = flashplayer10;
 
-  flashplayer9 = (
-    import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
-      inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
-      inherit (xlibs) libX11 libXext libXrender libXt;
-      inherit (gtkLibs) gtk glib pango atk;
-    });
+  flashplayer9 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
+    inherit (gtkLibs) atk;
+  };
 
-  flashplayer10 = (
-    import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
-      inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat cairo;
-      inherit (xlibs) libX11 libXext libXrender libXt ;
-      inherit (gtkLibs) gtk glib pango atk;
-      debug = getConfig ["flashplayer" "debug"] false;
-    });
+  flashplayer10 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
+    inherit (gtkLibs) atk gdk_pixbuf;
+    debug = getConfig ["flashplayer" "debug"] false;
+  };
 
-  flite = callPackage ../applications/misc/flite { };
+  freecad = callPackage ../applications/graphics/freecad {
+    boost = boost146;
+  };
 
   freemind = callPackage ../applications/misc/freemind {
     jdk = jdk;
@@ -5910,11 +6556,19 @@ let
   });
   git = gitAndTools.git;
   gitFull = gitAndTools.gitFull;
+  gitSVN = gitAndTools.gitSVN;
+
+  giv = callPackage ../applications/graphics/giv {
+    inherit (gtkLibs) gdk_pixbuf gtk gob2;
+    pcre = pcre.override { unicodeSupport = true; };
+  };
 
   gnucash = callPackage ../applications/office/gnucash {
-    inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
-      libgnomeprint;
+    inherit (gnome) gtk glib libgnomeui libgtkhtml gtkhtml
+      libbonoboui libgnomeprint;
     gconf = gnome.GConf;
+    guile = guile_1_8;
+    slibGuile = slibGuile.override { scheme = guile_1_8; };
   };
 
   qcad = callPackage ../applications/misc/qcad { };
@@ -5923,7 +6577,10 @@ let
 
   gkrellm = callPackage ../applications/misc/gkrellm { };
 
+  gmu = callPackage ../applications/audio/gmu { };
+
   gnash = callPackage ../applications/video/gnash {
+    xulrunner = icecatXulrunner3;
     inherit (gnome) gtkglext;
     inherit (gst_all) gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
   };
@@ -5934,6 +6591,7 @@ let
 
   gnunet = callPackage ../applications/networking/p2p/gnunet {
     inherit (gnome) gtk libglade;
+    guile = guile_1_8;
     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
   };
 
@@ -5958,8 +6616,13 @@ let
     inherit (gnome) libglade;
   };
 
+  jbidwatcher = callPackage ../applications/misc/jbidwatcher {
+    java = if stdenv.isLinux then jre else jdk;
+  };
+
   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
-    inherit libpng opencv;
+    inherit libpng;
+    opencv = opencv_2_1;
   };
 
   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
@@ -5977,6 +6640,10 @@ let
 
   googleearth = callPackage_i686 ../applications/misc/googleearth { };
 
+  google_talk_plugin = callPackage ../applications/networking/browsers/mozilla-plugins/google-talk-plugin {
+    inherit pkgsi686Linux;
+  };
+
   gosmore = builderDefsPackage ../applications/misc/gosmore {
     inherit fetchsvn curl pkgconfig libxml2;
     inherit (gtkLibs) gtk;
@@ -5986,10 +6653,7 @@ let
 
   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
 
-  gpsd = callPackage ../servers/gpsd {
-    # We need a Python with NCurses bindings.
-    python = pythonFull;
-  };
+  gpsd = callPackage ../servers/gpsd { };
 
   guitone = callPackage ../applications/version-management/guitone { };
 
@@ -6006,6 +6670,8 @@ let
   hugin = callPackage ../applications/graphics/hugin {
   };
 
+  hydrogen = callPackage ../applications/audio/hydrogen { };
+
   i810switch = callPackage ../os-specific/linux/i810switch { };
 
   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
@@ -6032,7 +6698,33 @@ let
        [ icecat3 icecatXulrunner3 ])
     // { inherit (icecat3) gtk isFirefox3Like meta; };
 
-  icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
+  icecat3Wrapper = wrapFirefox icecat3Xul "icecat" "";
+
+  icecat4 = lowPrio (import ../applications/networking/browsers/icecat-4 {
+    inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
+      python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
+      wirelesstools;
+    inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
+    inherit (xlibs) pixman;
+    inherit (pythonPackages) ply;
+  });
+
+  icecatXulrunner4 = lowPrio (import ../applications/networking/browsers/icecat-4 {
+    application = "xulrunner";
+    inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
+      python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
+      wirelesstools;
+    inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
+    inherit (xlibs) pixman;
+    inherit (pythonPackages) ply;
+  });
+
+  icecat4Xul =
+    (symlinkJoin "icecat-with-xulrunner-${icecat4.version}"
+       [ icecat4 icecatXulrunner4 ])
+    // { inherit (icecat4) gtk meta; };
+
+  icecat4Wrapper = wrapFirefox icecat4Xul "icecat" "";
 
   icewm = callPackage ../applications/window-managers/icewm {
     inherit (gtkLibs) gtk;
@@ -6043,9 +6735,9 @@ let
   ikiwiki = callPackage ../applications/misc/ikiwiki {
     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
-      RpcXML XMLSimple PerlMagick;
-    gitSupport = getPkgConfig "ikiwiki" "git" false;
-    monotoneSupport = getPkgConfig "ikiwiki" "monotone" false;
+      RpcXML XMLSimple PerlMagick YAML;
+    gitSupport = false;
+    monotoneSupport = false;
     extraUtils = [];
   };
 
@@ -6058,10 +6750,9 @@ let
 
   # Impressive, formerly known as "KeyJNote".
   impressive = callPackage ../applications/office/impressive {
-
     # XXX These are the PyOpenGL dependencies, which we need here.
-
-    inherit (pythonPackages) pyopengl;  };
+    inherit (pythonPackages) pyopengl;
+  };
 
   inkscape = callPackage ../applications/graphics/inkscape {
     inherit (pythonPackages) lxml;
@@ -6084,6 +6775,10 @@ let
 
   joe = callPackage ../applications/editors/joe { };
 
+  jbrout = callPackage ../applications/graphics/jbrout {
+    inherit (pythonPackages) lxml;
+  };
+
   jwm = callPackage ../applications/window-managers/jwm { };
 
   k3b = newScope pkgs.kde4 ../applications/misc/k3b { };
@@ -6092,6 +6787,8 @@ let
 
   kbluetooth = newScope pkgs.kde4 ../tools/bluetooth/kbluetooth { };
 
+  kde_wacomtablet = newScope pkgs.kde4 ../applications/misc/kde-wacomtablet { };
+
   kdenlive = newScope pkgs.kde4 ../applications/video/kdenlive { };
 
   kdesvn = newScope pkgs.kde4 ../applications/version-management/kdesvn { };
@@ -6099,32 +6796,18 @@ let
   kdevelop = newScope pkgs.kde4 ../applications/editors/kdevelop { };
 
   keepnote = callPackage ../applications/office/keepnote {
-    # I did not find any better way of reusing buildPythonPackage+setuptools
-    # for a python with openssl support
-    buildPythonPackage = assert pythonFull.sqliteSupport;
-      import ../development/python-modules/generic {
-        inherit makeWrapper lib;
-        python = pythonFull;
-        setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
-          inherit makeWrapper;
-          python = pythonFull;
-        };
-      };
-    # How could this pygtk use also pythonFull, I don't know.
     pygtk = pyGtkGlade;
   };
 
   kermit = callPackage ../tools/misc/kermit { };
 
-  kino = import ../applications/video/kino {
-    inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
-      libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
-    inherit libsamplerate ffmpeg;
-    inherit (gnome) libglade gtk glib;
-    inherit (xlibs) libXv libX11;
+  kino = callPackage ../applications/video/kino {
+    inherit (gnome) libglade;
   };
 
-  kipi_plugins = newScope pkgs.kde4 ../applications/graphics/kipi-plugins { };
+  kipi_plugins = newScope pkgs.kde47 ../applications/graphics/kipi-plugins {
+    inherit (pkgs.gtkLibs) gdk_pixbuf;
+  };
 
   kmplayer = newScope pkgs.kde4 ../applications/video/kmplayer {
     inherit (pkgs.gtkLibs) pango;
@@ -6136,16 +6819,22 @@ let
 
   konversation = newScope pkgs.kde4 ../applications/networking/irc/konversation { };
 
-  krename = newScope pkgs.kde4 ../applications/misc/krename { };
+  krename = newScope pkgs.kde4 ../applications/misc/krename {
+    qt = qt4;
+  };
 
   krusader = newScope pkgs.kde4 ../applications/misc/krusader { };
 
-  ktorrent = newScope pkgs.kde4 ../applications/networking/ktorrent { };
+  ktorrent = newScope pkgs.kde4 ../applications/networking/p2p/ktorrent { };
 
   lame = callPackage ../applications/audio/lame { };
 
   larswm = callPackage ../applications/window-managers/larswm { };
 
+  lash = callPackage ../applications/audio/lash {
+    inherit (gtkLibs) gtk;
+  };
+
   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
 
   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
@@ -6156,9 +6845,14 @@ let
     inherit (gnome) libglade;
   };
 
+  lingot = callPackage ../applications/audio/lingot {
+    inherit (gnome) libglade;
+  };
+
   links = callPackage ../applications/networking/browsers/links { };
 
   ledger = callPackage ../applications/office/ledger { };
+  ledger3 = callPackage ../applications/office/ledger/3.0.nix { };
 
   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
@@ -6168,6 +6862,12 @@ let
 
   links2Stdenv = callPackage ../applications/networking/browsers/links2/stdenv.nix { };
 
+  linphone = callPackage ../applications/networking/linphone {
+    inherit (gnome) libglade gtk;
+  };
+
+  lmms = callPackage ../applications/audio/lmms { };
+
   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
 
   lynx = callPackage ../applications/networking/browsers/lynx { };
@@ -6176,6 +6876,8 @@ let
    qt = qt4;
   };
 
+  makeself = callPackage ../applications/misc/makeself { };
+
   matchbox = callPackage ../applications/window-managers/matchbox { };
 
   meld = callPackage ../applications/version-management/meld {
@@ -6185,15 +6887,10 @@ let
 
   mercurial = callPackage ../applications/version-management/mercurial {
     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
-    python = # allow cloning sources from https servers.
-      if getConfig ["mercurial" "httpsSupport"] true
-      then pythonFull
-      else pythonBase;
+    inherit (pythonPackages) ssl;
   };
 
-  merkaartor = callPackage ../applications/misc/merkaartor {
-    qt = qt4;
-  };
+  merkaartor = callPackage ../applications/misc/merkaartor { };
 
   meshlab = callPackage ../applications/graphics/meshlab {
     qt = qt4;
@@ -6211,6 +6908,8 @@ let
 
   minicom = callPackage ../tools/misc/minicom { };
 
+  minidjvu = callPackage ../applications/graphics/minidjvu { };
+
   mmex = callPackage ../applications/office/mmex { };
 
   monodevelop = callPackage ../applications/editors/monodevelop {
@@ -6266,6 +6965,13 @@ let
     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
   };
 
+  mumble = callPackage ../applications/networking/mumble {
+    avahi = avahi.override {
+      withLibdnsCompat = true;
+    };
+    jackSupport = getConfig [ "mumble" "jackSupport" ] false;
+  };
+
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
 
   msmtp = callPackage ../applications/networking/msmtp { };
@@ -6291,8 +6997,20 @@ let
   netsurfBrowser = netsurf.browser;
   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
 
+  notmuch = callPackage ../applications/networking/mailreaders/notmuch { };
+
+  nova = callPackage ../applications/virtualization/nova { };
+
+  novaclient = callPackage ../applications/virtualization/nova/client.nix { };
+
   nvi = callPackage ../applications/editors/nvi { };
 
+  ocrad = callPackage ../applications/graphics/ocrad { };
+
+  offrss = callPackage ../applications/networking/offrss { };
+
+  oneteam = callPackage ../applications/networking/instant-messengers/oneteam {};
+
   openbox = callPackage ../applications/window-managers/openbox { };
 
   openjump = callPackage ../applications/misc/openjump { };
@@ -6314,7 +7032,6 @@ let
   };
 
   pan = callPackage ../applications/networking/newsreaders/pan {
-    gmime = gmime_2_2;
     spellChecking = false;
   };
 
@@ -6332,15 +7049,12 @@ let
 
   pdftk = callPackage ../tools/typesetting/pdftk { };
 
-  pidgin = import ../applications/networking/instant-messengers/pidgin {
-    inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
-      gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
+  pidgin = callPackage ../applications/networking/instant-messengers/pidgin {
     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
+    libgcrypt = if (getConfig ["pidgin" "gnutls"] false) then libgcrypt else null;
     GStreamer = gst_all.gstreamer;
-    inherit (gtkLibs) gtk;
     inherit (gnome) startupnotification;
-    inherit (xlibs) libXScrnSaver;
     inherit (gst_all) gstPluginsBase;
   };
 
@@ -6375,6 +7089,11 @@ let
 
   pstree = callPackage ../applications/misc/pstree { };
 
+  puredata = callPackage ../applications/audio/puredata {
+    inherit (gtkLibs) glib;
+    inherit (xlibs) libX11;
+  };
+
   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
 
   qemu = callPackage ../applications/virtualization/qemu/0.13.nix { };
@@ -6385,6 +7104,15 @@ let
 
   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
 
+  qtractor = callPackage ../applications/audio/qtractor {
+    inherit (gtkLibs) gtk;
+  };
+
+  rakarrack = callPackage ../applications/audio/rakarrack {
+    inherit (xorg) libXpm libXft;
+    fltk = fltk11;
+  };
+
   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
 
   ratpoison = callPackage ../applications/window-managers/ratpoison { };
@@ -6398,8 +7126,8 @@ let
   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
 
   RealPlayer = callPackage ../applications/video/RealPlayer {
-      inherit (gtkLibs) glib pango atk gtk;
-      libstdcpp5 = gcc33.gcc;
+    inherit (gtkLibs) glib pango atk gtk;
+    libstdcpp5 = gcc33.gcc;
   };
 
   rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { };
@@ -6408,6 +7136,11 @@ let
 
   recode = callPackage ../tools/text/recode { };
 
+  retroshare = callPackage ../applications/networking/p2p/retroshare {
+    qt = qt4;
+    inherit (gnome) gnome_keyring;
+  };
+
   rsync = callPackage ../applications/networking/sync/rsync {
     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
   };
@@ -6416,7 +7149,8 @@ let
 
   # = urxvt
   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
-    perlSupport = false;  };
+    perlSupport = false;
+  };
 
   sakura = callPackage ../applications/misc/sakura {
     inherit (gnome) vte;
@@ -6432,13 +7166,17 @@ let
   seeks = callPackage ../tools/networking/p2p/seeks { };
 
   seg3d = callPackage ../applications/graphics/seg3d {
-    wxGTK = wxGTK28.override {
-      unicode = false;
-  };
+    wxGTK = wxGTK28.override { unicode = false; };
   };
 
   semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { };
 
+  seq24 = callPackage ../applications/audio/seq24 {
+    inherit (gtkLibs) gtkmm;
+  };
+
+  siproxd = callPackage ../applications/networking/siproxd { };
+
   skype_linux = callPackage_i686 ../applications/networking/skype { };
 
   slim = callPackage ../applications/display-managers/slim { };
@@ -6451,16 +7189,24 @@ let
   };
 
   snd = sndBase.passthru.function {
-    inherit guile mesa libtool jackaudio alsaLib;
+    inherit mesa libtool jackaudio alsaLib;
+    guile = guile_1_8;
   };
 
-  sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
-    inherit (vamp) vampSDK;
-    qt = qt4;
+  sonic_visualiser = callPackage ../applications/audio/sonic-visualiser {
+    inherit (pkgs.vamp) vampSDK;
+    inherit (pkgs.xlibs) libX11;
+    fftw = pkgs.fftwSinglePrec;
   };
 
   sox = callPackage ../applications/misc/audio/sox { };
 
+  specimen = callPackage ../applications/audio/specimen {
+    inherit (gnome) gtk libgnomecanvas;
+  };
+
+  spotify = callPackage ../applications/audio/spotify { };
+
   stalonetray = callPackage ../applications/window-managers/stalonetray {};
 
   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
@@ -6469,18 +7215,31 @@ let
   };
 
   subversion = callPackage ../applications/version-management/subversion/default.nix {
-    neon = neon029;
-    bdbSupport = getConfig ["subversion" "bdbSupport"] true;
-    httpServer = getConfig ["subversion" "httpServer"] false;
-    httpSupport = getConfig ["subversion" "httpSupport"] true;
-    sslSupport = getConfig ["subversion" "sslSupport"] true;
-    pythonBindings = getConfig ["subversion" "pythonBindings"] false;
-    perlBindings = getConfig ["subversion" "perlBindings"] false;
-    javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
-    compressionSupport = getConfig ["subversion" "compressionSupport"] true;
+    neon = pkgs.neon029;
+    bdbSupport = true;
+    httpServer = false;
+    httpSupport = true;
+    sslSupport = true;
+    pythonBindings = false;
+    perlBindings = false;
+    javahlBindings = false;
+    compressionSupport = true;
     httpd = apacheHttpd;
   };
 
+
+  subversionClient = lowPrio (appendToName "client" (subversion.override {
+    bdbSupport = false;
+    perlBindings = true;
+    pythonBindings = true;
+  }));
+
+
+  surf = callPackage ../applications/misc/surf {
+    inherit (gtkLibs) gtk glib;
+    libsoup = gnome28.libsoup;
+  };
+
   svk = perlPackages.SVK;
 
   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
@@ -6494,8 +7253,7 @@ let
   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
-      numpy pyasn1;
-    mock = pythonPackages.mock060;
+      numpy pyasn1 mock;
   };
 
   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
@@ -6508,7 +7266,7 @@ let
 
   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
 
-  taskJuggler = callPackage ../applications/misc/taskjuggler {
+  taskjuggler = callPackage ../applications/misc/taskjuggler {
     qt = qt3;
 
     # KDE support is not working yet.
@@ -6516,6 +7274,8 @@ let
     withKde = getPkgConfig "taskJuggler" "kde" false;
   };
 
+  tesseract = callPackage ../applications/graphics/tesseract { };
+
   thinkingRock = callPackage ../applications/misc/thinking-rock { };
 
   thunderbird = thunderbird3;
@@ -6528,6 +7288,10 @@ let
     inherit (gnome) libIDL;
   };
 
+  thunderbird5 = callPackage ../applications/networking/mailreaders/thunderbird/5.x.nix {
+    inherit (gnome) libIDL;
+  };
+
   timidity = callPackage ../tools/misc/timidity { };
 
   tkcvs = callPackage ../applications/version-management/tkcvs { };
@@ -6536,13 +7300,24 @@ let
 
   transmission = callPackage ../applications/networking/p2p/transmission { };
 
+  trayer = callPackage ../applications/window-managers/trayer {
+    inherit (gtkLibs) gdk_pixbuf;
+  };
+
+  tree = callPackage ../tools/system/tree { };
+
+  tribler = callPackage ../applications/networking/p2p/tribler { };
+
   twinkle = callPackage ../applications/networking/twinkle {
     qt = qt3;
     boost = boostFull;
+    ccrtp = ccrtp_1_8;
+    libzrtpcpp = libzrtpcpp_1_6;
   };
 
   unison = callPackage ../applications/networking/sync/unison {
     inherit (ocamlPackages) lablgtk;
+    enableX11 = getConfig [ "unison" "enableX11" ] true;
   };
 
   uucp = callPackage ../tools/misc/uucp { };
@@ -6551,7 +7326,7 @@ let
     inherit pkgconfig webkit makeWrapper;
     inherit (gtkLibs) gtk glib;
     inherit (xlibs) libX11 kbproto;
-    libsoup = gnome28.libsoup_2_31;
+    inherit (gnome28) glib_networking libsoup;
   };
 
   valknut = callPackage ../applications/networking/p2p/valknut {
@@ -6591,11 +7366,15 @@ let
     flags = [ "X11" ]; # only flag "X11" by now
   };
 
+  virtviewer = callPackage ../applications/virtualization/virt-viewer {};
+
   virtualgl = callPackage ../tools/X11/virtualgl { };
 
+  vkeybd = callPackage ../applications/audio/vkeybd {
+    inherit (xlibs) libX11;
+  };
+
   vlc = callPackage ../applications/video/vlc {
-    dbus = dbus.libs;
-    alsa = alsaLib;
     lua = lua5;
   };
 
@@ -6637,14 +7416,16 @@ let
         enableGnash = getConfig [ browserName "enableGnash" ] false;
       in
        assert !(enableGnash && enableAdobeFlash);
-       ([]
+       ([ ]
         ++ lib.optional enableGnash gnash
         ++ lib.optional enableAdobeFlash flashplayer
         # RealPlayer is disabled by default for legal reasons.
         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
+        ++ lib.optional (getConfig [browserName "enableDjvu"] false) (djview4)
         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
+        ++ lib.optional (getConfig [browserName "enableGoogleTalkPlugin"] false) google_talk_plugin
        );
   };
 
@@ -6663,17 +7444,21 @@ let
 
   xawtv = callPackage ../applications/video/xawtv { };
 
+  xbindkeys = callPackage ../tools/X11/xbindkeys { };
+
   xchat = callPackage ../applications/networking/irc/xchat { };
 
   xchm = callPackage ../applications/misc/xchm { };
 
   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
 
+  xdaliclock = callPackage ../tools/misc/xdaliclock {};
+
   xdg_utils = callPackage ../tools/X11/xdg-utils { };
 
-  xen = callPackage ../applications/virtualization/xen {
-    python = pythonFull;
-  };
+  xdotool = callPackage ../tools/X11/xdotool { };
+
+  xen = callPackage ../applications/virtualization/xen { };
 
   xfig = callPackage ../applications/graphics/xfig {
     stdenv = overrideGCC stdenv gcc34;
@@ -6689,7 +7474,7 @@ let
 
   xneur = callPackage ../applications/misc/xneur {
     GStreamer=gst_all.gstreamer;
-    inherit (gtkLibs) glib gtk pango atk;
+    inherit (gtkLibs) glib gtk pango atk gdk_pixbuf;
   };
 
   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
@@ -6718,6 +7503,10 @@ let
     inherit (gnome) libglade;
   };
 
+  xsynth_dssi = callPackage ../applications/audio/xsynth-dssi {
+    inherit (gtkLibs) gtk;
+  };
+
   xterm = callPackage ../applications/misc/xterm { };
 
   xtrace = callPackage ../tools/X11/xtrace { };
@@ -6728,11 +7517,9 @@ let
 
   xmove = callPackage ../applications/misc/xmove { };
 
-  xnee = builderDefsPackage (import ../tools/X11/xnee) {
-    inherit (gtkLibs) gtk;
-    inherit (xlibs) libX11 libXtst xextproto libXext
-      inputproto libXi xproto recordproto;
-    inherit pkgconfig;
+  xnee = callPackage ../tools/X11/xnee {
+    # Work around "missing separator" error.
+    stdenv = overrideInStdenv stdenv [ gnumake381 ];
   };
 
   xvidcap = callPackage ../applications/video/xvidcap {
@@ -6743,29 +7530,14 @@ let
     qt = qt4;
   };
 
-  # doesn't compile yet - in case someone else want's to continue ..
-  # use Trunk because qgisReleased segfaults no resize for now
-  qgis = qgisTrunk;
-  qgisReleased = (import ../applications/misc/qgis) {
-    inherit composableDerivation fetchsvn stdenv flex lib
-            ncurses fetchurl perl cmake gdal geos proj x11
-            gsl libpng zlib bison
-            sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
-            python postgresql pyqt4;
-    inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
-    inherit (xorg) libICE;
-    qt = qt4;
+  qgis = callPackage ../applications/misc/qgis {};
 
-    # optional features
-    # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
-  };
+  yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
 
-  qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
-    qgis = qgisReleased;
+  yoshimi = callPackage ../applications/audio/yoshimi {
+    fltk = fltk11;
   };
 
-  yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
-
   zapping = callPackage ../applications/video/zapping {
     inherit (gnome) scrollkeeper libgnomeui libglade esound;
     teletextSupport = true;
@@ -6776,6 +7548,10 @@ let
 
   zathura = callPackage ../applications/misc/zathura { };
 
+  zynaddsubfx = callPackage ../applications/audio/zynaddsubfx {
+    fltk = fltk11;
+  };
+
   ### GAMES
 
   asc = callPackage ../games/asc {
@@ -6785,7 +7561,9 @@ let
 
   atanks = callPackage ../games/atanks {};
 
-  ballAndPaddle = callPackage ../games/ball-and-paddle { };
+  ballAndPaddle = callPackage ../games/ball-and-paddle {
+    guile = guile_1_8;
+  };
 
   blackshades = callPackage ../games/blackshades { };
 
@@ -6793,6 +7571,10 @@ let
 
   bsdgames = callPackage ../games/bsdgames { };
 
+  btanks = callPackage ../games/btanks { };
+
+  bzflag = callPackage ../games/bzflag { };
+
   castle_combat = callPackage ../games/castle-combat { };
 
   construoBase = callPackage ../games/construo {
@@ -6808,7 +7590,7 @@ let
 
   crrcsim = callPackage ../games/crrcsim {};
 
-  dwarf_fortress = callPackage_i686 ../games/dwarf-fortress { 
+  dwarf_fortress = callPackage_i686 ../games/dwarf-fortress {
     gnomegtk = pkgsi686Linux.gnome.gtk;
   };
 
@@ -6827,6 +7609,10 @@ let
   });
   */
 
+  flightgear = callPackage ../games/flightgear {};
+
+  freeciv = callPackage ../games/freeciv { };
+
   freedink = callPackage ../games/freedink { };
 
   fsg = callPackage ../games/fsg {
@@ -6837,6 +7623,10 @@ let
 
   gl117 = callPackage ../games/gl-117 {};
 
+  glestae = callPackage ../games/glestae {};
+
+  globulation2 = callPackage ../games/globulation {};
+
   gltron = callPackage ../games/gltron { };
 
   gnuchess = callPackage ../games/gnuchess { };
@@ -6844,12 +7634,15 @@ let
   gnugo = callPackage ../games/gnugo { };
 
   gparted = callPackage ../tools/misc/gparted {
+    parted = parted_2_3;
     inherit (gtkLibs) gtk glib gtkmm;
     inherit (gnome) gnomedocutils;
   };
 
   hexen = callPackage ../games/hexen { };
 
+  icbm3d = callPackage ../games/icbm3d { };
+
   instead = callPackage ../games/instead {
     lua = lua5;
   };
@@ -6862,14 +7655,22 @@ let
     inherit libpng zlib;
   };
 
+  mars = callPackage ../games/mars { };
+
   micropolis = callPackage ../games/micropolis { };
 
+  naev = callPackage ../games/naev { };
+
+  njam = callPackage ../games/njam { };
+
   openttd = callPackage ../games/openttd {
     zlib = zlibStatic;
   };
 
   pioneers = callPackage ../games/pioneers { };
 
+  pong3d = callPackage ../games/pong3d { };
+
   prboom = callPackage ../games/prboom { };
 
   quake3demo = callPackage ../games/quake3/wrapper {
@@ -6883,6 +7684,12 @@ let
 
   quake3game = callPackage ../games/quake3/game { };
 
+  racer = callPackage ../games/racer { };
+
+  rigsofrods = callPackage ../games/rigsofrods {
+    mygui = myguiSvn;
+  };
+
   rogue = callPackage ../games/rogue { };
 
   sauerbraten = callPackage ../games/sauerbraten {};
@@ -6899,10 +7706,14 @@ let
     inherit (xlibs) libX11;
   };
 
+  simutrans = callPackage ../games/simutrans { };
+
   six = callPackage ../games/six {
     inherit (kde3) arts kdelibs;
   };
 
+  soi = callPackage ../games/soi {};
+
   # You still can override by passing more arguments.
   spaceOrbit = callPackage ../games/orbit {
     inherit (gnome) esound;  };
@@ -6924,6 +7735,8 @@ let
 
   tbe = callPackage ../games/the-butterfly-effect {};
 
+  teetertorture = callPackage ../games/teetertorture { };
+
   teeworlds = callPackage ../games/teeworlds { };
 
   tennix = callPackage ../games/tennix { };
@@ -6932,12 +7745,20 @@ let
 
   tremulous = callPackage ../games/tremulous { };
 
+  speed_dreams = callPackage ../games/speed-dreams {
+    # Torcs wants to make shared libraries linked with plib libraries (it provides static).
+    # i686 is the only platform I know than can do that linking without plib built with -fPIC
+    plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
+  };
+
   torcs = callPackage ../games/torcs {
     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
     # i686 is the only platform I know than can do that linking without plib built with -fPIC
     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
   };
 
+  trigger = callPackage ../games/trigger { };
+
   ufoai = callPackage ../games/ufoai {
     inherit (gnome) gtksourceview gtkglext;
   };
@@ -6952,24 +7773,39 @@ let
 
   ut2004demo = callPackage ../games/ut2004demo { };
 
+  vdrift = callPackage ../games/vdrift { };
+
+  vectoroids = callPackage ../games/vectoroids { };
+
+  warmux = callPackage ../games/warmux { };
+
   warsow = callPackage ../games/warsow {
     libjpeg = libjpeg62;
   };
 
   warzone2100 = callPackage ../games/warzone2100 { };
 
+  widelands = callPackage ../games/widelands {};
+
   xboard = builderDefsPackage (import ../games/xboard) {
     inherit (xlibs) libX11 xproto libXt libXaw libSM
       libICE libXmu libXext libXpm;
     inherit gnuchess texinfo;
   };
 
+  xconq = callPackage ../games/xconq {};
+
+  # TODO: the corresponding nix file is missing
+  # xracer = callPackage ../games/xracer { };
+
   xsokoban = builderDefsPackage (import ../games/xsokoban) {
     inherit (xlibs) libX11 xproto libXpm libXt;
   };
 
   zdoom = callPackage ../games/zdoom { };
 
+  zod = callPackage ../games/zod { };
+
   zoom = callPackage ../games/zoom { };
 
   keen4 = callPackage ../games/keen4 { };
@@ -7036,46 +7872,51 @@ let
 
   kde4 = kde45;
 
-  kde44 = makeOverridable (import ../desktops/kde-4.4) (
-    applyGlobalOverrides (p: { kde4 = p.kde44; qt4 = p.qt46; }));
-
   kde45 = callPackage ../desktops/kde-4.5 {
-    callPackage =
-      let
-        # !!! Ugly, inefficient.
-        pkgs_for_45 = (applyGlobalOverrides (p: { kde4 = p.kde45; }));
-      in
-        pkgs_for_45.newScope pkgs_for_45.kde45;
+    callPackage = newScope pkgs.kde45;
   };
 
-  kde46 = callPackage ../desktops/kde-4.6 {
-    callPackage =
-      let
-        # !!! Ugly, inefficient.
-        pkgs_for_46 = (applyGlobalOverrides (p: { kde4 = p.kde46; }));
-      in
-        pkgs_for_46.newScope pkgs_for_46.kde46;
+  kde47 = callPackage ../desktops/kde-4.7 {
+    callPackage = newScope pkgs.kde47;
+    callPackageOrig = callPackage;
   };
 
-  xfce = xfce4;
+  redshift = callPackage ../applications/misc/redshift {
+    inherit (xorg) libX11 libXrandr libxcb randrproto libXxf86vm
+      xf86vidmodeproto;
+  };
+
+  oxygen_gtk = callPackage ../misc/themes/gtk2/oxygen-gtk {
+    inherit (gtkLibs) glib gtk;
+  };
 
-  xfce4 = recurseIntoAttrs
-    (let callPackage = newScope pkgs.xfce4; in
-     import ../desktops/xfce-4 { inherit callPackage pkgs; });
+  xfce = xfce46;
+
+  xfce46 = recurseIntoAttrs
+    (let callPackage = newScope pkgs.xfce46; in
+     import ../desktops/xfce-4.6 { inherit callPackage pkgs; });
+
+  xfce48 = recurseIntoAttrs
+    (let callPackage = newScope pkgs.xfce48; in
+     import ../desktops/xfce-4.8 { inherit callPackage pkgs; });
 
 
   ### SCIENCE
 
-  xplanet = callPackage ../applications/science/xplanet {
+  xplanet = callPackage ../applications/science/astronomy/xplanet {
     inherit (gtkLibs) pango;
   };
 
+  gravit = callPackage ../applications/science/astronomy/gravit { };
+
+  stellarium = callPackage ../applications/science/astronomy/stellarium { };
 
   ### SCIENCE/GEOMETRY
 
   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
     inherit (gnome) libglade gtk;
-    inherit libxml2 guile perl intltool libtool pkgconfig;
+    inherit libxml2 perl intltool libtool pkgconfig;
+    guile = guile_1_8;
   };
 
   tetgen = callPackage ../applications/science/geometry/tetgen { };
@@ -7127,6 +7968,8 @@ let
       libXmu libXext libXcursor;
   };
 
+  jags = callPackage ../applications/science/math/jags { };
+
   liblapack = callPackage ../development/libraries/science/math/liblapack { };
 
 
@@ -7150,14 +7993,10 @@ let
   hol = callPackage ../applications/science/logic/hol { };
 
   hol_light = callPackage ../applications/science/logic/hol_light {
-    inherit (ocamlPackages) findlib camlp5_transitional;
+    inherit (ocamlPackages) findlib;
+    camlp5 = ocamlPackages.camlp5_strict;
   };
 
-  hol_light_sources = callPackage ../applications/science/logic/hol_light/sources.nix { };
-
-  hol_light_checkpoint_dmtcp =
-     recurseIntoAttrs (callPackage ../applications/science/logic/hol_light/dmtcp_checkpoint.nix { });
-
   isabelle = import ../applications/science/logic/isabelle {
     inherit (pkgs) stdenv fetchurl nettools perl polyml;
     inherit (pkgs.emacs23Packages) proofgeneral;
@@ -7167,6 +8006,12 @@ let
 
   leo2 = callPackage ../applications/science/logic/leo2 {};
 
+  matita = callPackage ../applications/science/logic/matita {
+    inherit (ocamlPackages) findlib lablgtk ocaml_expat gmetadom ocaml_http
+            lablgtkmathview ocaml_mysql ocaml_sqlite3 ocamlnet ulex08 camlzip ocaml_pcre;
+    camlp5 = ocamlPackages.camlp5_transitional;
+  };
+
   minisat = callPackage ../applications/science/logic/minisat {};
 
   opensmt = callPackage ../applications/science/logic/opensmt { };
@@ -7181,6 +8026,8 @@ let
     camlp5 = ocamlPackages.camlp5_transitional;
   };
 
+  tptp = callPackage ../applications/science/logic/tptp {};
+
   ### SCIENCE / ELECTRONICS
 
   caneda = callPackage ../applications/science/electronics/caneda {
@@ -7203,6 +8050,10 @@ let
 
   ### SCIENCE / MATH
 
+  ecm = callPackage ../applications/science/math/ecm { };
+
+  eukleides = callPackage ../applications/science/math/eukleides { };
+
   maxima = callPackage ../applications/science/math/maxima { };
 
   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
@@ -7219,6 +8070,8 @@ let
     withX = true;
   };
 
+  msieve = callPackage ../applications/science/math/msieve { };
+
   yacas = callPackage ../applications/science/math/yacas { };
 
   ### SCIENCE / MISC
@@ -7228,7 +8081,7 @@ let
   simgrid = callPackage ../applications/science/misc/simgrid { };
 
   tulip = callPackage ../applications/science/misc/tulip {
-    qt = qt4;
+    qt = qt46;
   };
 
   vite = callPackage ../applications/science/misc/vite {
@@ -7257,6 +8110,8 @@ let
 
   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
 
+  darcnes = callPackage ../misc/emulators/darcnes { };
+
   dblatex = callPackage ../misc/tex/dblatex { };
 
   dosbox = callPackage ../misc/emulators/dosbox { };
@@ -7267,8 +8122,14 @@ let
 
   electricsheep = callPackage ../misc/screensavers/electricsheep { };
 
+  fakenes = callPackage ../misc/emulators/fakenes { };
+
   foldingathome = callPackage ../misc/foldingathome { };
 
+  foo2zjs = callPackage ../misc/drivers/foo2zjs {};
+
+  foomatic_filters = callPackage ../misc/drivers/foomatic-filters {};
+
   freestyle = callPackage ../misc/freestyle {
     #stdenv = overrideGCC stdenv gcc41;
   };
@@ -7293,6 +8154,7 @@ let
   ghostscript = callPackage ../misc/ghostscript {
     x11Support = false;
     cupsSupport = getPkgConfig "ghostscript" "cups" true;
+    gnuFork = getConfig [ "ghostscript" "gnu" ] true;
   };
 
   ghostscriptX = appendToName "with-X" (ghostscript.override {
@@ -7306,6 +8168,8 @@ let
   };
 
   # using the new configuration style proposal which is unstable
+  jack1d = callPackage ../misc/jackaudio/jack1.nix { };
+
   jackaudio = callPackage ../misc/jackaudio { };
 
   keynav = callPackage ../tools/X11/keynav { };
@@ -7314,6 +8178,7 @@ let
 
   lilypond = callPackage ../misc/lilypond {
     inherit (gtkLibs) pango;
+    guile = guile_1_8;
   };
 
   martyr = callPackage ../development/libraries/martyr { };
@@ -7324,6 +8189,8 @@ let
 
   mess = callPackage ../misc/emulators/mess { };
 
+  mupen64plus = callPackage ../misc/emulators/mupen64plus { };
+
   nix = nixStable;
 
   nixStable = callPackage ../tools/package-management/nix {
@@ -7336,22 +8203,20 @@ let
     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
   };
 
-  # The SQLite branch.
-  nixSqlite = lowPrio (callPackage ../tools/package-management/nix/sqlite.nix {
-    storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
-    stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
-  });
+  nixSqlite = nixUnstable;
 
   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
     import ../tools/package-management/nix/custom.nix {
       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
         autoconf libtool configureFlags enableScripts lib libxml2 boehmgc
-	pkgconfig flex bison;
+        pkgconfig flex bison sqlite perlPackages;
       aterm = aterm25;
       db4 = db45;
       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
     };
 
+  nut = callPackage ../applications/misc/nut { };
+
   disnix = callPackage ../tools/package-management/disnix { };
 
   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts {
@@ -7365,7 +8230,7 @@ let
   };
 
   disnixos = callPackage ../tools/package-management/disnix/disnixos { };
-  
+
   DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService { };
 
   latex2html = callPackage ../misc/tex/latex2html/default.nix {
@@ -7379,6 +8244,8 @@ let
     inherit (pythonPackages) pexpect paramiko;
   };
 
+  opkg = callPackage ../tools/package-management/opkg { };
+
   pgadmin = callPackage ../applications/misc/pgadmin { };
 
   pgf = pgf2;
@@ -7389,17 +8256,19 @@ let
 
   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
 
+  pjsip = callPackage ../applications/networking/pjsip { };
+
   polytable = callPackage ../misc/tex/polytable { };
 
   psi = newScope pkgs.kde45 ../applications/networking/instant-messengers/psi { };
 
+  uae = callPackage ../misc/emulators/uae { };
+
   putty = callPackage ../applications/networking/remote/putty { };
 
   rssglx = callPackage ../misc/screensavers/rss-glx { };
 
-  xlockmore = callPackage ../misc/screensavers/xlockmore {
-    pam = if getPkgConfig "xlockmore" "pam" true then pam else null;
-  };
+  xlockmore = callPackage ../misc/screensavers/xlockmore { };
 
   saneBackends = callPackage ../misc/sane-backends {
     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
@@ -7468,12 +8337,18 @@ let
     inherit texLiveLatexXColor texLivePGF texLive;
   };
 
+  texLiveModerncv = builderDefsPackage (import ../misc/tex/texlive/moderncv.nix) {
+    inherit texLive unzip;
+  };
+
   trac = callPackage ../misc/trac {
     inherit (pythonPackages) pysqlite;
   };
 
   vice = callPackage ../misc/emulators/vice { };
 
+  VisualBoyAdvance = callPackage ../misc/emulators/VisualBoyAdvance { };
+
   # Wine cannot be built in 64-bit; use a 32-bit build instead.
   wine = callPackage_i686 ../misc/emulators/wine { };
 
@@ -7492,6 +8367,8 @@ let
     inherit (stdenv) mkDerivation;
   };
 
+  zsnes = callPackage_i686 ../misc/emulators/zsnes { };
+
   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
 
 }; in pkgs
diff --git a/pkgs/top-level/guile-2-test.nix b/pkgs/top-level/guile-2-test.nix
index 6341c82da732..802277d474a1 100644
--- a/pkgs/top-level/guile-2-test.nix
+++ b/pkgs/top-level/guile-2-test.nix
@@ -10,7 +10,7 @@ let
     allPackages {
       inherit system;
       config.packageOverrides = pkgs: {
-        guile = pkgs.guile_1_9;
+        guile = pkgs.guile_2_0;
       };
     };
 
@@ -64,6 +64,7 @@ in (mapTestOn {
   guileGnome = linux;
   guile_lib = linux;
   guileLint = linux;
+  guile_ncurses = linux;
   gwrap = linux;
   swig = linux;
   gnutls = linux;
@@ -78,4 +79,6 @@ in (mapTestOn {
   ballAndPaddle = linux;
   drgeo = linux;
   lilypond = linux;
+  liquidwar = linux;
+  freetalk = linux;
 })
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index d514dc617dda..5845c13fbece 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -1,48 +1,398 @@
-{pkgs, newScope, ghc, enableLibraryProfiling ? false, modifyPrio ? (x : x)}:
-
-let ghcOuter = ghc; in
+# Haskell packages in Nixpkgs
+#
+# If you have any questions about the packages defined here or how to
+# contribute, please contact Andres Loeh.
+#
+# This file defines all packages that depend on GHC, the Glasgow Haskell
+# compiler. They are usually distributed via Hackage, the central Haskell
+# package repository. Since at least the libraries are incompatible between
+# different compiler versions, the whole file is parameterized by the GHC
+# that is being used. GHC itself is defined in all-packages.nix
+#
+# Note that next to the packages defined here, there is another way to build
+# arbitrary packages from HackageDB in Nix, using the hack-nix tool that is
+# developed by Marc Weber.
+# -> http://github.com/MarcWeber/hack-nix. Read its README file.
+#
+#
+# This file defines a function parameterized by the following:
+#
+#    pkgs:
+#       the whole Nixpkgs (so that we can depend on non-Haskell packages)
+#
+#    newScope:
+#       for redefining callPackage locally to resolve dependencies of
+#       Haskell packages automatically
+#
+#    ghc:
+#       the GHC version to be used for building the Haskell packages
+#
+#    prefFun:
+#       version preferences for Haskell packages (see below)
+#
+#    enableLibraryProfiling:
+#       Boolean flag indicating whether profiling libraries for all Haskell
+#       packages should be built. If a library is to be built with profiling
+#       enabled, its dependencies should have profiling enabled as well.
+#       Therefore, this is implemented as a global flag.
+#
+#    modifyPrio:
+#       Either the identity function or lowPrio is intended to be passed
+#       here. The idea is that we can make a complete set of Haskell packages
+#       have low priority from the outside.
+#
+#
+# Policy for keeping multiple versions:
+#
+# We keep multiple versions for
+#
+#    * packages that are part of the Haskell Platform
+#    * packages that are known to have severe interface changes
+#
+# For the packages where we keep multiple versions, version x.y.z is mapped
+# to an attribute of name package_x_y_z and stored in a Nix expression called
+# x.y.z.nix. There is no default.nix for such packages. There also is an
+# attribute package that is defined to be self.package_x_y_z where x.y.z is
+# the default version of the package. The global default can be overridden by
+# passing a preferences function.
+#
+# For most packages, however, we keep only one version, and use default.nix.
+
+{pkgs, newScope, ghc, prefFun, enableLibraryProfiling ? false, modifyPrio ? (x : x)}:
 
 # We redefine callPackage to take into account the new scope. The optional
 # modifyPrio argument can be set to lowPrio to make all Haskell packages have
 # low priority.
 
-let result = let callPackage = x : y : modifyPrio (newScope result x y); in
+let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
+                 self = (prefFun result) result; in
 
 # Indentation deliberately broken at this point to keep the bulk
 # of this file at a low indentation level.
 
-rec {
-
-  # ==> You're looking for a package but can't find it? Get hack-nix.
-  # -> http://github.com/MarcWeber/hack-nix. Read its README file.
-  # You can install (almost) all packages from hackage easily.
+{
+
+  final = self;
+
+  # Preferences
+  #
+  # Different versions of GHC need different versions of certain core packages.
+  # We start with a suitable platform version per GHC version.
+
+  emptyPrefs   = super : super // { };
+  ghc6104Prefs = super : super // super.haskellPlatformDefaults_2009_2_0_2 super;
+  ghc6121Prefs = super : super // super.haskellPlatformDefaults_2010_1_0_0 super;
+  ghc6122Prefs = super : super // super.haskellPlatformDefaults_2010_2_0_0 super; # link
+  ghc6123Prefs = super : super // super.haskellPlatformDefaults_2010_2_0_0 super;
+  ghc701Prefs  = super : super // super.haskellPlatformDefaults_2011_2_0_0 super; # link
+  ghc702Prefs  = super : super // super.haskellPlatformDefaults_2011_2_0_0 super;
+  ghc703Prefs  = super : super // super.haskellPlatformDefaults_2011_2_0_1 super;
+  ghc704Prefs  = super : super // super.haskellPlatformDefaults_2011_2_0_1 super; # link
+  ghc721Prefs  = super : super // super.haskellPlatformDefaults_future super;
+  ghcHEADPrefs = super : super // super.haskellPlatformDefaults_future super; # link
+
+  # GHC and its wrapper
+  #
+  # We use a wrapped version of GHC for nearly everything. The wrapped version
+  # adds functionality to GHC to find libraries depended on or installed via
+  # Nix. Because the wrapper is so much more useful than the plain GHC, we
+  # call the plain GHC ghcPlain and the wrapped GHC simply ghc.
+
+  ghcPlain = pkgs.lowPrio ghc; # Note that "ghc" is not "self.ghc" and
+                               # refers to the function argument at the
+                               # top of this file.
 
-  ghcReal = pkgs.lowPrio ghcOuter;
-
-  # In the remainder, `ghc' refers to the wrapper.  This is because
-  # it's never useful to use the wrapped GHC (`ghcReal'), as the
-  # wrapper provides essential functionality: the ability to find
-  # Haskell packages in the buildInputs automatically.
   ghc = callPackage ../development/compilers/ghc/wrapper.nix {
-    ghc = ghcOuter;
-  };
-
-  cabal = callPackage ../development/libraries/haskell/cabal/cabal.nix {};
+    ghc = ghc;
+  };
+
+  # This is the Cabal builder, the function we use to build most Haskell
+  # packages. It isn't the Cabal library, which is a core package of GHC
+  # and therefore not separately listed here.
+
+  cabal = callPackage ../development/libraries/haskell/cabal/cabal.nix {
+    enableLibraryProfiling = enableLibraryProfiling;
+  };
+
+  # Haskell Platform
+  #
+  # We try to support several platform versions. For these, we set all
+  # versions explicitly.
+
+  # NOTE: 2011.2.0.1 is the current default.
+
+  haskellPlatformArgs_future = self : {
+    inherit (self) cabal ghc;
+    cgi          = self.cgi_3001_1_7_4; # 7.2 ok, 7.3 ok
+    fgl          = self.fgl_5_4_2_4; # 7.2 ok, 7.3 fails
+    GLUT         = self.GLUT_2_1_2_1; # 7.2 ok, 7.3 ok
+    haskellSrc   = self.haskellSrc_1_0_1_4; # 7.2 fails, 7.3 fails
+    html         = self.html_1_0_1_2; # 7.2 ok, 7.3 ok
+    HUnit        = self.HUnit_1_2_2_3; # 7.2 ok, 7.3 ok
+    network      = self.network_2_3_0_5; # 7.2 ok, 7.3 ok
+    OpenGL       = self.OpenGL_2_2_3_0; # 7.2 ok, 7.3 ok
+    parallel     = self.parallel_3_1_0_1; # 7.2 ok, 7.3 ok
+    parsec       = self.parsec_3_1_1; # 7.2 ok, 7.3 ok
+    QuickCheck   = self.QuickCheck_2_4_0_1; # 7.2 ok, 7.3 ok
+    regexBase    = self.regexBase_0_93_2; # 7.2 ok, 7.3 ok
+    regexCompat  = self.regexCompat_0_93_1; # 7.2 ok, 7.3 ok
+    regexPosix   = self.regexPosix_0_94_4; # 7.2 ok, 7.3 ok
+    stm          = self.stm_2_2_0_1; # 7.2 ok, 7.3 ok
+    syb          = self.syb_0_3_3; # 7.2 ok, 7.3 ok
+    xhtml        = self.xhtml_3000_2_0_1; # 7.2 ok, 7.3 ok
+    zlib         = self.zlib_0_5_3_1; # 7.2 ok, 7.3 ok
+    HTTP         = self.HTTP_4000_1_2; # 7.2 ok, 7.3 fails
+    deepseq      = self.deepseq_1_1_0_2; # 7.2 ok, 7.3 ok
+    text         = self.text_0_11_1_5; # 7.2 ok, 7.3 fails
+    transformers = self.transformers_0_2_2_0; # 7.2 ok, 7.3 ok
+    mtl          = self.mtl_2_0_1_0; # 7.2 ok, 7.3 ok
+    random       = self.random_1_0_0_3; # 7.2 ok, 7.3 ok
+    cabalInstall = self.cabalInstall_0_10_2; # 7.2 fails, 7.3 fails
+    alex         = self.alex_3_0_1; # 7.2 ok, 7.3 ok
+    happy        = self.happy_1_18_6; # 7.2 ok, 7.3 ok
+    haddock      = self.haddock_2_9_2; # 7.2 fails, 7.3 fails
+  };
+
+  haskellPlatformDefaults_future =
+    self : self.haskellPlatformArgs_future self // {
+      mtl1 = self.mtl_1_1_1_1; # 7.2 ok, 7.3 ok
+    };
+
+  haskellPlatformArgs_2011_2_0_1 = self : {
+    inherit (self) cabal ghc;
+    cgi          = self.cgi_3001_1_7_4;
+    fgl          = self.fgl_5_4_2_3;
+    GLUT         = self.GLUT_2_1_2_1;
+    haskellSrc   = self.haskellSrc_1_0_1_4;
+    html         = self.html_1_0_1_2;
+    HUnit        = self.HUnit_1_2_2_3;
+    network      = self.network_2_3_0_2;
+    OpenGL       = self.OpenGL_2_2_3_0;
+    parallel     = self.parallel_3_1_0_1;
+    parsec       = self.parsec_3_1_1;
+    QuickCheck   = self.QuickCheck_2_4_0_1;
+    regexBase    = self.regexBase_0_93_2;
+    regexCompat  = self.regexCompat_0_93_1;
+    regexPosix   = self.regexPosix_0_94_4;
+    stm          = self.stm_2_2_0_1;
+    syb          = self.syb_0_3;
+    xhtml        = self.xhtml_3000_2_0_1;
+    zlib         = self.zlib_0_5_3_1;
+    HTTP         = self.HTTP_4000_1_1;
+    deepseq      = self.deepseq_1_1_0_2;
+    text         = self.text_0_11_0_6;
+    transformers = self.transformers_0_2_2_0;
+    mtl          = self.mtl_2_0_1_0;
+    cabalInstall = self.cabalInstall_0_10_2;
+    alex         = self.alex_2_3_5;
+    happy        = self.happy_1_18_6;
+    haddock      = self.haddock_2_9_2;
+  };
+
+  haskellPlatformDefaults_2011_2_0_1 =
+    self : self.haskellPlatformArgs_2011_2_0_1 self // {
+      haskellPlatform = self.haskellPlatform_2011_2_0_1;
+      mtl1 = self.mtl_1_1_1_1;
+    };
+
+  haskellPlatform_2011_2_0_1 =
+    callPackage ../development/libraries/haskell/haskell-platform/2011.2.0.1.nix
+      (self.haskellPlatformArgs_2011_2_0_1 self);
+
+  haskellPlatformArgs_2011_2_0_0 = self : {
+    inherit (self) cabal ghc;
+    cgi          = self.cgi_3001_1_7_4;
+    fgl          = self.fgl_5_4_2_3;
+    GLUT         = self.GLUT_2_1_2_1;
+    haskellSrc   = self.haskellSrc_1_0_1_4;
+    html         = self.html_1_0_1_2;
+    HUnit        = self.HUnit_1_2_2_3;
+    network      = self.network_2_3_0_2;
+    OpenGL       = self.OpenGL_2_2_3_0;
+    parallel     = self.parallel_3_1_0_1;
+    parsec       = self.parsec_3_1_1;
+    QuickCheck   = self.QuickCheck_2_4_0_1;
+    regexBase    = self.regexBase_0_93_2;
+    regexCompat  = self.regexCompat_0_93_1;
+    regexPosix   = self.regexPosix_0_94_4;
+    stm          = self.stm_2_2_0_1;
+    syb          = self.syb_0_3;
+    xhtml        = self.xhtml_3000_2_0_1;
+    zlib         = self.zlib_0_5_3_1;
+    HTTP         = self.HTTP_4000_1_1;
+    deepseq      = self.deepseq_1_1_0_2;
+    text         = self.text_0_11_0_5;
+    transformers = self.transformers_0_2_2_0;
+    mtl          = self.mtl_2_0_1_0;
+    cabalInstall = self.cabalInstall_0_10_2;
+    alex         = self.alex_2_3_5;
+    happy        = self.happy_1_18_6;
+    haddock      = self.haddock_2_9_2;
+  };
+
+  haskellPlatformDefaults_2011_2_0_0 =
+    self : self.haskellPlatformArgs_2011_2_0_0 self // {
+      haskellPlatform = self.haskellPlatform_2011_2_0_0;
+      mtl1 = self.mtl_1_1_1_1;
+    };
+
+  haskellPlatform_2011_2_0_0 =
+    callPackage ../development/libraries/haskell/haskell-platform/2011.2.0.0.nix
+      (self.haskellPlatformArgs_2011_2_0_0 self);
+
+  haskellPlatformArgs_2010_2_0_0 = self : {
+    inherit (self) cabal ghc;
+    cgi          = self.cgi_3001_1_7_3;
+    fgl          = self.fgl_5_4_2_3;
+    GLUT         = self.GLUT_2_1_2_1;
+    haskellSrc   = self.haskellSrc_1_0_1_3;
+    html         = self.html_1_0_1_2;
+    HUnit        = self.HUnit_1_2_2_1;
+    mtl          = self.mtl_1_1_0_2;
+    network      = self.network_2_2_1_7;
+    OpenGL       = self.OpenGL_2_2_3_0;
+    parallel     = self.parallel_2_2_0_1;
+    parsec       = self.parsec_2_1_0_1;
+    QuickCheck   = self.QuickCheck_2_1_1_1;
+    regexBase    = self.regexBase_0_93_2;
+    regexCompat  = self.regexCompat_0_93_1;
+    regexPosix   = self.regexPosix_0_94_2;
+    stm          = self.stm_2_1_2_1;
+    xhtml        = self.xhtml_3000_2_0_1;
+    zlib         = self.zlib_0_5_2_0;
+    HTTP         = self.HTTP_4000_0_9;
+    deepseq      = self.deepseq_1_1_0_0;
+    cabalInstall = self.cabalInstall_0_8_2;
+    alex         = self.alex_2_3_3;
+    happy        = self.happy_1_18_5;
+    haddock      = self.haddock_2_7_2;
+  };
+
+  haskellPlatformDefaults_2010_2_0_0 =
+    self : self.haskellPlatformArgs_2010_2_0_0 self // {
+      haskellPlatform = self.haskellPlatform_2010_2_0_0;
+    };
+
+  haskellPlatform_2010_2_0_0 =
+    callPackage ../development/libraries/haskell/haskell-platform/2010.2.0.0.nix
+      (self.haskellPlatformArgs_2010_2_0_0 self);
+
+  haskellPlatformArgs_2010_1_0_0 = self : {
+    inherit (self) cabal ghc;
+    haskellSrc   = self.haskellSrc_1_0_1_3;
+    html         = self.html_1_0_1_2;
+    fgl          = self.fgl_5_4_2_2;
+    cabalInstall = self.cabalInstall_0_8_0;
+    GLUT         = self.GLUT_2_1_2_1;
+    OpenGL       = self.OpenGL_2_2_3_0;
+    zlib         = self.zlib_0_5_2_0;
+    alex         = self.alex_2_3_2;
+    cgi          = self.cgi_3001_1_7_2;
+    QuickCheck   = self.QuickCheck_2_1_0_3;
+    HTTP         = self.HTTP_4000_0_9;
+    HUnit        = self.HUnit_1_2_2_1;
+    network      = self.network_2_2_1_7;
+    parallel     = self.parallel_2_2_0_1;
+    parsec       = self.parsec_2_1_0_1;
+    regexBase    = self.regexBase_0_93_1;
+    regexCompat  = self.regexCompat_0_92;
+    regexPosix   = self.regexPosix_0_94_1;
+    stm          = self.stm_2_1_1_2;
+    xhtml        = self.xhtml_3000_2_0_1;
+    haddock      = self.haddock_2_7_2;
+    happy        = self.happy_1_18_4;
+  };
+
+  haskellPlatformDefaults_2010_1_0_0 =
+    self : self.haskellPlatformArgs_2010_1_0_0 self // {
+      haskellPlatform = self.haskellPlatform_2010_1_0_0;
+      extensibleExceptions = self.extensibleExceptions_0_1_1_0;
+    };
+
+  haskellPlatform_2010_1_0_0 =
+    callPackage ../development/libraries/haskell/haskell-platform/2010.1.0.0.nix
+      (self.haskellPlatformArgs_2010_1_0_0 self);
+
+  haskellPlatformArgs_2009_2_0_2 = self : {
+    inherit (self) cabal ghc editline;
+    time         = self.time_1_1_2_4;
+    haddock      = self.haddock_2_4_2;
+    cgi          = self.cgi_3001_1_7_1;
+    fgl          = self.fgl_5_4_2_2;
+    GLUT         = self.GLUT_2_1_1_2;
+    haskellSrc   = self.haskellSrc_1_0_1_3;
+    html         = self.html_1_0_1_2;
+    HUnit        = self.HUnit_1_2_0_3;
+    network      = self.network_2_2_1_4;
+    OpenGL       = self.OpenGL_2_2_1_1;
+    parallel     = self.parallel_1_1_0_1;
+    parsec       = self.parsec_2_1_0_1;
+    QuickCheck   = self.QuickCheck_1_2_0_0;
+    regexBase    = self.regexBase_0_72_0_2;
+    regexCompat  = self.regexCompat_0_71_0_1;
+    regexPosix   = self.regexPosix_0_72_0_3;
+    stm          = self.stm_2_1_1_2;
+    xhtml        = self.xhtml_3000_2_0_1;
+    zlib         = self.zlib_0_5_0_0;
+    HTTP         = self.HTTP_4000_0_6;
+    cabalInstall = self.cabalInstall_0_6_2;
+    alex         = self.alex_2_3_1;
+    happy        = self.happy_1_18_4;
+  };
+
+  haskellPlatformDefaults_2009_2_0_2 =
+    self : self.haskellPlatformArgs_2009_2_0_2 self // {
+      haskellPlatform = self.haskellPlatform_2009_2_0_2;
+      extensibleExceptions = self.extensibleExceptions_0_1_1_0;
+    };
+
+  haskellPlatform_2009_2_0_2 =
+    callPackage ../development/libraries/haskell/haskell-platform/2009.2.0.2.nix
+      (self.haskellPlatformArgs_2009_2_0_2 self);
 
 
   # Haskell libraries.
 
   Agda = callPackage ../development/libraries/haskell/Agda {
-    QuickCheck = QuickCheck_2;
+    syb = self.syb02;
+    haskellSrcExts = self.haskellSrcExts_1_9_6;
   };
 
+  ACVector = callPackage ../development/libraries/haskell/AC-Vector {};
+
+  aeson = callPackage ../development/libraries/haskell/aeson {};
+
   ansiTerminal = callPackage ../development/libraries/haskell/ansi-terminal {};
 
-  ansiWLPprint = callPackage ../development/libraries/haskell/ansi-wl-pprint {};
+  ansiWlPprint = callPackage ../development/libraries/haskell/ansi-wl-pprint {};
+
+  asn1Data = callPackage ../development/libraries/haskell/asn1-data {};
 
   AspectAG = callPackage ../development/libraries/haskell/AspectAG {};
 
-  benchpress = callPackage ../development/libraries/haskell/benchpress {};
+  async = callPackage ../development/libraries/haskell/async {};
+
+  attempt = callPackage ../development/libraries/haskell/attempt {};
+
+  attoparsec = callPackage ../development/libraries/haskell/attoparsec {};
+
+  attoparsecEnumerator = callPackage ../development/libraries/haskell/attoparsec/enumerator.nix {};
+
+  attoparsecText = callPackage ../development/libraries/haskell/attoparsec-text {};
+
+  attoparsecTextEnumerator = callPackage ../development/libraries/haskell/attoparsec-text-enumerator {};
+
+  authenticate = callPackage ../development/libraries/haskell/authenticate {};
+
+  base64String = callPackage ../development/libraries/haskell/base64-string {};
+
+  base64Bytestring = callPackage ../development/libraries/haskell/base64-bytestring {};
+
+  baseUnicodeSymbols = callPackage ../development/libraries/haskell/base-unicode-symbols {};
+
+  benchpress = callPackage ../development/libraries/haskell/benchpress {
+    time = self.time_1_1_3;
+  };
 
   bimap = callPackage ../development/libraries/haskell/bimap {};
 
@@ -52,75 +402,108 @@ rec {
 
   bitmap = callPackage ../development/libraries/haskell/bitmap {};
 
+  bktrees = callPackage ../development/libraries/haskell/bktrees {};
+
   blazeBuilder = callPackage ../development/libraries/haskell/blaze-builder {};
 
+  blazeBuilderEnumerator = callPackage ../development/libraries/haskell/blaze-builder-enumerator {};
+
   blazeHtml = callPackage ../development/libraries/haskell/blaze-html {};
 
-  bktrees = callPackage ../development/libraries/haskell/bktrees {};
+  blazeTextual = callPackage ../development/libraries/haskell/blaze-textual {};
+
+  bmp = callPackage ../development/libraries/haskell/bmp {};
 
   Boolean = callPackage ../development/libraries/haskell/Boolean {};
 
-  bytestring = callPackage ../development/libraries/haskell/bytestring {};
+  bytestringNums = callPackage ../development/libraries/haskell/bytestring-nums {};
+
+  bytestringMmap = callPackage ../development/libraries/haskell/bytestring-mmap {};
 
-  networkBytestring = callPackage ../development/libraries/haskell/network-bytestring {};
+  bytestringTrie = callPackage ../development/libraries/haskell/bytestring-trie {};
 
   cairo = callPackage ../development/libraries/haskell/cairo {
     inherit (pkgs) cairo zlib;
   };
 
+  caseInsensitive_0_3 = callPackage ../development/libraries/haskell/case-insensitive/0.3.nix {};
+  caseInsensitive_0_3_0_1 = callPackage ../development/libraries/haskell/case-insensitive/0.3.0.1.nix {};
+  caseInsensitive = self.caseInsensitive_0_3_0_1;
+
   cautiousFile = callPackage ../development/libraries/haskell/cautious-file {};
 
   cereal = callPackage ../development/libraries/haskell/cereal {};
 
-  cgi_3001_1_7_2 = callPackage ../development/libraries/haskell/cgi/3001.1.7.2.nix {
-    network = network_2_2_1_7;
-  };
+  certificate = callPackage ../development/libraries/haskell/certificate {};
 
-  cgi_3001_1_7_3 = callPackage ../development/libraries/haskell/cgi/3001.1.7.3.nix {
-    network = network_2_2_1_7;
-  };
-
-  cgi = callPackage ../development/libraries/haskell/cgi {};
+  cgi_3001_1_7_1 = callPackage ../development/libraries/haskell/cgi/3001.1.7.1.nix {};
+  cgi_3001_1_7_2 = callPackage ../development/libraries/haskell/cgi/3001.1.7.2.nix {};
+  cgi_3001_1_7_3 = callPackage ../development/libraries/haskell/cgi/3001.1.7.3.nix {};
+  cgi_3001_1_7_4 = callPackage ../development/libraries/haskell/cgi/3001.1.7.4.nix {};
+  cgi_3001_1_8_2 = callPackage ../development/libraries/haskell/cgi/3001.1.8.2.nix {};
+  cgi = self.cgi_3001_1_7_1;
 
   Chart = callPackage ../development/libraries/haskell/Chart {};
 
+  citeprocHs = callPackage ../development/libraries/haskell/citeproc-hs {};
+
+  clientsession = callPackage ../development/libraries/haskell/clientsession {};
+
   cmdargs = callPackage ../development/libraries/haskell/cmdargs {};
 
+  cmdlib = callPackage ../development/libraries/haskell/cmdlib {};
+
   colorizeHaskell = callPackage ../development/libraries/haskell/colorize-haskell {};
 
   colour = callPackage ../development/libraries/haskell/colour {};
 
   ConfigFile = callPackage ../development/libraries/haskell/ConfigFile {};
 
+  controlMonadAttempt = callPackage ../development/libraries/haskell/control-monad-attempt {};
+
   convertible = callPackage ../development/libraries/haskell/convertible {
-    time = time_1_1_3;
+    time = self.time_1_1_3;
   };
 
+  continuedFractions = callPackage ../development/libraries/haskell/continued-fractions {};
+
+  converge = callPackage ../development/libraries/haskell/converge {};
+
+  cookie = callPackage ../development/libraries/haskell/cookie {};
+
+  cprngAes = callPackage ../development/libraries/haskell/cprng-aes {};
+
   criterion = callPackage ../development/libraries/haskell/criterion {
-    parallel = parallel_2_2_0_1;
-    parsec = parsec_3;
+    parsec = self.parsec3;
   };
 
   Crypto = callPackage ../development/libraries/haskell/Crypto {};
 
-  CS173Tourney = callPackage ../development/libraries/haskell/CS173Tourney {
-    inherit (pkgs) fetchgit;
-    json = json_0_3_6;
-  };
+  cryptoApi = callPackage ../development/libraries/haskell/crypto-api {};
+
+  cryptocipher = callPackage ../development/libraries/haskell/cryptocipher {};
+
+  cryptohash = callPackage ../development/libraries/haskell/cryptohash {};
 
   csv = callPackage ../development/libraries/haskell/csv {};
 
+  cssText = callPackage ../development/libraries/haskell/css-text {};
+
   dataAccessor = callPackage ../development/libraries/haskell/data-accessor/data-accessor.nix {};
 
   dataAccessorTemplate = callPackage ../development/libraries/haskell/data-accessor/data-accessor-template.nix {};
 
+  dataDefault = callPackage ../development/libraries/haskell/data-default {};
+
   dataenc = callPackage ../development/libraries/haskell/dataenc {};
 
   dataReify = callPackage ../development/libraries/haskell/data-reify {};
 
   datetime = callPackage ../development/libraries/haskell/datetime {};
 
-  deepseq = callPackage ../development/libraries/haskell/deepseq {};
+  deepseq_1_1_0_0 = callPackage ../development/libraries/haskell/deepseq/1.1.0.0.nix {};
+  deepseq_1_1_0_2 = callPackage ../development/libraries/haskell/deepseq/1.1.0.2.nix {};
+  deepseq = self.deepseq_1_1_0_0;
 
   derive = callPackage ../development/libraries/haskell/derive {};
 
@@ -130,60 +513,88 @@ rec {
     inherit (pkgs) zlib;
   };
 
+  dimensional = callPackage ../development/libraries/haskell/dimensional {};
+
+  directoryTree = callPackage ../development/libraries/haskell/directory-tree {};
+
+  dlist = callPackage ../development/libraries/haskell/dlist {};
+
   dotgen = callPackage ../development/libraries/haskell/dotgen {};
 
+  doubleConversion = callPackage ../development/libraries/haskell/double-conversion {
+    text = self.text_0_11_1_5;
+  };
+
   editline = callPackage ../development/libraries/haskell/editline {
     inherit (pkgs) libedit;
   };
 
+  emailValidate = callPackage ../development/libraries/haskell/email-validate {};
+
+  enumerator = callPackage ../development/libraries/haskell/enumerator {};
+
+  entropy = callPackage ../development/libraries/haskell/entropy {};
+
   erf = callPackage ../development/libraries/haskell/erf {};
 
   filepath = callPackage ../development/libraries/haskell/filepath {};
 
   emgm = callPackage ../development/libraries/haskell/emgm {};
 
-  extensibleExceptions = callPackage ../development/libraries/haskell/extensible-exceptions {};
+  extensibleExceptions_0_1_1_0 = callPackage ../development/libraries/haskell/extensible-exceptions/0.1.1.0.nix {};
+  extensibleExceptions_0_1_1_2 = callPackage ../development/libraries/haskell/extensible-exceptions/0.1.1.2.nix {};
+  extensibleExceptions = null; # a core package in recent GHCs
 
   failure = callPackage ../development/libraries/haskell/failure {};
 
   fclabels = callPackage ../development/libraries/haskell/fclabels {};
 
+  funcmp = callPackage ../development/libraries/haskell/funcmp {};
+
   feed = callPackage ../development/libraries/haskell/feed {};
 
-  filestore = callPackage ../development/libraries/haskell/filestore {};
+  fileEmbed = callPackage ../development/libraries/haskell/file-embed {};
 
-  fgl = callPackage ../development/libraries/haskell/fgl {};
+  flexibleDefaults = callPackage ../development/libraries/haskell/flexible-defaults {};
 
+  filestore = callPackage ../development/libraries/haskell/filestore {};
+
+  fgl_5_4_2_2 = callPackage ../development/libraries/haskell/fgl/5.4.2.2.nix {};
   fgl_5_4_2_3 = callPackage ../development/libraries/haskell/fgl/5.4.2.3.nix {};
+  fgl_5_4_2_4 = callPackage ../development/libraries/haskell/fgl/5.4.2.4.nix {};
+  fgl = self.fgl_5_4_2_2;
 
   fingertree = callPackage ../development/libraries/haskell/fingertree {};
 
+  gamma = callPackage ../development/libraries/haskell/gamma {};
+
   gdiff = callPackage ../development/libraries/haskell/gdiff {};
 
   getOptions = callPackage ../development/libraries/haskell/get-options {};
 
   ghcCore = callPackage ../development/libraries/haskell/ghc-core {};
 
-  ghcEvents = callPackage ../development/libraries/haskell/ghc-events {};
+  ghcEvents = callPackage ../development/libraries/haskell/ghc-events {
+    mtl = self.mtl1;
+  };
 
   ghcMtl = callPackage ../development/libraries/haskell/ghc-mtl {};
 
+  ghcPaths_0_1_0_5 = callPackage ../development/libraries/haskell/ghc-paths/0.1.0.5.nix {};
   ghcPaths_0_1_0_6 = callPackage ../development/libraries/haskell/ghc-paths/0.1.0.6.nix {};
-
-  ghcPaths = callPackage ../development/libraries/haskell/ghc-paths {};
+  ghcPaths_0_1_0_8 = callPackage ../development/libraries/haskell/ghc-paths/0.1.0.8.nix {};
+  ghcPaths = self.ghcPaths_0_1_0_6; # version 0.1.0.5 doesn't build with an up-to-date GHC
 
   ghcSyb = callPackage ../development/libraries/haskell/ghc-syb {};
 
   ghcSybUtils = callPackage ../development/libraries/haskell/ghc-syb-utils {};
 
-  gitit = callPackage ../development/libraries/haskell/gitit {
-    cgi = cgi_3001_1_7_2;
-    HTTP = HTTP_4000_0_9;
-    network = network_2_2_1_7;
-  };
+  gitit = callPackage ../development/libraries/haskell/gitit {};
 
   glade = callPackage ../development/libraries/haskell/glade {
-    inherit (pkgs) pkgconfig gnome glibc;
+    inherit (pkgs) pkgconfig glibc;
+    inherit (pkgs.gnome) libglade;
+    gtkC = pkgs.gnome.gtk;
   };
 
   glib = callPackage ../development/libraries/haskell/glib {
@@ -192,168 +603,97 @@ rec {
 
   GlomeVec = callPackage ../development/libraries/haskell/GlomeVec {};
 
-  GLUT2121 = callPackage ../development/libraries/haskell/GLUT/2.1.2.1.nix {
-    OpenGL = OpenGL_2_2_3_0;
+  GLURaw = callPackage ../development/libraries/haskell/GLURaw {
+    GLU = pkgs.freeglut;
+  };
+
+  GLUT_2_1_1_2 = callPackage ../development/libraries/haskell/GLUT/2.1.1.2.nix {
     glut = pkgs.freeglut;
     inherit (pkgs) mesa;
     inherit (pkgs.xlibs) libSM libICE libXmu libXi;
   };
-
-  GLUT = callPackage ../development/libraries/haskell/GLUT {
+  GLUT_2_1_2_1 = callPackage ../development/libraries/haskell/GLUT/2.1.2.1.nix {
+    glut = pkgs.freeglut;
+    inherit (pkgs) mesa;
+    inherit (pkgs.xlibs) libSM libICE libXmu libXi;
+  };
+  GLUT_2_2_2_0 = callPackage ../development/libraries/haskell/GLUT/2.2.2.0.nix {
     glut = pkgs.freeglut;
+    OpenGL = self.OpenGL_2_4_0_1;
     inherit (pkgs) mesa;
     inherit (pkgs.xlibs) libSM libICE libXmu libXi;
   };
+  GLUT = self.GLUT_2_1_1_2;
 
   gtk = callPackage ../development/libraries/haskell/gtk {
     inherit (pkgs) pkgconfig glibc;
     inherit (pkgs.gtkLibs) gtk;
   };
 
-  gtk2hs = callPackage ../development/libraries/haskell/gtk2hs {
-    inherit (pkgs) pkgconfig gnome cairo;
-  };
-
-  gtk2hsBuildtools = callPackage ../development/libraries/haskell/gtk2hs-buildtools {
-    alex = alex_2_3_3;
-    happy = happy_1_18_5;
-  };
+  gtk2hsBuildtools = callPackage ../development/libraries/haskell/gtk2hs-buildtools {};
+  gtk2hsC2hs = self.gtk2hsBuildtools;
 
   gtksourceview2 = callPackage ../development/libraries/haskell/gtksourceview2 {
     inherit (pkgs) pkgconfig glibc;
     inherit (pkgs.gnome) gtksourceview;
-    gtkC = pkgs.gtkLibs.gtk;
   };
 
-  Graphalyze = callPackage ../development/libraries/haskell/Graphalyze {
-    fgl = fgl_5_4_2_3;
-  };
+  Graphalyze = callPackage ../development/libraries/haskell/Graphalyze {};
 
-  graphviz = callPackage ../development/libraries/haskell/graphviz {
-    fgl = fgl_5_4_2_3;
-  };
+  graphviz = callPackage ../development/libraries/haskell/graphviz {};
 
-  hakyll = callPackage ../development/libraries/haskell/hakyll {
-    regexBase = regexBase_0_93_2;
-    network = network_2_2_1_7;
-    time = time_1_2_0_3;
-    pandoc = pandoc_newtime;
-  };
+  hakyll = callPackage ../development/libraries/haskell/hakyll {};
 
   hamlet = callPackage ../development/libraries/haskell/hamlet {};
 
-  HAppSData = callPackage ../development/libraries/haskell/HAppS/HAppS-Data.nix {};
-
-  HAppSIxSet = callPackage ../development/libraries/haskell/HAppS/HAppS-IxSet.nix {};
-
-  HAppSUtil = callPackage ../development/libraries/haskell/HAppS/HAppS-Util.nix {};
-
-  HAppSServer = callPackage ../development/libraries/haskell/HAppS/HAppS-Server.nix {};
-
-  HAppSState = callPackage ../development/libraries/haskell/HAppS/HAppS-State.nix {};
-
-  /* cannot yet get this to work with 6.12.1 */
   happstackData = callPackage ../development/libraries/haskell/happstack/happstack-data.nix {};
 
   happstackUtil = callPackage ../development/libraries/haskell/happstack/happstack-util.nix {};
 
-  happstackServer = callPackage ../development/libraries/haskell/happstack/happstack-server.nix {
-    network = network_2_2_1_7;
-  };
+  happstackServer = callPackage ../development/libraries/haskell/happstack/happstack-server.nix {};
+
+  hashable = callPackage ../development/libraries/haskell/hashable {};
 
   hashedStorage = callPackage ../development/libraries/haskell/hashed-storage {};
 
   haskeline = callPackage ../development/libraries/haskell/haskeline {};
 
-  haskelineClass = callPackage ../development/libraries/haskell/haskeline-class {};
+  haskelineClass = callPackage ../development/libraries/haskell/haskeline-class {
+    mtl = self.mtl1;
+  };
 
   haskellLexer = callPackage ../development/libraries/haskell/haskell-lexer {};
 
-  haskellSrc = callPackage ../development/libraries/haskell/haskell-src {};
-
-  haskellSrc_P = callPackage ../development/libraries/haskell/haskell-src {
-    happy = happy_1_18_5;
-  };
+  haskellSrc_1_0_1_3 = callPackage ../development/libraries/haskell/haskell-src/1.0.1.3.nix {};
+  haskellSrc_1_0_1_4 = callPackage ../development/libraries/haskell/haskell-src/1.0.1.4.nix {};
+  haskellSrc = self.haskellSrc_1_0_1_3;
 
-  haskellSrcExts = callPackage ../development/libraries/haskell/haskell-src-exts {};
+  # The old version is required for Agda.
+  haskellSrcExts_1_11_1 = callPackage ../development/libraries/haskell/haskell-src-exts/1.11.1.nix {};
+  haskellSrcExts_1_9_6 = callPackage ../development/libraries/haskell/haskell-src-exts/1.9.6.nix {};
+  haskellSrcExts = self.haskellSrcExts_1_11_1;
 
   haskellSrcMeta = callPackage ../development/libraries/haskell/haskell-src-meta {};
 
-  haskellPlatform = haskellPlatform_2010_2_0_0;
-
-  haskellPlatformArgs_2010_2_0_0 = {
-    inherit cabal ghc html xhtml;
-    haskellSrc = haskellSrc_P;
-    fgl = fgl_5_4_2_3;
-    cabalInstall = cabalInstall_0_8_2;
-    GLUT = GLUT2121;
-    OpenGL = OpenGL_2_2_3_0;
-    zlib = zlib_0_5_2_0;
-    alex = alex_2_3_3;
-    cgi = cgi_3001_1_7_3;
-    QuickCheck = QuickCheck_2;
-    HTTP = HTTP_4000_0_9;
-    HUnit = HUnit_1_2_2_1;
-    network = network_2_2_1_7;
-    parallel = parallel_2_2_0_1;
-    regexBase = regexBase_0_93_2;
-    regexCompat = regexCompat_0_93_1;
-    regexPosix = regexPosix_0_94_2;
-    stm = stm_2_1_2_1;
-    haddock = haddock_2_7_2_P;
-    happy = happy_1_18_5;
-  };
-
-  haskellPlatformDefaults_2010_2_0_0 = haskellPlatformArgs_2010_2_0_0 // {
-    haskellPlatform = haskellPlatform_2010_2_0_0;
-  };
-
-  haskellPlatform_2010_2_0_0 = callPackage ../development/libraries/haskell/haskell-platform/2010.2.0.0.nix haskellPlatformArgs_2010_2_0_0;
-
-  haskellPlatform_2010_1_0_0 = pkgs.lowPrio (import ../development/libraries/haskell/haskell-platform/2010.1.0.0.nix {
-    inherit cabal ghc fgl
-      haskellSrc html
-      stm xhtml;
-    cabalInstall = cabalInstall_0_8_0;
-    GLUT = GLUT2121;
-    OpenGL = OpenGL_2_2_3_0;
-    zlib = zlib_0_5_2_0;
-    alex = alex_2_3_2;
-    cgi = cgi_3001_1_7_2;
-    QuickCheck = QuickCheck_2_1_0_3;
-    HTTP = HTTP_4000_0_9;
-    HUnit = HUnit_1_2_2_1;
-    network = network_2_2_1_7;
-    parallel = parallel_2_2_0_1;
-    regexBase = regexBase_0_93_1;
-    regexCompat = regexCompat_0_92;
-    regexPosix = regexPosix_0_94_1;
-    haddock = haddock_2_7_2;
-    happy = happy_1_18_4;
-    inherit (pkgs) fetchurl;
-  });
-
-  haskellPlatform_2009_2_0_2 = import ../development/libraries/haskell/haskell-platform/2009.2.0.2.nix {
-    inherit cabal ghc GLUT HTTP HUnit OpenGL QuickCheck cgi fgl editline
-      haskellSrc html parallel regexBase regexCompat regexPosix
-      stm time xhtml zlib cabalInstall alex happy;
-    haddock = haddock_2_4_2;
-    inherit (pkgs) fetchurl;
-  };
-
-  HTTP_4000_0_9 = callPackage ../development/libraries/haskell/HTTP/4000.0.9.nix {
-    network = network_2_2_1_7;
-  };
-
-  HTTP = callPackage ../development/libraries/haskell/HTTP {};
-
-  HTTP_3001 = callPackage ../development/libraries/haskell/HTTP/3001.nix {};
-
-  haxr = callPackage ../development/libraries/haskell/haxr {};
+  HTTP_3001_1_5 = callPackage ../development/libraries/haskell/HTTP/3001.1.5.nix {};
+  HTTP_4000_0_6 = callPackage ../development/libraries/haskell/HTTP/4000.0.6.nix {};
+  HTTP_4000_0_9 = callPackage ../development/libraries/haskell/HTTP/4000.0.9.nix {};
+  HTTP_4000_1_1 = callPackage ../development/libraries/haskell/HTTP/4000.1.1.nix {};
+  HTTP_4000_1_2 = callPackage ../development/libraries/haskell/HTTP/4000.1.2.nix {};
+  HTTP = self.HTTP_4000_0_6;
 
+  haxr = callPackage ../development/libraries/haskell/haxr {
+    HaXml = self.HaXml_1_22_5;
+  };
   haxr_th = callPackage ../development/libraries/haskell/haxr-th {};
 
-  HaXml = callPackage ../development/libraries/haskell/HaXml {};
+  HaXml_1_13_3 = callPackage ../development/libraries/haskell/HaXml/1.13.3.nix {};
+  HaXml_1_20_2 = callPackage ../development/libraries/haskell/HaXml/1.20.2.nix {};
+  HaXml_1_22_5 = callPackage ../development/libraries/haskell/HaXml/1.22.5.nix {};
+  HaXml113 = self.HaXml_1_13_3;
+  HaXml120 = self.HaXml_1_20_2;
+  HaXml122 = self.HaXml_1_22_5;
+  HaXml    = self.HaXml120;
 
   HDBC = callPackage ../development/libraries/haskell/HDBC/HDBC.nix {};
 
@@ -365,24 +705,54 @@ rec {
     inherit (pkgs) sqlite;
   };
 
+  HFuse = callPackage ../development/libraries/haskell/hfuse {
+    inherit (pkgs) fuse;
+  };
+
   HGL = callPackage ../development/libraries/haskell/HGL {};
 
   highlightingKate = callPackage ../development/libraries/haskell/highlighting-kate {};
 
   hint = callPackage ../development/libraries/haskell/hint {
-    ghcPaths = ghcPaths_0_1_0_6;
+    ghcPaths = self.ghcPaths_0_1_0_6;
   };
 
   Hipmunk = callPackage ../development/libraries/haskell/Hipmunk {};
 
+  hjsmin = callPackage ../development/libraries/haskell/hjsmin {};
+
+  hledger = callPackage ../development/libraries/haskell/hledger {};
+  hledgerLib = callPackage ../development/libraries/haskell/hledger-lib {};
+  hledgerVty = callPackage ../development/libraries/haskell/hledger-vty {
+    vty = self.vty_4_6_0_4;
+  };
+  hledgerChart = callPackage ../development/libraries/haskell/hledger-chart {};
+  hledgerInterest = callPackage ../applications/office/hledger-interest {};
+
   HList = callPackage ../development/libraries/haskell/HList {};
 
   hmatrix = callPackage ../development/libraries/haskell/hmatrix {
     inherit (pkgs) gsl liblapack/* lapack library */ blas;
   };
 
+  hopenssl = callPackage ../development/libraries/haskell/hopenssl {};
+
+  hostname = callPackage ../development/libraries/haskell/hostname {};
+
+  hp2anyCore = callPackage ../development/libraries/haskell/hp2any-core {};
+
+  hp2anyGraph = callPackage ../development/libraries/haskell/hp2any-graph {
+    glut = pkgs.freeglut;
+  };
+
+  hsBibutils = callPackage ../development/libraries/haskell/hs-bibutils {};
+
   hscolour = callPackage ../development/libraries/haskell/hscolour {};
 
+  hsdns = callPackage ../development/libraries/haskell/hsdns {
+    inherit (pkgs) adns;
+  };
+
   hsemail = callPackage ../development/libraries/haskell/hsemail {};
 
   HsSyck = callPackage ../development/libraries/haskell/HsSyck {};
@@ -393,41 +763,70 @@ rec {
 
   hsloggerTemplate = callPackage ../development/libraries/haskell/hslogger-template {};
 
-  html = callPackage ../development/libraries/haskell/html {};
+  hsyslog = callPackage ../development/libraries/haskell/hsyslog {};
 
-  httpdShed = callPackage ../development/libraries/haskell/httpd-shed {
-    network = network_2_2_1_7;
-  };
+  html_1_0_1_2 = callPackage ../development/libraries/haskell/html/1.0.1.2.nix {};
+  html = self.html_1_0_1_2;
 
+  httpdShed = callPackage ../development/libraries/haskell/httpd-shed {};
+
+  httpDate = callPackage ../development/libraries/haskell/http-date {};
+
+  httpEnumerator = callPackage ../development/libraries/haskell/http-enumerator {};
+
+  httpTypes = callPackage ../development/libraries/haskell/http-types {};
+
+  HUnit_1_2_0_3 = callPackage ../development/libraries/haskell/HUnit/1.2.0.3.nix {};
   HUnit_1_2_2_1 = callPackage ../development/libraries/haskell/HUnit/1.2.2.1.nix {};
+  HUnit_1_2_2_3 = callPackage ../development/libraries/haskell/HUnit/1.2.2.3.nix {};
+  HUnit_1_2_4_3 = callPackage ../development/libraries/haskell/HUnit/1.2.4.2.nix {};
+  HUnit = self.HUnit_1_2_0_3;
 
-  HUnit = callPackage ../development/libraries/haskell/HUnit {};
+  irc = callPackage ../development/libraries/haskell/irc {
+    parsec = self.parsec2;
+  };
 
   ivor = callPackage ../development/libraries/haskell/ivor {};
 
   jpeg = callPackage ../development/libraries/haskell/jpeg {};
 
-  json = callPackage ../development/libraries/haskell/json {};
+  JsContracts = callPackage ../development/libraries/haskell/JsContracts {
+    WebBits = self.WebBits_1_0;
+  };
 
-  json_0_3_6 = callPackage ../development/libraries/haskell/json/0.3.6.nix {};
+  json = callPackage ../development/libraries/haskell/json/default.nix {};
 
-  leksahServer = callPackage ../development/libraries/haskell/leksah/leksah-server.nix {
-    network = network_2_2_1_7;
-  };
+  jsonEnumerator = callPackage ../development/libraries/haskell/jsonEnumerator {};
+
+  jsonTypes = callPackage ../development/libraries/haskell/jsonTypes {};
+
+  languageJavascript = callPackage ../development/libraries/haskell/language-javascript {};
+
+  languageHaskellExtract = callPackage ../development/libraries/haskell/language-haskell-extract {};
+
+  largeword = callPackage ../development/libraries/haskell/largeword {};
+
+  leksahServer = callPackage ../development/libraries/haskell/leksah/leksah-server.nix {};
+
+  ListLike = callPackage ../development/libraries/haskell/ListLike {};
 
   ltk = callPackage ../development/libraries/haskell/ltk {};
 
-  maybench = callPackage ../development/libraries/haskell/maybench {};
+  logfloat = callPackage ../development/libraries/haskell/logfloat {};
 
   MaybeT = callPackage ../development/libraries/haskell/MaybeT {};
 
-  MaybeTTransformers = callPackage ../development/libraries/haskell/MaybeT-transformers {};
+  MaybeTTransformers = callPackage ../development/libraries/haskell/MaybeT-transformers {
+    monadsFd = self.monadsFd_0_0_0_1;
+  };
 
   MemoTrie = callPackage ../development/libraries/haskell/MemoTrie {};
 
-  MissingH = callPackage ../development/libraries/haskell/MissingH {
-    network = network_2_2_1_7;
-  };
+  mersenneRandomPure64 = callPackage ../development/libraries/haskell/mersenne-random-pure64 {};
+
+  mimeMail = callPackage ../development/libraries/haskell/mime-mail {};
+
+  MissingH = callPackage ../development/libraries/haskell/MissingH {};
 
   mmap = callPackage ../development/libraries/haskell/mmap {};
 
@@ -435,166 +834,262 @@ rec {
 
   MonadCatchIOTransformers = callPackage ../development/libraries/haskell/MonadCatchIO-transformers {};
 
-  monadlab = callPackage ../development/libraries/haskell/monadlab {};
+  monadControl = callPackage ../development/libraries/haskell/monad-control {};
+
+  monadLoops = callPackage ../development/libraries/haskell/monad-loops {};
+
+  monadPar = callPackage ../development/libraries/haskell/monad-par {};
+
+  monadPeel = callPackage ../development/libraries/haskell/monad-peel {};
+
+  MonadPrompt = callPackage ../development/libraries/haskell/MonadPrompt {};
 
   MonadRandom = callPackage ../development/libraries/haskell/MonadRandom {};
 
-  monadsFd = callPackage ../development/libraries/haskell/monads-fd {};
+  monadsFd_0_0_0_1 = callPackage ../development/libraries/haskell/monads-fd/0.0.0.1.nix {};
+  monadsFd_0_2_0_0 = callPackage ../development/libraries/haskell/monads-fd/0.2.0.0.nix {};
+  monadsFd = self.monadsFd_0_2_0_0;
 
   mpppc = callPackage ../development/libraries/haskell/mpppc {};
 
-  mtl = callPackage ../development/libraries/haskell/mtl {};
+  mtl_1_1_0_2 = callPackage ../development/libraries/haskell/mtl/1.1.0.2.nix {};
+  mtl_1_1_1_1 = callPackage ../development/libraries/haskell/mtl/1.1.1.1.nix {};
+  mtl_2_0_1_0 = callPackage ../development/libraries/haskell/mtl/2.0.1.0.nix {};
+  mtl1 = self.mtl_1_1_0_2;
+  mtl2 = self.mtl_2_0_1_0;
+  mtl  = self.mtl1;
+
+  mtlparse  = callPackage ../development/libraries/haskell/mtlparse {};
 
   multiplate = callPackage ../development/libraries/haskell/multiplate {};
 
-  multirec = callPackage ../development/libraries/haskell/multirec {};
+  multirec_0_5_1 = callPackage ../development/libraries/haskell/multirec/0.5.1.nix {};
+  multirec_0_6 = callPackage ../development/libraries/haskell/multirec/0.6.nix {};
+  multirec = self.multirec_0_6;
 
   multiset = callPackage ../development/libraries/haskell/multiset {};
 
+  murmurHash = callPackage ../development/libraries/haskell/murmur-hash {};
+
   mwcRandom = callPackage ../development/libraries/haskell/mwc-random {};
 
   neither = callPackage ../development/libraries/haskell/neither {};
 
+  network_2_2_1_4 = callPackage ../development/libraries/haskell/network/2.2.1.4.nix {};
   network_2_2_1_7 = callPackage ../development/libraries/haskell/network/2.2.1.7.nix {};
+  network_2_3_0_2 = callPackage ../development/libraries/haskell/network/2.3.0.2.nix {};
+  network_2_3_0_5 = callPackage ../development/libraries/haskell/network/2.3.0.5.nix {};
+  network = self.network_2_2_1_4;
 
-  network = callPackage ../development/libraries/haskell/network {};
+  nixosTypes = callPackage ../development/libraries/haskell/nixos-types {};
 
   nonNegative = callPackage ../development/libraries/haskell/non-negative {};
 
   numericPrelude = callPackage ../development/libraries/haskell/numeric-prelude {};
 
+  numtype = callPackage ../development/libraries/haskell/numtype {};
+
+  OneTuple = callPackage ../development/libraries/haskell/OneTuple {};
+
+  ObjectName = callPackage ../development/libraries/haskell/ObjectName {};
+
   OpenAL = callPackage ../development/libraries/haskell/OpenAL {
     inherit (pkgs) openal;
   };
 
+  OpenGL_2_2_1_1 = callPackage ../development/libraries/haskell/OpenGL/2.2.1.1.nix {
+    inherit (pkgs) mesa;
+    inherit (pkgs.xlibs) libX11;
+  };
   OpenGL_2_2_3_0 = callPackage ../development/libraries/haskell/OpenGL/2.2.3.0.nix {
     inherit (pkgs) mesa;
     inherit (pkgs.xlibs) libX11;
   };
-
-  OpenGL = callPackage ../development/libraries/haskell/OpenGL {
+  OpenGL_2_4_0_1 = callPackage ../development/libraries/haskell/OpenGL/2.4.0.1.nix {
     inherit (pkgs) mesa;
     inherit (pkgs.xlibs) libX11;
   };
+  OpenGL = self.OpenGL_2_2_1_1;
 
-  pandoc = callPackage ../development/libraries/haskell/pandoc {
-    HTTP = HTTP_4000_0_9;
-    network = network_2_2_1_7;
+  OpenGLRaw = callPackage ../development/libraries/haskell/OpenGLRaw {
+    GL = pkgs.mesa;
   };
 
-  pandoc_newtime = callPackage ../development/libraries/haskell/pandoc {
-    HTTP = HTTP_4000_0_9;
-    network = network_2_2_1_7;
-    random = random_newtime;
-  };
+  pathPieces = callPackage ../development/libraries/haskell/path-pieces {};
+
+  pandoc = callPackage ../development/libraries/haskell/pandoc/default.nix {};
+
+  pandocTypes = callPackage ../development/libraries/haskell/pandoc-types {};
 
   pango = callPackage ../development/libraries/haskell/pango {
     inherit (pkgs) pkgconfig glibc;
     inherit (pkgs.gtkLibs) pango;
   };
 
+  parallel_1_1_0_1 = callPackage ../development/libraries/haskell/parallel/1.1.0.1.nix {};
   parallel_2_2_0_1 = callPackage ../development/libraries/haskell/parallel/2.2.0.1.nix {};
-
-  parallel = callPackage ../development/libraries/haskell/parallel {};
+  parallel_3_1_0_1 = callPackage ../development/libraries/haskell/parallel/3.1.0.1.nix {};
+  parallel = self.parallel_1_1_0_1;
 
   parseargs = callPackage ../development/libraries/haskell/parseargs {};
 
-  parsec = callPackage ../development/libraries/haskell/parsec {};
-
-  parsec_3 = callPackage ../development/libraries/haskell/parsec/3.nix {};
+  parsec_2_1_0_1 = callPackage ../development/libraries/haskell/parsec/2.1.0.1.nix {};
+  parsec_3_1_1   = callPackage ../development/libraries/haskell/parsec/3.1.1.nix {};
+  parsec2 = self.parsec_2_1_0_1;
+  parsec3 = self.parsec_3_1_1;
+  parsec  = self.parsec2;
 
   parsimony = callPackage ../development/libraries/haskell/parsimony {};
 
+  pathtype = callPackage ../development/libraries/haskell/pathtype {};
+
   pcreLight = callPackage ../development/libraries/haskell/pcre-light {
     inherit (pkgs) pcre;
   };
 
   persistent = callPackage ../development/libraries/haskell/persistent {};
 
-  polyparse = callPackage ../development/libraries/haskell/polyparse {};
+  persistentTemplate = callPackage ../development/libraries/haskell/persistent-template {};
+
+  polyparse = callPackage ../development/libraries/haskell/polyparse/default.nix {};
+
+  pool = callPackage ../development/libraries/haskell/pool {};
 
   ppm = callPackage ../development/libraries/haskell/ppm {};
 
-  pureMD5 = callPackage ../development/libraries/haskell/pureMD5 {};
+  prettyShow = callPackage ../development/libraries/haskell/pretty-show {};
 
   primitive = callPackage ../development/libraries/haskell/primitive {};
 
   processLeksah = callPackage ../development/libraries/haskell/leksah/process-leksah.nix {};
 
-  QuickCheck  = QuickCheck_1;
+  PSQueue = callPackage ../development/libraries/haskell/PSQueue {};
+
+  pureMD5 = callPackage ../development/libraries/haskell/pureMD5 {};
 
-  QuickCheck_1 = callPackage ../development/libraries/haskell/QuickCheck {};
+  pwstoreFast = callPackage ../development/libraries/haskell/pwstore-fast {};
 
+  QuickCheck_1_2_0_0 = callPackage ../development/libraries/haskell/QuickCheck/1.2.0.0.nix {};
+  QuickCheck_1_2_0_1 = callPackage ../development/libraries/haskell/QuickCheck/1.2.0.1.nix {};
   QuickCheck_2_1_0_3 = callPackage ../development/libraries/haskell/QuickCheck/2.1.0.3.nix {};
-
-  QuickCheck_2 = callPackage ../development/libraries/haskell/QuickCheck/QuickCheck-2.nix {};
+  QuickCheck_2_1_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.1.1.1.nix {};
+  QuickCheck_2_4_0_1 = callPackage ../development/libraries/haskell/QuickCheck/2.4.0.1.nix {};
+  QuickCheck_2_4_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.4.1.1.nix {};
+  QuickCheck1 = self.QuickCheck_1_2_0_1;
+  QuickCheck2 = self.QuickCheck_2_4_1_1;
+  QuickCheck  = self.QuickCheck2;
 
   RangedSets = callPackage ../development/libraries/haskell/Ranged-sets {};
 
-  random_newtime = callPackage ../development/libraries/haskell/random {
-    time = time_1_2_0_3;
+  random_1_0_0_2_newtime = callPackage ../development/libraries/haskell/random/1.0.0.2.nix {
+    time = self.time_1_2_0_3;
   };
+  random_1_0_0_3 = callPackage ../development/libraries/haskell/random/1.0.0.3.nix {};
+  random = null; # core package until ghc-7.2.1
+  random_newtime = self.random_1_0_0_2_newtime;
+
+  randomFu = callPackage ../development/libraries/haskell/random-fu {};
+
+  randomSource = callPackage ../development/libraries/haskell/random-source {};
+
+  randomShuffle = callPackage ../development/libraries/haskell/random-shuffle {};
+
+  ranges = callPackage ../development/libraries/haskell/ranges {};
+
+  rvar = callPackage ../development/libraries/haskell/rvar {};
 
   readline = callPackage ../development/libraries/haskell/readline {
     inherit (pkgs) readline ncurses;
   };
 
-  recaptcha = callPackage ../development/libraries/haskell/recaptcha {
-    HTTP = HTTP_4000_0_9;
-    network = network_2_2_1_7;
+  recaptcha = callPackage ../development/libraries/haskell/recaptcha {};
+
+  regexBase_0_72_0_2 = callPackage ../development/libraries/haskell/regex-base/0.72.0.2.nix {};
+  regexBase_0_93_1   = callPackage ../development/libraries/haskell/regex-base/0.93.1.nix   {};
+  regexBase_0_93_2   = callPackage ../development/libraries/haskell/regex-base/0.93.2.nix   {};
+  regexBase = self.regexBase_0_72_0_2;
+
+  regexCompat_0_71_0_1 = callPackage ../development/libraries/haskell/regex-compat/0.71.0.1.nix {};
+  regexCompat_0_92     = callPackage ../development/libraries/haskell/regex-compat/0.92.nix     {};
+  regexCompat_0_93_1   = callPackage ../development/libraries/haskell/regex-compat/0.93.1.nix   {};
+  regexCompat_0_95_1   = callPackage ../development/libraries/haskell/regex-compat/0.95.1.nix   {
+    regexPosix = self.regexPosix_0_95_1;
   };
+  regexCompat = self.regexCompat_0_71_0_1;
 
-  regexBase_0_93_1 = callPackage ../development/libraries/haskell/regex-base/0.93.1.nix {};
+  regexPosix_0_72_0_3 = callPackage ../development/libraries/haskell/regex-posix/0.72.0.3.nix {};
+  regexPosix_0_94_1   = callPackage ../development/libraries/haskell/regex-posix/0.94.1.nix   {};
+  regexPosix_0_94_2   = callPackage ../development/libraries/haskell/regex-posix/0.94.2.nix   {};
+  regexPosix_0_94_4   = callPackage ../development/libraries/haskell/regex-posix/0.94.4.nix   {};
+  regexPosix_0_95_1   = callPackage ../development/libraries/haskell/regex-posix/0.95.1.nix   {};
+  regexPosix = self.regexPosix_0_72_0_3;
 
-  regexBase_0_93_2 = callPackage ../development/libraries/haskell/regex-base/0.93.2.nix {};
+  regexTDFA = callPackage ../development/libraries/haskell/regex-tdfa {};
+  regexTdfa = self.regexTDFA;
 
-  regexBase = callPackage ../development/libraries/haskell/regex-base {};
+  regexPCRE = callPackage ../development/libraries/haskell/regex-pcre {};
+  regexPcre = self.regexPCRE;
 
-  regexCompat_0_92 = callPackage ../development/libraries/haskell/regex-compat/0.92.nix {
-    regexBase = regexBase_0_93_1;
-    regexPosix = regexPosix_0_94_1;
-  };
+  regexPcreBuiltin = callPackage ../development/libraries/haskell/regex-pcre-builtin {};
 
-  regexCompat_0_93_1 = callPackage ../development/libraries/haskell/regex-compat/0.93.1.nix {
-    regexBase = regexBase_0_93_2;
-    regexPosix = regexPosix_0_94_2;
-  };
+  regexpr = callPackage ../development/libraries/haskell/regexpr {};
 
-  regexCompat = callPackage ../development/libraries/haskell/regex-compat {};
+  regular = callPackage ../development/libraries/haskell/regular {};
 
-  regexPosix_0_94_1 = callPackage ../development/libraries/haskell/regex-posix/0.94.1.nix {
-    regexBase = regexBase_0_93_1;
-  };
+  repa = callPackage ../development/libraries/haskell/repa {};
 
-  regexPosix_0_94_2 = callPackage ../development/libraries/haskell/regex-posix/0.94.2.nix {
-    regexBase = regexBase_0_93_2;
-  };
+  repaAlgorithms = callPackage ../development/libraries/haskell/repa-algorithms {};
 
-  regexPosix = callPackage ../development/libraries/haskell/regex-posix {};
+  repaBytestring = callPackage ../development/libraries/haskell/repa-bytestring {};
 
-  regexTDFA = callPackage ../development/libraries/haskell/regex-tdfa {
-    regexBase = regexBase_0_93_2;
-  };
+  repaExamples = callPackage ../development/libraries/haskell/repa-examples {};
 
-  regular = callPackage ../development/libraries/haskell/regular {};
+  repaIo = callPackage ../development/libraries/haskell/repa-io {};
+
+  RSA = callPackage ../development/libraries/haskell/RSA {};
 
   safe = callPackage ../development/libraries/haskell/safe {};
 
-  salvia = callPackage ../development/libraries/haskell/salvia {
-    network = network_2_2_1_7;
+  salvia = callPackage ../development/libraries/haskell/salvia {};
+
+  salviaProtocol = callPackage ../development/libraries/haskell/salvia-protocol {
+    parsec = self.parsec2;
   };
 
-  salviaProtocol = callPackage ../development/libraries/haskell/salvia-protocol {};
+  sendfile = callPackage ../development/libraries/haskell/sendfile {};
+
+  semigroups = callPackage ../development/libraries/haskell/semigroups {};
 
-  scion = callPackage ../development/libraries/haskell/scion {};
+  simpleSendfile = callPackage ../development/libraries/haskell/simple-sendfile {};
 
-  sendfile = callPackage ../development/libraries/haskell/sendfile {
-    network = network_2_2_1_7;
+  smallcheck = callPackage ../development/libraries/haskell/smallcheck {};
+
+  snapCore = callPackage ../development/libraries/haskell/snap/core.nix {
+    caseInsensitive = self.caseInsensitive_0_3;
+  };
+
+  snapServer = callPackage ../development/libraries/haskell/snap/server.nix {
+    vectorAlgorithms = self.vectorAlgorithms_0_4;
+    caseInsensitive = self.caseInsensitive_0_3;
   };
 
+  stateref = callPackage ../development/libraries/haskell/stateref {};
+
+  StateVar = callPackage ../development/libraries/haskell/StateVar {};
+
   statistics = callPackage ../development/libraries/haskell/statistics {};
 
-  syb = callPackage ../development/libraries/haskell/syb {};
+  streamproc = callPackage ../development/libraries/haskell/streamproc {};
+
+  strict = callPackage ../development/libraries/haskell/strict {};
+
+  syb_0_2_2 = callPackage ../development/libraries/haskell/syb/0.2.2.nix {};
+  syb_0_3   = callPackage ../development/libraries/haskell/syb/0.3.nix {};
+  syb_0_3_3 = callPackage ../development/libraries/haskell/syb/0.3.3.nix {};
+  syb02     = self.syb_0_2_2;
+  syb03     = self.syb_0_3;
+  syb       = null; # by default, we assume that syb ships with GHC, which is
+                    # true for the older GHC versions
 
   sybWithClass = callPackage ../development/libraries/haskell/syb/syb-with-class.nix {};
 
@@ -624,45 +1119,81 @@ rec {
 
   ShellacReadline = callPackage ../development/libraries/haskell/Shellac/Shellac-readline.nix {};
 
-  SMTPClient = callPackage ../development/libraries/haskell/SMTPClient {
-    network = network_2_2_1_7;
-  };
+  SMTPClient = callPackage ../development/libraries/haskell/SMTPClient {};
 
   split = callPackage ../development/libraries/haskell/split {};
 
   stbImage = callPackage ../development/libraries/haskell/stb-image {};
 
-  stm = callPackage ../development/libraries/haskell/stm {};
-
+  stm_2_1_1_2 = callPackage ../development/libraries/haskell/stm/2.1.1.2.nix {};
   stm_2_1_2_1 = callPackage ../development/libraries/haskell/stm/2.1.2.1.nix {};
+  stm_2_2_0_1 = callPackage ../development/libraries/haskell/stm/2.2.0.1.nix {};
+  stm = self.stm_2_1_1_2;
 
   storableComplex = callPackage ../development/libraries/haskell/storable-complex {};
 
+  storableRecord = callPackage ../development/libraries/haskell/storable-record {};
+
   strictConcurrency = callPackage ../development/libraries/haskell/strictConcurrency {};
 
+  svgcairo = callPackage ../development/libraries/haskell/svgcairo {};
+
+  tabular = callPackage ../development/libraries/haskell/tabular {};
+
+  tagged = callPackage ../development/libraries/haskell/tagged {};
+
+  tagsoup = callPackage ../development/libraries/haskell/tagsoup {};
+
+  Tensor = callPackage ../development/libraries/haskell/Tensor {};
+
   terminfo = callPackage ../development/libraries/haskell/terminfo {
-    inherit extensibleExceptions /* only required for <= ghc6102  ?*/;
     inherit (pkgs) ncurses;
   };
 
-  testpack = callPackage ../development/libraries/haskell/testpack {};
+  testFramework = callPackage ../development/libraries/haskell/test-framework {};
+
+  testFrameworkHunit = callPackage ../development/libraries/haskell/test-framework-hunit {};
 
-  texmath = callPackage ../development/libraries/haskell/texmath {
-    cgi = cgi_3001_1_7_2;
+  testFrameworkQuickcheck = callPackage ../development/libraries/haskell/test-framework-quickcheck {
+    QuickCheck = self.QuickCheck1;
   };
 
-  text = callPackage ../development/libraries/haskell/text {};
+  testFrameworkQuickcheck2 = callPackage ../development/libraries/haskell/test-framework-quickcheck2 {};
 
-  threadmanager = callPackage ../development/libraries/haskell/threadmanager {};
+  testFrameworkTh = callPackage ../development/libraries/haskell/test-framework-th {};
 
-  /* time is Haskell Platform default, other time versions are more recent but incompatible */
-  time = callPackage ../development/libraries/haskell/time {};
+  testpack = callPackage ../development/libraries/haskell/testpack {};
 
-  time_1_1_3 = callPackage ../development/libraries/haskell/time/1.1.3.nix {};
+  texmath_0_4 = callPackage ../development/libraries/haskell/texmath/0.4.nix {};
+  texmath_0_5_0_1 = callPackage ../development/libraries/haskell/texmath/0.5.0.1.nix {};
+  texmath = self.texmath_0_5_0_1;
 
+  text_0_11_0_5 = callPackage ../development/libraries/haskell/text/0.11.0.5.nix {};
+  text_0_11_0_6 = callPackage ../development/libraries/haskell/text/0.11.0.6.nix {};
+  text_0_11_1_5 = callPackage ../development/libraries/haskell/text/0.11.1.5.nix {};
+  text = self.text_0_11_0_5;
+
+  thLift = callPackage ../development/libraries/haskell/th-lift {};
+
+  threadmanager = callPackage ../development/libraries/haskell/threadmanager {};
+
+  time_1_1_2_4 = callPackage ../development/libraries/haskell/time/1.1.2.4.nix {};
+  time_1_1_3   = callPackage ../development/libraries/haskell/time/1.1.3.nix {};
   time_1_2_0_3 = callPackage ../development/libraries/haskell/time/1.2.0.3.nix {};
+  time_1_2_0_5 = callPackage ../development/libraries/haskell/time/1.2.0.5.nix {};
+  time_1_3 = callPackage ../development/libraries/haskell/time/1.3.nix {};
+  # time is in the core package set. It should only be necessary to
+  # pass it explicitly in rare circumstances.
+  time = null;
+
+  tls = callPackage ../development/libraries/haskell/tls {};
+
+  tlsExtra = callPackage ../development/libraries/haskell/tls-extra {};
+
+  transformers_0_2_2_0 = callPackage ../development/libraries/haskell/transformers/0.2.2.0.nix {};
+  transformers = self.transformers_0_2_2_0;
 
-  transformers = callPackage ../development/libraries/haskell/transformers {};
+  tuple = callPackage ../development/libraries/haskell/tuple {};
 
   uniplate = callPackage ../development/libraries/haskell/uniplate {};
 
@@ -670,8 +1201,12 @@ rec {
 
   unixCompat = callPackage ../development/libraries/haskell/unix-compat {};
 
+  unorderedContainers = callPackage ../development/libraries/haskell/unordered-containers {};
+
   url = callPackage ../development/libraries/haskell/url {};
 
+  utf8Light = callPackage ../development/libraries/haskell/utf8-light {};
+
   utf8String = callPackage ../development/libraries/haskell/utf8-string {};
 
   utilityHt = callPackage ../development/libraries/haskell/utility-ht {};
@@ -681,7 +1216,7 @@ rec {
   uuParsingLib = callPackage ../development/libraries/haskell/uu-parsinglib {};
 
   vacuum = callPackage ../development/libraries/haskell/vacuum {
-    ghcPaths = ghcPaths_0_1_0_6;
+    ghcPaths = self.ghcPaths_0_1_0_6;
   };
 
   vacuumCairo = callPackage ../development/libraries/haskell/vacuum-cairo {};
@@ -690,35 +1225,41 @@ rec {
 
   vector = callPackage ../development/libraries/haskell/vector {};
 
-  vectorAlgorithms = callPackage ../development/libraries/haskell/vector-algorithms {};
+  vectorAlgorithms_0_4 = callPackage ../development/libraries/haskell/vector-algorithms/0.4.nix {};
+  vectorAlgorithms_0_5_2 = callPackage ../development/libraries/haskell/vector-algorithms/0.5.2.nix {};
+  vectorAlgorithms = self.vectorAlgorithms_0_5_2;
 
   vectorSpace = callPackage ../development/libraries/haskell/vector-space {};
 
-  vty = callPackage ../development/libraries/haskell/vty {
-    parallel = parallel_2_2_0_1;
-  };
+  vty_4_6_0_4 = callPackage ../development/libraries/haskell/vty/4.6.0.4.nix {};
+  vty_4_7_0_4 = callPackage ../development/libraries/haskell/vty/4.7.0.4.nix {};
+  vty = self.vty_4_7_0_4;
 
-  webRoutes = callPackage ../development/libraries/haskell/web-routes {
-    network = network_2_2_1_7;
-  };
+  wai = callPackage ../development/libraries/haskell/wai {};
 
-  webRoutesQuasi = callPackage ../development/libraries/haskell/web-routes-quasi {};
+  waiAppStatic = callPackage ../development/libraries/haskell/wai-app-static {};
 
-  WebServer = callPackage ../development/libraries/haskell/WebServer {
-    inherit (pkgs) fetchgit;
-  };
+  waiExtra = callPackage ../development/libraries/haskell/wai-extra {};
 
-  WebServerExtras = callPackage ../development/libraries/haskell/WebServer-Extras {
-    json = json_0_3_6;
-    inherit (pkgs) fetchgit;
+  warp = callPackage ../development/libraries/haskell/warp {};
+
+  WebBits = callPackage ../development/libraries/haskell/WebBits {
+    parsec = self.parsec2;
   };
 
-  CouchDB = callPackage ../development/libraries/haskell/CouchDB {
-    HTTP = HTTP_3001;
-    json = json_0_3_6;
+  WebBits_1_0 = callPackage ../development/libraries/haskell/WebBits/1.0.nix {
+    parsec = self.parsec2;
   };
 
-  base64string = callPackage ../development/libraries/haskell/base64-string {};
+  WebBitsHtml = callPackage ../development/libraries/haskell/WebBits-Html {};
+
+  webRoutes = callPackage ../development/libraries/haskell/web-routes {};
+
+  webRoutesQuasi = callPackage ../development/libraries/haskell/web-routes-quasi {};
+
+  CouchDB = callPackage ../development/libraries/haskell/CouchDB {};
+
+  wlPprintText = callPackage ../development/libraries/haskell/wl-pprint-text {};
 
   wx = callPackage ../development/libraries/haskell/wxHaskell/wx.nix {};
 
@@ -728,27 +1269,54 @@ rec {
     inherit (pkgs.xlibs) libX11;
   };
 
+  wxdirect = callPackage ../development/libraries/haskell/wxHaskell/wxdirect.nix {};
+
   X11 = callPackage ../development/libraries/haskell/X11 {
     inherit (pkgs.xlibs) libX11 libXinerama libXext;
     xineramaSupport = true;
   };
 
   X11Xft = callPackage ../development/libraries/haskell/X11-xft {
-    inherit (pkgs) pkgconfig;
+    inherit (pkgs) pkgconfig freetype fontconfig;
     inherit (pkgs.xlibs) libXft;
   };
 
-  xhtml = callPackage ../development/libraries/haskell/xhtml {};
+  xhtml_3000_2_0_1 = callPackage ../development/libraries/haskell/xhtml/3000.2.0.1.nix {};
+  xhtml = self.xhtml_3000_2_0_1;
 
   xml = callPackage ../development/libraries/haskell/xml {};
 
+  xmlEnumerator = callPackage ../development/libraries/haskell/xml-enumerator {};
+
+  xmlTypes = callPackage ../development/libraries/haskell/xml-types {};
+
+  xssSanitize = callPackage ../development/libraries/haskell/xss-sanitize {};
+
+  yap = callPackage ../development/libraries/haskell/yap {};
+
+  yesod = callPackage ../development/libraries/haskell/yesod {};
+
+  yesodAuth = callPackage ../development/libraries/haskell/yesod-auth {};
+
+  yesodCore = callPackage ../development/libraries/haskell/yesod-core {};
+
+  yesodForm = callPackage ../development/libraries/haskell/yesod-form {};
+
+  yesodJson = callPackage ../development/libraries/haskell/yesod-json {};
+
+  yesodPersistent = callPackage ../development/libraries/haskell/yesod-persistent {};
+
+  yesodStatic = callPackage ../development/libraries/haskell/yesod-static {};
+
   yst = callPackage ../development/libraries/haskell/yst {};
 
   zipArchive = callPackage ../development/libraries/haskell/zip-archive {};
 
-  zipper = callPackage ../development/libraries/haskell/zipper {};
+  zipper = callPackage ../development/libraries/haskell/zipper {
+    multirec = self.multirec_0_5_1;
+  };
 
-  zlib = callPackage ../development/libraries/haskell/zlib {
+  zlib_0_5_0_0 = callPackage ../development/libraries/haskell/zlib/0.5.0.0.nix {
     inherit (pkgs) zlib;
   };
 
@@ -756,84 +1324,95 @@ rec {
     inherit (pkgs) zlib;
   };
 
+  zlib_0_5_3_1 = callPackage ../development/libraries/haskell/zlib/0.5.3.1.nix {
+    inherit (pkgs) zlib;
+  };
+
+  zlib = self.zlib_0_5_0_0;
+
+  zlibBindings = callPackage ../development/libraries/haskell/zlib-bindings {};
+
+  zlibEnum = callPackage ../development/libraries/haskell/zlib-enum {};
+
   # Compilers.
 
+  AgdaExecutable = callPackage ../development/compilers/Agda-executable {};
+
   ehc = callPackage ../development/compilers/ehc {
     inherit (pkgs) fetchsvn stdenv coreutils glibc m4 libtool llvm;
   };
 
   epic = callPackage ../development/compilers/epic {};
 
+  flapjax = callPackage ../development/compilers/flapjax {
+    WebBits = self.WebBits_1_0;
+  };
+
   helium = callPackage ../development/compilers/helium {};
 
   idris = callPackage ../development/compilers/idris {};
 
-  # Development tools.
+  pakcs = callPackage ../development/compilers/pakcs {
+    syb = self.syb02;
+  };
 
-  alex = callPackage ../development/tools/parsing/alex {};
+  # Development tools.
 
+  alex_2_3_1 = callPackage ../development/tools/parsing/alex/2.3.1.nix {};
   alex_2_3_2 = callPackage ../development/tools/parsing/alex/2.3.2.nix {};
-
   alex_2_3_3 = callPackage ../development/tools/parsing/alex/2.3.3.nix {};
+  alex_2_3_5 = callPackage ../development/tools/parsing/alex/2.3.5.nix {};
+  alex_3_0_1 = callPackage ../development/tools/parsing/alex/3.0.1.nix {};
+  alex = self.alex_2_3_1;
 
-  cpphs = callPackage ../development/tools/misc/cpphs {};
+  alexMeta = callPackage ../development/tools/haskell/alex-meta {};
 
-  frown = callPackage ../development/tools/parsing/frown {};
+  BNFC = callPackage ../development/tools/haskell/BNFC {};
 
-  haddock = haddock_2_7_2_P;
+  BNFCMeta = callPackage ../development/tools/haskell/BNFC-meta {};
 
-  haddock_2_4_2 = callPackage ../development/tools/documentation/haddock/haddock-2.4.2.nix {};
+  cpphs = callPackage ../development/tools/misc/cpphs {};
 
-  haddock_2_7_2 = callPackage ../development/tools/documentation/haddock/haddock-2.7.2.nix {
-    alex = alex_2_3_2;
-    happy = happy_1_18_4;
-    ghcPaths = ghcPaths_0_1_0_6;
-  };
+  frown = callPackage ../development/tools/parsing/frown {};
 
-  haddock_2_7_2_P = callPackage ../development/tools/documentation/haddock/haddock-2.7.2.nix {
-    alex = alex_2_3_3;
-    happy = happy_1_18_5;
-    ghcPaths = ghcPaths_0_1_0_6;
+  haddock_2_4_2 = callPackage ../development/tools/documentation/haddock/2.4.2.nix {};
+  haddock_2_7_2 = callPackage ../development/tools/documentation/haddock/2.7.2.nix {
+    ghcPaths = self.ghcPaths_0_1_0_6;
   };
+  haddock_2_9_2 = callPackage ../development/tools/documentation/haddock/2.9.2.nix {
+    ghcPaths = self.ghcPaths_0_1_0_6;
+  };
+  haddock = self.haddock_2_7_2;
 
-  happy = happy_1_18_4;
-
-  happy_1_17 = callPackage ../development/tools/parsing/happy/happy-1.17.nix {};
-
-  happy_1_18_4 = callPackage ../development/tools/parsing/happy/happy-1.18.4.nix {};
+  happy_1_18_4 = callPackage ../development/tools/parsing/happy/1.18.4.nix {};
+  happy_1_18_5 = callPackage ../development/tools/parsing/happy/1.18.5.nix {};
+  happy_1_18_6 = callPackage ../development/tools/parsing/happy/1.18.6.nix {};
+  happy = self.happy_1_18_4;
 
-  happy_1_18_5 = callPackage ../development/tools/parsing/happy/happy-1.18.5.nix {};
+  happyMeta = callPackage ../development/tools/haskell/happy-meta {};
 
-  HaRe = callPackage ../development/tools/haskell/HaRe {
-    network = network_2_2_1_7;
-  };
+  HaRe = callPackage ../development/tools/haskell/HaRe {};
 
   hlint = callPackage ../development/tools/haskell/hlint {};
 
-  hslogger = callPackage ../development/tools/haskell/hslogger {
-    network = network_2_2_1_7;
-  };
-
-  mkcabal = callPackage ../development/tools/haskell/mkcabal {};
+  hslogger = callPackage ../development/tools/haskell/hslogger {};
 
   tar = callPackage ../development/tools/haskell/tar {};
 
   threadscope = callPackage ../development/tools/haskell/threadscope {};
 
+  uuagcBootstrap = callPackage ../development/tools/haskell/uuagc/bootstrap.nix {};
+  uuagcCabal = callPackage ../development/tools/haskell/uuagc/cabal.nix {};
   uuagc = callPackage ../development/tools/haskell/uuagc {};
 
   # Applications.
 
-  darcs = callPackage ../applications/version-management/darcs/darcs-2.nix {
-    zlib = zlib_0_5_2_0;
+  darcs = callPackage ../applications/version-management/darcs {
     inherit (pkgs) curl;
+    parsec = self.parsec2;
   };
 
-  leksah = callPackage ../applications/editors/leksah {
-    network = network_2_2_1_7;
-    regexBase = regexBase_0_93_2;
-    inherit (pkgs) makeWrapper;
-  };
+  leksah = callPackage ../applications/editors/leksah {};
 
   xmobar = callPackage ../applications/misc/xmobar {};
 
@@ -843,25 +1422,19 @@ rec {
 
   xmonadContrib = callPackage ../applications/window-managers/xmonad/xmonad-contrib.nix {};
 
-  # Tools.
+  xmonadExtras = callPackage ../applications/window-managers/xmonad/xmonad-extras.nix {};
 
-  cabalInstall_0_8_2 = callPackage ../tools/package-management/cabal-install/0.8.2.nix {
-    HTTP = HTTP_4000_0_9;
-    network = network_2_2_1_7;
-    zlib = zlib_0_5_2_0;
-  };
+  # Tools.
 
-  cabalInstall_0_8_0 = callPackage ../tools/package-management/cabal-install/0.8.0.nix {
-    HTTP = HTTP_4000_0_9;
-    network = network_2_2_1_7;
-    zlib = zlib_0_5_2_0;
-  };
+  cabal2nix = callPackage ../development/tools/haskell/cabal2nix {};
 
-  cabalInstall = callPackage ../tools/package-management/cabal-install {};
+  cabalInstall_0_6_2  = callPackage ../tools/package-management/cabal-install/0.6.2.nix  {};
+  cabalInstall_0_8_0  = callPackage ../tools/package-management/cabal-install/0.8.0.nix  {};
+  cabalInstall_0_8_2  = callPackage ../tools/package-management/cabal-install/0.8.2.nix  {};
+  cabalInstall_0_10_2 = callPackage ../tools/package-management/cabal-install/0.10.2.nix {};
+  cabalInstall = self.cabalInstall_0_6_2;
 
-  lhs2tex = callPackage ../tools/typesetting/lhs2tex {
-    inherit (pkgs) tetex polytable;
-  };
+  lhs2tex = callPackage ../tools/typesetting/lhs2tex {};
 
   myhasktags = callPackage ../tools/misc/myhasktags {};
 
@@ -875,4 +1448,4 @@ rec {
 
 };
 
-in result
+in result.final
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 9655bc2d8bf8..f83a24abac25 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -9,7 +9,18 @@
 
 rec {
 
-  inherit (pkgs) buildPerlPackage fetchurl stdenv perl;
+  inherit (pkgs) buildPerlPackage fetchurl stdenv perl fetchsvn;
+
+  # Helper functions for packages that use Module::Build to build.
+  buildModule = { buildInputs ? [], ... } @ args:
+    buildPerlPackage (args // {
+      buildInputs = buildInputs ++ [ ModuleBuild ];
+      preConfigure = "touch Makefile.PL";
+      buildPhase = "perl Build.PL --prefix=$out";
+      installPhase = "./Build install";
+      checkPhase = "./Build test";
+    });
+
 
   ack = buildPerlPackage rec {
     name = "ack-1.92";
@@ -46,6 +57,14 @@ rec {
     buildInputs = [pkgs.unzip];
   };
 
+  aliased = buildPerlPackage rec {
+    name = "aliased-0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/${name}.tar.gz";
+      sha256 = "1iqcbfv600m31rfvl7r9ckr0hh0vny63q7a6yyhfrh4ppcgj4ig4";
+    };
+  };
+
   AnyMoose = buildPerlPackage rec {
     name = "Any-Moose-0.10";
     src = fetchurl {
@@ -88,6 +107,15 @@ rec {
     };
   };
 
+  AuthenHtpasswd = buildPerlPackage rec {
+    name = "Authen-Htpasswd-0.171";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Authen/${name}.tar.gz";
+      sha256 = "0rw06hwpxg388d26l0jvirczx304f768ijvc20l4b2ll7xzg9ymm";
+    };
+    propagatedBuildInputs = [ ClassAccessor CryptPasswdMD5 DigestSHA1 IOLockedFile ];
+  };
+
   AuthenSASL = buildPerlPackage rec {
     name = "Authen-SASL-2.1401";
     src = fetchurl {
@@ -175,13 +203,21 @@ rec {
     };
   };
 
-  CacheFastMmap = buildPerlPackage {
-    name = "Cache-FastMmap-1.28";
+  CacheCache = buildPerlPackage rec {
+    name = "Cache-Cache-1.06";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.28.tar.gz;
-      sha256 = "1m851bz5025wy24mzsi1i8hdyg8bm7lszx9rnn47llsv6hb9v0da";
+      url = "mirror://cpan/modules/by-module/Cache/${name}.tar.gz";
+      sha256 = "14s75bsm5irisp8wkbwl3ycw160srr1rks7x9jcbvcxh79wr6gbh";
+    };
+    propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
+  };
+
+  CacheFastMmap = buildPerlPackage rec {
+    name = "Cache-FastMmap-1.39";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Cache/${name}.tar.gz";
+      sha256 = "0dq93pz6lqya26pzgpgfa7c7i67h8rg0ylshzmvqzq4brqjpbqsk";
     };
-    doCheck = false;
   };
 
   cam_pdf = buildPerlPackage rec {
@@ -205,10 +241,10 @@ rec {
   };
 
   CaptureTiny = buildPerlPackage rec {
-    name = "Capture-Tiny-0.06";
+    name = "Capture-Tiny-0.11";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/${name}.tar.gz";
-      sha256 = "0qg74sfqc3cj8g21nsbif413c8vzvvs49v4vnqbw1410sa4fxsaw";
+      sha256 = "09rhfjgryvfap2v6ym7ywl130r3q8a1p2rq70l1jv415qhj0194c";
     };
   };
 
@@ -239,12 +275,24 @@ rec {
   };
 
   CatalystActionRenderView = buildPerlPackage rec {
-    name = "Catalyst-Action-RenderView-0.11";
+    name = "Catalyst-Action-RenderView-0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "1qmjygjb5rzfanvw75czambfk4xmp1bc225mshzc6sddn7fc226s";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "0j1rrld13cjk7ks92b5hv3xw4rfm2lvmksb4rlzd8mx0a0wj0rc5";
     };
-    propagatedBuildInputs = [CatalystRuntime HTTPRequestAsCGI DataVisitor];
+    propagatedBuildInputs =
+      [ CatalystRuntime HTTPRequestAsCGI DataVisitor MROCompat ];
+  };
+
+  CatalystAuthenticationStoreHtpasswd = buildPerlPackage rec {
+    name = "Catalyst-Authentication-Store-Htpasswd-1.003";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "09mn0wjwfvnfi28y47g816nx50zdpvwvbxp0nrpsap0ir1m80wi3";
+    };
+    buildInputs = [ TestWWWMechanizeCatalyst TestUseOk ];
+    propagatedBuildInputs =
+      [ CatalystPluginAuthentication ClassAccessor CryptPasswdMD5 AuthenHtpasswd ];
   };
 
   CatalystAuthenticationStoreDBIxClass = buildPerlPackage rec {
@@ -283,17 +331,18 @@ rec {
   };
 
   CatalystDevel = buildPerlPackage rec {
-    name = "Catalyst-Devel-1.21";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "0akqzyagx3fzngmnc880wk0z2spnmzs32s2mmpskkrq2yc7spyjn";
-    };
-    propagatedBuildInputs = [
-      CatalystRuntime CatalystActionRenderView
-      CatalystPluginStaticSimple CatalystPluginConfigLoader PathClass
-      TemplateToolkit ClassAccessor ConfigGeneral FileCopyRecursive
-      Parent FileChangeNotify
-    ];
+    name = "Catalyst-Devel-1.33";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "0g41rglw460y2n2xbysjbsjb56jkkz2m5jhap2nw3a5jby1ymp07";
+    };
+    buildInputs = [ TestFatal TestMore ];
+    propagatedBuildInputs =
+      [ CatalystRuntime CatalystActionRenderView
+        CatalystPluginStaticSimple CatalystPluginConfigLoader
+        ClassAccessor ConfigGeneral FileChangeNotify FileCopyRecursive
+        FileShareDir Parent PathClass TemplateToolkit YAMLTiny
+      ];
     CATALYST_DEVEL_NO_510_CHECK = 1; # bug in Perl 5.10.0
   };
 
@@ -325,42 +374,48 @@ rec {
   };
 
   CatalystModelDBICSchema = buildPerlPackage rec {
-    name = "Catalyst-Model-DBIC-Schema-0.31";
+    name = "Catalyst-Model-DBIC-Schema-0.54";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
-      sha256 = "136m988xkxbjzaj4jix7arb9l65sx6bahbw7v1ma6m4ifpgpj5fq";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "19iasq94nph33vz4jrk5x6cqd9ivq0db867s524faba8avrrlxz9";
     };
-    propagatedBuildInputs = [
-      CatalystRuntime CatalystDevel DBIxClass UNIVERSALrequire
-      ClassDataAccessor DBIxClassSchemaLoader CatalystXComponentTraits
-      TieIxhash
-    ];
+    buildInputs = [ TestMore TestException TestRequires DBDSQLite ];
+    propagatedBuildInputs = 
+      [ DBIxClass CatalystRuntime CatalystXComponentTraits Moose MooseXTypes
+        NamespaceAutoclean CarpClan ListMoreUtils TieIxHash TryTiny
+        CatalystDevel DBIxClassSchemaLoader MooseXNonMoose
+        NamespaceClean HashMerge DBIxClassCursorCached
+      ];
   };
 
   CatalystRuntime = buildPerlPackage rec{
-    name = "Catalyst-Runtime-5.80012";
+    name = "Catalyst-Runtime-5.80033";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "1kafxm92b5q2chdrcwqk73gdh3dbvfqa2718sms0md637vqczpip";
-    };
-    propagatedBuildInputs = [
-      LWP ClassAccessor ClassDataInheritable ClassInspector
-      CGISimple DataDump FileModified HTTPBody HTTPRequestAsCGI
-      PathClass TextSimpleTable TreeSimple TreeSimpleVisitorFactory
-      SubExporter MROCompat TestMockObject ClassMOP Moose
-      NamespaceClean ScopeUpper MooseXEmulateClassAccessorFast
-      ClassC3 ClassC3AdoptNEXT NamespaceAutoclean MooseXMethodAttributes
-      StringRewritePrefix ModulePluggable
-    ];
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "1q542lrnvc0a11923awhk51fqzzxfa8zdkbch7z07dl8y81mwhl2";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs =
+      [ ClassDataInheritable ListMoreUtils NamespaceAutoclean NamespaceClean
+        BHooksEndOfScope MooseXEmulateClassAccessorFast ClassMOP
+        Moose MooseXMethodAttributes MooseXRoleWithOverloading
+        ClassC3AdoptNEXT CGISimple DataDump DataOptList
+        HTMLParser HTTPBody HTTPRequestAsCGI
+        LWP ModulePluggable PathClass SubExporter
+        TextSimpleTable TimeHiRes TreeSimple TreeSimpleVisitorFactory
+        URI TaskWeaken /* TextBalanced */ MROCompat MooseXTypes
+        MooseXGetopt MooseXTypesCommon StringRewritePrefix
+      ];
   };
 
   CatalystPluginAuthentication = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Authentication-0.10015";
+    name = "Catalyst-Plugin-Authentication-0.10018";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "01hfsxgbpkvcli4hpmzig1hfrjfllwnig6p287v0bc72l6gklzbd";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "1znm81baidzhiiyanigy8rs8jq97vh94fiv4xvkrmaxz0k6vppdx";
     };
-    propagatedBuildInputs = [CatalystRuntime CatalystPluginSession];
+    propagatedBuildInputs =
+      [ CatalystRuntime CatalystPluginSession ClassInspector ];
   };
 
   CatalystPluginAuthorizationACL = buildPerlPackage rec {
@@ -385,10 +440,10 @@ rec {
   };
 
   CatalystPluginConfigLoader = buildPerlPackage rec {
-    name = "Catalyst-Plugin-ConfigLoader-0.24";
+    name = "Catalyst-Plugin-ConfigLoader-0.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BR/BRICAS/${name}.tar.gz";
-      sha256 = "08h72b9hndvfp9m8mpn21m5yiw77wzxvwf2vx6d0i9zbb83k3fk8";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "1rshgsvs9ngpd4nang4flq6mx9v71w1z5klp1rm8llc88pxlqahm";
     };
     propagatedBuildInputs = [CatalystRuntime DataVisitor ConfigAny MROCompat];
   };
@@ -403,15 +458,14 @@ rec {
   };
 
   CatalystPluginSession = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Session-0.27";
+    name = "Catalyst-Plugin-Session-0.32";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "1sdrcip5ipi2jz9af3ak200l4qdimypljfc55wyp7228s2rlv99s";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "1pyrvwfan3qiaixbii57q4g34r9i1v61c5rfri6c25wryfh4f2bj";
     };
-    propagatedBuildInputs = [
-      CatalystRuntime TestMockObject ObjectSignature
-      TestDeep MROCompat
-    ];
+    buildInputs = [ TestMockObject TestDeep ];
+    propagatedBuildInputs =
+      [ CatalystRuntime ObjectSignature MROCompat ];
   };
 
   CatalystPluginSessionStateCookie = buildPerlPackage rec {
@@ -420,20 +474,18 @@ rec {
       url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
       sha256 = "1rvxbfnpf9x2pc2zgpazlcgdlr2dijmxgmcs0m5nazs0w6xikssb";
     };
-    propagatedBuildInputs = [
-      CatalystRuntime CatalystPluginSession TestMockObject
-    ];
+    buildInputs = [ TestMockObject ];
+    propagatedBuildInputs = [ CatalystRuntime CatalystPluginSession ];
   };
 
   CatalystPluginSessionStoreFastMmap = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Session-Store-FastMmap-0.13";
+    name = "Catalyst-Plugin-Session-Store-FastMmap-0.14";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
-      sha256 = "0h46848mr3i9yadaxvsrdpfn7z22bvk8pa3g71hs7f8m4wd19ns7";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "1ywm96k1kpw9vbh7ihrxlfnfc5s4frb37cbix7xxlfz2vk10jw0d";
     };
-    propagatedBuildInputs = [
-      PathClass CatalystPluginSession CacheFastMmap
-    ];
+    propagatedBuildInputs =
+      [ PathClass CatalystPluginSession CacheFastMmap MROCompat ];
   };
 
   CatalystPluginStackTrace = buildPerlPackage rec {
@@ -442,14 +494,14 @@ rec {
       url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
       sha256 = "1ingivnga1yb4dqsj6icc4a58i9wdalzpn2qflsn8n2skgm223qb";
     };
-    propagatedBuildInputs = [CatalystRuntime DevelStackTrace];
+    propagatedBuildInputs = [ CatalystRuntime DevelStackTrace MROCompat ];
   };
 
   CatalystPluginStaticSimple = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Static-Simple-0.25";
+    name = "Catalyst-Plugin-Static-Simple-0.29";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "1f457b8sci1wablvzwplp4n5gn8902qz3s1qp40jb4k7y13wq74j";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "1wjh1a24gksjxzzl9wblbaar5gjvlm38kndjx8629fm9dcbqvc14";
     };
     propagatedBuildInputs = [CatalystRuntime MIMETypes];
   };
@@ -457,20 +509,18 @@ rec {
   CatalystViewDownload = buildPerlPackage rec {
     name = "Catalyst-View-Download-0.06";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GA/GAUDEON/${name}.tar.gz";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
       sha256 = "0l9jvc4sqchhpmhn70lm46k2avdsdk19i9wgas1awhzyr445c0b3";
     };
-    propagatedBuildInputs = [
-      CatalystRuntime TestWWWMechanizeCatalyst TestUseOk
-      TextCSV XMLSimple
-    ];
+    buildInputs = [  TestWWWMechanizeCatalyst TestUseOk ];
+    propagatedBuildInputs = [ CatalystRuntime TextCSV XMLSimple ];
   };
 
   CatalystViewTT = buildPerlPackage rec {
-    name = "Catalyst-View-TT-0.30";
+    name = "Catalyst-View-TT-0.37";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "15r5l0b943x2s863n38g3ir5xazja1s1kj022gs5bm4lw2hnkcvm";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "00vv4rkhpablmmfn70nybxy1jlfxhyf72ck3bch2gcfgqqysxvqz";
     };
     propagatedBuildInputs = [
       CatalystRuntime TemplateToolkit ClassAccessor
@@ -479,14 +529,13 @@ rec {
   };
 
   CatalystXComponentTraits = buildPerlPackage rec {
-    name = "CatalystX-Component-Traits-0.03";
+    name = "CatalystX-Component-Traits-0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
-      sha256 = "1xsy3i2019rl0mdpzs375al8ckb07s5pzg2h3nv3s4xn4qnn4vnk";
+      url = "mirror://cpan/modules/by-module/CatalystX/${name}.tar.gz";
+      sha256 = "0a2mhfgv0kqmaxf2crs8mqk44lyhd9qcwlpzhrc0b0dh4z503mr4";
     };
-    propagatedBuildInputs = [
-      CatalystRuntime NamespaceAutoclean ListMoreUtils MooseXTraitsPluggable
-    ];
+    propagatedBuildInputs = 
+      [ CatalystRuntime MooseXTraitsPluggable NamespaceAutoclean ListMoreUtils  ];
   };
 
   CGICookieXS = buildPerlPackage rec {
@@ -514,12 +563,13 @@ rec {
     buildInputs = [ DBFile ];
   };
 
-  CGISimple = buildPerlPackage {
-    name = "CGI-Simple-1.106";
+  CGISimple = buildPerlPackage rec {
+    name = "CGI-Simple-1.113";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AN/ANDYA/CGI-Simple-1.106.tar.gz;
-      sha256 = "0r0wc2260jnnch7dv7f6ailjf5w8hpqm2w146flfcchcryfxjlpg";
+      url = "mirror://cpan/modules/by-module/CGI/${name}.tar.gz";
+      sha256 = "0g8v0jd7dk310k6ncz47qa1cfrysi8yib1zwkhasv4zhswgqiqjj";
     };
+    propagatedBuildInputs = [ IOStringy ];
   };
 
   ClassAccessor = buildPerlPackage {
@@ -540,12 +590,13 @@ rec {
   };
 
   ClassAccessorGrouped = buildPerlPackage rec {
-    name = "Class-Accessor-Grouped-0.09002";
+    name = "Class-Accessor-Grouped-0.10003";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
-      sha256 = "1r1jbml1zc51x3p3mixq90d27pjlmx9mv4bz1bcp0whm335b1lr6";
+      url = "mirror://cpan/modules/by-module/Class/${name}.tar.gz";
+      sha256 = "036cyp74cdz8y5nig2b1iyqk6ps60sbqb0dqy0ybp3j5qiy28mix";
     };
-    propagatedBuildInputs = [ClassInspector MROCompat SubName SubIdentify];
+    buildInputs = [ TestMore TestException ];
+    propagatedBuildInputs = [ ClassInspector SubName ClassXSAccessor ];
   };
 
   ClassAutouse = buildPerlPackage {
@@ -582,14 +633,13 @@ rec {
   };
 
   ClassC3Componentised = buildPerlPackage rec {
-    name = "Class-C3-Componentised-1.0005";
+    name = "Class-C3-Componentised-1.001000";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
-      sha256 = "1ka8af8wxypgfkys6dkcp0rh87kx5rsgfm9k582smrjjs0b8zmvv";
+      url = "mirror://cpan/modules/by-module/Class/${name}.tar.gz";
+      sha256 = "1nzav8arxll0rya7r2vp032s3acliihbb9mjlfa13rywhh77bzvl";
     };
-    propagatedBuildInputs = [
-      ClassC3 ClassInspector TestException MROCompat
-    ];
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ ClassC3 ClassInspector MROCompat ];
   };
 
   ClassDataAccessor = buildPerlPackage {
@@ -632,17 +682,7 @@ rec {
     };
   };
 
-  ClassMOP = buildPerlPackage rec {
-    name = "Class-MOP-0.88";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "00y5hl2sx1w0i1gl0cxj8x6k6xi8wagr0gwn388n1d0pv10mw12z";
-    };
-    propagatedBuildInputs = [
-      MROCompat TaskWeaken TestException SubName SubIdentify
-      DevelGlobalDestruction
-    ];
-  };
+  ClassMOP = Moose;
 
   ClassSingleton = buildPerlPackage rec {
     name = "Class-Singleton-1.4";
@@ -660,13 +700,31 @@ rec {
     };
   };
 
-  ClassUnload = buildPerlPackage {
-    name = "Class-Unload-0.05";
+  ClassLoad = buildPerlPackage rec {
+    name = "Class-Load-0.08";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Class/${name}.tar.gz";
+      sha256 = "0qyxa5dd75dxna7y995wx589p7smsybcqkg1rach2cg04yff0dh1";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ DataOptList ];
+  };
+
+  ClassUnload = buildPerlPackage rec {
+    name = "Class-Unload-0.07";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Class//${name}.tar.gz";
+      sha256 = "1alvn94j0wgfyyym092g9cq0mbhzin0zf7lfja6578jk5cc788rr";
+    };
+    propagatedBuildInputs = [ ClassInspector ];
+  };
+
+  ClassXSAccessor = buildPerlPackage rec {
+    name = "Class-XSAccessor-1.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.05.tar.gz;
-      sha256 = "01b0j10nxbz37xnnzw3hgmpfgq09mc489kq2d8f5nswsrlk75001";
+      url = "mirror://cpan/modules/by-module/Class/${name}.tar.gz";
+      sha256 = "0mf7rp73r1pzy47m4bp49jw8iwpi6l1drdpk4qqxik6n7nx15mh2";
     };
-    propagatedBuildInputs = [ClassInspector];
   };
 
   Clone = buildPerlPackage rec {
@@ -677,6 +735,14 @@ rec {
     };
   };
 
+  CommonSense = buildPerlPackage rec {
+    name = "common-sense-3.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
+      sha256 = "0s1lym5519gwdgwd6c6cq9c9iagr7bmb16jklq5iq3nsdyb0qc2l";
+    };
+  };
+
   CompressRawBzip2 = import ../development/perl-modules/Compress-Raw-Bzip2 {
     inherit fetchurl buildPerlPackage;
     inherit (pkgs) bzip2;
@@ -698,19 +764,30 @@ rec {
     ];
   };
 
+  CompressUnLZMA = buildPerlPackage rec {
+    name = "Compress-unLZMA-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FERREIRA/${name}.tar.gz";
+      sha256 = "0sg9gj3rhif6hgmhwpz6w0g52l65vj5hx9818v5cdhvcif0jhg0b";
+    };
+    propagatedBuildInputs = [
+      IOCompressBase
+    ];
+  };
+
   ConfigAny = buildPerlPackage rec {
-    name = "Config-Any-0.18";
+    name = "Config-Any-0.23";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BR/BRICAS/${name}.tar.gz";
-      sha256 = "0hjfvbbhi8r52ycpw507y6d4cway5x5z9pij117q04r1xmwf0qnj";
+      url = "mirror://cpan/modules/by-module/Config/${name}.tar.gz";
+      sha256 = "17k62vdq3wr7m397ginp8525nqmlcjsmlqqpvnnfm3sr5vcxhjgz";
     };
   };
 
   ConfigGeneral = buildPerlPackage rec {
-    name = "Config-General-2.42";
+    name = "Config-General-2.50";
     src = fetchurl {
       url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz";
-      sha256 = "0r7qj4nhmflcda2r72yysl93ziwzc1qjnjfzi7ifd4fxh53zjy59";
+      sha256 = "0ff5qh6dx8qijbkx5yfvn3fhn5m2hkcl8yjmqxwnvcg78h33s3ps";
     };
   };
 
@@ -730,12 +807,13 @@ rec {
     };
   };
 
-  CommonSense = buildPerlPackage {
-    name = "common-sense-3.3";
+  ContextPreserve = buildPerlPackage rec {
+    name = "Context-Preserve-0.01";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.3.tar.gz;
-      sha256 = "04j0lf5lwc70x33dfxxhqhylgikyb6p43mpc3daydx601wblscbj";
+      url = "mirror://cpan/authors/id/J/JR/JROCKWAY/${name}.tar.gz";
+      sha256 = "0gssillawjknqks81x7fg7w2x94bnyklgd8ry2pr1k6ifkjhwz46";
     };
+    buildInputs = [ TestException TestUseOk ];
   };
 
   CookieXS = buildPerlPackage rec {
@@ -744,9 +822,26 @@ rec {
       url = "mirror://cpan/authors/id/A/AG/AGENT/${name}.tar.gz";
       sha256 = "1616rcn2qn1cwiv3rxb8mq5fmwxpj4gya1lxxxq2w952h03p3fd3";
     };
-    propagatedBuildInputs = [
-      TestMore CGICookieXS
-    ];
+    buildInputs = [ TestMore ];
+    propagatedBuildInputs = [ CGICookieXS ];
+  };
+
+  CPANMeta = buildPerlPackage rec {
+    name = "CPAN-Meta-2.112150";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/CPAN/${name}.tar.gz";
+      sha256 = "0k48ccws3j158mrr348gishh5q7vg4fmx36fgrnnnydv0psic4n0";
+    };
+    propagatedBuildInputs =
+      [ CPANMetaYAML JSONPP ParseCPANMeta VersionRequirements version ];
+  };
+
+  CPANMetaYAML = buildPerlPackage rec {
+    name = "CPAN-Meta-YAML-0.003";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/CPAN/${name}.tar.gz";
+      sha256 = "1mdmn9znk60izxdvvawsylv7n85x4y6lx8pa0gnkcp6d96q031af";
+    };
   };
 
   CryptCBC = buildPerlPackage rec {
@@ -766,7 +861,7 @@ rec {
     buildInputs = [CryptCBC];
   };
 
-  CryptPasswordMD5 = buildPerlPackage {
+  CryptPasswdMD5 = buildPerlPackage {
     name = "Crypt-PasswdMD5-1.3";
     src = fetchurl {
       url = mirror://cpan/authors/id/L/LU/LUISMUNOZ/Crypt-PasswdMD5-1.3.tar.gz;
@@ -799,6 +894,15 @@ rec {
     makeMakerFlags = "--lib=${pkgs.openssl}/lib";
   };
 
+  DataCompare = buildPerlPackage rec {
+    name = "Data-Compare-1.22";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Data/${name}.tar.gz";
+      sha256 = "1bz8qasp3ndiprxq2l0llbc0xbnjq11lz0l1lfzxiap7v1y2r3yf";
+    };
+    propagatedBuildInputs = [ FileFindRule ];
+  };
+
   DataDump = buildPerlPackage {
     name = "Data-Dump-1.11";
     src = fetchurl {
@@ -808,10 +912,10 @@ rec {
   };
 
   DataDumperConcise = buildPerlPackage rec {
-    name = "Data-Dumper-Concise-1.100";
+    name = "Data-Dumper-Concise-2.020";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
-      sha256 = "123iy2nnf41sq3sk4plrmqlbwsciir6ww31frrm7vzg388zziz7x";
+      url = "mirror://cpan/modules/by-module/Data/${name}.tar.gz";
+      sha256 = "0zb792d2dmpl0dnfmwcgh6wppb5h56hwycdbcf97wqxcgjk3k7hn";
     };
   };
 
@@ -825,10 +929,10 @@ rec {
   };
 
   DataOptList = buildPerlPackage rec {
-    name = "Data-OptList-0.104";
+    name = "Data-OptList-0.107";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "1k1qvf3ik2rn9mg65ginv3lyy6dlg1z08yddcnzbnizs8vbqqaxd";
+      sha256 = "0r2sbvh1kj69al5crg394v5j5wkffvqdb17fz1rjfgb6h3v93xi8";
     };
     propagatedBuildInputs = [SubInstall ParamsUtil];
   };
@@ -936,7 +1040,7 @@ rec {
 
   DBDSQLite = import ../development/perl-modules/DBD-SQLite {
     inherit fetchurl buildPerlPackage DBI;
-    sqlite = pkgs.sqlite36;
+    inherit (pkgs) sqlite;
   };
 
   DBDmysql = import ../development/perl-modules/DBD-mysql {
@@ -955,26 +1059,37 @@ rec {
   };
 
   DBI = buildPerlPackage rec {
-    name = "DBI-1.609";
+    name = "DBI-1.616";
     src = fetchurl {
       url = "mirror://cpan/authors/id/T/TI/TIMB/${name}.tar.gz";
-      sha256 = "0hfnd8i696x01a52v6vx97bdwaymai7m0gyr2w64lrsyws7ni6wv";
+      sha256 = "0m6hk66xprjl314d5c665hnd1vch9a0b9y6ywvmf04kdqj33kkk0";
     };
   };
 
   DBIxClass = buildPerlPackage rec {
-    name = "DBIx-Class-0.08115";
+    name = "DBIx-Class-0.08195";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FR/FREW/${name}.tar.gz";
-      sha256 = "1addd0763q2jyvh9hdi0ayppqk0bmypw48s1xcwfximbnja8z9mw";
+      url = "mirror://cpan/modules/by-module/DBIx/${name}.tar.gz";
+      sha256 = "197q2pkkk6dpq1r76jcnzamk5dqac5k9n3wgq8dd5ak8sw6cj7p6";
     };
-    propagatedBuildInputs = [
-      TestNoWarnings TestException DBI ScopeGuard PathClass
-      ClassInspector ClassAccessorGrouped CarpClan TestWarn DataPage
-      SQLAbstract SQLAbstractLimit ClassC3 ClassC3Componentised
-      ModuleFind DBDSQLite JSONAny SubName DataDumperConcise
-    ];
-    buildInputs = [TestPod TestPodCoverage];
+    buildInputs = [ DBDSQLite TestException TestWarn ];
+    propagatedBuildInputs = 
+      [ PackageStash ClassAccessorGrouped ClassC3Componentised
+        ClassInspector ConfigAny ContextPreserve DBI DataCompare
+        DataDumperConcise DataPage HashMerge MROCompat ModuleFind
+        PathClass SQLAbstract ScopeGuard SubName TryTiny VariableMagic
+        NamespaceClean
+      ];
+  };
+
+  DBIxClassCursorCached = buildPerlPackage rec {
+    name = "DBIx-Class-Cursor-Cached-1.001002";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/DBIx/${name}.tar.gz";
+      sha256 = "19r7jr6pknxiirrybq0cd0lnr76xiw05arnfqgk9nrhp6c7vvil0";
+    };
+    buildInputs = [ DBDSQLite ];
+    propagatedBuildInputs = [ CacheCache DBIxClass CarpClan ];
   };
 
   DBIxClassHTMLWidget = buildPerlPackage rec {
@@ -987,18 +1102,18 @@ rec {
   };
 
   DBIxClassSchemaLoader = buildPerlPackage rec {
-    name = "DBIx-Class-Schema-Loader-0.05000";
+    name = "DBIx-Class-Schema-Loader-0.07010";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
-      sha256 = "00lwggmwfwi3qbsx9jl5kdi5aszflpiggvksinmsam6sfyfpz2rq";
+      url = "mirror://cpan/modules/by-module/DBIx/${name}.tar.gz";
+      sha256 = "08yy5lsrb7h1xzp7d1bqsgnjpa2d8ik14qhsq2d7v7r3f5fk5q3g";
     };
-    propagatedBuildInputs = [
-      DBI DBDSQLite DataDump UNIVERSALrequire
-      ClassAccessor ClassDataAccessor ClassC3 CarpClan
-      ClassInspector DBIxClass LinguaENInflectNumber
-      ClassUnload
-    ];
-    doCheck = false; # disabled for now, since some tests fail
+    buildInputs = [ TestException TestMore TestWarn DBDSQLite ];
+    propagatedBuildInputs = 
+      [ DataDump LinguaENInflectNumber LinguaENInflectPhrase ClassAccessor
+        ClassAccessorGrouped ClassC3Componentised MROCompat CarpClan 
+        DBIxClass ClassLoad ClassUnload FileSlurp ListMoreUtils 
+        NamespaceClean ScopeGuard TryTiny 
+      ];
   };
 
   DevelGlobalDestruction = buildPerlPackage rec {
@@ -1010,11 +1125,19 @@ rec {
     propagatedBuildInputs = [SubExporter ScopeGuard];
   };
 
+  DevelHide = buildPerlPackage rec {
+    name = "Devel-Hide-0.0008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FERREIRA/${name}.tar.gz";
+      sha256 = "14hwwirpc9cnwn50rshb8hb778mia4ni75jv2dih8l9i033m4i26";
+    };
+  };
+
   DevelStackTrace = buildPerlPackage rec {
-    name = "Devel-StackTrace-1.20";
+    name = "Devel-StackTrace-1.27";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "15zh9gzhw6gv7l6sklp02pfmiiv8kwmmjsyvirppsca6aagy4603";
+      url = "mirror://cpan/modules/by-module/Devel/${name}.tar.gz";
+      sha256 = "01p7b9cmji582bld81c3b84jffhdi59zydnxjj6fh3m29zyysmfs";
     };
   };
 
@@ -1054,6 +1177,16 @@ rec {
     };
   };
 
+  DistCheckConflicts = buildPerlPackage rec {
+    name = "Dist-CheckConflicts-0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "1lh7j20vvsh4dyh74hr0wnabyv8vcdkilfi93m2fbk69qk3w995j";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ListMoreUtils SubExporter ];
+  };
+
   EmailAbstract = buildPerlPackage rec {
     name = "Email-Abstract-3.001";
     src = fetchurl {
@@ -1089,20 +1222,16 @@ rec {
   };
 
   EmailSender = buildPerlPackage rec {
-    name = "Email-Sender-0.091870";
+    name = "Email-Sender-0.110001";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "1vr1xigx25ikhljhpc5sv75bpczb7ny625ynzbxvic6qm0a3kaqc";
+      sha256 = "0z4nl7aizbailraqwkkqhx6k3hdz67wxszjfhd5yg2vn06ybsjwj";
     };
-    propagatedBuildInputs = [
-      CaptureTiny EmailAbstract EmailAddress ListMoreUtils Moose
-      SysHostnameLong
-    ];
-    preConfigure =
-      ''
-        chmod u+x util/sendmail
-        patchShebangs util/sendmail
-      '';
+    buildInputs = [ TestMore ];
+    propagatedBuildInputs = 
+      [ CaptureTiny EmailAbstract EmailAddress ListMoreUtils Moose 
+        Throwable TryTiny
+      ];
   };
 
   EmailSimple = buildPerlPackage rec {
@@ -1132,6 +1261,24 @@ rec {
     };
   };
 
+  Error = buildPerlPackage rec {
+    name = "Error-0.17016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
+      sha256 = "1akr35g7nbhch8fgkrqixjy08gx19brp981wyxplscizwcya64zh";
+    };
+  };
+
+  EvalClosure = buildPerlPackage rec {
+    name = "Eval-Closure-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "0qjfigd7r3xwizf8wff3g2mhidbqqlb6xy125iwd03f3i5hmnhic";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ SubExporter TryTiny ];
+  };
+
   ExceptionClass = buildPerlPackage rec {
     name = "Exception-Class-1.30";
     src = fetchurl {
@@ -1141,13 +1288,20 @@ rec {
     propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
   };
 
-  ExtUtilsInstall = buildPerlPackage {
-    name = "ExtUtils-Install-1.50";
+  ExtUtilsCBuilder = buildPerlPackage rec {
+    name = "ExtUtils-CBuilder-0.280202";
     src = fetchurl {
-      url = mirror://cpan/authors/id/Y/YV/YVES/ExtUtils-Install-1.50.tar.gz;
-      sha256 = "18fr056fwnnhvgc646crx2p9mybf69mh5rkcphc7bbvahw9i61jy";
+      url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
+      sha256 = "13qjdz1kmrp5mp404by94cdsyydjadg974ykinqga450djjaqpbq";
+    };
+  };
+
+  ExtUtilsInstall = buildPerlPackage rec {
+    name = "ExtUtils-Install-1.54";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
+      sha256 = "19igil4iwh3jdyvjm8s0ypm8wxsny6nv4z3b3lkwhq0ccjgd3rp3";
     };
-    propagatedBuildInputs = [ExtUtilsMakeMaker];
   };
 
   ExtUtilsMakeMaker = buildPerlPackage {
@@ -1158,23 +1312,33 @@ rec {
     };
   };
 
-  ExtUtilsManifest = buildPerlPackage {
-    name = "ExtUtils-Manifest-1.53";
+  ExtUtilsManifest = buildPerlPackage rec {
+    name = "ExtUtils-Manifest-1.59";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RK/RKOBES/ExtUtils-Manifest-1.53.tar.gz;
-      sha256 = "0xgfzivw0dfy29ydfjkg0c9mvlhjvlhc54s0yvbb4sxb2mdvrfkp";
+      url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
+      sha256 = "0cb7mjmfsk2rlwdr5y91x2w5ffb0yjf9gblibk9wplivlpa48jhs";
     };
   };
 
-  FileChangeNotify = buildPerlPackage rec {
-    name = "File-ChangeNotify-0.07";
+  ExtUtilsParseXS = buildPerlPackage rec {
+    name = "ExtUtils-ParseXS-3.03";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "0qklyrxii0i651gn42csdc0lhcvrwh0m9d316zc7kl75anwl6hly";
+      url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
+      sha256 = "0ziq4iwn3bc1zyrm7aigc7nk5lxb69shzix9irxw17i5lfc923xg";
     };
-    propagatedBuildInputs = [
-      ClassMOP Moose MooseXParamsValidate MooseXSemiAffordanceAccessor
-    ];
+  };
+
+  FileChangeNotify = buildModule rec {
+    name = "File-ChangeNotify-0.20";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/File/${name}.tar.gz";
+      sha256 = "000aiiijf16j5cf8gql4vr6l9y561famkfb5qv5d29xz2ad4mmd9";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs =
+      [ ClassMOP Moose MooseXParamsValidate MooseXSemiAffordanceAccessor
+        NamespaceAutoclean
+      ] ++ stdenv.lib.optional stdenv.isLinux LinuxInotify2;
   };
 
   Filechdir = buildPerlPackage {
@@ -1193,6 +1357,15 @@ rec {
     };
   };
 
+  FileFindRule = buildPerlPackage rec {
+    name = "File-Find-Rule-0.32";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/File/${name}.tar.gz";
+      sha256 = "0fdci3k9j8x69p28jb793gni4y9qbgzpfnnj1avzf8nnib9w1wrd";
+    };
+    propagatedBuildInputs = [ NumberCompare TextGlob ];
+  };
+
   FileModified = buildPerlPackage {
     name = "File-Modified-0.07";
     src = fetchurl {
@@ -1251,6 +1424,14 @@ rec {
     propagatedBuildInputs = [ TestScript ];
   };
 
+  FontTTF = buildPerlPackage {
+    name = "Font-TTF-0.43";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MH/MHOSKEN/Font-TTF-0.43.tar.gz;
+      sha256 = "0782mj5n5a2qbghvvr20x51llizly6q5smak98kzhgq9a7q3fg89";
+    };
+  };
+
   FreezeThaw = buildPerlPackage {
     name = "FreezeThaw-0.43";
     src = fetchurl {
@@ -1266,8 +1447,8 @@ rec {
       sha256 = "1p84585b4iyqa21hbqni0blj8fzd917ynd3y1hwh3mrmyfqj178x";
     };
 
-    buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype 
-                    pkgs.libpng pkgs.fontconfig pkgs.xlibs.libXpm GetOptLong ];
+    buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype
+                    pkgs.libpng pkgs.fontconfig pkgs.xlibs.libXpm GetoptLong ];
 
     # Patch needed to get arguments past the first GetOptions call
     # and to specify libfontconfig search path.
@@ -1279,19 +1460,39 @@ rec {
     # ( although the images look the same to my eye ); this is
     # possibly because the source packaged image was generated with a
     # different version of some library ( libpng maybe? ).
-    postPatch = "sed -ie 's/if (GD::Image->can(.newFromJpeg.)) {/if ( 0 ) {/' t/GD.t";    
+    postPatch = "sed -ie 's/if (GD::Image->can(.newFromJpeg.)) {/if ( 0 ) {/' t/GD.t";
 
     makeMakerFlags = "--lib_png_path=${pkgs.libpng} --lib_jpeg_path=${pkgs.libjpeg} --lib_zlib_path=${pkgs.zlib} --lib_ft_path=${pkgs.freetype} --lib_fontconfig_path=${pkgs.fontconfig} --lib_xpm_path=${pkgs.xlibs.libXpm}";
   };
 
-  GetOptLong = buildPerlPackage rec {
+  GeoIP = buildPerlPackage rec {
+    name = "Geo-IP-1.39";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BORISZ/${name}.tar.gz";
+      sha256 = "1yc0rn67nk4z8aq8d82axhfmgi0l91rkksqbf27ylasrhyb6ykx5";
+    };
+    makeMakerFlags = "LIBS=-L${pkgs.geoip}/lib INC=-I${pkgs.geoip}/include";
+    doCheck = false; # seems to access the network
+  };
+
+  GetoptLong = buildPerlPackage rec {
     name = "Getopt-Long-2.38";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JV/JV/modules/${name}.tar.gz";
+      url = "mirror://cpan/authors/id/J/JV/JV/${name}.tar.gz";
       sha256 = "0lrsm8vlqhdnkzfvyaiyfivmaar0rirrnwa2v0qk6l130a497mky";
     };
   };
 
+  GetoptLongDescriptive = buildPerlPackage rec {
+    name = "Getopt-Long-Descriptive-0.090";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Getopt/${name}.tar.gz";
+      sha256 = "17ghqd50y3627ajc7wl6n7sv055p2gg0h40lavx7qhwyg5rf46lw";
+    };
+    buildInputs = [ TestMore ];
+    propagatedBuildInputs = [ ParamsValidate SubExporter ];
+  };
+
   Graph = buildPerlPackage rec {
     name = "Graph-0.94";
     src = fetchurl {
@@ -1320,6 +1521,15 @@ rec {
     };
   };
 
+  HashMerge = buildPerlPackage rec {
+    name = "Hash-Merge-0.12";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Hash/${name}.tar.gz";
+      sha256 = "07h7dyldxwqhq3x4fp9hacnc4vgipp0jk50b5cbvib975nfxx98z";
+    };
+    propagatedBuildInputs = [ Clone ];
+  };
+
   HookLexWrap = buildPerlPackage rec {
     name = "Hook-LexWrap-0.22";
     src = fetchurl {
@@ -1422,12 +1632,13 @@ rec {
   };
 
   HTTPBody = buildPerlPackage rec {
-    name = "HTTP-Body-1.05";
+    name = "HTTP-Body-1.12";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
-      sha256 = "0s0496sb9l8jfkdx86vahwgdaaxrqb0j6acyww6nk0ajh82qrzfv";
+      url = "mirror://cpan/modules/by-module/HTTP/${name}.tar.gz";
+      sha256 = "1229hhcm762n9x82jkhl8hmjcaigprcsrhymcdbkqlwch2agm6g2";
     };
-    propagatedBuildInputs = [LWP YAML];
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ LWP ];
   };
 
   HTTPHeaderParserXS = buildPerlPackage rec {
@@ -1439,12 +1650,12 @@ rec {
   };
 
   HTTPRequestAsCGI = buildPerlPackage rec {
-    name = "HTTP-Request-AsCGI-0.9";
+    name = "HTTP-Request-AsCGI-1.2";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HD/HDP/${name}.tar.gz";
-      sha256 = "1k17bgvscjvr4v96l9vm14mpk4r4b5g9w1gpmwl8qfga3czp6sd4";
+      url = "mirror://cpan/modules/by-module/HTTP/${name}.tar.gz";
+      sha256 = "1smwmiarwcgq7vjdblnb6ldi2x1s5sk5p15p7xvm5byiqq3znnwl";
     };
-    propagatedBuildInputs = [ClassAccessor LWP];
+    propagatedBuildInputs = [ ClassAccessor LWP ];
   };
 
   HTTPResponseEncoding = buildPerlPackage rec {
@@ -1474,20 +1685,6 @@ rec {
     };
   };
 
-  PerlMagick = buildPerlPackage {
-    name = "PerlMagick-6.59";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/J/JC/JCRISTY/PerlMagick-6.59.tar.gz;
-      sha256 = "a87999b322460f7ba964eed81f91f400fba4ba6ff88e3f9e2b216d4d8ecf638d";
-    };
-    buildInputs = [pkgs.imagemagick];
-    preConfigure =
-      ''
-        sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick}/include/ImageMagick";|' Makefile.PL
-      '';
-    doCheck = false;
-  };
-
   IOCompressBase = buildPerlPackage rec {
     name = "IO-Compress-Base-2.015";
     src = fetchurl {
@@ -1523,6 +1720,14 @@ rec {
     propagatedBuildInputs = [PerlIOviadynamic];
   };
 
+  IOLockedFile = buildPerlPackage rec {
+    name = "IO-LockedFile-0.23";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/IO/${name}.tar.gz";
+      sha256 = "1dgq8zfkaszisdb5hz8jgcl0xc3qpv7bbv562l31xgpiddm7xnxi";
+    };
+  };
+
   IOPager = buildPerlPackage {
     name = "IO-Pager-0.06.tgz";
     src = fetchurl {
@@ -1557,6 +1762,14 @@ rec {
     };
   };
 
+  IOTty = buildPerlPackage rec {
+    name = "IO-Tty-1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/${name}.tar.gz";
+      sha256 = "1cgqyv1zg8857inlnfczrrgpqr0r6mmqv29b7jlmxv47s4df59ii";
+    };
+  };
+
   IPCRun = buildPerlPackage rec {
     name = "IPC-Run-0.82";
     src = fetchurl {
@@ -1574,6 +1787,14 @@ rec {
     };
   };
 
+  IPCShareLite = buildPerlPackage rec {
+    name = "IPC-ShareLite-0.17";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/IPC/${name}.tar.gz";
+      sha256 = "1gz7dbwxrzbzdsjv11kb49jlf9q6lci2va6is0hnavd93nwhdm0l";
+    };
+  };
+
   ImageExifTool = buildPerlPackage rec {
       name = "Image-ExifTool-8.41";
 
@@ -1681,6 +1902,14 @@ rec {
     propagatedBuildInputs = [JSON];
   };
 
+  JSONPP = buildPerlPackage rec {
+    name = "JSON-PP-2.27200";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/JSON/${name}.tar.gz";
+      sha256 = "1lv9riws9f72gya2fsp5jvbd1fbzyi8423x38a491ryy9cai2ph3";
+    };
+  };
+
   JSONXS = buildPerlPackage rec {
     name = "JSON-XS-2.29";
     src = fetchurl {
@@ -1699,28 +1928,66 @@ rec {
     propagatedBuildInputs = [XMLParser];
   };
 
-  LinguaENInflect = buildPerlPackage {
-    name = "Lingua-EN-Inflect-1.89";
+  LinguaENInflect = buildPerlPackage rec {
+    name = "Lingua-EN-Inflect-1.893";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.89.tar.gz;
-      sha256 = "1jvj67mvvfqxgxspmblay1c844vvhfwrviiarglkaw6phpg74rby";
+      url = "mirror://cpan/modules/by-module/Lingua/${name}.tar.gz";
+      sha256 = "1j0jxf3pqnsshakmpdwkgcmlz26hzmkrhg33kz52qzdfys254xmy";
     };
   };
 
-  LinguaENInflectNumber = buildPerlPackage {
+  LinguaENInflectNumber = buildPerlPackage rec {
     name = "Lingua-EN-Inflect-Number-1.1";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SI/SIMON/Lingua-EN-Inflect-Number-1.1.tar.gz;
+      url = "mirror://cpan/modules/by-module/Lingua/${name}.tar.gz";
       sha256 = "13hlr1srp9cd9mcc78snkng9il8iavvylfyh81iadvn2y7wikwfy";
     };
-    propagatedBuildInputs = [LinguaENInflect];
+    propagatedBuildInputs = [ LinguaENInflect ];
+  };
+
+  LinguaENInflectPhrase = buildPerlPackage rec {
+    name = "Lingua-EN-Inflect-Phrase-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Lingua/${name}.tar.gz";
+      sha256 = "12a74zkc1rybsvxwg8fxdjs6frfq7naky2ks4idcwd48lya3nw90";
+    };
+    buildInputs = [ TestMore ];
+    propagatedBuildInputs = 
+      [ LinguaENInflect LinguaENInflectNumber LinguaENTagger ];
+  };
+
+  LinguaENTagger = buildPerlPackage rec {
+    name = "Lingua-EN-Tagger-0.16";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Lingua/${name}.tar.gz";
+      sha256 = "0nzjgpxd0i5a3sacxsqfvvrfyamxlmzfa9y14r4vs7sc8qm20xd2";
+    };
+    propagatedBuildInputs = [ HTMLParser LinguaStem ];
+  };
+
+  LinguaStem = buildPerlPackage rec {
+    name = "Lingua-Stem-0.84";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Lingua/${name}.tar.gz";
+      sha256 = "12avh2mnnc7llmmshrr5bgb473fvydxnlqrqbl2815mf2dp4pxcg";
+    };
+    doCheck = false;
+  };
+
+  LinuxInotify2 = buildPerlPackage rec {
+    name = "Linux-Inotify2-1.22";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Linux/${name}.tar.gz";
+      sha256 = "1l916p8xak6c51x4x1vrzd8wpi55bld74wf0p5w5m4vr80zjb7dw";
+    };
+    propagatedBuildInputs = [ CommonSense ];
   };
 
-  ListMoreUtils = buildPerlPackage {
-    name = "List-MoreUtils-0.22";
+  ListMoreUtils = buildPerlPackage rec {
+    name = "List-MoreUtils-0.33";
     src = fetchurl {
-      url = mirror://cpan/authors/id/V/VP/VPARSEVAL/List-MoreUtils-0.22.tar.gz;
-      sha256 = "1dv21xclh6r1cyy19r34xv2w6pc1jb5pwj7b2739m78xhlk8p55l";
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+      sha256 = "1bcljhhsk5g0xykvgbxz10ilmj02s58ydiy3g8hbzdr29i20np1i";
     };
   };
 
@@ -1758,6 +2025,15 @@ rec {
     };
   };
 
+  LockFileSimple = buildPerlPackage rec {
+    name = "LockFile-Simple-0.207";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JV/JV/LockFile-Simple-0.207.tar.gz";
+      sha256 = "171vi9y6jlkny0d4jaavz48d1vbxljknnmbq8h22fi8lnc5kvipa";
+    };
+  };
+
+
   LWP = buildPerlPackage rec {
     name = "libwww-perl-5.825";
     src = fetchurl {
@@ -1807,13 +2083,16 @@ rec {
     propagatedBuildInputs = [TestPod];
   };
 
-  ModuleBuild = buildPerlPackage {
-    name = "Module-Build-0.2808";
+  ModuleBuild = buildPerlPackage rec {
+    name = "Module-Build-0.3800";
     src = fetchurl {
-      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Module-Build-0.2808.tar.gz;
-      sha256 = "1h8zpf4g2n8v47l9apmdqbdgcg039g70w75hpn84m37pmqkbnj8v";
+      url = "mirror://cpan/modules/by-module/Module/${name}.tar.gz";
+      sha256 = "1gk0xn5s48f0n3a6k4izw6sigsk84rk06hky7dd48hdmvrq23f4v";
     };
-    propagatedBuildInputs = [ExtUtilsInstall ExtUtilsManifest TestHarness];
+    propagatedBuildInputs =
+      [ ExtUtilsInstall ExtUtilsManifest ExtUtilsCBuilder ExtUtilsParseXS
+        CPANMeta PerlOSType ModuleMetadata
+      ];
   };
 
   ModuleFind = buildPerlPackage {
@@ -1824,16 +2103,27 @@ rec {
     };
   };
 
+  ModuleMetadata = buildPerlPackage rec {
+    name = "Module-Metadata-1.000005";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Module/${name}.tar.gz";
+      sha256 = "04xxs3542mqdadcs2bdlpyldmbbxdn9x0gwjnyy5p1d5c3ajnq9k";
+    };
+    propagatedBuildInputs = [ version ];
+  };
+
   Moose = buildPerlPackage rec {
-    name = "Moose-0.85";
+    name = "Moose-2.0202";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1fim2kg6hcawbhn26sm1dq0q8ikmq0qwngd3wys7h0n9vs5hqdkb";
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "1xp0052ig06f5axw9djrq5ws8r9mcs4g1qs55yzgynl2hjrkazi4";
     };
-    propagatedBuildInputs = [
-      TestMore TestException TaskWeaken ListMoreUtils
-      ClassMOP SubExporter
-    ];
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs =
+      [ DataOptList DevelGlobalDestruction DistCheckConflicts EvalClosure
+        ListMoreUtils MROCompat PackageDeprecationManager PackageStash
+        PackageStashXS ParamsUtil SubExporter SubName TaskWeaken TryTiny
+      ];
   };
 
   MooseAutobox = buildPerlPackage rec {
@@ -1846,21 +2136,43 @@ rec {
   };
 
   MooseXEmulateClassAccessorFast = buildPerlPackage rec {
-    name = "MooseX-Emulate-Class-Accessor-Fast-0.00900";
+    name = "MooseX-Emulate-Class-Accessor-Fast-0.00903";
     src = fetchurl {
       url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "1sxkhyi44h30ba5ca7fmjpwc2pjwqm2n7ll67dn02dzgh68zaha7";
+      sha256 = "1lkn1h4sxr1483jicsgsgzclbfw63g2i2c3m4v4j9ar75yrb0kh8";
     };
-    propagatedBuildInputs = [Moose NamespaceClean];
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ Moose NamespaceClean ];
+  };
+
+  MooseXGetopt = buildPerlPackage rec {
+    name = "MooseX-Getopt-0.37";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "161j44v2b4qzv75lk35gvfvs864vcyhkzq6phmhh8zllg3cnfc8k";
+    };
+    buildInputs = [ TestFatal TestRequires TestWarn ];
+    propagatedBuildInputs = [ Moose GetoptLongDescriptive MooseXRoleParameterized ];
   };
 
   MooseXMethodAttributes = buildPerlPackage rec {
-    name = "MooseX-MethodAttributes-0.16";
+    name = "MooseX-MethodAttributes-0.25";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "1cfpslsn7kqcbi6rvb5095ba8f4qdjb2bksxdbalpr4yf88hrc5n";
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "0rkk0rija7s96747y46qz49g88kymgxvn70mr21id9i8n7cdacww";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ Moose MooseXTypes NamespaceAutoclean NamespaceClean ];
+  };
+
+  MooseXNonMoose = buildPerlPackage rec {
+    name = "MooseX-NonMoose-0.22";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "0mhyabg5f6kngkm1w7hfglkdzjdn5pbgm7vgia0aqy9mwwclbpdp";
     };
-    propagatedBuildInputs = [Moose MooseXTypes TestException];
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ListMoreUtils Moose ];
   };
 
   MooseXParamsValidate = buildPerlPackage rec {
@@ -1872,13 +2184,32 @@ rec {
     propagatedBuildInputs = [Moose ParamsValidate SubExporter TestException];
   };
 
+  MooseXRoleParameterized = buildPerlPackage rec {
+    name = "MooseX-Role-Parameterized-0.26";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "1wfqdkjhwzbzk2cm65r5gz9n6406j8mdq78iga7dnj3mp2csn631";
+    };
+    buildInputs = [ TestFatal TestMore ];
+    propagatedBuildInputs = [ Moose ];
+  };
+
+  MooseXRoleWithOverloading = buildPerlPackage rec {
+    name = "MooseX-Role-WithOverloading-0.09";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "0qs013vkm0ysykd3hibk4m8bkl0rnysxzralwq19zrvxaqk2krn8";
+    };
+    propagatedBuildInputs = [ Moose MooseXTypes NamespaceAutoclean aliased ];
+  };
+
   MooseXSemiAffordanceAccessor = buildPerlPackage rec {
-    name = "MooseX-SemiAffordanceAccessor-0.03";
+    name = "MooseX-SemiAffordanceAccessor-0.09";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "073lq5dlwqxbrdzsn5ragjvwgpsfwcdls83n513kscgcq56y7014";
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "1724cxvgy1wh1kfawcj2sanlm90zarfh7k186pgyx1lk8fhnlj4m";
     };
-    propagatedBuildInputs = [Moose];
+    propagatedBuildInputs = [ Moose ];
   };
 
   MooseXTraits = buildPerlPackage rec {
@@ -1893,24 +2224,35 @@ rec {
   };
 
   MooseXTraitsPluggable = buildPerlPackage rec {
-    name = "MooseX-Traits-Pluggable-0.04";
+    name = "MooseX-Traits-Pluggable-0.10";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
-      sha256 = "1cgkjcfx87kkrfg814fgfwl19cjqwx8wn40308z5p135vlbcbins";
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "0gv79bsnacrzwpac3dll64zj40qcsbp4kdk8yr9z5bwim7nkvnv3";
     };
-    propagatedBuildInputs = [
-      Moose TestException NamespaceAutoclean ClassMOP TestUseOk
-      MooseXTraits MooseAutobox
-    ];
+    buildInputs =[ TestException ];
+    propagatedBuildInputs = 
+      [ ClassMOP Moose NamespaceAutoclean ListMoreUtils ];
   };
 
   MooseXTypes = buildPerlPackage rec {
-    name = "MooseX-Types-0.16";
+    name = "MooseX-Types-0.28";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
-      sha256 = "0b7w9wyh44qqjipw0gy5xsvdb5hwaqjk3vbqiwq07aliwnlfgi9a";
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "0wjqdxd2qlzgrvi4z2rl82xns9kh7m4chf9yzkj5il9g9gprwl57";
     };
-    propagatedBuildInputs = [Moose CarpClan NamespaceClean];
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs =
+      [ Moose CarpClan NamespaceClean SubInstall SubName ];
+  };
+
+  MooseXTypesCommon = buildPerlPackage rec {
+    name = "MooseX-Types-Common-0.001002";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
+      sha256 = "0mddl25gkb3qggdfx9fjzs321bj89y8dr4bw307l1dr3zr082xkr";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ Moose MooseXTypes ];
   };
 
   Mouse = buildPerlPackage rec {
@@ -1923,30 +2265,60 @@ rec {
     doCheck = false; # check can't find its own Mouse::Tiny module
   };
 
-  MROCompat = buildPerlPackage {
-    name = "MRO-Compat-0.09";
+  MROCompat = buildPerlPackage rec {
+    name = "MRO-Compat-0.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BL/BLBLACK/MRO-Compat-0.09.tar.gz;
-      sha256 = "16l37bxd5apax4kyvnadiplz8xmmx76y9pyq9iksqrv0d5rl5vl8";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "0p2hl0cygcds3jjq3awackd72j3vzidfyjacj7gxdlqh65a2fjq7";
     };
   };
 
   NamespaceAutoclean = buildPerlPackage rec {
-    name = "namespace-autoclean-0.08";
+    name = "namespace-autoclean-0.12";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "1276incn27dpz955yx44l7rqs27bp1nc4gzqvw1x4aif8kw91185";
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "125g5ny4sqf9kj1sxaqh1jipzyii56p9nsp45jg9fg67i4ljm9pg";
     };
-    propagatedBuildInputs = [BHooksEndOfScope ClassMOP NamespaceClean];
+    propagatedBuildInputs = [ BHooksEndOfScope ClassMOP NamespaceClean Moose ];
   };
 
   NamespaceClean = buildPerlPackage rec {
-    name = "namespace-clean-0.11";
+    name = "namespace-clean-0.21";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "00fpj8a5p9z577cha3cgb95r042v7kbz7pwls5p0rl7jqvpax4lb";
+      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
+      sha256 = "0djqishj6mcw1jn9saff4i2glq89dq3rc7slpprcky31jay6jq5i";
+    };
+    propagatedBuildInputs = [ BHooksEndOfScope DevelHide PackageStash ];
+  };
+
+  NetAmazonEC2 = buildPerlPackage rec {
+    name = "Net-Amazon-EC2-0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JK/JKIM/${name}.tar.gz";
+      sha256 = "14am9m19ziyv12bjxljhfyl0zy120yf4gligsa9v26smb61fxyjr";
     };
-    propagatedBuildInputs = [BHooksEndOfScope];
+    patches =
+      [ # In DescribeInstance requests, say "InstanceId.1" instead of
+        # "InstanceId", as required by the Amazon spec.  EC2 tolerates
+        # "InstanceId", but Nova doesn't.
+        ../development/perl-modules/net-amazon-ec2-nova-compat.patch
+      ];
+    propagatedBuildInputs =
+      [ DigestHMAC LWP Moose URI ParamsValidate XMLSimple Moose CryptSSLeay ];
+    doCheck = false; # wants to create actual EC2 instances (for $$$)
+  };
+
+  NetAmazonMechanicalTurk = buildPerlPackage rec {
+    name = "Net-Amazon-MechanicalTurk-1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MT/MTURK/${name}.tar.gz";
+      sha256 = "17xh6qcp2sw721r8cpcal80an49264db497namms4k139fsr1yig";
+    };
+    patches =
+      [ ../development/perl-modules/net-amazon-mechanicalturk.patch ];
+    propagatedBuildInputs =
+      [ DigestHMAC LWP URI XMLParser IOString ];
+    buildInputs = [ DBI DBDSQLite ];
   };
 
   NetDNS = buildPerlPackage {
@@ -2019,6 +2391,25 @@ rec {
     propagatedBuildInputs = [JSONAny Encode LWP CryptSSLeay];
   };
 
+  nixPerl = buildPerlPackage {
+    name = "Nix-1.0pre26388";
+    src = fetchsvn {
+      url = https://svn.nixos.org/repos/nix/nix-perl/trunk;
+      rev = 26388;
+      sha256 = "0780q2hgklv841za0w2swkxbyks2h6693ab2vd617s38bjm7bppa";
+    };
+    NIX_PREFIX = pkgs.nixSqlite;
+    doCheck = false; # tests currently don't work
+  };
+
+  NumberCompare = buildPerlPackage rec {
+    name = "Number-Compare-0.01";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Number/${name}.tar.gz";
+      sha256 = "1vs95lbax3f63jg98jwkiahlvg1jhmd0xyyzmbxxifsl7fkv1d9j";
+    };
+  };
+
   ObjectSignature = buildPerlPackage {
     name = "Object-Signature-1.05";
     src = fetchurl {
@@ -2034,7 +2425,36 @@ rec {
       sha256 = "179cxwqxb0f9dpx8954nvwjmggxxi5ndnang41yav1dx6mf0abp7";
     };
   };
-  
+
+  PackageDeprecationManager = buildPerlPackage rec {
+    name = "Package-DeprecationManager-0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "1q2jgq3dfva5wfsl1jn8711bk7fvf5cgpjddd8if9cx3zixnq2n1";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ ListMoreUtils ParamsUtil SubInstall ];
+  };
+
+  PackageStash = buildPerlPackage rec {
+    name = "Package-Stash-0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "0m5mibmy49gjhb5kvgyg2cfzs4d1ghav75f19x80s3bv6vr0ls6x";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ DistCheckConflicts PackageDeprecationManager PackageStashXS ];
+  };
+
+  PackageStashXS = buildPerlPackage rec {
+    name = "Package-Stash-XS-0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "0dr86sbpb67dxbq64ix48f0n3dgac820ibci4xy4hbijja6lzwj6";
+    };
+    buildInputs = [ TestFatal ];
+  };
+
   ParamsUtil = buildPerlPackage rec {
     name = "Params-Util-1.01";
     src = fetchurl {
@@ -2043,11 +2463,11 @@ rec {
     };
   };
 
-  ParamsValidate = buildPerlPackage rec {
-    name = "Params-Validate-0.91";
+  ParamsValidate = buildModule rec {
+    name = "Params-Validate-1.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1j0hx3pbfdyggbhrawa9k0wdm6lln3zdkrhjrdg1hzzf6csrlc1v";
+      url = "mirror://cpan/modules/by-module/Params/${name}.tar.gz";
+      sha256 = "1yziygqb8km28xr3yzzsllzgg7xnxdh4wqfm2kmf2s6qck0dkij4";
     };
   };
 
@@ -2059,6 +2479,15 @@ rec {
     };
   };
 
+  ParseCPANMeta = buildPerlPackage rec {
+    name = "Parse-CPAN-Meta-1.4401";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Parse/${name}.tar.gz";
+      sha256 = "0g381a0wynh9xc9wf44drw5vhfbd3wa693myy018jwq9vp51pf5q";
+    };
+    propagatedBuildInputs = [ CPANMetaYAML JSONPP ];
+  };
+
   ParseRecDescent = buildPerlPackage rec {
     name = "Parse-RecDescent-1.965001";
     src = fetchurl {
@@ -2067,11 +2496,11 @@ rec {
     };
   };
 
-  PathClass = buildPerlPackage {
-    name = "Path-Class-0.16";
+  PathClass = buildPerlPackage rec {
+    name = "Path-Class-0.24";
     src = fetchurl {
-      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.16.tar.gz;
-      sha256 = "0zisxkj58jm84fwcssmdq8g6n37s33v5h7j28m12sbkqib0h76gc";
+      url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/${name}.tar.gz";
+      sha256 = "1g4in1k3nvk7w034hmhix9hjbjgpshwc5m8xvpga84rfzbadpnyc";
     };
   };
 
@@ -2119,6 +2548,28 @@ rec {
     };
   };
 
+  PerlMagick = buildPerlPackage {
+    name = "PerlMagick-6.59";
+    src = fetchurl {
+      url = http://image_magick.veidrodis.com:8003/image_magick/perl/PerlMagick-6.59.tar.gz;
+      sha256 = "6d7a33f6431b5650637cf73dd696927dbb2073f28e8f8d11a465d7de4c4638b3";
+    };
+    buildInputs = [pkgs.imagemagick];
+    preConfigure =
+      ''
+        sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick}/include/ImageMagick";|' Makefile.PL
+      '';
+    doCheck = false;
+  };
+
+  PerlOSType = buildPerlPackage rec {
+    name = "Perl-OSType-1.002";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Perl/${name}.tar.gz";
+      sha256 = "0clbfgq0800dip3821ibh29vrwcc159qnakidbiqrmhcisd95xbs";
+    };
+  };
+
   PerlTidy = buildPerlPackage rec {
     name = "Perl-Tidy-20090616";
     src = fetchurl {
@@ -2326,14 +2777,14 @@ rec {
   };
 
   SQLAbstract = buildPerlPackage rec {
-    name = "SQL-Abstract-1.60";
+    name = "SQL-Abstract-1.72";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
-      sha256 = "0m9xjp5wiknpibvpav7jf72g3v3x7rpqsdqpnqnma6bws6ci66gf";
+      url = "mirror://cpan/modules/by-module/SQL/${name}.tar.gz";
+      sha256 = "12abz50zz51s1f5hvs5xl6smb369sjid1zyjkfygkiglqp4an0kr";
     };
-    propagatedBuildInputs = [
-      TestDeep TestException TestWarn Clone
-    ];
+    buildInputs = [ TestDeep TestException TestWarn ];
+    propagatedBuildInputs = 
+      [ ClassAccessorGrouped GetoptLongDescriptive HashMerge ];
   };
 
   SQLAbstractLimit = buildPerlPackage rec {
@@ -2411,11 +2862,11 @@ rec {
     };
   };
 
-  SubName = buildPerlPackage {
-    name = "Sub-Name-0.04";
+  SubName = buildPerlPackage rec {
+    name = "Sub-Name-0.05";
     src = fetchurl {
-      url = mirror://cpan/authors/id/X/XM/XMATH/Sub-Name-0.04.tar.gz;
-      sha256 = "1nlin0ag2krpmiyapp3lzb6qw2yfqvqmx57iz5zwbhr4pyi46bhb";
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1w9sf51ai2r3i0kv5wnq7h9g3hcd6zb6i51ivvykb3hzx82vilf9";
     };
   };
 
@@ -2586,13 +3037,22 @@ rec {
     propagatedBuildInputs = [ TestMore TextDiff ];
   };
 
-  TestException = buildPerlPackage {
-    name = "Test-Exception-0.27";
+  TestException = buildPerlPackage rec {
+    name = "Test-Exception-0.31";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADIE/Test-Exception-0.27.tar.gz;
-      sha256 = "1s921j7yv2szywd1ffi6yz3ngrbq97f9dh38bvvajqnm29g1xb9j";
+      url = "mirror://cpan/modules/by-module/Test/${name}.tar.gz";
+      sha256 = "1lyd6mcg00348xsn9fl59spx68a69ybli7h7gd2k0p4y21q8p0ks";
     };
-    propagatedBuildInputs = [TestHarness TestSimple SubUplevel];
+    propagatedBuildInputs = [ SubUplevel ];
+  };
+
+  TestFatal = buildPerlPackage rec {
+    name = "Test-Fatal-0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "0laxzphmqwq0rrizv3n7pcnrn345yh70cip61sl8f8mw8dir1jdx";
+    };
+    propagatedBuildInputs = [ TryTiny ];
   };
 
   TestHarness = buildPerlPackage rec {
@@ -2673,13 +3133,20 @@ rec {
     propagatedBuildInputs = [PodCoverage];
   };
 
+  TestRequires = buildPerlPackage rec {
+    name = "Test-Requires-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/${name}.tar.gz";
+      sha256 = "1ksyg4npzx5faf2sj80rm74qjra4q679750vfqfvw3kg1d69wvwv";
+    };
+  };
+
   TestSimple = buildPerlPackage rec {
-    name = "Test-Simple-0.94";
+    name = "Test-Simple-0.98";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/${name}.tar.gz";
-      sha256 = "1sdf9azxdbswbmzxasdp38mi1sznjc2g2ywi5ymbr6dcb3vs94vg";
+      url = "mirror://cpan/modules/by-module/Test/${name}.tar.gz";
+      sha256 = "1a0jrl3n2g05qn6c79pv5bnc1wlq36qccwdgf1pjrrvmrgi07cig";
     };
-    propagatedBuildInputs = [TestHarness];
   };
 
   TestScript = buildPerlPackage rec {
@@ -2777,6 +3244,14 @@ rec {
     propagatedBuildInputs = [ AlgorithmDiff ];
   };
 
+  TextGlob = buildPerlPackage rec {
+    name = "Text-Glob-0.09";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Text/${name}.tar.gz";
+      sha256 = "0lr76wrsj8wcxrq4wi8z1640w4dmdbkznp06q744rg3g0bd238d5";
+    };
+  };
+
   TextMarkdown = buildPerlPackage rec {
     name = "Text-Markdown-1.0.26";
     src = fetchurl {
@@ -2837,7 +3312,16 @@ rec {
     propagatedBuildInputs = [TextAligner];
   };
 
-  TieIxhash = buildPerlPackage rec {
+  Throwable = buildPerlPackage rec {
+    name = "Throwable-0.102080";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "0vjzlh23rpmgr5h8qfh9pb3kqw0j8sxn2bpbc1p2306dwqwbymm5";
+    };
+    propagatedBuildInputs = [ DevelStackTrace Moose ];
+  };
+
+  TieIxHash = buildPerlPackage rec {
     name = "Tie-IxHash-1.21";
     src = fetchurl {
       url = "mirror://cpan/authors/id/G/GS/GSAR/${name}.tar.gz";
@@ -2862,11 +3346,11 @@ rec {
     };
   };
 
-  TimeHiRes = buildPerlPackage {
-    name = "Time-HiRes-1.9715";
+  TimeHiRes = buildPerlPackage rec {
+    name = "Time-HiRes-1.9724";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JH/JHI/Time-HiRes-1.9715.tar.gz;
-      sha256 = "0pgqrfkysy3mdcx5nd0x8c80lgqb7rkb3nrkii3vc576dcbpvw0i";
+      url = "mirror://cpan/modules/by-module/Time/${name}.tar.gz";
+      sha256 = "0lrwfixr3qg8j4vkfax1z4gqiccq0v0jyvc7db40qpvi88655gjs";
     };
   };
 
@@ -2897,11 +3381,11 @@ rec {
     buildInputs = [TestException];
   };
 
-  FontTTF = buildPerlPackage {
-    name = "perl-Font-TTF-0.43";
+  TryTiny = buildPerlPackage rec {
+    name = "Try-Tiny-0.09";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MH/MHOSKEN/Font-TTF-0.43.tar.gz;
-      sha256 = "0782mj5n5a2qbghvvr20x51llizly6q5smak98kzhgq9a7q3fg89";
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "1fjhwq347wa74h94nd54lx194s26s7x9whfc0kkpcng2sgs54vvs";
     };
   };
 
@@ -2913,19 +3397,12 @@ rec {
     };
   };
 
-  UNIVERSALisa = stdenv.mkDerivation rec {
+  UNIVERSALisa = buildModule rec {
     name = "UNIVERSAL-isa-1.01";
     src = fetchurl {
       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/${name}.tar.gz";
       sha256 = "0iksklmfhiaxg2rsw827n97k1mris6dg596rdwk2gmrwl0rsk0wz";
     };
-    # Urgh, this package doesn't have a Makefile.PL.
-    buildInputs = [perl];
-    configurePhase = "perl Build.PL --prefix=$out";
-    buildPhase = "perl ./Build";
-    doCheck = true;
-    checkPhase = "perl ./Build test";
-    installPhase = "perl ./Build install";
   };
 
   UNIVERSALrequire = buildPerlPackage {
@@ -2954,10 +3431,26 @@ rec {
   };
 
   VariableMagic = buildPerlPackage rec {
-    name = "Variable-Magic-0.36";
+    name = "Variable-Magic-0.46";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/V/VP/VPIT/${name}.tar.gz";
-      sha256 = "15305b54e948f74a0cf77c1c6bd8aa399caac12d6b1dee8cc4a69ff7d1421db6";
+      url = "mirror://cpan/modules/by-module/Variable/${name}.tar.gz";
+      sha256 = "0z8fbna6nhn0hlvj1qbjw7yjn3dzl7pz1psmc8amv8kg6avgj33q";
+    };
+  };
+
+  version = buildPerlPackage rec {
+    name = "version-0.93";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/version/${name}.tar.gz";
+      sha256 = "1lfq27hshq1gvdqksicp22ag8n1aiijhjw68q3r254kp6zimrz69";
+    };
+  };
+
+  VersionRequirements = buildPerlPackage rec {
+    name = "Version-Requirements-0.101020";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "18bcfxwn21gcih0bc6p1sp42iis8lwnqh7fpprkniflj8q0ps0x4";
     };
   };
 
@@ -3044,6 +3537,15 @@ rec {
     makeMakerFlags = "EXPATLIBPATH=${pkgs.expat}/lib EXPATINCPATH=${pkgs.expat}/include";
   };
 
+  XMLXPath = buildPerlPackage {
+    name = "XML-XPath-1.13";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSERGEANT/XML-XPath-1.13.tar.gz;
+      sha256 = "0xjmfwda7m3apj7yrjzmkm4sjwnz4bqyaynzgcwqhx806kgw4j9a";
+    };
+    propagatedBuildInputs = [XMLParser];
+  };
+
   XMLRegExp = buildPerlPackage {
     name = "XML-RegExp-0.03";
     src = fetchurl {
@@ -3079,11 +3581,11 @@ rec {
     propagatedBuildInputs = [XMLParser];
   };
 
-  XMLWriter = buildPerlPackage {
-    name = "XML-Writer-0.602";
+  XMLWriter = buildPerlPackage rec {
+    name = "XML-Writer-0.612";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.602.tar.gz;
-      sha256 = "0kdi022jcn9mwqsxy2fiwl2cjlid4x13r038jvi426fhjknl11nl";
+      url = "mirror://cpan/authors/id/J/JO/JOSEPHW/${name}.tar.gz";
+      sha256 = "1prvgbjxynxg6061qxzfbbimjvil04513hf3hsilv0hdg58nb9jk";
     };
   };
 
@@ -3111,4 +3613,12 @@ rec {
     };
   };
 
+  YAMLTiny = buildPerlPackage rec {
+    name = "YAML-Tiny-1.50";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/YAML/${name}.tar.gz";
+      sha256 = "0ag1llgf0qn3sxy832xhvc1mq6s0bdv13ij7vh7df8nv0jnxyyd3";
+    };
+  };
+
 }
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index f44306785709..259b9898f36b 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -24,6 +24,10 @@ rec {
       '';
   };
 
+  pc_simplekernel = pc // {
+    kernelAutoModules = false;
+  };
+
   sheevaplug = {
     name = "sheevaplug";
     kernelMajor = "2.6";
@@ -55,6 +59,12 @@ rec {
         NFSD_V3 y
         NFSD_V3_ACL y
         NFSD_V4 y
+        NETFILTER y
+        IP_NF_IPTABLES y
+        IP_NF_FILTER y
+        IP_NF_MATCH_ADDRTYPE y
+        IP_NF_TARGET_LOG y
+        IP_NF_MANGLE y
 
         # Fail to build
         DRM n
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 346648c94d3b..08b0281e66c6 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1,8 +1,84 @@
-{ pkgs, python, buildPythonPackage }:
+{ pkgs, python }:
+
+let pythonPackages = python.modules // rec {
+
+  inherit python;
 
-rec {
   inherit (pkgs) fetchurl fetchsvn stdenv;
 
+
+  buildPythonPackage = import ../development/python-modules/generic {
+    inherit (pkgs) lib;
+    inherit python wrapPython setuptools;
+  };
+
+
+  setuptools = import ../development/python-modules/setuptools {
+    inherit (pkgs) stdenv fetchurl;
+    inherit python wrapPython;
+  };
+
+
+  wrapPython = pkgs.makeSetupHook
+    { deps = pkgs.makeWrapper;
+      substitutions.libPrefix = python.libPrefix;
+    }
+    ../development/python-modules/generic/wrap.sh;
+
+
+  anyjson = buildPythonPackage rec {
+    name = "anyjson-0.3.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/a/anyjson/${name}.tar.gz";
+      md5 = "2b53b5d53fc40af4da7268d3c3e35a50";
+    };
+
+    buildInputs = [ nose ];
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/anyjson/;
+      description = "Wrapper that selects the best available JSON implementation";
+    };
+  };
+
+
+  amqplib = buildPythonPackage rec {
+    name = "amqplib-0.6.1";
+
+    src = fetchurl {
+      url = "http://py-amqplib.googlecode.com/files/${name}.tgz";
+      sha1 = "f124e5e4a6644bf6d1734032a01ac44db1b25a29";
+    };
+
+    doCheck = false;
+
+    meta = {
+      homepage = http://code.google.com/p/py-amqplib/;
+      description = "Python client for the Advanced Message Queuing Procotol (AMQP)";
+    };
+  };
+
+
+  apsw = buildPythonPackage rec {
+    name = "apsw-3.7.6.2-r1";
+
+    src = fetchurl {
+      url = "http://apsw.googlecode.com/files/${name}.zip";
+      sha1 = "fa4aec08e59fa5964197f59ba42408d64031675b";
+    };
+
+    buildInputs = [ pkgs.unzip pkgs.sqlite ];
+
+    doCheck = false;
+
+    meta = {
+      description = "A Python wrapper for the SQLite embedded relational database engine";
+      homepage = http://code.google.com/p/apsw/;
+    };
+  };
+
+
   argparse = buildPythonPackage (rec {
     name = "argparse-1.1";
 
@@ -34,6 +110,16 @@ rec {
     };
   });
 
+  astng = buildPythonPackage rec {
+    name = "logilab-astng-0.21.1";
+
+    src = fetchurl {
+      url = "http://ftp.logilab.org/pub/astng/${name}.tar.gz";
+      sha256 = "0rqp2vwrnv6gkzdd96j078h1sz26plh49cmnyswy2wb6l4wans67";
+    };
+    propagatedBuildInputs = [logilabCommon];
+  };
+
   beautifulsoap = buildPythonPackage (rec {
     name = "beautifulsoap-3.0.8";
 
@@ -54,12 +140,38 @@ rec {
     };
   });
 
-  boto = buildPythonPackage (rec {
+
+  # euca2ools (and maybe Nova) needs boto 1.9, 2.0 doesn't work.
+  boto_1_9 = buildPythonPackage (rec {
     name = "boto-1.9b";
 
     src = fetchurl {
       url = "http://boto.googlecode.com/files/${name}.tar.gz";
-      sha256 = "0kir3ddm79rxdf7wb5czmxpbnqzgj3j966q4mach29kkb98p48wz";
+      sha1 = "00a033b0a593c3ca82927867950f73d88b831155";
+    };
+
+    meta = {
+      homepage = http://code.google.com/p/boto/;
+
+      license = "bsd";
+
+      description = "Python interface to Amazon Web Services";
+
+      longDescription = ''
+        The boto module is an integrated interface to current and
+        future infrastructural services offered by Amazon Web
+        Services.  This includes S3, SQS, EC2, among others.
+      '';
+    };
+  });
+
+
+  boto = buildPythonPackage (rec {
+    name = "boto-2.0b4";
+
+    src = fetchurl {
+      url = "http://boto.googlecode.com/files/${name}.tar.gz";
+      sha1 = "3e1deab58b8432d01baef1d37f17cbf6fa999f8d";
     };
 
     meta = {
@@ -77,6 +189,46 @@ rec {
     };
   });
 
+
+  carrot = buildPythonPackage rec {
+    name = "carrot-0.10.7";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/c/carrot/${name}.tar.gz";
+      md5 = "530a0614de3a669314c3acd4995c54d5";
+    };
+
+    buildInputs = [ nose ];
+
+    propagatedBuildInputs = [ amqplib anyjson ];
+
+    doCheck = false; # depends on the network
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/carrot;
+      description = "AMQP Messaging Framework for Python";
+    };
+  };
+
+
+  cheetah = buildPythonPackage rec {
+    version = "2.4.4";
+    name = "cheetah-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${version}.tar.gz";
+      md5 = "853917116e731afbc8c8a43c37e6ddba";
+    };
+
+    propagatedBuildInputs = [ markdown ];
+
+    meta = {
+      homepage = http://www.cheetahtemplate.org/;
+      description = "A template engine and code generation tool";
+    };
+  };
+
+
   cherrypy = buildPythonPackage (rec {
     name = "cherrypy-3.1.2";
 
@@ -133,18 +285,23 @@ rec {
   });
 
   darcsver = buildPythonPackage (rec {
-    name = "darcsver-1.5.1";
+    name = "darcsver-1.7.2";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
-      sha256 = "e643d607f27e4b8cc96565432ff1abdc2af5e9061c70798e2f33e78c07b66b3a";
+      md5 = "94ca7e8c9ea0f69c0f3fc6f9fc88f65a";
     };
 
+    buildInputs = [ mock ];
+
     # Note: We don't actually need to provide Darcs as a build input.
     # Darcsver will DTRT when Darcs isn't available.  See news.gmane.org
     # http://thread.gmane.org/gmane.comp.file-systems.tahoe.devel/3200 for a
     # discussion.
 
+    # Gives "ValueError: Empty module name" with no clue as to why.
+    doCheck = false;
+
     meta = {
       description = "Darcsver, generate a version number from Darcs history";
 
@@ -171,6 +328,74 @@ rec {
     };
   });
 
+
+  decorator = buildPythonPackage rec {
+    name = "decorator-3.3.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/d/decorator/${name}.tar.gz";
+      md5 = "a8fc62acd705f487a71bc406e19e0cc6";
+    };
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/decorator;
+    };
+  };
+
+
+  distutils_extra = buildPythonPackage rec {
+    name = "distutils-extra-2.26";
+
+    src = fetchurl {
+      url = "http://launchpad.net/python-distutils-extra/trunk/2.26/+download/python-${name}.tar.gz";
+      md5 = "7caded30a45907b5cdb10ac4182846eb";
+    };
+
+    meta = {
+      homepage = https://launchpad.net/python-distutils-extra;
+      description = "Enhancements to Python's distutils";
+    };
+  };
+
+
+  dtopt = buildPythonPackage rec {
+    name = "dtopt-0.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/d/dtopt/${name}.tar.gz";
+      md5 = "9a41317149e926fcc408086aedee6bab";
+    };
+
+    meta = {
+      description = "Add options to doctest examples while they are running";
+      homepage = http://pypi.python.org/pypi/dtopt;
+    };
+  };
+
+
+  eventlet = buildPythonPackage rec {
+    name = "eventlet-0.9.16";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/e/eventlet/${name}.tar.gz";
+      md5 = "4728e3bd7f72763c1e5dccac0296f8ea";
+    };
+
+    buildInputs = [ nose httplib2  ];
+
+    propagatedBuildInputs = [ greenlet ];
+
+    PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
+
+    doCheck = false; # !!! fix; tests access the network
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/eventlet/;
+      description = "A concurrent networking library for Python";
+    };
+  };
+
+
   flup = buildPythonPackage (rec {
     name = "flup-1.0.2";
 
@@ -219,21 +444,13 @@ rec {
   });
 
   genshi = buildPythonPackage {
-    name = "genshi-0.5.1";
+    name = "genshi-0.6";
 
     src = fetchurl {
-      url = http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.bz2;
-      sha256 = "1g2xw3zvgz59ilv7mrdlnvfl6ph8lwflwd4jr6zwrca2zhj7d8rs";
+      url = http://ftp.edgewall.com/pub/genshi/Genshi-0.6.tar.gz;
+      sha256 = "0jrajyppdzb3swcxv3w1mpp88vcy7400gy1v2h2gm3pq0dmggaij";
     };
 
-    patches =
-      [ # Fix `make check' (http://bugs.gentoo.org/276299)
-        (fetchurl {
-          url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/dev-python/genshi/files/genshi-0.5.1_test_fix.patch?rev=1.1";
-          sha256 = "019skkas07lc2kjy5br5jhhf9dqfy4fs389m5f4ws3fc62fklwhk";
-        })
-      ];
-
     buildInputs = [ pkgs.setuptools ];
 
     meta = {
@@ -249,6 +466,111 @@ rec {
     };
   };
 
+  genzshcomp = buildPythonPackage {
+    name = "genzshcomp-0.2.2";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/g/genzshcomp/genzshcomp-0.2.2.tar.gz";
+      sha256 = "0bhiyx41kilvy04cgjbvjy2r4b6l7zz31fbrg3l6lvnqm26nihb0";
+    };
+
+    buildInputs = [ pkgs.setuptools ];
+
+    meta = {
+      description = "automatically generated zsh completion function for Python's option parser modules";
+      license = "BSD";
+      maintainers = [ stdenv.lib.maintainers.simons ];
+      platforms = python.meta.platforms;
+    };
+  };
+
+
+  gflags = buildPythonPackage rec {
+    name = "gflags-1.5.1";
+
+    src = fetchurl {
+      url = "http://python-gflags.googlecode.com/files/python-${name}.tar.gz";
+      sha256 = "1p8blsc3z1wasi9dhbjij7m2czps17dll3cpj37v97fv5ww7al9v";
+    };
+
+    meta = {
+      homepage = http://code.google.com/p/python-gflags/;
+      description = "A module for command line handling, similar to Google's gflags for C++";
+    };
+  };
+
+
+  glance = buildPythonPackage rec {
+    name = "glance-0.1.7";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/g/glance/${name}.tar.gz";
+      md5 = "e733713ccd23e4a6253386a47971cfb5";
+    };
+
+    buildInputs = [ nose mox ];
+
+    propagatedBuildInputs = [ gflags sqlalchemy webob routes eventlet python.modules.ssl ];
+
+    PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
+
+    meta = {
+      homepage = https://launchpad.net/glance;
+      description = "Services for discovering, registering, and retrieving virtual machine images";
+    };
+  };
+
+
+  greenlet = buildPythonPackage rec {
+    name = "greenlet-0.3.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/g/greenlet/${name}.tar.gz";
+      md5 = "8d75d7f3f659e915e286e1b0fa0e1c4d";
+    };
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/greenlet;
+      description = "Module for lightweight in-process concurrent programming";
+    };
+  };
+
+
+  httplib2 = buildPythonPackage rec {
+    name = "httplib2-0.6.0";
+
+    src = fetchurl {
+      url = "http://httplib2.googlecode.com/files/${name}.tar.gz";
+      sha256 = "134pldyxayc0x4akzzvkciz2kj1w2dsim1xvd9b1qrpmba70dpjq";
+    };
+
+    doCheck = false; # doesn't have a test
+
+    meta = {
+      homepage = http://code.google.com/p/httplib2/;
+      description = "A comprehensive HTTP client library";
+    };
+  };
+
+
+  ipy = buildPythonPackage rec {
+    version = "0.74";
+    name = "ipy-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/I/IPy/IPy-${version}.tar.gz";
+      md5 = "f4f7ddc7c5e55a47222a5cc6c0a87b6d";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "Class and tools for handling of IPv4 and IPv6 addresses and networks";
+      homepage = http://pypi.python.org/pypi/IPy;
+    };
+  };
+
+
   jinja2 = buildPythonPackage {
     name = "jinja2-2.2.1";
 
@@ -269,6 +591,7 @@ rec {
     };
   };
 
+
   libcloud = buildPythonPackage (rec {
     name = "libcloud-0.3.1";
 
@@ -287,6 +610,33 @@ rec {
     };
   });
 
+
+  lockfile = buildPythonPackage rec {
+    name = "lockfile-0.9.1";
+
+    src = fetchurl {
+      url = "http://pylockfile.googlecode.com/files/${name}.tar.gz";
+      sha1 = "1eebaee375641c9f29aeb21768f917dd2b985752";
+    };
+
+    doCheck = false; # no tests
+
+    meta = {
+      homepage = http://code.google.com/p/pylockfile/;
+      description = "Platform-independent advisory file locking capability for Python applications";
+    };
+  };
+
+  logilabCommon = buildPythonPackage rec {
+    name = "logilab-common-0.56.0";
+
+    src = fetchurl {
+      url = "http://ftp.logilab.org/pub/common/${name}.tar.gz";
+      sha256 = "14p557nqypbd10d8k7qs6jlm58pksiwh86wvvl0axyki00hj6971";
+    };
+    propagatedBuildInputs = [unittest2];
+  };
+
   lxml = buildPythonPackage ( rec {
     name = "lxml-2.2.2";
 
@@ -304,6 +654,66 @@ rec {
     };
   });
 
+
+  magic = pkgs.stdenv.mkDerivation rec {
+    name = "python-${pkgs.file.name}";
+
+    src = pkgs.file.src;
+
+    buildInputs = [ python pkgs.file ];
+
+    configurePhase = "cd python";
+
+    buildPhase = "python setup.py build";
+
+    installPhase = "python setup.py install --prefix=$out";
+
+    meta = {
+      description = "A Python wrapper around libmagic";
+      homepage = http://www.darwinsys.com/file/;
+    };
+  };
+
+
+  m2crypto = buildPythonPackage rec {
+    version = "0.21.1";
+    name = "m2crypto-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${version}.tar.gz";
+      md5 = "f93d8462ff7646397a9f77a2fe602d17";
+    };
+
+    buildInputs = [ pkgs.swig pkgs.openssl ];
+
+    buildPhase = "python setup.py build_ext --openssl=${pkgs.openssl}";
+
+    doCheck = false; # another test that depends on the network.
+
+    meta = {
+      description = "A Python crypto and SSL toolkit";
+      homepage = http://chandlerproject.org/Projects/MeTooCrypto;
+    };
+  };
+
+
+  markdown = buildPythonPackage rec {
+    version = "2.0.3";
+    name = "markdown-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/M/Markdown/Markdown-2.0.3.tar.gz";
+      md5 = "751e8055be2433dfd1a82e0fb1b12f13";
+    };
+
+    doCheck = false;
+
+    meta = {
+      homepage = http://www.freewisdom.org/projects/python-markdown;
+    };
+  };
+
+
   matplotlib = buildPythonPackage ( rec {
     name = "matplotlib-0.99.1.2";
 
@@ -341,25 +751,16 @@ rec {
     };
   });
 
+
   mock = buildPythonPackage (rec {
-    name = "mock-0.1.0";
+    name = "mock-0.7.0";
 
     src = fetchurl {
-      url = "mirror://sourceforge/python-mock/pythonmock-0.1.0.zip";
-      sha256 = "0r17f8sjq6pjlfh2sq2x80bd5r6y9sb3n5l05x5sf25iaba7sg9z";
+      url = "http://pypi.python.org/packages/source/m/mock/${name}.tar.gz";
+      md5 = "be029f8c963c55250a452c400e10cf42";
     };
 
-    buildInputs = [ pkgs.unzip ];
-
-    phases = "unpackPhase";
-
-    unpackPhase =
-      '' mkdir "${name}"
-         unzip "$src"
-
-         ensureDir "$out/lib/${python.libPrefix}/site-packages"
-         cp -v mock.py "$out/lib/${python.libPrefix}/site-packages"
-      '';
+    buildInputs = [ unittest2 ];
 
     meta = {
       description = "Mock objects for Python";
@@ -370,24 +771,23 @@ rec {
     };
   });
 
-  mock060 = pkgs.lowPrio (buildPythonPackage (rec {
-    # TODO: This appears to be an unofficially hacked version of 'mock'
-    #       from above. This could probably replace the previous
-    #       package, but I don't have time to test that right now.
-    name = "mock-0.6.0";
+
+  mox = buildPythonPackage rec {
+    name = "mox-0.5.3";
 
     src = fetchurl {
-      url = "http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-sdists/${name}.tar.bz2";
-      sha256 = "1vwxzr2sjyl3x5jqgz9swpmp6cyhmwmab65akysfglf6acmn3czf";
+      url = "http://pymox.googlecode.com/files/${name}.tar.gz";
+      sha1 = "b71aeaacf31898c3b38d8b9ca5bcc0664499c0de";
     };
-    doCheck = false;            # Package doesn't have any tests.
+
+    doCheck = false;
 
     meta = {
-      description = "Mock objects for Python, provided by tahoe-lafs.org";
-      homepage = "http://python-mock.sourceforge.net/";
-      license = "mBSD";
+      homepage = http://code.google.com/p/pymox/;
+      description = "A mock object framework for Python.";
     };
-  }));
+  };
+
 
   mutagen = buildPythonPackage (rec {
     name = "mutagen-1.20";
@@ -405,6 +805,26 @@ rec {
   });
 
 
+  MySQL_python = buildPythonPackage {
+    name = "MySQL-python-1.2.3";
+
+    doCheck = false;
+
+    src = fetchurl {
+      url = mirror://sourceforge/mysql-python/MySQL-python-1.2.3.tar.gz;
+      sha256 = "0vkyg9dmj29hzk7fy77f42p7bfj28skyzsjsjry4wqr3z6xnzrkx";
+    };
+
+    propagatedBuildInputs = [ pkgs.mysql pkgs.zlib nose ];
+
+    meta = {
+      description = "MySQL database binding for Python";
+
+      homepage = http://sourceforge.net/projects/mysql-python;
+    };
+  };
+
+
   namebench = buildPythonPackage (rec {
     name = "namebench-1.0.5";
 
@@ -438,6 +858,24 @@ rec {
     };
   });
 
+
+  netaddr = buildPythonPackage rec {
+    name = "netaddr-0.7.5";
+
+    src = fetchurl {
+      url = "https://github.com/downloads/drkjam/netaddr/${name}.tar.gz";
+      sha256 = "0ssxic389rdc79zkz8dxcjpqdi5qs80h12khkag410cl9cwk11f2";
+    };
+
+    doCheck = false; # there is no test command
+
+    meta = {
+      homepage = https://github.com/drkjam/netaddr/;
+      description = "A network address manipulation library for Python";
+    };
+  };
+
+
   nevow = buildPythonPackage (rec {
     name = "nevow-${version}";
     version = "0.10.0";
@@ -480,13 +918,20 @@ rec {
   });
 
   nose = buildPythonPackage {
-    name = "nose-0.11.3";
-    
+    name = "nose-1.0.0";
+
     src = fetchurl {
-      url = http://python-nose.googlecode.com/files/nose-0.11.3.tar.gz;
-      sha256 = "1hl3lbwdfl2a64q3dxc73kbiks4iwx5cixlbavyryd8xdr7iziww";
+      url = http://somethingaboutorange.com/mrl/projects/nose/nose-1.0.0.tar.gz;
+      sha256 = "0qm6q232h5r071gwfkiszkmfqc60k7abl15bk495lcdkk62m91db";
     };
-    
+
+    # Fails with ‘This platform lacks a functioning sem_open
+    # implementation, therefore, the required synchronization
+    # primitives needed will not function, see issue 3770.’ However,
+    # our Python does seem to be built with the necessary
+    # functionality.
+    doCheck = false;
+
     meta = {
       description = "A unittest-based testing framework for python that makes writing and running tests easier";
     };
@@ -502,6 +947,8 @@ rec {
 
     buildInputs = [ python pkgs.pkgconfig pkgs.libnotify pkgs.pygobject pkgs.pygtk pkgs.gtkLibs.glib pkgs.gtkLibs.gtk pkgs.dbus_glib ];
 
+    postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
+    
     meta = {
       description = "Python bindings for libnotify";
       homepage = http://www.galago-project.org/;
@@ -533,6 +980,28 @@ rec {
     };
   });
 
+  optfunc = buildPythonPackage ( rec {
+    name = "optfunc-git";
+
+    src = pkgs.fetchgit {
+      url = "http://github.com/simonw/optfunc.git";
+      rev = "e3fa034a545ed94ac5a039cf5b170c7d0ee21b7b";
+    };
+
+    installCommand = ''
+      dest=$(toPythonPath $out)/optfunc
+      ensureDir $dest
+      cp * $dest/
+    '';
+
+    doCheck = false;
+
+    meta = {
+      description = "A new experimental interface to optparse which works by introspecting a function definition";
+      homepage = "http://simonwillison.net/2009/May/28/optfunc/";
+    };
+  });
+
   ply = buildPythonPackage (rec {
     name = "ply-3.2";
 
@@ -600,6 +1069,46 @@ rec {
     };
   };
 
+
+  paste = buildPythonPackage rec {
+    name = "paste-1.7.5.1";
+
+    src = fetchurl {
+      url = http://pypi.python.org/packages/source/P/Paste/Paste-1.7.5.1.tar.gz;
+      md5 = "7ea5fabed7dca48eb46dc613c4b6c4ed";
+    };
+
+    buildInputs = [ nose ];
+
+    doCheck = false; # some files required by the test seem to be missing
+
+    meta = {
+      description = "Tools for using a Web Server Gateway Interface stack";
+      homepage = http://pythonpaste.org/;
+    };
+  };
+
+
+  paste_deploy = buildPythonPackage rec {
+    version = "1.3.4";
+    name = "paste-deploy-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${version}.tar.gz";
+      md5 = "eb4b3e2543d54401249c2cbd9f2d014f";
+    };
+
+    buildInputs = [ nose ];
+
+    doCheck = false; # can't find "FakeEgg.app", apparently missing from the tarball
+
+    meta = {
+      description = "Load, configure, and compose WSGI applications and servers";
+      homepage = http://pythonpaste.org/deploy/;
+    };
+  };
+
+
   pexpect = buildPythonPackage {
     name = "pexpect-2.3";
 
@@ -636,6 +1145,22 @@ rec {
     };
   };
 
+
+  prettytable = buildPythonPackage rec {
+    name = "prettytable-0.5";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/P/PrettyTable/${name}.tar.gz";
+      md5 = "13a6930d775395f393afd86948afa4fa";
+    };
+
+    meta = {
+      description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
+      homepage = http://code.google.com/p/prettytable/;
+    };
+  };
+
+
   psycopg2 = buildPythonPackage rec {
     name = "psycopg2-2.0.13";
 
@@ -699,6 +1224,79 @@ rec {
     };
   });
 
+
+  pycurl =
+    let libcurl = pkgs.stdenv.lib.overrideDerivation pkgs.curl
+      (oldAttrs: {
+        configureFlags =
+          (if oldAttrs ? configureFlags then oldAttrs.configureFlags else "" )
+          + " --enable-static";
+      });
+    in
+  buildPythonPackage (rec {
+    name = "pycurl-7.19.0";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
+      sha256 = "0hh6icdbp7svcq0p57zf520ifzhn7jw64x07k99j7h57qpy2sy7b";
+    };
+
+    buildInputs = [ libcurl ];
+
+    doCheck = false;
+
+    postInstall = ''
+      find $out -name easy-install.pth | xargs rm -v
+      find $out -name 'site.py*' | xargs rm -v
+    '';
+
+    meta = {
+      homepage = http://pycurl.sourceforge.net/;
+
+      description = "Python wrapper for libcurl";
+
+      platforms = stdenv.lib.platforms.linux;
+    };
+  });
+
+  pylint = buildPythonPackage rec {
+    name = "pylint-0.23.0";
+
+    src = fetchurl {
+      url = "http://ftp.logilab.org/pub/pylint/${name}.tar.gz";
+      sha256 = "07091avcc2b374i5f3blszmawjcin8xssjfryz91qbxybb8r7c6d";
+    };
+    propagatedBuildInputs = [astng];
+  };
+
+  pymacs = pkgs.stdenv.mkDerivation rec {
+    version = "v0.24-beta2";
+    name = "Pymacs-${version}";
+
+    src = fetchurl {
+      url = "https://github.com/pinard/Pymacs/tarball/${version}";
+      name = "${name}.tar.gz";
+      sha256 = "0nzb3wrxwy0cmmj087pszkwgj2v22x0y5m4vxb6axz94zfl02r8j";
+    };
+
+    buildInputs = [ python ];
+
+    configurePhase = ''
+      python p4 -C p4config.py *.in Pymacs contrib tests
+    '';
+
+    installPhase = ''
+      python setup.py install --prefix=$out
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Emacs Lisp to Python interface";
+      homepage = http://pymacs.progiciels-bpi.ca;
+      license = licenses.gpl2;
+      maintainers = [ maintainers.goibhniu ];
+    };
+  };
+
   pyopengl =
     let version = "3.0.0b5";
     in
@@ -781,6 +1379,54 @@ rec {
     };
   });
 
+
+  pysvn = pkgs.stdenv.mkDerivation {
+    name = "pysvn-1.7.2";
+
+    src = fetchurl {
+      url = "http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.2.tar.gz";
+      sha256 = "2b2980d200515e754e00a12d99dbce25c1ea90fddf8cba2bfa354c9305c5e455";
+    };
+
+    buildInputs = [ python pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
+      ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []);
+
+    # There seems to be no way to pass that path to configure.
+    NIX_CFLAGS_COMPILE="-I${pkgs.aprutil}/include/apr-1";
+
+    configurePhase = ''
+      cd Source
+      python setup.py backport
+      python setup.py configure \
+        --apr-inc-dir=${pkgs.apr}/include/apr-1 \
+        --apr-lib-dir=${pkgs.apr}/lib \
+        --svn-root-dir=${pkgs.subversion}
+    '' + (if !stdenv.isDarwin then "" else ''
+      sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
+    '');
+
+    # The regression test suite expects locale support, which our glibc
+    # doesn't have by default.
+    doCheck = false;
+    checkPhase = "make -C ../Tests";
+
+    installPhase = ''
+      dest=$(toPythonPath $out)/pysvn
+      ensureDir $dest
+      cp pysvn/__init__.py $dest/
+      cp pysvn/_pysvn*.so $dest/
+      ensureDir $out/share/doc
+      mv -v ../Docs $out/share/doc/pysvn-1.7.2
+      rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py
+    '';
+
+    meta = {
+      description = "Python bindings for Subversion";
+      homepage = "http://pysvn.tigris.org/";
+    };
+  };
+
+
   pyutil = buildPythonPackage (rec {
     name = "pyutil-1.7.9";
 
@@ -853,94 +1499,88 @@ rec {
     };
   });
 
-  pysvn = pkgs.stdenv.mkDerivation {
-    name = "pysvn-1.7.2";
+  rope = pkgs.stdenv.mkDerivation rec {
+    version = "0.9.3";
+    name = "rope-${version}";
 
     src = fetchurl {
-      url = "http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.2.tar.gz";
-      sha256 = "2b2980d200515e754e00a12d99dbce25c1ea90fddf8cba2bfa354c9305c5e455";
+      url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz";
+      sha256 = "1092rlsfna7rm1jkdanilsmw7rr3hlkgyji02xfd02wfcm8xa2i7";
     };
 
-    buildInputs = [ python pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
-      ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []);
+    buildInputs = [ python ];
 
-    # There seems to be no way to pass that path to configure.
-    NIX_CFLAGS_COMPILE="-I${pkgs.aprutil}/include/apr-1";
+    installPhase = ''
+      python setup.py install --prefix=$out
+    '';
 
-    configurePhase = ''
-      cd Source
-      python setup.py backport
-      python setup.py configure \
-        --apr-inc-dir=${pkgs.apr}/include/apr-1 \
-        --apr-lib-dir=${pkgs.apr}/lib \
-        --svn-root-dir=${pkgs.subversion}
-    '' + (if !stdenv.isDarwin then "" else ''
-      sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
-    '');
+    meta = with stdenv.lib; {
+      description = "python refactoring library";
+      homepage = http://rope.sf.net;
+      maintainers = [ maintainers.goibhniu ];
+      license = licenses.gpl2;
+    };
+  };
 
-    # The regression test suite expects locale support, which our glibc
-    # doesn't have by default.
-    doCheck = false;
-    checkPhase = "make -C ../Tests";
+  ropemacs = pkgs.stdenv.mkDerivation rec {
+    version = "0.6";
+    name = "ropemacs-${version}";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/rope/${name}.tar.gz";
+      sha256 = "1afqybmjn7fqkwx8y8kx1kfx181ix73cbq3a0d5n7ryjm7k1r0s4";
+    };
+
+    buildInputs = [ python ];
 
     installPhase = ''
-      dest=$(toPythonPath $out)/pysvn
-      ensureDir $dest
-      cp pysvn/__init__.py $dest/
-      cp pysvn/_pysvn*.so $dest/
-      ensureDir $out/share/doc
-      mv -v ../Docs $out/share/doc/pysvn-1.7.2
-      rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py
+      python setup.py install --prefix=$out
     '';
 
-    meta = {
-      description = "Python bindings for Subversion";
-      homepage = "http://pysvn.tigris.org/";
-    };
+     meta = with stdenv.lib; {
+       description = "a plugin for performing python refactorings in emacs";
+       homepage = http://rope.sf.net/ropemacs.html;
+       maintainers = [ maintainers.goibhniu ];
+       license = licenses.gpl2;
+     };
   };
 
-  magic = buildPythonPackage rec {
-    name = "magic-0.3.1";
+
+  routes = buildPythonPackage rec {
+    name = "routes-1.12.3";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/p/python-magic/python-${name}.tar.gz";
-      md5 = "397cff81d2502e81fd3830a61ca2ad2c";
+      url = http://pypi.python.org/packages/source/R/Routes/Routes-1.12.3.tar.gz;
+      md5 = "9740ff424ff6b841632c784a38fb2be3";
     };
 
-    preConfigure =
-      ''
-        # Ensure that the module can find libmagic by hard-coding the
-        # path to libmagic.so.  Maybe there is a nicer way.
-        substituteInPlace magic.py --replace \
-          "ctypes.util.find_library('magic')" \
-          "'${pkgs.file}/lib/libmagic.so'"
-      '';
+    propagatedBuildInputs = [ paste webtest ];
 
     meta = {
-      description = "A Python wrapper around libmagic";
-      homepage = https://github.com/ahupp/python-magic;
+      description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
+      homepage = http://routes.groovie.org/;
     };
   };
-  
-  MySQL_python = buildPythonPackage {
-    name = "MySQL-python-1.2.3";
-    
-    doCheck = false;
-    
+
+
+  scripttest = buildPythonPackage rec {
+    version = "1.1.1";
+    name = "scripttest-${version}";
+
     src = fetchurl {
-      url = mirror://sourceforge/mysql-python/MySQL-python-1.2.3.tar.gz;
-      sha256 = "0vkyg9dmj29hzk7fy77f42p7bfj28skyzsjsjry4wqr3z6xnzrkx";
+      url = "http://pypi.python.org/packages/source/S/ScriptTest/ScriptTest-${version}.tar.gz";
+      md5 = "592ce890764c3f546d35b4d7c40c32ef";
     };
-    
-    propagatedBuildInputs = [ pkgs.mysql pkgs.zlib nose ];
-    
-    meta = {
-      description = "MySQL database binding for Python";
 
-      homepage = http://sourceforge.net/projects/mysql-python;
+    buildInputs = [ nose ];
+
+    meta = {
+      description = "A library for testing interactive command-line applications";
+      homepage = http://pypi.python.org/pypi/ScriptTest/;
     };
   };
 
+
   setuptoolsDarcs = buildPythonPackage {
     name = "setuptools-darcs-1.2.9";
 
@@ -963,11 +1603,11 @@ rec {
   };
 
   setuptoolsTrial = buildPythonPackage {
-    name = "setuptools-trial-0.5.9";
+    name = "setuptools-trial-0.5.12";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.9.tar.gz";
-      sha256 = "4e3b5a183b9cf6ff637777c9852dfe8eaab156289e7a578525d68b1cfb3c9f29";
+      url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.12.tar.gz";
+      md5 = "f16f4237c9ee483a0cd13208849d96ad";
     };
 
     propagatedBuildInputs = [ twisted ];
@@ -982,11 +1622,11 @@ rec {
   };
 
   simplejson = buildPythonPackage (rec {
-    name = "simplejson-2.1.1";
+    name = "simplejson-2.1.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/s/simplejson/${name}.tar.gz";
-      sha256 = "8c1c833c5b997bf7b75bf9a02a2d2884b8427816228eac0fb84791be44d2f612";
+      md5 = "58d9b1d8fa17ea4ce205cea088607e02";
     };
 
     meta = {
@@ -1006,19 +1646,84 @@ rec {
     };
   });
 
+
+  sqlalchemy = buildPythonPackage {
+    name = "sqlalchemy-0.6.6";
+
+    src = fetchurl {
+      url = mirror://sourceforge/sqlalchemy/0.6.6/SQLAlchemy-0.6.6.tar.gz;
+      sha256 = "0inj9b66pi447cw500mqn7d09dij20ic3k5bnyhj6rpdl2l83a0l";
+    };
+
+    buildInputs = [ nose ];
+
+    propagatedBuildInputs = [ python.modules.sqlite3 ];
+
+    meta = {
+      homepage = http://www.sqlalchemy.org/;
+      description = "A Python SQL toolkit and Object Relational Mapper";
+    };
+  };
+
+
+  sqlalchemy_migrate = buildPythonPackage rec {
+    name = "sqlalchemy-migrate-0.6.1";
+
+    src = fetchurl {
+      url = "http://sqlalchemy-migrate.googlecode.com/files/${name}.tar.gz";
+      sha1 = "17168b5fa066bd56fd93f26345525377e8a83d8a";
+    };
+
+    buildInputs = [ nose unittest2 scripttest ];
+
+    propagatedBuildInputs = [ tempita decorator sqlalchemy ];
+
+    preCheck =
+      ''
+        echo sqlite:///__tmp__ > test_db.cfg
+      '';
+
+    # Some tests fail with "unexpected keyword argument 'script_path'".
+    doCheck = false;
+
+    meta = {
+      homepage = http://code.google.com/p/sqlalchemy-migrate/;
+      description = "Schema migration tools for SQLAlchemy";
+    };
+  };
+
+
+  tempita = buildPythonPackage rec {
+    version = "0.4";
+    name = "tempita-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/T/Tempita/Tempita-${version}.tar.gz";
+      md5 = "0abe015a72e748d0c6284679a497426c";
+    };
+
+    buildInputs = [ nose ];
+
+    meta = {
+      homepage = http://pythonpaste.org/tempita/;
+      description = "A very small text templating language";
+    };
+  };
+
+
   trac = buildPythonPackage {
-    name = "trac-0.11.5";
+    name = "trac-0.12.2";
 
     src = fetchurl {
-      url = http://ftp.edgewall.com/pub/trac/Trac-0.11.5.tar.gz;
-      sha256 = "cc3362ecc533abc1755dd78e2d096d1413bc975abc3185318f4821458cd6a8ac";
+      url = http://ftp.edgewall.com/pub/trac/Trac-0.12.2.tar.gz;
+      sha256 = "1ihf5031pc1wpwbxpfzzz2bcpwww795n5y22baglyim1lalivd65";
     };
 
     doCheck = false;
 
     PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
 
-    propagatedBuildInputs = [ genshi pkgs.setuptools ];
+    propagatedBuildInputs = [ genshi pkgs.setuptools python.modules.sqlite3 ];
 
     meta = {
       description = "Enhanced wiki and issue tracking system for software development projects";
@@ -1027,12 +1732,12 @@ rec {
     };
   };
 
-  twisted = buildPythonPackage {
-    name = "twisted-10.1.0";
+  twisted = buildPythonPackage rec {
+    name = "twisted-10.2.0";
 
     src = fetchurl {
-      url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.tar.bz2;
-      sha256 = "eda6e0e9e5ef6f6c19ab75bcb094f83a12ee25fe589fbcddf946e8a655c8070b";
+      url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.2/Twisted-10.2.0.tar.bz2;
+      sha256 = "110c30z622jn14yany1sxfaqj5qx20n9rc9zqacxlwma30fdcbjn";
     };
 
     propagatedBuildInputs = [ zopeInterface ];
@@ -1060,6 +1765,96 @@ rec {
     };
   };
 
+
+  unittest2 = buildPythonPackage rec {
+    name = "unittest2-0.5.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/u/unittest2/${name}.tar.gz";
+      md5 = "a0af5cac92bbbfa0c3b0e99571390e0f";
+    };
+
+    meta = {
+      description = "A backport of the new features added to the unittest testing framework in Python 2.7";
+      homepage = http://pypi.python.org/pypi/unittest2;
+    };
+  };
+
+
+  vnc2flv = buildPythonPackage rec {
+    name = "vnc2flv-20100207";
+    namePrefix = "";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/v/vnc2flv/${name}.tar.gz";
+      md5 = "8492e46496e187b49fe5569b5639804e";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "Tool to record VNC sessions to Flash Video";
+      homepage = http://www.unixuser.org/~euske/python/vnc2flv/;
+    };
+  };
+
+
+  webob = buildPythonPackage rec {
+    version = "1.0.6";
+    name = "webob-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/W/WebOb/WebOb-${version}.zip";
+      md5 = "8e46dd755f6998d471bfbcb4def897ff";
+    };
+
+    buildInputs = [ pkgs.unzip ];
+
+    # The test requires "webtest", which is a cyclic dependency.  (WTF?)
+    doCheck = false;
+
+    meta = {
+      description = "WSGI request and response object";
+      homepage = http://pythonpaste.org/webob/;
+    };
+  };
+
+
+  webtest = buildPythonPackage rec {
+    version = "1.2.3";
+    name = "webtest-${version}";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.tar.gz";
+      md5 = "585f9331467e6d99acaba4051c1c5878";
+    };
+
+    propagatedBuildInputs = [ nose webob dtopt ];
+
+    meta = {
+      description = "Helper to test WSGI applications";
+      homepage = http://pythonpaste.org/webtest/;
+    };
+  };
+
+
+  wxPython = wxPython28;
+
+
+  wxPython26 = import ../development/python-modules/wxPython/2.6.nix {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit pythonPackages;
+    wxGTK = pkgs.wxGTK26;
+  };
+
+
+  wxPython28 = import ../development/python-modules/wxPython/2.8.nix {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit pythonPackages;
+    wxGTK = pkgs.wxGTK28;
+  };
+
+
   zbase32 = buildPythonPackage (rec {
     name = "zbase32-1.1.2";
 
@@ -1126,4 +1921,22 @@ rec {
       license = "ZPL";
     };
   };
-}
+
+  hgsvn = buildPythonPackage rec {
+    name = "hgsvn-0.1.8";
+    src = fetchurl rec {
+      name = "hgsvn-0.1.8.tar.gz";
+      url = "http://pypi.python.org/packages/source/h/hgsvn/${name}.tar.gz#md5=56209eae48b955754e09185712123428";
+      sha256 = "18a7bj1i0m4shkxmdvw1ci5i0isq5vqf0bpwgrhnk305rijvbpch";
+    };
+
+    buildInputs = [ pkgs.setuptools ];
+    doCheck = false;
+
+    meta = {
+      description = "HgSVN";
+      homepage = http://pypi.python.org/pypi/hgsvn;
+    };
+  };
+
+}; in pythonPackages
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index fd865419487f..de9532d712a2 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -154,6 +154,13 @@ let
   };
 in {
   crossMingw32 = mapTestOnCross crossSystem {
+    coreutils.hostDrv = nativePlatforms;
+    boehmgc.hostDrv = nativePlatforms;
+    gmp.hostDrv = nativePlatforms;
+    guile_1_8.hostDrv = nativePlatforms;
+    libffi.hostDrv = nativePlatforms;
+    libtool.hostDrv = nativePlatforms;
+    libunistring.hostDrv = nativePlatforms;
     windows.wxMSW.hostDrv = nativePlatforms;
   };
 }) // (
@@ -175,10 +182,23 @@ in {
     hurdCross = nativePlatforms;
     mach.hostDrv = nativePlatforms;
 
-    coreutils_real.hostDrv = nativePlatforms;
+    coreutils.hostDrv = nativePlatforms;
     ed.hostDrv = nativePlatforms;
     grub2.hostDrv = nativePlatforms;
     inetutils.hostDrv = nativePlatforms;
+    boehmgc.hostDrv = nativePlatforms;
+    findutils.hostDrv = nativePlatforms;
+    gcc.hostDrv = nativePlatforms;
+    gdb.hostDrv = nativePlatforms;
+    gmp.hostDrv = nativePlatforms;
+    gnugrep.hostDrv = nativePlatforms;
+    gnumake.hostDrv = nativePlatforms;
+    gnused.hostDrv = nativePlatforms;
+    guile_1_8.hostDrv = nativePlatforms;
+    libffi.hostDrv = nativePlatforms;
+    libtool.hostDrv = nativePlatforms;
+    libunistring.hostDrv = nativePlatforms;
+    lsh.hostDrv = nativePlatforms;
     nixUnstable.hostDrv = nativePlatforms;
     patch.hostDrv = nativePlatforms;
     zile.hostDrv = nativePlatforms;
@@ -213,7 +233,7 @@ let
 in {
   fuloongminipc = mapTestOnCross crossSystem {
 
-    coreutils_real.hostDrv = nativePlatforms;
+    coreutils.hostDrv = nativePlatforms;
     ed.hostDrv = nativePlatforms;
     grub2.hostDrv = nativePlatforms;
     inetutils.hostDrv = nativePlatforms;
@@ -273,7 +293,7 @@ let
 in {
   nanonote = mapTestOnCross crossSystem {
 
-    coreutils_real.hostDrv = nativePlatforms;
+    coreutils.hostDrv = nativePlatforms;
     ed.hostDrv = nativePlatforms;
     inetutils.hostDrv = nativePlatforms;
     nixUnstable.hostDrv = nativePlatforms;
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 54bc621cf2f5..7c415fa445b0 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -21,7 +21,6 @@ with (import ./release-lib.nix);
   apacheHttpd = linux;
   aspell = all;
   at = linux;
-  aterm242fixes = all;
   aterm25 = all;
   aterm28 = all;
   audacious = linux;
@@ -66,6 +65,9 @@ with (import ./release-lib.nix);
   dico = linux;
   dietlibc = linux;
   diffutils = all;
+  disnix = all;
+  disnixos = linux;
+  DisnixWebService = linux;
   docbook5 = all;
   docbook5_xsl = all;
   docbook_xml_dtd_42 = all;
@@ -200,11 +202,12 @@ with (import ./release-lib.nix);
   mod_python = linux;
   module_init_tools = linux;
   mono = linux;
-  monotone = linux;
   mpg321 = linux;
+  mupen64plus = linux;
   mutt = linux;
   mysql = linux;
   mysql51 = linux;
+  mysql55 = linux;
   namazu = all;
   nano = allBut "i686-cygwin";
   ncat = linux;
@@ -305,6 +308,7 @@ with (import ./release-lib.nix);
   tightvnc = linux;
   time = linux;
   tinycc = ["i686-linux"];
+  uae = linux;
   udev = linux;
   uml = ["i686-linux"];
   unrar = linux;
@@ -318,6 +322,7 @@ with (import ./release-lib.nix);
   vice = linux;
   vim = linux;
   vimHugeX = linux;
+  VisualBoyAdvance = linux;
   vlc = linux;
   vncrec = linux;
   vorbisTools = linux;
@@ -351,6 +356,7 @@ with (import ./release-lib.nix);
   zile = linux;
   zip = all;
   zsh = linux;
+  zsnes = ["i686-linux"];
 
   aspellDicts = {
     de = all;
@@ -379,13 +385,9 @@ with (import ./release-lib.nix);
     jdee = linux;
   };
 
-  firefox35Pkgs = {
-    firefox = prio 150 linux;
-  };
-
-  firefox36Pkgs = {
-    firefox = linux;
-  };
+  firefox36Pkgs.firefox = linux;
+  firefox50Pkgs.firefox = linux;
+  firefox60Pkgs.firefox = linux;
 
   gnome = {
     gnome_panel = linux;
@@ -397,47 +399,43 @@ with (import ./release-lib.nix);
     gtk = linux;
   };
 
-  haskellPackages_ghc6102 = {
+  /*
+  haskellPackages_ghc6104 = {
     ghc = ghcSupported;
+    haskellPlatform_2009_2_0_2 = ghcSupported;
   };
 
-  haskellPackages_ghc6103 = {
+  haskellPackages_ghc6121 = {
     ghc = ghcSupported;
+    haskellPlatform_2010_1_0_0 = ghcSupported;
   };
 
-  haskellPackages_ghc6104 = {
+  haskellPackages_ghc6123 = {
     ghc = ghcSupported;
-    gtk2hs = linux;
-    haskellPlatform_2009_2_0_2 = ghcSupported;
-    xmonad = linux;
+    gitit = linux;
+    gtk = linux;
+    haskellPlatform = ghcSupported;
   };
 
-  haskellPackages_ghc6121 = {
-    darcs = ghcSupported;
+  haskellPackages_ghc701 = {
     ghc = ghcSupported;
-    haskellPlatform_2010_1_0_0 = ghcSupported;
   };
 
-  haskellPackages_ghc6122 = {
-    darcs = ghcSupported;
+  haskellPackages_ghc702 = {
     ghc = ghcSupported;
-    haskellPlatform_2010_1_0_0 = ghcSupported;
+    haskellPlatform = ghcSupported;
   };
 
-  haskellPackages_ghc6123 = {
+  haskellPackages_ghc704 = {
     darcs = ghcSupported;
     ghc = ghcSupported;
     gitit = linux;
     gtk = linux;
-    leksah = linux;
-    haskellPlatform_2010_2_0_0 = ghcSupported;
+    haskellPlatform = ghcSupported;
     lhs2tex = ghcSupported;
     xmonad = linux;
   };
-
-  haskellPackages_ghc701 = {
-    ghc = ghcSupported;
-  };
+  */
 
   kde3 = {
     kdebase = linux;
@@ -447,6 +445,11 @@ with (import ./release-lib.nix);
     kile = linux;
   };
 
+  linuxPackages_2_6_25 = {
+    aufs = linux;
+    kernel = linux;
+  };
+
   linuxPackages_2_6_27 = {
     aufs = linux;
     kernel = linux;
@@ -454,6 +457,21 @@ with (import ./release-lib.nix);
     virtualboxGuestAdditions = linux;
   };
 
+  linuxPackages_2_6_28 = {
+    aufs = linux;
+    kernel = linux;
+  };
+
+  linuxPackages_2_6_29 = {
+    aufs = linux;
+    kernel = linux;
+  };
+
+  linuxPackages_2_6_31 = {
+    aufs = linux;
+    kernel = linux;
+  };
+
   linuxPackages_2_6_32 = {
     kernel = linux;
     virtualbox = linux;
@@ -472,6 +490,18 @@ with (import ./release-lib.nix);
     virtualboxGuestAdditions = linux;
   };
 
+  linuxPackages_2_6_37 = {
+    kernel = linux;
+    virtualbox = linux;
+    virtualboxGuestAdditions = linux;
+  };
+
+  linuxPackages_2_6_38 = {
+    kernel = linux;
+    virtualbox = linux;
+    virtualboxGuestAdditions = linux;
+  };
+
   strategoPackages = {
     sdf = all;
     strategoxt = all;