summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2011-08-31 18:12:33 +0000
committerShea Levy <shea@shealevy.com>2011-08-31 18:12:33 +0000
commit191a4c404ab57be4466e9b2d6ef25c6c77152602 (patch)
tree23000acd1260299138cdb9cf355ab0054ecfc783
parentf7f9b39450877382151dc0bdd10281404780f19f (diff)
parent04b1ac31da9885e3b1893a98e5280b8f9a039652 (diff)
svn path=/nixpkgs/branches/darwin-updates/; revision=28944
-rw-r--r--doc/quick-start.xml2
-rwxr-xr-xmaintainers/scripts/gnu/gnupdate6
-rw-r--r--pkgs/applications/audio/amarok/default.nix4
-rw-r--r--pkgs/applications/audio/ardour/ardour3.nix6
-rw-r--r--pkgs/applications/audio/audacious/default.nix14
-rw-r--r--pkgs/applications/audio/cdparanoia/default.nix14
-rw-r--r--pkgs/applications/audio/cdparanoia/fix.patch46
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix6
-rw-r--r--pkgs/applications/audio/qtractor/default.nix21
-rw-r--r--pkgs/applications/audio/sonic-visualiser/default.nix4
-rw-r--r--pkgs/applications/audio/sonic-visualizer/default.nix45
-rw-r--r--pkgs/applications/audio/spotify/default.nix10
-rw-r--r--pkgs/applications/editors/eclipse/default.nix33
-rw-r--r--pkgs/applications/editors/kdevelop/default.nix13
-rw-r--r--pkgs/applications/editors/leksah/default.nix45
-rw-r--r--pkgs/applications/graphics/darktable/default.nix46
-rw-r--r--pkgs/applications/graphics/darktable/exif.patch11
-rw-r--r--pkgs/applications/graphics/giv/default.nix2
-rw-r--r--pkgs/applications/graphics/giv/union.patch38
-rw-r--r--pkgs/applications/graphics/jbrout/default.nix38
-rw-r--r--pkgs/applications/graphics/kipi-plugins/default.nix21
-rw-r--r--pkgs/applications/graphics/kipi-plugins/find-gdk.patch16
-rw-r--r--pkgs/applications/graphics/paraview/default.nix33
-rw-r--r--pkgs/applications/graphics/xscreensaver/default.nix4
-rw-r--r--pkgs/applications/misc/bibletime/default.nix6
-rw-r--r--pkgs/applications/misc/djvulibre/default.nix8
-rw-r--r--pkgs/applications/misc/dmenu/default.nix4
-rw-r--r--pkgs/applications/misc/evince/default.nix15
-rw-r--r--pkgs/applications/misc/get_iplayer/default.nix19
-rw-r--r--pkgs/applications/misc/ikiwiki/default.nix5
-rw-r--r--pkgs/applications/misc/jbidwatcher/default.nix50
-rw-r--r--pkgs/applications/misc/krename/default.nix4
-rw-r--r--pkgs/applications/misc/krusader/default.nix4
-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/semnotes/default.nix4
-rw-r--r--pkgs/applications/misc/surf/default.nix29
-rw-r--r--pkgs/applications/misc/vifm/default.nix48
-rw-r--r--pkgs/applications/misc/xmobar/default.nix23
-rw-r--r--pkgs/applications/misc/zathura/default.nix22
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix27
-rw-r--r--pkgs/applications/networking/browsers/firefox/3.6.nix10
-rw-r--r--pkgs/applications/networking/browsers/firefox/5.0.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox/6.0-install-sdk-bin.patch35
-rw-r--r--pkgs/applications/networking/browsers/firefox/6.0.nix (renamed from pkgs/applications/networking/browsers/firefox/4.0.nix)25
-rw-r--r--pkgs/applications/networking/browsers/firefox/7.0.nix184
-rw-r--r--pkgs/applications/networking/browsers/konq-plugins/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix6
-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.nix4
-rw-r--r--pkgs/applications/networking/browsers/rekonq/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/rekonq/source.nix28
-rw-r--r--pkgs/applications/networking/esniper/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/config.patch15
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/default.nix28
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/includes.patch13
-rw-r--r--pkgs/applications/networking/instant-messengers/kadu/more-icons.patch12
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix9
-rw-r--r--pkgs/applications/networking/linphone/default.nix12
-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/thunderbird/3.x.nix2
-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/p2p/ktorrent/default.nix17
-rw-r--r--pkgs/applications/networking/p2p/mldonkey/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch103
-rw-r--r--pkgs/applications/networking/remote/rdesktop/default.nix4
-rw-r--r--pkgs/applications/networking/skype/default.nix12
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix4
-rw-r--r--pkgs/applications/office/abiword/default.nix4
-rw-r--r--pkgs/applications/office/antiword/default.nix28
-rw-r--r--pkgs/applications/office/hledger-interest/default.nix20
-rw-r--r--pkgs/applications/office/kmymoney/default.nix22
-rw-r--r--pkgs/applications/office/kmymoney/qgpgme.patch17
-rw-r--r--pkgs/applications/office/ledger/3.0.nix45
-rw-r--r--pkgs/applications/office/ledger/default.nix2
-rw-r--r--pkgs/applications/science/chemistry/avogadro/default.nix19
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix6
-rw-r--r--pkgs/applications/science/logic/leo2/default.nix4
-rw-r--r--pkgs/applications/science/math/maxima/default.nix4
-rw-r--r--pkgs/applications/science/math/pari/default.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.nix11
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix11
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git2cl/default.nix23
-rw-r--r--pkgs/applications/version-management/kdesvn/default.nix2
-rw-r--r--pkgs/applications/version-management/veracity/default.nix1
-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.nix3
-rw-r--r--pkgs/applications/video/gnome-mplayer/default.nix4
-rw-r--r--pkgs/applications/video/kdenlive/default.nix21
-rw-r--r--pkgs/applications/video/kdenlive/kdenlive-newmlt.patch70
-rw-r--r--pkgs/applications/video/vlc/default.nix8
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix5
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix15
-rw-r--r--pkgs/applications/window-managers/dwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/trayer/default.nix28
-rw-r--r--pkgs/applications/window-managers/xmonad/default.nix12
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-contrib.nix19
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-extras.nix11
-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.nix5
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git169
-rw-r--r--pkgs/build-support/fetchmtn/default.nix16
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix1
-rw-r--r--pkgs/build-support/vm/default.nix148
-rw-r--r--pkgs/data/misc/cacert/default.nix6
-rw-r--r--pkgs/data/misc/shared-desktop-ontologies/default.nix11
-rw-r--r--pkgs/data/misc/xkeyboard-config/default.nix8
-rw-r--r--pkgs/desktops/gnome-2.28/default.nix2
-rw-r--r--pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix6
-rw-r--r--pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix4
-rw-r--r--pkgs/desktops/kde-4.5/bindings/default.nix4
-rw-r--r--pkgs/desktops/kde-4.5/default.nix18
-rw-r--r--pkgs/desktops/kde-4.5/games/default.nix4
-rw-r--r--pkgs/desktops/kde-4.5/libs/default.nix4
-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/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.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.nix23
-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.nix24
-rw-r--r--pkgs/desktops/kde-4.6/base-workspace/default.nix24
-rw-r--r--pkgs/desktops/kde-4.6/base/default.nix16
-rw-r--r--pkgs/desktops/kde-4.6/bindings/default.nix34
-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.nix152
-rw-r--r--pkgs/desktops/kde-4.6/edu/default.nix32
-rw-r--r--pkgs/desktops/kde-4.6/games/default.nix19
-rw-r--r--pkgs/desktops/kde-4.6/graphics/default.nix20
-rw-r--r--pkgs/desktops/kde-4.6/kde-package/default.nix50
-rwxr-xr-xpkgs/desktops/kde-4.6/kde-package/kde-manifest.sh39
-rw-r--r--pkgs/desktops/kde-4.6/kde-package/manifest-4.6.0.nix85
-rw-r--r--pkgs/desktops/kde-4.6/l10n/manifest-4.6.0.nix267
-rw-r--r--pkgs/desktops/kde-4.6/libs/default.nix40
-rw-r--r--pkgs/desktops/kde-4.6/multimedia/default.nix17
-rw-r--r--pkgs/desktops/kde-4.6/network/default.nix33
-rw-r--r--pkgs/desktops/kde-4.6/oxygen-icons/default.nix15
-rw-r--r--pkgs/desktops/kde-4.6/pim-runtime/default.nix25
-rw-r--r--pkgs/desktops/kde-4.6/pim/default.nix32
-rw-r--r--pkgs/desktops/kde-4.6/pimlibs/default.nix15
-rw-r--r--pkgs/desktops/kde-4.6/plasma-addons/default.nix20
-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/polkit-qt-1/policy-files.patch25
-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.nix57
-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.nix121
-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.nix (renamed from pkgs/desktops/kde-4.6/l10n/default.nix)6
-rwxr-xr-xpkgs/desktops/kde-4.7/l10n/l10n-manifest.sh (renamed from pkgs/desktops/kde-4.6/l10n/l10n-manifest.sh)0
-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)15
-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.nix17
-rw-r--r--pkgs/development/compilers/epic/default.nix26
-rw-r--r--pkgs/development/compilers/gcc-4.1/default.nix2
-rw-r--r--pkgs/development/compilers/gcc-4.6/builder.sh16
-rw-r--r--pkgs/development/compilers/gcc-apple64/builder.sh3
-rw-r--r--pkgs/development/compilers/gcc-apple64/default.nix4
-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.nix2
-rw-r--r--pkgs/development/compilers/ghc/7.0.3.nix2
-rw-r--r--pkgs/development/compilers/ghc/7.0.4-binary.nix97
-rw-r--r--pkgs/development/compilers/ghc/7.0.4.nix3
-rw-r--r--pkgs/development/compilers/ghc/7.2.1.nix44
-rw-r--r--pkgs/development/compilers/ghc/head.nix13
-rw-r--r--pkgs/development/compilers/ghc/wrapper.nix4
-rw-r--r--pkgs/development/compilers/idris/default.nix27
-rw-r--r--pkgs/development/compilers/llvm/clang-include-paths-svn.patch40
-rw-r--r--pkgs/development/compilers/llvm/svn-head.nix66
-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/sbcl/src-for-default.nix10
-rw-r--r--pkgs/development/interpreters/php/5.2.nix4
-rw-r--r--pkgs/development/interpreters/racket/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/aspell/default.nix15
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix9
-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/boost/1.47.nix (renamed from pkgs/development/libraries/boost/default.nix)14
-rw-r--r--pkgs/development/libraries/boost/boost_filesystem.patch24
-rw-r--r--pkgs/development/libraries/ccrtp/default.nix6
-rw-r--r--pkgs/development/libraries/consolekit/0001-Don-t-daemonize-when-activated.patch28
-rw-r--r--pkgs/development/libraries/consolekit/0002-Don-t-take-bus-name-until-ready.patch62
-rw-r--r--pkgs/development/libraries/consolekit/default.nix8
-rw-r--r--pkgs/development/libraries/dbus-glib/0.94.nix23
-rw-r--r--pkgs/development/libraries/dbus-glib/default.nix2
-rw-r--r--pkgs/development/libraries/dbus/1.5.6.nix61
-rw-r--r--pkgs/development/libraries/dbus/default.nix29
-rw-r--r--pkgs/development/libraries/eigen/default.nix7
-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.nix15
-rw-r--r--pkgs/development/libraries/gamin/default.nix4
-rw-r--r--pkgs/development/libraries/gdbm/default.nix40
-rw-r--r--pkgs/development/libraries/gdbm/install.patch29
-rw-r--r--pkgs/development/libraries/glib/2.28.x.nix4
-rw-r--r--pkgs/development/libraries/glibc-2.12/common.nix4
-rw-r--r--pkgs/development/libraries/glpk/default.nix4
-rw-r--r--pkgs/development/libraries/gnutls/2.12.nix54
-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.nix4
-rw-r--r--pkgs/development/libraries/gpgme/default.nix8
-rw-r--r--pkgs/development/libraries/grantlee/default.nix4
-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.nix10
-rw-r--r--pkgs/development/libraries/gtk+/2.24.x.nix4
-rw-r--r--pkgs/development/libraries/gtk+/old-icons.patch14
-rw-r--r--pkgs/development/libraries/haskell/AC-Vector/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/Agda/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/AspectAG/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/Boolean/default.nix13
-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.nix21
-rw-r--r--pkgs/development/libraries/haskell/ConfigFile/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/CouchDB/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/Crypto/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/Diff/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/GLURaw/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix21
-rw-r--r--pkgs/development/libraries/haskell/GlomeVec/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/Graphalyze/default.nix24
-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.nix11
-rw-r--r--pkgs/development/libraries/haskell/HStringTemplate/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/HTTP/3001.1.5.nix16
-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/HUnit/1.2.0.3.nix14
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix19
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.13.3.nix11
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.20.2.nix12
-rw-r--r--pkgs/development/libraries/haskell/HaXml/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/Hipmunk/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/HsSyck/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/JsContracts/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/ListLike/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/MaybeT-transformers/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/MaybeT/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/MemoTrie/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/MissingH/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/MonadPrompt/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/MonadRandom/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/ObjectName/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/OneTuple/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/OpenAL/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix21
-rw-r--r--pkgs/development/libraries/haskell/OpenGLRaw/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/PSQueue/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix15
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix18
-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/RSA/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/Ranged-sets/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/SDL-image/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/SDL-mixer/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/SDL-ttf/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/SDL/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/SHA/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/SMTPClient/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix17
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix13
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac.nix20
-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.nix20
-rw-r--r--pkgs/development/libraries/haskell/WebBits-Html/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/WebBits/1.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/WebBits/default.nix17
-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.nix24
-rw-r--r--pkgs/development/libraries/haskell/X11/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/aeson-native/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/aeson/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/ansi-terminal/default.nix18
-rwxr-xr-x[-rw-r--r--]pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix16
-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.nix19
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/enumerator.nix17
-rw-r--r--pkgs/development/libraries/haskell/authenticate/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/base-unicode-symbols/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/base64-bytestring/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/base64-string/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/benchpress/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/bimap/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/binary-shared/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/binary/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/bitmap/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/bktrees/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/blaze-html/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual-native/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/bmp/default.nix20
-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.nix16
-rw-r--r--pkgs/development/libraries/haskell/cabal/cabal.nix52
-rw-r--r--pkgs/development/libraries/haskell/cairo/default.nix19
-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/case-insensitive/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/cautious-file/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/cereal/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/certificate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix15
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix16
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix22
-rw-r--r--pkgs/development/libraries/haskell/citeproc-hs/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/clientsession/default.nix23
-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.nix22
-rw-r--r--pkgs/development/libraries/haskell/colour/default.nix15
-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.nix20
-rw-r--r--pkgs/development/libraries/haskell/cookie/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cprng-aes/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/criterion/default.nix26
-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.nix13
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix22
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor.nix22
-rw-r--r--pkgs/development/libraries/haskell/data-default/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/data-reify/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/dataenc/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/datetime/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix15
-rw-r--r--pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix15
-rw-r--r--pkgs/development/libraries/haskell/derive/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/digest/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/dimensional/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/directory-tree/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/dlist/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/dotgen/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/double-conversion/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/editline/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/email-validate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/emgm/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/entropy/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/enumerator/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/erf/default.nix19
-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/0.1.1.3.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.nix19
-rw-r--r--pkgs/development/libraries/haskell/feed/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/file-embed/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/filepath/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/filestore/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/fingertree/default.nix13
-rwxr-xr-xpkgs/development/libraries/haskell/flexible-defaults/default.nix18
-rwxr-xr-x[-rw-r--r--]pkgs/development/libraries/haskell/funcmp/default.nix13
-rwxr-xr-xpkgs/development/libraries/haskell/gamma/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/gdiff/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/ghc-core/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/ghc-events/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/ghc-mtl/default.nix14
-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.nix13
-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.nix37
-rw-r--r--pkgs/development/libraries/haskell/glade/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/glib/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/graphviz/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/gtk/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/gtksourceview2/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/hackage-db/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/hamlet/0.10.0.nix22
-rw-r--r--pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix14
-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.nix16
-rw-r--r--pkgs/development/libraries/haskell/hashed-storage/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/haskeline-class/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/haskeline/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/haskell-lexer/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix24
-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.nix17
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix15
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix19
-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.nix19
-rw-r--r--pkgs/development/libraries/haskell/hint/default.nix27
-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.nix13
-rw-r--r--pkgs/development/libraries/haskell/hp2any-core/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/hp2any-graph/default.nix19
-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.nix20
-rw-r--r--pkgs/development/libraries/haskell/hslogger-template/default.nix19
-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.nix13
-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.nix22
-rw-r--r--pkgs/development/libraries/haskell/httpd-shed/default.nix15
-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.nix17
-rw-r--r--pkgs/development/libraries/haskell/json/0.3.6.nix12
-rw-r--r--pkgs/development/libraries/haskell/json/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/jsonEnumerator/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/jsonTypes/default.nix13
-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.nix14
-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.nix15
-rw-r--r--pkgs/development/libraries/haskell/mime-mail/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/mmap/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/monad-control/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/monad-loops/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/monad-par/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/monad-peel/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/monadlab/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/monads-fd/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/mpppc/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/mtl/1.1.0.2.nix13
-rw-r--r--pkgs/development/libraries/haskell/mtl/1.1.1.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/mtl/2.0.1.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/mtlparse/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/multiplate/default.nix22
-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.nix12
-rw-r--r--pkgs/development/libraries/haskell/multiset/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/murmur-hash/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/mwc-random/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/neither/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/network/2.2.1.4.nix15
-rw-r--r--pkgs/development/libraries/haskell/network/2.2.1.7.nix15
-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/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.nix17
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/pango/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/parallel/1.1.0.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/parallel/2.2.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/parallel/3.1.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/parseargs/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/parsec/2.1.0.1.nix14
-rw-r--r--pkgs/development/libraries/haskell/parsec/3.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/parsimony/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/path-pieces/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pathtype/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/pcre-light/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/polyparse/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/pool/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/ppm/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/pretty-show/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/primitive/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/pureMD5/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/pwstore-fast/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/random-fu/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/random-shuffle/default.nix14
-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/1.0.1.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/random/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/ranges/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/readline/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/recaptcha/default.nix14
-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.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-base/0.93.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.92.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.93.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.95.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-pcre/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.4.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.95.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-tdfa/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/regexpr/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/regular/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/repa-algorithms/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/repa-bytestring/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/repa-examples/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/repa-io/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/repa/default.nix20
-rwxr-xr-xpkgs/development/libraries/haskell/rvar/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/safe/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/salvia-protocol/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/salvia/default.nix19
-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.nix20
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-css/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-js/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/shakespeare/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/simple-sendfile/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/smallcheck/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/snap/core.nix32
-rw-r--r--pkgs/development/libraries/haskell/snap/server.nix37
-rw-r--r--pkgs/development/libraries/haskell/split/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/stateref/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/statistics/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/stb-image/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/stm/2.1.1.2.nix13
-rw-r--r--pkgs/development/libraries/haskell/stm/2.1.2.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/stm/2.2.0.1.nix13
-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.nix14
-rw-r--r--pkgs/development/libraries/haskell/svgcairo/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/syb/0.2.2.nix13
-rw-r--r--pkgs/development/libraries/haskell/syb/0.3.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/syb/0.3.nix15
-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.nix20
-rw-r--r--pkgs/development/libraries/haskell/tagsoup/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/terminfo/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/test-framework-hunit/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/test-framework-th/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/test-framework/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/testpack/default.nix20
-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.nix20
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.0.6.nix20
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.1.5.nix18
-rw-r--r--pkgs/development/libraries/haskell/th-lift/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/threadmanager/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/time/1.1.2.4.nix14
-rw-r--r--pkgs/development/libraries/haskell/time/1.1.3.nix12
-rw-r--r--pkgs/development/libraries/haskell/time/1.2.0.3.nix12
-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/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.nix13
-rw-r--r--pkgs/development/libraries/haskell/tuple/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/uniplate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/uniqueid/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/unix-compat/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/unordered-containers/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/url/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/utf8-light/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/utf8-string/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/utility-ht/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/uu-parsinglib/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/uulib/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/vacuum-cairo/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/vacuum/default.nix14
-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.nix22
-rw-r--r--pkgs/development/libraries/haskell/vector/default.nix22
-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.nix24
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/wai/default.nix24
-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.nix14
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxcore.nix29
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix24
-rw-r--r--pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/xhtml/3000.2.0.2.nix16
-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.nix16
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/0.2.6.nix18
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/0.3.0.1.nix22
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/yap/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix34
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/yesod-json/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix23
-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.nix16
-rw-r--r--pkgs/development/libraries/haskell/zipper/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/zlib-bindings/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/zlib-enum/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.0.0.nix16
-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.nix16
-rw-r--r--pkgs/development/libraries/herqq/0.8.0.nix22
-rw-r--r--pkgs/development/libraries/herqq/default.nix (renamed from pkgs/development/libraries/herqq/0.7.0.nix)5
-rw-r--r--pkgs/development/libraries/herqq/svn.nix23
-rw-r--r--pkgs/development/libraries/indilib/default.nix10
-rw-r--r--pkgs/development/libraries/kdevplatform/default.nix13
-rw-r--r--pkgs/development/libraries/libavc1394/default.nix8
-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/libdrm/default.nix9
-rw-r--r--pkgs/development/libraries/libdrm/libdrm-apple.patch88
-rw-r--r--pkgs/development/libraries/libelf/default.nix6
-rw-r--r--pkgs/development/libraries/libewf/default.nix10
-rw-r--r--pkgs/development/libraries/libktorrent/default.nix21
-rw-r--r--pkgs/development/libraries/libmcs/default.nix12
-rw-r--r--pkgs/development/libraries/libmms/default.nix20
-rw-r--r--pkgs/development/libraries/libmowgli/default.nix10
-rw-r--r--pkgs/development/libraries/libmpeg2/default.nix15
-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/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/mlt/default.nix6
-rw-r--r--pkgs/development/libraries/mpeg2dec/default.nix17
-rw-r--r--pkgs/development/libraries/mpich2/default.nix11
-rw-r--r--pkgs/development/libraries/mtdev/default.nix29
-rw-r--r--pkgs/development/libraries/nettle/default.nix4
-rw-r--r--pkgs/development/libraries/ntrack/default.nix9
-rw-r--r--pkgs/development/libraries/ntrack/libnl2.patch14
-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/changeset_r3190.diff20
-rw-r--r--pkgs/development/libraries/opencv/default.nix8
-rw-r--r--pkgs/development/libraries/pango/1.28.x.nix4
-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/policykit/default.nix2
-rw-r--r--pkgs/development/libraries/polkit-qt-1/default.nix (renamed from pkgs/desktops/kde-4.6/support/polkit-qt-1/default.nix)12
-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/default.nix26
-rw-r--r--pkgs/development/libraries/prison/default.nix22
-rw-r--r--pkgs/development/libraries/qca2/default.nix32
-rw-r--r--pkgs/development/libraries/qhull/default.nix29
-rw-r--r--pkgs/development/libraries/qimageblitz/default.nix2
-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/redland/1.0.10.nix30
-rw-r--r--pkgs/development/libraries/strigi/default.nix19
-rw-r--r--pkgs/development/libraries/tcp-wrappers/default.nix74
-rw-r--r--pkgs/development/libraries/tcp-wrappers/have-strerror.patch20
-rw-r--r--pkgs/development/libraries/tcp-wrappers/trivial-fixes.patch27
-rw-r--r--pkgs/development/libraries/ucommon/default.nix6
-rw-r--r--pkgs/development/libraries/x264/default.nix4
-rw-r--r--pkgs/development/libraries/xine-lib/default.nix9
-rw-r--r--pkgs/development/libraries/xvidcore/default.nix14
-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/ocaml-modules/batteries/default.nix13
-rw-r--r--pkgs/development/perl-modules/DBD-Pg/default.nix10
-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/pycups/default.nix13
-rw-r--r--pkgs/development/python-modules/pyexiv2/default.nix23
-rw-r--r--pkgs/development/python-modules/pyqt/default.nix37
-rw-r--r--pkgs/development/python-modules/python-sip/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix30
-rw-r--r--pkgs/development/tools/build-managers/cmake/search-path.patch95
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix37
-rw-r--r--pkgs/development/tools/documentation/haddock/2.4.2.nix21
-rw-r--r--pkgs/development/tools/documentation/haddock/2.7.2.nix9
-rw-r--r--pkgs/development/tools/documentation/haddock/2.9.2.nix9
-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/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.nix23
-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.nix26
-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/automoc4/default.nix5
-rw-r--r--pkgs/development/tools/misc/avrdude/default.nix8
-rw-r--r--pkgs/development/tools/misc/cpphs/default.nix17
-rw-r--r--pkgs/development/tools/misc/dbench/default.nix22
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix54
-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/happy/1.18.4.nix19
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.5.nix20
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.6.nix20
-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.nix8
-rw-r--r--pkgs/games/LambdaHack/default.nix9
-rw-r--r--pkgs/games/MazesOfMonad/default.nix22
-rw-r--r--pkgs/games/eduke32/default.nix26
-rw-r--r--pkgs/games/freeciv/default.nix30
-rw-r--r--pkgs/games/liquidwar/src-for-default.nix8
-rw-r--r--pkgs/lib/platforms.nix1
-rw-r--r--pkgs/lib/strings.nix1
-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/emulators/VisualBoyAdvance/default.nix23
-rw-r--r--pkgs/misc/emulators/VisualBoyAdvance/fix.diff31
-rw-r--r--pkgs/misc/emulators/mupen64plus/default.nix33
-rw-r--r--pkgs/misc/emulators/uae/default.nix7
-rw-r--r--pkgs/misc/emulators/vice/default.nix2
-rw-r--r--pkgs/misc/emulators/wine/src-for-default.nix8
-rw-r--r--pkgs/misc/emulators/zsnes/default.nix4
-rw-r--r--pkgs/misc/ghostscript/default.nix6
-rw-r--r--pkgs/misc/misc.nix22
-rw-r--r--pkgs/misc/themes/gtk2/oxygen-gtk/default.nix18
-rw-r--r--pkgs/os-specific/linux/alsa-plugins/default.nix20
-rw-r--r--pkgs/os-specific/linux/blcr/default.nix35
-rw-r--r--pkgs/os-specific/linux/bluez/default.nix19
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix4
-rw-r--r--pkgs/os-specific/linux/firmware/radeon-juniper/default.nix31
-rw-r--r--pkgs/os-specific/linux/firmware/radeon-r600/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/radeon-r700/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/rtl8192c/default.nix23
-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-39.patch70
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix18
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.27.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.32.nix4
-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.38.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.39.nix4
-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/patches.nix49
-rw-r--r--pkgs/os-specific/linux/libatasmart/default.nix18
-rw-r--r--pkgs/os-specific/linux/libnl/v2.nix1
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix20
-rw-r--r--pkgs/os-specific/linux/lvm2/purity.patch55
-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.nix4
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix6
-rw-r--r--pkgs/os-specific/linux/pm-utils/default.nix23
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix12
-rw-r--r--pkgs/os-specific/linux/rtkit/default.nix18
-rw-r--r--pkgs/os-specific/linux/udev/173.nix (renamed from pkgs/os-specific/linux/udev/166.nix)24
-rw-r--r--pkgs/os-specific/linux/udev/custom-rules.patch91
-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.nix34
-rw-r--r--pkgs/os-specific/linux/v4l-utils/default.nix50
-rw-r--r--pkgs/os-specific/linux/xf86-input-multitouch/default.nix53
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/10-wacom.rules16
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/default.nix23
-rw-r--r--pkgs/servers/http/apache-modules/tomcat-connectors/default.nix6
-rw-r--r--pkgs/servers/http/mini-httpd/default.nix20
-rw-r--r--pkgs/servers/http/myserver/default.nix6
-rw-r--r--pkgs/servers/http/redstore/default.nix18
-rw-r--r--pkgs/servers/pulseaudio/default.nix34
-rw-r--r--pkgs/servers/samba/default.nix6
-rw-r--r--pkgs/servers/sip/sipwitch/default.nix4
-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/mysql55/default.nix28
-rw-r--r--pkgs/servers/sql/virtuoso/default.nix8
-rw-r--r--pkgs/servers/squid/squids.nix27
-rw-r--r--pkgs/servers/x11/xorg/libpciaccess-apple.patch26
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix8
-rw-r--r--pkgs/shells/bash-completion/default.nix26
-rw-r--r--pkgs/tools/X11/xmacro/default.nix7
-rw-r--r--pkgs/tools/X11/xnee/default.nix8
-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/cd-dvd/xorriso/default.nix4
-rw-r--r--pkgs/tools/filesystems/dosfstools/default.nix4
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix6
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/xtreemfs/default.nix79
-rw-r--r--pkgs/tools/misc/aws-mturk-clt/default.nix48
-rw-r--r--pkgs/tools/misc/fdupes/default.nix20
-rw-r--r--pkgs/tools/misc/heimdall/default.nix57
-rw-r--r--pkgs/tools/misc/mc/default.nix66
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix4
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix39
-rw-r--r--pkgs/tools/networking/atftp/default.nix55
-rw-r--r--pkgs/tools/networking/isync/default.nix1
-rw-r--r--pkgs/tools/networking/isync/isync-recursice-imap.patch114
-rw-r--r--pkgs/tools/networking/netboot/default.nix60
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/builder.sh9
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/default.nix30
-rw-r--r--pkgs/tools/networking/pdsh/default.nix20
-rw-r--r--pkgs/tools/networking/s3cmd/default.nix25
-rw-r--r--pkgs/tools/networking/tftp-hpa/default.nix48
-rw-r--r--pkgs/tools/package-management/cabal-install/0.10.2.nix19
-rw-r--r--pkgs/tools/package-management/cabal-install/0.6.2.nix19
-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/nix/unstable.nix6
-rw-r--r--pkgs/tools/security/gnupg/default.nix4
-rw-r--r--pkgs/tools/security/pinentry/default.nix (renamed from pkgs/tools/misc/pinentry/default.nix)2
-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.nix (renamed from pkgs/tools/misc/polkit-gnome/default.nix)0
-rw-r--r--pkgs/tools/security/polkit-kde-agent/default.nix21
-rw-r--r--pkgs/tools/security/super/default.nix29
-rw-r--r--pkgs/tools/system/lxc/default.nix6
-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/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/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/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.nix11
-rw-r--r--pkgs/tools/video/dvgrab/default.nix34
-rw-r--r--pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix2
-rw-r--r--pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix753
-rw-r--r--pkgs/top-level/haskell-packages.nix454
-rw-r--r--pkgs/top-level/perl-packages.nix1104
-rw-r--r--pkgs/top-level/platforms.nix10
-rw-r--r--pkgs/top-level/python-packages.nix194
-rw-r--r--pkgs/top-level/release.nix27
1204 files changed, 18074 insertions, 8645 deletions
diff --git a/doc/quick-start.xml b/doc/quick-start.xml
index 9cacb1fcccf1d..2651e2a1eee0d 100644
--- a/doc/quick-start.xml
+++ b/doc/quick-start.xml
@@ -105,7 +105,7 @@ $ svn add pkgs/development/libraries/libfoo/default.nix</screen>
 
         <listitem>
           <para>Thunderbird: <link
-          xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/applications/networking/mailreaders/thunderbird-2.x/default.nix"><filename>pkgs/applications/networking/mailreaders/thunderbird-2.x/default.nix</filename></link>.
+          xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix"><filename>pkgs/applications/networking/mailreaders/thunderbird/3.x.nix</filename></link>.
           Lots of dependencies.</para>
         </listitem>
 
diff --git a/maintainers/scripts/gnu/gnupdate b/maintainers/scripts/gnu/gnupdate
index 45f7b2d79e587..6e89542ec5757 100755
--- a/maintainers/scripts/gnu/gnupdate
+++ b/maintainers/scripts/gnu/gnupdate
@@ -553,7 +553,9 @@ replaced by the result of their application to DERIVATIONS, a vhash."
     "automake110x"
     "bison1875"
     "bison23"
-    "bison" ;; = 2.3
+    "bison24"
+    "bison" ;; = 2.4
+    "ccrtp_1_8"
     "emacs22"
     "emacsSnapshot"
     "gcc295"
@@ -581,6 +583,8 @@ replaced by the result of their application to DERIVATIONS, a vhash."
     "icecat3Xul" ;; redundant with `icecat'
     "icecatWrapper"
     "icecatXulrunner3"
+    "libzrtpcpp_1_6"
+    "parted_2_3"
     ))
 
 (define (gnu? package)
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index ab39babc48ade..d1e79bae0828b 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.4.0";
+  version = "2.4.3";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "52be0e926d1362828a4bf64e2a174dc009c85f6f33da4ca589f0f09ab9b7085c";
+    sha256 = "0242psqci1b6wfhrrds14h4c4qin9s83cxk1259d9hqcsgn4ir3c";
   };
 
   QT_PLUGIN_PATH="${qtscriptgenerator}/lib/qt4/plugins";
diff --git a/pkgs/applications/audio/ardour/ardour3.nix b/pkgs/applications/audio/ardour/ardour3.nix
index 6705afcfb54ca..dea27cb6a5527 100644
--- a/pkgs/applications/audio/ardour/ardour3.nix
+++ b/pkgs/applications/audio/ardour/ardour3.nix
@@ -5,16 +5,16 @@ librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile,
 libusb, libuuid, libxml2, libxslt, pango, perl, pkgconfig, python }:
 
 let
-  rev = "9484";
+  rev = "9942";
 in
 
 stdenv.mkDerivation {
-  name = "ardour-3.0-${rev}";
+  name = "ardour3-svn-${rev}";
 
   src = fetchsvn {
     url = http://subversion.ardour.org/svn/ardour2/branches/3.0;
     inherit rev;
-    sha256 = "13j490kw66sslxibfab8hmm2k6gapvsriqa4av02y438dr1k4skf";
+    sha256 = "5f463e5a67bcb1ee6b4d24c25307419ea14ce52130819054b775e377c31a0664";
   };
 
   buildInputs = [ alsaLib aubio boost cairomm curl fftw fftwSinglePrec
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index 25d651eabfd23..5124ff5d6dd9f 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.2";
+  name = "audacious-3.0";
   
   src = fetchurl {
-    url = "http://distfiles.atheme.org/${name}.tgz";
-    sha256 = "03dd0fn17znjbmnc7hiafsg1axiwysk9q4r21s6giy2yfwhi8b30";
+    url = "http://distfiles.atheme.org/${name}.tar.gz";
+    sha256 = "0kj78hgf73fmbm6y3idir2kavbnnlv0jb9ka0pcsb12sxb994s68";
   };
 
   pluginsSrc = fetchurl {
-    url = "http://distfiles.atheme.org/audacious-plugins-2.4.2.tgz";
-    sha256 = "1a2vbqyamlpvnhr3mm8b5i9304d16c796v2ycw3i396ppjvnhyxz";
+    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/cdparanoia/default.nix b/pkgs/applications/audio/cdparanoia/default.nix
index 6fa69beee20ee..6bd9e0b376e9d 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 4a1c526c7d8c6..0000000000000
--- 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/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 30527171e57cf..4cdea1a21ce3e 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, alsaLib, jackaudio }:
+{ stdenv, fetchurl, qt4, alsaLib, jackaudio, dbus }:
 
 stdenv.mkDerivation rec {
   version = "0.3.7";
@@ -11,9 +11,9 @@ stdenv.mkDerivation rec {
     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
index 4a257b0de5c72..7634ecc01da24 100644
--- a/pkgs/applications/audio/qtractor/default.nix
+++ b/pkgs/applications/audio/qtractor/default.nix
@@ -1,22 +1,19 @@
-{ alsaLib, autoconf, automake, dssi, fetchsvn, gtk, jackaudio,
-ladspaH, ladspaPlugins, liblo, libmad, libsndfile, libtool, libvorbis,
-pkgconfig, qt4, rubberband, stdenv }:
+{ alsaLib, autoconf, automake, dssi, fetchurl, gtk, jackaudio,
+ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile,
+libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }:
 
 stdenv.mkDerivation rec {
-  version = "svn-1992";
+  version = "0.5.0";
   name = "qtractor-${version}";
 
-  src = fetchsvn {
-    url = "http://qtractor.svn.sourceforge.net/svnroot/qtractor/trunk";
-    rev = "1992";
-    sha256 = "10k0w5pzci21k1i32jzv5gdkbs34iv4hdn6dzp3n5048hvrp1hiy";
+  src = fetchurl {
+    url = "mirror://sourceforge/qtractor/${name}.tar.gz";
+    sha256 = "de5991d2d29b2713d73a90ab29efc24db0be68d8e9ca328062d53d229e902e89";
   };
 
-  preConfigure = "make -f Makefile.svn";
-
   buildInputs = [ alsaLib autoconf automake dssi gtk jackaudio ladspaH
-    ladspaPlugins liblo libmad libsndfile libtool libvorbis pkgconfig
-    qt4 rubberband ];
+    ladspaPlugins liblo libmad libsamplerate libsndfile libtool
+    libvorbis pkgconfig qt4 rubberband ];
 
   meta = with stdenv.lib; {
     description = "Audio/MIDI multi-track sequencer";
diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix
index e6566c81eb76b..d3ac4c4168c8f 100644
--- a/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -2,7 +2,7 @@
 
 { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo,
 libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate,
-libsndfile, makeWrapper, pulseaudio, qt, redland, rubberband, vampSDK
+libsndfile, makeWrapper, pulseaudio, qt4, redland, rubberband, vampSDK
 }:
 
 stdenv.mkDerivation {
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs =
-    [ libsndfile qt fftw /* should be fftw3f ??*/ bzip2 librdf rubberband
+    [ libsndfile qt4 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband
       libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
       # optional
       jackaudio
diff --git a/pkgs/applications/audio/sonic-visualizer/default.nix b/pkgs/applications/audio/sonic-visualizer/default.nix
deleted file mode 100644
index 6e40baa1c3604..0000000000000
--- 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/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 51c4b733d3076..eb783e60fc5fb 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -2,7 +2,7 @@
 
 assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
 
-let version = "0.5.1.151"; in
+let version = "0.5.2.84"; in
 
 stdenv.mkDerivation {
   name = "spotify-${version}";
@@ -10,13 +10,13 @@ stdenv.mkDerivation {
   src =
     if stdenv.system == "i686-linux" then 
       fetchurl {
-        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.g7c8c074-1_i386.deb";
-        sha256 = "1zs52hlji3niaiw9lhwmq1393cydr3i494gpzk3fpwr9n8m1jbk0";
+        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}.g7c8c074-1_amd64.deb";
-        sha256 = "01yvrggcj1hvdrqmy35x3klv2v20d63knzfh0lrdfbhi99hr6nvx";
+        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.";
 
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 92f8e14c1361d..bc53dfc70f329 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -126,5 +126,38 @@ in {
         };
   };
 
+  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
+        fetchurl {
+          url = http://eclipse.ialto.com/eclipse/downloads/drops/R-3.7-201106131736/eclipse-SDK-3.7-linux-gtk.tar.gz;
+          sha256 = "08rgw85cam51l98mzb39fdc3ykb369v8pap93qhknbs6a3f5dnff";
+        };
+  };
+
+  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/kdevelop/default.nix b/pkgs/applications/editors/kdevelop/default.nix
index 1b72f8f0b7fb8..e5b749c379470 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 dfed150961903..f8a5d6a712fea 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/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index 18f19f7347e0a..c0ebb95a67a23 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -1,27 +1,47 @@
 { stdenv, fetchurl,
-  GConf, cairo, curl, dbus_glib, exiv2, gnome_keyring, gphoto2, gtk,
-  intltool, lcms, lensfun, libexif, libglade, libgphoto2, libjpeg,
-  libpng, libraw1394, librsvg, libtiff, openexr, pkgconfig, sqlite, }:
+  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.7.1";
+  version = "0.9.1";
   name = "darktable-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/darktable/darktable-${version}.tar.gz";
-    sha256 = "080gvf5gp3rb0vlsvdgnzrzky9dfpqw5cwnj6z1k8lvryd9fzahm";
+    sha256 = "b687a5f1b2a6c8aa230c1dc3ef83bf74a103e3ebe1c61cdea95a612a7375f21e";
   };
 
-  patches = [ ./exif.patch ];
+  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];
 
-  buildInputs = [ GConf cairo curl dbus_glib exiv2 gnome_keyring gtk
-                        intltool lcms lensfun libexif libglade
-                        libgphoto2 libjpeg libpng libraw1394 librsvg
-                        libtiff openexr 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"
+  '';
 
-  meta = {
-    description = "a virtual lighttable and darkroom for photographers";
+  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 = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
   };
 }
diff --git a/pkgs/applications/graphics/darktable/exif.patch b/pkgs/applications/graphics/darktable/exif.patch
deleted file mode 100644
index f1f59d3ef4e47..0000000000000
--- a/pkgs/applications/graphics/darktable/exif.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- darktable-0.7.1/src/common/exif.cc	2011-01-01 12:08:36.000000000 +0100
-+++ darktable-0.7.1/src/common/exif.cc	2011-01-01 12:09:27.000000000 +0100
-@@ -33,7 +33,7 @@
- #include <exiv2/error.hpp>
- #include <exiv2/image.hpp>
- #include <exiv2/exif.hpp>
--#include <exiv2/canonmn.hpp>
-+#include <exiv2/exiv2.hpp>
- #include <sqlite3.h>
- #include <iostream>
- #include <fstream>
diff --git a/pkgs/applications/graphics/giv/default.nix b/pkgs/applications/graphics/giv/default.nix
index a6cf6b205dc0b..d32ef5bbebc98 100644
--- a/pkgs/applications/graphics/giv/default.nix
+++ b/pkgs/applications/graphics/giv/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     sed -i s,/usr/local,$out, SConstruct 
   '';
 
-  patches = [ ./build.patch ];
+  patches = [ ./build.patch ./union.patch ];
 
   buildPhase = "scons";
 
diff --git a/pkgs/applications/graphics/giv/union.patch b/pkgs/applications/graphics/giv/union.patch
new file mode 100644
index 0000000000000..f12fce0361358
--- /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/jbrout/default.nix b/pkgs/applications/graphics/jbrout/default.nix
new file mode 100644
index 0000000000000..7c3826369ee98
--- /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 c3fe93a77ea89..e551b15239044 100644
--- a/pkgs/applications/graphics/kipi-plugins/default.nix
+++ b/pkgs/applications/graphics/kipi-plugins/default.nix
@@ -1,20 +1,23 @@
-{ stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2,
-kdegraphics, kdepimlibs, libxml2, libxslt, gettext, opencv, libgpod, gtk }:
+{ stdenv, fetchurl, kdelibs, qimageblitz, qca2, kdepimlibs, libxml2, libxslt
+, gettext, opencv, libgpod, gdk_pixbuf , qjson, pkgconfig
+, cmake, automoc4
+, kdegraphics, libkexiv2 ? kdegraphics, libkdcraw ? kdegraphics
+, libkipi ? kdegraphics, libksane ? kdegraphics }:
 
 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 cmake automoc4 ];
 
   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 22dcf0323fcb0..0000000000000
--- 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/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 99bed17c966c9..88e3d32080c5e 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/xscreensaver/default.nix b/pkgs/applications/graphics/xscreensaver/default.nix
index ec8a4eaae917e..7458626769a4b 100644
--- a/pkgs/applications/graphics/xscreensaver/default.nix
+++ b/pkgs/applications/graphics/xscreensaver/default.nix
@@ -5,12 +5,12 @@
 }:
 
 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 =
diff --git a/pkgs/applications/misc/bibletime/default.nix b/pkgs/applications/misc/bibletime/default.nix
index e7ae8b4f1757d..53f3a8dee8d8c 100644
--- a/pkgs/applications/misc/bibletime/default.nix
+++ b/pkgs/applications/misc/bibletime/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, cmake, sword, qt, boost, cluceneCore}:
+{stdenv, fetchurl, cmake, sword, qt4, boost, cluceneCore}:
 
 stdenv.mkDerivation rec {
 
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   name = "bibletime-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/bibletime/BibleTime%202/BibleTime%202%20source%20code/${name}.tar.bz2";
+    url = "mirror://sourceforge/bibletime/${name}.tar.bz2";
     sha256 = "0171hlwg4rjv93b3gwcyv3nsj2kzwf4n8f6jw6ld18x7xmk9rkdg";
   };
   
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     export SWORD_HOME=${sword};
   '';
 
-  buildInputs = [ cmake sword qt boost cluceneCore ];
+  buildInputs = [ cmake sword qt4 boost cluceneCore ];
 
   cmakeFlags = "-DUSE_QT_WEBKIT=ON -DCMAKE_BUILD_TYPE=Debug";
 
diff --git a/pkgs/applications/misc/djvulibre/default.nix b/pkgs/applications/misc/djvulibre/default.nix
index 0826f7241c4c3..b1001976ea042 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 a9ea63368c5d1..2a55512ff26e3 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/evince/default.nix b/pkgs/applications/misc/evince/default.nix
index 9868254261357..ac81a09c96d85 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/get_iplayer/default.nix b/pkgs/applications/misc/get_iplayer/default.nix
new file mode 100644
index 0000000000000..1a0453797ccd5
--- /dev/null
+++ b/pkgs/applications/misc/get_iplayer/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl}:
+
+stdenv.mkDerivation {
+  name = "get_iplayer-2.80";
+
+  buildInputs = [makeWrapper perl];
+
+  installPhase = '' 
+    ensureDir $out/bin
+    cp get_iplayer $out/bin
+    wrapProgram $out/bin/get_iplayer --suffix PATH ${ffmpeg}/bin:${flvstreamer}/bin
+  '';  
+  
+  src = fetchurl {
+    url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.80.tar.gz;
+    sha256 = "1hnadryyzca3bv1hfk2q3np9ihwvyxa3prwcrply6ywy4vnayjf8";
+  };
+  
+}
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index c76efc9d1c53d..7fde09c2175b4 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -13,14 +13,14 @@ assert monotoneSupport -> (monotone != null);
 
 let
   name = "ikiwiki";
-  version = "3.20110707";
+  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 = "b51fa7452a900212ab1c8c879227b83a688c10f770552aee61944695f8c6f1bf";
+    sha256 = "ef9cbe5ddf484e6b75de05cc6a5b51dfdff1f5920b1c4c66309b1409266df9c7";
   };
 
   buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
@@ -29,7 +29,6 @@ stdenv.mkDerivation {
     ++ 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
diff --git a/pkgs/applications/misc/jbidwatcher/default.nix b/pkgs/applications/misc/jbidwatcher/default.nix
new file mode 100644
index 0000000000000..56c547ce43570
--- /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/krename/default.nix b/pkgs/applications/misc/krename/default.nix
index af0ad61e6699d..e5af706d41c91 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, qt4, 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 qt4 phonon ];
 
   meta = {
     homepage = http://www.krename.net;
diff --git a/pkgs/applications/misc/krusader/default.nix b/pkgs/applications/misc/krusader/default.nix
index 3286c8addb3b4..f395e64ddb540 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/qgis/default.nix b/pkgs/applications/misc/qgis/default.nix
index b49275a656198..7e27736ee7e44 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 0000000000000..95d55047e1da5
--- /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 e7e79b47a7647..0000000000000
--- 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/semnotes/default.nix b/pkgs/applications/misc/semnotes/default.nix
index e994b567cea09..fbc4df3a0b77d 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 0000000000000..3164f0c1a94a7
--- /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/vifm/default.nix b/pkgs/applications/misc/vifm/default.nix
new file mode 100644
index 0000000000000..6f270f5c7cf26
--- /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/xmobar/default.nix b/pkgs/applications/misc/xmobar/default.nix
index 34bcc85f776bb..8271049861ebe 100644
--- a/pkgs/applications/misc/xmobar/default.nix
+++ b/pkgs/applications/misc/xmobar/default.nix
@@ -1,13 +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.12";
-  sha256 = "633b7985dbaebd58864f591ea7ff8b44f5a69b4e3d0a592df01daf8fe11a5d31";
-  extraBuildInputs = [X11 mtl parsec stm utf8String X11Xft];
-  configureFlags = "--flags=with_xft";
+  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/zathura/default.nix b/pkgs/applications/misc/zathura/default.nix
index 6c6b469f18d40..2e58a028a30fb 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 862ec616b9f80..74f80ccdab956 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   phases = "unpackPhase installPhase";
 
-  buildInputs = [makeWrapper unzip];
+  buildInputs = [ makeWrapper unzip ];
 
   libPath =
     stdenv.lib.makeLibraryPath
@@ -38,20 +38,17 @@ stdenv.mkDerivation rec {
 
   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 =  with stdenv.lib; {
diff --git a/pkgs/applications/networking/browsers/firefox/3.6.nix b/pkgs/applications/networking/browsers/firefox/3.6.nix
index 2d472ce8cc0a0..47754d67f3c86 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.16";
+  firefoxVersion = "3.6.21";
   
-  xulVersion = "1.9.2.16"; # this attribute is used by other packages
+  xulVersion = "1.9.2.21"; # 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 = "38124597440b7d60aa568adeef23659575841e92";
+    sha1 = "3c1f001ad22d93b48e191999f548b4382db3d36c";
   };
 
 
@@ -101,7 +101,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/firefox/;
     };
 
     passthru = { inherit gtk; version = xulVersion; };
@@ -141,7 +141,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/firefox/;
     };
 
     passthru = {
diff --git a/pkgs/applications/networking/browsers/firefox/5.0.nix b/pkgs/applications/networking/browsers/firefox/5.0.nix
index 8e3d600feb22f..f59d50fb6de6a 100644
--- a/pkgs/applications/networking/browsers/firefox/5.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/5.0.nix
@@ -108,7 +108,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/firefox/;
     };
 
     passthru = { inherit gtk; version = xulVersion; };
@@ -154,7 +154,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/firefox/;
     };
 
     passthru = {
diff --git a/pkgs/applications/networking/browsers/firefox/6.0-install-sdk-bin.patch b/pkgs/applications/networking/browsers/firefox/6.0-install-sdk-bin.patch
new file mode 100644
index 0000000000000..30fe15c6e483f
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/6.0-install-sdk-bin.patch
@@ -0,0 +1,35 @@
+
+# HG changeset patch
+# User Chris Coulson <chrisccoulson@ubuntu.com>
+# Date 1306390403 -7200
+# Node ID 99672871e93003520189cfe3a684ebbea151cb4b
+# Parent  831f8e040f381ed58441d8bf413f9845f26ce08e
+Bug 639554 - Install sdk/bin with make install. r=bsmedberg
+
+diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
+--- a/toolkit/mozapps/installer/packager.mk
++++ b/toolkit/mozapps/installer/packager.mk
+@@ -704,20 +704,22 @@ ifdef INSTALL_SDK # Here comes the hard 
+ 	$(NSINSTALL) -D $(DESTDIR)$(includedir)
+ 	(cd $(DIST)/include && tar $(TAR_CREATE_FLAGS) - .) | \
+ 	  (cd $(DESTDIR)$(includedir) && tar -xf -)
+ 	$(NSINSTALL) -D $(DESTDIR)$(idldir)
+ 	(cd $(DIST)/idl && tar $(TAR_CREATE_FLAGS) - .) | \
+ 	  (cd $(DESTDIR)$(idldir) && tar -xf -)
+ # SDK directory is the libs + a bunch of symlinks
+ 	$(NSINSTALL) -D $(DESTDIR)$(sdkdir)/sdk/lib
++	$(NSINSTALL) -D $(DESTDIR)$(sdkdir)/sdk/bin
+ 	if test -f $(DIST)/include/xpcom-config.h; then \
+ 	  $(SYSINSTALL) $(IFLAGS1) $(DIST)/include/xpcom-config.h $(DESTDIR)$(sdkdir); \
+ 	fi
+ 	(cd $(DIST)/sdk/lib && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DESTDIR)$(sdkdir)/sdk/lib && tar -xf -)
++	(cd $(DIST)/sdk/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DESTDIR)$(sdkdir)/sdk/bin && tar -xf -)
+ 	$(RM) -f $(DESTDIR)$(sdkdir)/lib $(DESTDIR)$(sdkdir)/bin $(DESTDIR)$(sdkdir)/include $(DESTDIR)$(sdkdir)/include $(DESTDIR)$(sdkdir)/sdk/idl $(DESTDIR)$(sdkdir)/idl
+ 	ln -s $(sdkdir)/sdk/lib $(DESTDIR)$(sdkdir)/lib
+ 	ln -s $(installdir) $(DESTDIR)$(sdkdir)/bin
+ 	ln -s $(includedir) $(DESTDIR)$(sdkdir)/include
+ 	ln -s $(idldir) $(DESTDIR)$(sdkdir)/idl
+ endif # INSTALL_SDK
+ 
+ make-sdk:
+
diff --git a/pkgs/applications/networking/browsers/firefox/4.0.nix b/pkgs/applications/networking/browsers/firefox/6.0.nix
index 6d988fb89fd9b..85a467a641edb 100644
--- a/pkgs/applications/networking/browsers/firefox/4.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/6.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
-, yasm, mesa
+, yasm, mesa, sqlite
 
 , # If you want the resulting program to call itself "Firefox" instead
   # of "Shiretoko" or whatever, enable this option.  However, those
@@ -15,14 +15,14 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
 
 rec {
 
-  firefoxVersion = "4.0.1";
+  firefoxVersion = "6.0.1";
   
-  xulVersion = "2.0.1"; # this attribute is used by other packages
+  xulVersion = "6.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";
-    sha1 = "c89bc5106266aa0097a7be15be84555bd2649f03";
+    sha256 = "08pklavbb6miaav07a8liw17k8nnh3i97plz8l9pdclan4aczb3i";
   };
 
   
@@ -36,11 +36,8 @@ rec {
       "--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"
-      # Disabled system Cairo for now because it causes gradients in tabs etc. to be missing.
-      # "--enable-system-cairo"
-      # Compiling with the Nixpkgs SQLite gives:
-      # "configure: error: System SQLite library is not compiled with SQLITE_SECURE_DELETE."
-      # "--enable-system-sqlite"
+      "--enable-system-cairo"
+      "--enable-system-sqlite"
       "--disable-crashreporter"
       "--disable-tests"
       "--disable-necko-wifi" # maybe we want to enable this at some point
@@ -54,13 +51,15 @@ rec {
     
     inherit src;
 
+    patches = [ ./6.0-install-sdk-bin.patch ];
+
     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
+	xlibs.libXext xlibs.xextproto sqlite
       ];
 
     configureFlags =
@@ -111,7 +110,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/firefox/;
     };
 
     passthru = { inherit gtk; version = xulVersion; };
@@ -128,7 +127,7 @@ rec {
     buildInputs =
       [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
         dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
-        xlibs.pixman yasm mesa
+        xlibs.pixman yasm mesa sqlite
       ];
 
     propagatedBuildInputs = [xulrunner];
@@ -157,7 +156,7 @@ rec {
 
     meta = {
       description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
+      homepage = http://www.mozilla.org/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 0000000000000..d9e94ead33a4a
--- /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/konq-plugins/default.nix b/pkgs/applications/networking/browsers/konq-plugins/default.nix
index 815e1a16964cc..656e24be07181 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/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
index 1a013d78d574c..462099ea8f2a6 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
@@ -53,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.3.181.34";
+        version = "10.3.183.5";
         url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
-        sha256 = "1k7gq0rynrv4vwr06dhjmhb633vm5a961bsqi6s8aqk61bdzhsia";
+        sha256 = "1kv7szpadgv0wwmi46vc05723qzsgclz68rij6x49l61sngzmw0x";
       }
-    else throw "flashplayer is not supported on this platform";
+    else throw "Flash Player is not supported on this platform";
 
 in
 
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 a652ffb2b65bd..ddb70e6d633e1 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-1.0.3beta";
+  name = "gecko-mediaplayer-1.0.4";
 
   src = fetchurl {
     url = "http://gecko-mediaplayer.googlecode.com/files/${name}.tar.gz";
-    sha256 = "5d639d9e11b24e71a50643d461ba2826978fecb4a7cec8049656d46a084c1a37";
+    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
index 3ae24bdddf985..1ea41d6446563 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "http://dl.google.com/linux/direct/google-talkplugin_current_x86_64.rpm";
-        sha256 = "01c8w221azvmqvxf5lgb8l151086d72ll5wnjndwn50dvi6rphvx";
+        sha256 = "14cf9bef6f70ff850b773dbb92833bbe45645db2636b7e17720fdc6b60e76d63";
       }
     else
       throw "Google Talk does not support your platform.";
@@ -89,4 +89,4 @@ stdenv.mkDerivation {
     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 f9b8061d5ebd6..ee37c2450a64e 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/rekonq/source.nix b/pkgs/applications/networking/browsers/rekonq/source.nix
deleted file mode 100644
index 5faeddaaf2a58..0000000000000
--- a/pkgs/applications/networking/browsers/rekonq/source.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ fetchurl, fetchgit }:
-
-builtins.listToAttrs
-[
-  {
-    name = "0.4.90";
-    value = rec {
-      name = "rekonq-0.4.90";
-      src = fetchurl {
-        url = "http://kde-apps.org/CONTENT/content-files/94258-${name}.tar.bz2";
-        name = "${name}.tar.bz2";
-        sha256 = "1dmdx54asv0b4xzc8p5nadn92l8pks9cl1y9j8a46lsslwsjw3ws";
-      };
-    };
-  }
-
-  {
-    name = "scm";
-    value = {
-      name = "rekonq-0.4.0-20100514";
-      src = fetchgit {
-        url = git://gitorious.org/rekonq/mainline.git;
-        rev = "6b4f4d69a3c599bc958ccddc5f7ac1c8648a7042";
-        sha256 = "1qcwf7rsrnsbnq62cl44r48bmavc2nysi2wqhy1jxmj2ndwvsxy1";
-      };
-    };
-  }
-]
diff --git a/pkgs/applications/networking/esniper/default.nix b/pkgs/applications/networking/esniper/default.nix
index 96b66794c2c6d..5aaf419d3897e 100644
--- a/pkgs/applications/networking/esniper/default.nix
+++ b/pkgs/applications/networking/esniper/default.nix
@@ -1,14 +1,11 @@
 { stdenv, fetchurl, openssl, curl }:
 
-let
-  name = "esniper";
-in
 stdenv.mkDerivation {
-  name = "${name}-2.25.0";
+  name = "esniper-2.26.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${name}/${name}-2-25-0.tgz";
-    sha256 = "64658eaca2fa27eaec0436a016648b12f6c49d7486cc3a6827f307aa93871def";
+    url = "mirror://sourceforge/esniper/esniper-2-26-0.tgz";
+    sha256 = "5fd9a0f4b27b98deca303cd3d16c1ed060e05a165a40b2f4a9f8546db5e3877d";
   };
 
   buildInputs = [openssl curl];
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index 74b6b0b21eaf0..1d49e0d1ff783 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr }:
 
 stdenv.mkDerivation rec {
-  name = "bitlbee-3.0.1";
+  name = "bitlbee-3.0.3";
 
   src = fetchurl {
     url = "mirror://bitlbee/src/${name}.tar.gz";
-    sha256 = "027n5f0phjr5fcrphbcflqv8hlkv5qnrpc1xgr09qjyv6mxp72j0";
+    sha256 = "09dgwfqznd2cnqraksivmh132nnl99gwgplynjmfsyyf6y4pbjl2";
   };
 
   buildInputs = [ gnutls glib pkgconfig libotr ]
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 0000000000000..263898ba0db10
--- /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 598bc1c0b2fa7..70c7d7234e0ca 100644
--- a/pkgs/applications/networking/instant-messengers/kadu/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kadu/default.nix
@@ -1,33 +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 .
   '';
-  
-  patches = [ 
-    ./includes.patch
-  ];
+
+  patches = [ ./config.patch ];
 
   NIX_LDFLAGS="-lX11";
 
-  meta = { 
-    description = "An instance messanger client for the gadu-gadu network (most popular polish IM network)";
+  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/includes.patch b/pkgs/applications/networking/instant-messengers/kadu/includes.patch
deleted file mode 100644
index 6960a24b17638..0000000000000
--- a/pkgs/applications/networking/instant-messengers/kadu/includes.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- kadu/kadu-core/main.cpp	2011-01-27 22:58:22.000000000 +0100
-+++ kadu/kadu-core/main.cpp	2011-01-27 22:58:28.000000000 +0100
-@@ -20,10 +20,8 @@
- #include <winsock2.h>
- #include <windows.h>
- #endif
--#ifdef Q_OS_BSD4
- #include <sys/types.h>
- #include <sys/stat.h>
--#endif
- 
- #include "config_file.h"
- #include "debug.h"
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 60234d361f7ce..0000000000000
--- 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/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index ad4a0473c5eb0..89c3a10a45e8f 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -18,14 +18,13 @@
   , openssl ? null
   , gnutls ? null
   , libgcrypt ? null
-  , voice ? null
 } :
 
 stdenv.mkDerivation {
-  name = "pidgin-2.7.9";
+  name = "pidgin-2.9.0";
   src = fetchurl {
-    url = mirror://sourceforge/pidgin/pidgin-2.7.9.tar.bz2;
-    sha256 = "17p1lcdxh241nsaz8xxbr8l5r7a0v5qg500cj0llww56k7qxf8lp";
+    url = mirror://sourceforge/pidgin/pidgin-2.9.0.tar.bz2;
+    sha256 = "1mygaap7cbak9n9zm4wshxnvb27a68w633d712vy2knr8z78xvi8";
   };
 
   inherit nss ncurses;
@@ -47,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/linphone/default.nix b/pkgs/applications/networking/linphone/default.nix
index 7ed64de9ee6e7..07ca19b63cc50 100644
--- a/pkgs/applications/networking/linphone/default.nix
+++ b/pkgs/applications/networking/linphone/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, intltool, pkgconfig, gtk, libglade, libosip, libexosip, speex,
-  readline, ffmpeg, alsaLib, SDL, libv4l, libtheora }:
+  readline, ffmpeg, alsaLib, SDL, libv4l, libtheora, libXv }:
         
-stdenv.mkDerivation {
-  name = "linphone-3.3.2";
+stdenv.mkDerivation rec {
+  name = "linphone-3.4.3";
 
   src = fetchurl {
-    url = http://download.savannah.gnu.org/releases/linphone/3.3.x/sources/linphone-3.3.2.tar.gz;
-    sha256 = "0plxqs6v2jz6s7ig8wfzg2ivjvdjja5xhqvrcsv644zl3b4igax7";
+    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 ];
+    ffmpeg alsaLib SDL libv4l libtheora libXv ];
 
   meta = {
     homepage = http://www.linphone.org/;
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index ffe4ca3271265..02870c70f6465 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 6476075d67dee..0000000000000
--- 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/thunderbird/3.x.nix b/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix
index adfc1be0c5bd2..cc21a5b040061 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/3.x.nix
@@ -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/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 0000000000000..a8ee384d81dba
--- /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/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 0000000000000..ac074e8c88129
--- /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/p2p/ktorrent/default.nix b/pkgs/applications/networking/p2p/ktorrent/default.nix
index 9e1e7067603fa..e4cb4e9089ab8 100644
--- a/pkgs/applications/networking/p2p/ktorrent/default.nix
+++ b/pkgs/applications/networking/p2p/ktorrent/default.nix
@@ -1,27 +1,32 @@
-{ 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.5";
+  version = "4.1.1";
 
   src = fetchurl {
     url = "${meta.homepage}/downloads/${version}/${name}.tar.bz2";
-    sha256 = "1kgy0r9c51w38vj5kjla16vh7nigs89qvvjybjjkv4r41nz9kcfn";
+    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";
     homepage = http://ktorrent.org;
     maintainers = with stdenv.lib.maintainers; [ sander urkud ];
+    inherit (libktorrent.meta) platforms;
   };
 }
diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix
index ecc2e5f77941f..244858757d10f 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 = {
@@ -13,8 +13,6 @@ stdenv.mkDerivation (rec {
     homepage = http://mldonkey.sourceforge.net/;
   };
 
-  patches = [ ./gcc44mips64.patch ];
-
   buildInputs = [ ocaml zlib ncurses bzip2 file gd libpng ];
   configureFlags = [ "--disable-gui" ];
 } // (if (stdenv.system != "i686-linux" && stdenv.system != "x86_64-linux") then
diff --git a/pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch b/pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch
deleted file mode 100644
index 41449dcdd05c4..0000000000000
--- a/pkgs/applications/networking/p2p/mldonkey/gcc44mips64.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-Patch fixing CryptoPP so:
-- it builds properly in mips64 with gcc 4.4 (gcc 4.4 does not have the 'h' asm constraint)
-- it runs properly in mips64 (where lack of templated *Precision functions gave wrong numbers).
-  An assertion check failed without this.
-
-diff --git a/src/utils/lib/CryptoPP.cc b/src/utils/lib/CryptoPP.cc
-index 9208e1c..6b12b0a 100644
---- a/src/utils/lib/CryptoPP.cc
-+++ b/src/utils/lib/CryptoPP.cc
-@@ -890,35 +890,6 @@ unsigned int Parity(unsigned long value)
- 	return (unsigned int)value&1;
- }
- 
--unsigned int BytePrecision(unsigned long value)
--{
--	unsigned int i;
--	for (i=sizeof(value); i; --i)
--		if (value >> (i-1)*8)
--			break;
--
--	return i;
--}
--
--unsigned int BitPrecision(unsigned long value)
--{
--	if (!value)
--		return 0;
--
--	unsigned int l=0, h=8*sizeof(value);
--
--	while (h-l > 1)
--	{
--		unsigned int t = (l+h)/2;
--		if (value >> t)
--			l = t;
--		else
--			h = t;
--	}
--
--	return h;
--}
--
- unsigned long Crop(unsigned long value, unsigned int size)
- {
- 	if (size < 8*sizeof(value))
-@@ -1880,7 +1851,10 @@ public:
- 		#elif defined(__x86_64__)
- 			__asm__("mulq %3" : "=d" (r.m_halfs.high), "=a" (r.m_halfs.low) : "a" (a), "rm" (b) : "cc");
- 		#elif defined(__mips64)
--			__asm__("dmultu %2,%3" : "=h" (r.m_halfs.high), "=l" (r.m_halfs.low) : "r" (a), "r" (b));
-+      //typedef unsigned int uint128_t __attribute__((mode(TI)));
-+      __uint128_t tmp = (__uint128_t) a * b;
-+      r.m_halfs.high = tmp >> 64;
-+      r.m_halfs.low = tmp;
- 		#elif defined(_M_IX86)
- 			// for testing
- 			word64 t = (word64)a * b;
-diff --git a/src/utils/lib/CryptoPP.h b/src/utils/lib/CryptoPP.h
-index d2ec1b2..775a898 100644
---- a/src/utils/lib/CryptoPP.h
-+++ b/src/utils/lib/CryptoPP.h
-@@ -1869,10 +1869,39 @@ template <class T> inline const T& STDMAX(const T& a, const T& b)
- // #define GETBYTE(x, y) (((byte *)&(x))[y])
- 
- CRYPTOPP_DLL unsigned int Parity(unsigned long);
--CRYPTOPP_DLL unsigned int BytePrecision(unsigned long);
--CRYPTOPP_DLL unsigned int BitPrecision(unsigned long);
- CRYPTOPP_DLL unsigned long Crop(unsigned long, unsigned int size);
- 
-+template <typename T>
-+unsigned int BitPrecision(const T &value)
-+{
-+	if (!value)
-+		return 0;
-+
-+	unsigned int l=0, h=8*sizeof(value);
-+
-+	while (h-l > 1)
-+	{
-+		unsigned int t = (l+h)/2;
-+		if (value >> t)
-+			l = t;
-+		else
-+			h = t;
-+	}
-+
-+	return h;
-+}
-+
-+template <typename T>
-+unsigned int BytePrecision(const T &value)
-+{
-+	unsigned int i;
-+	for (i=sizeof(value); i; --i)
-+		if (value >> (i-1)*8)
-+			break;
-+
-+	return i;
-+}
-+
- inline unsigned int BitsToBytes(unsigned int bitCount)
- {
- 	return ((bitCount+7)/(8));
diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix
index 24e18a75cc973..cceb70b74fbf0 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/skype/default.nix b/pkgs/applications/networking/skype/default.nix
index 7e066b5e380ca..98cbfdb7c57d9 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/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index aa694a3908d22..06bab807ebdd4 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -6,10 +6,10 @@ let
 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 ncurses ];
diff --git a/pkgs/applications/office/abiword/default.nix b/pkgs/applications/office/abiword/default.nix
index 6e3d57b78a8b4..fdfd60e98370f 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/antiword/default.nix b/pkgs/applications/office/antiword/default.nix
new file mode 100644
index 0000000000000..c4da2b609ce76
--- /dev/null
+++ b/pkgs/applications/office/antiword/default.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv }:
+
+let
+  name = "antiword-0.37";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "http://www.winfield.demon.nl/linux/${name}.tar.gz";
+    sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f";
+  };
+
+  patchPhase = ''
+    sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h
+  '';
+
+  installTargets = "global_install";
+
+  meta = {
+    homepage = "http://www.winfield.demon.nl/";
+    description = "convert MS Word documents to plain text or PostScript";
+    license = stdenv.lib.licenses.gpl2;
+
+    maintainers = [ stdenv.lib.maintainers.simons ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/office/hledger-interest/default.nix b/pkgs/applications/office/hledger-interest/default.nix
new file mode 100644
index 0000000000000..aea3a1f6aa1e9
--- /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/kmymoney/default.nix b/pkgs/applications/office/kmymoney/default.nix
new file mode 100644
index 0000000000000..8665b8731500c
--- /dev/null
+++ b/pkgs/applications/office/kmymoney/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, cmake, kdelibs, automoc4, kdepimlibs, gettext,
+  shared_mime_info, perl, boost, gpgme }:
+
+stdenv.mkDerivation rec {
+  name = "kmymoney-4.5.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/kmymoney2/${name}.tar.bz2";
+    sha256 = "1yvgyzybfm1ajswwq3w3kdij4y2cyhfkk52xhv7dbp1wrxsp5cx9";
+  };
+
+  buildInputs = [ kdelibs kdepimlibs perl boost gpgme ];
+  buildNativeInputs = [ cmake automoc4 gettext shared_mime_info ];
+
+  patches = [ ./qgpgme.patch ];
+
+  meta = {
+    homepage = http://kmymoney2.sourceforge.net/;
+    description = "KDE personal money manager";
+    inherit (kdelibs.meta) platforms maintainers;
+  };
+}
diff --git a/pkgs/applications/office/kmymoney/qgpgme.patch b/pkgs/applications/office/kmymoney/qgpgme.patch
new file mode 100644
index 0000000000000..59ed37edaf8e8
--- /dev/null
+++ b/pkgs/applications/office/kmymoney/qgpgme.patch
@@ -0,0 +1,17 @@
+KMymoney tries to find qgpgme before kdepimlibs. This is wrong because
+FindQGpgme is installed by kdepimlibs, thus can be invisible until kdepimlibs
+found.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f6d7305..88bac67 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -59,8 +59,8 @@ else (WIN32)
+   find_package(Boost "1.33.1" COMPONENTS graph)
+ endif (WIN32)
+ # needed by libkgpgfile
+-find_package(QGpgme REQUIRED)
+ find_package(KdepimLibs REQUIRED)
++find_package(QGpgme REQUIRED)
+ find_package(SharedMimeInfo REQUIRED)
+ 
+ add_definitions( ${QT_DEFINITIONS} ${KDE4_DEFINITIONS} ${KDEPIM_DEFINITIONS})
diff --git a/pkgs/applications/office/ledger/3.0.nix b/pkgs/applications/office/ledger/3.0.nix
new file mode 100644
index 0000000000000..6c3a469439535
--- /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 c1cd4b42a02aa..1bc8e586e33f7 100644
--- a/pkgs/applications/office/ledger/default.nix
+++ b/pkgs/applications/office/ledger/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
       their data, there really is no alternative.
     '';
 
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
diff --git a/pkgs/applications/science/chemistry/avogadro/default.nix b/pkgs/applications/science/chemistry/avogadro/default.nix
new file mode 100644
index 0000000000000..702f4c28912fa
--- /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/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index b15b62bfa66ee..d835e351cac69 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchsvn, writeScript, ocaml, findlib, camlp5}:
 
 stdenv.mkDerivation rec {
-  name = "hol_light-20110611";
+  name = "hol_light-20110813";
   src = fetchsvn {
     url = http://hol-light.googlecode.com/svn/trunk;
-    rev = "92";
-    sha256 = "773fd353c06ebcbba28d2ba8cc495bd3ab0bb6f3f722f566fb3261a27a873ca0";
+    rev = "102";
+    sha256 = "5b972672db6aa1838dc5d130accd9ab6a62030c6b0c1dc4b69e42088b1ae86c9";
   };
 
   buildInputs = [ ocaml findlib camlp5 ];
diff --git a/pkgs/applications/science/logic/leo2/default.nix b/pkgs/applications/science/logic/leo2/default.nix
index eb3a135934801..04ab9a5b5ab3a 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/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index 0b71b72f13c72..f8f21d8909b49 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -2,7 +2,7 @@
 
 let
   name    = "maxima";
-  version = "5.24.0";
+  version = "5.25.0";
 
   searchPath =
     stdenv.lib.makeSearchPath "bin"
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
-    sha256 = "137crv2f6hxwqrv75m8679vrlbnqgg5ww755cs4kihs1cy03bssq";
+    sha256 = "49c90fb809f5027787600050503476193db3620fd9517f620b82ad492ba30c0a";
   };
 
   buildInputs = [sbcl texinfo perl makeWrapper];
diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix
index 62763ac2198a2..43291d792b720 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/version-management/darcs/darcs-2.nix b/pkgs/applications/version-management/darcs/darcs-2.nix
deleted file mode 100644
index f89b29d95f112..0000000000000
--- 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.1";
-  sha256 = "0h7i2nw1fkmdrvwgzccqvbbfx8bdhn0h9d5rd98ayjs207dnvrj8";
-
-  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 0000000000000..e3f1742ee594b
--- /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 5002565b3eac2..002226292b023 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 = "20110512145652";
+  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 = "1x51bmmzmabq8dkpm4sxkqbpmp6nxk9dix7pqa2calmjn3rmzc8k";
+    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 cc58a6ff6c6c2..2fb2ad431ce86 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -47,8 +47,9 @@ rec {
 
   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;
+    inherit (haskellPackages) ghc MissingH utf8String pcreLight SHA dataenc
+      HTTP testpack monadControl;
+    QuickCheck2 = haskellPackages.QuickCheck_2_4_0_1;
   };
 
   qgit = import ./qgit {
@@ -104,11 +105,11 @@ rec {
   };
 
   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
index 4407514b70edf..d72b1868b039d 100644
--- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
@@ -1,19 +1,20 @@
 { stdenv, fetchurl, ghc, libuuid, rsync, findutils, curl, perl, MissingH, utf8String
-, QuickCheck2, pcreLight, SHA, dataenc, HTTP, testpack, git, ikiwiki, which }:
+, QuickCheck2, pcreLight, SHA, dataenc, HTTP, testpack, git, ikiwiki, which
+, monadControl }:
 
 let
-  version = "3.20110707";
+  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 = "0yyrp94przjmdljd97q5p0yll9aa1jdajrvlhl4m1yq0ngx6x4rr";
+    sha256 = "1442ba4ff35ec8f92f336a5f1055d7ad8306348871a9697262f4f2af3b3c0943";
   };
 
   buildInputs = [ghc libuuid rsync findutils curl perl MissingH utf8String QuickCheck2 pcreLight
-    SHA dataenc HTTP testpack git ikiwiki which];
+    SHA dataenc HTTP testpack git ikiwiki which monadControl];
 
   checkTarget = "test";
   doCheck = true;
@@ -45,7 +46,7 @@ stdenv.mkDerivation {
       control.
     '';
 
-    platforms = stdenv.lib.platforms.haskellPlatforms;
+    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 7d51573bad209..ee207788875b8 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -53,6 +53,12 @@ stdenv.mkDerivation rec {
       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
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 026fc18c80183..f3fc8c9b6e984 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/kdesvn/default.nix b/pkgs/applications/version-management/kdesvn/default.nix
index b6893ba17e14c..10a590e941b48 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/veracity/default.nix b/pkgs/applications/version-management/veracity/default.nix
index a39c2a2d1ed02..82a588f6a1ede 100644
--- a/pkgs/applications/version-management/veracity/default.nix
+++ b/pkgs/applications/version-management/veracity/default.nix
@@ -65,6 +65,7 @@ rec {
 
   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
diff --git a/pkgs/applications/version-management/veracity/src-for-default.nix b/pkgs/applications/version-management/veracity/src-for-default.nix
index dce73da0bf5f4..504d260204cd7 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.9.0.10466";
-   name="veracity-0.9.0.10466";
-   hash="19mi6pw4cy4f0w7v7myx0i1ajy40i9pgkmgr9rvfilcyi9rlvj6q";
-   url="http://download-us.sourcegear.com/Veracity/nightly/veracity-source-${version}.tar.gz";
-   advertisedUrl="http://download-us.sourcegear.com/Veracity/nightly/veracity-source-0.9.0.10466.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 dac6c65e85c65..cf4936ffc554b 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 e51e91478b764..348a5e7e32371 100644
--- a/pkgs/applications/video/MPlayer/default.nix
+++ b/pkgs/applications/video/MPlayer/default.nix
@@ -61,11 +61,13 @@ let
       license = "unfree";
     };
   } else null;
+  
   ffmpegGit = fetchgit {
     url = "git://git.videolan.org/ffmpeg.git";
     rev = "80d156d";
     sha256 = "6d0124621491b8adc5f1bfb426ab137efc72dab99a89835aa3c30b970cb14004";
   };
+  
   mplayerRev = "33472";
 
 in
@@ -134,6 +136,7 @@ stdenv.mkDerivation rec {
     --disable-ivtv
     --enable-vidix
     --enable-fbdev
+    --disable-ossaudio
   '';
 
   NIX_LDFLAGS = if x11Support then "-lX11 -lXext" else "";
diff --git a/pkgs/applications/video/gnome-mplayer/default.nix b/pkgs/applications/video/gnome-mplayer/default.nix
index 0d86e902efdb0..7c1d13fd79d95 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 5edae1b3e7201..6db6e630d325f 100644
--- a/pkgs/applications/video/kdenlive/default.nix
+++ b/pkgs/applications/video/kdenlive/default.nix
@@ -1,20 +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";
   };
 
-  prePatch = ''
-    # For Qt47 compatibility.
-    sed -i 's@class QImage@#include <QImage>@' src/colorcorrection/vectorscopegenerator.h
-  '';
+  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 0000000000000..b3a772a7ac6e1
--- /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/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index c96dfeb013f36..ce7b233fdd208 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -1,5 +1,5 @@
 { 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
@@ -10,17 +10,17 @@
 
 stdenv.mkDerivation rec {
   name = "vlc-${version}";
-  version = "1.1.9";
+  version = "1.1.11";
 
   patchPhase = ''sed -e "s@/bin/echo@echo@g" -i configure'';
 
   src = fetchurl {
     url = "mirror://sourceforge/vlc/${name}.tar.bz2";
-    sha256 = "02rdrfxh7d70yxz0qinmkw2jad2hxzfrw0r1hiyyxandrgg73ggh";
+    sha256 = "1jz1yklvh5apy2ygqwnyq61mhg09h0fn32hdygxfsaxq12z609b8";
   };
 
   buildInputs = [
-    perl zlib a52dec libmad faad2 ffmpeg alsa libdvdnav libdvdnav.libdvdread
+    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
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 727cea4d6786a..0cb4999bce64f 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -4,14 +4,14 @@
 , xorriso, makeself, perl, jdk
 }:
 
-let version = "4.0.4"; in
+let version = "4.1.0"; in
 
 stdenv.mkDerivation {
   name = "virtualbox-${version}-${kernel.version}";
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "1iqagfkpjczdf4xqdwjk49cbsl80d12av0rjb6jccm1gir1gwjgh";
+    sha256 = "1pi066xnjgr3fl42i1vc1pbwic9l4m1k6mzs4ip41fz99w59xfzp";
   };
 
   buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL hal libcap glib kernel python alsaLib curl pam xorriso makeself perl jdk ];
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
         -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
   ";
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index a89efd4140353..9dfe9c26c0de7 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
 , libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor}:
 
-let version = "4.0.4"; in
+let version = "4.1.0"; in
 
 stdenv.mkDerivation {
   name = "VirtualBox-GuestAdditions-${version}";
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "0f3phmy75cfyhvfsyljs85rgra13kiy2zans6bhc7sqji30kkk48";
+    sha256 = "0azj08l0457cjl5v2ddgb5kz8gblsi7cgjgdmyiszvlqpyfbh98w";
   };
   KERN_DIR = "${kernel}/lib/modules/*/build";
   buildInputs = [ patchelf cdrkit makeWrapper ];
@@ -45,8 +45,7 @@ stdenv.mkDerivation {
     for i in *
     do
 	cd $i
-	sed -i -e "s/depmod/echo/g" Makefile
-	sed -i -e "s/depmod/echo/g" */Makefile
+	find . -type f | xargs sed 's/depmod -a/true/' -i
 	make
 	cd ..
     done
@@ -106,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
@@ -117,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/window-managers/dwm/default.nix b/pkgs/applications/window-managers/dwm/default.nix
index cca60332d06cc..1427eec54f6cd 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/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix
new file mode 100644
index 0000000000000..ce66f7d9bcc03
--- /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 5380db40c0226..76b9b37456e2b 100644
--- a/pkgs/applications/window-managers/xmonad/default.nix
+++ b/pkgs/applications/window-managers/xmonad/default.nix
@@ -1,6 +1,6 @@
 {cabal, X11, mtl, xmessage, syb}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xmonad";
   name = "${self.fname}";
   version = "0.9.2";
@@ -8,8 +8,14 @@ cabal.mkDerivation (self : {
   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 a8b39e6e5b0df..7ca5e2b17fd10 100644
--- a/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
@@ -1,11 +1,22 @@
-{cabal, xmonad, X11, utf8String, X11Xft}:
+{ cabal, extensibleExceptions, mtl, random, utf8String, X11, X11Xft
+, xmonad
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xmonad-contrib";
   version = "0.9.2";
   sha256 = "06hg5j4w8iz62wmyygq4c7xcbi9dxlhhh3dbic438cjk7c0w1h5p";
-  propagatedBuildInputs = [X11 xmonad utf8String X11Xft];
+  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
index 4c554bef0e440..6d9b2a420fbec 100644
--- a/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
@@ -1,7 +1,7 @@
 {cabal, xmonad, xmonadContrib, X11, utf8String, X11Xft,
  parsec, split}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xmonad-extras";
   version = "0.9.2";
   sha256 = "54b41a4c59ff3d68b3a214d727fb5675fa7c1b90090d99e58ecae62b3dfdd701";
@@ -9,6 +9,13 @@ cabal.mkDerivation (self : {
     [X11 xmonad xmonadContrib utf8String X11Xft parsec split];
   noHaddock = true;
   meta = {
-    description = "Various modules for xmonad that cannot be added to xmonad-contrib because of additional dependencies";
+    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/fetchfile/default.nix b/pkgs/build-support/fetchfile/default.nix
index 7c811df59c5d4..bdddfab2b4d6d 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 ed3af4a7ab618..5c7d92698cc32 100644
--- a/pkgs/build-support/fetchgit/builder.sh
+++ b/pkgs/build-support/fetchgit/builder.sh
@@ -6,27 +6,6 @@ source $stdenv/setup
 
 header "exporting $url (rev $rev) into $out"
 
-git init $out
-cd $out
-git remote add origin "$url"
-git fetch --progress origin
-git remote set-head origin -a || (
-    test -n "$rev" && echo "that's ok, we want $rev" || exit 1)
-
-if test -n "$rev"; then
-    echo "Trying to checkout: $rev"
-    parsed_rev=$(
-        git rev-parse --verify "$rev" 2>/dev/null ||
-        git rev-parse --verify origin/"$rev" 2>/dev/null
-    ) 
-    git reset --hard $parsed_rev
-    git checkout -b __nixos_build__
-else
-    git checkout -b __nixos_build__ origin/HEAD
-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 a0ad57ea30643..e94e4185936bf 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -1,4 +1,4 @@
-{stdenv, git}:
+{stdenv, git, cacert}:
 {url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false }:
 
 /* NOTE:
@@ -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";
@@ -34,6 +35,8 @@ stdenv.mkDerivation {
 
   inherit url rev leaveDotGit;
 
+  GIT_SSL_CAINFO = "${cacert}/etc/ca-bundle.crt";
+
   impureEnvVars = [
     # We borrow these environment variables from the caller to allow
     # easy proxy configuration.  This is impure, but a fixed-output
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 198ab5c65fedf..01675ed02a780 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,7 +158,7 @@ clone(){
     # Checkout linked sources.
     init_submodules;
 
-    if [ -f .topdeps ]; then
+    if [ -z "$builder" -a -f .topdeps ]; then
 	if tg help 2>&1 > /dev/null
 	then
 	    echo "populating TopGit branches..."
@@ -134,56 +172,83 @@ clone(){
     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
+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 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
+
+  # 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
diff --git a/pkgs/build-support/fetchmtn/default.nix b/pkgs/build-support/fetchmtn/default.nix
index 7fda2821905fe..80d9091e01deb 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/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 7ff9899dced36..94624412d35a8 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -196,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/
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index a4a1c6c931cf4..cc3d93bd561af 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -99,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
@@ -134,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
 
@@ -161,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
 
@@ -182,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
@@ -221,7 +216,7 @@ rec {
       -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
   '';
 
@@ -229,6 +224,7 @@ rec {
   startSamba =
     ''
       export WHO=`whoami`
+      mkdir -p $TMPDIR/xchg
 
       cat > $TMPDIR/smb.conf <<SMB
       [global]
@@ -240,9 +236,14 @@ rec {
         log file = $TMPDIR/log.smbd
         smb passwd file = $TMPDIR/smbpasswd
         security = share
-      [qemu]
+      [store]
+        force user = $WHO
+        path = /nix/store
+        read only = no
+        guest ok = yes
+      [xchg]
         force user = $WHO
-        path = /
+        path = $TMPDIR/xchg
         read only = no
         guest ok = yes
       SMB
@@ -257,6 +258,8 @@ rec {
     export > saved-env
 
     PATH=${coreutils}/bin
+    mkdir xchg
+    mv saved-env xchg/
 
     diskImage=''${diskImage:-/dev/null}
 
@@ -279,14 +282,14 @@ rec {
     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)
   '';
 
 
@@ -482,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;
@@ -527,7 +532,7 @@ rec {
         ${utillinux}/bin/umount /mnt
       '';
 
-      passthru = {inherit fullName;};
+      passthru = { inherit fullName; };
     });
 
 
@@ -548,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}
   '';
@@ -625,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;
@@ -697,7 +703,7 @@ rec {
         ${utillinux}/bin/umount /mnt
       '';
 
-      passthru = {inherit fullName;};
+      passthru = { inherit fullName; };
     });
 
 
@@ -730,7 +736,7 @@ rec {
       rpms = import (rpmClosureGenerator {
         inherit name packagesList urlPrefix archs;
         packages = packages ++ extraPackages;
-      }) {inherit fetchurl;};
+      }) { inherit fetchurl; };
     };
 
 
@@ -815,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;
     };
     
@@ -826,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;
     };
 
@@ -837,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" ];
     };
 
@@ -848,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" ];
     };
@@ -860,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" ];
     };
 
@@ -871,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" ];
     };
@@ -883,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" ];
     };
@@ -895,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" ];
     };
@@ -907,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" ];
     };
@@ -919,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" ];
     };
@@ -931,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" ];
     };
@@ -943,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" ];
     };
@@ -1210,22 +1216,22 @@ rec {
     };
 
     debian60i386 = {
-      name = "debian-6.0-squeeze-i386";
-      fullName = "Debian 6.0 Squeeze (i386)";
+      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 = "1c1faz7ig9jvx3a2d2crp6fx0gynh5s4xw1vv1mn14rzkx86l59i";
+        sha256 = "0fv1vkyaci489a8np1aaqbrwnc2d0as39hadyj9dswhm7zgfvmk1";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
     };
         
     debian60x86_64 = {
-      name = "debian-6.0-squeeze-amd64";
-      fullName = "Debian 6.0 Squeeze (amd64)";
+      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 = "1c1n16q0hrimrnmv6shrr0z82xjqfjhm17salry8xi984c5fprwd";
+        sha256 = "1hvaqsmd801syifqwhpd1aqv30xg33z8g74k5pqcqhxqzah653d5";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index f981c79b69222..aa4212ea56593 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "cacert-20090922";
+  name = "cacert-20110806";
 
   src = fetchurl {
-    url = http://nixos.org/tarballs/cacert-20090922.pem.bz2;
-    sha256 = "1fakipxy5y62vslw6czj24pksh16b042py9v0199mxhzg5nmbmy7";
+    url = "http://nixos.org/tarballs/${name}.pem.bz2";
+    sha256 = "0vn1hic2a7p1vr2pf9hy8da4zm9qjndid4nwgj1m035y4ldjqlyw";
   };
 
   unpackPhase = "true";
diff --git a/pkgs/data/misc/shared-desktop-ontologies/default.nix b/pkgs/data/misc/shared-desktop-ontologies/default.nix
index b4713794a03ec..f5bf062b35998 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.8.0";
+  
   src = fetchurl {
-    url = "mirror://sf/oscaf/${name}.tar.bz2";
-    sha256 = "1a1gs2b314133rg7vzwvnqbxchf7xgs0jpkydid5l2wz98m7j17r";
+    url = "mirror://sourceforge/oscaf/${name}.tar.bz2";
+    sha256 = "0wf4gli2akkqbl944lqjjy2hvcfagq6zzmdg7fkzr61p6vw7nk82";
   };
+  
   buildInputs = [ cmake ];
+  
   meta = with stdenv.lib; {
     description = "Ontologies necessary for the Nepomuk semantic desktop";
     longDescription = ''
diff --git a/pkgs/data/misc/xkeyboard-config/default.nix b/pkgs/data/misc/xkeyboard-config/default.nix
index 61fc028f5438b..63357fb45a322 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 db458df1e644c..36eb7b70be2bf 100644
--- a/pkgs/desktops/gnome-2.28/default.nix
+++ b/pkgs/desktops/gnome-2.28/default.nix
@@ -143,7 +143,7 @@ pkgs.makeOverridable
   };
 
   glib_networking = import ./platform/glib-networking {
-    inherit (pkgs) stdenv fetchurl pkgconfig glib libtool intltool gnutls
+    inherit (pkgs) stdenv fetchurl pkgconfig glib libtool intltool gnutls2
       libproxy libgcrypt libtasn1;
   };
 
diff --git a/pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix b/pkgs/desktops/gnome-2.28/desktop/gtksourceview/default.nix
index a19c8e5fcd0df..64dbd8e1a6f39 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/platform/glib-networking/default.nix b/pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix
index 5b7f590b29ca6..53ab1ba084065 100644
--- a/pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix
+++ b/pkgs/desktops/gnome-2.28/platform/glib-networking/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, glib, libtool, intltool, gnutls, libproxy
+{stdenv, fetchurl, pkgconfig, glib, libtool, intltool, gnutls2, libproxy
   , libgcrypt, libtasn1
   }:
 
@@ -19,6 +19,6 @@ stdenv.mkDerivation {
   '';
 
   buildInputs = [ pkgconfig ];
-  propagatedBuildInputs = [ glib libtool intltool gnutls libproxy libgcrypt 
+  propagatedBuildInputs = [ glib libtool intltool gnutls2 libproxy libgcrypt 
     libtasn1];
 }
diff --git a/pkgs/desktops/kde-4.5/bindings/default.nix b/pkgs/desktops/kde-4.5/bindings/default.nix
index f7e35c5dba727..ec4c2ecc4cb52 100644
--- a/pkgs/desktops/kde-4.5/bindings/default.nix
+++ b/pkgs/desktops/kde-4.5/bindings/default.nix
@@ -19,10 +19,10 @@ 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";
diff --git a/pkgs/desktops/kde-4.5/default.nix b/pkgs/desktops/kde-4.5/default.nix
index d09b4ae3f536b..9381107ef6fb0 100644
--- a/pkgs/desktops/kde-4.5/default.nix
+++ b/pkgs/desktops/kde-4.5/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, recurseIntoAttrs, runCommand, stdenv, fetchurl, qt47 } :
+{ callPackage, recurseIntoAttrs, callPackageOrig, runCommand, stdenv, fetchurl, qt47, ffmpeg_0_6_90 } :
 
 let
 
@@ -17,14 +17,14 @@ let
 
 in
 
-recurseIntoAttrs rec {
-  recurseForRelease = true;
-
+rec {
   inherit callPackage stdenv;
 
   qt4 = qt47;
 
-  phonon = null;
+  ffmpeg = ffmpeg_0_6_90;
+
+  shared_desktop_ontologies = callPackage ./support/shared-desktop-ontologies { };
 
   kde = callPackage ./kde-package { inherit release; };
 
@@ -47,6 +47,9 @@ recurseIntoAttrs rec {
 ### BASE
   kdebase = callPackage ./base { };
 
+  # Forward compatibility.
+  kde_baseapps = kdebase;
+
   kdebase_workspace = callPackage ./base-workspace { };
 
   kdebase_runtime = callPackage ./base-runtime { };
@@ -125,7 +128,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 { };
   };
@@ -142,7 +145,8 @@ recurseIntoAttrs rec {
 
 ### DEVELOPMENT
 
-  kdebindings = callPackage ./bindings { };
+  #kdebindings = callPackage ./bindings { };
+  kdebindings = null;
 
   l10n = callPackage ./l10n { inherit release; };
 
diff --git a/pkgs/desktops/kde-4.5/games/default.nix b/pkgs/desktops/kde-4.5/games/default.nix
index a83b2a9494aa5..8a407b3f57215 100644
--- a/pkgs/desktops/kde-4.5/games/default.nix
+++ b/pkgs/desktops/kde-4.5/games/default.nix
@@ -7,10 +7,6 @@ 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";
diff --git a/pkgs/desktops/kde-4.5/libs/default.nix b/pkgs/desktops/kde-4.5/libs/default.nix
index 9e9ac65c01679..c45b9ac98f809 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 ];
 
diff --git a/pkgs/desktops/kde-4.5/pim-runtime/default.nix b/pkgs/desktops/kde-4.5/pim-runtime/default.nix
index d92f1eecc73ba..6fb6a44d38d49 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 cdcc3dc023dbf..5f7d5e06c48ca 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/support/shared-desktop-ontologies/default.nix b/pkgs/desktops/kde-4.5/support/shared-desktop-ontologies/default.nix
new file mode 100644
index 0000000000000..b4713794a03ec
--- /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 073ea87e9721e..8d07f352d17dd 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.3";
+  name = "soprano-2.7.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/soprano/${name}.tar.bz2";
-    sha256 = "0hxc6jnbh0529jsc0ixvy8pshnffrpgsadinhk9navkpyn5xg4l9";
+    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.6/accessibility/color-schemes.nix b/pkgs/desktops/kde-4.6/accessibility/color-schemes.nix
deleted file mode 100644
index 997ad8ff4f4ee..0000000000000
--- 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 2f18298f22708..0000000000000
--- 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 9270d5fb177fb..0000000000000
--- 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 207f1d0b3cbbd..0000000000000
--- 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 bb10de6e3ceea..0000000000000
--- 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 6bbee6106fda5..0000000000000
--- 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 78e29543c1f02..0000000000000
--- 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 8b91430ddd9c1..0000000000000
--- a/pkgs/desktops/kde-4.6/admin/default.nix
+++ /dev/null
@@ -1,23 +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.module = "kdeadmin";
-  };
-}
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 307cdf92ba09f..0000000000000
--- 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 ddf1cb7765718..0000000000000
--- 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 4bca474f25447..0000000000000
--- 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 5ec584d4d0c66..0000000000000
--- 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 5620228865984..0000000000000
--- 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 b7020c0e4f89c..0000000000000
--- 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 9719fefc33f19..0000000000000
--- 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 068bc458a1a71..0000000000000
--- 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 612bf1613f9b8..0000000000000
--- 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 b46d65aa55001..0000000000000
--- 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 d4f7d1d2a2f1e..0000000000000
--- 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 3bafa9a8cdeaf..0000000000000
--- a/pkgs/desktops/kde-4.6/base-runtime/default.nix
+++ /dev/null
@@ -1,24 +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.module = "kdebase-runtime";
-  };
-}
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 0d7de80085fbb..0000000000000
--- a/pkgs/desktops/kde-4.6/base-workspace/default.nix
+++ /dev/null
@@ -1,24 +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.module = "kdebase-workspace";
-  };
-}
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 58ec69485807c..0000000000000
--- a/pkgs/desktops/kde-4.6/base/default.nix
+++ /dev/null
@@ -1,16 +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.module = "kdebase";
-  };
-}
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 8c615ac3a7ba9..0000000000000
--- a/pkgs/desktops/kde-4.6/bindings/default.nix
+++ /dev/null
@@ -1,34 +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.module = "kdebindings";
-  };
-}
-
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 7fe64e7eff552..0000000000000
--- 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 15059e2526d26..0000000000000
--- 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 b117535494a34..0000000000000
--- a/pkgs/desktops/kde-4.6/default.nix
+++ /dev/null
@@ -1,152 +0,0 @@
-{ callPackage, recurseIntoAttrs, runCommand, stdenv, fetchurl, qt47 } :
-
-let
-
-  release = "4.6.0";
-
-  # 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}-${release}" ({ passthru = pkgs // { inherit pkgs; }; })
-      ''
-        mkdir -p $out/nix-support
-        echo ${toString pkgs'} > $out/nix-support/propagated-user-env-packages
-      '';
-
-in
-
-rec {
-  recurseForRelease = true;
-  inherit callPackage stdenv;
-
-  qt4 = qt47;
-
-  phonon = null;
-
-  kde = callPackage ./kde-package { inherit release; };
-
-### SUPPORT
-  akonadi = callPackage ./support/akonadi { };
-
-  attica = callPackage ./support/attica { };
-
-  oxygen_icons = callPackage ./oxygen-icons { };
-
-  polkit_qt_1 = callPackage ./support/polkit-qt-1 { };
-
-  soprano = callPackage ./support/soprano { };
-
-### 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 { inherit release; };
-
-  # 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 2227975a95531..0000000000000
--- a/pkgs/desktops/kde-4.6/edu/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ kde, cmake, qt4, perl, libxml2, libxslt, openbabel, boost, readline, gmm, gsl
-, xplanet, libspectre, pkgconfig, libqalculate, python
-, 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 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";
-    license = "GPL";
-    kde.module = "kdeedu";
-  };
-}
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 74bb1c57ddd14..0000000000000
--- a/pkgs/desktops/kde-4.6/games/default.nix
+++ /dev/null
@@ -1,19 +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.module = "kdegames";
-  };
-}
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 ed6527373eb3d..0000000000000
--- a/pkgs/desktops/kde-4.6/graphics/default.nix
+++ /dev/null
@@ -1,20 +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.module = "kdegraphics";
-  };
-}
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 de3cf05b70d35..0000000000000
--- a/pkgs/desktops/kde-4.6/kde-package/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv, fetchurl, release }:
-
-rec {
-  inherit release;
-
-  manifest = import (./manifest + "-${release}.nix");
-
-  defaultArgs = { module, name ? module, ... }:
-
-    (
-      {
-        name = "${name}-${release}";
-
-        src = fetchurl {
-          url = "mirror://kde/" + (if manifest.stable then "" else "un")
-            + "stable/${release}/src/${module}-${release}.tar.bz2";
-          sha256 = builtins.getAttr module manifest.packages;
-        };
-
-        meta = {
-          maintainers = with stdenv.lib.maintainers; [ sander urkud ];
-          platforms = stdenv.lib.platforms.linux;
-        };
-      } // (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 fbaf490e8beab..0000000000000
--- 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.6.0.nix b/pkgs/desktops/kde-4.6/kde-package/manifest-4.6.0.nix
deleted file mode 100644
index a3d83513bb853..0000000000000
--- a/pkgs/desktops/kde-4.6/kde-package/manifest-4.6.0.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{
-  stable = true;
-  packages = builtins.listToAttrs [
-    {
-      name = "kdeaccessibility";
-      value = "06b1w7gnfga4nd0spx48s5cx5jfsc9mxzc5yncns0471ia98ww92";
-    }
-    {
-      name = "kdeadmin";
-      value = "0nl3smhlsa4f68qq6p1kjbai2v5lbji2v84k96jfqvpjbkygkq27";
-    }
-    {
-      name = "kdeartwork";
-      value = "1qy0qwl3p0k5myd2f2ky400r5wvaq8gbvgb7mq6093amq0fghxlx";
-    }
-    {
-      name = "kdebase";
-      value = "095k83i1wd3cpk1pyc451gc4fajjynfknf83jsb6vxqisvm2mjn2";
-    }
-    {
-      name = "kdebase-runtime";
-      value = "1vwjly7p28sbhkg1vvnm0l94l2kwcs64jfh9hxlrgfz2bqp48b87";
-    }
-    {
-      name = "kdebase-workspace";
-      value = "10jkv4si6v12m9gspb7yk6x34lanwrnwfdw68jr59wp1ibcpkzzl";
-    }
-    {
-      name = "kdebindings";
-      value = "1xggvgryadi93hn3223614z4qajvypllxjscixv5zc9mvyh9z3ng";
-    }
-    {
-      name = "kdeedu";
-      value = "1x3s0dz8kyd8x7parzks434ifr8mj3w3lwaw30np4khgva258r2n";
-    }
-    {
-      name = "kdegames";
-      value = "1p8d9sy9mafza428wkj5g8hnfl8d06wqf74pdd39yr1ilmw0w1rb";
-    }
-    {
-      name = "kdegraphics";
-      value = "0j28aa2bglhpi9ck6a7334q603k7lfmfsr47grab81ic9aw6x38n";
-    }
-    {
-      name = "kdelibs";
-      value = "1pfydrdi4zwyxpygfmvk2jnfjal747kpf1m2az4fhvv91kx4clpd";
-    }
-    {
-      name = "kdemultimedia";
-      value = "1dhi7m5f22pz7sdrcl9g8zwf0mqcxzcys8hgbxzjfwjkg6h8mz28";
-    }
-    {
-      name = "kdenetwork";
-      value = "0d37db21nz3kjrr1swqykdbzwq3x4kapy3b9pbjic38phfnxksrs";
-    }
-    {
-      name = "kdepimlibs";
-      value = "1377lhlkfadfsqylkjm8hs8csak2cr6lwgimv97wxmp3x8v3lddq";
-    }
-    {
-      name = "kdeplasma-addons";
-      value = "0p8vzvnf0alk9yfv2ynawfbb33h68yhgc3f2ibgm1sdyg4gqx615";
-    }
-    {
-      name = "kdesdk";
-      value = "12hm20pzxj1k42l52dvjl64xda2r2gnvzlmf9kx9c5ccc0p8ch9z";
-    }
-    {
-      name = "kdetoys";
-      value = "0qaxy74n9g0vd6vqqwj3avbi3zhxikxk5aghdy2ynininmwzvqd9";
-    }
-    {
-      name = "kdeutils";
-      value = "1nv2fk8i77vc4jz9cbg4hvw5azw7ncvs3ircj74xy3ndw5b3fhxa";
-    }
-    {
-      name = "kdewebdev";
-      value = "0yl21qixd2ch6jxxccy03qnwnrws4lhbzj5hiv9pkw8w6zm16503";
-    }
-    {
-      name = "oxygen-icons";
-      value = "0a56q2d6nz3nsh8l5cycjiw7dq6ffkgyg3gyqql5iszcp6hrif3b";
-    }
-  ];
-}
diff --git a/pkgs/desktops/kde-4.6/l10n/manifest-4.6.0.nix b/pkgs/desktops/kde-4.6/l10n/manifest-4.6.0.nix
deleted file mode 100644
index 6922427b502ee..0000000000000
--- a/pkgs/desktops/kde-4.6/l10n/manifest-4.6.0.nix
+++ /dev/null
@@ -1,267 +0,0 @@
-[
-{
-  lang = "ar";
-  saneName = "ar";
-  sha256 = "1dadlmd3s3752hcssnpzagly18yx7bj3r9pkc5qcb8nn9h91a92x";
-}
-{
-  lang = "bg";
-  saneName = "bg";
-  sha256 = "1nhqxdllfsljfnpw6ii78nfbv4rqncha1jjz9x9mz59qw4671a6n";
-}
-{
-  lang = "ca";
-  saneName = "ca";
-  sha256 = "1siha5sihazjdp7r26isi2m1s6nhzg4f7z2qqghh64lj3pw4xbzc";
-}
-{
-  lang = "ca@valencia";
-  saneName = "ca_valencia";
-  sha256 = "1d977lm78s1jq49ss5k6a6ixz1wiaq03i6pdjpl09jyirmlkg7dw";
-}
-{
-  lang = "cs";
-  saneName = "cs";
-  sha256 = "193xk5xsqq81xqcwmpix4dcz4l3qbwnvk1bc6awapcr8g56cgxbx";
-}
-{
-  lang = "da";
-  saneName = "da";
-  sha256 = "1y3b36y6w3ca238bnyvfvbkvpadbyvch40p4g82fg16ifnqpxrc7";
-}
-{
-  lang = "de";
-  saneName = "de";
-  sha256 = "1h38dxq6ggrvmc6b2w825xk7sf1032m9psfpg04gzarq6qicskdw";
-}
-{
-  lang = "el";
-  saneName = "el";
-  sha256 = "0ngs7k9nd7vz54804jnbvm10d8iiajvkiz01g9pimkiwlid325d3";
-}
-{
-  lang = "en_GB";
-  saneName = "en_GB";
-  sha256 = "12fr4npqcrsnndlz8qvbca5v6r0da53phxa1mks8ka603gh76hg3";
-}
-{
-  lang = "es";
-  saneName = "es";
-  sha256 = "1mf034ha0n27f82cx20cfr1jsbiapz4zs8bwwhjbdbiizsxivanj";
-}
-{
-  lang = "et";
-  saneName = "et";
-  sha256 = "1x1b8kn8fnv6dvg6f2j6h8kg1g4z3j9zb16likiwb6rp7fy0a859";
-}
-{
-  lang = "eu";
-  saneName = "eu";
-  sha256 = "1y2gwi2x5qx04yfqhn21asgsc67kn895l4npi8nhzv2pa0w8mif6";
-}
-{
-  lang = "fi";
-  saneName = "fi";
-  sha256 = "0lfw1s7ryl5fmrj07390ldayxkfsrc3haxfi8987pg8vxwsicb7n";
-}
-{
-  lang = "fr";
-  saneName = "fr";
-  sha256 = "00i2ziid18c5hz468rv1mljzpyky84r03bmszy8hlakd2jmsbm9r";
-}
-{
-  lang = "ga";
-  saneName = "ga";
-  sha256 = "0qg200sqbnq00qpcmgw10xl6hyjk50m1zks5nly5lxpfxqkmpqzh";
-}
-{
-  lang = "gl";
-  saneName = "gl";
-  sha256 = "0mivdn6hq7icl41pkaim6rc4z3ilsiqlaj84s8q46f8dmh9hdvnv";
-}
-{
-  lang = "gu";
-  saneName = "gu";
-  sha256 = "1h2df76bqhnxmgwgbck69f58p616fra7jqwdi91n5zdga975y4ag";
-}
-{
-  lang = "he";
-  saneName = "he";
-  sha256 = "1gfq82666x3rvrd84qfy51638gbi6r081fxd19av52k00npkrgi5";
-}
-{
-  lang = "hi";
-  saneName = "hi";
-  sha256 = "1k8916yv4bs5h40dvh9p4vgpyk1ylyckliazkwaldqdhghzfkzp3";
-}
-{
-  lang = "hr";
-  saneName = "hr";
-  sha256 = "011pkb42m0arlkkcmlj2r353k7ybglhfsb2hjh5b3bg2sq8cmpcm";
-}
-{
-  lang = "hu";
-  saneName = "hu";
-  sha256 = "124x73ag3nhs9ghfn4lpw29zjyycbj9zxin2d5rb2zdj8r9p2dcw";
-}
-{
-  lang = "ia";
-  saneName = "ia";
-  sha256 = "1j592k8z7d08sngazjqv6fpym4863s0hg1swcvnmys5ighm69dvh";
-}
-{
-  lang = "id";
-  saneName = "id";
-  sha256 = "01h3ax0dqca05qn2vm9v12wd4iyhk2q69lwa6zic6maqnj47s50s";
-}
-{
-  lang = "is";
-  saneName = "is";
-  sha256 = "0qgwfr9k2zqqcxwh82bf0x58h9wd03l9j87hz4xpw2k3jc82fpbk";
-}
-{
-  lang = "it";
-  saneName = "it";
-  sha256 = "1rmqp0v018na4s60cq5j5nqpvz94fyvhklwb1zjhdlfd2lfwcjrc";
-}
-{
-  lang = "ja";
-  saneName = "ja";
-  sha256 = "1qhibkrm2qmra6ib1973dqwz43w1sd87ys8hnnnjn52fwshpcm5z";
-}
-{
-  lang = "kk";
-  saneName = "kk";
-  sha256 = "1si8kfsw0h1jr4grgy6b7q3gnlv6pxpr7rlgl3g9b2f62zc1xaxd";
-}
-{
-  lang = "km";
-  saneName = "km";
-  sha256 = "1gs09hxd66qxl5kwg1rd9xfqvy8l1s49lc09971rr9qw9kxy43ks";
-}
-{
-  lang = "kn";
-  saneName = "kn";
-  sha256 = "13jgfbac3b5zsjgfw7zqk5l7wxnhsnf1kpa5ski002jcxb354n7q";
-}
-{
-  lang = "ko";
-  saneName = "ko";
-  sha256 = "0k0jgf6w94fd21ah609axqdgwn8rmx3j09cn95i0g258f8mvibhg";
-}
-{
-  lang = "lt";
-  saneName = "lt";
-  sha256 = "0nh57snn8ar077k6fj9j2fza9wpwc7j8lvwzfab7i5gka7js9vj5";
-}
-{
-  lang = "lv";
-  saneName = "lv";
-  sha256 = "0a2w06gvgxzh312fqnagp7r8hcbry61mvy9d4lh3kvd13gkgzi9z";
-}
-{
-  lang = "mai";
-  saneName = "mai";
-  sha256 = "1l8y0ck50h4wmirk3vkmj5lbcv0h8pir1wlfs15mbsk93r89fyys";
-}
-{
-  lang = "nb";
-  saneName = "nb";
-  sha256 = "1qw29p7w4ik8wnipsmiyfgp3k438ndr8c4m3c4p2gwx6v06vfynx";
-}
-{
-  lang = "nds";
-  saneName = "nds";
-  sha256 = "1gp0bqmrzpi0fsp919sj057q8c4zzyi7hxanrns6kc4q42x17xd2";
-}
-{
-  lang = "nl";
-  saneName = "nl";
-  sha256 = "1k6694lxp0szkqdb68zsvpq15zlvi51zxz9samgd7z4ng99hvv12";
-}
-{
-  lang = "nn";
-  saneName = "nn";
-  sha256 = "19sp5zaccvlkfjh29dz7i9d6whxa3ap6ji0g3dxkfix76xjchlir";
-}
-{
-  lang = "pa";
-  saneName = "pa";
-  sha256 = "09x53m297jiqv1qclp532c6g0d9d9z5k7kdaivhi69vj2bikf63p";
-}
-{
-  lang = "pl";
-  saneName = "pl";
-  sha256 = "0ygajy6mmdkxidq72qhbacn8hfq8rjvc0frz0jrvv2s2ywawknpn";
-}
-{
-  lang = "pt";
-  saneName = "pt";
-  sha256 = "1333564qpzvdx6qv9hs6n4yssh3lakskdr69hmbjyvnmjdx07f1y";
-}
-{
-  lang = "pt_BR";
-  saneName = "pt_BR";
-  sha256 = "1p378b8nncr55vkk9sfry6zj1zhjrvswwsb5az9q1yk14wgc050a";
-}
-{
-  lang = "ro";
-  saneName = "ro";
-  sha256 = "15lpmdidf3as9pbw7qgryvwk26sjb9lw9v3bvxx34aq299ifb6hf";
-}
-{
-  lang = "ru";
-  saneName = "ru";
-  sha256 = "1n8zwhlkn9sf256jdp7fh9qazwvn95qmr789ndg1xr7xm87y87fw";
-}
-{
-  lang = "sk";
-  saneName = "sk";
-  sha256 = "1q3bg2kw5fghzjx6a9j0029f11w7hir67ll8pl8xi4dpw4fxdqy1";
-}
-{
-  lang = "sl";
-  saneName = "sl";
-  sha256 = "17xr2p3nwx3sswc3qq6qqh671h6i3rvvprhnv86axddj369dhaai";
-}
-{
-  lang = "sr";
-  saneName = "sr";
-  sha256 = "0kflgcbw17flk9qyk631qqkw74v7k9cyrdag3v15rpcrmvvyzxmk";
-}
-{
-  lang = "sv";
-  saneName = "sv";
-  sha256 = "056i52sv5zml6c9wciqbh3v6ghgvmwq8s5wzpqx7nwnl5m9cb2x8";
-}
-{
-  lang = "th";
-  saneName = "th";
-  sha256 = "0bk31gady68rp650a4d0w3zx0cz095sjqmg2j09pjsc0j29dfsf9";
-}
-{
-  lang = "tr";
-  saneName = "tr";
-  sha256 = "0y3vk3csx3z54lqncpcyr31ivldbn6wkhsgycghrzg7yb3n6w5pa";
-}
-{
-  lang = "uk";
-  saneName = "uk";
-  sha256 = "0jqsqakz2xniw9bh0dz7w1vslvkwgpibhny7yb01g604l1zz1znn";
-}
-{
-  lang = "wa";
-  saneName = "wa";
-  sha256 = "0jbmgh1sbfkqxim7wkn29kl5m22k105daz2ypih4f31vzdsqzn9h";
-}
-{
-  lang = "zh_CN";
-  saneName = "zh_CN";
-  sha256 = "1l4slrz0bhbhsarf4pcr86qph1ry1477y7w1956a22p8a4a4ywr3";
-}
-{
-  lang = "zh_TW";
-  saneName = "zh_TW";
-  sha256 = "11harkdwzl328b3m25l8fkc77g0mbpprgaw41bdq3pf0j6wjmd3m";
-}
-]
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 698cbabe2b73a..0000000000000
--- a/pkgs/desktops/kde-4.6/libs/default.nix
+++ /dev/null
@@ -1,40 +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";
-    homepage = http://www.kde.org;
-    kde.module = "kdelibs";
-  };
-}
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 ca9c290f692ea..0000000000000
--- a/pkgs/desktops/kde-4.6/multimedia/default.nix
+++ /dev/null
@@ -1,17 +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.module = "kdemultimedia";
-  };
-}
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 c7c386117311e..0000000000000
--- a/pkgs/desktops/kde-4.6/network/default.nix
+++ /dev/null
@@ -1,33 +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.module = "kdenetwork";
-  };
-}
diff --git a/pkgs/desktops/kde-4.6/oxygen-icons/default.nix b/pkgs/desktops/kde-4.6/oxygen-icons/default.nix
deleted file mode 100644
index bed192f260973..0000000000000
--- a/pkgs/desktops/kde-4.6/oxygen-icons/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{kde, cmake}:
-
-kde.package {
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "1qqdmg4q145gac23b0kyarslfwnlkngcxm6x37b03vr1srccycmx";
-
-  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.module = "oxygen-icons";
-  };
-}
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 ccdecd46f38b1..0000000000000
--- a/pkgs/desktops/kde-4.6/pim-runtime/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ kde, fetchurl, cmake, qt4, perl, libxml2, libxslt, boost, shared_mime_info
-, kdelibs, kdepimlibs, gettext
-, automoc4, phonon, akonadi, soprano, strigi}:
-
-kde.package rec {
-  name = with meta.kde; "${module}-${release}";
-
-  buildInputs = [ cmake qt4 perl libxml2 libxslt boost shared_mime_info kdelibs
-    kdepimlibs automoc4 phonon akonadi soprano strigi gettext ];
-
-  src = fetchurl {
-    url = "mirror://kde/unstable/kdepim/${meta.kde.release}/src/${name}.tar.bz2";
-    sha256 = "0gsp1yycjb7a3p285yqhs6v9rsrpbq0wfq3jhz7ky306692lrxig";
-  };
-
-  meta = {
-    description = "KDE PIM runtime";
-    homepage = http://www.kde.org;
-    license = "GPL";
-    kde = {
-      release = "4.5.94.1";
-      module = "kdepim-runtime";
-    };
-  };
-}
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 72734ff9c34d0..0000000000000
--- a/pkgs/desktops/kde-4.6/pim/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ kde, fetchurl, cmake, perl, boost, gpgme, libassuan, libgpgerror, libxslt
-, shared_mime_info, libXScrnSaver, kdelibs, kdepimlibs, kdepim_runtime
-, automoc4, akonadi, qca2, gettext, grantlee}:
-
-kde.package rec {
-
-  buildInputs = [ cmake boost gpgme libassuan libgpgerror libxslt
-    shared_mime_info libXScrnSaver kdelibs kdepimlibs automoc4 akonadi gettext
-    grantlee ];
-  postInstall = ''
-      mkdir -p $out/nix-support/
-      echo ${akonadi} ${kdepimlibs} ${kdepim_runtime} > $out/nix-support/propagated-user-env-packages
-  '';
-
-  src = fetchurl {
-    url = "mirror://kde/unstable/kdepim/${meta.kde.release}/src/${meta.kde.module}-${meta.kde.release}.tar.bz2";
-    sha256 = "1bnlyrflcjy7lj4c2jag212ws2gzzpqyn5g2p97x8y936dza7ic3";
-  };
-
-  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 = {
-      release = "4.5.94.1";
-      module = "kdepim";
-    };
-  };
-}
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 4f58b04c68acd..0000000000000
--- a/pkgs/desktops/kde-4.6/pimlibs/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, qt4, perl, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
-, kdelibs, automoc4, akonadi, soprano, libxslt}:
-
-kde.package {
-
-  buildInputs = [ cmake automoc4 perl shared_mime_info libxslt ];
-  propagatedBuildInputs = [ qt4 boost cyrus_sasl gpgme libical openldap kdelibs
-    akonadi soprano ];
-
-  meta = {
-    description = "KDE PIM libraries";
-    license = "LGPL";
-    kde.module = "kdepimlibs";
-  };
-}
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 65e4e3a977257..0000000000000
--- a/pkgs/desktops/kde-4.6/plasma-addons/default.nix
+++ /dev/null
@@ -1,20 +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.module = "kdeplasma-addons";
-  };
-}
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 e0ff5c3059702..0000000000000
--- 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 023d36e47e3c6..0000000000000
--- 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 daf75993bdb1b..0000000000000
--- 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 b588a0ea1bc11..0000000000000
--- 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 5001ee944bb15..0000000000000
--- 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 103e2dc071c35..0000000000000
--- 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 4cfa3eb2a0c27..0000000000000
--- 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 c5a5f2b5b6145..0000000000000
--- 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 1ca05eb5f4256..0000000000000
--- 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 2429a07f4002b..0000000000000
--- 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 5366edfa855bf..0000000000000
--- 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 8702a7f73284a..0000000000000
--- 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 360a71948ace9..0000000000000
--- 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 cd43be1cece4b..0000000000000
--- 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 e8ea5b5b36c3b..0000000000000
--- 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 4911cb22ae44e..0000000000000
--- 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 652110b38ff38..0000000000000
--- 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 204c24cfba5f4..0000000000000
--- 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 d465e97012bde..0000000000000
--- 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 e3a5b34a24cb7..0000000000000
--- 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.5.0";
-  src = fetchurl {
-    url = "http://download.akonadi-project.org/${name}.tar.bz2";
-    sha256 = "1azk2g7vb2sampxlys1hkgf9jvzpv92afsjdl31ikqbckaqnbfqc";
-  };
-  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/polkit-qt-1/policy-files.patch b/pkgs/desktops/kde-4.6/support/polkit-qt-1/policy-files.patch
deleted file mode 100644
index f179c962a586c..0000000000000
--- 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/toys/amor.nix b/pkgs/desktops/kde-4.6/toys/amor.nix
deleted file mode 100644
index 2c68ffe6fa80e..0000000000000
--- 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 14cfcd07f5897..0000000000000
--- 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 af280761865d2..0000000000000
--- 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 eb78b2fe0109b..0000000000000
--- 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 dd8e6f47cdc2e..0000000000000
--- 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 9952a5fa018d4..0000000000000
--- 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 9e07ac65a76fa..0000000000000
--- 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 e4d32387a9991..0000000000000
--- 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 317bc384723c1..0000000000000
--- 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 9d6cd6ed61ee6..0000000000000
--- 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 069985d702520..0000000000000
--- 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 395fe1da44869..0000000000000
--- 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 06343e7c0af46..0000000000000
--- 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 92f6308b62383..0000000000000
--- 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 75ed3bc0eed56..0000000000000
--- 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 9e702ff708cb3..0000000000000
--- 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 e428f3597834b..0000000000000
--- 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 a3ae85a8f1676..0000000000000
--- 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 7c419a572d3d9..0000000000000
--- 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 c450e1d7810a3..0000000000000
--- 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 0000000000000..a0c59c4e044f0
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/default.nix
@@ -0,0 +1,57 @@
+{ 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;
+
+  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 0000000000000..d2ecac663ec5f
--- /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 0000000000000..b3192fadb8bae
--- /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 0000000000000..d06f8a8fd8b43
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kde-package/default.nix
@@ -0,0 +1,121 @@
+{ 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_, meta ? {}, ...}:
+    stdenv.mkDerivation ({
+      name = "${name}-${release}";
+      src = kdesrc module;
+      cmakeFlags = ["-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE"
+      "-DBUILD_doc=TRUE" "-DBUILD_${subdir}=TRUE"] ++ cmakeFlags;
+      meta = defMeta // meta;
+    } // (removeAttrs a [ "meta" "name" "cmakeFlags" ]));
+
+  # A KDE monolithic module
+  kdeMonoModule = name: path: callPackage path { kde = kdeMonoPkg name; };
+
+  # Combine packages in one module.
+  # Arguments:
+  #  * pkgFun --- a function of the following signature:
+  #               module: manifest_attrs: manual_attrs: derivation;
+  #  * module --- name of the module
+  #  * pkgs --- list of packages in manifest format
+  combinePkgs = pkgFun: module: pkgs:
+    let
+      f = p@{name, ...}:
+        callPackage (./.. + "/${module}/${name}.nix") { kde = pkgFun module p; };
+      list = map f pkgs;
+      attrs = listToAttrs (map
+        ({name, sane ? name, ...}@p: { name = sane; value = f p; })
+        pkgs);
+    in
+      runCommand "${module}-${release}"
+      ({passthru = attrs // {
+         propagatedUserEnvPackages = list;
+         projects = attrs;
+       };})
+        ''
+          mkdir -pv $out/nix-support
+          echo "${toString list}" | tee $out/nix-support/propagated-user-env-packages
+        '';
+
+  # Given manifest module data, return the module
+  kdeModule = { module, sane ? module, split, pkgs ? [] }:
+    let
+      pkgs_ = filterPkgs module pkgs;
+    in
+    # Module is splitted by upstream
+    if split then combinePkgs kdeSplittedPkg module pkgs_
+    # Monolithic module
+    else if pkgs == [] then kdeMonoModule module (./.. + "/${module}.nix")
+    # Module is splitted by us
+    else combinePkgs kdeSubdirPkg module pkgs_;
+
+  # The same, as nameValuePair with sane name
+  kdeModuleNV = a@{ module, sane ? module, ... }:
+    { name = sane; value = kdeModule a; };
+
+  filterPkgs = module: (p:
+      removeNames (stdenv.lib.attrByPath [module] [] ignoreList) p
+      ++ (stdenv.lib.attrByPath [module] [] extraSubpkgs));
+
+  # Remove attrsets with x.name in subst. Optimized for empty subst.
+  removeNames = subst: big:
+    fold (s: out: filter (x: x.name != s) out) big subst;
+
+  modules = listToAttrs (map kdeModuleNV manifest.modules);
+
+  splittedModuleList =
+    let
+      splitted = filter (a: a ? pkgs) manifest.modules;
+      names = map ({module, sane ? module, ...}: sane) splitted;
+    in
+    map (m: m.projects) (stdenv.lib.attrVals names modules);
+
+  individual =
+    stdenv.lib.zipAttrsWith
+    (
+      name: list:
+      if tail list == []
+      then head list
+      else abort "Multiple modules define ${name}"
+    )
+    splittedModuleList;
+}
diff --git a/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.7/kde-package/kde-manifest.sh
new file mode 100755
index 0000000000000..10ce57cee6af1
--- /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 0000000000000..952a05a9d2744
--- /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 0000000000000..60298e567fbc1
--- /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 0000000000000..d38c80c4c36ad
--- /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 0000000000000..98fae7c983f8c
--- /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 0000000000000..f3b27dacf672e
--- /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 0000000000000..42306049c5d51
--- /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 0000000000000..4159501967cda
--- /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 0000000000000..bada0c1cb108e
--- /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 0000000000000..bada0c1cb108e
--- /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 0000000000000..571674a461ad4
--- /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 0000000000000..2c462f67c1593
--- /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 0000000000000..acccf66976fcf
--- /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 499ed75268e9e..499ed75268e9e 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 0000000000000..edffca1562e10
--- /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 0000000000000..43071e8bd1426
--- /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 0000000000000..947e5e17ab0c1
--- /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 0000000000000..4bce95217cc67
--- /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 0000000000000..93dd361af738b
--- /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 0000000000000..5ef9f78a71951
--- /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 0000000000000..cc195c8de9032
--- /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 0000000000000..b5d769b216dbb
--- /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 0000000000000..e98705da889e0
--- /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 0000000000000..6a1306c37100d
--- /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 0000000000000..611c6a70f6bc2
--- /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 0000000000000..1ffbcf9ebf989
--- /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 0000000000000..45192e0c46001
--- /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 0000000000000..b8a4a21cc7309
--- /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 0000000000000..55c243f60dd96
--- /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 0000000000000..87ac24972bdbd
--- /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 0000000000000..13c145f32753b
--- /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 0000000000000..dfc2c886bba3f
--- /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 0000000000000..1ca6efe3b9202
--- /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 0000000000000..df26eb2717ebc
--- /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 0000000000000..c49a77a48ed62
--- /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 0000000000000..0d0aa816a9417
--- /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 0000000000000..617eb4b246769
--- /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 0000000000000..cdf9728833c2d
--- /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 0000000000000..8b8bbc210c757
--- /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 0000000000000..f1a190332cdc5
--- /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 0000000000000..3c054e8d60ab0
--- /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 0000000000000..d7d9b403b1a4b
--- /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 0000000000000..8759c96d78c46
--- /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 0000000000000..dc50f1e85a37e
--- /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 0000000000000..bd8d27c8d6e20
--- /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 0000000000000..997b50e906a2f
--- /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 0000000000000..bd5ef67529cc8
--- /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 0000000000000..939b7a9f77a25
--- /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 0000000000000..7a0fa83078e34
--- /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 0000000000000..18458cf6f0bff
--- /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 0000000000000..5b5a2d621de73
--- /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 0000000000000..768be6f4367c7
--- /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 0000000000000..1e1922b1410d9
--- /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 0000000000000..1b33ba2e469f1
--- /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 0000000000000..def6c85fefe2f
--- /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 0000000000000..8bd86c91094e2
--- /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 0000000000000..eccd40a598f0d
--- /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 0000000000000..91976b840011e
--- /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 0000000000000..fac9974baf18a
--- /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 0000000000000..3378a99d9e79f
--- /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 0000000000000..efc2707e7d693
--- /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 0000000000000..70904b17c232b
--- /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 0000000000000..58528cb186bb2
--- /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 0000000000000..6001a5f363db1
--- /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 0000000000000..55bf8309b2a9f
--- /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 0000000000000..28d9252187e0e
--- /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 0000000000000..5276ec09f462f
--- /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 0000000000000..c5c2c6e05d7c5
--- /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 0000000000000..1381ed7dd2665
--- /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 0000000000000..f01a609e20de9
--- /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 0000000000000..9d31cc763f211
--- /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 0000000000000..096b0a6e957bf
--- /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 0000000000000..6b16265e7a3e8
--- /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 0000000000000..b539eab38992f
--- /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 0000000000000..2c2ba3796a2c3
--- /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 0000000000000..c322767eb4336
--- /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 0000000000000..a344cc4b4b463
--- /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 0000000000000..cad1988723c7a
--- /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 0000000000000..b4ca7a8d2da74
--- /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 0000000000000..c40b0bed3105d
--- /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 0000000000000..2f32f4d6b2cd6
--- /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 0000000000000..ebadbfad9bac4
--- /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 0000000000000..2f32f4d6b2cd6
--- /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 0000000000000..f90fd3560796f
--- /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 0000000000000..33d9ec1ca0126
--- /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 0000000000000..a4b01c5f9a633
--- /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 0000000000000..2f32f4d6b2cd6
--- /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 0000000000000..664b1bc45a733
--- /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 0000000000000..80013f430d3c3
--- /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 6770dd399e332..6770dd399e332 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 0000000000000..ef637f3f075b1
--- /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 0000000000000..c21e8c112a88c
--- /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 0000000000000..c1e22427ac797
--- /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 0000000000000..de2cabf20e4f0
--- /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 0000000000000..1dabe46cd429d
--- /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 0000000000000..df4a0856c6b0b
--- /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 0000000000000..8032b89ff54c3
--- /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 61cb49b308f2c..61cb49b308f2c 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 0000000000000..391536248dd3d
--- /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 0000000000000..65d410cca48dd
--- /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 0000000000000..7e170ca2a2c2f
--- /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 0000000000000..6a10bdf7c4bc7
--- /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 0000000000000..ec7f7a61ed561
--- /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 0000000000000..d580f7fb6911d
--- /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 0000000000000..1ddb4b8ea5b9e
--- /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 0000000000000..e7790d33c90cd
--- /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 0000000000000..5a6693f2f5d8d
--- /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 0000000000000..0c8259cd31f5b
--- /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 0000000000000..7c5089dcd37f2
--- /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 0000000000000..1565426eb1fc2
--- /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 0000000000000..1b53a0e03dc40
--- /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 f67e1f4cdd8ee..f67e1f4cdd8ee 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 0000000000000..1ab9ed49df566
--- /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 0000000000000..df81145e5d602
--- /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 88c935ade4af5..0ad48c8cfdee0 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 0000000000000..e83a2d9a901b8
--- /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 0000000000000..936d63d544a9d
--- /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 0000000000000..dacf54def4b0c
--- /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 0000000000000..108f9be7c7228
--- /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 0000000000000..4449dd8228f25
--- /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 0000000000000..25ecabed27ce7
--- /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 0000000000000..08b202e8f0e8f
--- /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 0000000000000..d4c9c06f483dc
--- /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 0000000000000..3f9da58d0a625
--- /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 0000000000000..2434a4fa671fc
--- /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 0000000000000..f3b00a5b968c6
--- /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 0000000000000..70311a789f997
--- /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 0000000000000..5700977349e3f
--- /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 0000000000000..9ec0e6c0396cd
--- /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 0000000000000..2d937b3a4db7f
--- /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 0000000000000..1475ab041ac32
--- /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 0000000000000..78d56c7df30e8
--- /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 0000000000000..c3f6129d7e5c8
--- /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 0000000000000..bececea7797e4
--- /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 0000000000000..94adbb7fd6e09
--- /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 0000000000000..6a870e5630330
--- /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 0000000000000..ea237a5d718e3
--- /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.6/l10n/default.nix b/pkgs/desktops/kde-4.7/l10n/default.nix
index 22acca2d1cf59..144968f667279 100644
--- a/pkgs/desktops/kde-4.6/l10n/default.nix
+++ b/pkgs/desktops/kde-4.7/l10n/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, kdelibs, gettext, perl, automoc4, release }:
+{ stdenv, fetchurl, kdelibs, gettext, release }:
 
 let
 
@@ -16,7 +16,9 @@ let
         inherit sha256;
       };
 
-      buildInputs = [ cmake perl gettext kdelibs automoc4 ];
+      buildInputs = [ gettext kdelibs ];
+
+      cmakeFlags = "-Wno-dev";
 
       meta = {
         description = "KDE translation for ${lang}";
diff --git a/pkgs/desktops/kde-4.6/l10n/l10n-manifest.sh b/pkgs/desktops/kde-4.7/l10n/l10n-manifest.sh
index cc0eec20aaafa..cc0eec20aaafa 100755
--- a/pkgs/desktops/kde-4.6/l10n/l10n-manifest.sh
+++ b/pkgs/desktops/kde-4.7/l10n/l10n-manifest.sh
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 0000000000000..d9eba5199429f
--- /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 0000000000000..b8e272c20a2c8
--- /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 0000000000000..486849b23aad7
--- /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 101cbfbe60bd6..baed223315254 100644
--- a/pkgs/desktops/kde-4.6/support/soprano/default.nix
+++ b/pkgs/desktops/kde-4.7/support/soprano/default.nix
@@ -1,16 +1,21 @@
-{stdenv, fetchurl, cmake, qt4, cluceneCore, redland, libiodbc, pkgconfig}:
+{ stdenv, fetchurl, cmake, qt4, clucene_core, librdf_redland, libiodbc }:
 
 stdenv.mkDerivation rec {
-  name = "soprano-2.6.0";
+  name = "soprano-2.7.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/soprano/${name}.tar.bz2";
-    sha256 = "0dfdc4hcv25kwmv3wp13qjw2jg2fax4gcy79yia7sdgz5ik59xq2";
+    sha256 = "1ki92wg0i9nhn1fh5mdcls5h9h3lf2k5r66snsags4x7zw0dmv2z";
   };
 
+  patches = [ (fetchurl {
+    url = https://git.reviewboard.kde.org/r/102466/diff/raw/;
+    name = "soprano-virtuoso-restart.patch";
+    sha256 = "0jk038fp7ii6847mbxdajhhc7f6ap6lriaklxcqqxf6ddj37gf3y";
+  })];
+
   # We disable the Java backend, since we do not need them and they make the closure size much bigger
-  buildInputs = [ qt4 cluceneCore redland libiodbc ];
-  buildNativeInputs = [ cmake pkgconfig ];
+  buildInputs = [ cmake qt4 clucene_core librdf_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 920151282a80d..920151282a80d 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 198421e21d3f1..198421e21d3f1 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 bd198a12af44f..bd198a12af44f 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 db28274be0722..db28274be0722 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 543b7660975fa..543b7660975fa 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 a17267a336c34..a17267a336c34 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 53fc8fa8fcdf7..53fc8fa8fcdf7 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 bab382a263f06..bab382a263f06 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 f8a0c1ba87c99..f8a0c1ba87c99 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 2625966bb5877..2625966bb5877 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 52ee3a6262fcd..52ee3a6262fcd 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 adbbd461c5ee9..adbbd461c5ee9 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 4f520058ccf1d..4f520058ccf1d 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 b8a8c14580116..b8a8c14580116 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 dc563502542a0..dc563502542a0 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 b0bfadf8e5256..b0bfadf8e5256 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 b4c14ef043e25..b4c14ef043e25 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 83de4ed4dfe7b..83de4ed4dfe7b 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 c7bab240691ee..c7bab240691ee 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 6f2eaf1b4bfe8..6f2eaf1b4bfe8 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 0000000000000..920151282a80d
--- /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 0000000000000..50a67d95ee99c
--- /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 0000000000000..cacb775f8f117
--- /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 0000000000000..d34a5afb36ff5
--- /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 0000000000000..b683ef71a0a7f
--- /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 0000000000000..a17267a336c34
--- /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 0000000000000..468132a2a81ec
--- /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 0000000000000..40b40541bf14f
--- /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 0000000000000..7cca247ae4414
--- /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 0000000000000..c3551d565e107
--- /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 0000000000000..1a2b64bc8fa91
--- /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 0000000000000..20e82a2c92f88
--- /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 0000000000000..c9ab76f2920c2
--- /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 0000000000000..58ef4fbef2a44
--- /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 0000000000000..0752d18d7f215
--- /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 0000000000000..c6f6234f473dd
--- /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 0000000000000..3515d2553c541
--- /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 0000000000000..bb351c68d280e
--- /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 0000000000000..3742686d2e3dd
--- /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 0000000000000..7dc3c65390947
--- /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 0000000000000..57098b12e3e95
--- /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
index 4945ccd95c865..02b1f0bfa9356 100644
--- a/pkgs/development/compilers/Agda-executable/default.nix
+++ b/pkgs/development/compilers/Agda-executable/default.nix
@@ -1,13 +1,20 @@
-{cabal, Agda}:
+{ cabal, Agda }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Agda-executable";
-  name = self.fname;
   version = "2.2.10";
   sha256 = "0jjlbz5vaz1pasfws1cy8wvllzdzv3sxm2lfj6bckl93kdrxlpy6";
-  propagatedBuildInputs = [Agda];
+  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";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/compilers/epic/default.nix b/pkgs/development/compilers/epic/default.nix
index 91880cefe668b..936710888ee1f 100644
--- a/pkgs/development/compilers/epic/default.nix
+++ b/pkgs/development/compilers/epic/default.nix
@@ -1,15 +1,23 @@
-{cabal, mtl, happy, gmp, boehmgc}:
+{ cabal, boehmgc, gmp, happy, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "epic";
-  version = "0.1.10";
-  sha256 = "0iaq0mswf370jk4r2xyby8qa5ihcydnbkr478p35x2i56axp60ji";
-  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/gcc-4.1/default.nix b/pkgs/development/compilers/gcc-4.1/default.nix
index c11c76acc89c8..66bf48cb6e12a 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.6/builder.sh b/pkgs/development/compilers/gcc-4.6/builder.sh
index 5d295356831ce..8e1b3c8e40795 100644
--- a/pkgs/development/compilers/gcc-4.6/builder.sh
+++ b/pkgs/development/compilers/gcc-4.6/builder.sh
@@ -171,13 +171,15 @@ preConfigure() {
         rm -Rf zlib
     fi
 
-    # Patch the configure script so it finds glibc headers
-    # It's important for example in order not to get libssp built, because it's
-    # 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
+    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
diff --git a/pkgs/development/compilers/gcc-apple64/builder.sh b/pkgs/development/compilers/gcc-apple64/builder.sh
index ce0baa1597a8b..6072aef9d5911 100644
--- a/pkgs/development/compilers/gcc-apple64/builder.sh
+++ b/pkgs/development/compilers/gcc-apple64/builder.sh
@@ -61,6 +61,9 @@ preConfigure() {
     if test -n "$langF77"; then
         langs="$langs,f95"
     fi
+    if test -n "$langObjC"; then
+        langs="$langs,objc"
+    fi
 
     # Perform the build in a different directory.
     mkdir ../build
diff --git a/pkgs/development/compilers/gcc-apple64/default.nix b/pkgs/development/compilers/gcc-apple64/default.nix
index ffb29da2f80c9..e2f70fbc1f568 100644
--- a/pkgs/development/compilers/gcc-apple64/default.nix
+++ b/pkgs/development/compilers/gcc-apple64/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, noSysDirs
-, langC ? true, langCC ? true, langF77 ? false
+, langC ? true, langCC ? true, langObjC ? true, langF77 ? false
 , profiledCompiler ? false
 , gmp ? null, mpfr ? null, bison ? null, flex ? null
 }:
@@ -34,5 +34,5 @@ stdenv.mkDerivation ({
   patches =
     [./pass-cxxcpp.patch ]
     ++ (if noSysDirs then [./no-sys-dirs.patch] else []);
-  inherit noSysDirs langC langCC langF77 profiledCompiler;
+  inherit noSysDirs langC langCC langF77 langObjC profiledCompiler;
 } // (if langF77 then {buildInputs = [gmp mpfr bison flex];} else {}))
diff --git a/pkgs/development/compilers/ghc/6.10.1-binary.nix b/pkgs/development/compilers/ghc/6.10.1-binary.nix
index c43f8525a33f5..5a15cc0dff7ed 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 = stdenv.lib.platforms.haskellPlatforms;
+  meta.platforms = supportedPlatforms;
 }
diff --git a/pkgs/development/compilers/ghc/6.10.1.nix b/pkgs/development/compilers/ghc/6.10.1.nix
index 6d8d6be0d66d0..b53ce9aced378 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 85c678ffbfba2..bda8372e6c46f 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 2b2381fdc93f6..2df43a4c7d751 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 8b143d06547fe..2ecf35eedfe9b 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 75deccb9fc95d..53fd1c5221689 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 102f3e0a1dbdc..778b819aa703d 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 0000000000000..6394780eb68ca
--- /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 20a3a606be8af..78a000de309e9 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 13e85fcc6a4f7..1a48d6cf31831 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 c6e05e8a785d1..bc2d8967cd4be 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 b20b7369d3016..63cc08db34b12 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 9fccf5307c504..c526e5d6cb453 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 b8be216c8dc62..c54c32bfab0cc 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 4015d364b2751..2681f325c9296 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 e3c12cce8c780..b6900321552ce 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 d8acc3065105d..db696d2b218ca 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
index ca59a8b531164..c0ba5f1fe09ca 100644
--- a/pkgs/development/compilers/ghc/7.0.2.nix
+++ b/pkgs/development/compilers/ghc/7.0.2.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.haskellPlatforms;
+    platforms = ghc.meta.platforms;
   };
 
 }
diff --git a/pkgs/development/compilers/ghc/7.0.3.nix b/pkgs/development/compilers/ghc/7.0.3.nix
index b1ecb5a1db680..f6e4d81029a2b 100644
--- a/pkgs/development/compilers/ghc/7.0.3.nix
+++ b/pkgs/development/compilers/ghc/7.0.3.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.haskellPlatforms;
+    platforms = ghc.meta.platforms;
   };
 
 }
diff --git a/pkgs/development/compilers/ghc/7.0.4-binary.nix b/pkgs/development/compilers/ghc/7.0.4-binary.nix
new file mode 100644
index 0000000000000..0baf9718f85e8
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.0.4-binary.nix
@@ -0,0 +1,97 @@
+{stdenv, fetchurl, perl, ncurses, gmp}:
+
+let
+  supportedPlatforms = ["x86_64-linux" "i686-linux" "i686-darwin" "x86_64-darwin"];
+in
+
+assert stdenv.lib.elem stdenv.system supportedPlatforms;
+
+stdenv.mkDerivation rec {
+  version = "7.0.4";
+
+  name = "ghc-${version}-binary";
+
+  src =
+    if stdenv.system == "i686-linux" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
+        sha256 = "0mfnihiyjl06f5w1yrjp36sw9g67g2ymg5sdl0g23h1pab99jx63";
+      }
+    else if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
+        sha256 = "0mc4rhqcxz427wq4zgffmnn0d2yjqvy6af4x9mha283p1gdj5q99";
+      }
+    else if stdenv.system == "i686-darwin" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
+        sha256 = "0qj45hslrrr8zfks8m1jcb3awwx9rh35ndnpfmb0gwb6j7azq5n3";
+      }
+    else if stdenv.system == "x86_64-darwin" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
+        sha256 = "1m2ml88p1swf4dnv2vq8hz4drcp46n3ahpfi05wh01ajkf8hnn3l";
+      }
+    else throw "cannot bootstrap GHC on this platform";
+
+  buildInputs = [perl];
+
+  postUnpack =
+    # Strip is harmful, see also below. It's important that this happens
+    # first. The GHC Cabal build system makes use of strip by default and
+    # has hardcoded paths to /usr/bin/strip in many places. We replace
+    # those below, making them point to our dummy script.
+     ''
+      mkdir "$TMP/bin"
+      for i in strip; do
+        echo '#!/bin/sh' >> "$TMP/bin/$i"
+        chmod +x "$TMP/bin/$i"
+        PATH="$TMP/bin:$PATH"
+      done
+     '' +
+    # We have to patch the GMP paths for the integer-gmp package.
+     ''
+      find . -name integer-gmp.buildinfo \
+          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
+     '' +
+    # On Linux, use patchelf to modify the executables so that they can
+    # find editline/gmp.
+    (if stdenv.isLinux then ''
+      find . -type f -perm +100 \
+          -exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          --set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
+      sed -i "s|/usr/bin/perl|perl\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+      sed -i "s|/usr/bin/gcc|gcc\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+      for prog in ld ar gcc strip ranlib; do
+        find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
+      done
+     '' else "");
+
+  configurePhase = ''
+    ./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
+  '';
+
+  # Stripping combined with patchelf breaks the executables (they die
+  # with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
+  dontStrip = true;
+
+  # No building is necessary, but calling make without flags ironically
+  # calls install-strip ...
+  buildPhase = "true";
+
+  postInstall =
+      ''
+        # Sanity check, can ghc create executables?
+        cd $TMP
+        mkdir test-ghc; cd test-ghc
+        cat > main.hs << EOF
+          module Main where
+          main = putStrLn "yes"
+        EOF
+        $out/bin/ghc --make main.hs
+        echo compilation ok
+        [ $(./main) == "yes" ]
+      '';
+
+  meta.platforms = supportedPlatforms;
+}
diff --git a/pkgs/development/compilers/ghc/7.0.4.nix b/pkgs/development/compilers/ghc/7.0.4.nix
index ca3f72f08e431..7230b9069e7c4 100644
--- a/pkgs/development/compilers/ghc/7.0.4.nix
+++ b/pkgs/development/compilers/ghc/7.0.4.nix
@@ -36,8 +36,9 @@ stdenv.mkDerivation rec {
     maintainers = [
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
+      stdenv.lib.maintainers.simons
     ];
-    platforms = stdenv.lib.platforms.haskellPlatforms;
+    platforms = ["x86_64-linux" "i686-linux" "i686-darwin" "x86_64-darwin"];
   };
 
 }
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 0000000000000..f2c3acff59c28
--- /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 f69d4144d05d8..98a0149123792 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -1,17 +1,16 @@
 {stdenv, fetchurl, ghc, perl, gmp, ncurses}:
 
 stdenv.mkDerivation rec {
-  version = "7.0.1.20110217";
-  label = "7.0.2-rc2";
-  
+  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/${label}/${name}-src.tar.bz2";
-    sha256 = "18jbw5na4v8v2vzswbi8xfd73mx8zv1diym0bg5bns5337q76lzi";
+    url = "${homepage}/dist/current/dist/${name}-src.tar.bz2";
+    sha256 = "1n0prny5aaq09jp83skixla8frz5hcn8jbrc61m428q12jq1xsm7";
   };
 
   buildInputs = [ghc perl gmp ncurses];
@@ -40,7 +39,7 @@ stdenv.mkDerivation rec {
       stdenv.lib.maintainers.marcweber
       stdenv.lib.maintainers.andres
     ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = ghc.meta.platforms;
   };
 
 }
diff --git a/pkgs/development/compilers/ghc/wrapper.nix b/pkgs/development/compilers/ghc/wrapper.nix
index 16441daaeedf6..60342a14a61fc 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/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index 7840c56010ede..48346e9910734 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/llvm/clang-include-paths-svn.patch b/pkgs/development/compilers/llvm/clang-include-paths-svn.patch
new file mode 100644
index 0000000000000..85c7a12d09bef
--- /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/svn-head.nix b/pkgs/development/compilers/llvm/svn-head.nix
new file mode 100644
index 0000000000000..f929815f8a217
--- /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/openjdk/cppflags-include-fix.patch b/pkgs/development/compilers/openjdk/cppflags-include-fix.patch
new file mode 100644
index 0000000000000..36fa9054bc628
--- /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 0000000000000..0ea08071aaa0c
--- /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 0000000000000..9d749a198e3f3
--- /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 0000000000000..3d66962a1197e
--- /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/sbcl/src-for-default.nix b/pkgs/development/compilers/sbcl/src-for-default.nix
index 87fbdf54e8ce2..364fbd621d709 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.49";
-   name="sbcl-1.0.49";
-   hash="1s3am56vh1rr91zkdc5ba4rirc8ydnla3sgk8yhh56sd101c7q0v";
-   url="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.49/sbcl-1.0.49-source.tar.bz2";
-   advertisedUrl="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.49/sbcl-1.0.49-source.tar.bz2";
+   version="1.0.51";
+   name="sbcl-1.0.51";
+   hash="0kh7c7pgiv0k0rsm1iysbcp0hf2148fhpixi4d8kclryzqpzl9yj";
+   url="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.51/sbcl-1.0.51-source.tar.bz2";
+   advertisedUrl="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.51/sbcl-1.0.51-source.tar.bz2";
   
   
 }
diff --git a/pkgs/development/interpreters/php/5.2.nix b/pkgs/development/interpreters/php/5.2.nix
index 8a70871af84b7..f98d178663f1c 100644
--- a/pkgs/development/interpreters/php/5.2.nix
+++ b/pkgs/development/interpreters/php/5.2.nix
@@ -8,7 +8,7 @@ in
 
 composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
-  version = "5.2.14";
+  version = "5.2.17";
 
   name = "php-${version}";
 
@@ -157,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/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index ecf23c7f4de20..0b2eac45e3f74 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "5.1.1";
+  version = "5.1.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://download.racket-lang.org/installers/${version}/${pname}/${name}-src-unix.tgz";
-    sha256 = "495ff8b4d73146d9647c2a3f4e491cfe1c2f2d7238366fb1eb99e6a6dd9a0057";
+    sha256 = "0dhcx6fzjc2cnhfr0j3pbq8lgxfgmhssidi62q0byiqpcm8wjd98";
   };
 
   # Various racket executables do run-time searches for these.
diff --git a/pkgs/development/libraries/adns/1.1.nix b/pkgs/development/libraries/adns/1.1.nix
deleted file mode 100644
index 311862d3b9f95..0000000000000
--- 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 1340f790ed14d..0000000000000
--- 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 ccc6fa563edf8..0000000000000
--- 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 d82b8aec90251..0000000000000
--- 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 d0eedef15f036..cbc4e0b8c89b6 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 0000000000000..a5fdafe7914f5
--- /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/aspell/default.nix b/pkgs/development/libraries/aspell/default.nix
index 5ac6fce7096bc..cac5ec483fe63 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/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index 0d1ee3d838f32..3bd1d82e0b599 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -103,6 +103,15 @@ in {
     '';
   };
     
+  pl = buildDict {
+    shortName = "pl-6.0_20061121";
+    fullName = "Polish";
+    src = fetchurl {
+      url = mirror://gnu/aspell/dict/pl/aspell6-pl-6.0_20061121-0.tar.bz2;
+      sha256 = "0kap4kh6bqbb22ypja1m5z3krc06vv4n0hakiiqmv20anzy42xq1";
+    };
+  };
+     
   ru = buildDict {
     shortName = "ru-0.99f7-1";
     fullName = "Russian";
diff --git a/pkgs/desktops/kde-4.6/support/attica/default.nix b/pkgs/development/libraries/attica/default.nix
index 0eff2cbb4ebad..95de0834f292c 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/boost/default.nix b/pkgs/development/libraries/boost/1.47.nix
index bd3ddd2ba7389..4b0c4d3f1409e 100644
--- a/pkgs/development/libraries/boost/default.nix
+++ b/pkgs/development/libraries/boost/1.47.nix
@@ -6,6 +6,7 @@
 , enableShared ? true
 , enableStatic ? false
 , enablePIC ? false
+, enableExceptions ? false
 }:
 
 let
@@ -28,8 +29,14 @@ let
     (enableShared && enableStatic)) then
     "tagged" else "system";
 
-  cflags = if (enablePIC) then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
-
+  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 {
@@ -48,6 +55,9 @@ stdenv.mkDerivation {
     sha256 = "815a5d9faac4dbd523fbcf3fe1065e443c0bbf43427c44aa423422c6ec4c2e31";
   };
 
+  # See <http://svn.boost.org/trac/boost/ticket/4688>.
+  patches = [ ./boost_filesystem.patch ];
+
   enableParallelBuilding = true;
 
   buildInputs = [icu expat zlib bzip2 python];
diff --git a/pkgs/development/libraries/boost/boost_filesystem.patch b/pkgs/development/libraries/boost/boost_filesystem.patch
new file mode 100644
index 0000000000000..f32e9ed572d32
--- /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/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix
index 27827d7b69794..8b16af3793289 100644
--- a/pkgs/development/libraries/ccrtp/default.nix
+++ b/pkgs/development/libraries/ccrtp/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, pkgconfig, libgcrypt, ucommon }:
 
 stdenv.mkDerivation {
-  name = "ccrtp-2.0.0";
+  name = "ccrtp-2.0.1";
 
   src = fetchurl {
-    url = mirror://gnu/ccrtp/ccrtp-2.0.0.tar.gz;
-    sha256 = "1gx3jsywvihwkhk69xkcpq2plb6lbylpz0gpg55c5dx7xg1796b2";
+    url = mirror://gnu/ccrtp/ccrtp-2.0.1.tar.gz;
+    sha256 = "0wksiq55zq8yvjgzkaxyg15w9kfr4sni8a0yqk11qdqpl8x0al9x";
   };
 
   buildInputs = [ openssl pkgconfig libgcrypt ucommon ];
diff --git a/pkgs/development/libraries/consolekit/0001-Don-t-daemonize-when-activated.patch b/pkgs/development/libraries/consolekit/0001-Don-t-daemonize-when-activated.patch
new file mode 100644
index 0000000000000..30f3ab4907b06
--- /dev/null
+++ b/pkgs/development/libraries/consolekit/0001-Don-t-daemonize-when-activated.patch
@@ -0,0 +1,28 @@
+Upstream patch
+
+From fc2870a65f6b3ed3b71bcac69c5faf3a9c759c64 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Mon, 21 Dec 2009 11:13:23 -0500
+Subject: [PATCH 1/2] Don't daemonize when activated
+
+It confuses some versions of D-Bus and isn't needed
+(or wanted it).
+
+http://bugs.freedesktop.org/show_bug.cgi?id=25642
+---
+ data/org.freedesktop.ConsoleKit.service.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/data/org.freedesktop.ConsoleKit.service.in b/data/org.freedesktop.ConsoleKit.service.in
+index ec2128c..d716a36 100644
+--- a/data/org.freedesktop.ConsoleKit.service.in
++++ b/data/org.freedesktop.ConsoleKit.service.in
+@@ -1,4 +1,4 @@
+ [D-BUS Service]
+ Name=org.freedesktop.ConsoleKit
+-Exec=@sbindir@/console-kit-daemon
++Exec=@sbindir@/console-kit-daemon --no-daemon
+ User=root
+-- 
+1.7.1
+
diff --git a/pkgs/development/libraries/consolekit/0002-Don-t-take-bus-name-until-ready.patch b/pkgs/development/libraries/consolekit/0002-Don-t-take-bus-name-until-ready.patch
new file mode 100644
index 0000000000000..2af59ac8d1e58
--- /dev/null
+++ b/pkgs/development/libraries/consolekit/0002-Don-t-take-bus-name-until-ready.patch
@@ -0,0 +1,62 @@
+Upstream patch
+
+From 2418840248f07025ad0edc96ed17e03ce5e47f3e Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Mon, 21 Dec 2009 11:14:54 -0500
+Subject: [PATCH 2/2] Don't take bus name until ready
+
+Previously, we would take a bus name right away, but
+not register the manager object until later.  This
+causes a race when being activated by a method call
+on the manager object, where ConsoleKit gets started
+but the method call fails.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=25744
+---
+ src/main.c |   16 ++++++++--------
+ 1 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index 809c6d6..b8f698f 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -294,11 +294,19 @@ main (int    argc,
+ 
+         setup_debug_log (debug);
+ 
++        g_debug ("initializing console-kit-daemon %s", VERSION);
++
+         connection = get_system_bus ();
+         if (connection == NULL) {
+                 goto out;
+         }
+ 
++        manager = ck_manager_new ();
++
++        if (manager == NULL) {
++                goto out;
++        }
++
+         bus_proxy = get_bus_proxy (connection);
+         if (bus_proxy == NULL) {
+                 g_warning ("Could not construct bus_proxy object; bailing out");
+@@ -310,16 +318,8 @@ main (int    argc,
+                 goto out;
+         }
+ 
+-        g_debug ("initializing console-kit-daemon %s", VERSION);
+-
+         create_pid_file ();
+ 
+-        manager = ck_manager_new ();
+-
+-        if (manager == NULL) {
+-                goto out;
+-        }
+-
+         loop = g_main_loop_new (NULL, FALSE);
+ 
+         g_signal_connect (bus_proxy,
+-- 
+1.7.1
+
diff --git a/pkgs/development/libraries/consolekit/default.nix b/pkgs/development/libraries/consolekit/default.nix
index 87f40d6e10b6f..5cebc5874bd7d 100644
--- a/pkgs/development/libraries/consolekit/default.nix
+++ b/pkgs/development/libraries/consolekit/default.nix
@@ -2,14 +2,16 @@
   libX11, polkit, expat }:
 
 stdenv.mkDerivation rec {
-  name = "ConsoleKit-0.4.4";
+  name = "consolekit-0.4.1";
   
   src = fetchurl {
-    url = "http://www.freedesktop.org/software/ConsoleKit/dist/${name}.tar.bz2";
-    sha256 = "1bhnjwn7gakwfhqxrmwqwyjq46a11nn463qz0wlddrvgzdlhkh7h";
+    url = http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2;
+    sha256 = "0gj0airrgyi14a06w3d4407g62bs5a1cam2h64s50x3d2k3ascph";
   };
   
   buildInputs = [ pkgconfig dbus_glib zlib pam glib libX11 polkit expat ];
+  patches = [ ./0001-Don-t-daemonize-when-activated.patch
+    ./0002-Don-t-take-bus-name-until-ready.patch ];
 
   # For console-kit to get the rpath to libgcc_s, needed for pthread_cancel to work
   NIX_LDFLAGS = "-lgcc_s";
diff --git a/pkgs/development/libraries/dbus-glib/0.94.nix b/pkgs/development/libraries/dbus-glib/0.94.nix
new file mode 100644
index 0000000000000..83c1693d80f7d
--- /dev/null
+++ b/pkgs/development/libraries/dbus-glib/0.94.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, expat, gettext, libiconv, dbus, glib }:
+
+stdenv.mkDerivation rec {
+  name = "dbus-glib-0.94";
+
+  src = fetchurl {
+    url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
+    sha256 = "16yk106bp58in6vz2li2s3iwk1si65f0n22m8c2mplzh2j9zlq74";
+  };
+
+  buildInputs = [ pkgconfig expat gettext ]
+                ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
+
+  propagatedBuildInputs = [ dbus glib ];
+
+  passthru = { inherit dbus glib; };
+
+  meta = {
+    homepage = http://dbus.freedesktop.org;
+    license = "AFL-2.1 or GPL-2";
+    description = "GLib bindings for D-Bus lightweight IPC mechanism";
+  };
+}
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 4a2cd6f4cf957..467b9c4d506a7 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "dbus-glib-0.86";
-  
+
   src = fetchurl {
     url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
     sha256 = "1p0bm5p8g8h0mimhj0d58dqdrhfipvcwv95l6hf69z4gygksclak";
diff --git a/pkgs/development/libraries/dbus/1.5.6.nix b/pkgs/development/libraries/dbus/1.5.6.nix
new file mode 100644
index 0000000000000..a5ba03159f1c3
--- /dev/null
+++ b/pkgs/development/libraries/dbus/1.5.6.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, pkgconfig, expat, libX11, libICE, libSM, useX11 ? true }:
+
+let
+  version = "1.5.6";
+
+  src = fetchurl {
+    url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
+    sha256 = "18g5328wnh25p0hihv5gg55q5l019zzwr04shvp67myvwy07m851";
+  };
+
+  patches = [ ./ignore-missing-includedirs.patch ];
+
+  configureFlags = "--localstatedir=/var --sysconfdir=/etc --with-session-socket-dir=/tmp";
+
+in rec {
+
+  libs = stdenv.mkDerivation {
+    name = "dbus-library-" + version;
+
+    buildInputs = [ pkgconfig expat ];
+
+    inherit src patches configureFlags;
+
+    preConfigure =
+      ''
+        sed -i '/mkinstalldirs.*localstatedir/d' bus/Makefile.in
+        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";
+  };
+
+  tools = stdenv.mkDerivation {
+    name = "dbus-tools-" + version;
+
+    inherit src patches;
+
+    configureFlags = "${configureFlags} --with-dbus-daemondir=${daemon}/bin";
+
+    buildInputs = [ pkgconfig expat libs ]
+      ++ stdenv.lib.optionals useX11 [ libX11 libICE libSM ];
+
+    NIX_LDFLAGS = "-ldbus-1";
+
+    preConfigure =
+      ''
+        sed -i 's@ $(top_builddir)/dbus/libdbus-1.la@@' tools/Makefile.in
+        substituteInPlace tools/Makefile.in --replace 'install-localstatelibDATA:' 'disabled:'
+      '';
+
+    postConfigure = "cd tools";
+  };
+
+  # I'm too lazy to separate daemon and libs now.
+  daemon = libs;
+}
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index fdbc27a561797..1d0bcc111460e 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,32 +1,37 @@
 { stdenv, fetchurl, pkgconfig, expat, libX11, libICE, libSM, useX11 ? true }:
 
 let
-  version = "1.4.6";
-  
+  version = "1.4.14";
+
   src = fetchurl {
     url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
-    sha256 = "0rx5p1f0jg4ch4958qb3ld3w3cw57a0rmvmxjgn1ir9dvxj1wgkm";
+    sha256 = "0xsqkq2q2hb09dcdsw0y359zvml480h79qvl9g31r7da57y7xwj7";
   };
 
   patches = [ ./ignore-missing-includedirs.patch ];
-  
+
   configureFlags = "--localstatedir=/var --sysconfdir=/etc --with-session-socket-dir=/tmp";
-  
+
 in rec {
 
   libs = stdenv.mkDerivation {
     name = "dbus-library-" + version;
-    
+
     buildInputs = [ pkgconfig expat ];
-    
+
     inherit src patches configureFlags;
-    
+
     preConfigure =
       ''
         sed -i '/mkinstalldirs.*localstatedir/d' bus/Makefile.in
         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";
   };
 
@@ -36,10 +41,10 @@ in rec {
     inherit src patches;
 
     configureFlags = "${configureFlags} --with-dbus-daemondir=${daemon}/bin";
-    
+
     buildInputs = [ pkgconfig expat libs ]
       ++ stdenv.lib.optionals useX11 [ libX11 libICE libSM ];
-      
+
     NIX_LDFLAGS = "-ldbus-1";
 
     preConfigure =
@@ -53,8 +58,4 @@ in rec {
 
   # I'm too lazy to separate daemon and libs now.
   daemon = libs;
-  
-  # FIXME TODO
-  # After merger it will be better to correct upstart-job instead.
-  outPath = daemon.outPath;
 }
diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index 9cf94ca359f70..771ae0dff5e5a 100644
--- a/pkgs/development/libraries/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -1,16 +1,19 @@
 {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 = "0frgmkwsgmqaw88qpgvfalisq0wjpcbgqbj6jhpk39nbrs3zcq83";
+    sha256 = "04lzlhl7r1yqkpq9xabm1v5vgz0z9xqf1k7indgwdw8nfyma3qar";
   };
+  
   buildNativeInputs = [ cmake ];
+  
   meta = with stdenv.lib; {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/libraries/fcgi/default.nix b/pkgs/development/libraries/fcgi/default.nix
index 81474b62dc6f2..6bea14f383758 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 0000000000000..c6806c12c0676
--- /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 0000000000000..31e00b5cd789b
--- /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 3575e24c4f90f..b77b52a5e657c 100644
--- a/pkgs/development/libraries/ffmpeg/default.nix
+++ b/pkgs/development/libraries/ffmpeg/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, pkgconfig, yasm
+{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2
 , mp3Support ? true, lame ? null
 , speexSupport ? true, speex ? null
 , theoraSupport ? true, libtheora ? null
-, vorbisSupport ? true, libvorbis ? null
+, vorbisSupport ? false, libvorbis ? null
 , vpxSupport ? false, libvpx ? null
 , x264Support ? true, x264 ? null
-, xvidSupport ? true, xvidcore ? null
+, xvidSupport ? false, xvidcore ? null
 , faacSupport ? false, faac ? null
 }:
 
@@ -15,13 +15,14 @@ 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.7-rc1";
+  name = "ffmpeg-0.8.1";
   
   src = fetchurl {
     url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
-    sha256 = "07ma2b80nslwwy4ddfrz8k575dxyc8x9mvja55ghrwxys8lkhw2m";
+    sha256 = "0vdq6bmrsi55p1l3dddiwyqsspb3l5dgqb87lysf5cz3sjxcfw2v";
   };
   
   # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
@@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional xvidSupport "--enable-libxvid"
     ++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
 
-  buildInputs = [ pkgconfig lame yasm ]
+  buildInputs = [ pkgconfig lame yasm zlib bzip2 ]
     ++ stdenv.lib.optional mp3Support lame
     ++ stdenv.lib.optional speexSupport speex
     ++ stdenv.lib.optional theoraSupport libtheora
@@ -55,6 +56,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional xvidSupport xvidcore
     ++ stdenv.lib.optional faacSupport faac;
 
+  enableParallelBuilding = true;
+    
   crossAttrs = {
     dontSetConfigureCross = true;
     configureFlags = configureFlags ++ [
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index 6c506df3f89f7..c72a619b66e46 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/gdbm/default.nix b/pkgs/development/libraries/gdbm/default.nix
index 448fd04edd814..807e6a6a2a828 100644
--- a/pkgs/development/libraries/gdbm/default.nix
+++ b/pkgs/development/libraries/gdbm/default.nix
@@ -1,22 +1,40 @@
-{ stdenv, fetchurl, automake }:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "gdbm-1.8.3";
+  name = "gdbm-1.9.1";
+
   src = fetchurl {
     url = "mirror://gnu/gdbm/${name}.tar.gz";
-    sha256 = "1j8x51xc71di1fx23sl22n5ghlqxl9a57sxri82l12z2l8w06d6c";
+    sha256 = "1vcs39nhvwyicjfx4qc17k54n22azla5yjr9yachcavp6wk8a9b0";
   };
 
-  patches = [ ./install.patch ];
-
-  # The fuloong2f is not supported by gdbm 1.8.3 still
-  preConfigure = ''
-    cp ${automake}/share/automake*/config.{sub,guess} .
-  '';
+  doCheck = true;
 
   meta = {
-    description = "GNU DBM key/value database library";
+    description = "GNU dbm key/value database library";
+
+    longDescription =
+      '' GNU dbm (or GDBM, for short) is a library of database functions that
+         use extensible hashing and work similar to the standard UNIX dbm.
+         These routines are provided to a programmer needing to create and
+         manipulate a hashed database.
+
+         The basic use of GDBM is to store key/data pairs in a data file.
+         Each key must be unique and each key is paired with only one data
+         item.
+
+         The library provides primitives for storing key/data pairs,
+         searching and retrieving the data by its key and deleting a key
+         along with its data.  It also support sequential iteration over all
+         key/data pairs in a database.
+
+         For compatibility with programs using old UNIX dbm function, the
+         package also provides traditional dbm and ndbm interfaces.
+      '';
+
     homepage = http://www.gnu.org/software/gdbm/;
-    license = "GPLv2+";
+    license = "GPLv3+";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/development/libraries/gdbm/install.patch b/pkgs/development/libraries/gdbm/install.patch
deleted file mode 100644
index 81afe020b7bef..0000000000000
--- a/pkgs/development/libraries/gdbm/install.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- gdbm-1.8.3/Makefile.in	2002-10-08 18:09:12.000000000 +0200
-+++ gdbm-1.8.3/Makefile.in	2008-04-07 01:15:58.000000000 +0200
-@@ -131,11 +131,11 @@ install: libgdbm.la gdbm.h gdbm.info
- 		$(INSTALL_ROOT)$(includedir) $(INSTALL_ROOT)$(man3dir) \
- 		$(INSTALL_ROOT)$(infodir)
- 	$(LIBTOOL) $(INSTALL) -c libgdbm.la $(INSTALL_ROOT)$(libdir)/libgdbm.la
--	$(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) gdbm.h \
-+	$(INSTALL_DATA) gdbm.h \
- 		$(INSTALL_ROOT)$(includedir)/gdbm.h
--	$(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.3 \
-+	$(INSTALL_DATA) $(srcdir)/gdbm.3 \
- 		$(INSTALL_ROOT)$(man3dir)/gdbm.3
--	$(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.info \
-+	$(INSTALL_DATA) $(srcdir)/gdbm.info \
- 		$(INSTALL_ROOT)$(infodir)/gdbm.info
- 
- install-compat:
-@@ -143,9 +143,9 @@ install-compat:
- 		$(INSTALL_ROOT)$(includedir)
- 	$(LIBTOOL) $(INSTALL) -c libgdbm_compat.la \
- 		$(INSTALL_ROOT)$(libdir)/libgdbm_compat.la
--	$(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/dbm.h \
-+	$(INSTALL_DATA)) $(srcdir)/dbm.h \
- 		$(INSTALL_ROOT)$(includedir)/dbm.h
--	$(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/ndbm.h \
-+	$(INSTALL_DATA)) $(srcdir)/ndbm.h \
- 		$(INSTALL_ROOT)$(includedir)/ndbm.h
- 
- #libgdbm.a: $(OBJS) gdbm.h
diff --git a/pkgs/development/libraries/glib/2.28.x.nix b/pkgs/development/libraries/glib/2.28.x.nix
index a1ebaabbe06b5..bae405a242670 100644
--- a/pkgs/development/libraries/glib/2.28.x.nix
+++ b/pkgs/development/libraries/glib/2.28.x.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "glib-2.28.3";
+  name = "glib-2.28.8";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/2.28/${name}.tar.bz2";
-    sha256 = "7e1ab62d0f0cdc3f0ce8214b77d104b3abbd51185a9f3fc9b6a504cce26f6fab";
+    sha256 = "222f3055d6c413417b50901008c654865e5a311c73f0ae918b0a9978d1f9466f";
   };
 
   # configure script looks for d-bus but it is only needed for tests
diff --git a/pkgs/development/libraries/glibc-2.12/common.nix b/pkgs/development/libraries/glibc-2.12/common.nix
index a83aeeab7f3aa..2efe56bb21460 100644
--- a/pkgs/development/libraries/glibc-2.12/common.nix
+++ b/pkgs/development/libraries/glibc-2.12/common.nix
@@ -141,8 +141,8 @@ stdenv.mkDerivation ({
       # maintained by the Hurd folks, `tschwinge/Roger_Whittaker' branch.
       # See <http://www.gnu.org/software/hurd/source_repositories/glibc.html>.
       url = "git://git.sv.gnu.org/hurd/glibc.git";
-      sha256 = "e51c6b0bb8544ee4547fda22272bfa6a23677655d15da3c041be6e820f37f844";
-      rev = "05862f9210fb029df3773ef004af954461f07478";
+      sha256 = "39ea53f318376cbd33e06ec23f4a393fc0801ea3aa87286b30943aa7ef7604cd";
+      rev = "77a94de8d3490e73a71efc0b981356d5acb7a28a";
     }
     else fetchurl {
       url = "mirror://gnu/glibc/glibc-${version}.tar.bz2";
diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix
index 1970ab57c9b68..5b3d51d19767e 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/gnutls/2.12.nix b/pkgs/development/libraries/gnutls/2.12.nix
new file mode 100644
index 0000000000000..c79ca0894cd49
--- /dev/null
+++ b/pkgs/development/libraries/gnutls/2.12.nix
@@ -0,0 +1,54 @@
+{ fetchurl, stdenv, zlib, lzo, libtasn1, nettle
+, guileBindings, guile, pkgconfig }:
+
+assert guileBindings -> guile != null;
+
+stdenv.mkDerivation rec {
+
+  name = "gnutls-2.12.9";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnutls/${name}.tar.bz2";
+    sha256 = "0ilfdyw6xr0w57aygmw1fvx56x2zh5la01y8bkx59crq927wk8bl";
+  };
+
+  configurePhase = ''
+    ./configure --prefix="$out"                                 \
+      --disable-dependency-tracking --enable-fast-install       \
+      --with-lzo --with-libtasn1-prefix="${libtasn1}"		\
+      --without-p11-kit                                         \
+      ${if guileBindings
+        then "--enable-guile --with-guile-site-dir=\"$out/share/guile/site\""
+        else ""}
+  '';
+
+  buildInputs = [ zlib lzo libtasn1 pkgconfig ]
+    ++ stdenv.lib.optional guileBindings guile;
+
+  propagatedBuildInputs = [ nettle ];
+
+  doCheck = true;
+
+  meta = {
+    description = "The GNU Transport Layer Security Library";
+
+    longDescription = ''
+       GnuTLS is a project that aims to develop a library which
+       provides a secure layer, over a reliable transport
+       layer. Currently the GnuTLS library implements the proposed
+       standards by the IETF's TLS working group.
+
+       Quoting from the TLS protocol specification:
+
+       "The TLS protocol provides communications privacy over the
+       Internet. The protocol allows client/server applications to
+       communicate in a way that is designed to prevent eavesdropping,
+       tampering, or message forgery."
+    '';
+
+    homepage = http://www.gnu.org/software/gnutls/;
+    license = "LGPLv2.1+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 3cd2e3601183e..2a0fe3715b91b 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -1,30 +1,33 @@
-{ fetchurl, stdenv, zlib, lzo, libtasn1, nettle
+{ fetchurl, stdenv, xz, zlib, lzo, libtasn1, nettle
 , guileBindings, guile }:
 
 assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
 
-  name = "gnutls-2.12.7";
+  name = "gnutls-3.0.1";
 
   src = fetchurl {
-    url = "mirror://gnu/gnutls/${name}.tar.bz2";
-    sha256 = "09vmm1b2iypwk5vh0adyqzra7sgx5hb9xyr1wjncv7947bk4zn3p";
+    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 = [ nettle ];
+  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 0000000000000..538cb6f8e419c
--- /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 96629b2519788..de9059dbd153b 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -2,7 +2,7 @@
 
 let
   baseName = "gobject-introspection";
-  v = "0.10.2";
+  v = "0.10.8";
 in
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${baseName}/0.10/${name}.tar.bz2";
-    sha256 = "18di6v39hibb6j39vs0a5icaafihfryh8250kz7x1q1313pvm62v";
+    sha256 = "5b1387ff37f03db880a2b1cbd6c6b6dfb923a29468d4d8367c458abf7704c61e";
   };
 
   postInstall = "rm -rf $out/share/gtk-doc";
diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix
index 0e0bed42a9a68..5f06c82c33492 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -1,14 +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";
   };
-  propagatedBuildInputs = [libgpgerror glib pth libassuan];
+  
+  propagatedBuildInputs = [ libgpgerror glib pth libassuan ];
 
-  buildNativeInputs = [pkgconfig];
+  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 85697aba87fc9..39170dd1ca78b 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/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 723d4176e35ef..0394bb5fadb4b 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 9132e6b0a8f33..0287c5b9135f8 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 0000000000000..4dec1a86ebf41
--- /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 4a1a2de4dace4..47762660b29a1 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 65f32e44cc2a9..e2eb25bfb8983 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 0000000000000..153ab47fb929c
--- /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 7a5514a460835..01d5487302ce2 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 ];
diff --git a/pkgs/development/libraries/gtk+/2.24.x.nix b/pkgs/development/libraries/gtk+/2.24.x.nix
index e0e04dbace1e1..e4a1f0969f931 100644
--- a/pkgs/development/libraries/gtk+/2.24.x.nix
+++ b/pkgs/development/libraries/gtk+/2.24.x.nix
@@ -8,11 +8,11 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-2.24.3";
+  name = "gtk+-2.24.5";
   
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.bz2";
-    sha256 = "336ddf3dd342cc36bee80dd4f86ef036044a2deb10cda67c8eecf5315b279ef7";
+    sha256 = "f355f26003b1b42b97e584bdc475189a423fdd052088ee4bbd7aa0f989815cc8";
   };
 
   patches =
diff --git a/pkgs/development/libraries/gtk+/old-icons.patch b/pkgs/development/libraries/gtk+/old-icons.patch
index 438ff244d07fd..e53d87474d075 100644
--- a/pkgs/development/libraries/gtk+/old-icons.patch
+++ b/pkgs/development/libraries/gtk+/old-icons.patch
@@ -1,7 +1,7 @@
-diff -ru -x '*~' gtk+-2.24.0-orig//gtk/Makefile.in gtk+-2.24.0//gtk/Makefile.in
---- gtk+-2.24.0-orig//gtk/Makefile.in	2011-01-30 05:39:20.000000000 +0100
-+++ gtk+-2.24.0//gtk/Makefile.in	2011-02-14 00:06:56.000000000 +0100
-@@ -1601,7 +1601,173 @@
+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 		\
@@ -176,10 +176,10 @@ diff -ru -x '*~' gtk+-2.24.0-orig//gtk/Makefile.in gtk+-2.24.0//gtk/Makefile.in
  
  @CROSS_COMPILING_FALSE@gtk_update_icon_cache_program = \
  @CROSS_COMPILING_FALSE@	   ./gtk-update-icon-cache
-@@ -2873,7 +3039,91 @@
+@@ -2887,7 +3053,91 @@
  	   && $(LN_S) folder.png user-desktop.png 			\
- 	   && $(RM) text-x-generic.png 					\
- 	   && $(LN_S) document-x-generic.png text-x-generic.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			\
diff --git a/pkgs/development/libraries/haskell/AC-Vector/default.nix b/pkgs/development/libraries/haskell/AC-Vector/default.nix
index de9bdf8e479bd..e4b78876c57ae 100644
--- a/pkgs/development/libraries/haskell/AC-Vector/default.nix
+++ b/pkgs/development/libraries/haskell/AC-Vector/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "AC-Vector";
-  version = "2.3.1";
-  sha256 = "0nmj57czqcik23j9iqxbdwqg73n5n1kc9akhp0wywrbkklgf79a0";
+  version = "2.3.2";
+  sha256 = "04ahf6ldfhvzbml9xd6yplygn8ih7b8zz7cw03hkr053g5kzylay";
   meta = {
     description = "Efficient geometric vectors and transformations";
-    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/Agda/default.nix b/pkgs/development/libraries/haskell/Agda/default.nix
index 5c896747ef13c..eb40a854e32e9 100644
--- a/pkgs/development/libraries/haskell/Agda/default.nix
+++ b/pkgs/development/libraries/haskell/Agda/default.nix
@@ -1,18 +1,25 @@
-{cabal, QuickCheck, binary, haskeline, haskellSrcExts, mtl, utf8String,
- syb, 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.10";
   sha256 = "1bh96g5c6b6jzaf3m9gm0vr64avgi86kb45p8i1vg1jbfjdbdlsw";
-  extraBuildInputs = [happy alex];
-  propagatedBuildInputs =
-    [QuickCheck binary haskeline haskellSrcExts mtl utf8String
-     syb xhtml zlib];
+  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 70d6def01564f..347fc5ff9c996 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 78f9bae76306a..720d604616940 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 ac35433e144b4..0000000000000
--- 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 7fb72c0f0ac70..0000000000000
--- 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 440d7e814d333..daf15c0cb2eeb 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.14";
   sha256 = "0ji81j4c2by5zyrdhx1s17j6kqsi3ngr9y1zh7hr9wv7jsrj3rf2";
-  propagatedBuildInputs =
-    [cairo colour dataAccessor dataAccessorTemplate gtk mtl];
+  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 7598ba9c512dd..378d1e2cd3764 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 e3ce4825d77f1..98002a4c46966 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 a25330a7b612c..3b2eccf081bf2 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 e40dec6dc968b..f54344882bb9f 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 0000000000000..d64151260629f
--- /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
index 2ea65ec9d78e6..c07e5c3717484 100644
--- a/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix
+++ b/pkgs/development/libraries/haskell/GLUT/2.1.1.2.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.1.2"; # Haskell Platform 2009.0.0
+  version = "2.1.1.2";
   sha256 = "d5ecf4b6bacc5e68ade00710df04fa158c6ed322c74362954716a0baba6bd3fb";
-  propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
+  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 4aa36b907bba4..553ec3ab8c06f 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, 2010.2.0.0, 2011.2.0.0
+  version = "2.1.2.1";
   sha256 = "0r3js5i468lqlsnvb04iw6gdl81gs3cgqids3xpi4p5qpynbyc02";
-  propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
+  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 0000000000000..50440932727ca
--- /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/GlomeVec/default.nix b/pkgs/development/libraries/haskell/GlomeVec/default.nix
index 4ca87d9bced27..421e64ee7a244 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 253f6e08f2a29..8084ada2cd68e 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/HDBC/HDBC-postgresql.nix b/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix
index 4877a9fe8cb0a..8ac9548d6104d 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 e6aefbb825aab..aa983026c9159 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 abfa0aea85bf8..30791deea1c0c 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 0faf430dcde87..4b8d6e24c4b85 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 92d9cbbef7396..657e4899b7b2c 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 e3b833e1cb359..55d2914d5bc92 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, syb}:
+{ cabal, deepseq, mtl, parsec, syb, sybWithClass, text, time
+, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HStringTemplate";
   version = "0.6.6";
   sha256 = "1ian79az5q6m08pwb5fks52ffs4h2mq02kkcwmr6jb7i0ha2k2si";
-  propagatedBuildInputs = [parsec time text utf8String parallel syb];
+  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
index b8ba3f27df62d..d16db78d8f4f3 100644
--- a/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix
+++ b/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
   version = "3001.1.5";
   sha256 = "e34d9f979bafbbf2e45bf90a9ee9bfd291f3c67c291a250cc0a6378431578aeb";
-  propagatedBuildInputs = [mtl network parsec];
+  buildDepends = [ network parsec ];
   meta = {
-    description = "a Haskell library for client-side HTTP";
+    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/4000.0.6.nix b/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
index 3c0d9a7b8d029..13d271dfc36fa 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, mtl, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.0.6"; # Haskell Platform 2009.1.1
+  version = "4000.0.6";
   sha256 = "75af1ac4dc21b10c8a1a54a33179ea822e591887bab7278360a3d6b38304d39b";
-  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.0.9.nix b/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix
index 23b09543707c2..fee3431829f83 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
index 686ca44654eaa..d007467e0e348 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, mtl, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.1.1"; # Haskell Platform 2011.2.0.0
+  version = "4000.1.1";
   sha256 = "09khx5fb673a0d7m3bl39xjdxvc60m52rmm4865cha2mby0zidy3";
-  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.2.nix b/pkgs/development/libraries/haskell/HTTP/4000.1.2.nix
new file mode 100644
index 0000000000000..5dcb4cbe618cf
--- /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/HUnit/1.2.0.3.nix b/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
index 36e8b86f3019a..ebf561825ce0b 100644
--- a/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HUnit";
-  version = "1.2.0.3"; # Haskell Platform 2009.0.0
+  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 ebbf304721b0b..ec65d160e866f 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
index d1e3f05aa628d..9c58da37b5037 100644
--- a/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HUnit";
-  version = "1.2.2.3"; # Haskell Platform 2011.2.0.0
+  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 0000000000000..e0dd6bd2bc178
--- /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/HaXml/1.13.3.nix b/pkgs/development/libraries/haskell/HaXml/1.13.3.nix
deleted file mode 100644
index 00a5cba60eff9..0000000000000
--- a/pkgs/development/libraries/haskell/HaXml/1.13.3.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/HaXml/1.20.2.nix b/pkgs/development/libraries/haskell/HaXml/1.20.2.nix
deleted file mode 100644
index 188377b8e9480..0000000000000
--- a/pkgs/development/libraries/haskell/HaXml/1.20.2.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, polyparse}:
-
-cabal.mkDerivation (self : {
-  pname = "HaXml";
-  version = "1.20.2";
-  sha256 = "05kmr2ablinnrg3x1xr19g5kzzby322lblvcvhwbkv26ajwi0b63";
-  propagatedBuildInputs = [polyparse];
-  meta = {
-    description = "Haskell utilities for parsing, filtering, transforming and generating XML documents.";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/HaXml/default.nix b/pkgs/development/libraries/haskell/HaXml/default.nix
new file mode 100644
index 0000000000000..76167c0a26554
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HaXml/default.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/Hipmunk/default.nix b/pkgs/development/libraries/haskell/Hipmunk/default.nix
index 8b965858f7993..537bc0ca30b1d 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 6b1681c6b3727..f27d1f97f374d 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
index 38af9e3e79124..51a0e127ecf91 100644
--- a/pkgs/development/libraries/haskell/JsContracts/default.nix
+++ b/pkgs/development/libraries/haskell/JsContracts/default.nix
@@ -1,13 +1,20 @@
-{cabal, WebBits, WebBitsHtml}:
+{ cabal, mtl, parsec, syb, WebBits, WebBitsHtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "JsContracts";
   version = "0.5.3";
   sha256 = "17l6kdpdc7lrpd9j4d2b6vklkpclshcjy6hzpi442b7pj96sn589";
-
-  propagatedBuildInputs = [ WebBits WebBitsHtml ];
-
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl parsec syb WebBits WebBitsHtml ];
   meta = {
-    description = "Design-by-contract for JavaScript.";
+    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
index 83aeeb88f8774..1d89afe596816 100644
--- a/pkgs/development/libraries/haskell/ListLike/default.nix
+++ b/pkgs/development/libraries/haskell/ListLike/default.nix
@@ -1,12 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ListLike";
-  version = "3.0.1";
-  sha256 = "1366ipy33fphjjk583c62rsyfwh36i5lbnip1v8r089c9glvwkxf";
+  version = "3.1.2";
+  sha256 = "1fa2y8yc0ppmh37alc20a75gpb90i8s3pgnh3kg8n0577gvhjhzz";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://software.complete.org/listlike";
     description = "Generic support for list-like structures";
-    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/MaybeT-transformers/default.nix b/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix
deleted file mode 100644
index c07747a167481..0000000000000
--- a/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, transformers, monadsFd}:
-
-cabal.mkDerivation (self : {
-  pname = "MaybeT-transformers";
-  version = "0.1";
-  sha256 = "b24b78e3a895587722c9ce899f9ef07b509db1a5b3b86f5b7b0e8bc986c8fb8f";
-  propagatedBuildInputs = [transformers monadsFd];
-  meta = {
-    description = "Support for computations with failures";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/MaybeT/default.nix b/pkgs/development/libraries/haskell/MaybeT/default.nix
index 34a27532f6897..348560508622b 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 683593227872c..61ba44a492466 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 3e81e7548bf71..ea70c41e7705e 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 cf848419bec9a..bcbf6b798683c 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 13b271524efca..1c992f4b5719d 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
index 33af33fe2e910..daf961f155065 100644
--- a/pkgs/development/libraries/haskell/MonadPrompt/default.nix
+++ b/pkgs/development/libraries/haskell/MonadPrompt/default.nix
@@ -1,17 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadPrompt";
-  version = "1.0.0.2";
-  sha256 = "01inbw0lfjrsgs68fvak1rxi76nhwsiyarfwl1g5mis4glmh4w4c";
-  propagatedBuildInputs = [mtl];
-  preConfigure = ''
-    sed -i 's|base<=4|base >= 3 \&\& < 5|' ${self.pname}.cabal
-  '';
+  version = "1.0.0.3";
+  sha256 = "0v6svyiajri7c463bz1a1x1nin5s9s7c3s7y0gjc4cn7lhgdsvf2";
+  buildDepends = [ mtl ];
   meta = {
     description = "MonadPrompt, implementation & examples";
-    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/MonadRandom/default.nix b/pkgs/development/libraries/haskell/MonadRandom/default.nix
index c57e47003eea9..f9c68ce7b4310 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 0000000000000..0be7c3dd22c91
--- /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
index 237000e23eafd..2ecc841a8a479 100644
--- a/pkgs/development/libraries/haskell/OneTuple/default.nix
+++ b/pkgs/development/libraries/haskell/OneTuple/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OneTuple";
   version = "0.2.1";
   sha256 = "1x52b68zh3k9lnps5s87kzan7dzvqp6mrwgayjq15w9dv6v78vsb";
   meta = {
     description = "Singleton Tuple";
-    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/OpenAL/default.nix b/pkgs/development/libraries/haskell/OpenAL/default.nix
index 87a8aa772efcd..a4a77aa824419 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
index b876c10b6e13f..e74fcdca02456 100644
--- a/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix
+++ b/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix
@@ -1,12 +1,18 @@
-{cabal, mesa, libX11}:
+{ cabal, libX11, mesa }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OpenGL";
-  version = "2.2.1.1"; # Haskell Platform 2009.0.0
+  version = "2.2.1.1";
   sha256 = "926ca25cf9502cdaaeb8ade484015468cb60594e1bfbf0e04bd01235d8d9a792";
-  propagatedBuildInputs = [mesa libX11];
+  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 55a2dd8130dcf..65e3da59367aa 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, 2010.2.0.0, 2011.2.0.0
+  version = "2.2.3.0";
   sha256 = "00h5zdm64mfj5fwnd52kyn9aynsbzqwfic0ymjjakz90pdvk4p57";
-  propagatedBuildInputs = [mesa libX11];
+  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 0000000000000..2deb96d750f54
--- /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/OpenGLRaw/default.nix b/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
new file mode 100644
index 0000000000000..e4f9daf066cf4
--- /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
index 7da7a50a2f1b1..ff3bd0b8fb5f6 100644
--- a/pkgs/development/libraries/haskell/PSQueue/default.nix
+++ b/pkgs/development/libraries/haskell/PSQueue/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "PSQueue";
   version = "1.1";
   sha256 = "1k291bh8j5vpcrn6vycww2blwg7jxx9yrfmrqdanz48gs4d8gq58";
   meta = {
-    description = "Priority Search Queue implementation for Haskell";
-    license = "BSD";
+    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
index ea59c8c7fddad..a459fd9531756 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "1.2.0.0"; # Haskell Platform 2009.0.0
+  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
index 195cd797dfe11..c104a4be27a80 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "1.2.0.1"; # version of QuickCheck1 compatible with base-4
+  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 182ee9ea42abe..df686f71c5b69 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
index 3e8fa4ff9d447..828255a9860c2 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, extensibleExceptions, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.1.1.1"; # Haskell Platform 2010.2.0.0
+  version = "2.1.1.1";
   sha256 = "626a6f7a69e2bea3b4fe7c573d0bc8da8c77f97035cb2d3a5e1c9fca382b59c9";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ extensibleExceptions mtl random ];
   meta = {
+    homepage = "http://www.cse.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.4.0.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
index 6a2a5470cd725..ac9ac3d2a7de1 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, extensibleExceptions, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.4.0.1"; # Haskell Platform 2011.2.0.0
+  version = "2.4.0.1";
   sha256 = "1x7jc2svpxbll8qkrbswh5q59sqcjf2v5a6jnqslf5gwr5qpq18r";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ extensibleExceptions mtl random ];
   meta = {
+    homepage = "http://code.haskell.org/QuickCheck";
     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.4.1.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix
new file mode 100644
index 0000000000000..8eb413d2b31c1
--- /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/RSA/default.nix b/pkgs/development/libraries/haskell/RSA/default.nix
new file mode 100644
index 0000000000000..7476896337c29
--- /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 3f650b22c0952..6a6211b6263af 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 e187b88492c90..e6695f0135801 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 d1974a601566f..674282e30a869 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 1d15976df1b46..f48e0dbab510f 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 ce4c3cec66f53..8adf60f938cdc 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 5389cfcb49852..659b06f72b798 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.3";
-  sha256 = "1sx68mvzb2y3dq9hk769fzp8vw4jf4hk5v45i0a9a8b31imlicf0";
-  propagatedBuildInputs = [binary];
+  version = "1.5.0.0";
+  sha256 = "12sz1dblmpiy8bg45fwndp1g9gf7494vqqbvbd1hwr5qzyfwyqck";
+  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 bac471ee90fc3..755c17eee8e9f 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 b3a3563f6a129..c31f0e5d2898a 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 c728146c953f8..20fee419fe955 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 a7034f27922fb..8f36e8ebc0885 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 0000000000000..95148607b6fe4
--- /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 0000000000000..3856409819dfe
--- /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 4df2ccdb645da..94c157765d342 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
index decc9b7d89c17..18371c57f082e 100644
--- a/pkgs/development/libraries/haskell/WebBits-Html/default.nix
+++ b/pkgs/development/libraries/haskell/WebBits-Html/default.nix
@@ -1,13 +1,18 @@
-{cabal, WebBits}:
+{ cabal, mtl, parsec, syb, WebBits }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "WebBits-Html";
   version = "1.0.1";
   sha256 = "134rmm5ccfsjdr0pdwn2mf81l81rgxapa3wjjfjkxrkxq6hav35n";
-
-  propagatedBuildInputs = [ WebBits ];
-
+  buildDepends = [ mtl parsec syb WebBits ];
   meta = {
-    description = "WebBits is a collection of libraries for working with JavaScript embeded in HTML files.";
+    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
index 530252017fbc6..89161608843ea 100644
--- a/pkgs/development/libraries/haskell/WebBits/1.0.nix
+++ b/pkgs/development/libraries/haskell/WebBits/1.0.nix
@@ -1,13 +1,18 @@
-{cabal, mtl, parsec, syb}:
+{ cabal, mtl, parsec, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "WebBits";
   version = "1.0";
   sha256 = "1xqk4ajywlaq9nb9a02i7c25na5p2qbpc2k9zw93gbapppjiapsc";
-
-  propagatedBuildInputs = [ mtl parsec syb ];
-
+  buildDepends = [ mtl parsec syb ];
   meta = {
-    description = "WebBits is a collection of libraries for working with JavaScript.";
+    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
index 34592febd8b19..88502db4dfff7 100644
--- a/pkgs/development/libraries/haskell/WebBits/default.nix
+++ b/pkgs/development/libraries/haskell/WebBits/default.nix
@@ -1,13 +1,18 @@
-{cabal, mtl, parsec, syb}:
+{ cabal, mtl, parsec, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "WebBits";
   version = "2.0";
   sha256 = "14a1rqlq925f6rdbi8yx44xszj5pvskcmw1gi1bj8hbilgmlwi7f";
-
-  propagatedBuildInputs = [ mtl parsec syb ];
-
+  buildDepends = [ mtl parsec syb ];
   meta = {
-    description = "WebBits is a collection of libraries for working with JavaScript.";
+    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 1b427f72b7883..0000000000000
--- 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 c8a1a2cd6cc29..0000000000000
--- 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 3a8a7face7c1f..14af645928cab 100644
--- a/pkgs/development/libraries/haskell/X11-xft/default.nix
+++ b/pkgs/development/libraries/haskell/X11-xft/default.nix
@@ -1,15 +1,21 @@
-{ ghc, cabal, X11, utf8String, pkgconfig, libXft, freetype, fontconfig }:
-cabal.mkDerivation (self : {
+{ cabal, fontconfig, freetype, libXft, pkgconfig, utf8String, X11
+}:
+
+cabal.mkDerivation (self: {
   pname = "X11-xft";
   version = "0.3";
   sha256 = "48892d0d0a90d5b47658877facabf277bf8466b7388eaf6ce163b843432a567d";
-  buildInputs = [ ghc pkgconfig libXft freetype fontconfig ];
-  propagatedBuildInputs = [ X11 utf8String ];
-  configureFlags=["--extra-include-dirs=${freetype}/include/freetype2"];
+  buildDepends = [ utf8String X11 ];
+  extraLibraries = [ fontconfig freetype pkgconfig ];
+  pkgconfigDepends = [ libXft ];
+  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 70956b0687059..f8eef4dcb366f 100644
--- a/pkgs/development/libraries/haskell/X11/default.nix
+++ b/pkgs/development/libraries/haskell/X11/default.nix
@@ -8,6 +8,13 @@ cabal.mkDerivation (self : {
   sha256 = "653ff8aa4053574a36dbb1729459df6e5a1a87a223bc3eeced8e40c6e3a5406f";
   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-native/default.nix b/pkgs/development/libraries/haskell/aeson-native/default.nix
new file mode 100644
index 0000000000000..3ec90bab76d36
--- /dev/null
+++ b/pkgs/development/libraries/haskell/aeson-native/default.nix
@@ -0,0 +1,23 @@
+{ cabal, attoparsec, blazeBuilder, blazeTextualNative, deepseq
+, hashable, mtl, syb, text, time, unorderedContainers, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "aeson-native";
+  version = "0.3.3";
+  sha256 = "1ckf0fqx0mdw7467kjk3q48fb4q5w6336i8fxk6j0wfk17xjfs8l";
+  buildDepends = [
+    attoparsec blazeBuilder blazeTextualNative 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/aeson/default.nix b/pkgs/development/libraries/haskell/aeson/default.nix
index 511a06700b1b8..db31abd7bb50a 100644
--- a/pkgs/development/libraries/haskell/aeson/default.nix
+++ b/pkgs/development/libraries/haskell/aeson/default.nix
@@ -1,18 +1,23 @@
-{cabal, attoparsec, blazeBuilder, blazeTextual, deepseq, hashable, mtl,
- syb, text, unorderedContainers, vector}:
+{ cabal, attoparsec, blazeBuilder, blazeTextual, deepseq, hashable
+, mtl, syb, text, time, unorderedContainers, vector
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "aeson";
-  version = "0.3.2.9";
-  sha256 = "1qaajk797zpickw4ik5lc03wnmxkrcmv3zik7n1bjqx6h37h0zqw";
-  propagatedBuildInputs = [
-    attoparsec blazeBuilder blazeTextual deepseq hashable mtl
-    syb text unorderedContainers vector
+  version = "0.3.2.11";
+  sha256 = "0cvavxb3bm5kz491wrx5az5scvddndw2rh45snhj1xn0flr1c2n7";
+  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 = "BSD3";
-    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/ansi-terminal/default.nix b/pkgs/development/libraries/haskell/ansi-terminal/default.nix
index 25e0fb8879278..484736c70982c 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 588ffe4f5c1d9..468b35136a33b 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.6.3";
   sha256 = "1cpkfn1ld0sjysksdsxxwwy1b17s4smmzk8y88y9mb81vgwlalkl";
-  propagatedBuildInputs = [ansiTerminal];
+  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 0000000000000..01229fe3f0705
--- /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 0000000000000..20cca829736ef
--- /dev/null
+++ b/pkgs/development/libraries/haskell/async/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "async";
+  version = "1.4";
+  sha256 = "1d24bcvmw687jcf75wgavlhfs55f0va02xhl4xdnj2lrlr19s5dl";
+  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 0000000000000..52a16a8ac1cc6
--- /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 0000000000000..bcc9e8b1a6f19
--- /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 0000000000000..5ff16e30c18b6
--- /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
index 536b27833a299..b76545143d6ac 100644
--- a/pkgs/development/libraries/haskell/attoparsec/default.nix
+++ b/pkgs/development/libraries/haskell/attoparsec/default.nix
@@ -1,13 +1,18 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "attoparsec";
-  version = "0.9.1.1";
-  sha256 = "1qkkl9pzk4znqh34pchmxbcslybvii35lkxhwf6445lyhj20356b";
-  propagatedBuildInputs = [deepseq];
+  version = "0.9.1.2";
+  sha256 = "0h9j4gn376k6j3v9l6pk7a4vxabkwk80043x6xlyxsh8p77jgj3v";
+  buildDepends = [ deepseq ];
   meta = {
+    homepage = "https://bitbucket.org/bos/attoparsec";
     description = "Fast combinator parsing for bytestrings";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.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
index 4152cd4ed2c42..7c990332a37fb 100644
--- a/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
+++ b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
@@ -1,13 +1,18 @@
-{cabal, attoparsec, enumerator}:
+{ cabal, attoparsec, enumerator }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "attoparsec-enumerator";
   version = "0.2.0.4";
   sha256 = "14v53vppcf4k3m4kid10pg5r3zsn894f36w1y2pzlc72w81fv3gd";
-  propagatedBuildInputs = [attoparsec enumerator];
+  buildDepends = [ attoparsec enumerator ];
   meta = {
-    description = "Converts an Attoparsec parser into an iteratee";
-    license = "BSD3";
+    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 0000000000000..f6f2709bfba10
--- /dev/null
+++ b/pkgs/development/libraries/haskell/authenticate/default.nix
@@ -0,0 +1,26 @@
+{ cabal, aesonNative, 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.10.1";
+  sha256 = "03928v92s5j99r5v2jp9s4z87djj8dldkid8525aky0b0ghlnfhc";
+  buildDepends = [
+    aesonNative 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
index 1c51f82bed685..7fbddd1c43df0 100644
--- a/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix
+++ b/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "base-unicode-symbols";
-  version = "0.2.1.5";
-  sha256 = "1ir1dckrpax4xlrfp7jdsjn7s403a8n8mcmv3wdnpzkg1klfahyq";
+  version = "0.2.2.1";
+  sha256 = "095x4mlkn7i9byg6kdp2f7z0x7sizmy4lgsi0rsabazyd3d8rr9l";
   meta = {
+    homepage = "http://haskell.org/haskellwiki/Unicode-symbols";
     description = "Unicode alternatives for common functions and operators";
-    license = "BSD3";
-    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/base64-bytestring/default.nix b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
new file mode 100644
index 0000000000000..f974a72347fd3
--- /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 348f4927ae1bf..e77d5b96ea792 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 6ccc033f02e9d..5b69e6d901e07 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 0e3365a409035..2b132f9cad0bb 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 aea6fe1920928..340230b506d03 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 cf501a51d474a..65018a4d5c514 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.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 aff1eea1f0c70..d89e225a5e39c 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 19f79321199e1..23493e50c19ce 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
index d636e68da1248..84d667de29af2 100644
--- a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
@@ -1,12 +1,18 @@
-{cabal, blazeBuilder, enumerator, transformers}:
+{ cabal, blazeBuilder, enumerator, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-builder-enumerator";
   version = "0.2.0.2";
   sha256 = "0as4mjh695jpxp9qfhpsxyr1448l0pk94sh5kk8sgxv5hfiy41k9";
-  propagatedBuildInputs = [blazeBuilder enumerator transformers];
+  buildDepends = [ blazeBuilder enumerator transformers ];
   meta = {
+    homepage = "https://github.com/meiersi/blaze-builder-enumerator";
     description = "Enumeratees for the incremental conversion of builders to bytestrings";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.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 4b8dc9b08e96b..3a20e5d0cb1b2 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.3.0.1";
   sha256 = "1p3xlifcr7v987zx8l2sppn9yydph332mn1xxk0yfi78a6386nfb";
-  propagatedBuildInputs = [text];
+  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 e42a008a9484c..8d1afd8c6fb07 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, blazeBuilder}:
+{ cabal, blazeBuilder, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-html";
-  version = "0.4.1.4";
-  sha256 = "1xf302dapwmmlxj9alfbdv6rcrxhr9p305s4jz2d6ckq2xzz8yjf";
-  propagatedBuildInputs = [text blazeBuilder];
+  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-native/default.nix b/pkgs/development/libraries/haskell/blaze-textual-native/default.nix
new file mode 100644
index 0000000000000..3f41a1769050e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/blaze-textual-native/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, text, time, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "blaze-textual-native";
+  version = "0.2.1";
+  sha256 = "12cnl76qld19x6zlhxcsx2b27mfr9v7sc2xq6af9h77wqb98fkvn";
+  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/blaze-textual/default.nix b/pkgs/development/libraries/haskell/blaze-textual/default.nix
index 3217ef0a10840..deb1e3caa7832 100644
--- a/pkgs/development/libraries/haskell/blaze-textual/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-textual/default.nix
@@ -1,14 +1,18 @@
-{cabal, blazeBuilder, text, vector}:
+{ cabal, blazeBuilder, doubleConversion, text, time, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-textual";
-  version = "0.1.0.0";
-  sha256 = "0ql25b0r4xbshqsjfndl7glq0hp2ncxb3h5zd541vsqrqrf8y4gk";
-  propagatedBuildInputs = [blazeBuilder text vector];
+  version = "0.2.0.4";
+  sha256 = "0bifxyzm35xvlqry06iv6pqgx1d33jnrvpmn4wnydkyg1r7q3k9v";
+  buildDepends = [ blazeBuilder doubleConversion text time vector ];
   meta = {
+    homepage = "http://github.com/mailrank/blaze-textual";
     description = "Fast rendering of common datatypes";
-    license = "BSD3";
-    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/bmp/default.nix b/pkgs/development/libraries/haskell/bmp/default.nix
index 1a56ef2a497b8..2c08676d9c439 100644
--- a/pkgs/development/libraries/haskell/bmp/default.nix
+++ b/pkgs/development/libraries/haskell/bmp/default.nix
@@ -1,14 +1,18 @@
-{cabal, binary}:
+{ cabal, binary }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bmp";
-  version = "1.1.1.2";
-  sha256 = "1hxsl9gip5icjbmr5y48nkb10csqwzcswssqfaq6cqwnfhpi7813";
-  propagatedBuildInputs = [binary];
+  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 = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    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 0000000000000..cf68d1e7fa50a
--- /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
index b957f28130dfb..4a480b0793171 100644
--- a/pkgs/development/libraries/haskell/bytestring-nums/default.nix
+++ b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
@@ -1,12 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bytestring-nums";
-  version = "0.3.2";
-  sha256 = "16d99xm692x88vx27w4g6iqi4sbi9il8c10r1zaqq2hqviv0k1wg";
+  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 = "BSD3";
+    license = self.stdenv.lib.licenses.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
index 8cbc0f30ea3ee..1dc56c420b671 100644
--- a/pkgs/development/libraries/haskell/bytestring-trie/default.nix
+++ b/pkgs/development/libraries/haskell/bytestring-trie/default.nix
@@ -1,14 +1,18 @@
-{cabal, binary}:
+{ cabal, binary }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bytestring-trie";
   version = "0.2.3";
   sha256 = "1zb4s7fd951swc648szrpx0ldailmdinapgbcg1zajb5c5jq57ga";
-  propagatedBuildInputs = [binary];
+  buildDepends = [ binary ];
   meta = {
+    homepage = "http://code.haskell.org/~wren/";
     description = "An efficient finite map from (byte)strings to values";
-    license = "BSD3";
-    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/cabal/cabal.nix b/pkgs/development/libraries/haskell/cabal/cabal.nix
index df975a877fde1..3f5bac4d7e4e7 100644
--- a/pkgs/development/libraries/haskell/cabal/cabal.nix
+++ b/pkgs/development/libraries/haskell/cabal/cabal.nix
@@ -1,10 +1,26 @@
 # generic builder for Cabal packages
 
-{stdenv, fetchurl, lib, ghc, enableLibraryProfiling ? false} :
+{stdenv, fetchurl, lib, pkgconfig, ghc, enableLibraryProfiling ? false} :
 {
   mkDerivation =
     args : # arguments for the individual package, can modify the defaults
-    let 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
@@ -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"];
@@ -115,5 +151,5 @@
             # in Cabal derivations.
             inherit stdenv ghc;
           };
-    in  stdenv.mkDerivation ((rec { f = defaults f // args 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 69b2ecad422cb..293f692c67f58 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.12.0";
   sha256 = "0n2sqbf8wjjvm5m1igkq685vqvc0lil3gmcs3i0g9hy7lsjnlwr9";
-  extraBuildInputs = [pkgconfig glibc cairo zlib gtk2hsBuildtools];
-  propagatedBuildInputs = [mtl];
+  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 0000000000000..8dff7eda28470
--- /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 0000000000000..6a59c9e840b7b
--- /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/case-insensitive/default.nix b/pkgs/development/libraries/haskell/case-insensitive/default.nix
deleted file mode 100644
index 2bda4a7eefea6..0000000000000
--- a/pkgs/development/libraries/haskell/case-insensitive/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, text}:
-
-cabal.mkDerivation (self : {
-  pname = "case-insensitive";
-  version = "0.2.0.2";
-  sha256 = "0qn2scaxxbqi4770nwvcmb1ldj0ipa2ljxcavcn0kv48xzs519l7";
-  propagatedBuildInputs = [text];
-  meta = {
-    description = "Case insensitive string comparison";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/cautious-file/default.nix b/pkgs/development/libraries/haskell/cautious-file/default.nix
index 012843adab8f0..f291c3e632f1a 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 82fc2d81c3ec9..c035b1603f1a4 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.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 0000000000000..41646034aa0e4
--- /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
index c9740c6aabd30..9cb92640ee451 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.1.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.1"; # Haskell Platform 2009.0.0
+  version = "3001.1.7.1";
   sha256 = "7d1d710871fffbbec2a33d7288b2959ddbcfd794d47f0122127576c02550b339";
-  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.2.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix
index e694d51ba30eb..7e91e25209eeb 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 976fbc572b8ee..0c1f8d709c3b9 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
index d925ad5343c40..3621b1fac1b83 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.4.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.4"; # Haskell Platform 2011.2.0.0
+  version = "3001.1.7.4";
   sha256 = "1fiild4djzhyz683kwwb0k4wvhd89ihbn6vncjl270xvwj5xmrbd";
-  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.8.2.nix b/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix
new file mode 100644
index 0000000000000..686555330f3a8
--- /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/citeproc-hs/default.nix b/pkgs/development/libraries/haskell/citeproc-hs/default.nix
index e1ce1124b07fe..b09409d28df1c 100644
--- a/pkgs/development/libraries/haskell/citeproc-hs/default.nix
+++ b/pkgs/development/libraries/haskell/citeproc-hs/default.nix
@@ -1,13 +1,23 @@
-{cabal, json, mtl, pandocTypes, parsec, syb, utf8String, xml}:
+{ cabal, hsBibutils, HTTP, json, mtl, network, pandocTypes, parsec
+, syb, time, utf8String, xml
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "citeproc-hs";
-  version = "0.3.2";
-  sha256 = "04lq0w1yjasn4i9siqpw41ia9f67xlv7vqwhs2a87hr1jnr09pgf";
-  propagatedBuildInputs =
-    [json mtl pandocTypes parsec syb utf8String xml];
+  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
index 9d91ac477e7ac..166e261836f5a 100644
--- a/pkgs/development/libraries/haskell/clientsession/default.nix
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -1,13 +1,22 @@
-{cabal}:
+{ cabal, base64Bytestring, cereal, cryptoApi, cryptocipher
+, cryptohash
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "clientsession";
-  version = "0.6.0";
-  sha256 = "0h92jjkhldn7f9b78cajfda8rprsj5scdsyl3pjpzicpvvy9g00y";
+  version = "0.7.2";
+  sha256 = "0jfpgzfgcmc80qrzxj6dsg6cbd97pscg5yp99c9f58m4igr3fb2q";
+  buildDepends = [
+    base64Bytestring cereal cryptoApi cryptocipher cryptohash
+  ];
   meta = {
+    homepage = "http://github.com/snoyberg/clientsession/tree/master";
     description = "Store session data in a cookie";
-    license = "BSD3";
-    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/cmdargs/default.nix b/pkgs/development/libraries/haskell/cmdargs/default.nix
index b7d3e81160a8f..4e8b236464a65 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 0000000000000..93df5ef217c2f
--- /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 1a74796981f32..702ddd0b9ec68 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 99b9363259580..51c93043e8b0e 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 0000000000000..71801a324c36c
--- /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 0000000000000..06571080b7bd8
--- /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 0000000000000..6c12828528516
--- /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 7adc2e974f39b..5497500c0a86d 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.9.1";
-  sha256 = "a1f46bf1166356c02e7a241d0bfea7010dc3e5f9f15181cfc2405a95df402914";
-  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
index 750c4de28abbd..dce5b245a78ce 100644
--- a/pkgs/development/libraries/haskell/cookie/default.nix
+++ b/pkgs/development/libraries/haskell/cookie/default.nix
@@ -1,14 +1,18 @@
-{cabal, blazeBuilder, text}:
+{ cabal, blazeBuilder, text, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cookie";
-  version = "0.2.1";
-  sha256 = "0jn4as09qx2948k0r916vy5igz0xmrvng37s0il81b0ndvhnsc6c";
-  propagatedBuildInputs = [blazeBuilder text];
+  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 = "BSD3";
-    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/cprng-aes/default.nix b/pkgs/development/libraries/haskell/cprng-aes/default.nix
new file mode 100644
index 0000000000000..1c156f47a3fa6
--- /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 47f34bb441c25..0a7f23a38acd8 100644
--- a/pkgs/development/libraries/haskell/criterion/default.nix
+++ b/pkgs/development/libraries/haskell/criterion/default.nix
@@ -1,19 +1,23 @@
-{cabal, deepseq, mtl, parallel, parsec, vector, vectorAlgorithms,
- mwcRandom, statistics}:
+{ cabal, deepseq, mtl, mwcRandom, parsec, statistics, time, vector
+, vectorAlgorithms
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "criterion";
-  version = "0.5.0.7";
-  sha256 = "1f1vpc3cwvc6wjy7fras5kp1iap8abh6ap3w6pf75qpkbdrcd3dq";
-
-  propagatedBuildInputs = [
-    deepseq mtl parallel parsec vector vectorAlgorithms mwcRandom statistics
+  version = "0.5.0.10";
+  sha256 = "0sd289s7wnyg0p37j327hv55aw4a18bdv56z26v4qi3j8p2fbpbj";
+  buildDepends = [
+    deepseq mtl mwcRandom parsec statistics time vector
+    vectorAlgorithms
   ];
-
   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 0000000000000..e651d03b736fd
--- /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 0000000000000..754f728aed54c
--- /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 0000000000000..70dbbf15ea4db
--- /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 0000000000000..efd0f64192000
--- /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 477c794feb157..1539583a617d5 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.2";
   sha256 = "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c";
-  propagatedBuildInputs = [parsec];
+  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 d65e51a2be343..0238f2d311b6b 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.7";
-  sha256 = "08658axzznqxp4p4d6h0y0sp7rzj84ma6hrb4zvsxa3614vydgi4";
-  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 e1221a86a75c1..f6b48befd5d6b 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.7";
-  sha256 = "05wi8wm4vq4j4ldx1925q7v31rnh4gj5891gqc5hdf0x8cgkxbii";
-  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
index 6575e9aa3db1b..593c7b3bd3cb5 100644
--- a/pkgs/development/libraries/haskell/data-default/default.nix
+++ b/pkgs/development/libraries/haskell/data-default/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal, dlist }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-default";
-  version = "0.2.0.1";
-  sha256 = "0hhrzaykwybqpig0kss4iq1i93ygb80g8i1chpr84akmvdr07w0i";
+  version = "0.3.0";
+  sha256 = "0nbvknfa9kkc46fl1ffji0ghqb41wwsccmc55mya5zavfq9g05g9";
+  buildDepends = [ dlist ];
   meta = {
     description = "A class for types with a default value";
-    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/data-reify/default.nix b/pkgs/development/libraries/haskell/data-reify/default.nix
index fe2e0b23d3f9b..2618ef6a69069 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 2290a1f50923b..88d1b6ed06734 100644
--- a/pkgs/development/libraries/haskell/dataenc/default.nix
+++ b/pkgs/development/libraries/haskell/dataenc/default.nix
@@ -1,12 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "dataenc";
-  version = "0.14";
-  sha256 = "0q92pzm6wp4rl92ac9b2x2b6na8nzhf229myc9h3cyr3p822liw6";
+  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 = "BSD3";
+    license = self.stdenv.lib.licenses.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 de7d4bbffe700..72f3d1c937f3a 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 = "0j2h369ydmlnkvk6m9j7b6fgs6cyc425s8n3yaajr4j5rdqcq6lk";
-  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
index eb84d629fdb1c..2c61618cd0812 100644
--- a/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix
+++ b/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "deepseq";
-  version = "1.1.0.0"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "1.1.0.0";
   sha256 = "947c45e7ee862159f190fb8e905c1328f7672cb9e6bf3abd1d207bbcf1eee50a";
   meta = {
-    description = "Provides a deep version of seq, for fully evaluating data structures";
+    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
index 719ba91483ac3..4af1d5bff9c74 100644
--- a/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix
+++ b/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "deepseq";
-  version = "1.1.0.2"; # Haskell Platform 2011.2.0.0
+  version = "1.1.0.2";
   sha256 = "1iqk8lc2an2rd1j9lcr76yabiz18h10lazlmdg5c528yssyd6135";
   meta = {
-    description = "Provides a deep version of seq, for fully evaluating data structures";
+    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/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix
index 7ac349e96aa21..7f28ad8b10daa 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 7df65b1c0bff0..b13f156a3e8fb 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.9";
   sha256 = "15gj3iq3jm4lnkc6hnj9v8p8ia3yzbsajwf9by3b1kpl449k2h29";
-  propagatedBuildInputs = [zlib];
+  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 0000000000000..a8943965ab751
--- /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.1";
+  sha256 = "198ynnls5l25q6igbhgd892cp1hvzca3wbgsmfxzlmcwmihhp8p9";
+  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
index df6ef6811fd99..1e0b78c4af390 100644
--- a/pkgs/development/libraries/haskell/directory-tree/default.nix
+++ b/pkgs/development/libraries/haskell/directory-tree/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+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 = "BSD3";
+    license = self.stdenv.lib.licenses.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
index fd0c275859359..a88b38650c7d1 100644
--- a/pkgs/development/libraries/haskell/dlist/default.nix
+++ b/pkgs/development/libraries/haskell/dlist/default.nix
@@ -1,14 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "dlist";
   version = "0.5";
   sha256 = "1shr5wlpha68h82gwpndr5441847l01gh3j7szyvnmgzkr0fb027";
-  propagatedBuildInputs = [];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/dlist/";
     description = "Differences lists";
-    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/dotgen/default.nix b/pkgs/development/libraries/haskell/dotgen/default.nix
index c9e4c1e04000f..06a3e6a09fe54 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 0000000000000..4f1bf34dc291b
--- /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 b477df5fbd143..b8fe0d25ed419 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
index 3c053565e2aa9..10c518611d1dc 100644
--- a/pkgs/development/libraries/haskell/email-validate/default.nix
+++ b/pkgs/development/libraries/haskell/email-validate/default.nix
@@ -1,14 +1,18 @@
-{cabal, parsec, ranges}:
+{ cabal, parsec, ranges }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "email-validate";
-  version = "0.2.6";
-  sha256 = "1nw4r5wyck30r6n0bjxwybpkw2dqr2mp4y8fy6ypra9zhhw1jd8m";
-  propagatedBuildInputs = [parsec ranges];
+  version = "0.2.7";
+  sha256 = "13zam197ph431f351g8srsxwqchjdwx1c1bizmildsc1zxm2nm3q";
+  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 = "BSD3";
-    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/emgm/default.nix b/pkgs/development/libraries/haskell/emgm/default.nix
deleted file mode 100644
index b5aa22ede884c..0000000000000
--- a/pkgs/development/libraries/haskell/emgm/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "emgm";
-  version = "0.3.1";
-  sha256 = "956923ec4d51f111ca6091ebccf75a1f6b99d7a173ea673cbb4787bf08f497a8";
-  meta = {
-    description = "Extensible and Modular Generics for the Masses";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/entropy/default.nix b/pkgs/development/libraries/haskell/entropy/default.nix
new file mode 100644
index 0000000000000..e877124b9635d
--- /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
index 8cd33a1932589..1037c570bdbb6 100644
--- a/pkgs/development/libraries/haskell/enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/enumerator/default.nix
@@ -1,13 +1,18 @@
-{cabal, text, transformers}:
+{ cabal, text, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "enumerator";
-  version = "0.4.9.1";
-  sha256 = "1rnhapj5am1rv3dff2bkhch7ikpyhs18nay39h0805xl50dcyw99";
-  propagatedBuildInputs = [text transformers];
+  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 = "MIT";
+    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 7bceb45f3e9c7..25d64b3faafc6 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 0000000000000..8a928931e3e7f
--- /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 0000000000000..329bb2a42c48d
--- /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/0.1.1.3.nix b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.3.nix
new file mode 100644
index 0000000000000..d349a1f17e366
--- /dev/null
+++ b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.3.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "extensible-exceptions";
+  version = "0.1.1.3";
+  sha256 = "1i8rjfczsx1wjfaq423a7cp7qrnxh053865z7bg6hwhk2pxsrxkm";
+  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 19390cc94706a..0000000000000
--- 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 74f9f0c4626ff..b481fb39e543a 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 61504f2be5c21..01b3c71b4e2b0 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.3";
+  sha256 = "0sl45pv18qfyphixl9qyng5m6i19c9n18izkm278z6fvih2x5wd0";
+  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 18a43e1075f47..8ad5c4318f7dd 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.8";
   sha256 = "1yvigcvb8cvxfa8vb2i11xkrylqw57jwzkaji6m1wp03k80zf576";
-  propagatedBuildInputs = [utf8String xml];
+  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
index a71b83da03300..7299daddb14cc 100644
--- a/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fgl";
-  version = "5.4.2.2"; # Haskell Platform 2010.1.0.0
+  version = "5.4.2.2";
   sha256 = "8232c337f0792854bf2a12a5fd1bc46726fff05d2f599053286ff873364cd7d2";
-  propagatedBuildInputs = [mtl];
+  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 1348e5f991364..7417a32745c50 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 and 2011.2.0.0
+  version = "5.4.2.3";
   sha256 = "1f46siqqv8bc9v8nxr72nxabpzfax117ncgdvif6rax5ansl48g7";
-  propagatedBuildInputs = [mtl];
+  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 0000000000000..7b6aa799944b4
--- /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/file-embed/default.nix b/pkgs/development/libraries/haskell/file-embed/default.nix
new file mode 100644
index 0000000000000..d24d30adfcb45
--- /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 4ba15b54e6087..6e3362bf42cec 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.1";
+  sha256 = "1fq62kxf68y2952qhipllz049cq52yc3wm4i31v2lg5hdcwbw152";
   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 5fa1927df5470..4c4214f0317db 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.4.0.3";
-  sha256 = "098z9niavzxfzwk40xabah3x06vdzprvsjkyx99wlmapi5rynfz3";
-  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 4babd837fa315..37f66a12ba661 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 0000000000000..b552ab51e2e7c
--- /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
index a667a1e1d289f..d96bb075ab3c7 100644..100755
--- a/pkgs/development/libraries/haskell/funcmp/default.nix
+++ b/pkgs/development/libraries/haskell/funcmp/default.nix
@@ -1,14 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "funcmp";
   version = "1.5";
   sha256 = "f68807833f39178c99877321f0f335cfde12a5c4b38e6c51f33f8cab94b9e12e";
-  propagatedBuildInputs = [];
   meta = {
+    homepage = "http://savannah.nongnu.org/projects/funcmp/";
     description = "Functional MetaPost";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.simons];
+    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 0000000000000..523b9d233cac7
--- /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 5f494d19816a7..929b717f552bd 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/ghc-core/default.nix b/pkgs/development/libraries/haskell/ghc-core/default.nix
index 27c18a5ad34e2..9995c56fd587d 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 bb4ba31741d0a..23af9bfa7fe44 100644
--- a/pkgs/development/libraries/haskell/ghc-events/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-events/default.nix
@@ -10,7 +10,11 @@ cabal.mkDerivation (self : {
   '';
   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 019086a67756d..43a8deaf91568 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 0000000000000..cd295e3476f0b
--- /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 5d2ad6beaf548..ae280fa54ea61 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 0000000000000..1fa7e662f0223
--- /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 945a560582738..0000000000000
--- 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 5e001569ba8f9..ce2cb87c096ae 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 fa59bd8c15ddd..d0a766940fe89 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 b5a1cfdbfcbe0..a2db60b8d0f85 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, xssSanitize}:
+{ 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.12";
-  sha256 = "1z5cbkgfvwc9h6jciw7ghlj9ra6xph5z4lmliwkdnf38wfparxja";
-  propagatedBuildInputs = [
-    HStringTemplate happstackServer happstackUtil HTTP SHA cgi datetime
-    filestore highlightingKate safe
-    mtl network pandoc parsec recaptcha utf8String xhtml zlib ConfigFile
-    url cautiousFile feed xssSanitize
+  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 = {
+    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 3f1a0529a83d6..8f43af57b8dc1 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.12.0";
   sha256 = "0h7l1kp9y17xqyz16kv0dvwgblph9r70wimyl8aq9gi1r4is5lmq";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools gnome.libglade gnome.gtk glibc];
-  propagatedBuildInputs = [cairo glib gtk mtl pango];
+  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 78fc7d37d0efd..9d7750e24de87 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.12.0";
   sha256 = "1sqkj6adg87ccdnl9yy1p8yrv5xnfcrlaflj52nrh6anwlqy9z19";
-  extraBuildInputs = [pkgconfig glib glibc gtk2hsBuildtools];
+  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 7f8b040d971bd..9e1ab17a940aa 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 b9c4400bee402..0b9cd20eb0ad5 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.12.0";
   sha256 = "1rqy0390rahdrlb1ba1hjrygwin8ynxzif5flcici22bg5ixsgs2";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools gtk glibc];
-  propagatedBuildInputs = [cairo glib mtl pango];
+  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 1b7a092cec676..9b0fe07653c43 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.12.0";
   sha256 = "1czlmyr9zhzc0h1j0z3chv06ma77cibq2yc6h1slfphb1lkv66a8";
-  extraBuildInputs = [alex happy];
+  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/gtksourceview2/default.nix b/pkgs/development/libraries/haskell/gtksourceview2/default.nix
index f3ae246124e0a..6f69696d1f437 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.12.2";
   sha256 = "0l9y48kmzqzps6k54fgf0dkmmv0ppxx8amggfdswwk86zsf8j81r";
-  extraBuildInputs = [pkgconfig gtksourceview gtkC glibc gtk2hsBuildtools];
-  propagatedBuildInputs = [glib gtk];
+  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/hackage-db/default.nix b/pkgs/development/libraries/haskell/hackage-db/default.nix
new file mode 100644
index 0000000000000..4cfc1527f9214
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hackage-db/default.nix
@@ -0,0 +1,18 @@
+{ cabal, tar }:
+
+cabal.mkDerivation (self: {
+  pname = "hackage-db";
+  version = "1.0";
+  sha256 = "0y769ssr9jlyzcdr0l8wh5s3ivc3zbp9mf7xy7vnq6mr9hjh7lcw";
+  buildDepends = [ tar ];
+  meta = {
+    homepage = "http://github.com/peti/hackage-db";
+    description = "provide access to the Hackage database via Data.Map";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 8c544ccc75e0c..1f42ba532fbc9 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -1,17 +1,23 @@
-{cabal, binary, blazeHtml, hamlet, hopenssl, mtl, network, pandoc, regexBase
-, regexPCRE, snapCore, snapServer, strictConcurrency}:
+{ cabal, binary, blazeHtml, hamlet, hopenssl, mtl, pandoc, parsec
+, regexBase, regexPcre, snapCore, snapServer, tagsoup, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "3.2.0.3";
-  sha256 = "0biy9p662anhhlmwa502iy8cck597q0vlwj57l6cj8kpyxj4g0lz";
-  propagatedBuildInputs =
-    [ binary blazeHtml hamlet hopenssl mtl network pandoc regexBase
-     regexPCRE snapCore snapServer strictConcurrency
-    ];
+  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/0.10.0.nix b/pkgs/development/libraries/haskell/hamlet/0.10.0.nix
new file mode 100644
index 0000000000000..280e49ea43545
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hamlet/0.10.0.nix
@@ -0,0 +1,22 @@
+{ cabal, blazeBuilder, blazeHtml, failure, parsec, shakespeare
+, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hamlet";
+  version = "0.10.0";
+  sha256 = "0xqlc03g0qnpnrw957108rpjbs88p9wwvcgmz7vc1f0k88lc0h6n";
+  buildDepends = [
+    blazeBuilder blazeHtml failure parsec shakespeare text
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "Haml-like template files that are compile-time checked";
+    license = self.stdenv.lib.licenses.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/0.8.2.1.nix b/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix
new file mode 100644
index 0000000000000..0bf489ae98308
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, blazeHtml, failure, parsec, text }:
+
+cabal.mkDerivation (self: {
+  pname = "hamlet";
+  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 = self.stdenv.lib.licenses.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
deleted file mode 100644
index 6eb100c36f373..0000000000000
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, blazeBuilder, blazeHtml, failure, parsec, text}:
-
-cabal.mkDerivation (self : {
-  pname = "hamlet";
-  version = "0.8.2.1";
-  sha256 = "0798ic6qap4npw2rx42xcgmi1fcbwqvyic5x6vyyf6abvxv16925";
-  propagatedBuildInputs =
-    [blazeBuilder blazeHtml failure parsec text];
-  meta = {
-    description = "Haml-like template files that are compile-time checked";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-data.nix b/pkgs/development/libraries/haskell/happstack/happstack-data.nix
index 7ba7f354c6cef..d1603e0441a56 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, syb, sybWithClass, sybWithClassInstancesText, HaXml,
- happstackUtil, binary, text}:
+{ cabal, binary, mtl, syb, sybWithClass, sybWithClassInstancesText
+, text, time
+}:
 
-cabal.mkDerivation (self : {
-    pname = "happstack-data";
-    version = "0.5.0.3";
-    sha256 = "0zjsb9n1iawg2jv6i5q52awifly7yi6w0ilndivwp168qvi25awn";
-    propagatedBuildInputs = [
-        mtl syb 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 377e725dd59ff..4d8e874a8bf5b 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.4";
-    sha256 = "1iyjrlg5x6rlx8bfhn62a0ckjap0zv22hb6yazqph53jx6vn9b7q";
-    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 4bbe269fc729e..de4c1b9990c6c 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.3";
-    sha256 = "1ipr09d0s1d0dffc1g3js8infhybw9rimabrl96a2vw7app3ys44";
-    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
index 5da274d41f6f4..5149da865c704 100644
--- a/pkgs/development/libraries/haskell/hashable/default.nix
+++ b/pkgs/development/libraries/haskell/hashable/default.nix
@@ -1,14 +1,18 @@
-{cabal, text}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hashable";
   version = "1.1.2.1";
   sha256 = "1kmx3jr9cmkbapd7gywx7zvyd22nyz2mgs8lnzspp5hi7crx3wcx";
-  propagatedBuildInputs = [text];
+  buildDepends = [ text ];
   meta = {
+    homepage = "http://github.com/tibbe/hashable";
     description = "A class for types that can be converted to a hash value";
-    license = "BSD3";
-    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/hashed-storage/default.nix b/pkgs/development/libraries/haskell/hashed-storage/default.nix
index 94b38fe0fb1ca..dc7378ce047ed 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.5";
-  sha256 = "03wx21kgnvkny8b6fz86wg85pr2sxbm15ndznnpqjg5gf126n842";
-  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 d5658adf3c149..acf6a6c0d4fa2 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 f3a87459acef4..12e1448c04168 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.3.2";
-  sha256 = "0ragimzrilsk5r8n0fbq3lyjww28bmc1r1vgjf9pb4kpfpbz0cq8";
-  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 465c2a39ac1bd..90c4a599bc4ce 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/2011.2.0.1.nix b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
index 33bc493b3cc32..da70d32861d0f 100644
--- a/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
@@ -3,25 +3,29 @@
  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";
-  src = fetchurl {
-    url = "http://lambda.haskell.org/hp-tmp/2011.2.0.0/cabal/${self.pname}-2011.2.0.0.tar.gz";
-    sha256 = "01ppv8jdyvbngml9vgvrvnani6fj1nbk8mqmrkd8c508l7q9g6vb";
-  };
-  cabalFile = fetchurl {
-    url = http://code.galois.com/darcs/haskell-platform/haskell-platform.cabal;
-    sha256 = "158a1g4ak9mm2q5ri4zdpmbvjgfkz7svxnkxlz8117zpnbs12i3d";
-  };
+  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
   ];
-  preConfigure = ''
-    cp ${self.cabalFile} ${self.pname}.cabal
+  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 = {
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 0000000000000..47fd3a5c71b11
--- /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 0000000000000..fa09cb039dab2
--- /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 0000000000000..649bf29f58f7f
--- /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 0000000000000..42b69258397e0
--- /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 c3c433b92a437..0000000000000
--- 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.6";
-  sha256 = "1bdbjwhzms962ncwiszp82a8m6jkgz6d9cns5585kipy9n224d3h";
-  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 bc4455cadf3c1..fd16c1151f20c 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.5";
+  sha256 = "0403j2ks2as61rfl049v4h43xpgx06bm739y80vada6jc85rfinr";
+  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
index c70bdc252fc63..0bec73765444c 100644
--- a/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix
+++ b/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix
@@ -1,12 +1,17 @@
-{cabal, happy}:
+{ cabal, happy }:
 
-cabal.mkDerivation (self : {
+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
+  version = "1.0.1.3";
   sha256 = "a7872900acd2293775a6bdc6dc8f70438ccd80e62d2d1e2394ddff15b1883e89";
-  extraBuildInputs = [happy];
+  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
index b58b0ad7f88d4..949efadea96af 100644
--- a/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix
+++ b/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix
@@ -1,13 +1,18 @@
-{cabal, happy, syb}:
+{ cabal, happy, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskell-src";
-  version = "1.0.1.4"; # Haskell Platform 2011.2.0.0
+  version = "1.0.1.4";
   sha256 = "02h33d7970641p9vi62sgcxb5v4yaz8xx9vf2yxyvxs3hglm7f0j";
-  extraBuildInputs = [happy];
-  propagatedBuildInputs = [syb];
+  buildDepends = [ syb ];
+  buildTools = [ happy ];
   meta = {
-    description = "Manipulating Haskell source code";
+    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/haxr-th/default.nix b/pkgs/development/libraries/haskell/haxr-th/default.nix
index 207da9831afc3..83917cf889194 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 0f25200516bb8..94070a34c1854 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 0000000000000..ef51afca0c719
--- /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 cce66f3ec109c..ecaf46c0b77cf 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.9";
-  sha256 = "0mk8m01mqw6vnjldr5idc6611475j4m292cm18kn3wa83000mbgk";
-  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 b37d7739148e0..ac6e81e702e02 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 0000000000000..f9b823eeb8b20
--- /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 0000000000000..f20c2daf5410a
--- /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 0000000000000..569bd7c5291f3
--- /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 0000000000000..fa9d5ddab34da
--- /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 0000000000000..046ca56b33913
--- /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 5a0ff3e09caa5..bd149b5aa9215 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
index 7251fe4303daa..fec3f5dccf490 100644
--- a/pkgs/development/libraries/haskell/hopenssl/default.nix
+++ b/pkgs/development/libraries/haskell/hopenssl/default.nix
@@ -1,14 +1,19 @@
-{cabal, mtl, openssl}:
+{ cabal, mtl, openssl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hopenssl";
   version = "1.6.1";
-  sha256 = "12lmhpg7m2amqld95lpv6d2j3rfzgdbmz8jsgh2hjb5hx72l5fkm";
-  propagatedBuildInputs = [mtl];
-  extraBuildInputs = [openssl];
+  sha256 = "75ba42c5e9b02c09057c5aa25f577bdfe5214533fbd2921ac555897ade85958a";
+  buildDepends = [ mtl ];
+  extraLibraries = [ openssl ];
   meta = {
+    homepage = "http://gitorious.org/hopenssl";
     description = "FFI bindings to OpenSSL's EVP digest interface";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.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
index 543776e084c8d..69653ca2699ff 100644
--- a/pkgs/development/libraries/haskell/hostname/default.nix
+++ b/pkgs/development/libraries/haskell/hostname/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+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 = "BSD3";
-    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/hp2any-core/default.nix b/pkgs/development/libraries/haskell/hp2any-core/default.nix
index b7e7d1da40dcf..8bc4620ac26f0 100644
--- a/pkgs/development/libraries/haskell/hp2any-core/default.nix
+++ b/pkgs/development/libraries/haskell/hp2any-core/default.nix
@@ -1,14 +1,18 @@
-{cabal, bytestringTrie, network}:
+{ cabal, bytestringTrie, network, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hp2any-core";
   version = "0.10.1";
   sha256 = "1qblsvlj4x22ml3k5mlr28r5xk9rmi7lpipd369dbvdzm0rflf03";
-  propagatedBuildInputs = [bytestringTrie network];
+  buildDepends = [ bytestringTrie network time ];
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Hp2any";
     description = "Heap profiling helper library";
-    license = "BSD3";
-    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/hp2any-graph/default.nix b/pkgs/development/libraries/haskell/hp2any-graph/default.nix
index b0e3d3ddfcde6..4dd915db7d372 100644
--- a/pkgs/development/libraries/haskell/hp2any-graph/default.nix
+++ b/pkgs/development/libraries/haskell/hp2any-graph/default.nix
@@ -1,14 +1,21 @@
-{cabal, GLUT, OpenGL, hp2anyCore, network, parseargs}:
+{ cabal, GLUT, glut, hp2anyCore, network, OpenGL, parseargs }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hp2any-graph";
   version = "0.5.3";
   sha256 = "1al20pxfgkgwynrx7vr0i57342s91lcm3cnd9qjx8b6vkqmzykkq";
-  propagatedBuildInputs = [GLUT OpenGL hp2anyCore network parseargs];
+  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 = "BSD3";
-    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/hs-bibutils/default.nix b/pkgs/development/libraries/haskell/hs-bibutils/default.nix
new file mode 100644
index 0000000000000..ebba81acf4f63
--- /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 30d1956268e4f..9992faf048ca2 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"; # Haskell Platform 2011.2.0.0
-  sha256 = "1c14rrw69a5yjni2mdgdm21fsssc3c1j6i4sa7hxl9vq3ggcsidn";
+  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 0000000000000..2a83df47f090a
--- /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 f9315e43c3e57..3ba0249c4df28 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 79e6ab2a75698..4ee2f0e75df3e 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 cab021d152419..c1ee264ea84a3 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 0000000000000..baa1906504129
--- /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
index fa671f934e82c..f420bad2959c2 100644
--- a/pkgs/development/libraries/haskell/html/1.0.1.2.nix
+++ b/pkgs/development/libraries/haskell/html/1.0.1.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "html";
-  version = "1.0.1.2"; # Haskell Platform 2009.0.0, 2010.1.0.0, 2010.2.0.0, 2011.2.0.0
+  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/http-date/default.nix b/pkgs/development/libraries/haskell/http-date/default.nix
new file mode 100644
index 0000000000000..e7dbaedb591d6
--- /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 0000000000000..b92d69ec80ba1
--- /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.7";
+  sha256 = "13x8p0dfaq2nkqh9ym7rbslnacvmdf5v1lpny2cia2im09hd1xbi";
+  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
index d8ee2cab1d489..4966803af3652 100644
--- a/pkgs/development/libraries/haskell/http-types/default.nix
+++ b/pkgs/development/libraries/haskell/http-types/default.nix
@@ -1,14 +1,20 @@
-{cabal, blazeBuilder, caseInsensitive, text}:
+{ cabal, blazeBuilder, caseInsensitive, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "http-types";
-  version = "0.6.5";
-  sha256 = "1z2y219170n6rrmmffkg8xa450xzl42zpwahv7m71bxlz4cvxjc1";
-  propagatedBuildInputs = [blazeBuilder caseInsensitive text];
+  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 = "BSD3";
-    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/httpd-shed/default.nix b/pkgs/development/libraries/haskell/httpd-shed/default.nix
index c0a8634d3613c..e56a95437dbe9 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 0000000000000..be3818cb7d855
--- /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 fd690e8b91b2e..a7fc6b7e6e11e 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 a1f63769cdece..872f2fb394f7f 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 1d644d88a41a1..0000000000000
--- 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 ce0d150c045b5..a318cf3c5ee1a 100644
--- a/pkgs/development/libraries/haskell/json/default.nix
+++ b/pkgs/development/libraries/haskell/json/default.nix
@@ -1,15 +1,17 @@
-# syb isn't listed by the HackageDB web interface, but is
-# a dependency for Text.JSON.Generic which is only exposed
-# if syb is available.
-{cabal, mtl, syb}:
+{ cabal, mtl, parsec, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "json";
   version = "0.4.4";
   sha256 = "102qmz55b2mgcca3q1c2pkcr6hz7kmpldad3f6blhmp1cz15f081";
-  propagatedBuildInputs = [mtl syb];
+  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
index 4b01a25dcc378..a400382128506 100644
--- a/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
+++ b/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
@@ -1,13 +1,23 @@
-{cabal, blazeBuilder, blazeBuilderEnumerator, enumerator, jsonTypes, text, transformers}:
+{ cabal, blazeBuilder, blazeBuilderEnumerator, enumerator
+, jsonTypes, text, transformers
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "json-enumerator";
   version = "0.0.1.1";
   sha256 = "0k94x9vwwaprqbc8gay5l0vg6hjmjpjp852yncncb8kr0r344z7l";
-  propagatedBuildInputs =
-    [blazeBuilder blazeBuilderEnumerator enumerator jsonTypes text transformers];
+  buildDepends = [
+    blazeBuilder blazeBuilderEnumerator enumerator jsonTypes text
+    transformers
+  ];
   meta = {
-    description = "Provides the ability to render JSON in a streaming manner using the enumerator package";
-    license = "BSD3";
+    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
index 69c21730c1f47..44be8624a41aa 100644
--- a/pkgs/development/libraries/haskell/jsonTypes/default.nix
+++ b/pkgs/development/libraries/haskell/jsonTypes/default.nix
@@ -1,12 +1,17 @@
-{cabal, text}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "json-types";
   version = "0.1";
   sha256 = "088if9qv0didjyb6y1583viihjgc4nwr61qfjqdg9rzc2ya6vqdn";
-  propagatedBuildInputs = [text];
+  buildDepends = [ text ];
   meta = {
     description = "Basic types for representing JSON";
-    license = "MIT";
+    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 0000000000000..d0ecb017dba73
--- /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 0000000000000..68f8006d2a97b
--- /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 0000000000000..d6716abe55ff0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/largeword/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "largeword";
+  version = "1.0.1";
+  sha256 = "0kkkck220wap3ad2k6461ylhshiqbizv0qh35i2325fhqx892gyr";
+  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 c61b89cbcc567..5f2584cfef5ca 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 a5223233fd4b2..39e62a93d4500 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
index 386eb6eb85714..5f438fb406013 100644
--- a/pkgs/development/libraries/haskell/logfloat/default.nix
+++ b/pkgs/development/libraries/haskell/logfloat/default.nix
@@ -1,13 +1,17 @@
-{cabal, deepseq}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+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 = "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/ltk/default.nix b/pkgs/development/libraries/haskell/ltk/default.nix
index dd4aaf29a1a22..103c11361e91b 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 a1549a5a41772..0000000000000
--- 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
index e7e33e39a8660..3153bb6f60860 100644
--- a/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix
+++ b/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix
@@ -1,13 +1,18 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+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 = "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/mime-mail/default.nix b/pkgs/development/libraries/haskell/mime-mail/default.nix
new file mode 100644
index 0000000000000..7651d36aca8f3
--- /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 cce2e7d1b0925..817cae5229536 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
index 30a46369df635..b3d9208bd256e 100644
--- a/pkgs/development/libraries/haskell/monad-control/default.nix
+++ b/pkgs/development/libraries/haskell/monad-control/default.nix
@@ -1,14 +1,18 @@
-{cabal, baseUnicodeSymbols, transformers}:
+{ cabal, baseUnicodeSymbols, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "monad-control";
-  version = "0.2.0.1";
-  sha256 = "1pnckk9080g64ipvsg3n1vn4jr1083giacgy58if2ppw3dk7m97k";
-  propagatedBuildInputs = [baseUnicodeSymbols transformers];
+  version = "0.2.0.3";
+  sha256 = "0z7wjilrx6phqs2gxwv65dy1n3mc0j8hj3adshkwy6z8ggj283nh";
+  buildDepends = [ baseUnicodeSymbols transformers ];
   meta = {
+    homepage = "https://github.com/basvandijk/monad-control/";
     description = "Lift control operations, like exception catching, through monad transformers";
-    license = "BSD3";
-    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/monad-loops/default.nix b/pkgs/development/libraries/haskell/monad-loops/default.nix
index abac15618d581..669df22a95102 100644
--- a/pkgs/development/libraries/haskell/monad-loops/default.nix
+++ b/pkgs/development/libraries/haskell/monad-loops/default.nix
@@ -1,13 +1,18 @@
-{cabal}:
+{ cabal, stm }:
 
-cabal.mkDerivation (self : {
+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 = "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/monad-par/default.nix b/pkgs/development/libraries/haskell/monad-par/default.nix
new file mode 100644
index 0000000000000..01d6a40a43327
--- /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
index 25be7fb1a1ae2..670b6aaf79b69 100644
--- a/pkgs/development/libraries/haskell/monad-peel/default.nix
+++ b/pkgs/development/libraries/haskell/monad-peel/default.nix
@@ -1,13 +1,18 @@
-{cabal, transformers}:
+{ cabal, extensibleExceptions, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "monad-peel";
   version = "0.1";
   sha256 = "0q56hdjgbj7ykpjx5z8qlqqkngmgm5wzm9vwcd7v675k2ywcl3ys";
-  propagatedBuildInputs = [transformers];
+  buildDepends = [ extensibleExceptions transformers ];
   meta = {
+    homepage = "http://andersk.mit.edu/haskell/monad-peel/";
     description = "Lift control operations like exception catching through monad transformers";
-    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/monadlab/default.nix b/pkgs/development/libraries/haskell/monadlab/default.nix
deleted file mode 100644
index b391e3a749fd2..0000000000000
--- 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/default.nix b/pkgs/development/libraries/haskell/monads-fd/default.nix
deleted file mode 100644
index e2981063135c9..0000000000000
--- 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 fd841dd6d8871..31dd91a2d2f8b 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
index 6fcdb41e3f1bd..d609fc75cd780 100644
--- a/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix
+++ b/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+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
+  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
index 174df4bda495e..05e84b90dd078 100644
--- a/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix
+++ b/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mtl";
-  version = "1.1.1.1"; # version of mtl1 compatible with ghc7
+  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
index dc55078d0fc2a..dc2ddedc121e2 100644
--- a/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix
+++ b/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix
@@ -1,12 +1,17 @@
-{cabal, transformers}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mtl";
-  version = "2.0.1.0"; # Haskell Platform 2011.2.0.0
+  version = "2.0.1.0";
   sha256 = "1w6jpzyl08mringnd6gxwcl3y9q506r240vm1sv0aacml1hy8szk";
-  propagatedBuildInputs = [transformers];
+  buildDepends = [ transformers ];
   meta = {
-    description = "Monad transformer library";
+    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/mtlparse/default.nix b/pkgs/development/libraries/haskell/mtlparse/default.nix
new file mode 100644
index 0000000000000..349fea712eba5
--- /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 8338d07ef3fa8..13059f0183e37 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 0000000000000..3e994f878cc64
--- /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 0000000000000..6fb6acd58ed35
--- /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 f30caeb2fb146..0000000000000
--- a/pkgs/development/libraries/haskell/multirec/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "multirec";
-  version = "0.5";
-  sha256 = "1nrfbiy5g51cpaqqi1adrr32x74wjjvplyyrphvzf4rxhnhj3xpw";
-  noHaddock = true; # don't know why Haddock causes an error
-  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 5850e0ce94777..eb5df93d5bca6 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
index 30eb3dc16577c..468c18f9051ae 100644
--- a/pkgs/development/libraries/haskell/murmur-hash/default.nix
+++ b/pkgs/development/libraries/haskell/murmur-hash/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "murmur-hash";
-  version = "0.1.0.2";
-  sha256 = "14amqkcz2dbjyjrsjblsnka8qymllbzjx5x3za58kwlcifnsq9jr";
+  version = "0.1.0.4";
+  sha256 = "08nvdv3r5scqpdcivwp0d77dl4vpkgq58rzxv1xpb8r1krqy588d";
   meta = {
+    homepage = "http://github.com/nominolo/murmur-hash";
     description = "MurmurHash2 implementation for Haskell";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.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 c537625d6cfa0..ab762c2db63b7 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.3";
-  sha256 = "1sjjayfhfkfixcwdp21cfqld9pjikdsvlb956c1a7hcs82b68xp3";
-  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 c02474f8d98e0..6bea3c1084493 100644
--- a/pkgs/development/libraries/haskell/neither/default.nix
+++ b/pkgs/development/libraries/haskell/neither/default.nix
@@ -1,15 +1,18 @@
-{cabal, failure, monadPeel, transformers}:
+{ cabal, failure, monadPeel, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "neither";
   version = "0.2.0";
   sha256 = "0a2lyx3dvgzj4g6p69x1fma4rmwxrykji3hc4diqgc4hx02p16jh";
-  propagatedBuildInputs = [
-    failure monadPeel transformers
-  ];
+  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/2.2.1.4.nix b/pkgs/development/libraries/haskell/network/2.2.1.4.nix
index 09dd52264337c..7d99df9ee1c85 100644
--- a/pkgs/development/libraries/haskell/network/2.2.1.4.nix
+++ b/pkgs/development/libraries/haskell/network/2.2.1.4.nix
@@ -1,12 +1,17 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.2.1.4"; # Haskell Platform 2009.2.0.2
+  version = "2.2.1.4";
   sha256 = "16a842bee5db116f754b459ef261426b6705a6d79383c6d545c9df5f6329cd25";
-  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.2.1.7.nix b/pkgs/development/libraries/haskell/network/2.2.1.7.nix
index 8074f38825dff..ba33bc36643b5 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
index 17b8af706727b..9d2642a487d24 100644
--- a/pkgs/development/libraries/haskell/network/2.3.0.2.nix
+++ b/pkgs/development/libraries/haskell/network/2.3.0.2.nix
@@ -1,12 +1,18 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.3.0.2"; # Haskell Platform 2011.2.0.0
+  version = "2.3.0.2";
   sha256 = "1s4hm0ilsd67ircrl0h5b72kwrw1imb3cj5z52h99bv7qjdbag03";
-  propagatedBuildInputs = [parsec];
+  buildDepends = [ parsec ];
   meta = {
-    description = "Networking-related facilities";
+    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 0000000000000..bf9330eb256a1
--- /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/nixos-types/default.nix b/pkgs/development/libraries/haskell/nixos-types/default.nix
new file mode 100644
index 0000000000000..b63f8a9fbdc1c
--- /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.1";
+  sha256 = "0vnlhq2pjnslq1h9h3lyaxw604s3zdhs7k8hfr35m178rdm3a5az";
+  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 32d6a629389ae..934bb76dcd421 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 409a5b3e26891..c420d2677705a 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 0000000000000..b55e0c50b4b3e
--- /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
index dca729dc50c34..6d5720658ceb8 100644
--- a/pkgs/development/libraries/haskell/pandoc-types/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc-types/default.nix
@@ -1,11 +1,18 @@
-{cabal, syb}:
+{ cabal, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pandoc-types";
-  version = "1.8";
-  sha256 = "1ikr1dmmdag31hgcswrnhzqacv4kl7z6dc8za2cjdq0cpd2mla98";
-  propagatedBuildInputs = [syb];
+  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 e5865a1356af8..455baa9ee1d33 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -1,12 +1,28 @@
-{cabal, HTTP, citeprocHs, dlist, tagsoup, texmath, xhtml, zipArchive}:
+{ 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.8.1.1";
-  sha256 = "0g680j8x3v19wcb9k2dxgrdrjr48w0vhvlspfzgw0sgzrgfmaqsj";
-  propagatedBuildInputs =
-    [HTTP citeprocHs dlist tagsoup texmath xhtml zipArchive];
+  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
+  ];
+  configureFlags = "-fhighlighting -fthreaded";
   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 97700106b17ad..aff6bdb731571 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.12.0";
   sha256 = "1vp0hl4kpgcc3xphml1hmy04hqcn12y0ks03nn32g6g33ni9mwrb";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools pango glibc];
-  propagatedBuildInputs = [cairo glib mtl];
+  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
index 5cd693f504845..2977a60964cf9 100644
--- a/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix
+++ b/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parallel";
-  version = "1.1.0.1"; # Haskell Platform 2009.0.0
+  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 aca8f99616ee8..185e86b02e89d 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
index 8cd55d4bed1e3..37d537185cb60 100644
--- a/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix
+++ b/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix
@@ -1,12 +1,17 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parallel";
-  version = "3.1.0.1"; # Haskell Platform 2011.2.0.0
+  version = "3.1.0.1";
   sha256 = "0j03i5467iyz98fl4fnzlwrr93j2as733kbrxnlcgyh455kb89ns";
-  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/parseargs/default.nix b/pkgs/development/libraries/haskell/parseargs/default.nix
index 08a5ac652e575..4f50be5f70051 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.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
index 0d473fd122e75..155e4f09007c9 100644
--- a/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix
+++ b/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+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
+  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
index 5c5450333985d..e740ca91dba26 100644
--- a/pkgs/development/libraries/haskell/parsec/3.1.1.nix
+++ b/pkgs/development/libraries/haskell/parsec/3.1.1.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parsec";
-  version = "3.1.1"; # Haskell Platform 2011.2.0.0
+  version = "3.1.1";
   sha256 = "0x34gwn9k68h69c3hw7yaah6zpdwq8hvqss27f3n4n4cp7dh81fk";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    license = "BSD";
+    homepage = "http://www.cs.uu.nl/~daan/parsec.html";
     description = "Monadic parser combinators";
-    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/parsimony/default.nix b/pkgs/development/libraries/haskell/parsimony/default.nix
index 95962a4f475de..70709c978b973 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 0000000000000..6230ac2e8a363
--- /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
index d073f3d9290ca..8c776e68b1a6a 100644
--- a/pkgs/development/libraries/haskell/pathtype/default.nix
+++ b/pkgs/development/libraries/haskell/pathtype/default.nix
@@ -1,13 +1,18 @@
-{cabal, QuickCheck2}:
+{ cabal, QuickCheck }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pathtype";
   version = "0.5.2";
   sha256 = "0rbmq6kzz2l07q9a5k888scpn62hnw2hmzz4ysprhfgdnn5b2cvi";
-  propagatedBuildInputs = [QuickCheck2];
+  buildDepends = [ QuickCheck ];
   meta = {
-    license = "BSD";
-    description = "Type-safe file path manipulations";
-    maintainer = [self.stdenv.lib.maintainers.simons];
+    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 12e86377a5f71..3336b8f1c8a4f 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.4";
   sha256 = "1xiikiap1bvx9czw64664vifdq64scx0yhfclh5m8mkvn3x6yzxk";
-  propagatedBuildInputs = [pcre];
+  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
index 9b41f8e0396db..8f0e3263ed745 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -1,14 +1,18 @@
-{cabal, monadControl, persistent, text, webRoutesQuasi}:
+{ cabal, monadControl, persistent, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "0.5.1";
-  sha256 = "163j36pm6fl64m4h8kgj9h19snh026ia1166p3c6rjw86qi9fk0r";
-  propagatedBuildInputs = [monadControl persistent text webRoutesQuasi];
+  version = "0.6.1";
+  sha256 = "1ggfdq1d32i5ny57cvdf8yw5pwhbw2sc31mrj1whb0ggkcwaqh9l";
+  buildDepends = [ monadControl persistent text ];
   meta = {
+    homepage = "http://www.yesodweb.com/book/persistent";
     description = "Type-safe, non-relational, multi-backend persistence";
-    license = "BSD3";
-    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/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index cc093dddfa351..a3ce3564a5241 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,15 +1,24 @@
-{cabal, blazeHtml, enumerator, monadControl, parsec, pool, text, transformers}:
+{ cabal, blazeHtml, enumerator, monadControl, mtl, parsec
+, pathPieces, pool, sqlite, text, time, transformers
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "0.5.1";
-  sha256 = "1m0558vi99z15q0w62a9rkz25n8djswggbad9m0il359jb3mrzsd";
-  propagatedBuildInputs = [
-    blazeHtml enumerator monadControl parsec pool text transformers
+  version = "0.6.1";
+  sha256 = "1pb34n7rwj6jvk18c802kd99rrlhrav1hkx600rs6pp5zjic3mp7";
+  buildDepends = [
+    blazeHtml enumerator monadControl mtl parsec pathPieces pool text
+    time transformers
   ];
+  extraLibraries = [ sqlite ];
   meta = {
+    homepage = "http://www.yesodweb.com/book/persistent";
     description = "Type-safe, non-relational, multi-backend persistence";
-    license = "BSD3";
-    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 e05ba114938ef..b27dc9cc69529 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
index 87dcecb358896..51befe00ce475 100644
--- a/pkgs/development/libraries/haskell/pool/default.nix
+++ b/pkgs/development/libraries/haskell/pool/default.nix
@@ -1,14 +1,18 @@
-{cabal, monadControl, stm, transformers}:
+{ cabal, monadControl, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pool";
-  version = "0.1.0.2";
-  sha256 = "1w2z3p3iriw43g655rhd5b70r3cbzl4jf8bybyk5d04x6mcg3wfq";
-  propagatedBuildInputs = [monadControl stm transformers];
+  version = "0.1.1";
+  sha256 = "0h498pi7048m4cida10s28dp9f8c2ig3m4s9chwrfw3yiyai926l";
+  buildDepends = [ monadControl transformers ];
   meta = {
+    homepage = "http://www.yesodweb.com/book/persistent";
     description = "Thread-safe resource pools";
-    license = "BSD3";
-    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/ppm/default.nix b/pkgs/development/libraries/haskell/ppm/default.nix
index e3cfd77bbdb49..df204fa2482fc 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
index 10db565fa97ac..deb9e731ebda7 100644
--- a/pkgs/development/libraries/haskell/pretty-show/default.nix
+++ b/pkgs/development/libraries/haskell/pretty-show/default.nix
@@ -1,14 +1,20 @@
-{cabal, haskellLexer}:
+{ cabal, haskellLexer }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pretty-show";
   version = "1.1.1";
   sha256 = "0w6r68l1452vh9aqnlh4066y62h8ylh45gbsl5l558wjgchlna5k";
-  propagatedBuildInputs = [haskellLexer];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellLexer ];
   meta = {
+    homepage = "http://wiki.github.com/yav/pretty-show";
     description = "Tools for working with derived Show 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/primitive/default.nix b/pkgs/development/libraries/haskell/primitive/default.nix
index c39f718e70c91..6e7b485eece0d 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 34b78092b6628..2dfc009179965 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 0000000000000..a78471d8ebb35
--- /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
index d35a9c8579387..a094ee687e6a7 100644
--- a/pkgs/development/libraries/haskell/random-fu/default.nix
+++ b/pkgs/development/libraries/haskell/random-fu/default.nix
@@ -1,17 +1,23 @@
-{cabal, erf, mtl, mersenneRandomPure64, monadLoops, MonadPrompt,
- mwcRandom, randomShuffle, stateref, tagged, vector, syb}:
+{ cabal, erf, gamma, monadLoops, mtl, randomShuffle, randomSource
+, rvar, syb, transformers, vector
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "random-fu";
-  version = "0.1.3";
-  sha256 = "1l7czlll6y02m5xzdky95m78806gnj5y3nk3cxs5zqgxwskq73bk";
-  propagatedBuildInputs =
-    [erf mtl mersenneRandomPure64 monadLoops MonadPrompt
-     mwcRandom randomShuffle stateref tagged vector syb];
+  version = "0.2.1.0";
+  sha256 = "0jm91xjrlzj25f3giiv2ka5r8bn1ircj56d5lpqixi7c7r9dc804";
+  buildDepends = [
+    erf gamma monadLoops mtl randomShuffle randomSource rvar syb
+    transformers vector
+  ];
   meta = {
+    homepage = "https://github.com/mokus0/random-fu";
     description = "Random number generation";
-    license = "Public Domain";
-    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/random-shuffle/default.nix b/pkgs/development/libraries/haskell/random-shuffle/default.nix
index 5ff40e4efbd24..aade5d27965ac 100644
--- a/pkgs/development/libraries/haskell/random-shuffle/default.nix
+++ b/pkgs/development/libraries/haskell/random-shuffle/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "random-shuffle";
   version = "0.0.2";
   sha256 = "1csq0ffsqbbv6ymf707nzfb7c9bmykwk9bcgj21mxmh6khlqn9jp";
+  buildDepends = [ random ];
   meta = {
     description = "Random shuffle implementation";
-    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/random-source/default.nix b/pkgs/development/libraries/haskell/random-source/default.nix
new file mode 100755
index 0000000000000..7bf8a22595616
--- /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 0000000000000..e9101a114070f
--- /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 0000000000000..f89cad32f9e95
--- /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/1.0.1.0.nix b/pkgs/development/libraries/haskell/random/1.0.1.0.nix
new file mode 100644
index 0000000000000..275a1a097361f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random/1.0.1.0.nix
@@ -0,0 +1,17 @@
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "random";
+  version = "1.0.1.0";
+  sha256 = "1ghdmjzcn6n02x4gffa4g7wag4g7azrgxk3nsc5fqn9iny6rwp2i";
+  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 370f054dc1e31..0000000000000
--- 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
index 194d6227c5079..d7c20f571238f 100644
--- a/pkgs/development/libraries/haskell/ranges/default.nix
+++ b/pkgs/development/libraries/haskell/ranges/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ranges";
   version = "0.2.3";
   sha256 = "1jmybrwwvg8zkbxjrlrahfavlf2g2584ld15hzhch317683nvr1p";
   meta = {
     description = "Ranges and various functions on them";
-    license = "BSD3";
-    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/readline/default.nix b/pkgs/development/libraries/haskell/readline/default.nix
index 370764307cbf8..898b005c4da82 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 236016d0d77bc..60747bbda68bd 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
index e8d84ef292328..09e4906da011b 100644
--- a/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix
+++ b/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix
@@ -1,12 +1,17 @@
-{cabal, mtl}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-base";
-  version = "0.72.0.2"; # Haskell Platform 2009.0.0
+  version = "0.72.0.2";
   sha256 = "38a4901b942fea646a422d52c52ef14eec4d6561c258b3c54cd96a8a354141ee";
-  propagatedBuildInputs = [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.1.nix b/pkgs/development/libraries/haskell/regex-base/0.93.1.nix
index 9a1fe37d15562..8fbc2f9e84d03 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 1d65438ff948b..50f039a3d27a5 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, 2011.2.0.0
+  version = "0.93.2";
   sha256 = "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10";
-  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-compat/0.71.0.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
index 19e643d906ab8..ed88e247e5b77 100644
--- a/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
+++ b/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase, regexPosix}:
+{ cabal, regexBase, regexPosix }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-compat";
-  version = "0.71.0.1"; # Haskell Platform 2009.0.0
+  version = "0.71.0.1";
   sha256 = "904552f7d690686b2602f37494827d09b09fc0a8a2565522b61847bec8d1de8d";
-  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.92.nix b/pkgs/development/libraries/haskell/regex-compat/0.92.nix
index e65669a8107dd..3db0f5d406564 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 c1b4536cd114b..3a28e505a82d7 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, 2011.2.0.0
+  version = "0.93.1";
   sha256 = "1zlsx7a2iz5gmgrwzr6w5fz6s4ayab5bm71xlq28r3iph3vp80zf";
-  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.95.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.95.1.nix
new file mode 100644
index 0000000000000..138702e1d416f
--- /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-pcre-builtin/default.nix b/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix
new file mode 100644
index 0000000000000..f3c6e02caf5c0
--- /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
index 7b3629ae42f0c..68c3981851735 100644
--- a/pkgs/development/libraries/haskell/regex-pcre/default.nix
+++ b/pkgs/development/libraries/haskell/regex-pcre/default.nix
@@ -1,13 +1,19 @@
-{cabal, regexBase, pcre}:
+{ cabal, pcre, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-pcre";
   version = "0.94.2";
   sha256 = "0p4az8z4jlrcmmyz9bjf7n90hpg6n242vq4255w2dz5v29l822wn";
-  propagatedBuildInputs = [regexBase];
-  extraBuildInputs = [pcre];
+  buildDepends = [ regexBase ];
+  extraLibraries = [ pcre ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.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
index a27d267b27bf7..961aab9e2f771 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.72.0.3"; # Haskell Platform 2009.0.0
+  version = "0.72.0.3";
   sha256 = "327ab87f3d4f5315a9414331eb382b8b997de8836d577c3f7d232c574606feb1";
-  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.1.nix b/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix
index b202ce58c9015..223c9baedcdd5 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 3d7149607d295..9a570d4ca20da 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
index 142827f14cefa..e78c7fe2584da 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.94.4"; # Haskell Platform 2011.2.0.0
+  version = "0.94.4";
   sha256 = "1ykirysvz9ganm2k7fmrppklsgh0h35mjfsi9g1icv43pqpr6ldw";
-  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.95.1.nix b/pkgs/development/libraries/haskell/regex-posix/0.95.1.nix
new file mode 100644
index 0000000000000..ca6358baeedb1
--- /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-tdfa/default.nix b/pkgs/development/libraries/haskell/regex-tdfa/default.nix
index 40414248f9178..82fa24016bc53 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.8";
   sha256 = "1m75xh5bwmmgg5f757dc126kv47yfqqnz9fzj1hc80p6jpzs573x";
-  propagatedBuildInputs = [mtl parsec regexBase];
+  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 0000000000000..538b980b4383d
--- /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 bd366d3828e46..8dd7e04ec7988 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.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
index 2849558ef49ca..0ca84003fbf8f 100644
--- a/pkgs/development/libraries/haskell/repa-algorithms/default.nix
+++ b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
@@ -1,14 +1,18 @@
-{cabal, repa, vector}:
+{ cabal, repa, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-algorithms";
-  version = "2.0.0.3";
-  sha256 = "17h5xbn8gy0glryrv7pjdpxaw9adrk0bln683p0xxl6wrx90ngdv";
-  propagatedBuildInputs = [repa vector];
+  version = "2.1.0.1";
+  sha256 = "101j18s2vqaxls87jzrlhzy2hlhqvgs27cs89j187c1s8z5vvjjg";
+  buildDepends = [ repa vector ];
   meta = {
+    homepage = "http://repa.ouroborus.net";
     description = "Algorithms using the Repa array 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/repa-bytestring/default.nix b/pkgs/development/libraries/haskell/repa-bytestring/default.nix
index ae660ab43b25d..8dfe4159d53b8 100644
--- a/pkgs/development/libraries/haskell/repa-bytestring/default.nix
+++ b/pkgs/development/libraries/haskell/repa-bytestring/default.nix
@@ -1,14 +1,18 @@
-{cabal, repa, vector}:
+{ cabal, repa, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-bytestring";
-  version = "2.0.0.3";
-  sha256 = "05kc5d8j4m5g515syvz5jkbjvhhf3jxkak4w6pvyhx6nmzgywrk5";
-  propagatedBuildInputs = [repa vector];
+  version = "2.1.0.1";
+  sha256 = "01kvbd1kn0irldnfihhxa2jrz8fy1x9g7vz60ffgagj6yzp4bsnq";
+  buildDepends = [ repa vector ];
   meta = {
+    homepage = "http://repa.ouroborus.net";
     description = "Conversions between Repa Arrays and ByteStrings";
-    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-examples/default.nix b/pkgs/development/libraries/haskell/repa-examples/default.nix
index b5222dcc88773..04f75ae8c5706 100644
--- a/pkgs/development/libraries/haskell/repa-examples/default.nix
+++ b/pkgs/development/libraries/haskell/repa-examples/default.nix
@@ -1,15 +1,21 @@
-{cabal, repa, repaAlgorithms, repaIO, vector, llvm}:
+{ cabal, llvm, random, repa, repaAlgorithms, repaIo, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-examples";
-  version = "2.0.0.3";
-  sha256 = "0kj93rrr63x34dcljw6hvqjbz4mfzw00gmbddrqya0dhf9ifjnb9";
-  extraBuildInputs = [llvm];
-  propagatedBuildInputs = [repa repaAlgorithms repaIO vector];
+  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 = "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-io/default.nix b/pkgs/development/libraries/haskell/repa-io/default.nix
index afb0b99cfa220..000f412a3dad7 100644
--- a/pkgs/development/libraries/haskell/repa-io/default.nix
+++ b/pkgs/development/libraries/haskell/repa-io/default.nix
@@ -1,14 +1,18 @@
-{cabal, bmp, repa, repaBytestring}:
+{ cabal, bmp, repa, repaBytestring }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-io";
-  version = "2.0.0.3";
-  sha256 = "1p8h2855jv8nnvf9vq2ywrmm9qk9qdqy6yqr4dj9p90kfcqxgw2g";
-  propagatedBuildInputs = [bmp repa repaBytestring];
+  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 = "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/default.nix b/pkgs/development/libraries/haskell/repa/default.nix
index 10f40445df38d..b5667144103d6 100644
--- a/pkgs/development/libraries/haskell/repa/default.nix
+++ b/pkgs/development/libraries/haskell/repa/default.nix
@@ -1,14 +1,18 @@
-{cabal, QuickCheck, vector}:
+{ cabal, QuickCheck, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa";
-  version = "2.0.0.4";
-  sha256 = "11cjh4bdwb1kwb6ikig4i6vr3kqs840wdpl22biws16lg74mfxxn";
-  propagatedBuildInputs = [QuickCheck vector];
+  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 = "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/rvar/default.nix b/pkgs/development/libraries/haskell/rvar/default.nix
new file mode 100755
index 0000000000000..640faeb7d59cf
--- /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 79e83b30891ae..20044e6905b09 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.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
deleted file mode 100644
index a3c7832312e5f..0000000000000
--- a/pkgs/development/libraries/haskell/salvia-protocol/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, fclabels, parsec, safe, split, utf8String, bimap}:
-
-cabal.mkDerivation (self : {
-  pname = "salvia-protocol";
-  version = "1.0.1";
-  sha256 = "6b2312e52efaa81feec7461b1a3db77e1f2a8dfd829ae878b614c206a5e48928";
-  propagatedBuildInputs = [fclabels parsec safe split utf8String bimap];
-  meta = {
-    description = "Salvia webserver protocol suite";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/salvia/default.nix b/pkgs/development/libraries/haskell/salvia/default.nix
deleted file mode 100644
index 16f1afe8f28fb..0000000000000
--- a/pkgs/development/libraries/haskell/salvia/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{cabal, fclabels, MaybeTTransformers, monadsFd, pureMD5, safe,
- salviaProtocol, split, text, threadmanager, transformers, utf8String,
- network, stm, time}:
-
-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
-  ];
-  meta = {
-    description = "Modular web application framework";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/scion/default.nix b/pkgs/development/libraries/haskell/scion/default.nix
deleted file mode 100644
index 43fff2132e133..0000000000000
--- 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 0000000000000..71b9a6c6c478a
--- /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 12554817992a4..94244755b7311 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/shakespeare-css/default.nix b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
new file mode 100644
index 0000000000000..cb5f5ca39b504
--- /dev/null
+++ b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
@@ -0,0 +1,18 @@
+{ cabal, parsec, shakespeare, text }:
+
+cabal.mkDerivation (self: {
+  pname = "shakespeare-css";
+  version = "0.10.0";
+  sha256 = "12gdpxsh6x95m9vp0nrffri1bh8d6zhd7qqjrrkp49rvjf8fjwrk";
+  buildDepends = [ parsec shakespeare text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "Stick your haskell variables into css at compile time";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/shakespeare-js/default.nix b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
new file mode 100644
index 0000000000000..064e1828f9dfb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
@@ -0,0 +1,18 @@
+{ cabal, shakespeare, text }:
+
+cabal.mkDerivation (self: {
+  pname = "shakespeare-js";
+  version = "0.10.1";
+  sha256 = "0j9jzrnvarwkab9zynz8k60ilgj5kyqdm56lricpii27qlkqnmf3";
+  buildDepends = [ shakespeare text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "Stick your haskell variables into javascript/coffeescript at compile time";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
new file mode 100644
index 0000000000000..e99b6c4b7cc27
--- /dev/null
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, blazeHtml, failure, parsec, text }:
+
+cabal.mkDerivation (self: {
+  pname = "shakespeare";
+  version = "0.10.0";
+  sha256 = "14q0z2q7c27pp6hnwzn50zjb4rzhy7znmahnzn8b59274jkbbzjs";
+  buildDepends = [ blazeBuilder blazeHtml failure parsec text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "A toolkit for making compile-time interpolated templates";
+    license = self.stdenv.lib.licenses.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
index c3a455a547547..fd362b44b8852 100644
--- a/pkgs/development/libraries/haskell/simple-sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
@@ -1,14 +1,17 @@
-{cabal, network}:
+{ cabal, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "simple-sendfile";
   version = "0.1.2";
   sha256 = "08w5ria2x41j85z1126kddi918zdqrwmr4vwqczgzh9kdi49wv8j";
-  propagatedBuildInputs = [network];
+  buildDepends = [ network ];
   meta = {
     description = "Cross platform library for the sendfile system call";
-    license = "BSD3";
-    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/smallcheck/default.nix b/pkgs/development/libraries/haskell/smallcheck/default.nix
index 39ee91b09f376..a4106ea800275 100644
--- a/pkgs/development/libraries/haskell/smallcheck/default.nix
+++ b/pkgs/development/libraries/haskell/smallcheck/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "smallcheck";
   version = "0.4";
   sha256 = "0nq13jm3akrmgk6n2clisip16v0jf1xkm0hm678v63s87hxqb1ma";
   meta = {
     description = "Another lightweight testing library in 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/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
index c95d36f7d504f..4cc036ef08019 100644
--- a/pkgs/development/libraries/haskell/snap/core.nix
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -1,17 +1,27 @@
-{cabal, attoparsec, attoparsecEnumerator, MonadCatchIOTransformers, blazeBuilder
-, bytestringNums, caseInsensitive, dlist, mtl, unixCompat, vector, zlib}:
+{ cabal, attoparsec, attoparsecEnumerator, blazeBuilder
+, bytestringMmap, bytestringNums, caseInsensitive, deepseq, dlist
+, enumerator, MonadCatchIOTransformers, mtl, text, time
+, transformers, unixCompat, vector, zlib
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "snap-core";
-  version = "0.5.1.4";
-  sha256 = "0fvff7hjyfwnii057vpg8m75qaipsklk6v6cbvms4p6wp14zqaj1";
-  propagatedBuildInputs =
-    [ attoparsec attoparsecEnumerator MonadCatchIOTransformers blazeBuilder
-     bytestringNums caseInsensitive dlist mtl unixCompat vector zlib
-    ];
+  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 = "BSD3";
+    license = self.stdenv.lib.licenses.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
index 14417dd0e80e3..474719a90a9e6 100644
--- a/pkgs/development/libraries/haskell/snap/server.nix
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -1,19 +1,28 @@
-{cabal, attoparsec, attoparsecEnumerator, binary, blazeBuilder, blazeBuilderEnumerator
-, bytestringNums, directoryTree, enumerator, MonadCatchIOTransformers, mtl, murmurHash
-, network, PSQueue, snapCore, unixCompat, utf8String, vector, vectorAlgorithms, zlib}:
+{ 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 : {
+cabal.mkDerivation (self: {
   pname = "snap-server";
-  version = "0.5.1.4";
-  sha256 = "17b95db48as418whcvbxzyvql16z1c706n0s4jryyqr6kvgpsvzp";
-  propagatedBuildInputs =
-    [ attoparsec attoparsecEnumerator binary blazeBuilder blazeBuilderEnumerator
-     bytestringNums directoryTree enumerator MonadCatchIOTransformers mtl murmurHash
-     network PSQueue snapCore unixCompat utf8String vector vectorAlgorithms zlib
-    ];
+  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 = {
-    description = "Snap: A Haskell Web Framework (Server)";
-    license = "BSD3";
+    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 131fa06fd7b48..8463200e387a6 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.3";
-  sha256 = "1i43xa11d5jn30j9948bypi8dzdxr7nx4v9xhcgpmaggssv9bvcs";
+  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
index 88049490c334b..b14fd6ebadebf 100644
--- a/pkgs/development/libraries/haskell/stateref/default.nix
+++ b/pkgs/development/libraries/haskell/stateref/default.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl, stm }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stateref";
   version = "0.3";
   sha256 = "0hdpw6g255lj7jjvgqwhjdpzmka546vda5qjvry8gjj6nfm91lvx";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl stm ];
   meta = {
+    homepage = "http://code.haskell.org/~mokus/stateref/";
     description = "Abstraction for things that work like IORef";
-    license = "Public Domain";
-    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/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix
index 8dc70c410449a..18347fc374e0c 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.5";
-  sha256 = "0rzrx1wjil88ksqk5kmcxm4ypryiy9j1c4qa2s2bs71338hhzpxn";
-  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 4574b80ce2a5f..43e56473b650c 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
index 691eb63cdb1da..6184a324181f9 100644
--- a/pkgs/development/libraries/haskell/stm/2.1.1.2.nix
+++ b/pkgs/development/libraries/haskell/stm/2.1.1.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stm";
-  version = "2.1.1.2"; # Haskell Platform 2009.0.0 and 2010.1.0.0
+  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 a3c77c4d3711c..8615f10be80fc 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
index b9d7b51c52277..1174a9740e5b1 100644
--- a/pkgs/development/libraries/haskell/stm/2.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/stm/2.2.0.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stm";
-  version = "2.2.0.1"; # Haskell Platform 2011.2.0.0
+  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/storable-complex/default.nix b/pkgs/development/libraries/haskell/storable-complex/default.nix
index 334cada046d32..dc36d53f046a8 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 0000000000000..180f47939ccdb
--- /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 0000000000000..5e327ac78a5ac
--- /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 0000000000000..99239884b0a3a
--- /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 33734eb875382..083f3e06d5b71 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
index fb756ec30f0a0..007b17507bf5e 100644
--- a/pkgs/development/libraries/haskell/svgcairo/default.nix
+++ b/pkgs/development/libraries/haskell/svgcairo/default.nix
@@ -1,14 +1,21 @@
-{cabal, gtk2hsBuildtools, cairo, glib, mtl, pkgconfig, librsvg, glibc}:
+{ cabal, cairo, glib, glibc, gtk2hsBuildtools, librsvg, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "svgcairo";
   version = "0.12.0";
   sha256 = "1zialw59njmq0sfz9f0rx6v50d4bvld2ivmwljkp5bmxii3hcjl3";
-  extraBuildInputs = [pkgconfig librsvg glibc gtk2hsBuildtools];
-  propagatedBuildInputs = [cairo glib mtl];
+  buildDepends = [ cairo glib mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc ];
+  pkgconfigDepends = [ cairo librsvg ];
   meta = {
-    description = "Binding to the Cairo library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    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
index 613badbb5f32a..070279fadfde0 100644
--- a/pkgs/development/libraries/haskell/syb/0.2.2.nix
+++ b/pkgs/development/libraries/haskell/syb/0.2.2.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb";
   version = "0.2.2";
   sha256 = "0m29vnqkkmpf4m3gi42kcbr2gfyxgkcw85xsyrq0mgbxb0zg6ky9";
   meta = {
-    description = "generics system described in the Scrap Your Boilerplate papers";
+    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 0000000000000..01cc80c883dd5
--- /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
index 0fdf7cce0a698..ddf16ad41e553 100644
--- a/pkgs/development/libraries/haskell/syb/0.3.nix
+++ b/pkgs/development/libraries/haskell/syb/0.3.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb";
-  version = "0.3"; # Haskell Platform 2011.2.0.0
+  version = "0.3";
   sha256 = "1gnqw76zy7xvlabhbyk8hml88hpz2igf7b3mz2ic091f77qkkch7";
   meta = {
-    description = "generics system described in the Scrap Your Boilerplate papers";
+    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 93e503e7cdc1f..a98cf1e2da67a 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 f295e489402f0..2f3167ff62801 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 42e83c679761f..980c24b2d4591 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.1";
-  sha256 = "15i6df470c2qcf9vc05yg809c5imrj00mf72p5njapx88qnk2p67";
+  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 0000000000000..a649ca04fecbc
--- /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
index e68b628253f86..1f30245a320a3 100644
--- a/pkgs/development/libraries/haskell/tagged/default.nix
+++ b/pkgs/development/libraries/haskell/tagged/default.nix
@@ -1,14 +1,18 @@
-{cabal, dataDefault}:
+{ cabal, dataDefault, semigroups }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tagged";
-  version = "0.2";
-  sha256 = "0hwc0hhq5pzihx6danxvgs4k1z0nqcrwf3ji0w2i1gx3298cwrz5";
-  propagatedBuildInputs = [dataDefault];
+  version = "0.2.3.1";
+  sha256 = "0ldc9w35yzlrz78kakkqial32g2c7da9b5v334jh5wpgsn7lrm3n";
+  buildDepends = [ dataDefault semigroups ];
   meta = {
+    homepage = "http://github.com/ekmett/tagged";
     description = "Provides newtype wrappers for phantom types to avoid unsafely passing dummy arguments";
-    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/tagsoup/default.nix b/pkgs/development/libraries/haskell/tagsoup/default.nix
index a7c2e7e1f60a1..e31cb09fdf467 100644
--- a/pkgs/development/libraries/haskell/tagsoup/default.nix
+++ b/pkgs/development/libraries/haskell/tagsoup/default.nix
@@ -1,13 +1,20 @@
-{cabal}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tagsoup";
-  version = "0.12";
-  sha256 = "0jaqr6q8asn7gd336xsblcc55lzm8glzlhvs61mhzjvk4hg9pmg7";
+  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 = "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/terminfo/default.nix b/pkgs/development/libraries/haskell/terminfo/default.nix
index fb881fb2466e7..240b72d7a8f2c 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
index 491a73e7616ae..e196322190dee 100644
--- a/pkgs/development/libraries/haskell/test-framework-hunit/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework-hunit/default.nix
@@ -1,14 +1,18 @@
-{cabal, HUnit, testFramework}:
+{ cabal, extensibleExceptions, HUnit, testFramework }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework-hunit";
   version = "0.2.6";
   sha256 = "1ivgyh71wwvrrgnk3fp6hsfssvy39jikhjdzr7x68pv1ca7f247r";
-  propagatedBuildInputs = [HUnit testFramework];
+  buildDepends = [ extensibleExceptions HUnit testFramework ];
   meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
     description = "HUnit support for the test-framework package";
-    license = "BSD3";
-    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/test-framework-quickcheck/default.nix b/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
index 80e0b1a0f00ea..20d86feaa1b75 100644
--- a/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
@@ -1,14 +1,22 @@
-{cabal, QuickCheck1, testFramework, deepseq}:
+{ cabal, deepseq, extensibleExceptions, QuickCheck, random
+, testFramework
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework-quickcheck";
   version = "0.2.7";
   sha256 = "065nazli8vh9dz8xi71gwzlwy81anfd471jhz6hv3m893cc9vvx8";
-  propagatedBuildInputs = [QuickCheck1 testFramework deepseq];
+  buildDepends = [
+    deepseq extensibleExceptions QuickCheck random testFramework
+  ];
   meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
     description = "QuickCheck support for the test-framework package";
-    license = "BSD3";
-    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/test-framework-quickcheck2/default.nix b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
index c8d84f710505a..e3787bbd05754 100644
--- a/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
@@ -1,14 +1,20 @@
-{cabal, QuickCheck2, testFramework}:
+{ cabal, extensibleExceptions, QuickCheck, random, testFramework }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework-quickcheck2";
   version = "0.2.10";
   sha256 = "12c37m74idjydxshgms9ib9ii2rpvy4647kra2ards1w2jmnr6w3";
-  propagatedBuildInputs = [QuickCheck2 testFramework];
+  buildDepends = [
+    extensibleExceptions QuickCheck random testFramework
+  ];
   meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
     description = "QuickCheck2 support for the test-framework package";
-    license = "BSD3";
-    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/test-framework-th/default.nix b/pkgs/development/libraries/haskell/test-framework-th/default.nix
new file mode 100644
index 0000000000000..0c16a9e9e24f6
--- /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
index 34d2db546b639..21ea2ebe95496 100644
--- a/pkgs/development/libraries/haskell/test-framework/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework/default.nix
@@ -1,14 +1,25 @@
-{cabal, ansiTerminal, ansiWLPprint, hostname, regexPosix, xml}:
+{ cabal, ansiTerminal, ansiWlPprint, extensibleExceptions, hostname
+, random, regexPosix, time, xml
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework";
-  version = "0.4.0";
-  sha256 = "0zxrdndycr63kzfibk0c2n4j39x6b8s4332sgqm54g1vdl3fxzbl";
-  propagatedBuildInputs = [ansiTerminal ansiWLPprint hostname regexPosix xml];
+  version = "0.4.1.1";
+  sha256 = "1ig4v2y8xba2rg6pc8yjf0j20cwa3czknnfqn1sgpqhmip2961pc";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    ansiTerminal ansiWlPprint extensibleExceptions hostname random
+    regexPosix time xml
+  ];
   meta = {
-    description = "Framework for running and organising tests";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    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 626155f6a3cf7..35b619166a4f5 100644
--- a/pkgs/development/libraries/haskell/testpack/default.nix
+++ b/pkgs/development/libraries/haskell/testpack/default.nix
@@ -1,12 +1,18 @@
-{cabal, HUnit, QuickCheck2, mtl}:
+{ cabal, HUnit, mtl, QuickCheck, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "testpack";
-  version = "2.1.0";
-  sha256 = "8128f3a409855fca1d431391b2cbf6a9f4dec32dd6f26825960b936fe578c476";
-  propagatedBuildInputs = [HUnit QuickCheck2 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 0000000000000..a59120015dd0f
--- /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 0000000000000..f82e98703c786
--- /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 a329076c3527f..0000000000000
--- a/pkgs/development/libraries/haskell/texmath/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, parsec, syb, xml}:
-
-cabal.mkDerivation (self : {
-  pname = "texmath";
-  version = "0.5.0.1";
-  sha256 = "0kw23b1df7456d2h48g2p7k8nvfv80a8a70xgkq4pn7v50vqipdy";
-  propagatedBuildInputs = [parsec syb 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
index 8a0328ec40a8e..b997c60868b2f 100644
--- a/pkgs/development/libraries/haskell/text/0.11.0.5.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.0.5.nix
@@ -1,14 +1,18 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "text";
-  version = "0.11.0.5"; # Haskell Platform 2011.2.0.0
+  version = "0.11.0.5";
   sha256 = "1a5y2i7qrkyyvm112q44rhd7jbqxvfxssz2g5ngbx11yypl3hcdv";
-  propagatedBuildInputs = [deepseq];
+  buildDepends = [ deepseq ];
   meta = {
-    description = "An efficient package Unicode text type";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    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
index 2775eae076038..5c593235dee0a 100644
--- a/pkgs/development/libraries/haskell/text/0.11.0.6.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.0.6.nix
@@ -1,14 +1,18 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "text";
-  version = "0.11.0.6"; # Haskell Platform 2011.2.0.1
+  version = "0.11.0.6";
   sha256 = "103l1c8jfwpddsqzwj9jqh89vay8ax1znxqgjqprv2fvr7s0zvkp";
-  propagatedBuildInputs = [deepseq];
+  buildDepends = [ deepseq ];
   meta = {
-    description = "An efficient package Unicode text type";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    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 0000000000000..db438a54bc24c
--- /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/th-lift/default.nix b/pkgs/development/libraries/haskell/th-lift/default.nix
new file mode 100644
index 0000000000000..2a5fe84c20ace
--- /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 431f8e587ddf9..d7f5a70bc3436 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
index 430e836068d78..7ced3956a8a36 100644
--- a/pkgs/development/libraries/haskell/time/1.1.2.4.nix
+++ b/pkgs/development/libraries/haskell/time/1.1.2.4.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "time";
-  version = "1.1.2.4"; # Haskell Platform 2009.0.0
+  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 2d3703b235100..c8a7fe1298552 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 fbdf4aa100f3b..23cec7ab90fdd 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 0000000000000..78fed9b5754cf
--- /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 0000000000000..7a37345979845
--- /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/tls-extra/default.nix b/pkgs/development/libraries/haskell/tls-extra/default.nix
new file mode 100644
index 0000000000000..7b7517b0d42d7
--- /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 0000000000000..8da9fbbf4b558
--- /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
index c3fec93abeb62..f38605c17ad3a 100644
--- a/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix
+++ b/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "transformers";
-  version = "0.2.2.0"; # Haskell Platform 2011.2.0.0
+  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/tuple/default.nix b/pkgs/development/libraries/haskell/tuple/default.nix
index dd7fd36089da8..fa06558fc0dd3 100644
--- a/pkgs/development/libraries/haskell/tuple/default.nix
+++ b/pkgs/development/libraries/haskell/tuple/default.nix
@@ -1,14 +1,17 @@
-{cabal, OneTuple}:
+{ cabal, OneTuple }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tuple";
   version = "0.2.0.1";
   sha256 = "1c4vf798rjwshnk04avyjp4rjzj8i9qx4yksv00m3rjy6psr57xg";
-  propagatedBuildInputs = [OneTuple];
+  buildDepends = [ OneTuple ];
   meta = {
     description = "Various functions on tuples";
-    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/uniplate/default.nix b/pkgs/development/libraries/haskell/uniplate/default.nix
index f44755983a7c4..c9320595e55b3 100644
--- a/pkgs/development/libraries/haskell/uniplate/default.nix
+++ b/pkgs/development/libraries/haskell/uniplate/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, syb}:
+{ cabal, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uniplate";
-  version = "1.6";
-  sha256 = "13nlyzsnj6hshgl839ww1kp49r87kpdcdyn7hxahg8k2qkj5zzxr";
-  propagatedBuildInputs = [mtl syb];
+  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 5ab87f341282c..d717bd27871af 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 aee31438d10ab..34cbd4072f6e6 100644
--- a/pkgs/development/libraries/haskell/unix-compat/default.nix
+++ b/pkgs/development/libraries/haskell/unix-compat/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "unix-compat";
-  version = "0.2.1.3";
-  sha256 = "12645n23b7b86w3fllg3vl39pvbxazqx9rflgnhc6qrlfklkyxxd";
+  version = "0.2.2.1";
+  sha256 = "009dg6mxjmdkcmr2d1qq9r3f4qfx4d362lyxj9vvgwrzcdnsgzqi";
   meta = {
+    homepage = "http://github.com/jystic/unix-compat";
     description = "Portable POSIX-compatibility layer";
-    license = "BSD";
+    license = self.stdenv.lib.licenses.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
index 62cc44ac89f3a..b007d137d6059 100644
--- a/pkgs/development/libraries/haskell/unordered-containers/default.nix
+++ b/pkgs/development/libraries/haskell/unordered-containers/default.nix
@@ -1,14 +1,17 @@
-{cabal, deepseq, hashable}:
+{ cabal, deepseq, hashable }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "unordered-containers";
-  version = "0.1.4.0";
-  sha256 = "1v5m92rn2k7knhca91ldzi082hy4z0hp4nm66ihns4vxgslywgb9";
-  propagatedBuildInputs = [deepseq hashable];
+  version = "0.1.4.2";
+  sha256 = "0nfw82zng9y5dinjn78k05i4c4bjc1y6yb2dwqwczb85hbrqiha6";
+  buildDepends = [ deepseq hashable ];
   meta = {
     description = "Efficient hashing-based container types";
-    license = "BSD3";
-    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/url/default.nix b/pkgs/development/libraries/haskell/url/default.nix
index f12cc629b7f7d..466d53090191b 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 0000000000000..59ebfe3b5e6fc
--- /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 bc1a4c157141f..0928ae0347b13 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";
+  version = "0.3.7";
+  sha256 = "1s59xsw1i311rpxb7arnd280pjqab5mrlfjmxbabknka8wqlnnvq";
   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 74671673030fd..6c67d98c3bb1d 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 8f881fa0721e5..de2d1e1f020ae 100644
--- a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
+++ b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
@@ -1,12 +1,18 @@
-{cabal, ListLike}:
+{ cabal, ListLike, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uu-parsinglib";
-  version = "2.7.1";
-  sha256 = "10zpgpg93lp1jkrd77wkcdhf1a78hdzbvshq87q846nbv74f59cd";
-  propagatedBuildInputs = [ListLike];
+  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 98399dd11ccb8..38e9d27f1f080 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.13";
-  sha256 = "115fxvx5lqyjdwws6gkcixk1gi2p5gkyqinww7gbp54p4n0yy7n0";
+  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 249951659aaad..ccabd8cc7fa22 100644
--- a/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
+++ b/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
@@ -1,13 +1,21 @@
-{cabal, vacuum, cairo, svgcairo, gtk, parallel, strictConcurrency}:
+{ cabal, cairo, deepseq, gtk, strictConcurrency, svgcairo, vacuum
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vacuum-cairo";
   version = "0.5";
   sha256 = "0jp3xn1h28igcg3xb97ifawx11i7adnyi0ff264w0fril9b8ylwc";
-  propagatedBuildInputs =
-    [vacuum cairo svgcairo gtk parallel strictConcurrency];
+  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 657ede90b0f73..960e90d645d87 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 0000000000000..c8b1175542024
--- /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 0000000000000..d58da61decc6f
--- /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 8759d960342db..0000000000000
--- 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.4";
-  sha256 = "04ig2bx3gm42mwhcz5n8kp9sy33d1hrwm940kfxny74fc06422h8";
-  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 a798cb7d589d9..0052b9b481591 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 38159786245ed..8762d148e2816 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 0000000000000..55c7311844626
--- /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 0000000000000..8ef4c51d03d1d
--- /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 c0d536482211a..0000000000000
--- 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.6.0.4";
-  sha256 = "0kabssw3v7nglvsr687ppmdnnmii1q2g5zg8rxwi2hcmvnjx7567";
-  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 0000000000000..3fa0595bc13c3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -0,0 +1,24 @@
+{ cabal, base64Bytestring, blazeBuilder, blazeHtml, cryptohash
+, fileEmbed, httpDate, httpTypes, text, time, transformers
+, unixCompat, wai
+}:
+
+cabal.mkDerivation (self: {
+  pname = "wai-app-static";
+  version = "0.3.3";
+  sha256 = "04b4cw93agw136xjh9rssiw96vz3kxji7zh209brwfnwh13bra17";
+  buildDepends = [
+    base64Bytestring blazeBuilder blazeHtml cryptohash fileEmbed
+    httpDate httpTypes text time transformers unixCompat wai
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/wai";
+    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
index 9b2ea52ed43a8..9fce21f06db31 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -1,18 +1,24 @@
-{cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive, enumerator,
- httpTypes, network, text, transformers, wai, zlibBindings}:
+{ cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive
+, enumerator, httpTypes, network, text, time, transformers, wai
+, zlibBindings
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "0.4.0.1";
-  sha256 = "0xj7dkwqa9axgm6cizf2kd97fakbmq5580mian888i5f21jn1n2z";
-  propagatedBuildInputs = [
+  version = "0.4.2";
+  sha256 = "1k2dsjramy14rfd1j8k7zgirdfl2zybd0z0pxkvxdrgr9s2pk51y";
+  buildDepends = [
     blazeBuilder blazeBuilderEnumerator caseInsensitive enumerator
-    httpTypes network text transformers wai zlibBindings
+    httpTypes network text time transformers wai zlibBindings
   ];
   meta = {
+    homepage = "http://github.com/yesodweb/wai";
     description = "Provides some basic WAI handlers and middleware";
-    license = "BSD3";
-    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/wai/default.nix b/pkgs/development/libraries/haskell/wai/default.nix
index 48eb38e3baef6..e7d7d48d738a6 100644
--- a/pkgs/development/libraries/haskell/wai/default.nix
+++ b/pkgs/development/libraries/haskell/wai/default.nix
@@ -1,14 +1,22 @@
-{cabal, blazeBuilder, enumerator, network, httpTypes, text, transformers}:
+{ cabal, blazeBuilder, enumerator, httpTypes, network, text
+, transformers
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wai";
-  version = "0.4.0";
-  sha256 = "1xp03g3q967rpgas896a5j3y7hjiir4ny0qlwmaj5ki61zivjsln";
-  propagatedBuildInputs = [blazeBuilder enumerator network httpTypes text transformers];
+  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 = "BSD3";
-    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/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
index 38e94d0277fa2..843a931ef355a 100644
--- a/pkgs/development/libraries/haskell/warp/default.nix
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -1,18 +1,24 @@
-{cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive, enumerator,
- httpTypes, network, simpleSendfile, transformers, unixCompat, wai}:
+{ cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive
+, enumerator, httpTypes, network, simpleSendfile, transformers
+, unixCompat, wai
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "warp";
-  version = "0.4.1.1";
-  sha256 = "0qck4mpg4p6v2yx2r6qchqd3lvsn8n5ys6xsm11hhznc2r50aayh";
-  propagatedBuildInputs = [
+  version = "0.4.4";
+  sha256 = "1mlwny6pfgngpqb4lh6v373m98agf275mbl2p6mxxfh1581fz863";
+  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 = "BSD3";
-    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-quasi/default.nix b/pkgs/development/libraries/haskell/web-routes-quasi/default.nix
index 434a19cfcfea9..1660809df1aa2 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, text}:
+{ cabal, pathPieces, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "web-routes-quasi";
-  version = "0.7.0.1";
-  sha256 = "1khrf5kbw285hddyyzcz2mx4qpz46mdmlm31jszag2ay64gw35gw";
-  propagatedBuildInputs = [text];
+  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 = "BSD3";
-    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 cbd476ff7d008..aa5321c7f5f3f 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 0000000000000..5833af8efaad9
--- /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 49f2070b04d86..ec4511ee481e7 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.12.1.6";
   sha256 = "1p0gn46gk1abin095va22n9bycxhm2cq1vyvwiypcdq7jq541lhk";
-  propagatedBuildInputs = [stm wxcore];
+  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 6436953454961..c2fbdaeffa67d 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
@@ -1,22 +1,19 @@
-{cabal, time, parsec, stm, wxdirect, libX11, mesa, wxGTK}:
+{ cabal, libX11, mesa, parsec, stm, time, wxdirect, wxGTK }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wxcore";
-  version = "0.12.1.6";
-  sha256 = "162m7z8nzdwsszha87mvz7dzxh268n0sgymf3vq2yn5axw7zx5ap";
-  propagatedBuildInputs = [time parsec stm libX11 wxGTK mesa wxdirect];
-  preConfigure = ''
-    sed -i 's|\(containers.*\) && < 0.4|\1|' ${self.pname}.cabal
-  '';
-  /* 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
index 05d5a20702ff0..3cbd616353b9e 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
@@ -1,16 +1,20 @@
-{cabal, parsec, time}:
+{ cabal, parsec, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wxdirect";
-  version = "0.12.1.3";
-  sha256 = "da59315339dc78b3bfbe08c1681d53c74a56e7c3de0f41a90099bd289b1bfb11";
-  preConfigure = ''
-    sed -i 's|\(containers.*\) && < 0.4|\1|' ${self.pname}.cabal
-    sed -i 's|\(time.*\) && < 1.2|\1|' ${self.pname}.cabal
-  '';
-  propagatedBuildInputs = [parsec time];
+  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
index 697e6bfc93d1b..3c369103486ae 100644
--- a/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xhtml";
-  version = "3000.2.0.1"; # Haskell Platform 2009.0.0, 2010.1.0.0, 2010.2.0.0, 2011.2.0.0
+  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/3000.2.0.2.nix b/pkgs/development/libraries/haskell/xhtml/3000.2.0.2.nix
new file mode 100644
index 0000000000000..c098cf80cee00
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xhtml/3000.2.0.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "xhtml";
+  version = "3000.2.0.2";
+  sha256 = "14xfx4kmcl6xjn7lnpjd975wh8xakfpd8clcm5bw5n3g0b7agfli";
+  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/xml-enumerator/default.nix b/pkgs/development/libraries/haskell/xml-enumerator/default.nix
new file mode 100644
index 0000000000000..cf77f04379c27
--- /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 0000000000000..5b2d518402cd2
--- /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 055ead4838b59..1125ac1b5449c 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/0.2.6.nix b/pkgs/development/libraries/haskell/xss-sanitize/0.2.6.nix
new file mode 100644
index 0000000000000..c1027ad269eb5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xss-sanitize/0.2.6.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/xss-sanitize/0.3.0.1.nix b/pkgs/development/libraries/haskell/xss-sanitize/0.3.0.1.nix
new file mode 100644
index 0000000000000..e13e0e50c90b1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xss-sanitize/0.3.0.1.nix
@@ -0,0 +1,22 @@
+{ cabal, attoparsecText, cssText, network, tagsoup, text
+, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "xss-sanitize";
+  version = "0.3.0.1";
+  sha256 = "1rycdjl7b7bk100vgdwy6iighdqsbsyvrklp0zqbl1x45abph9pc";
+  buildDepends = [
+    attoparsecText cssText network tagsoup text 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/xss-sanitize/default.nix b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
deleted file mode 100644
index 4203b037e92da..0000000000000
--- a/pkgs/development/libraries/haskell/xss-sanitize/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, network, tagsoup, utf8String}:
-
-cabal.mkDerivation (self : {
-  pname = "xss-sanitize";
-  version = "0.2.6";
-  sha256 = "18bkvrrkc0ga0610f8g3vghq0ib1yczn2n2zbzv7kg7m6bqgx2y5";
-  propagatedBuildInputs = [network tagsoup utf8String];
-  meta = {
-    description = "sanitize untrusted HTML to prevent XSS attacks";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/yap/default.nix b/pkgs/development/libraries/haskell/yap/default.nix
new file mode 100644
index 0000000000000..858466ab1a498
--- /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 0000000000000..b2502047a0c54
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -0,0 +1,28 @@
+{ cabal, aesonNative, authenticate, blazeHtml, controlMonadAttempt
+, hamlet, httpEnumerator, mimeMail, persistent, persistentTemplate
+, pureMD5, pwstoreFast, random, SHA, shakespeareCss, text
+, transformers, wai, yesodCore, yesodForm, yesodJson
+, yesodPersistent
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-auth";
+  version = "0.7.1";
+  sha256 = "066aq7c5gwbspbib748ky3lsb84llnb954n018fk5xs7b4gbyybk";
+  buildDepends = [
+    aesonNative authenticate blazeHtml controlMonadAttempt hamlet
+    httpEnumerator mimeMail persistent persistentTemplate pureMD5
+    pwstoreFast random SHA shakespeareCss text transformers wai
+    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
index 4c9634bf759bb..947cad77d5e81 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -1,20 +1,28 @@
-{cabal, blazeBuilder, blazeHtml, caseInsensitive, cereal, clientsession,
- cookie, enumerator, failure, hamlet, httpTypes, monadControl, parsec,
- text, transformers, wai, waiExtra, webRoutesQuasi}:
+{ cabal, blazeBuilder, blazeHtml, caseInsensitive, cereal
+, clientsession, cookie, enumerator, failure, hamlet, httpTypes
+, monadControl, parsec, pathPieces, random, shakespeare
+, shakespeareCss, shakespeareJs, strictConcurrency, text, time
+, transformers, wai, waiExtra
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "0.8.2";
-  sha256 = "15h5nm45w3z1g4ayn0dj9grviqm857krad1453rway76yrrv7xsr";
-  propagatedBuildInputs = [
-    blazeBuilder blazeHtml caseInsensitive cereal clientsession
-    cookie enumerator failure hamlet httpTypes monadControl parsec
-    text transformers wai waiExtra webRoutesQuasi
+  version = "0.9.1";
+  sha256 = "03dbn915g6jkwk9fp5naqv5bq613nlfpc8jd7568cc1l41b95cbf";
+  buildDepends = [
+    blazeBuilder blazeHtml caseInsensitive cereal clientsession cookie
+    enumerator failure hamlet httpTypes monadControl parsec pathPieces
+    random shakespeare shakespeareCss shakespeareJs strictConcurrency
+    text time transformers wai waiExtra
   ];
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Creation of type-safe, RESTful web applications";
-    license = "BSD3";
-    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/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index b190e8d848e15..5d841c925cd19 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -1,21 +1,25 @@
-{cabal, blazeBuilder, blazeHtml, dataDefault, emailValidate, hamlet,
- network, persistent, text, transformers, wai, webRoutesQuasi,
- xssSanitize, yesodCore, yesodPersistent}:
+{ cabal, blazeBuilder, blazeHtml, dataDefault, emailValidate
+, hamlet, network, persistent, shakespeareCss, shakespeareJs, text
+, time, transformers, wai, xssSanitize, yesodCore, yesodPersistent
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "0.2.0";
-  sha256 = "1dwwndrb09bqfzrarxpiw29xqvxk70iy8b2vcy0rl6g2wvrcm8an";
-  propagatedBuildInputs = [
-    blazeBuilder blazeHtml dataDefault emailValidate hamlet
-    network persistent text transformers wai webRoutesQuasi
+  version = "0.3.1";
+  sha256 = "0xa9950michbwlp90xcr8ybpig7f026zwq28lg03zavnaqisqkfj";
+  buildDepends = [
+    blazeBuilder blazeHtml dataDefault emailValidate hamlet network
+    persistent shakespeareCss shakespeareJs text time transformers wai
     xssSanitize yesodCore yesodPersistent
   ];
-  noHaddock = true;
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Form handling support for Yesod Web Framework";
-    license = "BSD3";
-    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/yesod-json/default.nix b/pkgs/development/libraries/haskell/yesod-json/default.nix
index 7607dbfa15fb0..2e5df42d9dad9 100644
--- a/pkgs/development/libraries/haskell/yesod-json/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-json/default.nix
@@ -1,16 +1,18 @@
-{cabal, aeson, blazeTextual, hamlet, text, vector, yesodCore}:
+{ cabal, aesonNative, shakespeareJs, text, vector, yesodCore }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-json";
-  version = "0.1.1.1";
-  sha256 = "02mly02c6z49s0gznx47w919gcn7qz1qvr8704sab1sjk87cyjwl";
-  propagatedBuildInputs = [
-    aeson blazeTextual hamlet text vector yesodCore
-  ];
+  version = "0.2.1";
+  sha256 = "1d710pqrdafyz8s0spd19vwvx5v9kwy44wb0byz3445jhi3kwn88";
+  buildDepends = [ aesonNative shakespeareJs text vector yesodCore ];
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Generate content for Yesod using the aeson package";
-    license = "BSD3";
-    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/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
index ded78d7b38262..187780f9ebbb0 100644
--- a/pkgs/development/libraries/haskell/yesod-persistent/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -1,16 +1,22 @@
-{cabal, failure, persistent, persistentTemplate, transformers, yesodCore}:
+{ cabal, failure, persistent, persistentTemplate, transformers
+, yesodCore
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-persistent";
-  version = "0.1.0";
-  sha256 = "1h0kk3sx0c4c3pcg3s2c5kfy0kz7gci45h4gsgrkhkcgg0pg324c";
-  propagatedBuildInputs = [
+  version = "0.2.1";
+  sha256 = "1ka8jsxr7i5rcjxnv82ykq34yqxqzxdvk4b3ck7pbvx2a4g7bxw9";
+  buildDepends = [
     failure persistent persistentTemplate transformers yesodCore
   ];
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Some helpers for using Persistent from Yesod";
-    license = "BSD3";
-    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/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
new file mode 100644
index 0000000000000..8fbc8baff49dc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -0,0 +1,23 @@
+{ cabal, base64Bytestring, cereal, fileEmbed, httpTypes, pureMD5
+, text, transformers, unixCompat, wai, waiAppStatic, yesodCore
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-static";
+  version = "0.3.0.1";
+  sha256 = "1dvg60kawmvczwxvkxzx5k19y36i23fi0faw71ck58mlkjdczby5";
+  buildDepends = [
+    base64Bytestring cereal fileEmbed httpTypes pureMD5 text
+    transformers unixCompat wai 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 0000000000000..e09faa1fd8443
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -0,0 +1,29 @@
+{ cabal, attoparsecText, blazeBuilder, blazeHtml, hamlet, httpTypes
+, monadControl, parsec, shakespeareCss, shakespeareJs, text, time
+, transformers, unixCompat, wai, waiExtra, warp, yesodAuth
+, yesodCore, yesodForm, yesodJson, yesodPersistent
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod";
+  version = "0.9.1";
+  sha256 = "1ag3lca75lrriycbscspb5yyishacgxjx0rybc3x4z1dqnkn1r71";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsecText blazeBuilder blazeHtml hamlet httpTypes monadControl
+    parsec shakespeareCss shakespeareJs text time transformers
+    unixCompat wai waiExtra warp yesodAuth yesodCore yesodForm
+    yesodJson yesodPersistent
+  ];
+  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 ac65ef9d917ae..0810157ae54d1 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 7ff5c1d480c27..327a1ec5141f9 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.7";
   sha256 = "1q52v18kl1j049kk3yb7rp0k27p6q7r72mg1vcbdid6qd7a9dh48";
-  propagatedBuildInputs = [binary mtl utf8String zlib digest];
+  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 36dbc389fb758..4cfca3bf1a3fa 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
index efe5e4134a81c..6398ba4b2751f 100644
--- a/pkgs/development/libraries/haskell/zlib-bindings/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
@@ -1,14 +1,20 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib-bindings";
-  version = "0.0.0";
-  sha256 = "168sll6mrmcnvdmdx79izqxcrli1s7asp4qilhkqss8w0jlrv1ni";
-  propagatedBuildInputs = [zlib];
+  version = "0.0.1";
+  sha256 = "0m8q155yyrd4q1ddfmmhdx88mg1875ywrlr484qwpcyd58gn3bkv";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ zlib ];
   meta = {
+    homepage = "http://github.com/snoyberg/zlib-bindings";
     description = "Low-level bindings to the zlib package";
-    license = "BSD3";
-    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/zlib-enum/default.nix b/pkgs/development/libraries/haskell/zlib-enum/default.nix
new file mode 100644
index 0000000000000..3e99ed8d5c9a3
--- /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
index f034e43160af6..60f81e7f9846b 100644
--- a/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix
+++ b/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix
@@ -1,13 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib";
-  version = "0.5.0.0"; # Haskell Platform 2009.0.0
+  version = "0.5.0.0";
   sha256 = "20e067cfbec87ec062ac144875a60e158ea6cf7836aac031ec367fcdd5446891";
-  # 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.2.0.nix b/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix
index 80bf428c70609..5ec59a9690f3d 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
index 3d3b2184da8a0..f4355c0a9549d 100644
--- a/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix
+++ b/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix
@@ -1,13 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib";
-  version = "0.5.3.1"; # Haskell Platform 2011.2.0.0
+  version = "0.5.3.1";
   sha256 = "1hj56lk4g2zr7acdda39zib1bj02777q0asm5ms9rfj7kp81caiq";
-  # 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/herqq/0.8.0.nix b/pkgs/development/libraries/herqq/0.8.0.nix
deleted file mode 100644
index 29b7606591822..0000000000000
--- a/pkgs/development/libraries/herqq/0.8.0.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, qt4, unzip }:
-
-stdenv.mkDerivation rec {
-  name = "herqq-0.8.0";
-
-
-  buildInputs = [ qt4 unzip ];
-
-  configurePhase = "qmake PREFIX=$out herqq.pro";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/hupnp/${name}.zip";
-    sha256 = "0z1z9f48fhdif3wd7gn2gj0yxk15f0lpm01q0igsccv8m1y3mphn";
-  };
-
-  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.7.0.nix b/pkgs/development/libraries/herqq/default.nix
index 80bfaf638df46..fee12592c6369 100644
--- a/pkgs/development/libraries/herqq/0.7.0.nix
+++ b/pkgs/development/libraries/herqq/default.nix
@@ -1,8 +1,7 @@
 { stdenv, fetchurl, qt4, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "herqq-0.7.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 = "13z6wabakn2j57azhik9nvps50l85hrs028kkhn5cpd0pgcigmqz";
+    sha256 = "13klwszi7h7mvdz2ap0ac4dp7lc0gswp8lzzlwidhqfmf9pwgkyb";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/herqq/svn.nix b/pkgs/development/libraries/herqq/svn.nix
deleted file mode 100644
index c9f0f09d44a5b..0000000000000
--- 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/indilib/default.nix b/pkgs/development/libraries/indilib/default.nix
index 0dbab1a7ac409..9fc5ac665e8b2 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/kdevplatform/default.nix b/pkgs/development/libraries/kdevplatform/default.nix
index be0e9a44ae832..7f28877b9f4f8 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/libavc1394/default.nix b/pkgs/development/libraries/libavc1394/default.nix
index 07753c864030b..73ca029a631eb 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/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index db2feeecb122c..691294d4a85d2 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 aed051a446b6f..3c138cca41621 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.7.0";
+  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 = "0zn3w57xjk34j08fx4n757kakkd4y07halrnaj4a0x0c9dhyjf14";
+    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/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index ad6f45366041f..d37b7dd0b7fb3 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -1,6 +1,6 @@
 {stdenv, fetchurl, pkgconfig, libpthreadstubs}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "libdrm-2.4.24";
   
   src = fetchurl {
@@ -10,16 +10,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pkgconfig libpthreadstubs ];
 
+  patches = [ ./libdrm-apple.patch ];
+
   preConfigure = ''
     # General case: non intel.
     if test -n "$crossConfig"; then
       configureFlags="$configureFlags --disable-intel";
     fi
-  '';
+  '' + stdenv.lib.optionalString stdenv.isDarwin
+  "echo : \\\${ac_cv_func_clock_gettime=\'yes\'} > config.cache";
 
   meta = {
     homepage = http://dri.freedesktop.org/libdrm/;
     description = "Library for accessing the kernel's Direct Rendering Manager";
     license = "bsd";
   };
-}
+} // (stdenv.lib.optionalAttrs stdenv.isDarwin { configureFlags = [ "-C" ]; }))
diff --git a/pkgs/development/libraries/libdrm/libdrm-apple.patch b/pkgs/development/libraries/libdrm/libdrm-apple.patch
new file mode 100644
index 0000000000000..e9fd63c5faec0
--- /dev/null
+++ b/pkgs/development/libraries/libdrm/libdrm-apple.patch
@@ -0,0 +1,88 @@
+diff -Naur libdrm-2.4.26-orig/intel/intel_bufmgr_gem.c libdrm-2.4.26/intel/intel_bufmgr_gem.c
+--- libdrm-2.4.26-orig/intel/intel_bufmgr_gem.c	2011-04-01 10:30:51.000000000 -0400
++++ libdrm-2.4.26/intel/intel_bufmgr_gem.c	2011-08-29 02:17:20.000000000 -0400
+@@ -51,6 +51,7 @@
+ #include <sys/mman.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/time.h>
+ 
+ #include "errno.h"
+ #include "libdrm_lists.h"
+@@ -987,9 +988,9 @@
+ 	if (atomic_dec_and_test(&bo_gem->refcount)) {
+ 		drm_intel_bufmgr_gem *bufmgr_gem =
+ 		    (drm_intel_bufmgr_gem *) bo->bufmgr;
+-		struct timespec time;
++		struct timeval time;
+ 
+-		clock_gettime(CLOCK_MONOTONIC, &time);
++		gettimeofday(&time, NULL);
+ 
+ 		pthread_mutex_lock(&bufmgr_gem->lock);
+ 		drm_intel_gem_bo_unreference_final(bo, time.tv_sec);
+diff -Naur libdrm-2.4.26-orig/xf86drm.c libdrm-2.4.26/xf86drm.c
+--- libdrm-2.4.26-orig/xf86drm.c	2011-03-21 09:39:24.000000000 -0400
++++ libdrm-2.4.26/xf86drm.c	2011-08-29 02:17:49.000000000 -0400
+@@ -51,6 +51,9 @@
+ #include <sys/mman.h>
+ #include <sys/time.h>
+ #include <stdarg.h>
++#if defined(__APPLE__) && defined(__MACH__)
++#include <mach/mach_time.h>
++#endif
+ 
+ /* Not all systems have MAP_FAILED defined */
+ #ifndef MAP_FAILED
+@@ -1941,20 +1944,43 @@
+  */
+ int drmWaitVBlank(int fd, drmVBlankPtr vbl)
+ {
++#if defined(__APPLE__) && defined(__MACH__)
++    uint64_t start, end, elapsed, elapsedNano;
++    static const uint64_t maxElapsed = 2000000000;
++    static mach_timebase_info_data_t timebaseInfo;
++    if ( timebaseInfo.denom == 0 ) {
++	(void) mach_timebase_info(&timebaseInfo);
++    }
++#else
+     struct timespec timeout, cur;
++#endif
+     int ret;
+ 
++#if defined(__APPLE__) && defined(__MACH__)
++    start = mach_absolute_time();
++#else
+     ret = clock_gettime(CLOCK_MONOTONIC, &timeout);
+     if (ret < 0) {
+ 	fprintf(stderr, "clock_gettime failed: %s\n", strerror(ret));
+ 	goto out;
+     }
+     timeout.tv_sec++;
++#endif
+ 
+     do {
+        ret = ioctl(fd, DRM_IOCTL_WAIT_VBLANK, vbl);
+        vbl->request.type &= ~DRM_VBLANK_RELATIVE;
+        if (ret && errno == EINTR) {
++#if defined(__APPLE__) && defined(__MACH__)
++	       end = mach_absolute_time();
++	       elapsed = end - start;
++	       elapsedNano = elapsed * timebaseInfo.numer / timebaseInfo.denom;
++	       if (elapsedNano > maxElapsed) {
++		   errno = EBUSY;
++		   ret = -1;
++		   break;
++	       }
++#else
+ 	       clock_gettime(CLOCK_MONOTONIC, &cur);
+ 	       /* Timeout after 1s */
+ 	       if (cur.tv_sec > timeout.tv_sec + 1 ||
+@@ -1964,6 +1990,7 @@
+ 		       ret = -1;
+ 		       break;
+ 	       }
++#endif
+        }
+     } while (ret && errno == EINTR);
+ 
diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix
index 46be77d713d0d..40eb2a10faf53 100644
--- a/pkgs/development/libraries/libelf/default.nix
+++ b/pkgs/development/libraries/libelf/default.nix
@@ -24,9 +24,9 @@ stdenv.mkDerivation (rec {
 
 //
 
-# Gettext is lacking from `stdenv' on Darwin, but not completely, so NLS
-# support is enabled but eventually fails.
+# 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 { buildInputs = [ gettext ]; }
+ then { configureFlags = [ "--disable-nls" ]; }
  else { }))
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
index cbf6847c37025..7c948aa982471 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/libktorrent/default.nix b/pkgs/development/libraries/libktorrent/default.nix
index 2ccfbf499b886..e452097e50dcd 100644
--- a/pkgs/development/libraries/libktorrent/default.nix
+++ b/pkgs/development/libraries/libktorrent/default.nix
@@ -1,23 +1,24 @@
-{ 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;
+    inherit (kdelibs.meta) platforms;
   };
 }
diff --git a/pkgs/development/libraries/libmcs/default.nix b/pkgs/development/libraries/libmcs/default.nix
index b197d5dcd5d34..5d13aa9a3cf24 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 0000000000000..8d24ddbb63007
--- /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/libmowgli/default.nix b/pkgs/development/libraries/libmowgli/default.nix
index 4bc8bc19a1224..71611e2ad5bcb 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 0000000000000..1d04eea89f6ba
--- /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/libmusicbrainz/default.nix b/pkgs/development/libraries/libmusicbrainz/default.nix
index 08bcd2ff4b17b..714870fab1607 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 2230c46018e58..0000000000000
--- 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 2a1d2b38cae73..0000000000000
--- 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 3ea201a7e508a..aeb0792dacfa6 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/libraw1394/default.nix b/pkgs/development/libraries/libraw1394/default.nix
index a910d11f41085..4b1fbe269bd98 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 0000000000000..2f956630fa12f
--- /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 681453985b97d..bcab7e03917f5 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 0000000000000..e825e1d852b20
--- /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/mlt/default.nix b/pkgs/development/libraries/mlt/default.nix
index f797fcc023410..13f0a69950c24 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.6.2";
+  name = "mlt-0.7.4";
 
   src = fetchurl {
-    url = mirror://sourceforge/mlt/mlt-0.6.2.tar.gz;
-    sha256 = "0rvyblxyp52mdjl4aicrk16k56yb24ic4ir3n145cxdarwi98r7i";
+    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/mpeg2dec/default.nix b/pkgs/development/libraries/mpeg2dec/default.nix
deleted file mode 100644
index 8b29deba56f98..0000000000000
--- 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 9e0920eb1c42a..967abe500e263 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/mtdev/default.nix b/pkgs/development/libraries/mtdev/default.nix
new file mode 100644
index 0000000000000..b8ecdb239c175
--- /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/nettle/default.nix b/pkgs/development/libraries/nettle/default.nix
index 0c8fb00ec6fe3..80b9a858712ff 100644
--- a/pkgs/development/libraries/nettle/default.nix
+++ b/pkgs/development/libraries/nettle/default.nix
@@ -1,12 +1,12 @@
 { 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 = [ gnum4 ];
diff --git a/pkgs/development/libraries/ntrack/default.nix b/pkgs/development/libraries/ntrack/default.nix
index 5391201666294..e2d811ab33965 100644
--- a/pkgs/development/libraries/ntrack/default.nix
+++ b/pkgs/development/libraries/ntrack/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, glib, qt4, pkgconfig, libnl2, pygobject, python }:
+{ stdenv, fetchurl, glib, qt4, pkgconfig, libnl, pygobject, python }:
 
 let
-  version = "011";
+  version = "014";
 in
 
 stdenv.mkDerivation rec {
@@ -9,16 +9,15 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://launchpad.net/ntrack/main/${version}/+download/${name}.tar.gz";
-    sha256 = "0qi6nhymsv7w6hfxnz9jbxk311wb6x9jci7a3gcr4cc5nwkl7sxy";
+    sha256 = "1aqn3q0dj2kk0j9rf02qgbfghlykaas7q0g8wxyz7nd6zg4qhyj2";
   };
 
-  buildInputs = [ libnl2 qt4 ];
+  buildInputs = [ libnl qt4 ];
 
   buildNativeInputs = [ pkgconfig python ];
 
   configureFlags = "--without-gobject CFLAGS=--std=gnu99";
 
-  patches = [ ./libnl2.patch ];
   postPatch = ''
     sed -e "s@/usr\(/lib/ntrack/modules/\)@$out&@" -i common/ntrack.c
     '';
diff --git a/pkgs/development/libraries/ntrack/libnl2.patch b/pkgs/development/libraries/ntrack/libnl2.patch
deleted file mode 100644
index 6e76c749b1514..0000000000000
--- a/pkgs/development/libraries/ntrack/libnl2.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Source: upstream rev. 269
-
-=== modified file 'modules/ntrack-libnl.c'
---- old/modules/ntrack-libnl.c	2010-12-26 13:22:32 +0000
-+++ new/modules/ntrack-libnl.c	2011-03-26 23:21:49 +0000
-@@ -74,6 +74,7 @@
- 	nl_cache_mngr_add (mngr, \
- 	                   name, \
- 	                   0, \
-+	                   0, \
- 	                   &cache_o)
- #define NL_PRINT_ERROR(text,err) \
- 	printf ("%s/%s\n", text, nl_geterror(err))
-
diff --git a/pkgs/development/libraries/openbabel/default.nix b/pkgs/development/libraries/openbabel/default.nix
index ca753867b5e42..d1fa607c73411 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 0000000000000..6f422463db931
--- /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/changeset_r3190.diff b/pkgs/development/libraries/opencv/changeset_r3190.diff
deleted file mode 100644
index 4a614659e7239..0000000000000
--- a/pkgs/development/libraries/opencv/changeset_r3190.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- opencv/src/highgui/cvcap_ffmpeg.cpp

-+++ opencv/src/highgui/cvcap_ffmpeg.cpp

-@@ -49,6 +49,15 @@

- #if !defined(WIN32) || defined(__MINGW32__)

- // some versions of FFMPEG assume a C99 compiler, and don't define INT64_C

--#ifndef INT64_C

--#define INT64_C

-+#if !defined INT64_C || !defined UINT64_C

-+# if __WORDSIZE == 64

-+#  define INT64_C(c)	c ## UL

-+# else

-+#  define INT64_C(c)	c ## ULL

-+# endif

-+# if __WORDSIZE == 64

-+#  define UINT64_C(c)	c ## UL

-+# else

-+#  define UINT64_C(c)	c ## ULL

-+# endif

- #define __STDC_CONSTANT_MACROS

- // force re-inclusion of stdint.h to get INT64_C macro

diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index c8b77d5f57250..95a8f0d8fdb0d 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -2,17 +2,17 @@
   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 ];
+  enableParallelBuilding = true;
 
   meta = {
     description = "Open Computer Vision Library with more than 500 algorithms";
diff --git a/pkgs/development/libraries/pango/1.28.x.nix b/pkgs/development/libraries/pango/1.28.x.nix
index a5aa77b5a398b..7488154373d91 100644
--- a/pkgs/development/libraries/pango/1.28.x.nix
+++ b/pkgs/development/libraries/pango/1.28.x.nix
@@ -1,11 +1,11 @@
 { 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;
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 0000000000000..17744bad32c58
--- /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 0000000000000..6cf63aa757ace
--- /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/policykit/default.nix b/pkgs/development/libraries/policykit/default.nix
index 87e06e9a57a49..41b6839f0c230 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/desktops/kde-4.6/support/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
index 88a63b3881cf6..008a75cff67f8 100644
--- a/pkgs/desktops/kde-4.6/support/polkit-qt-1/default.nix
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -3,18 +3,18 @@
 stdenv.mkDerivation rec {
   name = "polkit-qt-1-0.99.0";
 
-  buildInputs = [ qt4 automoc4 ];
-  propagatedBuildInputs = [ polkit glib ];
-  buildNativeInputs = [ cmake pkgconfig ];
-
   src = fetchurl {
     url = "mirror://kde/stable/apps/KDE4.x/admin/${name}.tar.bz2";
     sha256 = "02m710q34aapbmnz1p6qwgkk5xjmm239zdl3lvjg77dh3j0w5i3r";
   };
 
-  patches = [ ./policy-files.patch ];
+  patches = [ ./polkit-install.patch ];
+
+  buildInputs = [ cmake qt4 automoc4 ];
+  
+  propagatedBuildInputs = [ polkit glib ];
 
   meta = {
-    maintainers = with stdenv.lib.maintainers; [ urkud sander ];
+    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 0000000000000..79beda2a3184a
--- /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 35a1a37e39ff6..f2301a9621c23 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.99";
+  name = "polkit-0.102";
 
   src = fetchurl {
     url = "http://hal.freedesktop.org/releases/${name}.tar.gz";
-    sha256 = "0gsqnc5x6angma7paw0hnl5cagqimsj5f022a5vzc8n8dv1cf4pn";
+    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/default.nix b/pkgs/development/libraries/poppler/default.nix
index 918f84e3b7483..3091c6497e547 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/prison/default.nix b/pkgs/development/libraries/prison/default.nix
new file mode 100644
index 0000000000000..ca8ba46d7dcb8
--- /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/qca2/default.nix b/pkgs/development/libraries/qca2/default.nix
index 46b7d26bdfcff..6af622c0a15b8 100644
--- a/pkgs/development/libraries/qca2/default.nix
+++ b/pkgs/development/libraries/qca2/default.nix
@@ -1,22 +1,30 @@
-{stdenv, fetchurl, which, qt4}:
+{ stdenv, fetchurl, which, qt4 }:
 
-stdenv.mkDerivation {
-  name = "qca-2.0.2";
+stdenv.mkDerivation rec {
+  name = "qca-2.0.3";
+  
   src = fetchurl {
-    url = http://delta.affinix.com/download/qca/2.0/qca-2.0.2.tar.bz2;
-    sha256 = "49b5474450104a2298747c243de1451ab7a6aeed4bf7df43ffa4b7128a2837b8";
+    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'
-  '';
+
+  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";
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index 8f9bfc6c130ca..002a25988b69c 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/development/libraries/qimageblitz/default.nix b/pkgs/development/libraries/qimageblitz/default.nix
index bb3d0220b4322..4aac06a510141 100644
--- a/pkgs/development/libraries/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 d6a4afc3fcaeb..67725315aa5ad 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.2";
+  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 = "0dlknhzcslymqbmlkpmmgv29c5mmbw6s7rznriqd5g4h9d93ny6l";
+    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 0000000000000..814550d2b18ac
--- /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 0000000000000..a97efe5ab4a8c
--- /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/redland/1.0.10.nix b/pkgs/development/libraries/redland/1.0.10.nix
deleted file mode 100644
index 8d28ed9cd9fdd..0000000000000
--- 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/strigi/default.nix b/pkgs/development/libraries/strigi/default.nix
index eeed7b271cd36..78a288e0bc78f 100644
--- a/pkgs/development/libraries/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_tools
 }:
 
 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;
+  CLUCENE_HOME = clucene_core;
 
-  # Dependencies such as SQLite and FAM are unreliable in this release
-  buildInputs = [
-    cmake perl qt4 bzip2 stdenv.gcc.libc libxml2 expat exiv2 cluceneCore
-  ];
+  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/tcp-wrappers/default.nix b/pkgs/development/libraries/tcp-wrappers/default.nix
new file mode 100644
index 0000000000000..1cb6472971c47
--- /dev/null
+++ b/pkgs/development/libraries/tcp-wrappers/default.nix
@@ -0,0 +1,74 @@
+x@{builderDefsPackage
+  , flex, bison
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="tcp-wrappers";
+    version="7.6";
+    name="${baseName}-${version}";
+    url="http://ftp.porcupine.org/pub/security/tcp_wrappers_${version}.tar.gz";
+    hash="0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm";
+  };
+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" "doUnpack" "fixMakefile" "doPatch" 
+    "doMake" "doDeploy"];
+
+  patches = [./have-strerror.patch ./trivial-fixes.patch];
+
+  makeFlags = [
+    "REAL_DAEMON_DIR=$out/bin"
+    "STYLE='\"-DHAVE_STRERROR -DSYS_ERRLIST_DEFINED\"'"
+    "generic"
+  ];
+
+  setVars = a.noDepEntry ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lnsl"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC"
+  '';
+
+  fixMakefile = a.fullDepEntry ''
+    chmod u+w Makefile
+    echo 'libwrap.so: $(LIB_OBJ)' >> Makefile
+    echo '	ld $(LIB_OBJ) --shared -o libwrap.so' >> Makefile
+  '' ["minInit"];
+
+  doDeploy = a.fullDepEntry ''
+    ensureDir "$out"/{sbin,lib}
+    make libwrap.so
+    cp libwrap.{a,so} "$out/lib"
+    find . -perm +111 -a ! -name '*.*' -exec cp '{}' "$out/sbin" ';'
+  '' ["defEnsureDir" "minInit"];
+      
+  meta = {
+    description = "Network logging TCP wrappers";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://ftp.porcupine.org/pub/security/index.html";
+    };
+  };
+}) x
diff --git a/pkgs/development/libraries/tcp-wrappers/have-strerror.patch b/pkgs/development/libraries/tcp-wrappers/have-strerror.patch
new file mode 100644
index 0000000000000..626fce1a88aba
--- /dev/null
+++ b/pkgs/development/libraries/tcp-wrappers/have-strerror.patch
@@ -0,0 +1,20 @@
+Debian patch
+diff -ruN tcp_wrappers_7.6.orig/percent_m.c tcp_wrappers_7.6/percent_m.c
+--- tcp_wrappers_7.6.orig/percent_m.c	1994-12-28 17:42:37.000000000 +0100
++++ tcp_wrappers_7.6/percent_m.c	2003-08-21 02:45:31.000000000 +0200
+@@ -29,11 +29,15 @@
+ 
+     while (*bp = *cp)
+ 	if (*cp == '%' && cp[1] == 'm') {
++#ifdef HAVE_STRERROR
++	    strcpy(bp, strerror(errno));
++#else
+ 	    if (errno < sys_nerr && errno > 0) {
+ 		strcpy(bp, sys_errlist[errno]);
+ 	    } else {
+ 		sprintf(bp, "Unknown error %d", errno);
+ 	    }
++#endif
+ 	    bp += strlen(bp);
+ 	    cp += 2;
+ 	} else {
diff --git a/pkgs/development/libraries/tcp-wrappers/trivial-fixes.patch b/pkgs/development/libraries/tcp-wrappers/trivial-fixes.patch
new file mode 100644
index 0000000000000..1e55819f8decc
--- /dev/null
+++ b/pkgs/development/libraries/tcp-wrappers/trivial-fixes.patch
@@ -0,0 +1,27 @@
+Debian patch
+diff -ruNp tcp_wrappers_7.6.orig/options.c tcp_wrappers_7.6/options.c
+--- tcp_wrappers_7.6.orig/options.c	2006-03-01 23:45:28.000000000 +0100
++++ tcp_wrappers_7.6/options.c	2006-03-01 22:55:44.000000000 +0100
+@@ -41,6 +41,7 @@ static char sccsid[] = "@(#) options.c 1
+ #include <netinet/in.h>
+ #include <netdb.h>
+ #include <stdio.h>
++#include <unistd.h>
+ #include <syslog.h>
+ #include <pwd.h>
+ #include <grp.h>
+diff -ruNp tcp_wrappers_7.6.orig/scaffold.c tcp_wrappers_7.6/scaffold.c
+--- tcp_wrappers_7.6.orig/scaffold.c	2006-03-01 23:45:28.000000000 +0100
++++ tcp_wrappers_7.6/scaffold.c	2006-03-01 22:56:13.000000000 +0100
+@@ -17,6 +17,7 @@ static char sccs_id[] = "@(#) scaffold.c
+ #include <arpa/inet.h>
+ #include <netdb.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <syslog.h>
+ #include <setjmp.h>
+ #include <string.h>
+@@ -28,3 +28,2 @@
+ 
+-extern char *malloc();
+
diff --git a/pkgs/development/libraries/ucommon/default.nix b/pkgs/development/libraries/ucommon/default.nix
index dfcb2e89ecf72..af481f2ffeda5 100644
--- a/pkgs/development/libraries/ucommon/default.nix
+++ b/pkgs/development/libraries/ucommon/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, gnutls, pkgconfig, zlib, libgcrypt }:
 
 stdenv.mkDerivation rec {
-  name = "ucommon-5.0.3";
+  name = "ucommon-5.0.5";
 
   src = fetchurl {
-    url = mirror://gnu/commoncpp/ucommon-5.0.3.tar.gz;
-    sha256 = "0i2mc15hcjbdq796wxzjric238w071kj3g2lzvxbx4vrinn8204g";
+    url = mirror://gnu/commoncpp/ucommon-5.0.5.tar.gz;
+    sha256 = "0rpq6qkhzcsls2rmnf1p1dnf9vyzmgw0cips3hl82mh0w5d70253";
   };
 
   buildInputs = [ pkgconfig gnutls zlib ];
diff --git a/pkgs/development/libraries/x264/default.nix b/pkgs/development/libraries/x264/default.nix
index 6576a0d75d74e..0bba7af5c3d8b 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-20110416-2245-stable";
+  version = "snapshot-20110724-2245-stable";
   name = "x264-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-${version}.tar.bz2";
-    sha256 = "17bbczmsln6wmw7vwjmmr18bhngj1b2xfr9fq3a3n54706df9370";
+    sha256 = "07bylkh8cwcmj01sr41hhrvfbciyixhw1irdpj01kz9d0h8dhhpz";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix
index 49d68f1526788..130af1b95a17a 100644
--- a/pkgs/development/libraries/xine-lib/default.nix
+++ b/pkgs/development/libraries/xine-lib/default.nix
@@ -10,6 +10,13 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/xine/${name}.tar.bz2";
     sha256 = "0x47kmsaxx1bv8w2cacvzls3sjw9y4vk82rd94km1m1s6k2wcxv2";
   };
+
+  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 ];
 
@@ -23,6 +30,8 @@ stdenv.mkDerivation rec {
   
   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/xvidcore/default.nix b/pkgs/development/libraries/xvidcore/default.nix
index 35a0de8a5f269..e03773292bb5f 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.3.1";
+  name = "xvidcore-1.3.2";
   
   src = fetchurl {
     url = "http://downloads.xvid.org/downloads/${name}.tar.bz2";
-    sha256 = "0r1x00fgm7cbb7i9p17p9l0p4b82gig6sm0mbs6qrz84kd2fh6n5";
+    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/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 0000000000000..e59e40091bfee
--- /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 06063db491e9a..83e800faa2c3f 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/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix
index b7a80129451ff..876b87408e8df 100644
--- a/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/pkgs/development/ocaml-modules/batteries/default.nix
@@ -5,22 +5,17 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "ocaml-batteries-1.3.0";
+  name = "ocaml-batteries-1.4.0";
 
   src = fetchurl {
-    url = "http://forge.ocamlcore.org/frs/download.php/560/batteries-1.3.0.tar.gz";
-    sha256 = "1kf8dyivigavi89lpsz7hzdv48as10yck7gkmqmnsnn1dps3m7an";
+    url = https://forge.ocamlcore.org/frs/download.php/643/batteries-1.4.0.tar.gz;
+    sha256 = "1qyhiyanlhpbj0dv0vyqak87qfadjzg2pb8q93iybmg59akaxl15";
   };
 
   buildInputs = [ocaml findlib camomile ounit];
 
-  # This option is not correctly detected on Darwin
-  # It should be fixed in the svn
-  BATTERIES_NATIVE_SHLIB = if stdenv.isDarwin then "no" else "yes";
-
-  # Ditto
   patchPhase = ''
-    substituteInPlace Makefile --replace 'echo -n' echo
+    substituteInPlace Makefile --replace '/bin/echo -n' echo
   '';
 
   configurePhase = "true"; 	# Skip configure
diff --git a/pkgs/development/perl-modules/DBD-Pg/default.nix b/pkgs/development/perl-modules/DBD-Pg/default.nix
index 69721f1a82c24..29a1da9c7acb2 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/net-amazon-mechanicalturk.patch b/pkgs/development/perl-modules/net-amazon-mechanicalturk.patch
new file mode 100644
index 0000000000000..dde13b9b0fca5
--- /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 eb523d69c12b6..0183944e201a7 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/pycups/default.nix b/pkgs/development/python-modules/pycups/default.nix
index 18de5fbe7f1cc..a61106f476d72 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 0000000000000..ab086aed3bf91
--- /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 b5ec01a52d5de..5097e95f7e43d 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://nixos.org/tarballs/${name}.tar.gz";
-    sha256 = "0w7k1jz7wcfwqq77hiwgds5s6py7kkg1rszd6c94bk9dr06vishz";
+    url = "http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/${name}.tar.gz";
+    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 7f27400c04a35..b73cabcb15126 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://nixos.org/tarballs/${name}.tar.gz";
-    sha256 = "0g1pj203m491rhy111ayr4k4lsbcqd8sa1np503xv94a90b05l6f";
+    url = "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz";
+    sha256 = "1cs7q2z5r59yil71ysy9nc32x0s65b9dz9jcrdsjmp6cww51z33n";
   };
   
   configurePhase = "python ./configure.py -d $out/lib/${python.libPrefix}/site-packages -b $out/bin -e $out/include";
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index bc66774962558..c7484ee6e84b4 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,14 +1,16 @@
-{fetchurl, stdenv, replace, curl, expat, zlib, bzip2, libarchive
+{ fetchurl, stdenv, replace, curl, expat, zlib, bzip2, libarchive
 , useNcurses ? false, ncurses, useQt4 ? false, qt4
-, darwinInstallNameToolUtility}:
+, darwinInstallNameToolUtility }:
+
+with stdenv.lib;
 
 let
   os = stdenv.lib.optionalString;
-  inherit (stdenv.lib) optional;
   majorVersion = "2.8";
   minorVersion = "4";
   version = "${majorVersion}.${minorVersion}";
 in
+
 stdenv.mkDerivation rec {
   name = "cmake-${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}";
 
@@ -19,23 +21,35 @@ stdenv.mkDerivation rec {
     sha256 = "1k2kjaj3vfifb329ff7fr4hcbpbaqb66l97pshq70h7m0zwajznr";
   };
 
+  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/;
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 0000000000000..ef8a9eef7c181
--- /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/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index a9600f1d6dc60..df51c51bde174 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -1,7 +1,10 @@
-{stdenv, fetchurl, graphviz, perl, flex, bison, gnumake, libX11, libXext, qt}:
+{ stdenv, fetchurl, perl, flex, bison, qt }:
 
-stdenv.mkDerivation rec {
+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";
@@ -10,23 +13,25 @@ stdenv.mkDerivation rec {
 
   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
index ff7c982267e71..226a4fd676e38 100644
--- a/pkgs/development/tools/documentation/haddock/2.4.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.4.2.nix
@@ -1,13 +1,20 @@
-{cabal, ghcPaths, libedit}:
+{ cabal, ghcPaths }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haddock";
-  version = "2.4.2"; # Haskell Platform 2009.0.0
-  name = self.fname;
+  version = "2.4.2";
   sha256 = "dbf0a7d0103a3ce6a91b2a3b96148c1b9c13ea7f8bd74260c21fe98df7839547";
-  # TODO: adding libedit here is a hack
-  propagatedBuildInputs = [ghcPaths libedit];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ghcPaths ];
   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.7.2.nix b/pkgs/development/tools/documentation/haddock/2.7.2.nix
index b59ea32827967..c94b3e43b7e18 100644
--- a/pkgs/development/tools/documentation/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
index 42dbd81d9ff67..c6543936ab319 100644
--- a/pkgs/development/tools/documentation/haddock/2.9.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.9.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/boot.nix b/pkgs/development/tools/documentation/haddock/boot.nix
deleted file mode 100644
index edaaac473301f..0000000000000
--- 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 8dddc59d96e14..0000000000000
--- 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 f170cbf7c2622..0000000000000
--- 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/haskell/BNFC-meta/default.nix b/pkgs/development/tools/haskell/BNFC-meta/default.nix
new file mode 100644
index 0000000000000..3661ece97bfff
--- /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 0000000000000..c06b5eacc24b3
--- /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 ac04831fef97d..a7c2e74fa7e87 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 0000000000000..58d8c3e1a10b2
--- /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 0000000000000..7c86f79485a2d
--- /dev/null
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -0,0 +1,20 @@
+{ cabal, hackageDb, HTTP, mtl, nixosTypes, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "cabal2nix";
+  version = "1.13";
+  sha256 = "1wjxaz3yyc41y4plwixd6p2g7higvjzpi8znbgvnzcpfj3hlh616";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ hackageDb 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 0000000000000..f73d61924c5c2
--- /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 75b38f62999ed..da117157f223b 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -1,13 +1,22 @@
-{cabal, haskellSrcExts, mtl, uniplate, hscolour, parallel, transformers}:
+{ cabal, cpphs, haskellSrcExts, hscolour, transformers, uniplate }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.8.7";
-  name = self.fname;
-  sha256 = "0k2fwwwmq0qqb5nw5acsjr2gqnsmqcf3ckb6wdrkqsqp8g2k14mn";
-  extraBuildInputs =
-    [haskellSrcExts mtl uniplate hscolour parallel transformers];
+  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 60a3fd400fec4..78863fab18547 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.1.4";
-  sha256 = "0858jbkjda7ccjzxjnlp2ng1jyvfsa1jhd45vr9bbhsr8qwrdky7";
-  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 04c66673ae263..0000000000000
--- 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 8672e0db95019..ef03d80f5e955 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 63d48ef9cca16..7787ea203eef0 100644
--- a/pkgs/development/tools/haskell/threadscope/default.nix
+++ b/pkgs/development/tools/haskell/threadscope/default.nix
@@ -1,18 +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];
-  preConfigure = ''
-    sed -i 's|\(containers.*\) && < 0.4|\1|' ${self.pname}.cabal
-  '';
+  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 0000000000000..2110f2582291f
--- /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 0000000000000..7af637cd665aa
--- /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 a7ede2ef37987..417f430ba9b05 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.36";
-  name = self.fname;
-  sha256 = "02sl19apxwhgj7zq37pl6xkl35pafma2683d7hyzyyn6y5kqma1j";
-  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/automoc4/default.nix b/pkgs/development/tools/misc/automoc4/default.nix
index f6c29e5d7a388..860ea220799ab 100644
--- a/pkgs/development/tools/misc/automoc4/default.nix
+++ b/pkgs/development/tools/misc/automoc4/default.nix
@@ -1,12 +1,15 @@
-{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 = with stdenv.lib; {
     homepage = http://techbase.kde.org/Development/Tools/Automoc4;
     description = "KDE Meta Object Compiler";
diff --git a/pkgs/development/tools/misc/avrdude/default.nix b/pkgs/development/tools/misc/avrdude/default.nix
index 3cfd8736d8220..7a294e7207818 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/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix
index bb527e63c1e6c..6d0ca9884d680 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/dbench/default.nix b/pkgs/development/tools/misc/dbench/default.nix
new file mode 100644
index 0000000000000..0ef9c47dcc5d9
--- /dev/null
+++ b/pkgs/development/tools/misc/dbench/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchgit, autoconf, popt, zlib}: 
+
+stdenv.mkDerivation rec {
+  name = "dbench-20101121";
+
+  buildInputs = [autoconf popt zlib];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  src = fetchgit {
+    url = git://git.samba.org/sahlberg/dbench.git;
+    rev = "8b5143bcc0f4409553392fdf12fd21c95a075fae";
+    sha256 = "607a62b7ff2e9b1393980777e0ba239215dd8145bc1a34649bcbe2b1e567006d";
+  };
+
+  postInstall = ''
+    cp -R loadfiles/* $out/share
+  '';
+
+}
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 37d41d42fcee7..b2ce5aa629748 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -1,35 +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} --with-python
-    '' + stdenv.lib.optionalString (target != null)
-       " --target=${target.config}";
+       --with-expat --with-libexpat-prefix=${expat}
+    ''
+    + 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}";
   };
@@ -42,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 = ''
@@ -55,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/parsing/alex/2.3.1.nix b/pkgs/development/tools/parsing/alex/2.3.1.nix
index aab99629b317b..fd239d580bf3f 100644
--- a/pkgs/development/tools/parsing/alex/2.3.1.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.1.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.1"; # Haskell Platform 2009.0.0
-  name = self.fname;
+  version = "2.3.1";
   sha256 = "cdd42fd992a72fedeff1f38debc21aa315d90dc070f0945d7819c0bccd549a44";
-  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.2.nix b/pkgs/development/tools/parsing/alex/2.3.2.nix
index 565ecf2f167c6..d3a4778f3f32b 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 7f6186970faea..c9e7671c94478 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
index 9fbbca7f4e9d8..db676a906849e 100644
--- a/pkgs/development/tools/parsing/alex/2.3.5.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.5.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.5"; # Haskell Platform 2011.2.0.0
-  name = self.fname;
+  version = "2.3.5";
   sha256 = "0lyjiq4lmii2syk6838ln32qvn8c0ljf1ypsggahy748k05x79if";
-  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/3.0.1.nix b/pkgs/development/tools/parsing/alex/3.0.1.nix
new file mode 100644
index 0000000000000..6725fed527976
--- /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/happy/1.18.4.nix b/pkgs/development/tools/parsing/happy/1.18.4.nix
index a5cbfc6e21bb9..5b52d222f374e 100644
--- a/pkgs/development/tools/parsing/happy/1.18.4.nix
+++ b/pkgs/development/tools/parsing/happy/1.18.4.nix
@@ -1,13 +1,20 @@
-{cabal, mtl, perl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "happy";
-  version = "1.18.4"; # Haskell Platform 2009.2.0.1
-  name = self.fname;
+  version = "1.18.4";
   sha256 = "909bec4541a92d3765e74756f752514d2d03ec7a5d3e74c18268a57fe7ffa832";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
+  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
index c3cd406f127bc..41532651c9950 100644
--- a/pkgs/development/tools/parsing/happy/1.18.5.nix
+++ b/pkgs/development/tools/parsing/happy/1.18.5.nix
@@ -1,13 +1,21 @@
-{cabal, mtl, perl}:
+{ cabal, mtl, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "happy";
-  version = "1.18.5"; # Haskell Platform 2010.2.0.0
-  name = self.fname;
+  version = "1.18.5";
   sha256 = "91e1c29ac42bc5cabcac2c2e28e693fc59fbdf30636e5c52cb51b779a74d755e";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
+  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
index f6e2ee3bf41c2..60b8d253659e9 100644
--- a/pkgs/development/tools/parsing/happy/1.18.6.nix
+++ b/pkgs/development/tools/parsing/happy/1.18.6.nix
@@ -1,13 +1,21 @@
-{cabal, mtl, perl}:
+{ cabal, mtl, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "happy";
-  version = "1.18.6"; # Haskell Platform 2011.2.0.0
-  name = self.fname;
+  version = "1.18.6";
   sha256 = "0q6dnwihi1q761qdq0hhi733nh5d53xz6frwmr7slpvrp6v8y344";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
+  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/peg/default.nix b/pkgs/development/tools/parsing/peg/default.nix
new file mode 100644
index 0000000000000..b1b9a6dee4ef3
--- /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 0000000000000..6f09603b2d56b
--- /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
index d6c337e306f23..909f0d39fbdbc 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, openssl, python }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.7";
+  version = "0.5.4";
   name = "nodejs-${version}";
 
   src = fetchurl {
-    url = "http://nodejs.org/dist/node-v${version}.tar.gz";
-    sha256 = "1vixb54an9zp2zvc0z8pn6r6bv823wwy9m06xr4zzss9apw5yh2w";
+    url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
+    sha256 = "d32d3af4e3286b383640df857d76c2fcca1a2e2cb85abb484483a0a49d09ae71";
   };
 
   patchPhase = ''
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ python openssl ];
 
-  meta = with stdenv.lib; { 
+  meta = with stdenv.lib; {
     description = "Event-driven I/O framework for the V8 JavaScript engine";
     homepage = http://nodejs.org;
     license = licenses.mit;
diff --git a/pkgs/games/LambdaHack/default.nix b/pkgs/games/LambdaHack/default.nix
index 51882f1dd8811..b30d7ec793f66 100644
--- a/pkgs/games/LambdaHack/default.nix
+++ b/pkgs/games/LambdaHack/default.nix
@@ -12,6 +12,11 @@ cabal.mkDerivation (self : {
   '';
   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 fa38b49905beb..dbf7ecae425f7 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/eduke32/default.nix b/pkgs/games/eduke32/default.nix
index 9ff05667f1e68..b99f8b09b9de6 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/freeciv/default.nix b/pkgs/games/freeciv/default.nix
new file mode 100644
index 0000000000000..f5b101b8882c5
--- /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/liquidwar/src-for-default.nix b/pkgs/games/liquidwar/src-for-default.nix
index d676adfdb14a2..a67b1e816f7b3 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.9beta";
-   name="liquidwar-0.0.9beta";
-   hash="1a4yqh79y6s3f6dv5kkwjdqzi62y3qbwrx6420fqpvdn1694ycr9";
+   version="0.0.10beta";
+   name="liquidwar-0.0.10beta";
+   hash="1fc1qfl7p3669dj6dy1wxvf85hhwgbazm3rc365ahsikdgz1c5m0";
    url="http://download.savannah.gnu.org/releases/liquidwar6/${version}/liquidwar6-${version}.tar.gz";
-   advertisedUrl="http://download.savannah.gnu.org/releases/liquidwar6/0.0.9beta/liquidwar6-0.0.9beta.tar.gz";
+   advertisedUrl="http://download.savannah.gnu.org/releases/liquidwar6/0.0.10beta/liquidwar6-0.0.10beta.tar.gz";
   
   
 }
diff --git a/pkgs/lib/platforms.nix b/pkgs/lib/platforms.nix
index 90ccf66f20c9d..e9ed1e226e794 100644
--- a/pkgs/lib/platforms.nix
+++ b/pkgs/lib/platforms.nix
@@ -13,5 +13,4 @@ rec {
   all = linux ++ darwin ++ cygwin ++ freebsd ++ openbsd;
   allBut = platform: lists.filter (x: platform != x) all;
   mesaPlatforms = linux ++ darwin ++ freebsd;
-  haskellPlatforms = ["i686-linux" "x86_64-linux" "i686-darwin"];
 }
diff --git a/pkgs/lib/strings.nix b/pkgs/lib/strings.nix
index b5f1043750333..73520a949c13f 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.,
diff --git a/pkgs/misc/busybox/default.nix b/pkgs/misc/busybox/default.nix
index a63411367e89b..f3a73514ed855 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 52daa939c7b32..8a9efdedcf97d 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.6"; 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 = "056mdbz0g1jjihk03xjyp4f1bxl2aksf2vzra1qjrdbp59q131zh";
+    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 ab978068e175e..50f117a653414 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/emulators/VisualBoyAdvance/default.nix b/pkgs/misc/emulators/VisualBoyAdvance/default.nix
new file mode 100644
index 0000000000000..964a0491adb4a
--- /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 0000000000000..646db9c45e661
--- /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/mupen64plus/default.nix b/pkgs/misc/emulators/mupen64plus/default.nix
new file mode 100644
index 0000000000000..d67121fe430ac
--- /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
index ad68be11e9504..9f93c9957d650 100644
--- a/pkgs/misc/emulators/uae/default.nix
+++ b/pkgs/misc/emulators/uae/default.nix
@@ -8,4 +8,11 @@ stdenv.mkDerivation {
   };
   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 293fe43d06537..425080d7c6253 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/src-for-default.nix b/pkgs/misc/emulators/wine/src-for-default.nix
index 8a742072fdea8..b6669843896a6 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.22";
-   name="wine-1.3.22";
-   hash="11m5m6dc2hx3nhjwlcxy8z880612aa4qh7ph6fanycby1ha5rh47";
+   version="1.3.27";
+   name="wine-1.3.27";
+   hash="1vdyxlsl2zlhlcl5npq59axlkvjmkp7yz5p9rvwkqia79xrs8qv1";
    url="http://prdownloads.sourceforge.net/wine/wine-${version}.tar.bz2";
-   advertisedUrl="http://prdownloads.sourceforge.net/wine/wine-1.3.22.tar.bz2";
+   advertisedUrl="http://prdownloads.sourceforge.net/wine/wine-1.3.27.tar.bz2";
   
   
 }
diff --git a/pkgs/misc/emulators/zsnes/default.nix b/pkgs/misc/emulators/zsnes/default.nix
index d878d34184a85..0b34fc0f9fec7 100644
--- a/pkgs/misc/emulators/zsnes/default.nix
+++ b/pkgs/misc/emulators/zsnes/default.nix
@@ -31,6 +31,8 @@ stdenv.mkDerivation {
   
   meta = {
     description = "A Super Nintendo Entertainment System Emulator";
-    license = "GPLv2";
+    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 2068f9fa221b0..442fb8a0e50d9 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -38,10 +38,10 @@ let
   };
 
   mainlineData = {
-    name = "ghostscript-9.02";
+    name = "ghostscript-9.04";
     src = fetchurl {
-      url = http://downloads.ghostscript.com/public/ghostscript-9.02.tar.bz2;
-      sha256 = "0np0kr02bsqzag9sdbcg2kkjda0rjsvi484ic28qyvx32fnjrsh3";
+      url = http://downloads.ghostscript.com/public/ghostscript-9.04.tar.bz2;
+      sha256 = "1i0bsfzwppzk112vy62ydz927m9dlc1wvywanzi09hnk9as20b7q";
     };
     meta = meta // {
       homepage = http://www.ghostscript.com/;
diff --git a/pkgs/misc/misc.nix b/pkgs/misc/misc.nix
index a0b13751f717c..15ea4f8bcc1ec 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
diff --git a/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix b/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
index 7679d0ead3684..c6aa7baea2fe8 100644
--- a/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
+++ b/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, fetchurl, 
-  cmake, glib, gtk, pkgconfig }:
+{ stdenv, fetchurl,
+  cmake, dbus_glib, glib, gtk, gtkLibs, pkgconfig, xorg }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.1";
-  name = "oxygen-gtk-${version}";  
+  version = "1.1.1";
+  name = "oxygen-gtk-${version}";
 
   src = fetchurl {
     url = "mirror://kde/stable/oxygen-gtk/${version}/src/${name}.tar.bz2";
-    sha256 = "0ki8qllr5ai48bl2pz8rxzf5cax08ckhgrn0nlf815ba83jfar32";
+    sha256 = "66d571f08ec999f56de412f42a0395c9dc60b73adaaece96c6da6e98353fe379";
   };
-  
-  buildInputs = [ cmake glib gtk pkgconfig ];
-  
+
+  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;
diff --git a/pkgs/os-specific/linux/alsa-plugins/default.nix b/pkgs/os-specific/linux/alsa-plugins/default.nix
index dc36757e020e1..2ae39d4cf16d9 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/blcr/default.nix b/pkgs/os-specific/linux/blcr/default.nix
index 01ab430b1ff7f..afe627f788660 100644
--- a/pkgs/os-specific/linux/blcr/default.nix
+++ b/pkgs/os-specific/linux/blcr/default.nix
@@ -1,42 +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 = https://ftg.lbl.gov/assets/projects/CheckpointRestart/downloads/blcr-0.8.2.tar.gz;
-    #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 = "0g2v67n40ikx5hja7zgnc2axif16r2sibi5vf0r4wjzc5z9gdfrh";
-    }
-  ];
 
-  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
     )
   '';
diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
index be21c759e5037..c0aec5a7b5698 100644
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ b/pkgs/os-specific/linux/bluez/default.nix
@@ -9,21 +9,30 @@ let
 in
    
 stdenv.mkDerivation rec {
-  name = "bluez-4.90";
+  name = "bluez-4.95";
    
   src = fetchurl {
     url = "mirror://kernel/linux/bluetooth/${name}.tar.gz";
-    sha256 = "18wq75m45q00fvddzgfqy1d4368649r2jl3j4yvpijymalc4jra7";
+    sha256 = "1xi087x2ggdywq63qp55wvi1iclk50hc42fp40kcsazw23j9vsnn";
   };
 
-  buildInputs = [ pkgconfig dbus.libs glib libusb alsaLib python makeWrapper
-    gst_all.gstreamer gst_all.gstPluginsBase readline libsndfile ];
+  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 --enable-udevrules --enable-configrules --enable-cups";
+  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
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index d2c2b5f13077e..9749b1568e460 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     (! 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 =
     ''
@@ -31,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/firmware/radeon-juniper/default.nix b/pkgs/os-specific/linux/firmware/radeon-juniper/default.nix
new file mode 100644
index 0000000000000..ad277ac8ddaea
--- /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
index ed44b2eed78c3..9a298ab96d4af 100644
--- a/pkgs/os-specific/linux/firmware/radeon-r600/default.nix
+++ b/pkgs/os-specific/linux/firmware/radeon-r600/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   name = "radeon-r600-firmware-2009-12-09";
 
   src = fetchurl {
diff --git a/pkgs/os-specific/linux/firmware/radeon-r700/default.nix b/pkgs/os-specific/linux/firmware/radeon-r700/default.nix
index 92e9597379907..09342f687e95b 100644
--- a/pkgs/os-specific/linux/firmware/radeon-r700/default.nix
+++ b/pkgs/os-specific/linux/firmware/radeon-r700/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   name = "radeon-r700-firmware-2009-12-09";
 
   src = fetchurl {
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 0000000000000..0ab7436ebfff3
--- /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/kernel/aufs2-33.patch b/pkgs/os-specific/linux/kernel/aufs2-33.patch
new file mode 100644
index 0000000000000..49a660b0c9e86
--- /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 0000000000000..000c6b995c71c
--- /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 0000000000000..9003e67620c6d
--- /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-39.patch b/pkgs/os-specific/linux/kernel/aufs2.1-39.patch
new file mode 100644
index 0000000000000..e98dc85a214f3
--- /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/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index ce609f2384993..a86aef1af8e3c 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,7 @@
 , extraMeta ? {}
 , ubootChooser ? null
 , postInstall ? ""
+, setModuleDir ? true
 
 , # After the builder did a 'make all' (kernel + modules)
   # we force building the target asked: bzImage/zImage/uImage/...
@@ -65,7 +69,7 @@ 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;
   };
@@ -74,7 +78,16 @@ stdenv.mkDerivation {
 
   generateConfig = ./generate-config.pl;
 
-  inherit preConfigure src module_init_tools localVersion postBuild postInstall;
+  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;
 
@@ -140,3 +153,4 @@ stdenv.mkDerivation {
     platforms = lib.platforms.linux;
   } // extraMeta;
 }
+
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 80aada9e7da4d..083948fd345be 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.57";
+    version = "2.6.27.59";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "15irwzzhccnrbc422h1z0p3dgs9qmk3r77w2c8via7rc4vwxsvp0";
+      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.32.nix b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
index dfbdc534e11b5..1c2e1fb5e30c8 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.41";
+    version = "2.6.32.45";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.32/linux-${version}.tar.bz2";
-      sha256 = "0s1ck6q1zv1jy7zgbm89f2lk1m991wrp2fp7cffrinnzmx8j96lk";
+      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 cab697dc1d78f..e473faa16a80d 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 a055487239625..d36a76864833c 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 0b0db0875ede6..d94c5f382a576 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.9";
+    version = "2.6.35.14";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "01mzbbi013k3fbfgnphq9j3a5j7k33vdq303yaxwfy1h2qd6gggn";
+      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 82c008802a052..4fa11413cabe8 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.3";
+    version = "2.6.36.4";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1kxj4m9f5iplbll1c5inszg5yxywakz533nl5p4ia84mq2ch03dc";
+      sha256 = "16pqjz3dgvaghfi0jqp2d0nqyz5fgbbxzs914vxslh2xxdxql0cg";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.38.nix b/pkgs/os-specific/linux/kernel/linux-2.6.38.nix
index a17fc8d7c7623..c9f2fc9068482 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.38.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.38.nix
@@ -191,11 +191,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.38.4";
+    version = "2.6.38.8";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "0v64kf4qh0smgag5sldl2q6wif84vglj84w9bc6xc282k1n1zmns";
+      sha256 = "16zrwb2wjsg02l4sbbm7aipq9f9v267ys4n6hmaixa6v5rrf7gbi";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.39.nix b/pkgs/os-specific/linux/kernel/linux-2.6.39.nix
index 10f8dbfe85995..44a82e0836d16 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.39.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.39.nix
@@ -192,11 +192,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.39";
+    version = "2.6.39.4";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1xk1bka63i2hhn5rfaa5pbyqqlwycc3nkwvz3m8aj67flgr1fkaq";
+      sha256 = "10qijh322zbcnsjq21rj228fwksx1ij23gal8zw67gxlvgp48vnj";
     };
 
     config = configWithPlatform stdenv.platform;
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 0000000000000..3d01e83858ff9
--- /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.4";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2";
+      sha256 = "1vypjcdii75h5f4zsw9lm8wzxd5ix0mk5p94c96hxv828mqqkmhk";
+    };
+
+    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 0000000000000..a513dc0f057e9
--- /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-rc4";
+
+    modDirVersion = "3.1.0-rc4";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v3.x/testing/linux-${version}.tar.bz2";
+      sha256 = "1inb4iyj9r7lk68bw1mznxk726n3cxcbylqnb62ycisi1z2gxwjw";
+    };
+
+    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/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 902be41f874c5..2b0d76d76edba 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -164,22 +164,22 @@ rec {
     };
 
   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
@@ -195,6 +195,15 @@ rec {
       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
@@ -213,6 +222,16 @@ rec {
       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
@@ -233,6 +252,26 @@ rec {
       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_2_6_15 =
diff --git a/pkgs/os-specific/linux/libatasmart/default.nix b/pkgs/os-specific/linux/libatasmart/default.nix
new file mode 100644
index 0000000000000..86dffde4b557c
--- /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/v2.nix b/pkgs/os-specific/linux/libnl/v2.nix
index cbe938d2ee411..cb5c022c3d4c3 100644
--- a/pkgs/os-specific/linux/libnl/v2.nix
+++ b/pkgs/os-specific/linux/libnl/v2.nix
@@ -9,7 +9,6 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ bison flex ];
-  postConfigure = "type -tp flex";
 
   meta = {
     homepage = "http://www.infradead.org/~tgr/libnl/";
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index 9a2dc2d28ace4..037a3d227c461 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,26 +1,30 @@
-{ stdenv, fetchurl, udev }:
+{ stdenv, fetchurl, pkgconfig, udev }:
 
 let
-  v = "2.02.65";
+  v = "2.02.87";
 in
 
 stdenv.mkDerivation {
   name = "lvm2-${v}";
-  
+
   src = fetchurl {
     url = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${v}.tgz";
-    sha256 = "1lbskrj4pxbipq8f0qhql3p1nqa796v4i1cy6n2fmmbs3fwmfh9a";
+    sha256 = "04d605dac9r0yz9khx9pq6a8jdsf9arda2rz1a2d1qr3jhlw4kvg";
   };
-  
-  configureFlags = "--disable-readline --enable-udev_rules --enable-udev_sync";
 
-  buildInputs = [ udev ];
-  
+  configureFlags =
+    "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
+
+  buildInputs = [ pkgconfig udev ];
+
+  patches = [ ./purity.patch ];
+
   # To prevent make install from failing.
   preInstall = "installFlags=\"OWNER= GROUP= confdir=$out/etc\"";
 
   meta = {
     homepage = http://sourceware.org/lvm2/;
     descriptions = "Tools to support Logical Volume Management (LVM) on Linux";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/lvm2/purity.patch b/pkgs/os-specific/linux/lvm2/purity.patch
new file mode 100644
index 0000000000000..8446e8e9ee9d6
--- /dev/null
+++ b/pkgs/os-specific/linux/lvm2/purity.patch
@@ -0,0 +1,55 @@
+TODO: fix path to blkid as well.
+
+Currently we set it to /sbin/blkid because in nixos we fix a lot of references
+to /sbin/blkid anyway.
+
+diff --git a/udev/10-dm.rules.in b/udev/10-dm.rules.in
+index 605e088..8865d54 100644
+--- a/udev/10-dm.rules.in
++++ b/udev/10-dm.rules.in
+@@ -19,9 +19,8 @@ KERNEL=="device-mapper", NAME="(DM_DIR)/control"
+ SUBSYSTEM!="block", GOTO="dm_end"
+ KERNEL!="dm-[0-9]*", GOTO="dm_end"
+ 
+-# Set proper sbin path, /sbin has higher priority than /usr/sbin.
+-ENV{DM_SBIN_PATH}="/sbin"
+-TEST!="$env{DM_SBIN_PATH}/dmsetup", ENV{DM_SBIN_PATH}="/usr/sbin"
++# Set proper sbin path. Exit if dmsetup is not present.
++ENV{DM_SBIN_PATH}="(sbindir)"
+ TEST!="$env{DM_SBIN_PATH}/dmsetup", GOTO="dm_end"
+ 
+ # Device created, major and minor number assigned - "add" event generated.
+diff --git a/udev/13-dm-disk.rules b/udev/13-dm-disk.rules
+index 271ca22..cdc583f 100644
+--- a/udev/13-dm-disk.rules
++++ b/udev/13-dm-disk.rules
+@@ -19,7 +19,7 @@ ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}"
+ 
+ ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
+ 
+-IMPORT{program}="$env{DM_SBIN_PATH}/blkid -o udev -p $tempnode"
++IMPORT{program}="/sbin/blkid -o udev -p $tempnode"
+ ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS="link_priority=-100"
+ ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+ ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
+diff --git a/udev/Makefile.in b/udev/Makefile.in
+index 11635bb..49cf732 100644
+--- a/udev/Makefile.in
++++ b/udev/Makefile.in
+@@ -12,6 +12,7 @@
+ # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 
+ srcdir = @srcdir@
++sbindir = @sbindir@
+ top_srcdir = @top_srcdir@
+ top_builddir = @top_builddir@
+ 
+@@ -26,7 +27,7 @@ include $(top_builddir)/make.tmpl
+ vpath %.rules $(srcdir)
+ 
+ %.rules: %.rules.in
+-	$(SED) -e "s/(DM_DIR)/$(DM_DIR)/" $< >$@
++	$(SED) -e "s/(DM_DIR)/$(DM_DIR)/" -e "s|(sbindir)|$(sbindir)|" $< >$@
+ 
+ %_install: %.rules
+ 	$(INSTALL_DATA) -D $< $(udevdir)/$(<F)
diff --git a/pkgs/os-specific/linux/mountall/default.nix b/pkgs/os-specific/linux/mountall/default.nix
index 134f7577c96da..d3b0311b449ad 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 6bf8c95276bac..890dab9bc885c 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
index b25321ca779cf..90722d74ace15 100644
--- a/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
       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
+      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
+      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
     '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index dec6bdbd29eb7..f2065e1aa019b 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 = "275.09.07"; 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 = "037zl60adks465vpcfxb74n2h7rzfwibv07d4gj5dg8i7h3v5l97";
+        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 = "1k26z747iy0gh94288d39cgzb90wcbm339hbhd4gw3klkswhza39";
+        sha256 = "14x80qirwlfxhphzqvi92lpgs82qnzb7hq0vd02rkbwvvnkhgdxd";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
diff --git a/pkgs/os-specific/linux/pm-utils/default.nix b/pkgs/os-specific/linux/pm-utils/default.nix
index b58555ba19f77..56fa5eed1951d 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/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index 59056e2feed87..745d6900e906e 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -1,21 +1,25 @@
 { stdenv, fetchurl, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid, vde2
-, libjpeg, libpng, ncurses }:
+, libjpeg, libpng, ncurses, python, glib }:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "qemu-kvm-0.14.1";
+  name = "qemu-kvm-0.15.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/kvm/${name}.tar.gz";
-    sha256 = "09yshk2qzlb37hyp8iygyyf2if2d7r21b7rgkl0jyvv4p1m4z755";
+    sha256 = "0y247bc2cyawliaiyk8k41kl3mcjvh52b9bgzvxv0h55zwdpg3l2";
   };
 
   patches = [ ./smb-tmpdir.patch ];
 
+  configureFlags = "--audio-drv-list=alsa";
+
+  enableParallelBuilding = true;
+
   buildInputs =
     [ zlib SDL alsaLib pkgconfig pciutils libuuid vde2 libjpeg libpng
-      ncurses
+      ncurses python glib
     ];
 
   preBuild =
diff --git a/pkgs/os-specific/linux/rtkit/default.nix b/pkgs/os-specific/linux/rtkit/default.nix
new file mode 100644
index 0000000000000..05ebd0bf84552
--- /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/udev/166.nix b/pkgs/os-specific/linux/udev/173.nix
index 11e044244b568..ba96717e494a5 100644
--- a/pkgs/os-specific/linux/udev/166.nix
+++ b/pkgs/os-specific/linux/udev/173.nix
@@ -4,11 +4,11 @@
 assert stdenv ? glibc;
 
 stdenv.mkDerivation rec {
-  name = "udev-166";
+  name = "udev-173";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/kernel/hotplug/${name}.tar.bz2";
-    sha256 = "1msl8cwf47shmz5lr2w9w3nzzxqnf5dc0bs7dvbnxmbal60p7lpm";
+    sha256 = "1bxadi4bi11v8ipzj22wknv8hsb0wgdb99bx3w9w33rgl4aq78bh";
   };
 
   buildInputs = [ gperf pkgconfig glib acl libusb usbutils ];
@@ -16,30 +16,36 @@ stdenv.mkDerivation rec {
   configureFlags =
     ''
       --with-pci-ids-path=${pciutils}/share/pci.ids
-      --disable-introspection
+      --enable-udev_acl --enable-edd
+      --disable-introspection --libexecdir=$(out)/lib/udev
       --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
       # 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
+      for i in $out/lib/udev/write_cd_rules $out/lib/udev/write_net_rules; do
         substituteInPlace $i \
-          --replace /lib/udev $out/libexec \
+          --replace /lib/udev $out/lib/udev \
           --replace /etc/udev/rules.d /var/lib/udev/rules.d
       done
 
       # Don't set PATH to /bin:/sbin; won't work in NixOS.
-      sed -e '/PATH=/d' -i $out/libexec/rule_generator.functions
+      sed -e '/PATH=/d' -i $out/lib/udev/rule_generator.functions
 
-      ln -s $out/lib/ConsoleKit $out/etc/ConsoleKit
+      ln -sv $out/lib/ConsoleKit $out/etc/ConsoleKit
 
-      rm -rf $out/share/gtk-doc
+      rm -frv $out/share/gtk-doc
     '';
-  
+
+  patches = [ ./custom-rules.patch ];
+
   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/custom-rules.patch b/pkgs/os-specific/linux/udev/custom-rules.patch
new file mode 100644
index 0000000000000..647691acfb161
--- /dev/null
+++ b/pkgs/os-specific/linux/udev/custom-rules.patch
@@ -0,0 +1,91 @@
+commit c49ec33ba0f1a7f11b188913bb4895360ced67f8
+Author: Yury G. Kudryashov <urkud.urkud@gmail.com>
+Date:   Tue Aug 16 16:28:56 2011 +0400
+
+    Upstream considers presence of rules_dir=... in udev.conf as a very special case.
+    In particular, they disable /dev/.udev/*. Re-enable it.
+
+diff --git a/udev/udev-rules.c b/udev/udev-rules.c
+index 6bf2726..c1ae1f3 100644
+--- a/udev/udev-rules.c
++++ b/udev/udev-rules.c
+@@ -1812,6 +1812,7 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
+ 	struct udev_list file_list;
+ 	struct udev_list_entry *file_loop;
+ 	struct token end_token;
++	char runpathrules[UTIL_PATH_SIZE];
+ 
+ 	rules = calloc(1, sizeof(struct udev_rules));
+ 	if (rules == NULL)
+@@ -1854,22 +1855,21 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
+ 	rules->trie_nodes_cur = 1;
+ 
+ 	if (udev_get_rules_path(udev) == NULL) {
+-		char filename[UTIL_PATH_SIZE];
+ 
+ 		/* /lib/udev -- default/package rules */
+ 		add_matching_files(udev, &file_list, LIBEXECDIR "/rules.d", ".rules");
+ 
+ 		/* /etc/udev -- system-specific/user/admin rules */
+ 		add_matching_files(udev, &file_list, SYSCONFDIR "/udev/rules.d", ".rules");
+-
+-		/* /run/udev -- throw-away/temporary rules */
+-		util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev), "/rules.d", NULL);
+-		add_matching_files(udev, &file_list, filename, ".rules");
+ 	} else {
+ 		/* custom rules files location for testing */
+ 		add_matching_files(udev, &file_list, udev_get_rules_path(udev), ".rules");
+ 	}
+ 
++	/* /run/udev -- throw-away/temporary rules */
++	util_strscpyl(runpathrules, sizeof(runpathrules), udev_get_run_path(udev), "/rules.d", NULL);
++	add_matching_files(udev, &file_list, runpathrules, ".rules");
++
+ 	/* add all filenames to the string buffer */
+ 	udev_list_entry_foreach(file_loop, udev_list_get_entry(&file_list)) {
+ 		const char *filename = udev_list_entry_get_value(file_loop);
+diff --git a/udev/udevd.c b/udev/udevd.c
+index f1a31e7..45d10b6 100644
+--- a/udev/udevd.c
++++ b/udev/udevd.c
+@@ -1198,6 +1198,8 @@ int main(int argc, char *argv[])
+ 	struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker;
+ 	struct udev_ctrl_connection *ctrl_conn = NULL;
+ 	int rc = 1;
++	char filename[UTIL_PATH_SIZE];
++	struct stat statbuf;
+ 
+ 	udev = udev_new();
+ 	if (udev == NULL)
+@@ -1480,23 +1482,21 @@ int main(int argc, char *argv[])
+ 		inotify_add_watch(fd_inotify, udev_get_rules_path(udev),
+ 				  IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
+ 	} else {
+-		char filename[UTIL_PATH_SIZE];
+-		struct stat statbuf;
+ 
+ 		inotify_add_watch(fd_inotify, LIBEXECDIR "/rules.d",
+ 				  IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
+ 		inotify_add_watch(fd_inotify, SYSCONFDIR "/udev/rules.d",
+ 				  IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
++	}
+ 
+-		/* watch dynamic rules directory */
+-		util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev), "/rules.d", NULL);
+-		if (stat(filename, &statbuf) != 0) {
+-			util_create_path(udev, filename);
+-			mkdir(filename, 0755);
+-		}
+-		inotify_add_watch(fd_inotify, filename,
+-				  IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
++	/* watch dynamic rules directory */
++	util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev), "/rules.d", NULL);
++	if (stat(filename, &statbuf) != 0) {
++		util_create_path(udev, filename);
++		mkdir(filename, 0755);
+ 	}
++	inotify_add_watch(fd_inotify, filename,
++			  IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
+ 	udev_watch_restore(udev);
+ 
+ 	/* block and listen to all signals on signalfd */
diff --git a/pkgs/os-specific/linux/udisks/default.nix b/pkgs/os-specific/linux/udisks/default.nix
new file mode 100644
index 0000000000000..17482f698999d
--- /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 0000000000000..1896c757557a8
--- /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 0000000000000..b0feb09cb86aa
--- /dev/null
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -0,0 +1,34 @@
+{ 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 = [ dbus_glib polkit intltool libxslt docbook_xsl udev libusb1 ];
+
+  buildNativeInputs = [ xz pkgconfig ];
+
+  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/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
new file mode 100644
index 0000000000000..d20821e137c3f
--- /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/xf86-input-multitouch/default.nix b/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
new file mode 100644
index 0000000000000..b8f88216dfa5a
--- /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 260788c4538d6..0000000000000
--- a/pkgs/os-specific/linux/xf86-input-wacom/10-wacom.rules
+++ /dev/null
@@ -1,16 +0,0 @@
-# From http://linuxwacom.sourceforge.net/index.php/howto/newwacom
-# udev rules for wacom tablets.
-
-KERNEL!="event[0-9]*", GOTO="wacom_end"
-# Multiple interface support for stylus and touch devices.
-DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="00", ENV{WACOM_TYPE}="stylus"
-DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="01", ENV{WACOM_TYPE}="touch"
-# Convenience links for the common case of a single tablet. We could do just this:
-#ATTRS{idVendor}=="056a", SYMLINK+="input/wacom-$env{WACOM_TYPE}"
-# but for legacy reasons, we keep the input/wacom link as the generic stylus device.
-ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/wacom"
-ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}=="touch", SYMLINK+="input/wacom-touch"
-# Check and repossess the device if a module other than the wacom one
-# is already bound to it.
-ATTRS{idVendor}=="056a", ACTION=="add", RUN+="check_driver wacom $devpath $env{ID_BUS}"
-LABEL="wacom_end"
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index 1102b2ebe40a8..9cc25174c51fb 100644
--- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, fetchurl, 
-  file, inputproto, libX11, libXext, libXi, libXrandr, libXrender,
-  ncurses, pkgconfig, randrproto, xorgserver, xproto }:
+{ stdenv, fetchurl
+, file, inputproto, libX11, libXext, libXi, libXrandr, libXrender
+, ncurses, pkgconfig, randrproto, xorgserver, xproto, udev }:
 
 stdenv.mkDerivation rec {
-  name = "xf86-input-wacom";
-  version = "0.10.10";
+  name = "xf86-input-wacom-0.11.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/linuxwacom/${name}-${version}.tar.bz2";
-    sha256 = "03yggp2ww64va6gmasl0gy0rbfcyb1zlj9kapp9kvhk2j4458fdr";
+    url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2";
+    sha256 = "1jmnrkf89a3jjbpn17gyndlv9lqc0n7qwyi22hraxypq213gjclx";
   };
 
-  buildInputs = [ file inputproto libX11 libXext libXi libXrandr libXrender
-    ncurses pkgconfig randrproto xorgserver xproto ];
+  buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender
+    ncurses pkgconfig randrproto xorgserver xproto udev ];
 
   preConfigure = ''
     ensureDir $out/share/X11/xorg.conf.d
@@ -20,12 +19,6 @@ stdenv.mkDerivation rec {
     --with-sdkdir=$out/include/xorg --with-xorg-conf-dir=$out/share/X11/xorg.conf.d"
   '';
 
-  postInstall =
-    ''
-      ensureDir $out/lib/udev/rules.d
-      cp ${./10-wacom.rules} $out/lib/udev/rules.d/10-wacom.rules
-    '';
-
   meta = with stdenv.lib; {
     maintainers = [ maintainers.goibhniu maintainers.urkud ];
     description = "Wacom digitizer driver for X11";
diff --git a/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix b/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix
index 96fd594aacb73..dbae8aad1427a 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.31";
+  name = "tomcat-connectors-1.2.32";
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = http://apache.hippo.nl//tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz;
-    sha256 = "0604mcxj7zdzdl2f8krpj8ig1r5qkga3hia28pijdpvy9n6pxij8";
+    url = http://apache.xl-mirror.nl//tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.tar.gz;
+    sha256 = "1dim62warzy1hqvc7cvnqsbq475sr6vpgwd6gfmddmkgw155saji";
   };
 
   inherit apacheHttpd;
diff --git a/pkgs/servers/http/mini-httpd/default.nix b/pkgs/servers/http/mini-httpd/default.nix
new file mode 100644
index 0000000000000..a6ae56b653411
--- /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 0b2c971e6e54f..32526ddf65de4 100644
--- a/pkgs/servers/http/myserver/default.nix
+++ b/pkgs/servers/http/myserver/default.nix
@@ -1,17 +1,17 @@
 { fetchurl, stdenv, libgcrypt, libevent, libidn, gnutls
 , libxml2, zlib, guile, texinfo, cppunit, xz, psmisc }:
 
-let version = "0.10"; in
+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 ./installable-binary.patch ];
+      [ ./disable-dns-lookup-in-chroot.patch ];
 
     buildInputs =
       [ libgcrypt libevent libidn gnutls libxml2 zlib guile texinfo xz ]
diff --git a/pkgs/servers/http/redstore/default.nix b/pkgs/servers/http/redstore/default.nix
index aa7e5e63cda50..c47449ce6bd74 100644
--- a/pkgs/servers/http/redstore/default.nix
+++ b/pkgs/servers/http/redstore/default.nix
@@ -1,15 +1,21 @@
-{ stdenv, fetchurl, redland, pkgconfig, gmp }:
+{ stdenv, fetchurl, redland, pkgconfig, gmp, zlib, librdf_raptor2
+  , librdf_rasqal }:
 
 stdenv.mkDerivation rec {
-  name = "redstore-0.4";
+  name = "redstore-0.5.2";
 
   src = fetchurl {
-    url = "http://redstore.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1fs54v0d0kkqaz9ajacabb8wifrglvg6kkhd5b0mxmnng352wpp7";
+    url = "http://www.aelius.com/njh/redstore/${name}.tar.gz";
+    sha256 = "fdbe499a7bbe8c8a756ecb738b83ea375e96af16a1d74245b75600d4d40adb7d";
   };
 
-  buildInputs = [ gmp pkgconfig redland ];
-      
+  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"
+  '';
+
   meta = {
     description = "An HTTP interface to Redland RDF store";
     maintainers = [ stdenv.lib.maintainers.raskin ];
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 40af62072439e..41c819cbe3fa4 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 699f2c96ec0bc..c76c52e5fcc48 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -21,11 +21,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "samba-3.5.8";
+  name = "samba-3.6.0";
 
   src = fetchurl {
     url = "http://us3.samba.org/samba/ftp/stable/${name}.tar.gz";
-    sha256 = "15i7i0agcsrsq23d8pmbw5n9mbb76djiwjwgni9xijpd0ql3y7ik";
+    sha256 = "0gzm09l75i95iibcxykc2h2m9haqx70jp1bpis1mhmvqwillbhg1";
   };
 
   buildInputs = [ readline pam openldap popt iniparser libunwind fam acl cups ]
@@ -51,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
diff --git a/pkgs/servers/sip/sipwitch/default.nix b/pkgs/servers/sip/sipwitch/default.nix
index 4e6ba02f12ba6..2e2e24938a3fd 100644
--- a/pkgs/servers/sip/sipwitch/default.nix
+++ b/pkgs/servers/sip/sipwitch/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, pkgconfig, ucommon, libosip, libexosip, gnutls, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "sipwitch-1.0.3";
+  name = "sipwitch-1.1.1";
 
   src = fetchurl {
     url = "mirror://gnu/sipwitch/${name}.tar.gz";
-    sha256 = "0mip2bwgavmflg30zcq3nzbg3js12wixkivxvbsnai9vfllaapw0";
+    sha256 = "14irv1zda6xjsrizc0dvy85fcjx3szbb94jkh3q4s20ywc4s41kx";
   };
 
   buildInputs = [ pkgconfig ucommon libosip libexosip gnutls zlib ];
diff --git a/pkgs/servers/sql/mysql/jdbc/builder.sh b/pkgs/servers/sql/mysql/jdbc/builder.sh
index a85cd11d5d2d3..29ecbc1aebe3d 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 0e2b38e100a11..0f411b43f9f0e 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/mysql55/default.nix b/pkgs/servers/sql/mysql55/default.nix
new file mode 100644
index 0000000000000..6a824b4f51c7b
--- /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 b302dc697142c..20c3d1f2cf902 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/squid/squids.nix b/pkgs/servers/squid/squids.nix
index 02da81b3a7aee..1c64109d5ccae 100644
--- a/pkgs/servers/squid/squids.nix
+++ b/pkgs/servers/squid/squids.nix
@@ -2,13 +2,13 @@ args: with args;
 let edf = composableDerivation.edf; in
 rec {
   squid30 = composableDerivation.composableDerivation {} {
-    name = "squid-3.0-stable5";
+    name = "squid-3.0-stable26";
 
     buildInputs = [perl];
 
     src = args.fetchurl {
-      url = http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE5.tar.bz2;
-      sha256 = "1m4ccpjw30q9vwsycmgg9dmhly0mpznvxrch6f7dxgfzpjp26l7w";
+      url = http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE26.tar.bz2;
+      sha256 = "3e54ae3ad09870203862f0856c7d0cca16a85f62d5012085009003ee3d5467b4";
     };
 
     configureFlags = ["--enable-ipv6"];
@@ -21,22 +21,25 @@ rec {
 
   };
 
-  squid3Beta = squid30.merge {
-    name = "squid-3.1-beta";
+  squid31 = squid30.merge {
+    name = "squid-3.1.15";
     src = args.fetchurl {
-      url = http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.0.16.tar.bz2;
-      sha256 = "0pjz8dj04146hgdlfh0hbwdsdahsicdkafj5z9nkghbjavj1x5ny";
+      url = http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.15.tar.bz2;
+      sha256 = "1300f44dd4783697bacc262a7a9b32dbc9f550367fe82b70262864fdff715a35";
     };
     configureFlags = ["--enable-ipv6"];
   };
 
-  squid3Head = squid3Beta.merge {
-    name = "squid-3.1-HEAD";
+  squid32Beta = squid30.merge {
+    name = "squid-3.2.0.11";
     src = args.fetchurl {
-      url = http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.0.3-20081221.tar.bz2;
-      md5 = "345b50251dcc369e1be992d0a4a4c801";
+      url = http://www.squid-cache.org/Versions/v3/3.2/squid-3.2.0.11.tar.bz2;
+      sha256 = "aa5b9a85e1a90c4adb591c3e796c3fdfb166d8d2c814165d70692636321f69ae";
     };
+    configureFlags = ["--enable-ipv6"];
+    buildInputs = [openldap pam db4 cyrus_sasl libcap expat libxml2
+      libtool openssl];
   };
 
-  latest = squid3Beta;
+  latest = squid32Beta;
 }
diff --git a/pkgs/servers/x11/xorg/libpciaccess-apple.patch b/pkgs/servers/x11/xorg/libpciaccess-apple.patch
new file mode 100644
index 0000000000000..a005c03cbbe48
--- /dev/null
+++ b/pkgs/servers/x11/xorg/libpciaccess-apple.patch
@@ -0,0 +1,26 @@
+diff -Naur libpciaccess-0.12.1-orig/src/common_interface.c libpciaccess-0.12.1/src/common_interface.c
+--- libpciaccess-0.12.1-orig/src/common_interface.c	2010-07-12 00:32:05.000000000 -0400
++++ libpciaccess-0.12.1/src/common_interface.c	2011-08-29 00:48:17.000000000 -0400
+@@ -67,6 +67,22 @@
+ # define HTOLE_32(x)   (x)
+ #endif /* Solaris */
+ 
++#elif defined(__APPLE__)
++
++#include <architecture/byte_order.h>
++
++#if __BYTE_ORDER == __BIG_ENDIAN
++# define LETOH_16(x)   OSSwapInt16(x)
++# define HTOLE_16(x)   OSSwapInt16(x)
++# define LETOH_32(x)   OSSwapInt32(x)
++# define HTOLE_32(x)   OSSwapInt32(x)
++#else
++# define LETOH_16(x)   (x)
++# define HTOLE_16(x)   (x)
++# define LETOH_32(x)   (x)
++# define HTOLE_32(x)   (x)
++#endif /* darwin */
++
+ #else
+ 
+ #include <sys/endian.h>
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index a768ea1924498..a624d27c2af28 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -47,6 +47,10 @@ in
     buildNativeInputs = [ args.perl ];
   };
 
+  libpciaccess = attrs : attrs // {
+    patches = [ ./libpciaccess-apple.patch ];
+  };
+
   libX11 = attrs: attrs // {
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
     postInstall =
@@ -152,6 +156,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=\".\"";
   };
diff --git a/pkgs/shells/bash-completion/default.nix b/pkgs/shells/bash-completion/default.nix
new file mode 100644
index 0000000000000..0cda358b8efbe
--- /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/tools/X11/xmacro/default.nix b/pkgs/tools/X11/xmacro/default.nix
index 1b18138f28b34..12bb2903107cb 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 7ecb5cd22b59e..4ea21acac4c9e 100644
--- a/pkgs/tools/X11/xnee/default.nix
+++ b/pkgs/tools/X11/xnee/default.nix
@@ -2,17 +2,17 @@
 , gtk, libXi, inputproto, pkgconfig, recordproto, texinfo }:
 
 stdenv.mkDerivation rec {
-  name = "xnee-3.09";
+  name = "xnee-3.10";
 
   src = fetchurl {
     url = "mirror://gnu/xnee/${name}.tar.gz";
-    sha256 = "08171scqiqzgmbq03rwjvlsakvw9cqrr7h3b743j14z4jzbasi8i";
+    sha256 = "0mkbp0gikm1mv9g2v0vs7krinkz392p1crvaira8ml9q94py0q32";
   };
 
   patchPhase =
     '' for i in `find cnee/test -name \*.sh`
        do
-         sed -i "$i" -e's|/bin/bash|/bin/sh|g'
+         sed -i "$i" -e's|/bin/bash|/bin/sh|g ; s|/usr/bin/env bash|/bin/sh|g'
        done
     '';
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     # Do a static build because `libxnee' doesn't get installed anyway.
-    [ "--disable-gnome-applet" "--disable-shared" "--enable-static" ];
+    [ "--disable-gnome-applet" "--enable-static" ];
 
   # `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
   # lacks libXi.
diff --git a/pkgs/tools/archivers/zip/builder.sh b/pkgs/tools/archivers/zip/builder.sh
deleted file mode 100644
index da58762b4342b..0000000000000
--- 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 9498bf089ff25..884af0f0b0354 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 0000000000000..c6ad08768231e
--- /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 0000000000000..e08ea1e03f4bb
--- /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/cd-dvd/xorriso/default.nix b/pkgs/tools/cd-dvd/xorriso/default.nix
index e1ff13b4ffc60..1b489f9a5caf0 100644
--- a/pkgs/tools/cd-dvd/xorriso/default.nix
+++ b/pkgs/tools/cd-dvd/xorriso/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libcdio, zlib, bzip2, readline, acl }:
 
 stdenv.mkDerivation rec {
-  name = "xorriso-1.1.0.pl01";
+  name = "xorriso-1.1.4";
 
   src = fetchurl {
     url = "mirror://gnu/xorriso/${name}.tar.gz";
-    sha256 = "0718p8acgn46zms0672xlaxav1acj79wsy5yif6gai5s62zw18l9";
+    sha256 = "0zxmln5kw5prqrs8bahwz4lhvl914xphsjizlz3nr9y2l39350j8";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/filesystems/dosfstools/default.nix b/pkgs/tools/filesystems/dosfstools/default.nix
index f5e51430af399..21e2ceea9dd80 100644
--- a/pkgs/tools/filesystems/dosfstools/default.nix
+++ b/pkgs/tools/filesystems/dosfstools/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dosfstools-3.0.9";
+  name = "dosfstools-3.0.11";
 
   src = fetchurl {
     url = "http://www.daniel-baumann.ch/software/dosfstools/${name}.tar.bz2";
-    sha256 = "13s5s0hvhmn7r4ppqmw8nqgdm5v5vc6r5j44kn87wl5cmrpnfqrz";
+    sha256 = "1a6rzjy82f6579ywaln33g1wc7k8gbgjdss9q2q8daplac7pmcll";
   };
 
   makeFlags = "PREFIX=$(out)";
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index c950810026a81..9ebab38984bca 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, fuse, boost, rlog }:
 
 stdenv.mkDerivation {
-  name = "encfs-1.6.1";
+  name = "encfs-1.7.4";
 
   src = fetchurl {
-    url = "http://encfs.googlecode.com/files/encfs-1.6-1.tgz";
-    sha256 = "0k50ic5nyibb9giif9dqm6sj20q0yzri3drg78m788z17xp060mw";
+    url = "http://encfs.googlecode.com/files/encfs-1.7.4.tgz";
+    sha256 = "1a3h47f4h0qdc0bf3vic1i8wrdw5nkx22mml4wsvmmrd9zqg0bi8";
   };
 
   buildInputs = [ boost fuse openssl rlog ];
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 92e7d854fd886..606914cd976ea 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/xtreemfs/default.nix b/pkgs/tools/filesystems/xtreemfs/default.nix
new file mode 100644
index 0000000000000..98657891f2d67
--- /dev/null
+++ b/pkgs/tools/filesystems/xtreemfs/default.nix
@@ -0,0 +1,79 @@
+x@{builderDefsPackage
+  , boost, fuse, openssl, cmake, attr, jdk, ant, which, python, file
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="XtreemFS";
+    version="1.3.0";
+    name="${baseName}-${version}";
+    url="http://xtreemfs.googlecode.com/files/${name}.tar.gz";
+    hash="15rg3dh22kb2g94fmbb6r32a9qfl3yr4ql17rwj50l4y8wrcx0hf";
+  };
+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" "fixMakefile" "doMakeInstall" "fixInterpreterBin"
+    "fixInterpreterEtc"
+    "usrIsOut"];
+
+  setVars = a.noDepEntry ''
+    export JAVA_HOME="${jdk}"
+    export ANT_HOME="${ant}"
+    export CMAKE_HOME=${cmake}
+  '';
+
+  fixMakefile = a.fullDepEntry ''
+    sed -e 's@DESTDIR)/usr@DESTDIR)@g' -i Makefile
+
+    sed -e 's@/usr/bin/@@g' -i cpp/thirdparty/protobuf-*/configure
+    sed -e 's@/usr/bin/@@g' -i cpp/thirdparty/protobuf-*/gtest/configure
+    sed -e 's@/usr/bin/@@g' -i cpp/thirdparty/gtest-*/configure
+  '' ["doUnpack" "minInit"];
+
+  fixInterpreterBin = a.doPatchShebangs "$out/bin";
+  fixInterpreterEtc = a.doPatchShebangs "$out/etc/xos/xtreemfs";
+
+  usrIsOut = a.fullDepEntry ''
+    sed -e "s@/usr/@$out/@g" -i \
+      "$out"/{bin/xtfs_*,etc/xos/xtreemfs/*.*,etc/xos/xtreemfs/*/*,etc/init.d/*}
+    sed -e "s@JAVA_HOME=/usr@JAVA_HOME=${jdk}@g" -i \
+      "$out"/{bin/xtfs_*,etc/init.d/*}
+  '' ["minInit"];
+
+  makeFlags = [
+    ''DESTDIR="$out"''
+    ''SHELL="${a.stdenv.shell}"''
+  ];
+      
+  meta = {
+    description = "A distributed filesystem";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.bsd3;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://xtreemfs.org/download_sources.php";
+    };
+  };
+}) 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 0000000000000..f2fe1d959303c
--- /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/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index 868ea6e4b5d65..04a0662a3b6e1 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/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
new file mode 100644
index 0000000000000..0b0120ab27918
--- /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/mc/default.nix b/pkgs/tools/misc/mc/default.nix
index 4a76adfd62160..d3ea7a38a74bd 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/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 2ddbc9620823d..f9a35b235fc98 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20110622";
+  name = "parallel-20110822";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "1fy2csbkcd4hiivsx6qn5hppqazyff5n83c5c8s5dzbnkj0lmczr";
+    sha256 = "0ryj97b9w2mzvmnqhkh384s59v62gf0vlyj8qphiy34505x5pznb";
   };
 
   patchPhase =
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index b45b1a0aa1fbe..46be78965fbd7 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/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index 998737660242f..a7a08f291872f 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/networking/atftp/default.nix b/pkgs/tools/networking/atftp/default.nix
new file mode 100644
index 0000000000000..2136762e6e0df
--- /dev/null
+++ b/pkgs/tools/networking/atftp/default.nix
@@ -0,0 +1,55 @@
+x@{builderDefsPackage
+  , readline, tcp_wrappers, pcre
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="atftp";
+    version="0.7";
+    name="${baseName}-${version}";
+    url="mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg.orig.tar.gz";
+    hash="0nd5dl14d6z5abgcbxcn41rfn3syza6s57bbgh4aq3r9cxdmz08q";
+  };
+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 = ["doPatch" "doConfigure" "doMakeInstall"];
+      
+  debianPatch = a.fetchurl {
+    url = http://patch-tracker.debian.org/patch/nondebian/dl/atftp/0.7.dfsg-10;
+    sha256 = "0vannjp0wxvk10xxlr3hirgf0g57n9dr4vhmsyfd8x4cwgxwfgsa";
+  };
+
+  patches = [debianPatch];
+
+  meta = {
+    description = "Advanced tftp tools";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.gpl2Plus;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://packages.debian.org/source/sid/atftp";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/isync/default.nix b/pkgs/tools/networking/isync/default.nix
index 03abdbcca6261..aca9b47195d31 100644
--- a/pkgs/tools/networking/isync/default.nix
+++ b/pkgs/tools/networking/isync/default.nix
@@ -8,6 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1xmgzypl5a3i0fz1ca55vfbs5mv2l9icwf2gk8rvlbwrkn2wid68";
   };
 
+  patches = [ ./isync-recursice-imap.patch ]; # usefull patch to enable subfolders listing
   buildInputs = [ openssl pkgconfig db4 ];
 
   meta = {
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 0000000000000..db12069950fdb
--- /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/netboot/default.nix b/pkgs/tools/networking/netboot/default.nix
new file mode 100644
index 0000000000000..a834ffc37396e
--- /dev/null
+++ b/pkgs/tools/networking/netboot/default.nix
@@ -0,0 +1,60 @@
+x@{builderDefsPackage
+  , fetchgit, ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["fetchgit"];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    version="git-head-${rev}";
+    baseName="netboot";
+    rev="19a955cd87b399a5b56";
+    name="${baseName}-git-head";
+    url="git://github.com/ITikhonov/netboot.git";
+    hash="7610c734dc46183439c161d327e7ef6a3d5bc07b5173850b92f71ec047b109d6";
+  };
+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 = ["doBuild" "doDeploy"];
+
+  doBuild = a.fullDepEntry ''
+    gcc netboot.c -o netboot
+  '' ["doUnpack" "addInputs"];
+
+  doDeploy = a.fullDepEntry ''
+    ensureDir "$out/bin"
+    cp netboot "$out/bin"
+  '' ["defEnsureDir" "minInit"];
+      
+  meta = {
+    description = "Mini PXE server";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free-noncopyleft";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "https://github.com/ITikhonov/netboot";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/builder.sh b/pkgs/tools/networking/p2p/gtk-gnutella/builder.sh
deleted file mode 100644
index 33dec4ff34d09..0000000000000
--- a/pkgs/tools/networking/p2p/gtk-gnutella/builder.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-source $stdenv/setup
-
-configureScript="./Configure"
-
-dontAddPrefix=1
-
-configureFlags="-d -e -D prefix=$out -D gtkversion=2 -D official=true"
-
-genericBuild
\ No newline at end of file
diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index 239b76c940f9f..e30192598ccde 100644
--- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -1,11 +1,29 @@
-{stdenv, fetchurl, pkgconfig, glib, gtk, libxml2}:
+{stdenv, fetchurl, pkgconfig, glib, gtk, libxml2, bison, gettext, zlib}:
 
+let
+  name = "gtk-gnutella";
+  version = "0.97";
+in
 stdenv.mkDerivation {
-  name = "gtk-gnutella-0.96.1";
-  builder = ./builder.sh;
+  name = "${name}-${version}";
+
   src = fetchurl {
-    url = mirror://sourceforge/gtk-gnutella/gtk-gnutella-0.96.1.tar.bz2;
-    md5 = "6529379cc105c1e98f501a67e8e875fd";
+    url = "mirror://sourceforge/${name}/${name}-${version}.tar.bz2";
+    sha256 = "0l2gdzp517hjk31318djq0sww6kzckzl9rfqvhgspihn874lm9hb";
+  };
+
+  buildInputs = [pkgconfig glib gtk libxml2 bison gettext zlib];
+
+  NIX_LDFLAGS = "-rpath ${zlib}/lib";
+  configureScript = "./Configure";
+  dontAddPrefix = true;
+  configureFlags = "-d -e -D prefix=$out -D gtkversion=2 -D official=true";
+
+  meta = {
+    homepage = "http://gtk-gnutella.sourceforge.net/";
+    description = "a server/client for Gnutella";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
   };
-  buildInputs = [pkgconfig glib gtk libxml2];
 }
diff --git a/pkgs/tools/networking/pdsh/default.nix b/pkgs/tools/networking/pdsh/default.nix
index ed437d37b52bf..07dfd5c30a71f 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}:
 
+let
+  name = "pdsh-2.26";
+in
 stdenv.mkDerivation {
-  name = "pdsh-2.25";
+  inherit name;
+
   src = fetchurl {
-    url = "http://pdsh.googlecode.com/files/pdsh-2.25.tar.bz2";
-    sha256 = "00cigkpdmabvh2aqzw2qbs6i7yj5x4lg1196ap0k9gqdnw0fd70z";
+    url = "http://pdsh.googlecode.com/files/${name}.tar.bz2";
+    sha256 = "ada2f35509064bf9cd0fd5ca39a351108cdd6f5155b05f39f1711a271298469a";
   };
 
   buildInputs = [perl readline ssh pam];
@@ -18,21 +22,13 @@ stdenv.mkDerivation {
     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"
     )
   '';
diff --git a/pkgs/tools/networking/s3cmd/default.nix b/pkgs/tools/networking/s3cmd/default.nix
new file mode 100644
index 0000000000000..4b12ce4c59868
--- /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/tftp-hpa/default.nix b/pkgs/tools/networking/tftp-hpa/default.nix
new file mode 100644
index 0000000000000..95420b48a301a
--- /dev/null
+++ b/pkgs/tools/networking/tftp-hpa/default.nix
@@ -0,0 +1,48 @@
+x@{builderDefsPackage
+  , tcp_wrappers
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="tftp-hpa";
+    version="5.1";
+    name="${baseName}-${version}";
+    url="mirror://kernel/software/network/tftp/${name}.tar.bz2";
+    hash="0k72s0c7wm4fyb6lqfypdkcy6rimanr49slimx8p0di69w394gzx";
+  };
+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 = "TFTP tools - a lot of fixes on top of BSD TFTP";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = a.lib.licenses.bsd3;
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.kernel.org/pub/software/network/tftp/";
+    };
+  };
+}) x
+
diff --git a/pkgs/tools/package-management/cabal-install/0.10.2.nix b/pkgs/tools/package-management/cabal-install/0.10.2.nix
index 8fa67946477a7..e71c99cd0c37e 100644
--- a/pkgs/tools/package-management/cabal-install/0.10.2.nix
+++ b/pkgs/tools/package-management/cabal-install/0.10.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.10.2"; # Haskell Platform 2011.2.0.0
+  version = "0.10.2";
   sha256 = "05gmgxdlymp66c87szx1vq6hlraispdh6pm0n85s74yihjwwhmv3";
-  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.6.2.nix b/pkgs/tools/package-management/cabal-install/0.6.2.nix
index aafafab453de8..83a2121a16be6 100644
--- a/pkgs/tools/package-management/cabal-install/0.6.2.nix
+++ b/pkgs/tools/package-management/cabal-install/0.6.2.nix
@@ -1,13 +1,20 @@
-{cabal, HTTP, network, zlib} :
+{ cabal, HTTP, network, random, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cabal-install";
-  name = self.fname;
-  version = "0.6.2"; # Haskell Platform 2009.0.0
+  version = "0.6.2";
   sha256 = "d8ea91bd0a2a624ab1cf52ddfe48cef02b532bb5e2fcda3fd72ca51efc04b41a";
-  extraBuildInputs = [HTTP network zlib];
-
+  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 5e9f59f771ac9..aa6369bb05cc0 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 e739f806e6ce6..c27b429afb4f0 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/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 5cdf879f3220f..c89b913200b92 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.0pre27764";
+  name = "nix-1.0pre28391";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/1162354/download/4/${name}.tar.bz2";
-    sha256 = "fe8117644a67947dd8aa8594181ff893b09806ea7803c842cc0b5be86a31a9c6";
+    url = "http://hydra.nixos.org/build/1232663/download/4/${name}.tar.bz2";
+    sha256 = "c990f0ad564960b1d82fdbed32bee0db64c26b57400f027f01434237edd1be0f";
   };
 
   buildNativeInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index 96a9ceacc8362..3d759d733adb8 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.17";
+  name = "gnupg-2.0.18";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "19pf74hv26mis8wiq92ljlgmin6pv1m6qyf5h66wr5rgrdg9sr7a";
+    sha256 = "0nxf5nbgxi5splnw6xww5iy6sw367kz9x1cy5aaznhx45ivdvbj8";
   };
 
   buildInputs = [ readline zlib libgpgerror pth libgcrypt libassuan libksba ]
diff --git a/pkgs/tools/misc/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix
index b9866878b7a8f..524a582fcb021 100644
--- a/pkgs/tools/misc/pinentry/default.nix
+++ b/pkgs/tools/security/pinentry/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   buildNativeInputs = [ pkgconfig ];
 
-  meta = { 
+  meta = {
     description = "GnuPG's interface to passphrase input";
 
     longDescription = ''
diff --git a/pkgs/tools/misc/pinentry/duplicate-glib-defs.patch b/pkgs/tools/security/pinentry/duplicate-glib-defs.patch
index 78796ee2f53a5..78796ee2f53a5 100644
--- a/pkgs/tools/misc/pinentry/duplicate-glib-defs.patch
+++ b/pkgs/tools/security/pinentry/duplicate-glib-defs.patch
diff --git a/pkgs/tools/misc/polkit-gnome/default.nix b/pkgs/tools/security/polkit-gnome/default.nix
index 9adab0fb0c27d..9adab0fb0c27d 100644
--- a/pkgs/tools/misc/polkit-gnome/default.nix
+++ b/pkgs/tools/security/polkit-gnome/default.nix
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 0000000000000..10836366b1871
--- /dev/null
+++ b/pkgs/tools/security/polkit-kde-agent/default.nix
@@ -0,0 +1,21 @@
+{ 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";
+
+  meta = {
+    platforms = stdenv.lib.platforms.linux;
+    description = "PolicyKit authentication agent for KDE";
+  };
+}
diff --git a/pkgs/tools/security/super/default.nix b/pkgs/tools/security/super/default.nix
new file mode 100644
index 0000000000000..0d2e34a412537
--- /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/system/lxc/default.nix b/pkgs/tools/system/lxc/default.nix
index dbd1a6746f0ab..3d9e0f740b5c4 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.4";
+  name = "lxc-0.7.5";
 
   src = fetchurl {
-    url = "mirror://sourceforge/lxc/${name}.tar.gz";
-    sha256 = "a8237b2a42a05266a39aa9f9d64d7aa6f12b197cf1982d7764a0b0f9b940eef6";
+    url = "http://lxc.sf.net/download/lxc/${name}.tar.gz";
+    sha256 = "019ec63f250c874bf7625b1f1bf555b1a6e3a947937a4fca73100abddf829b1c";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/system/sg3_utils/default.nix b/pkgs/tools/system/sg3_utils/default.nix
index a87ba0d0a0751..e2fa8eacc9147 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 0000000000000..86ec54ecb8fad
--- /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/misc/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index 584da1559b8ef..f5ee2f1bcbbac 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 0000000000000..549cc449f0240
--- /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/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index 59fb08aad5f08..dcc4116813ba7 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 e27096666f241..0000000000000
--- 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 7e8f3bdd55d58..0000000000000
--- 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 11998be1fddfe..0000000000000
--- 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 7c8391bd2bdb2..0000000000000
--- 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 6db6c84e04a74..0000000000000
--- 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 5f823b2e7a9bc..0000000000000
--- 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 ff63e67134f7e..0000000000000
--- 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 f9e1e6701bc79..0000000000000
--- 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 72cd2c0b6a452..0000000000000
--- 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 1d4ab5d8e71ea..0000000000000
--- 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 63956a6303541..a474a036661bc 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 0000000000000..feaf3afe52b4b
--- /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/unix2dos/default.nix b/pkgs/tools/text/unix2dos/default.nix
deleted file mode 100644
index 326149feb210d..0000000000000
--- 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 1172e2f82ea71..0000000000000
--- 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 f5ff62aab823e..0000000000000
--- 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 a92f57cfe70c7..0000000000000
--- 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 f8ad138f4da01..0000000000000
--- 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 034e0a00b6868..0000000000000
--- 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 e824044b50c6f..0000000000000
--- 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 68f2347bb6566..61e1dfb9d8759 100644
--- a/pkgs/tools/typesetting/lhs2tex/default.nix
+++ b/pkgs/tools/typesetting/lhs2tex/default.nix
@@ -1,6 +1,6 @@
 {cabal, texLive, regexCompat}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "lhs2tex";
   version = "1.17";
   name = self.fname;
@@ -14,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/video/dvgrab/default.nix b/pkgs/tools/video/dvgrab/default.nix
new file mode 100644
index 0000000000000..de2964a798f9e
--- /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/virtualization/amazon-ec2-ami-tools/default.nix b/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
index 622b26f0b356d..d0ab00057f5ac 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 0160b1bbe192b..7f856b8165deb 100644
--- a/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix
+++ b/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
   
   src = fetchurl {
     url = http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip;
-    sha256 = "0qv3dy6zx5yxix3g90agj39k35sry3cifhzlhprv35lapiynsd0j";
+    sha256 = "e4dea0fb23b7e17bfe794b80f83bef47f290e2c9296105a80a7aecf7d33ecaf2";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 327b97d07f5c6..9dd103db86118 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -261,16 +261,12 @@ let
   };
 
   fetchgit = import ../build-support/fetchgit {
-    inherit stdenv git;
+    inherit stdenv git cacert;
   };
 
   fetchgitrevision = import ../build-support/fetchgitrevision runCommand git;
 
-  fetchmtn = import ../build-support/fetchmtn {
-    inherit monotone stdenv;
-    cacheDB = getConfig ["fetchmtn" "cacheDB"] "";
-    defaultDBMirrors = getConfig ["fetchmtn" "defaultDBMirrors"] [];
-  };
+  fetchmtn = callPackage ../build-support/fetchmtn (getConfig ["fetchmtn"] {});
 
   fetchsvn = import ../build-support/fetchsvn {
     inherit stdenv subversion openssh;
@@ -391,6 +387,8 @@ let
 
   at = callPackage ../tools/system/at { };
 
+  atftp = callPackage ../tools/networking/atftp {};
+
   autogen = callPackage ../development/tools/misc/autogen {
     guile = guile_1_8;
   };
@@ -401,6 +399,8 @@ let
     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 { };
@@ -413,8 +413,6 @@ let
 
   bfr = callPackage ../tools/misc/bfr { };
 
-  bluedevil = newScope pkgs.kde4 ../tools/bluetooth/bluedevil { };
-
   bootchart = callPackage ../tools/system/bootchart { };
 
   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
@@ -429,12 +427,14 @@ 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;
   };
@@ -459,6 +459,8 @@ let
 
   bsdiff = callPackage ../tools/compression/bsdiff { };
 
+  bup = callPackage ../tools/backup/bup { };
+
   bzip2 = callPackage ../tools/compression/bzip2 { };
 
   cabextract = callPackage ../tools/archivers/cabextract { };
@@ -535,6 +537,8 @@ let
     neon = neon029;
   };
 
+  dbench = callPackage ../development/tools/misc/dbench { };
+
   dcraw = callPackage ../tools/graphics/dcraw { };
 
   debootstrap = callPackage ../tools/misc/debootstrap { };
@@ -593,6 +597,8 @@ 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 { };
@@ -657,14 +663,14 @@ let
 
   ftgl = callPackage ../development/libraries/ftgl { };
 
-  fuppes = callPackage ../tools/networking/fuppes {};
+  fuppes = callPackage ../tools/networking/fuppes {
+    ffmpeg = ffmpeg_0_6_90;
+  };
 
   fsfs = callPackage ../tools/filesystems/fsfs { };
 
   dos2unix = callPackage ../tools/text/dos2unix { };
 
-  unix2dos = callPackage ../tools/text/unix2dos { };
-
   uni2ascii = callPackage ../tools/text/uni2ascii { };
 
   gawk = callPackage ../tools/text/gawk { };
@@ -802,6 +808,8 @@ let
 
   hdf5 = callPackage ../tools/misc/hdf5 { };
 
+  heimdall = callPackage ../tools/misc/heimdall { };
+
   hevea = callPackage ../tools/typesetting/hevea { };
 
   highlight = callPackage ../tools/text/highlight { };
@@ -868,8 +876,6 @@ let
 
   jwhois = callPackage ../tools/networking/jwhois { };
 
-  kdiff3 = newScope pkgs.kde4 ../tools/text/kdiff3 { };
-
   keychain = callPackage ../tools/misc/keychain { };
 
   kismet = callPackage ../applications/networking/sniffers/kismet { };
@@ -910,6 +916,8 @@ let
     guile = guile_1_8;
   };
 
+  mairix = callPackage ../tools/text/mairix { };
+
   man = callPackage ../tools/misc/man { };
 
   man_db = callPackage ../tools/misc/man-db { };
@@ -1000,6 +1008,8 @@ let
 
   ndisc6 = callPackage ../tools/networking/ndisc6 { };
 
+  netboot = callPackage ../tools/networking/netboot {};
+
   netcat = callPackage ../tools/networking/netcat { };
 
   netkittftp = callPackage ../tools/networking/netkit/tftp { };
@@ -1132,7 +1142,7 @@ let
 
   philter = callPackage ../tools/networking/philter { };
 
-  pinentry = callPackage ../tools/misc/pinentry {
+  pinentry = callPackage ../tools/security/pinentry {
     inherit (gnome) glib gtk;
   };
 
@@ -1150,7 +1160,7 @@ let
 
   polipo = callPackage ../servers/polipo { };
 
-  polkit_gnome = callPackage ../tools/misc/polkit-gnome { };
+  polkit_gnome = callPackage ../tools/security/polkit-gnome { };
 
   povray = callPackage ../tools/graphics/povray { };
 
@@ -1178,10 +1188,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;
@@ -1260,6 +1267,8 @@ let
 
   s3backer = callPackage ../tools/filesystems/s3backer { };
 
+  s3cmd = callPackage ../tools/networking/s3cmd { };
+
   s3sync = callPackage ../tools/networking/s3sync { };
 
   sablotron = callPackage ../tools/text/xml/sablotron { };
@@ -1282,6 +1291,8 @@ let
 
   siege = callPackage ../tools/networking/siege {};
 
+  sleuthkit = callPackage ../tools/system/sleuthkit {};
+
   slimrat = callPackage ../tools/networking/slimrat {
     inherit (perlPackages) WWWMechanize LWP;
   };
@@ -1308,8 +1319,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;
@@ -1330,7 +1342,6 @@ let
   svnfs = callPackage ../tools/filesystems/svnfs { };
 
   system_config_printer = callPackage ../tools/misc/system-config-printer {
-    inherit (pythonPackages) notify;
     libxml2 = libxml2Python;
    };
 
@@ -1389,6 +1400,8 @@ let
 
   vfdecrypt = callPackage ../tools/misc/vfdecrypt { };
 
+  vifm = callPackage ../applications/misc/vifm {};
+
   viking = callPackage ../applications/misc/viking { };
 
   vncrec = builderDefsPackage ../tools/video/vncrec {
@@ -1409,6 +1422,8 @@ let
 
   htmlTidy = callPackage ../tools/text/html-tidy { };
 
+  tftp_hpa = callPackage ../tools/networking/tftp-hpa {};
+
   tigervnc = callPackage ../tools/admin/tigervnc {
     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
       xorg.fontbhlucidatypewriter75dpi ];
@@ -1553,6 +1568,8 @@ let
 
   xsel = callPackage ../tools/misc/xsel { };
 
+  xtreemfs = callPackage ../tools/filesystems/xtreemfs {};
+
   zdelta = callPackage ../tools/compression/zdelta { };
 
   zile = callPackage ../applications/editors/zile { };
@@ -1573,6 +1590,8 @@ let
     interactive = true;
   });
 
+  bashCompletion = callPackage ../shells/bash-completion { };
+
   dash = callPackage ../shells/dash { };
 
   ipython = callPackage ../shells/ipython { };
@@ -1606,6 +1625,10 @@ let
     buildClang = true;
   };
 
+  clangSVN = llvmSVN.override {
+    buildClang = true;
+  };
+
   clean = callPackage ../development/compilers/clean { };
 
   cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { };
@@ -1654,7 +1677,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;
   });
@@ -2031,58 +2055,122 @@ 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;
+  });
+
+  ghc704Binary = lowPrio (import ../development/compilers/ghc/7.0.4-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_ghc702;
+  haskellPackages = haskellPackages_ghc704;
 
-  # 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 : prefFun : profDefault : modifyPrio : recurseIntoAttrs (import ./haskell-packages.nix {
-    inherit pkgs newScope modifyPrio prefFun;
-    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_ghc6104 =
-    haskellPackagesFun ../development/compilers/ghc/6.10.4.nix (x : x.ghc6104Prefs) 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 (x : x.ghc6121Prefs) 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 (x : x.ghc6122Prefs) false (x : x);
+    haskellPackagesFun ../development/compilers/ghc/6.12.2.nix
+      ghc6101Binary (x : x.ghc6122Prefs) false false lowPrio;
 
   haskellPackages_ghc6123 =
-    haskellPackagesFun ../development/compilers/ghc/6.12.3.nix (x : x.ghc6123Prefs) 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  (x : x.ghc701Prefs) false lowPrio;
+    haskellPackagesFun ../development/compilers/ghc/7.0.1.nix
+      ghc6101Binary (x : x.ghc701Prefs) false false lowPrio;
 
-  # Current default version.
   haskellPackages_ghc702 =
-    haskellPackagesFun ../development/compilers/ghc/7.0.2.nix  (x : x.ghc702Prefs) false (x : x);
+    haskellPackagesFun ../development/compilers/ghc/7.0.2.nix
+      ghc6101Binary (x : x.ghc702Prefs) false false lowPrio;
 
-  # The only thing that keeps this one from becoming default is that
-  # the Haskell Platform based on 703 is released improperly.
-  # Please keep at lowPrio until fixed.
   haskellPackages_ghc703 =
-    haskellPackagesFun ../development/compilers/ghc/7.0.3.nix  (x : x.ghc703Prefs) false lowPrio;
+    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
+        (if stdenv.isDarwin then ghc704Binary else ghc6101Binary)
+        (x : x.ghc704Prefs) true false
+        (haskellDefaultVersionPrioFun false));
+
+  haskellPackages_ghc704_profiling =
+    recurseIntoAttrs
+      (haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
+        (if stdenv.isDarwin then ghc704Binary else ghc6101Binary)
+        (x : x.ghc704Prefs) true true
+        (haskellDefaultVersionPrioFun true));
 
-  # Just released. Needs some testing first. Please keep at lowPrio for now.
   haskellPackages_ghc704 =
-    haskellPackagesFun ../development/compilers/ghc/7.0.4.nix  (x : x.ghc704Prefs) false lowPrio;
+    haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
+      (if stdenv.isDarwin then ghc704Binary else ghc6101Binary)
+      (x : x.ghc704Prefs) false false (x : x);
 
+  haskellPackages_ghc721 =
+    recurseIntoAttrs
+      (haskellPackagesFun ../development/compilers/ghc/7.2.1.nix
+        (if stdenv.isDarwin then ghc704Binary else ghc6121Binary)
+        (x : x.ghc721Prefs) false false lowPrio);
+
+  # Still a release candidate.
   haskellPackages_ghcHEAD =
-    haskellPackagesFun ../development/compilers/ghc/head.nix   (x : x.ghcHEADPrefs) 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;
@@ -2113,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 {
@@ -2152,6 +2246,9 @@ let
 
   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 { };
@@ -2255,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;
   };
@@ -2499,17 +2599,14 @@ let
 
   xulrunnerWrapper = {application, launcher}:
     import ../development/interpreters/xulrunner/wrapper {
-      inherit stdenv application launcher;
-      xulrunner = firefox50Pkgs.xulrunner;
+      inherit stdenv application launcher xulrunner;
     };
 
-  xulrunner = firefox50Pkgs.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 { };
 
@@ -2654,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 { };
@@ -2664,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;
   };
 
@@ -2790,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,
@@ -2879,10 +2984,9 @@ let
 
   acl = callPackage ../development/libraries/acl { };
 
-  adns = import ../development/libraries/adns/1.4.nix {
-    inherit stdenv fetchurl;
-    static = getConfig [ "adns" "static" ] (stdenv ? isStatic || stdenv ? isDietLibC);
-  };
+  adns = callPackage ../development/libraries/adns { };
+
+  afflib = callPackage ../development/libraries/afflib {};
 
   agg = callPackage ../development/libraries/agg { };
 
@@ -2912,6 +3016,8 @@ let
 
   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
 
+  attica = callPackage ../development/libraries/attica { };
+
   attr = callPackage ../development/libraries/attr { };
 
   aubio = callPackage ../development/libraries/aubio { };
@@ -2926,11 +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 {
@@ -2995,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;
@@ -3038,14 +3148,28 @@ let
 
   db48 = callPackage ../development/libraries/db4/db4-4.8.nix { };
 
-  dbus = callPackage ../development/libraries/dbus {
+  dbus = pkgs.dbus_all.libs // { inherit (pkgs.dbus_all) libs; };
+
+  dbus_daemon = pkgs.dbus_all.daemon;
+
+  dbus_tools = pkgs.dbus_all.tools;
+
+  dbus_libs = pkgs.dbus_all.libs;
+
+  dbus_all = callPackage ../development/libraries/dbus {
+    useX11 = true;
+  };
+
+  dbus_all_1_5_6 = callPackage ../development/libraries/dbus/1.5.6.nix {
     useX11 = true;
   };
 
-  dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
-    inherit fetchurl stdenv pkgconfig gettext dbus expat glib libiconv;
+  dbus_glib_0_94 = callPackage ../development/libraries/dbus-glib/0.94.nix {
+    dbus = pkgs.dbus_all_1_5_6.libs;
   };
 
+  dbus_glib = callPackage ../development/libraries/dbus-glib { };
+
   dbus_java = callPackage ../development/libraries/java/dbus-java { };
 
   dclib = callPackage ../development/libraries/dclib { };
@@ -3102,6 +3226,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;
   };
@@ -3192,7 +3320,7 @@ let
   glibc = glibc212;
 
   glibc25 = callPackage ../development/libraries/glibc-2.5 {
-    kernelHeaders = linuxHeaders;
+    kernelHeaders = linuxHeaders_2_6_28;
     installLocales = false;
   };
 
@@ -3317,7 +3445,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 { };
 
@@ -3325,6 +3454,10 @@ let
     guileBindings = getConfig ["gnutls" "guile"] true;
   };
 
+  gnutls2 = callPackage ../development/libraries/gnutls/2.12.nix {
+    guileBindings = getConfig ["gnutls" "guile"] true;
+  };
+
   gpgme = callPackage ../development/libraries/gpgme { };
 
   grantlee = callPackage ../development/libraries/grantlee { };
@@ -3345,11 +3478,9 @@ let
 
   gtkmathview = callPackage ../development/libraries/gtkmathview { };
 
-  gtkLibs = gtkLibs224;
+  gtkLibs = pkgs.gtkLibs224;
 
-  glib = gtkLibs.glib;
-  gtk = gtkLibs.gtk;
-  pango = gtkLibs.pango;
+  inherit (pkgs.gtkLibs) glib gtk pango;
 
   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in {
 
@@ -3450,11 +3581,7 @@ let
 
   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
 
-  herqqSvn = callPackage ../development/libraries/herqq/svn.nix { };
-
-  herqq070 = callPackage ../development/libraries/herqq/0.7.0.nix { };
-
-  herqq080 = callPackage ../development/libraries/herqq/0.8.0.nix { };
+  herqq = callPackage ../development/libraries/herqq { };
 
   hspell = callPackage ../development/libraries/hspell { };
 
@@ -3518,8 +3645,6 @@ let
 
   judy = callPackage ../development/libraries/judy { };
 
-  kdevplatform = newScope pkgs.kde4 ../development/libraries/kdevplatform { };
-
   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
 
   lcms = lcms1;
@@ -3565,13 +3690,7 @@ let
   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 { };
@@ -3611,10 +3730,10 @@ let
 
   libdmtx = callPackage ../development/libraries/libdmtx { };
 
-  libdrm = if stdenv.isDarwin then null else (callPackage ../development/libraries/libdrm {
+  libdrm = callPackage ../development/libraries/libdrm {
     inherit fetchurl stdenv pkgconfig;
     inherit (xorg) libpthreadstubs;
-  });
+  };
 
   libdv = callPackage ../development/libraries/libdv { };
 
@@ -3689,14 +3808,10 @@ let
     useGTK = getConfig [ "libiodbc" "gtk" ] false;
   };
 
-  libktorrent = newScope pkgs.kde4 ../development/libraries/libktorrent { };
-
   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
 
   liblastfm = callPackage ../development/libraries/liblastfm { };
 
-  liblikeback = newScope pkgs.kde4 ../development/libraries/liblikeback { };
-
   liblqr1 = callPackage ../development/libraries/liblqr-1 {
     inherit (gnome) glib;
   };
@@ -3715,9 +3830,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;
@@ -3769,6 +3882,8 @@ let
 
   libmilter = callPackage ../development/libraries/libmilter { };
 
+  libmms = callPackage ../development/libraries/libmms { };
+
   libmowgli = callPackage ../development/libraries/libmowgli { };
 
   libmng = callPackage ../development/libraries/libmng { };
@@ -4000,7 +4115,9 @@ let
     qt = qt4;
   };
 
-  mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
+  libmpeg2 = callPackage ../development/libraries/libmpeg2 { };
+
+  mpeg2dec = libmpeg2;
 
   msilbc = callPackage ../development/libraries/msilbc { };
 
@@ -4010,6 +4127,8 @@ let
 
   mpich2 = callPackage ../development/libraries/mpich2 { };
 
+  mtdev = callPackage ../development/libraries/mtdev { };
+
   muparser = callPackage ../development/libraries/muparser { };
 
   mygui = callPackage ../development/libraries/mygui {};
@@ -4071,7 +4190,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
@@ -4116,6 +4241,10 @@ 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 { };
@@ -4128,14 +4257,17 @@ let
 
   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;
   };
 
@@ -4144,6 +4276,8 @@ let
   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 { };
@@ -4179,26 +4313,15 @@ let
   };
 
   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
-    inherit (pkgs.gst_all) gstreamer gstPluginsBase;
     inherit (pkgs.gnome) glib;
   };
 
   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
 
-  quassel = newScope pkgs.kde4 ../applications/networking/irc/quassel { };
-
-  quasselDaemon = appendToName "daemon" (quassel.override {
-    monolithic = false;
-    daemon = true;
-  });
-
-  quasselClient = appendToName "client" (quassel.override {
-    monolithic = false;
-    client = true;
-  });
-
   quesoglc = callPackage ../development/libraries/quesoglc { };
 
+  qwt = callPackage ../development/libraries/qwt {};
+
   readline = readline6;
 
   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
@@ -4209,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;
@@ -4320,6 +4444,8 @@ let
 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
 ##  };
 
+  tcp_wrappers = callPackage ../development/libraries/tcp-wrappers {};
+
   tdb = callPackage ../development/libraries/tdb { };
 
   tecla = callPackage ../development/libraries/tecla { };
@@ -4591,6 +4717,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 { };
@@ -4697,7 +4825,9 @@ let
 
   lighttpd = callPackage ../servers/http/lighttpd { };
 
-  mediatomb = callPackage ../servers/mediatomb { };
+  mediatomb = callPackage ../servers/mediatomb {
+    ffmpeg = ffmpeg_0_6_90;
+  };
 
   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
 
@@ -4707,6 +4837,8 @@ let
 
   mpd = callPackage ../servers/mpd { };
 
+  miniHttpd = callPackage ../servers/http/mini-httpd {};
+
   myserver = callPackage ../servers/http/myserver { };
 
   nginx = builderDefsPackage (import ../servers/http/nginx) {
@@ -4717,6 +4849,11 @@ 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 { };
@@ -4742,6 +4879,8 @@ let
     ps = procps; /* !!! Linux only */
   };
 
+  mysql55 = callPackage ../servers/sql/mysql55 { };
+
   mysql = mysql51;
 
   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
@@ -4785,9 +4924,11 @@ let
   sipwitch = callPackage ../servers/sip/sipwitch { };
 
   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
-    inherit fetchurl stdenv perl lib composableDerivation;
+    inherit fetchurl stdenv perl lib composableDerivation
+      openldap pam db4 cyrus_sasl kerberos libcap expat libxml2 libtool
+      openssl;
   });
-  squid = squids.squid3Beta; # has ipv6 support
+  squid = squids.squid31; # has ipv6 support
 
   tomcat5 = callPackage ../servers/http/tomcat/5.0.nix { };
 
@@ -4838,7 +4979,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 { };
@@ -5025,6 +5169,8 @@ let
 
   libaio = callPackage ../os-specific/linux/libaio { };
 
+  libatasmart = callPackage ../os-specific/linux/libatasmart { };
+
   libcgroup = callPackage ../os-specific/linux/libcg { };
 
   libnl = callPackage ../os-specific/linux/libnl { };
@@ -5077,7 +5223,7 @@ let
       [ kernelPatches.fbcondecor_2_6_25
         kernelPatches.sec_perm_2_6_24
         kernelPatches.glibc_getline
-	kernelPatches.cifs_timeout_2_6_25
+        kernelPatches.cifs_timeout_2_6_25
       ];
   };
 
@@ -5088,7 +5234,7 @@ let
       [ kernelPatches.fbcondecor_2_6_25
         kernelPatches.sec_perm_2_6_24
         kernelPatches.glibc_getline
-	kernelPatches.cifs_timeout_2_6_25
+        kernelPatches.cifs_timeout_2_6_25
       ];
   };
 
@@ -5098,7 +5244,7 @@ let
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_27
         kernelPatches.sec_perm_2_6_24
-	kernelPatches.cifs_timeout_2_6_25
+        kernelPatches.cifs_timeout_2_6_25
       ];
   };
 
@@ -5110,7 +5256,7 @@ let
         kernelPatches.sec_perm_2_6_24
         kernelPatches.ext4_softlockups_2_6_28
         kernelPatches.glibc_getline
-	kernelPatches.cifs_timeout_2_6_25
+        kernelPatches.cifs_timeout_2_6_25
       ];
   };
 
@@ -5119,7 +5265,7 @@ let
     kernelPatches =
       [ kernelPatches.fbcondecor_2_6_29
         kernelPatches.sec_perm_2_6_24
-	kernelPatches.cifs_timeout_2_6_29
+        kernelPatches.cifs_timeout_2_6_29
       ];
   };
 
@@ -5168,6 +5314,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
       ];
@@ -5193,8 +5340,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
+        kernelPatches.cifs_timeout_2_6_29
       ];
   };
 
@@ -5220,7 +5368,7 @@ let
       [ /*kernelPatches.fbcondecor_2_6_33*/
         kernelPatches.sec_perm_2_6_24
         kernelPatches.aufs2_2_6_34
-	kernelPatches.cifs_timeout_2_6_29
+        kernelPatches.cifs_timeout_2_6_29
       ];
   };
 
@@ -5236,7 +5384,7 @@ let
       [ #kernelPatches.fbcondecor_2_6_35
         kernelPatches.sec_perm_2_6_24
         kernelPatches.aufs2_2_6_35
-	kernelPatches.cifs_timeout_2_6_35
+        kernelPatches.cifs_timeout_2_6_35
       ] ++ lib.optional (platform.kernelArch == "arm")
         kernelPatches.sheevaplug_modules_2_6_35;
   };
@@ -5250,11 +5398,17 @@ let
   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
@@ -5263,9 +5417,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
+          kernelPatches.cifs_timeout_2_6_35
         ];
     };
 
@@ -5276,7 +5430,7 @@ let
       '';
       extraMeta = {
         platforms = ["i686-linux"];
-	maintainers = [lib.maintainers.raskin];
+        maintainers = [lib.maintainers.raskin];
       };
   };
 
@@ -5285,9 +5439,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
+        kernelPatches.cifs_timeout_2_6_35
       ];
   };
 
@@ -5303,7 +5457,7 @@ let
       [ kernelPatches.fbcondecor_2_6_37
         kernelPatches.sec_perm_2_6_24
         kernelPatches.aufs2_1_2_6_37
-	kernelPatches.cifs_timeout_2_6_35
+        kernelPatches.cifs_timeout_2_6_35
         #kernelPatches.mips_restart_2_6_36
       ];
   };
@@ -5320,7 +5474,7 @@ let
       [ kernelPatches.fbcondecor_2_6_38
         kernelPatches.sec_perm_2_6_24
         kernelPatches.aufs2_1_2_6_38
-	kernelPatches.cifs_timeout_2_6_38
+        kernelPatches.cifs_timeout_2_6_38
         #kernelPatches.mips_restart_2_6_36
       ];
   };
@@ -5332,6 +5486,26 @@ let
     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
       ];
@@ -5467,6 +5641,8 @@ let
   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);
@@ -5617,6 +5793,7 @@ let
 
   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 { };
 
@@ -5626,6 +5803,10 @@ let
 
   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 { };
@@ -5691,8 +5872,10 @@ let
   };
 
   udev145 = callPackage ../os-specific/linux/udev/145.nix { };
-  udev166 = callPackage ../os-specific/linux/udev/166.nix { };
-  udev = udev166;
+  udev173 = callPackage ../os-specific/linux/udev/173.nix { };
+  udev = pkgs.udev173;
+
+  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;
@@ -5705,6 +5888,10 @@ let
 
   untie = callPackage ../os-specific/linux/untie {};
 
+  upower = callPackage ../os-specific/linux/upower {
+    dbus_glib = pkgs.dbus_glib_0_94;
+  };
+
   upstart = callPackage ../os-specific/linux/upstart { };
 
   usbutils = callPackage ../os-specific/linux/usbutils { };
@@ -5722,6 +5909,8 @@ let
     inherit ncurses perl;
   };
 
+  v4l_utils = callPackage ../os-specific/linux/v4l-utils {};
+
   windows = rec {
     w32api = callPackage ../os-specific/windows/w32api {
       gccCross = gccCrossStageStatic;
@@ -5771,6 +5960,9 @@ let
 
   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 { };
 
   xmoto = builderDefsPackage (import ../games/xmoto) {
@@ -5925,14 +6117,12 @@ let
 
   adobeReader = callPackage_i686 ../applications/misc/adobe-reader { };
 
-  akunambol = newScope pkgs.kde4 ../applications/networking/sync/akunambol { };
-
-  amarok = newScope pkgs.kde4 ../applications/audio/amarok { };
-
   amsn = callPackage ../applications/networking/instant-messengers/amsn {
     libstdcpp = gcc33.gcc;
   };
 
+  antiword = callPackage ../applications/office/antiword {};
+
   ardour = callPackage ../applications/audio/ardour {
     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
     inherit (gnome) libgnomecanvas;
@@ -5949,6 +6139,7 @@ let
 
   audacity = callPackage ../applications/audio/audacity {
     portaudio = portaudioSVN;
+    ffmpeg = ffmpeg_0_6_90;
   };
 
   aumix = callPackage ../applications/audio/aumix {
@@ -5960,14 +6151,14 @@ let
   avidemux = callPackage ../applications/video/avidemux {
   };
 
+  avogadro = callPackage ../applications/science/chemistry/avogadro { };
+
   awesome = callPackage ../applications/window-managers/awesome {
     inherit (gtkLibs) glib pango;
     lua = lua5;
     cairo = cairo.override { xcbSupport = true; };
   };
 
-  bangarang = newScope pkgs.kde4 ../applications/video/bangarang { };
-
   batik = callPackage ../applications/graphics/batik { };
 
   bazaar = callPackage ../applications/version-management/bazaar { };
@@ -5981,9 +6172,7 @@ let
     guile = guile_1_8;
   };
 
-  bibletime = newScope pkgs.kde45 ../applications/misc/bibletime {
-    qt = qt4;
-  };
+  bibletime = callPackage ../applications/misc/bibletime { };
 
   bitcoin = callPackage ../applications/misc/bitcoin {
     wxGTK = wxGTK290;
@@ -6092,13 +6281,12 @@ let
   darcs = haskellPackages.darcs;
 
   darktable = callPackage ../applications/graphics/darktable {
-     inherit (gnome) GConf gnome_keyring libglade;
+    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 { };
-
   djvulibre = callPackage ../applications/misc/djvulibre { };
 
   djview4 = callPackage ../applications/graphics/djview { };
@@ -6283,11 +6471,11 @@ let
 
   feh = callPackage ../applications/graphics/feh { };
 
-  filelight = newScope pkgs.kde4 ../applications/misc/filelight { };
+  firefox = pkgs.firefoxPkgs.firefox;
 
-  firefox = firefox50Pkgs.firefox;
+  firefoxWrapper = wrapFirefox pkgs.firefox "firefox" "";
 
-  firefoxWrapper = firefox50Wrapper;
+  firefoxPkgs = pkgs.firefox60Pkgs;
 
   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
     inherit (gtkLibs) gtk pango;
@@ -6296,19 +6484,26 @@ let
 
   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
 
-  firefox40Pkgs = callPackage ../applications/networking/browsers/firefox/4.0.nix {
+  firefox50Pkgs = callPackage ../applications/networking/browsers/firefox/5.0.nix {
     inherit (gtkLibs) gtk pango;
     inherit (gnome) libIDL;
   };
 
-  firefox40Wrapper = wrapFirefox firefox40Pkgs.firefox "firefox" "";
+  firefox50Wrapper = wrapFirefox firefox50Pkgs.firefox "firefox" "";
 
-  firefox50Pkgs = callPackage ../applications/networking/browsers/firefox/5.0.nix {
+  firefox60Pkgs = callPackage ../applications/networking/browsers/firefox/6.0.nix {
     inherit (gtkLibs) gtk pango;
     inherit (gnome) libIDL;
   };
 
-  firefox50Wrapper = wrapFirefox firefox50Pkgs.firefox "firefox" "";
+  firefox60Wrapper = wrapFirefox firefox60Pkgs.firefox "firefox" "";
+
+  firefox70b1Pkgs = callPackage ../applications/networking/browsers/firefox/7.0.nix {
+    inherit (gtkLibs) gtk pango;
+    inherit (gnome) libIDL;
+  };
+
+  firefox70b1Wrapper = lowPrio (wrapFirefox firefox70b1Pkgs.firefox "firefox" "");
 
   flac = callPackage ../applications/audio/flac { };
 
@@ -6342,6 +6537,8 @@ let
     gtksharp = gtksharp1;
   };
 
+  get_iplayer = callPackage ../applications/misc/get_iplayer {};
+
   gimp = callPackage ../applications/graphics/gimp {
     inherit (gnome) gtk libart_lgpl;
   };
@@ -6415,8 +6612,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) {
@@ -6569,21 +6771,11 @@ let
 
   joe = callPackage ../applications/editors/joe { };
 
-  jwm = callPackage ../applications/window-managers/jwm { };
-
-  k3b = newScope pkgs.kde4 ../applications/misc/k3b { };
-
-  kadu = newScope pkgs.kde45 ../applications/networking/instant-messengers/kadu { };
-
-  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 { };
+  jbrout = callPackage ../applications/graphics/jbrout {
+    inherit (pythonPackages) lxml;
+  };
 
-  kdevelop = newScope pkgs.kde4 ../applications/editors/kdevelop { };
+  jwm = callPackage ../applications/window-managers/jwm { };
 
   keepnote = callPackage ../applications/office/keepnote {
     pygtk = pyGtkGlade;
@@ -6595,24 +6787,6 @@ let
     inherit (gnome) libglade;
   };
 
-  kipi_plugins = newScope pkgs.kde4 ../applications/graphics/kipi-plugins { };
-
-  kmplayer = newScope pkgs.kde4 ../applications/video/kmplayer {
-    inherit (pkgs.gtkLibs) pango;
-  };
-
-  koffice = newScope pkgs.kde4 ../applications/office/koffice { };
-
-  konq_plugins = newScope pkgs.kde4 ../applications/networking/browsers/konq-plugins { };
-
-  konversation = newScope pkgs.kde4 ../applications/networking/irc/konversation { };
-
-  krename = newScope pkgs.kde4 ../applications/misc/krename { };
-
-  krusader = newScope pkgs.kde4 ../applications/misc/krusader { };
-
-  ktorrent = newScope pkgs.kde4 ../applications/networking/p2p/ktorrent { };
-
   lame = callPackage ../applications/audio/lame { };
 
   larswm = callPackage ../applications/window-managers/larswm { };
@@ -6638,6 +6812,7 @@ let
   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
@@ -6830,20 +7005,14 @@ let
   paraview = callPackage ../applications/graphics/paraview {
   };
 
-  partitionManager = newScope pkgs.kde4 ../tools/misc/partition-manager { };
-
   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;
   };
 
@@ -6919,10 +7088,6 @@ let
     libstdcpp5 = gcc33.gcc;
   };
 
-  rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { };
-
-  rsibreak = newScope pkgs.kde4 ../applications/misc/rsibreak { };
-
   recode = callPackage ../tools/text/recode { };
 
   retroshare = callPackage ../applications/networking/p2p/retroshare {
@@ -6958,8 +7123,6 @@ let
     wxGTK = wxGTK28.override { unicode = false; };
   };
 
-  semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { };
-
   seq24 = callPackage ../applications/audio/seq24 {
     inherit (gtkLibs) gtkmm;
   };
@@ -6982,11 +7145,10 @@ let
     guile = guile_1_8;
   };
 
-  sonicVisualiser = callPackage ../applications/audio/sonic-visualiser {
-    inherit (vamp) vampSDK;
-    inherit (xlibs) libX11;
-    qt = qt4;
-    fftw = fftwSinglePrec;
+  sonic_visualiser = callPackage ../applications/audio/sonic-visualiser {
+    inherit (pkgs.vamp) vampSDK;
+    inherit (pkgs.xlibs) libX11;
+    fftw = pkgs.fftwSinglePrec;
   };
 
   sox = callPackage ../applications/misc/audio/sox { };
@@ -7017,12 +7179,19 @@ let
     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 {
@@ -7071,6 +7240,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 { };
@@ -7079,6 +7252,12 @@ 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 {
@@ -7148,8 +7327,6 @@ let
   };
 
   vlc = callPackage ../applications/video/vlc {
-    dbus = dbus.libs;
-    alsa = alsaLib;
     lua = lua5;
   };
 
@@ -7200,7 +7377,7 @@ let
         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
-        ++ lib.optional (getConfig [browserName "enableGoogleTalkPlugin"] false) google_talk_plugin 
+        ++ lib.optional (getConfig [browserName "enableGoogleTalkPlugin"] false) google_talk_plugin
        );
   };
 
@@ -7305,28 +7482,7 @@ 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;
-
-    # optional features
-    # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
-  };
-
-  qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
-    qgis = qgisReleased;
-  };
-
-  yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
+  qgis = callPackage ../applications/misc/qgis {};
 
   yoshimi = callPackage ../applications/audio/yoshimi {
     fltk = fltk11;
@@ -7405,6 +7561,8 @@ let
 
   flightgear = callPackage ../games/flightgear {};
 
+  freeciv = callPackage ../games/freeciv { };
+
   freedink = callPackage ../games/freedink { };
 
   fsg = callPackage ../games/fsg {
@@ -7587,6 +7745,9 @@ let
 
   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;
   };
@@ -7659,15 +7820,107 @@ let
 
   };
 
-  kde4 = kde45;
+  kde4 = recurseIntoAttrs pkgs.kde45;
 
-  kde45 = callPackage ../desktops/kde-4.5 {
-    callPackage = newScope pkgs.kde45;
-  };
+  # TODO: merge with branches/drop-kde4.5 if you want to remove KDE SC 4.5
+  # This branch removes kde45 and quite a few compatibility hacks
+  kde45 = kdePackagesFor pkgs.kde45 "4.5";
+  kde47 = kdePackagesFor pkgs.kde47 "4.7";
 
-  kde46 = callPackage ../desktops/kde-4.6 {
-    callPackage = newScope pkgs.kde46;
-  };
+  kdePackagesFor = self: version:
+    let callPackageOrig = callPackage; in
+    let
+      callPackage = newScope self;
+      kde4 = callPackageOrig (../desktops/kde- + version) {
+        inherit callPackage callPackageOrig;
+      };
+    in kde4 // {
+      inherit kde4;
+
+      recurseForRelease = true;
+
+      akunambol = callPackage ../applications/networking/sync/akunambol { };
+
+      amarok = callPackage ../applications/audio/amarok { };
+
+      bangarang = callPackage ../applications/video/bangarang { };
+
+      bluedevil = callPackage ../tools/bluetooth/bluedevil { };
+
+      digikam = callPackage ../applications/graphics/digikam { };
+
+      filelight = callPackage ../applications/misc/filelight { };
+
+      k3b = callPackage ../applications/misc/k3b { };
+
+      kadu = callPackage ../applications/networking/instant-messengers/kadu { };
+
+      kbluetooth = callPackage ../tools/bluetooth/kbluetooth { };
+
+      kde_wacomtablet = callPackage ../applications/misc/kde-wacomtablet { };
+
+      kdenlive = callPackage ../applications/video/kdenlive { };
+
+      kdesvn = callPackage ../applications/version-management/kdesvn { };
+
+      kdevelop = callPackage ../applications/editors/kdevelop { };
+
+      kdevplatform = callPackage ../development/libraries/kdevplatform { };
+
+      kdiff3 = callPackage ../tools/text/kdiff3 { };
+
+      kmplayer = callPackage ../applications/video/kmplayer {
+        inherit (pkgs.gtkLibs) pango;
+      };
+
+      kmymoney = callPackage ../applications/office/kmymoney { };
+
+      kipi_plugins = callPackage ../applications/graphics/kipi-plugins {
+        inherit (pkgs.gtkLibs) gdk_pixbuf;
+      };
+
+      koffice = callPackage ../applications/office/koffice { };
+
+      konq_plugins = callPackage ../applications/networking/browsers/konq-plugins { };
+
+      konversation = callPackage ../applications/networking/irc/konversation { };
+
+      krename = callPackage ../applications/misc/krename { };
+
+      krusader = callPackage ../applications/misc/krusader { };
+
+      ktorrent = callPackage ../applications/networking/p2p/ktorrent { };
+
+      libktorrent = callPackage ../development/libraries/libktorrent { };
+
+      liblikeback = callPackage ../development/libraries/liblikeback { };
+
+      partitionManager = callPackage ../tools/misc/partition-manager { };
+
+      polkit_kde_agent = callPackage ../tools/security/polkit-kde-agent { };
+
+      psi = callPackage ../applications/networking/instant-messengers/psi { };
+
+      quassel = callPackage ../applications/networking/irc/quassel { };
+
+      quasselDaemon = appendToName "daemon" (self.quassel.override {
+        monolithic = false;
+        daemon = true;
+      });
+
+      quasselClient = appendToName "client" (self.quassel.override {
+        monolithic = false;
+        client = true;
+      });
+
+      rekonq = callPackage ../applications/networking/browsers/rekonq { };
+
+      rsibreak = callPackage ../applications/misc/rsibreak { };
+
+      semnotes = callPackage ../applications/misc/semnotes { };
+
+      yakuake = callPackage ../applications/misc/yakuake { };
+    };
 
   redshift = callPackage ../applications/misc/redshift {
     inherit (xorg) libX11 libXrandr libxcb randrproto libXxf86vm
@@ -7678,11 +7931,15 @@ let
     inherit (gtkLibs) glib gtk;
   };
 
-  xfce = xfce4;
+  xfce = xfce46;
+
+  xfce46 = recurseIntoAttrs
+    (let callPackage = newScope pkgs.xfce46; in
+     import ../desktops/xfce-4.6 { inherit callPackage pkgs; });
 
-  xfce4 = recurseIntoAttrs
-    (let callPackage = newScope pkgs.xfce4; in
-     import ../desktops/xfce-4 { inherit callPackage pkgs; });
+  xfce48 = recurseIntoAttrs
+    (let callPackage = newScope pkgs.xfce48; in
+     import ../desktops/xfce-4.8 { inherit callPackage pkgs; });
 
 
   ### SCIENCE
@@ -7973,6 +8230,8 @@ let
 
   mess = callPackage ../misc/emulators/mess { };
 
+  mupen64plus = callPackage ../misc/emulators/mupen64plus { };
+
   nix = nixStable;
 
   nixStable = callPackage ../tools/package-management/nix {
@@ -7991,7 +8250,7 @@ let
     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 sqlite perlPackages;
+        pkgconfig flex bison sqlite perlPackages;
       aterm = aterm25;
       db4 = db45;
       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
@@ -8042,17 +8301,13 @@ let
 
   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 getConfig [ "xlockmore" "pam" ] true then pam else null;
-  };
+  xlockmore = callPackage ../misc/screensavers/xlockmore { };
 
   saneBackends = callPackage ../misc/sane-backends {
     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
@@ -8131,6 +8386,8 @@ let
 
   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 { };
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 9d14ad9fe2f96..b65394a7dd77d 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -88,7 +88,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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
-  ghcHEADPrefs = 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
   #
@@ -118,9 +119,44 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   # We try to support several platform versions. For these, we set all
   # versions explicitly.
 
-  haskellPlatform = self.haskellPlatform_2011_2_0_0; # global platform default
-  # NOTE: 2011.2.0.0 is the current default. 2011.2.0.1 is not yet released
-  # and provided for testing purposes.
+  # 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;
@@ -157,6 +193,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     self : self.haskellPlatformArgs_2011_2_0_1 self // {
       haskellPlatform = self.haskellPlatform_2011_2_0_1;
       mtl1 = self.mtl_1_1_1_1;
+      text = self.text_0_11_1_5;
     };
 
   haskellPlatform_2011_2_0_1 =
@@ -270,6 +307,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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 =
@@ -306,6 +344,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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 =
@@ -316,30 +355,47 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   # Haskell libraries.
 
   Agda = callPackage ../development/libraries/haskell/Agda {
-    # I've been trying to get the latest Agda to build with ghc-6.12, too,
-    # but failed so far.
-    # mtl        = self.mtl2;
-    # QuickCheck = self.QuickCheck2;
-    syb        = self.syb02;
+    syb = self.syb02;
+    haskellSrcExts = self.haskellSrcExts_1_9_6;
   };
 
   ACVector = callPackage ../development/libraries/haskell/AC-Vector {};
 
   aeson = callPackage ../development/libraries/haskell/aeson {};
 
+  aesonNative = callPackage ../development/libraries/haskell/aeson-native {};
+
   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 {};
 
+  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 {};
+  benchpress = callPackage ../development/libraries/haskell/benchpress {
+    time = self.time_1_1_3;
+  };
 
   bimap = callPackage ../development/libraries/haskell/bimap {};
 
@@ -359,28 +415,37 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   blazeTextual = callPackage ../development/libraries/haskell/blaze-textual {};
 
+  blazeTextualNative = callPackage ../development/libraries/haskell/blaze-textual-native {};
+
   bmp = callPackage ../development/libraries/haskell/bmp {};
 
   Boolean = callPackage ../development/libraries/haskell/Boolean {};
 
   bytestringNums = callPackage ../development/libraries/haskell/bytestring-nums {};
 
+  bytestringMmap = callPackage ../development/libraries/haskell/bytestring-mmap {};
+
   bytestringTrie = callPackage ../development/libraries/haskell/bytestring-trie {};
 
   cairo = callPackage ../development/libraries/haskell/cairo {
     inherit (pkgs) cairo zlib;
   };
 
-  caseInsensitive = callPackage ../development/libraries/haskell/case-insensitive {};
+  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 {};
 
+  certificate = callPackage ../development/libraries/haskell/certificate {};
+
   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 {};
@@ -391,31 +456,44 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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 = 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 {
     parsec = self.parsec3;
   };
 
   Crypto = callPackage ../development/libraries/haskell/Crypto {};
 
-  CS173Tourney = callPackage ../development/libraries/haskell/CS173Tourney {
-    inherit (pkgs) fetchgit;
-    json = self.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 {};
@@ -426,9 +504,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   dataReify = callPackage ../development/libraries/haskell/data-reify {};
 
-  datetime = callPackage ../development/libraries/haskell/datetime {
-    QuickCheck = self.QuickCheck1;
-  };
+  datetime = callPackage ../development/libraries/haskell/datetime {};
 
   deepseq_1_1_0_0 = callPackage ../development/libraries/haskell/deepseq/1.1.0.0.nix {};
   deepseq_1_1_0_2 = callPackage ../development/libraries/haskell/deepseq/1.1.0.2.nix {};
@@ -442,12 +518,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     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 {};
+
   editline = callPackage ../development/libraries/haskell/editline {
     inherit (pkgs) libedit;
   };
@@ -456,13 +536,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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_0_1_1_3 = callPackage ../development/libraries/haskell/extensible-exceptions/0.1.1.3.nix {};
+  extensibleExceptions = null; # a core package in recent GHCs
 
   failure = callPackage ../development/libraries/haskell/failure {};
 
@@ -472,14 +555,21 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   feed = callPackage ../development/libraries/haskell/feed {};
 
+  fileEmbed = callPackage ../development/libraries/haskell/file-embed {};
+
+  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 {};
@@ -492,18 +582,23 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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 {};
+  gitit = callPackage ../development/libraries/haskell/gitit {
+    xssSanitize = self.xssSanitize_0_2_6;
+  };
 
   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 {
@@ -512,18 +607,26 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   GlomeVec = callPackage ../development/libraries/haskell/GlomeVec {};
 
+  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_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 {
@@ -532,24 +635,26 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   };
 
   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 {};
 
   graphviz = callPackage ../development/libraries/haskell/graphviz {};
 
-  hakyll = callPackage ../development/libraries/haskell/hakyll {};
+  hakyll = callPackage ../development/libraries/haskell/hakyll {
+    hamlet = self.hamlet_0_8_2_1;
+  };
 
-  hamlet = callPackage ../development/libraries/haskell/hamlet {};
+  hamlet_0_8_2_1 = callPackage ../development/libraries/haskell/hamlet/0.8.2.1.nix {};
+  hamlet_0_10_0 = callPackage ../development/libraries/haskell/hamlet/0.10.0.nix {};
+  hamlet = self.hamlet_0_10_0;
 
-  happstackData = callPackage ../development/libraries/haskell/happstack/happstack-data.nix {
-    HaXml = self.HaXml113;
-  };
+  happstackData = callPackage ../development/libraries/haskell/happstack/happstack-data.nix {};
 
   happstackUtil = callPackage ../development/libraries/haskell/happstack/happstack-util.nix {};
 
@@ -561,7 +666,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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 {};
 
@@ -569,7 +676,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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 {};
 
@@ -577,19 +687,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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.HaXml113;
-  };
+  hackageDb = callPackage ../development/libraries/haskell/hackage-db {};
+
+  haxr = callPackage ../development/libraries/haskell/haxr {};
 
   haxr_th = callPackage ../development/libraries/haskell/haxr-th {};
 
-  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 {};
-  HaXml113 = self.HaXml_1_13_3;
-  HaXml120 = self.HaXml_1_20_2;
-  HaXml    = self.HaXml120;
+  HaXml = callPackage ../development/libraries/haskell/HaXml {};
 
   HDBC = callPackage ../development/libraries/haskell/HDBC/HDBC.nix {};
 
@@ -601,6 +708,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     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 {};
@@ -611,6 +722,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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 {
@@ -623,10 +744,18 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   hp2anyCore = callPackage ../development/libraries/haskell/hp2any-core {};
 
-  hp2anyGraph = callPackage ../development/libraries/haskell/hp2any-graph {};
+  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 {};
@@ -637,18 +766,29 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   hsloggerTemplate = callPackage ../development/libraries/haskell/hslogger-template {};
 
+  hsyslog = callPackage ../development/libraries/haskell/hsyslog {};
+
   html_1_0_1_2 = callPackage ../development/libraries/haskell/html/1.0.1.2.nix {};
   html = self.html_1_0_1_2;
 
   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;
 
+  irc = callPackage ../development/libraries/haskell/irc {
+    parsec = self.parsec2;
+  };
+
   ivor = callPackage ../development/libraries/haskell/ivor {};
 
   jpeg = callPackage ../development/libraries/haskell/jpeg {};
@@ -657,17 +797,19 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     WebBits = self.WebBits_1_0;
   };
 
-  json = callPackage ../development/libraries/haskell/json {};
-
-  json_0_3_6 = callPackage ../development/libraries/haskell/json/0.3.6.nix {};
+  json = callPackage ../development/libraries/haskell/json/default.nix {};
 
   jsonEnumerator = callPackage ../development/libraries/haskell/jsonEnumerator {};
 
   jsonTypes = callPackage ../development/libraries/haskell/jsonTypes {};
 
-  leksahServer = callPackage ../development/libraries/haskell/leksah/leksah-server.nix {
-    network = self.network_2_2_1_7;
-  };
+  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 {};
 
@@ -675,16 +817,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   logfloat = callPackage ../development/libraries/haskell/logfloat {};
 
-  maybench = callPackage ../development/libraries/haskell/maybench {};
-
   MaybeT = callPackage ../development/libraries/haskell/MaybeT {};
 
-  MaybeTTransformers = callPackage ../development/libraries/haskell/MaybeT-transformers {};
-
   MemoTrie = callPackage ../development/libraries/haskell/MemoTrie {};
 
   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 {};
@@ -695,18 +835,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   monadControl = callPackage ../development/libraries/haskell/monad-control {};
 
-  monadlab = callPackage ../development/libraries/haskell/monadlab {};
-
   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 {};
-
   mpppc = callPackage ../development/libraries/haskell/mpppc {};
 
   mtl_1_1_0_2 = callPackage ../development/libraries/haskell/mtl/1.1.0.2.nix {};
@@ -716,9 +854,13 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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 {};
 
@@ -731,14 +873,21 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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;
 
+  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;
   };
@@ -747,15 +896,23 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     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_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 {};
+  OpenGLRaw = callPackage ../development/libraries/haskell/OpenGLRaw {
+    GL = pkgs.mesa;
+  };
+
+  pathPieces = callPackage ../development/libraries/haskell/path-pieces {};
+
+  pandoc = callPackage ../development/libraries/haskell/pandoc/default.nix {};
 
   pandocTypes = callPackage ../development/libraries/haskell/pandoc-types {};
 
@@ -789,7 +946,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   persistentTemplate = callPackage ../development/libraries/haskell/persistent-template {};
 
-  polyparse = callPackage ../development/libraries/haskell/polyparse {};
+  polyparse = callPackage ../development/libraries/haskell/polyparse/default.nix {};
 
   pool = callPackage ../development/libraries/haskell/pool {};
 
@@ -805,27 +962,38 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   pureMD5 = callPackage ../development/libraries/haskell/pureMD5 {};
 
+  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_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_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 {
+  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_1_0_1_0 = callPackage ../development/libraries/haskell/random/1.0.1.0.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;
   };
@@ -840,17 +1008,27 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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;
 
   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;
 
   regexTDFA = callPackage ../development/libraries/haskell/regex-tdfa {};
+  regexTdfa = self.regexTDFA;
 
   regexPCRE = callPackage ../development/libraries/haskell/regex-pcre {};
+  regexPcre = self.regexPCRE;
+
+  regexPcreBuiltin = callPackage ../development/libraries/haskell/regex-pcre-builtin {};
+
+  regexpr = callPackage ../development/libraries/haskell/regexpr {};
 
   regular = callPackage ../development/libraries/haskell/regular {};
 
@@ -862,32 +1040,42 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   repaExamples = callPackage ../development/libraries/haskell/repa-examples {};
 
-  repaIO = callPackage ../development/libraries/haskell/repa-io {};
-
-  safe = callPackage ../development/libraries/haskell/safe {};
-
-  salvia = callPackage ../development/libraries/haskell/salvia {};
+  repaIo = callPackage ../development/libraries/haskell/repa-io {};
 
-  salviaProtocol = callPackage ../development/libraries/haskell/salvia-protocol {};
+  RSA = callPackage ../development/libraries/haskell/RSA {};
 
-  scion = callPackage ../development/libraries/haskell/scion {};
+  safe = callPackage ../development/libraries/haskell/safe {};
 
   sendfile = callPackage ../development/libraries/haskell/sendfile {};
 
+  semigroups = callPackage ../development/libraries/haskell/semigroups {};
+
   simpleSendfile = callPackage ../development/libraries/haskell/simple-sendfile {};
 
   smallcheck = callPackage ../development/libraries/haskell/smallcheck {};
 
-  snapCore = callPackage ../development/libraries/haskell/snap/core.nix {};
-  snapServer = callPackage ../development/libraries/haskell/snap/server.nix {};
+  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 {};
 
-  # TODO: investigate status of syb in older platform versions
+  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
@@ -915,6 +1103,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   SHA = callPackage ../development/libraries/haskell/SHA {};
 
+  shakespeare = callPackage ../development/libraries/haskell/shakespeare {};
+
+  shakespeareJs = callPackage ../development/libraries/haskell/shakespeare-js {};
+
+  shakespeareCss = callPackage ../development/libraries/haskell/shakespeare-css {};
+
   Shellac = callPackage ../development/libraries/haskell/Shellac/Shellac.nix {};
 
   ShellacHaskeline = callPackage ../development/libraries/haskell/Shellac/Shellac-haskeline.nix {};
@@ -934,44 +1128,64 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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 (self) extensibleExceptions /* only required for <= ghc6102  ?*/;
     inherit (pkgs) ncurses;
   };
 
   testFramework = callPackage ../development/libraries/haskell/test-framework {};
 
-  testFrameworkHUnit = callPackage ../development/libraries/haskell/test-framework-hunit {};
+  testFrameworkHunit = callPackage ../development/libraries/haskell/test-framework-hunit {};
+
+  testFrameworkQuickcheck = callPackage ../development/libraries/haskell/test-framework-quickcheck {
+    QuickCheck = self.QuickCheck1;
+  };
 
-  testFrameworkQuickCheck = callPackage ../development/libraries/haskell/test-framework-quickcheck {};
+  testFrameworkQuickcheck2 = callPackage ../development/libraries/haskell/test-framework-quickcheck2 {};
 
-  testFrameworkQuickCheck2 = callPackage ../development/libraries/haskell/test-framework-quickcheck2 {};
+  testFrameworkTh = callPackage ../development/libraries/haskell/test-framework-th {};
 
   testpack = callPackage ../development/libraries/haskell/testpack {};
 
-  texmath = callPackage ../development/libraries/haskell/texmath {};
+  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 = self.text_0_11_0_5;
+  text_0_11_1_5 = callPackage ../development/libraries/haskell/text/0.11.1.5.nix {};
+  text = self.text_0_11_1_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;
 
@@ -987,6 +1201,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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 {};
@@ -1005,16 +1221,20 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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 {
-    mtl = self.mtl2;
-  };
+  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;
 
   wai = callPackage ../development/libraries/haskell/wai {};
 
+  waiAppStatic = callPackage ../development/libraries/haskell/wai-app-static {};
+
   waiExtra = callPackage ../development/libraries/haskell/wai-extra {};
 
   warp = callPackage ../development/libraries/haskell/warp {};
@@ -1033,21 +1253,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   webRoutesQuasi = callPackage ../development/libraries/haskell/web-routes-quasi {};
 
-  WebServer = callPackage ../development/libraries/haskell/WebServer {
-    inherit (pkgs) fetchgit;
-  };
-
-  WebServerExtras = callPackage ../development/libraries/haskell/WebServer-Extras {
-    json = self.json_0_3_6;
-    inherit (pkgs) fetchgit;
-  };
-
-  CouchDB = callPackage ../development/libraries/haskell/CouchDB {
-    HTTP = self.HTTP_3001_1_5;
-    json = self.json_0_3_6;
-  };
+  CouchDB = callPackage ../development/libraries/haskell/CouchDB {};
 
-  base64string = callPackage ../development/libraries/haskell/base64-string {};
+  wlPprintText = callPackage ../development/libraries/haskell/wl-pprint-text {};
 
   wx = callPackage ../development/libraries/haskell/wxHaskell/wx.nix {};
 
@@ -1070,11 +1278,24 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   };
 
   xhtml_3000_2_0_1 = callPackage ../development/libraries/haskell/xhtml/3000.2.0.1.nix {};
+  xhtml_3000_2_0_2 = callPackage ../development/libraries/haskell/xhtml/3000.2.0.2.nix {};
   xhtml = self.xhtml_3000_2_0_1;
 
   xml = callPackage ../development/libraries/haskell/xml {};
 
-  xssSanitize = callPackage ../development/libraries/haskell/xss-sanitize {};
+  xmlEnumerator = callPackage ../development/libraries/haskell/xml-enumerator {};
+
+  xmlTypes = callPackage ../development/libraries/haskell/xml-types {};
+
+  xssSanitize_0_2_6 = callPackage ../development/libraries/haskell/xss-sanitize/0.2.6.nix {};
+  xssSanitize_0_3_0_1 = callPackage ../development/libraries/haskell/xss-sanitize/0.3.0.1.nix {};
+  xssSanitize = self.xssSanitize_0_3_0_1;
+
+  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 {};
 
@@ -1084,11 +1305,15 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   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_0_5_0_0 = callPackage ../development/libraries/haskell/zlib/0.5.0.0.nix {
     inherit (pkgs) zlib;
@@ -1106,6 +1331,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   zlibBindings = callPackage ../development/libraries/haskell/zlib-bindings {};
 
+  zlibEnum = callPackage ../development/libraries/haskell/zlib-enum {};
+
   # Compilers.
 
   AgdaExecutable = callPackage ../development/compilers/Agda-executable {};
@@ -1134,8 +1361,15 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   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;
 
+  alexMeta = callPackage ../development/tools/haskell/alex-meta {};
+
+  BNFC = callPackage ../development/tools/haskell/BNFC {};
+
+  BNFCMeta = callPackage ../development/tools/haskell/BNFC-meta {};
+
   cpphs = callPackage ../development/tools/misc/cpphs {};
 
   frown = callPackage ../development/tools/parsing/frown {};
@@ -1154,32 +1388,30 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   happy_1_18_6 = callPackage ../development/tools/parsing/happy/1.18.6.nix {};
   happy = self.happy_1_18_4;
 
+  happyMeta = callPackage ../development/tools/haskell/happy-meta {};
+
   HaRe = callPackage ../development/tools/haskell/HaRe {};
 
   hlint = callPackage ../development/tools/haskell/hlint {};
 
   hslogger = callPackage ../development/tools/haskell/hslogger {};
 
-  mkcabal = callPackage ../development/tools/haskell/mkcabal {};
-
   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 {
+  darcs = callPackage ../applications/version-management/darcs {
     inherit (pkgs) curl;
     parsec = self.parsec2;
   };
 
-  leksah = callPackage ../applications/editors/leksah {
-    network = self.network_2_2_1_7;
-    regexBase = self.regexBase_0_93_2;
-    inherit (pkgs) makeWrapper;
-  };
+  leksah = callPackage ../applications/editors/leksah {};
 
   xmobar = callPackage ../applications/misc/xmobar {};
 
@@ -1193,6 +1425,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   # Tools.
 
+  cabal2nix = callPackage ../development/tools/haskell/cabal2nix {};
+
   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  {};
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 36d470f706682..ca740b488b5ff 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -11,6 +11,17 @@ rec {
 
   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";
     src = fetchurl {
@@ -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";
+    name = "Catalyst-Devel-1.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "0akqzyagx3fzngmnc880wk0z2spnmzs32s2mmpskkrq2yc7spyjn";
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "0g41rglw460y2n2xbysjbsjb56jkkz2m5jhap2nw3a5jby1ymp07";
     };
-    propagatedBuildInputs = [
-      CatalystRuntime CatalystActionRenderView
-      CatalystPluginStaticSimple CatalystPluginConfigLoader PathClass
-      TemplateToolkit ClassAccessor ConfigGeneral FileCopyRecursive
-      Parent FileChangeNotify
-    ];
+    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";
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "1q542lrnvc0a11923awhk51fqzzxfa8zdkbch7z07dl8y81mwhl2";
     };
-    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
-    ];
+    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,27 @@ 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 ];
+  };
+
+  CatalystViewJSON = buildPerlPackage rec {
+    name = "Catalyst-View-JSON-0.33";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
+      sha256 = "03yda9skcfnwkm4hf2a3y7g2rdjdia5hzfnll0h7z4wiyb8kxfii";
+    };
+    propagatedBuildInputs = [ CatalystRuntime JSONAny YAML ];
   };
 
   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 +538,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 +572,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 +599,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 +642,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 +691,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 +709,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 +744,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;
@@ -710,18 +785,18 @@ rec {
   };
 
   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";
     };
   };
 
@@ -741,12 +816,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 {
@@ -755,9 +831,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 {
@@ -777,7 +870,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;
@@ -810,6 +903,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 {
@@ -819,10 +921,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";
     };
   };
 
@@ -836,10 +938,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];
   };
@@ -974,18 +1076,29 @@ rec {
   };
 
   DBIxClass = buildPerlPackage rec {
-    name = "DBIx-Class-0.08115";
+    name = "DBIx-Class-0.08195";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/DBIx/${name}.tar.gz";
+      sha256 = "197q2pkkk6dpq1r76jcnzamk5dqac5k9n3wgq8dd5ak8sw6cj7p6";
+    };
+    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/authors/id/F/FR/FREW/${name}.tar.gz";
-      sha256 = "1addd0763q2jyvh9hdi0ayppqk0bmypw48s1xcwfximbnja8z9mw";
+      url = "mirror://cpan/modules/by-module/DBIx/${name}.tar.gz";
+      sha256 = "19r7jr6pknxiirrybq0cd0lnr76xiw05arnfqgk9nrhp6c7vvil0";
     };
-    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 ];
+    propagatedBuildInputs = [ CacheCache DBIxClass CarpClan ];
   };
 
   DBIxClassHTMLWidget = buildPerlPackage rec {
@@ -998,18 +1111,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 {
@@ -1021,11 +1134,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";
     };
   };
 
@@ -1065,6 +1186,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 {
@@ -1100,20 +1231,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 {
@@ -1143,6 +1270,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 {
@@ -1152,13 +1297,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/modules/by-module/ExtUtils/${name}.tar.gz";
+      sha256 = "13qjdz1kmrp5mp404by94cdsyydjadg974ykinqga450djjaqpbq";
+    };
+  };
+
+  ExtUtilsInstall = buildPerlPackage rec {
+    name = "ExtUtils-Install-1.54";
     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 = "19igil4iwh3jdyvjm8s0ypm8wxsny6nv4z3b3lkwhq0ccjgd3rp3";
     };
-    propagatedBuildInputs = [ExtUtilsMakeMaker];
   };
 
   ExtUtilsMakeMaker = buildPerlPackage {
@@ -1169,23 +1321,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 {
@@ -1204,6 +1366,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 {
@@ -1262,6 +1433,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 {
@@ -1278,7 +1457,7 @@ rec {
     };
 
     buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype
-                    pkgs.libpng pkgs.fontconfig pkgs.xlibs.libXpm GetOptLong ];
+                    pkgs.libpng pkgs.fontconfig pkgs.xlibs.libXpm GetoptLong ];
 
     # Patch needed to get arguments past the first GetOptions call
     # and to specify libfontconfig search path.
@@ -1295,14 +1474,34 @@ rec {
     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 {
@@ -1331,6 +1530,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 {
@@ -1433,12 +1641,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 {
@@ -1450,12 +1659,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 {
@@ -1485,20 +1694,6 @@ 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;
-  };
-
   IOCompressBase = buildPerlPackage rec {
     name = "IO-Compress-Base-2.015";
     src = fetchurl {
@@ -1534,6 +1729,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 {
@@ -1593,6 +1796,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";
 
@@ -1700,6 +1911,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 {
@@ -1718,28 +1937,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;
   };
 
-  ListMoreUtils = buildPerlPackage {
-    name = "List-MoreUtils-0.22";
+  LinuxInotify2 = buildPerlPackage rec {
+    name = "Linux-Inotify2-1.22";
     src = fetchurl {
-      url = mirror://cpan/authors/id/V/VP/VPARSEVAL/List-MoreUtils-0.22.tar.gz;
-      sha256 = "1dv21xclh6r1cyy19r34xv2w6pc1jb5pwj7b2739m78xhlk8p55l";
+      url = "mirror://cpan/modules/by-module/Linux/${name}.tar.gz";
+      sha256 = "1l916p8xak6c51x4x1vrzd8wpi55bld74wf0p5w5m4vr80zjb7dw";
+    };
+    propagatedBuildInputs = [ CommonSense ];
+  };
+
+  ListMoreUtils = buildPerlPackage rec {
+    name = "List-MoreUtils-0.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+      sha256 = "1bcljhhsk5g0xykvgbxz10ilmj02s58ydiy3g8hbzdr29i20np1i";
     };
   };
 
@@ -1777,6 +2034,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 {
@@ -1826,13 +2092,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 {
@@ -1843,16 +2112,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 {
@@ -1865,21 +2145,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";
+    };
+    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";
     };
-    propagatedBuildInputs = [Moose NamespaceClean];
+    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";
     };
-    propagatedBuildInputs = [Moose MooseXTypes TestException];
+    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";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ListMoreUtils Moose ];
   };
 
   MooseXParamsValidate = buildPerlPackage rec {
@@ -1891,13 +2193,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 {
@@ -1912,24 +2233,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 {
@@ -1942,30 +2274,30 @@ 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];
+    propagatedBuildInputs = [ BHooksEndOfScope DevelHide PackageStash ];
   };
 
   NetAmazonEC2 = buildPerlPackage rec {
@@ -1985,6 +2317,19 @@ rec {
     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 {
     name = "Net-DNS-0.63";
     src = fetchurl {
@@ -2066,6 +2411,14 @@ rec {
     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 {
@@ -2082,6 +2435,35 @@ rec {
     };
   };
 
+  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 {
@@ -2090,11 +2472,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";
     };
   };
 
@@ -2106,6 +2488,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 {
@@ -2114,11 +2505,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";
     };
   };
 
@@ -2166,6 +2557,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 {
@@ -2373,14 +2786,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 {
@@ -2458,11 +2871,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";
     };
   };
 
@@ -2633,13 +3046,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/modules/by-module/Test/${name}.tar.gz";
+      sha256 = "1lyd6mcg00348xsn9fl59spx68a69ybli7h7gd2k0p4y21q8p0ks";
+    };
+    propagatedBuildInputs = [ SubUplevel ];
+  };
+
+  TestFatal = buildPerlPackage rec {
+    name = "Test-Fatal-0.006";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADIE/Test-Exception-0.27.tar.gz;
-      sha256 = "1s921j7yv2szywd1ffi6yz3ngrbq97f9dh38bvvajqnm29g1xb9j";
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "0laxzphmqwq0rrizv3n7pcnrn345yh70cip61sl8f8mw8dir1jdx";
     };
-    propagatedBuildInputs = [TestHarness TestSimple SubUplevel];
+    propagatedBuildInputs = [ TryTiny ];
   };
 
   TestHarness = buildPerlPackage rec {
@@ -2720,13 +3142,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 {
@@ -2824,6 +3253,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 {
@@ -2884,7 +3321,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";
@@ -2909,11 +3355,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";
     };
   };
 
@@ -2944,11 +3390,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";
     };
   };
 
@@ -2960,19 +3406,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 {
@@ -3001,10 +3440,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";
     };
   };
 
@@ -3054,24 +3509,25 @@ rec {
     propagatedBuildInputs = [XMLRegExp XMLParser LWP libxml_perl];
   };
 
-  XMLLibXML = buildPerlPackage {
-    name = "XML-LibXML-1.70";
+  XMLLibXML = buildPerlPackage rec {
+    name = "XML-LibXML-1.86";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PA/PAJAS/XML-LibXML-1.70.tar.gz;
-      sha256 = "181viglnw93kz9w3bvs8dqvx4xnqvf448vnwam8dia9bfw3czrjk";
+      url = "mirror://cpan/modules/by-module/XML/${name}.tar.gz";
+      sha256 = "0wgf9898vmjac4mr2k4zvz6aw7nx0yvfv8f093y6w44vv6prxchp";
     };
-    SKIP_SAX_INSTALL=1;
-    buildInputs = [pkgs.libxml2];
-    propagatedBuildInputs = [XMLLibXMLCommon XMLSAX];
+    SKIP_SAX_INSTALL = 1;
+    buildInputs = [ pkgs.libxml2 ];
+    propagatedBuildInputs = [ XMLSAX ];
   };
 
-  XMLLibXMLCommon = buildPerlPackage {
-    name = "XML-LibXML-Common-0.13";
+  XMLLibXSLT = buildPerlPackage rec {
+    name = "XML-LibXSLT-1.70";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PH/PHISH/XML-LibXML-Common-0.13.tar.gz;
-      md5 = "13b6d93f53375d15fd11922216249659";
+      url = "mirror://cpan/modules/by-module/XML/${name}.tar.gz";
+      sha256 = "0x8lqlxr6xhgwwa6zj4shrwrqlgbgs0piripc1fsnw4z1yl2gf9p";
     };
-    buildInputs = [pkgs.libxml2];
+    buildInputs = [ pkgs.zlib pkgs.libxml2 pkgs.libxslt ];
+    propagatedBuildInputs = [ XMLLibXML ];
   };
 
   XMLNamespaceSupport = buildPerlPackage {
@@ -3167,4 +3623,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 f443067857091..259b9898f36be 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 81c80200b2943..2efb8a9fe8a0e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -12,7 +12,7 @@ let pythonPackages = python.modules // rec {
     inherit python wrapPython setuptools;
   };
 
-  
+
   setuptools = import ../development/python-modules/setuptools {
     inherit (pkgs) stdenv fetchurl;
     inherit python wrapPython;
@@ -62,7 +62,7 @@ let pythonPackages = python.modules // rec {
 
   apsw = buildPythonPackage rec {
     name = "apsw-3.7.6.2-r1";
-    
+
     src = fetchurl {
       url = "http://apsw.googlecode.com/files/${name}.zip";
       sha1 = "fa4aec08e59fa5964197f59ba42408d64031675b";
@@ -78,7 +78,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   argparse = buildPythonPackage (rec {
     name = "argparse-1.1";
 
@@ -110,6 +110,16 @@ let pythonPackages = python.modules // 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";
 
@@ -218,7 +228,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   cherrypy = buildPythonPackage (rec {
     name = "cherrypy-3.1.2";
 
@@ -347,10 +357,10 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   dtopt = buildPythonPackage rec {
     name = "dtopt-0.1";
-    
+
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/dtopt/${name}.tar.gz";
       md5 = "9a41317149e926fcc408086aedee6bab";
@@ -362,7 +372,26 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
+  enum = buildPythonPackage rec {
+    name = "enum-0.4.4";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/e/enum/${name}.tar.gz";
+      md5 = "ce75c7c3c86741175a84456cc5bd531e";
+    };
+
+    buildInputs = [ ];
+
+    propagatedBuildInputs = [ ];
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/enum/;
+      description = "Robust enumerated type support in Python.";
+    };
+  };
+
+
   eventlet = buildPythonPackage rec {
     name = "eventlet-0.9.16";
 
@@ -385,7 +414,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   flup = buildPythonPackage (rec {
     name = "flup-1.0.2";
 
@@ -456,7 +485,25 @@ let pythonPackages = python.modules // 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";
 
@@ -471,7 +518,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   glance = buildPythonPackage rec {
     name = "glance-0.1.7";
 
@@ -492,7 +539,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   greenlet = buildPythonPackage rec {
     name = "greenlet-0.3.1";
 
@@ -507,7 +554,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   httplib2 = buildPythonPackage rec {
     name = "httplib2-0.6.0";
 
@@ -524,11 +571,11 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   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";
@@ -542,7 +589,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   jinja2 = buildPythonPackage {
     name = "jinja2-2.2.1";
 
@@ -563,7 +610,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   libcloud = buildPythonPackage (rec {
     name = "libcloud-0.3.1";
 
@@ -582,7 +629,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   lockfile = buildPythonPackage rec {
     name = "lockfile-0.9.1";
 
@@ -599,7 +646,16 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+  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";
 
@@ -637,11 +693,11 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   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";
@@ -659,7 +715,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   markdown = buildPythonPackage rec {
     version = "2.0.3";
     name = "markdown-${version}";
@@ -676,7 +732,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   matplotlib = buildPythonPackage ( rec {
     name = "matplotlib-0.99.1.2";
 
@@ -714,7 +770,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   mock = buildPythonPackage (rec {
     name = "mock-0.7.0";
 
@@ -751,7 +807,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   mutagen = buildPythonPackage (rec {
     name = "mutagen-1.20";
 
@@ -821,7 +877,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   netaddr = buildPythonPackage rec {
     name = "netaddr-0.7.5";
 
@@ -838,7 +894,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   nevow = buildPythonPackage (rec {
     name = "nevow-${version}";
     version = "0.10.0";
@@ -910,6 +966,8 @@ let pythonPackages = python.modules // 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/;
@@ -1033,7 +1091,7 @@ let pythonPackages = python.modules // 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";
@@ -1049,11 +1107,11 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   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";
@@ -1069,7 +1127,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   pexpect = buildPythonPackage {
     name = "pexpect-2.3";
 
@@ -1106,10 +1164,10 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   prettytable = buildPythonPackage rec {
     name = "prettytable-0.5";
-    
+
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/P/PrettyTable/${name}.tar.gz";
       md5 = "13a6930d775395f393afd86948afa4fa";
@@ -1121,7 +1179,20 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
+  protobuf = buildPythonPackage rec {
+    inherit (pkgs.protobuf) name src;
+
+    propagatedBuildInputs = [pkgs.protobuf];
+    sourceRoot = "${name}/python";
+
+    meta = {
+      description = "Protocol Buffers are Google's data interchange format.";
+      homepage = http://code.google.com/p/protobuf/;
+    };
+  };
+
+
   psycopg2 = buildPythonPackage rec {
     name = "psycopg2-2.0.13";
 
@@ -1220,6 +1291,15 @@ let pythonPackages = python.modules // rec {
     };
   });
 
+  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";
@@ -1331,7 +1411,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   pysvn = pkgs.stdenv.mkDerivation {
     name = "pysvn-1.7.2";
 
@@ -1378,7 +1458,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   pyutil = buildPythonPackage (rec {
     name = "pyutil-1.7.9";
 
@@ -1497,10 +1577,10 @@ let pythonPackages = python.modules // rec {
      };
   };
 
-  
+
   routes = buildPythonPackage rec {
     name = "routes-1.12.3";
-    
+
     src = fetchurl {
       url = http://pypi.python.org/packages/source/R/Routes/Routes-1.12.3.tar.gz;
       md5 = "9740ff424ff6b841632c784a38fb2be3";
@@ -1514,11 +1594,11 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   scripttest = buildPythonPackage rec {
     version = "1.1.1";
     name = "scripttest-${version}";
-    
+
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/S/ScriptTest/ScriptTest-${version}.tar.gz";
       md5 = "592ce890764c3f546d35b4d7c40c32ef";
@@ -1532,7 +1612,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   setuptoolsDarcs = buildPythonPackage {
     name = "setuptools-darcs-1.2.9";
 
@@ -1720,7 +1800,7 @@ let pythonPackages = python.modules // 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";
@@ -1732,11 +1812,29 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
+  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";
@@ -1753,11 +1851,11 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   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";
@@ -1773,7 +1871,7 @@ let pythonPackages = python.modules // rec {
 
 
   wxPython = wxPython28;
-  
+
 
   wxPython26 = import ../development/python-modules/wxPython/2.6.nix {
     inherit (pkgs) stdenv fetchurl pkgconfig;
@@ -1781,14 +1879,14 @@ let pythonPackages = python.modules // rec {
     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";
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 648eef655d8d7..490d943cf2012 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -167,7 +167,6 @@ with (import ./release-lib.nix);
   kbd = linux;
   keen4 = ["i686-linux"];
 #  klibc = linux;
-  ktorrent = linux;
   kvm = linux;
   qemu = linux;
   qemu_kvm = linux;
@@ -203,9 +202,11 @@ with (import ./release-lib.nix);
   module_init_tools = linux;
   mono = linux;
   mpg321 = linux;
+  mupen64plus = linux;
   mutt = linux;
   mysql = linux;
   mysql51 = linux;
+  mysql55 = linux;
   namazu = all;
   nano = allBut "i686-cygwin";
   ncat = linux;
@@ -306,6 +307,7 @@ with (import ./release-lib.nix);
   tightvnc = linux;
   time = linux;
   tinycc = ["i686-linux"];
+  uae = linux;
   udev = linux;
   uml = ["i686-linux"];
   unrar = linux;
@@ -319,6 +321,7 @@ with (import ./release-lib.nix);
   vice = linux;
   vim = linux;
   vimHugeX = linux;
+  VisualBoyAdvance = linux;
   vlc = linux;
   vncrec = linux;
   vorbisTools = linux;
@@ -352,6 +355,7 @@ with (import ./release-lib.nix);
   zile = linux;
   zip = all;
   zsh = linux;
+  zsnes = ["i686-linux"];
 
   aspellDicts = {
     de = all;
@@ -362,7 +366,7 @@ with (import ./release-lib.nix);
     ru = all;
   };
 
-  dbus = {
+  dbus_all = {
     libs = linux;
     tools = linux;
   };
@@ -381,8 +385,8 @@ with (import ./release-lib.nix);
   };
 
   firefox36Pkgs.firefox = linux;
-  firefox40Pkgs.firefox = linux;
   firefox50Pkgs.firefox = linux;
+  firefox60Pkgs.firefox = linux;
 
   gnome = {
     gnome_panel = linux;
@@ -394,6 +398,7 @@ with (import ./release-lib.nix);
     gtk = linux;
   };
 
+  /*
   haskellPackages_ghc6104 = {
     ghc = ghcSupported;
     haskellPlatform_2009_2_0_2 = ghcSupported;
@@ -405,14 +410,10 @@ with (import ./release-lib.nix);
   };
 
   haskellPackages_ghc6123 = {
-    darcs = ghcSupported;
     ghc = ghcSupported;
     gitit = linux;
     gtk = linux;
-    leksah = linux;
-    haskellPlatform_2010_2_0_0 = ghcSupported;
-    lhs2tex = ghcSupported;
-    xmonad = linux;
+    haskellPlatform = ghcSupported;
   };
 
   haskellPackages_ghc701 = {
@@ -420,14 +421,20 @@ with (import ./release-lib.nix);
   };
 
   haskellPackages_ghc702 = {
+    ghc = ghcSupported;
+    haskellPlatform = ghcSupported;
+  };
+
+  haskellPackages_ghc704 = {
     darcs = ghcSupported;
     ghc = ghcSupported;
     gitit = linux;
     gtk = linux;
-    haskellPlatform_2011_2_0_0 = ghcSupported;
+    haskellPlatform = ghcSupported;
     lhs2tex = ghcSupported;
     xmonad = linux;
   };
+  */
 
   kde3 = {
     kdebase = linux;
@@ -558,7 +565,7 @@ with (import ./release-lib.nix);
     xwininfo = linux;
   };
 
-  xfce4 = {
+  xfce = {
     gtk_xfce_engine = linux;
     mousepad = linux;
     ristretto = linux;