about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-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.nix19
-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.nix20
-rw-r--r--pkgs/development/libraries/polkit-qt-1/polkit-install.patch12
-rw-r--r--pkgs/development/libraries/polkit/default.nix39
-rw-r--r--pkgs/development/libraries/poppler/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
654 files changed, 9148 insertions, 3298 deletions
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/development/libraries/attica/default.nix b/pkgs/development/libraries/attica/default.nix
new file mode 100644
index 0000000000000..95de0834f292c
--- /dev/null
+++ b/pkgs/development/libraries/attica/default.nix
@@ -0,0 +1,19 @@
+{ 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";
+    maintainers = [ maintainers.sander maintainers.urkud ];
+    platforms = qt4.meta.platforms;
+  };
+}
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/development/libraries/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
new file mode 100644
index 0000000000000..008a75cff67f8
--- /dev/null
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, cmake, qt4, pkgconfig, polkit, automoc4, glib }:
+
+stdenv.mkDerivation rec {
+  name = "polkit-qt-1-0.99.0";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/apps/KDE4.x/admin/${name}.tar.bz2";
+    sha256 = "02m710q34aapbmnz1p6qwgkk5xjmm239zdl3lvjg77dh3j0w5i3r";
+  };
+
+  patches = [ ./polkit-install.patch ];
+
+  buildInputs = [ cmake qt4 automoc4 ];
+  
+  propagatedBuildInputs = [ polkit glib ];
+
+  meta = {
+    description = "A Qt wrapper around PolKit";
+  };
+}
diff --git a/pkgs/development/libraries/polkit-qt-1/polkit-install.patch b/pkgs/development/libraries/polkit-qt-1/polkit-install.patch
new file mode 100644
index 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;