summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/elvis/default.nix40
-rw-r--r--pkgs/applications/editors/leksah/default.nix26
-rw-r--r--pkgs/applications/editors/nvi/default.nix49
-rw-r--r--pkgs/applications/misc/xmobar/default.nix8
-rw-r--r--pkgs/applications/office/openoffice/builder.sh7
-rw-r--r--pkgs/applications/office/openoffice/default.nix36
-rw-r--r--pkgs/applications/office/openoffice/oo.patch72
-rw-r--r--pkgs/applications/office/openoffice/ooo-libtextcat.patch10
-rw-r--r--pkgs/applications/version-management/darcs/darcs-2.nix20
-rw-r--r--pkgs/applications/version-management/darcs/default.nix22
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix4
-rw-r--r--pkgs/applications/version-management/subversion/1.6.nix4
-rw-r--r--pkgs/applications/video/cinelerra/default.nix2
-rw-r--r--pkgs/applications/virtualization/virtualbox/1.5.2.nix23
-rw-r--r--pkgs/applications/virtualization/virtualbox/2.1.2.nix47
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix79
-rw-r--r--pkgs/applications/window-managers/vwm/default.nix31
-rw-r--r--pkgs/applications/window-managers/vwm/signal.patch22
-rw-r--r--pkgs/applications/window-managers/xmonad/default.nix8
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-contrib.nix4
-rw-r--r--pkgs/build-support/builder-defs/builder-defs.nix (renamed from pkgs/top-level/builder-defs.nix)0
-rw-r--r--pkgs/build-support/builder-defs/template-composing+config.nix (renamed from pkgs/top-level/template-composing+config.nix)0
-rw-r--r--pkgs/build-support/builder-defs/template-composing-builder.nix (renamed from pkgs/top-level/template-composing-builder.nix)0
-rw-r--r--pkgs/build-support/vm/default.nix2
-rw-r--r--pkgs/data/fonts/dejavu-fonts/default.nix4
-rw-r--r--pkgs/data/misc/xkeyboard-config/level3-deadkeys-us-intl4
-rw-r--r--pkgs/desktops/gnome/default.nix15
-rw-r--r--pkgs/development/compilers/ghc-6.6.1/setup-hook.sh41
-rw-r--r--pkgs/development/compilers/ghc-6.6/builder.sh26
-rw-r--r--pkgs/development/compilers/ghc-6.6/default.nix26
-rw-r--r--pkgs/development/compilers/ghc-6.6/setup-hook.sh41
-rw-r--r--pkgs/development/compilers/ghc-6.8/head.nix47
-rw-r--r--pkgs/development/compilers/ghc-6.8/setup-hook.sh41
-rw-r--r--pkgs/development/compilers/ghc-wrapper/builder.sh34
-rw-r--r--pkgs/development/compilers/ghc-wrapper/default.nix7
-rw-r--r--pkgs/development/compilers/ghc/6.10.1-binary.nix (renamed from pkgs/development/compilers/ghc/boot610.nix)88
-rw-r--r--pkgs/development/compilers/ghc/6.10.1.nix27
-rw-r--r--pkgs/development/compilers/ghc/6.10.2-binary.nix100
-rw-r--r--pkgs/development/compilers/ghc/6.10.2.nix27
-rw-r--r--pkgs/development/compilers/ghc/6.4.2-binary.nix (renamed from pkgs/development/compilers/ghc/boot.nix)15
-rw-r--r--pkgs/development/compilers/ghc/6.4.2.nix (renamed from pkgs/development/compilers/ghc/default.nix)16
-rw-r--r--pkgs/development/compilers/ghc/6.6.1.nix (renamed from pkgs/development/compilers/ghc-6.6.1/default.nix)2
-rw-r--r--pkgs/development/compilers/ghc/6.8.2.nix (renamed from pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix)10
-rw-r--r--pkgs/development/compilers/ghc/6.8.3.nix (renamed from pkgs/development/compilers/ghc-6.8/ghc-6.8.3.nix)23
-rw-r--r--pkgs/development/compilers/ghc/builder.sh9
-rw-r--r--pkgs/development/compilers/ghc/setup-hook.sh17
-rw-r--r--pkgs/development/compilers/ghc/wrapper.nix15
-rw-r--r--pkgs/development/compilers/iasl/default.nix2
-rw-r--r--pkgs/development/compilers/strategoxt/0.17.nix6
-rw-r--r--pkgs/development/interpreters/io/default.nix2
-rw-r--r--pkgs/development/interpreters/lua-5/default.nix6
-rw-r--r--pkgs/development/libraries/boost/1.38.0.nix2
-rw-r--r--pkgs/development/libraries/boost/classr.patch15
-rw-r--r--pkgs/development/libraries/editline/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/Agda/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/GLUT/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/HTTP/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/HUnit/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/OpenAL/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.1.0.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/X11/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/binary/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/cabal/cabal.nix35
-rw-r--r--pkgs/development/libraries/haskell/cgi/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/editline/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/fgl/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/gtk2hs/default.nix35
-rw-r--r--pkgs/development/libraries/haskell/haskeline/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-meta/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/hscolour/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/html/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/mtl/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/multirec/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/network/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/parallel/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/parsec/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/readline/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/regex-base/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/stm/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/strictConcurrency/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/time/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/uniplate/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/utf8-string/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/uulib/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/vacuum/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/vacuumCairo/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/xhtml/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/zlib/default.nix6
-rw-r--r--pkgs/development/libraries/libedit/default.nix17
-rw-r--r--pkgs/development/libraries/libewf/default.nix17
-rw-r--r--pkgs/development/libraries/libpseudo/default.nix26
-rw-r--r--pkgs/development/libraries/libviper/default.nix26
-rw-r--r--pkgs/development/libraries/libxml2/default.nix8
-rw-r--r--pkgs/development/libraries/openal/default.nix28
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/default.nix4
-rw-r--r--pkgs/development/perl-modules/DB_File/default.nix6
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix53
-rw-r--r--pkgs/development/python-modules/nevow/default.nix80
-rw-r--r--pkgs/development/python-modules/simplejson/default.nix45
-rw-r--r--pkgs/development/tools/analysis/radare/default.nix22
-rw-r--r--pkgs/development/tools/analysis/radare/lua.patch12
-rw-r--r--pkgs/development/tools/build-managers/cmake/2.6.3.nix31
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix20
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh8
-rw-r--r--pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix13
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix12
-rw-r--r--pkgs/development/tools/haskell/uuagc/default.nix4
-rw-r--r--pkgs/development/tools/misc/cpphs/default.nix10
-rw-r--r--pkgs/development/tools/misc/gtkdialog/default.nix18
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix6
-rw-r--r--pkgs/development/tools/misc/icon-naming-utils/default.nix8
-rw-r--r--pkgs/development/tools/parsing/alex/default.nix4
-rw-r--r--pkgs/development/tools/parsing/happy/default.nix10
-rw-r--r--pkgs/development/tools/parsing/happy/happy-1.18.2.nix13
-rw-r--r--pkgs/games/scorched3d/default.nix33
-rw-r--r--pkgs/games/scorched3d/file-existence.patch37
-rw-r--r--pkgs/games/scorched3d/scorched3d-42.1-fixups.patch58
-rw-r--r--pkgs/misc/foldingathome/default.nix37
-rw-r--r--pkgs/os-specific/linux/sdparm/1.03.nix21
-rw-r--r--pkgs/os-specific/linux/sdparm/default.nix16
-rw-r--r--pkgs/shells/tcsh/default.nix6
-rw-r--r--pkgs/tools/archivers/cromfs/default.nix6
-rw-r--r--pkgs/tools/cd-dvd/cdrkit/default.nix6
-rw-r--r--pkgs/tools/misc/ttf2pt1/default.nix28
-rw-r--r--pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch98
-rw-r--r--pkgs/tools/misc/xmltv/default.nix10
-rw-r--r--pkgs/tools/networking/pdsh/default.nix2
-rw-r--r--pkgs/tools/networking/wget/default.nix4
-rw-r--r--pkgs/tools/package-management/cabal-install/default.nix13
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/typesetting/docbook2x/default.nix8
-rw-r--r--pkgs/tools/typesetting/lhs2tex/default.nix25
-rw-r--r--pkgs/top-level/all-packages.nix2554
-rw-r--r--pkgs/top-level/build-for-release.nix8
-rw-r--r--pkgs/top-level/haskell-packages.nix377
-rw-r--r--pkgs/top-level/perl-packages.nix2108
-rw-r--r--pkgs/top-level/release.nix28
-rw-r--r--pkgs/top-level/template-debian.nix14
-rw-r--r--pkgs/top-level/template-simple.nix17
148 files changed, 4622 insertions, 3137 deletions
diff --git a/pkgs/applications/editors/elvis/default.nix b/pkgs/applications/editors/elvis/default.nix
new file mode 100644
index 0000000000000..511e284ed39e0
--- /dev/null
+++ b/pkgs/applications/editors/elvis/default.nix
@@ -0,0 +1,40 @@
+{ fetchurl, stdenv, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "elvis-2.2_0";
+
+  src = fetchurl {
+    url = ftp://ftp.cs.pdx.edu/pub/elvis/elvis-2.2_0.tar.gz;
+    sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s";
+  };
+
+  buildInputs = [ ncurses ];
+
+  patchPhase = ''
+    sed -i s/-lcurses/-lncurses/ configure
+  '';
+
+  preConfigure = ''
+    ensureDir $out/share/man/man1
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin $out/share/elvis $out/share/elvis/doc
+    cp elvis ref elvtags elvfmt $out/bin
+    cp -R data/* $out/share/elvis
+    cp doc/* $out/share/elvis/doc
+
+    ensureDir $out/share/man/man1
+    for a in doc/*.man; do
+      cp $a $out/share/man/man1/`basename $a .man`.1
+    done
+  '';
+
+  configureFlags = "--ioctl=termios";
+
+  meta = {
+    homepage = http://elvis.vi-editor.org/;
+    description = "A vi clone for Unix and other operating systems";
+    license = "free";
+  };
+}
diff --git a/pkgs/applications/editors/leksah/default.nix b/pkgs/applications/editors/leksah/default.nix
new file mode 100644
index 0000000000000..9e576bb91098d
--- /dev/null
+++ b/pkgs/applications/editors/leksah/default.nix
@@ -0,0 +1,26 @@
+{cabal, gtk2hs, binary, parsec, regexPosix, utf8String, libedit, makeWrapper}:
+
+cabal.mkDerivation (self : {
+  pname = "leksah";
+  version = "0.4.4.1";
+  sha256 = "092a8gi73jhalgs4ppg8ki761vwk3gdnjwlyd4chnahbv5i1wrjw";
+
+  # !!! The explicit libedit dependency shouldn't be necessary.
+  extraBuildInputs = [gtk2hs binary parsec regexPosix utf8String libedit makeWrapper];
+
+  preConfigure =
+    ''
+      substituteInPlace leksah.cabal --replace 'Cabal ==1.6.0.1' 'Cabal >=1.6.0.1' 
+    '';
+
+  postInstall =
+    ''
+      wrapProgram $out/bin/leksah --prefix XDG_DATA_DIRS : ${gtk2hs.gtksourceview}/share
+    '';
+  
+  meta = {
+    homepage = http://leksah.org/;
+    description = "An Integrated Development Environment for Haskell written in Haskell";
+  };
+})  
+
diff --git a/pkgs/applications/editors/nvi/default.nix b/pkgs/applications/editors/nvi/default.nix
new file mode 100644
index 0000000000000..6f33758ce4f49
--- /dev/null
+++ b/pkgs/applications/editors/nvi/default.nix
@@ -0,0 +1,49 @@
+{ fetchurl, stdenv, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "nvi-1.79";
+
+  src = fetchurl {
+    url = ftp://ftp.bostic.com/pub/nvi-1.79.tar.gz;
+    sha256 = "0cvf56rbylz7ksny6g2256sjg8yrsxrmbpk82r64rhi53sm8fnvm";
+  };
+
+  buildInputs = [ ncurses ];
+
+  # nvi tries to write to a usual tmp directory (/var/tmp),
+  # so we will force it to use /tmp.
+  patchPhase = ''
+    sed -i -e s/-lcurses/-lncurses/ \
+      -e s@vi_cv_path_preserve=no@vi_cv_path_preserve=/tmp/vi.recover@ \
+      -e s@/var/tmp@@ build/configure
+  '';
+
+  configurePhase = ''
+    mkdir mybuild
+    cd mybuild
+    ../build/configure --prefix=$out --disable-curses
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin $out/share/vi/catalog
+    for a in dutch english french german ru_SU.KOI8-R spanish swedish; do
+      cp ../catalog/$a $out/share/vi/catalog
+    done
+    cp nvi $out/bin/nvi
+    ln -s $out/bin/nvi $out/bin/vi
+    ln -s $out/bin/nvi $out/bin/ex
+    ln -s $out/bin/nvi $out/bin/view
+
+    ensureDir $out/share/man/man1
+    cp ../docs/USD.doc/vi.man/vi.1 $out/share/man/man1/nvi.1
+    ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/vi
+    ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/ex
+    ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/view
+  '';
+
+  meta = {
+    homepage = http://www.bostic.com/vi/;
+    description = "The Berkeley Vi Editor";
+    license = "free";
+  };
+}
diff --git a/pkgs/applications/misc/xmobar/default.nix b/pkgs/applications/misc/xmobar/default.nix
index 4e767177e29ec..7c7fa4c88cc69 100644
--- a/pkgs/applications/misc/xmobar/default.nix
+++ b/pkgs/applications/misc/xmobar/default.nix
@@ -1,11 +1,11 @@
-{cabal, X11}:
+{cabal, X11, mtl, parsec, stm}:
 
 cabal.mkDerivation (self : {
   pname = "xmobar";
   name = "${self.fname}";
-  version = "0.8";
-  sha256 = "88aa5bc0715e2592282e5897bc7938f16580804f56757bc71ed3762bf86c9415";
-  extraBuildInputs = [X11];
+  version = "0.9.2";
+  sha256 = "361295f5dc912512a2eb644ecd331562a271243192be6215cb071e44f50c7c66";
+  extraBuildInputs = [X11 mtl parsec stm];
   meta = {
     description = "xmobar is a minimalistic text based status bar";
   };
diff --git a/pkgs/applications/office/openoffice/builder.sh b/pkgs/applications/office/openoffice/builder.sh
index 5077463f1b2e9..0c8ebc8513906 100644
--- a/pkgs/applications/office/openoffice/builder.sh
+++ b/pkgs/applications/office/openoffice/builder.sh
@@ -5,6 +5,11 @@ export NO_HIDS=TRUE
 
 export PATH=$icu/sbin:$PATH
 
+postUnpack=postUnpack
+postUnpack() {
+  tar xvjf $src_system
+}
+
 preConfigure=preConfigure
 preConfigure() {
     for i in sysui/desktop/share/makefile.mk; do 
@@ -51,7 +56,7 @@ wrapSOffice() {
 # looks for it at runtime.
 export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH\${LD_LIBRARY_PATH:+:}$fontconfig/lib:$libjpeg/lib:$cups/lib
 export JAVA_HOME=$jdk
-exec $ooFiles/program/soffice $arg "\$@"
+exec $ooFiles/openoffice.org3/program/soffice $arg "\$@"
 EOF
     chmod +x $out/bin/$fn
 }
diff --git a/pkgs/applications/office/openoffice/default.nix b/pkgs/applications/office/openoffice/default.nix
index d525ab42fc674..a5a422e0f94b7 100644
--- a/pkgs/applications/office/openoffice/default.nix
+++ b/pkgs/applications/office/openoffice/default.nix
@@ -1,21 +1,28 @@
-{ stdenv, fetchurl, pam, python, tcsh, libxslt, perl, perlArchiveZip
-, perlCompressZlib, zlib, libjpeg, expat, pkgconfig, freetype, libwpd
+{ stdenv, fetchurl, pam, python, tcsh, libxslt, perl, ArchiveZip
+, CompressZlib, zlib, libjpeg, expat, pkgconfig, freetype, libwpd
 , libxml2, db4, sablotron, curl, libXaw, fontconfig, libsndfile, neon
 , bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
-, icu, boost, jdk, ant, hsqldb, libXext, libX11, libXtst, libXi, cups
-, libXinerama, openssl
+, icu, boost, jdk, ant, libXext, libX11, libXtst, libXi, cups
+, libXinerama, openssl, gperf, cppunit
 }:
 
-let version = "2.4.1"; in
+let version = "3.0.1"; in
 stdenv.mkDerivation rec {
   name = "openoffice.org-${version}";
   builder = ./builder.sh;
 
-  src =
-    fetchurl {
+  src = fetchurl {
       url = "http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=src_bzip&lang=core&version=${version}";
       name = "OOo_${version}_src_core.tar.bz2";
-      sha256 = "1405l6xb1qy6l43n9nli8hhay917nyr8a69agj483aaiskrpdxdb";
+      sha256 = "0fgk7n766lzsxn09p8g5ddabw568jw56k9bcdc02nlmk6k3a9qq0";
+    };
+
+  patches = [ ./oo.patch ];
+
+  src_system = fetchurl {
+      url = "http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=src_bzip&lang=system&version=${version}";
+      name = "OOo_${version}_src_system.tar.bz2";
+      sha256 = "1zp8lbn5x9wwbv82inqkanaip4l2jyiybjqv1dpx7wbh6nrasgdv";
     };
 
   configureFlags = "
@@ -28,7 +35,6 @@ stdenv.mkDerivation rec {
     --disable-mozilla
     --disable-odk
     --disable-pasf
-    --disable-qadevooo
     --with-cairo
     --with-system-libs
     --with-system-python
@@ -49,24 +55,24 @@ stdenv.mkDerivation rec {
     --without-system-xml-apis
     --without-system-xt
     --without-system-db
-    --with-system-hsqldb
-    --with-hsqldb-jar=${hsqldb}/lib/hsqldb.jar
+    --without-system-jars
+    --without-system-hunspell
+    --without-system-altlinuxhyph
+    --without-system-lpsolve
   ";
 
   LD_LIBRARY_PATH = "${libXext}/lib:${libX11}/lib:${libXtst}/lib:${libXi}/lib:${libjpeg}/lib";
 
   buildInputs = [
-    pam python tcsh libxslt perl perlArchiveZip perlCompressZlib zlib 
+    pam python tcsh libxslt perl ArchiveZip CompressZlib zlib 
     libjpeg expat pkgconfig freetype libwpd libxml2 db4 sablotron curl 
     libXaw fontconfig libsndfile neon bison flex zip unzip gtk libmspack 
     getopt file jdk cairo which icu boost libXext libX11 libXtst libXi
-    cups libXinerama openssl
+    cups libXinerama openssl gperf
   ];
 
   inherit icu fontconfig libjpeg jdk cups;
 
-  patches = [./ooo-libtextcat.patch ];
-
   meta = {
     description = "OpenOffice.org is a multiplatform and multilingual office suite";
     homepage = http://www.openoffice.org/;
diff --git a/pkgs/applications/office/openoffice/oo.patch b/pkgs/applications/office/openoffice/oo.patch
new file mode 100644
index 0000000000000..1234d961fd1db
--- /dev/null
+++ b/pkgs/applications/office/openoffice/oo.patch
@@ -0,0 +1,72 @@
+diff --git a/libtextcat/makefile.mk b/libtextcat/makefile.mk
+index 602b9b1..6be8427 100644
+--- a/libtextcat/makefile.mk
++++ b/libtextcat/makefile.mk
+@@ -57,7 +57,7 @@ ADDITIONAL_FILES= \
+ #CONFIGURE_DIR=$(BUILD_DIR)
+ 
+ #relative to CONFIGURE_DIR
+-CONFIGURE_ACTION=configure CFLAGS="$(ARCH_FLAGS) $(EXTRA_CFLAGS)"
++CONFIGURE_ACTION=configure CFLAGS="$(ARCH_FLAGS) $(EXTRA_CFLAGS)" --prefix=$(TMPDIR)
+ CONFIGURE_FLAGS=
+ 
+ BUILD_ACTION=make
+diff --git a/redland/raptor/makefile.mk b/redland/raptor/makefile.mk
+index 0e64d50..547d66b 100644
+--- a/redland/raptor/makefile.mk
++++ b/redland/raptor/makefile.mk
+@@ -104,7 +104,7 @@ XSLTLIB:=$(XSLTLIB)
+ 
+ CONFIGURE_DIR=
+ CONFIGURE_ACTION=.$/configure
+-CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore       --with-regex-library=posix --with-decimal=none --with-www=xml
++CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore       --with-regex-library=posix --with-decimal=none --with-www=xml --prefix=$(TMPDIR)
+ BUILD_ACTION=$(GNUMAKE)
+ BUILD_FLAGS+= -j$(EXTMAXPROCESS)
+ BUILD_DIR=$(CONFIGURE_DIR)
+diff --git a/redland/rasqal/makefile.mk b/redland/rasqal/makefile.mk
+index 850ee9c..3293a79 100644
+--- a/redland/rasqal/makefile.mk
++++ b/redland/rasqal/makefile.mk
+@@ -104,7 +104,7 @@ XSLTLIB:=$(XSLTLIB)
+ 
+ CONFIGURE_DIR=
+ CONFIGURE_ACTION=.$/configure PATH="..$/..$/..$/bin:$$PATH"
+-CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore       --with-regex-library=posix --with-decimal=none --with-www=xml
++CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore       --with-regex-library=posix --with-decimal=none --with-www=xml --prefix=$(TMPDIR)
+ BUILD_ACTION=$(GNUMAKE)
+ BUILD_FLAGS+= -j$(EXTMAXPROCESS)
+ BUILD_DIR=$(CONFIGURE_DIR)
+diff --git a/redland/redland/makefile.mk b/redland/redland/makefile.mk
+index 5719272..75c31b7 100644
+--- a/redland/redland/makefile.mk
++++ b/redland/redland/makefile.mk
+@@ -108,7 +108,7 @@ XSLTLIB:=$(XSLTLIB)
+ 
+ CONFIGURE_DIR=
+ CONFIGURE_ACTION=.$/configure PATH="..$/..$/..$/bin:$$PATH"
+-CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --with-raptor=system --with-rasqual=system --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore       --with-regex-library=posix --with-decimal=none --with-www=xml
++CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --with-raptor=system --with-rasqual=system --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore       --with-regex-library=posix --with-decimal=none --with-www=xml --prefix=$(TMPDIR)
+ BUILD_ACTION=$(GNUMAKE)
+ BUILD_FLAGS+= -j$(EXTMAXPROCESS)
+ BUILD_DIR=$(CONFIGURE_DIR)
+diff --git a/hunspell/hunspell-1.1.12.patch b/hunspell/hunspell-1.1.12.patch
+index 37b7964..e6fd962 100644
+--- a/hunspell/hunspell-1.1.12.patch
++++ b/hunspell/hunspell-1.1.12.patch
+@@ -487,3 +487,15 @@
+  i68568utf.test \
+  1706659.test \
+  digits_in_words.test \
++diff --git a/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh b/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh
++index 90080f6..f069517 100755
++--- a/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh
+++++ b/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh
++--- misc/hunspell-1.1.12/tests/test.sh	Sep  4 01:25:35 2007
+++++ misc/build/hunspell-1.1.12/tests/test.sh	Jun 18 11:53:11 2008
++@@ -1,4 +1,4 @@
++-#!/bin/bash
+++#!/bin/sh
++ export LC_ALL="C"
++ 
++ function check_valgrind_log () {
diff --git a/pkgs/applications/office/openoffice/ooo-libtextcat.patch b/pkgs/applications/office/openoffice/ooo-libtextcat.patch
deleted file mode 100644
index 6fe7b7108c333..0000000000000
--- a/pkgs/applications/office/openoffice/ooo-libtextcat.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- OOH680_m17/libtextcat/makefile.mk	2008-01-02 18:33:39.000000000 +0100
-+++ OOH680_m17/libtextcat/makefile.mk	2008-08-14 15:52:19.000000000 +0200
-@@ -62,6 +62,6 @@ ADDITIONAL_FILES= \
- 
- #relative to CONFIGURE_DIR
- CONFIGURE_ACTION=configure CFLAGS="$(EXTRA_CFLAGS)"
--CONFIGURE_FLAGS=
-+CONFIGURE_FLAGS=--prefix="${out}"
- 
- BUILD_ACTION=make
diff --git a/pkgs/applications/version-management/darcs/darcs-2.nix b/pkgs/applications/version-management/darcs/darcs-2.nix
index be68791cd2d98..c0efa78553b67 100644
--- a/pkgs/applications/version-management/darcs/darcs-2.nix
+++ b/pkgs/applications/version-management/darcs/darcs-2.nix
@@ -1,19 +1,17 @@
-{stdenv, fetchurl, ghc, zlib, ncurses, curl, perl}:
+{cabal, html, mtl, parsec, regexCompat, zlib, curl} :
 
-stdenv.mkDerivation {
-  name = "darcs-2.1.0";
-  src = fetchurl {
-    url = http://www.darcs.net/darcs-2.1.0.tar.gz;
-    sha256 = "d5a63e62bceb45905163d508c6b25158dab6aca367015566d8c539ec37107ab4";
-  };
-
-  buildInputs = [ghc zlib ncurses curl perl];
+cabal.mkDerivation (self : {
+  pname = "darcs";
+  name = self.fname;
+  version = "2.2.1";
+  sha256 = "0iy4d4qls6yhwmgv87pz4kmr5jh4bwigz1wfwzns71b68csynnsp";
 
-  NIX_LDFLAGS = "-lz";
+  extraBuildInputs = [html mtl parsec regexCompat zlib curl];
 
   meta = {
+    homepage = http://darcs.net/;
     description = "Patch-based version management system";
   };
 
   patches = ./bash-completion.patch; # I didn't have "have"
-}
+})
diff --git a/pkgs/applications/version-management/darcs/default.nix b/pkgs/applications/version-management/darcs/default.nix
deleted file mode 100644
index 336d37ad2c885..0000000000000
--- a/pkgs/applications/version-management/darcs/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{stdenv, fetchurl, ghc, zlib, ncurses, curl, getConfig}:
-
-# you really should consider using darcs2 and updating your darcs-1 repos ..
-# many performance improvements have been made if you use the darcs-2 or hashed format
-# (darcs-2 is default now when runnig darcs 2.1.0)
-# lookup darcs convert and make sure you understand the one way conversion..
-assert getConfig ["darcs" "IreallyWantDarcsOne"] false;
-
-stdenv.mkDerivation {
-  name = "darcs-1.0.9";
-  src = fetchurl {
-    url = http://www.darcs.net/darcs-1.0.9.tar.gz;
-    sha256 = "a5fe4d5a743d8052d6cbfcea480a44593f821afd8a42e6d6d4ae37d40ed23cd8";
-  };
-  buildInputs = [ghc zlib ncurses curl];
-
-  NIX_LDFLAGS = "-lz";
-
-  meta = {
-    description = "Patch-based version management system";
-  };
-}
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index d16b166416fc9..562fd3a91f9f4 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -15,7 +15,7 @@ rec {
       cpio tcl tk makeWrapper subversion;
     svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
     guiSupport = getConfig ["git" "guiSupport"] false;
-    perlLibs = [perlLWP perlURI perlTermReadKey subversion];
+    perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
   };
 
   gitGit = import ./git/git-git.nix {
@@ -26,7 +26,7 @@ rec {
     inherit (bleedingEdgeRepos) sourceByName;
     svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
     guiSupport = getConfig ["git" "guiSupport"] false;
-    perlLibs = [perlLWP perlURI perlTermReadKey subversion];
+    perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
   };
 
   qgit = import ./qgit {
diff --git a/pkgs/applications/version-management/subversion/1.6.nix b/pkgs/applications/version-management/subversion/1.6.nix
index 6d40142c4bc13..625a74b2bd8f6 100644
--- a/pkgs/applications/version-management/subversion/1.6.nix
+++ b/pkgs/applications/version-management/subversion/1.6.nix
@@ -20,13 +20,13 @@ assert compressionSupport -> neon.compressionSupport;
 
 stdenv.mkDerivation rec {
 
-  version = "1.6.0";
+  version = "1.6.1";
 
   name = "subversion-${version}";
 
   src = fetchurl {
     url = "http://subversion.tigris.org/downloads/${name}.tar.bz2";
-    sha256 = "d6fb8bf61638580a0ad661edb642c38fbffad2a4c273e3f8631c6cc0da14d0a2";
+    sha256 = "1jp6i7vmz0vd1zf4y896f7jzabwv81x8brwzp5kpkrn6wajagm6d";
   };
 
   buildInputs = [zlib apr aprutil sqlite]
diff --git a/pkgs/applications/video/cinelerra/default.nix b/pkgs/applications/video/cinelerra/default.nix
index 501c7c33df112..2029c98037f9b 100644
--- a/pkgs/applications/video/cinelerra/default.nix
+++ b/pkgs/applications/video/cinelerra/default.nix
@@ -14,7 +14,7 @@ args.stdenv.mkDerivation {
 
   buildInputs =(with args; [
       automake autoconf libtool pkgconfig
-      X11 faad2 faac
+      faad2 faac
       a52dec alsaLib   fftw lame libavc1394 libiec61883
       libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
       mjpegtools x264 gettext openexr esound 
diff --git a/pkgs/applications/virtualization/virtualbox/1.5.2.nix b/pkgs/applications/virtualization/virtualbox/1.5.2.nix
deleted file mode 100644
index a0d4dc89b688e..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/1.5.2.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-args : with args;
-	let localDefs = builderDefs {
-		src = /* put a fetchurl here */
-		fetchurl {
-			url = http://www.virtualbox.org/download/1.5.2/VirtualBox-1.5.2_OSE.tar.bz2;
-			sha256 = "1g9rvkqjcsfx36gwk6i9c0bml6053xx2mdn1sn7vyyy0sgwkwk53";
-		};
-		buildInputs = [libXcursor bridge_utils umlutilities kernelHeaders 
-		      wine jre libxslt libIDL SDL qt3 openssl zlib];
-		configureFlags = [];
-	} null; /* null is a terminator for sumArgs */
-	in with localDefs;
-stdenv.mkDerivation rec {
-	name = "VirtualBox-"+version;
-	builder = writeScript (name + "-builder")
-		(textClosure localDefs [doConfigure doMakeInstall doForceShare doPropagate]);
-	meta = {
-		description = "
-		Virtual Box is just software for running virtual machines. 
-";
-		inherit src;
-	};
-}
diff --git a/pkgs/applications/virtualization/virtualbox/2.1.2.nix b/pkgs/applications/virtualization/virtualbox/2.1.2.nix
deleted file mode 100644
index b33c58455fa28..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/2.1.2.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{stdenv, fetchurl, iasl, dev86, libxslt, libxml2, libX11, xproto, libXext, libXcursor, qt3, qt4, libIDL, SDL, hal, libcap, zlib, libpng, glib, kernel}:
-
-stdenv.mkDerivation {
-  name = "virtualbox-2.1.2";
-
-  src = fetchurl {
-    url = http://download.virtualbox.org/virtualbox/2.1.2/VirtualBox-2.1.2-OSE.tar.bz2;
-    sha256 = "d3c1ae8ed7594094aaf8496204c5415479e1943e5b5179c5baae8a66885362de";
-  };
-
-  buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt3 qt4 libIDL SDL hal libcap glib kernel];
-
-  patchPhase = "
-    set -x
-    MODULES_BUILD_DIR=`echo ${kernel}/lib/modules/*/build`
-    sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \\
-        -i configure
-    ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 
-    export USER=nix
-    set +x
-  ";
-
-  configurePhase = ''
-    # It wants the qt utils from qt3, and it takes them from QTDIR
-    export QTDIR=${qt3}
-    ./configure --with-qt-dir=${qt3} --with-qt4-dir=${qt4} --disable-python --disable-alsa --disable-pulse --disable-hardening
-    sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
-        -i AutoConfig.kmk
-    sed -e 's@arch/x86/@@' \
-        -i Config.kmk
-    cat >> AutoConfig.kmk << END_PATHS
-    VBOX_PATH_APP_PRIVATE := $out
-    VBOX_PATH_APP_DOCS := $out/doc
-    END_PATHS
-  '';
-
-  buildPhase = "
-    source env.sh
-    kmk
-  ";
-    
-  
-  meta = {
-    description = "PC emulator";
-    homepage = http://www.virtualbox.org/;
-  };
-}
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
new file mode 100644
index 0000000000000..fa1a0563339de
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl, iasl, dev86, libxslt, libxml2, libX11, xproto, libXext
+, libXcursor, qt3, qt4, libIDL, SDL, hal, libcap, zlib, libpng, glib, kernel
+, python, which
+}:
+
+stdenv.mkDerivation {
+  name = "virtualbox-2.2.0-${kernel.version}";
+
+  src = fetchurl {
+    url = http://download.virtualbox.org/virtualbox/2.2.0/VirtualBox-2.2.0-OSE.tar.bz2;
+    sha256 = "8bf621cfcb61f2b0a71be53f072e58c3fb4f3183324faa3947346ff973314c71";
+  };
+
+  buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt3 qt4 libIDL SDL hal libcap glib kernel python];
+
+  patchPhase = "
+    set -x
+    MODULES_BUILD_DIR=`echo ${kernel}/lib/modules/*/build`
+    sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \\
+        -i configure
+    ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 
+    ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 
+    export USER=nix
+    set +x
+  ";
+
+  configurePhase = ''
+    # It wants the qt utils from qt3, and it takes them from QTDIR
+    export QTDIR=${qt3}
+    ./configure --with-qt-dir=${qt3} --with-qt4-dir=${qt4} --disable-python --disable-alsa --disable-pulse --disable-hardening
+    sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
+        -i AutoConfig.kmk
+    sed -e 's@arch/x86/@@' \
+        -i Config.kmk
+    cat >> AutoConfig.kmk << END_PATHS
+    VBOX_PATH_APP_PRIVATE := $out
+    VBOX_PATH_APP_DOCS := $out/doc
+    END_PATHS
+  '';
+
+  buildPhase = ''
+    source env.sh
+    kmk
+    cd out/linux.*/release/bin/src
+    export KERN_DIR=${kernel}/lib/modules/*/build
+    make
+    cd ../../../../..
+  '';
+    
+  installPhase = ''
+    cd out/linux.*/release/bin
+    ensureDir $out/virtualbox
+    cp -av * $out/virtualbox
+    cd src
+    kernelVersion=$(cd ${kernel}/lib/modules; ls)
+    export MODULE_DIR=$out/lib/modules/$kernelVersion/misc
+    ensureDir $MODULE_DIR    
+    make install
+    ensureDir $out/bin
+    cp -v ${./VBox.sh} $out/bin/VBox.sh
+    sed -i -e "s|@INSTALL_PATH@|$out/virtualbox|" \
+           -e "s|@QT4_PATH@|${qt4}/lib|" \
+	   -e "s|which|${which}/bin/which|" \
+	   -e "s|gawk|${stdenv.gawk}/bin/gawk|" \
+	   $out/bin/VBox.sh
+    chmod 755 $out/bin/VBox.sh
+    for file in VirtualBox VBoxManage VBoxSDL
+    do
+        [ -f "$out/virtualbox/$file" ] && ln -sfv $out/bin/VBox.sh $out/bin/$file
+    done
+    ensureDir $out/share/applications
+    ln -sfv $out/virtualbox/VirtualBox.desktop $out/share/applications
+  '';
+  
+  meta = {
+    description = "PC emulator";
+    homepage = http://www.virtualbox.org/;
+  };
+}
diff --git a/pkgs/applications/window-managers/vwm/default.nix b/pkgs/applications/window-managers/vwm/default.nix
new file mode 100644
index 0000000000000..fa2e6efb30c5c
--- /dev/null
+++ b/pkgs/applications/window-managers/vwm/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, ncurses, pkgconfig, glib, libviper, libpseudo, gpm}:
+
+stdenv.mkDerivation {
+  name = "vwm-2.0.1";
+ 
+  src = fetchurl {
+    url = mirror://sourceforge/vwm/vwm-2.0.1.tar.gz;
+    sha256 = "1kn1ga35kvl10s3xvgr5ys18gd4pp0gwah4pnvmfkvg0xazjrc0h";
+  };
+
+  prePatch = ''
+    sed -i -e s@/usr/local@$out@ \
+      -e s@/usr/lib@$out/lib@ \
+      -e 's@tic vwmterm@tic -o '$out/lib/terminfo' vwmterm@' \
+      -e /ldconfig/d Makefile modules/*/Makefile vwm.h
+  '';
+
+  patches = [ ./signal.patch ];
+
+  preInstall = ''
+    ensureDir $out/bin $out/include
+  '';
+ 
+  buildInputs = [ ncurses pkgconfig glib libviper libpseudo gpm];
+ 
+  meta = {
+    homepage = http://vwm.sourceforge.net/;
+    description = "Dynamic window manager for the console";
+    license="GPLv2+";
+  };
+}
diff --git a/pkgs/applications/window-managers/vwm/signal.patch b/pkgs/applications/window-managers/vwm/signal.patch
new file mode 100644
index 0000000000000..b6cac4d262a3b
--- /dev/null
+++ b/pkgs/applications/window-managers/vwm/signal.patch
@@ -0,0 +1,22 @@
+diff --git a/modules/vwmterm2/signals.c b/modules/vwmterm2/signals.c
+index 239e7f2..07d78fd 100644
+--- a/modules/vwmterm2/signals.c
++++ b/modules/vwmterm2/signals.c
+@@ -1,4 +1,5 @@
+ #include <vwm.h>
++#include <signal.h>
+ 
+ struct sigaction* vwmterm_sigset(int signum,sighandler_t handler)
+ {
+diff --git a/vwm_private.h b/vwm_private.h
+index 2d48ebf..46457bd 100644
+--- a/vwm_private.h
++++ b/vwm_private.h
+@@ -2,6 +2,7 @@
+ #define _H_VWM_PRIVATE_
+ 
+ #include <glib.h>
++#include <signal.h>
+ 
+ #ifdef _VIPER_WIDE
+ #include <ncursesw/curses.h>
diff --git a/pkgs/applications/window-managers/xmonad/default.nix b/pkgs/applications/window-managers/xmonad/default.nix
index ed01ddd3e3350..1207f2627fafe 100644
--- a/pkgs/applications/window-managers/xmonad/default.nix
+++ b/pkgs/applications/window-managers/xmonad/default.nix
@@ -1,11 +1,11 @@
-{cabal, X11, xmessage}:
+{cabal, X11, mtl, xmessage}:
 
 cabal.mkDerivation (self : {
   pname = "xmonad";
   name = "${self.fname}";
-  version = "0.7";
-  sha256 = "d5ee338eb6d0680082e20eaafa0b23b32358fffe69e2ec4ad7bdf6e03c751d67";
-  extraBuildInputs = [X11];
+  version = "0.8.1";
+  sha256 = "9d58789a0bc08d40b9d14097b079822c7b8290d60efc6aa79144abf47d5db32c";
+  propagatedBuildInputs = [X11 mtl];
   meta = {
     description = "xmonad is a tiling window manager for X";
   };
diff --git a/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix b/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
index 2c0e250470fdc..9793eba3d76b0 100644
--- a/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonad-contrib.nix
@@ -3,8 +3,8 @@
 cabal.mkDerivation (self : {
   pname = "xmonad-contrib";
   name = "${self.fname}";
-  version = "0.7";
-  sha256 = "4034d0c8ce092fc9b4e9d9ecf89bc9c16c4ac28aad190f074edc9e4201db0697";
+  version = "0.8.1";
+  sha256 = "dedbd2e7718f7383e403f5f0b40d411f27099625e7e1dcddd42f7c12bf6488a9";
   extraBuildInputs = [X11 xmonad];
   meta = {
     description = "a huge extension library for xmonad";
diff --git a/pkgs/top-level/builder-defs.nix b/pkgs/build-support/builder-defs/builder-defs.nix
index 8556c9529a480..8556c9529a480 100644
--- a/pkgs/top-level/builder-defs.nix
+++ b/pkgs/build-support/builder-defs/builder-defs.nix
diff --git a/pkgs/top-level/template-composing+config.nix b/pkgs/build-support/builder-defs/template-composing+config.nix
index a774d421efab5..a774d421efab5 100644
--- a/pkgs/top-level/template-composing+config.nix
+++ b/pkgs/build-support/builder-defs/template-composing+config.nix
diff --git a/pkgs/top-level/template-composing-builder.nix b/pkgs/build-support/builder-defs/template-composing-builder.nix
index 0efb347d821ca..0efb347d821ca 100644
--- a/pkgs/top-level/template-composing-builder.nix
+++ b/pkgs/build-support/builder-defs/template-composing-builder.nix
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 53cd5b3172ed9..8cf7c7694404f 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -582,7 +582,7 @@ rec {
   rpmClosureGenerator =
     {name, packagesList, urlPrefix, packages, archs ? []}:
     
-    runCommand "${name}.nix" {buildInputs = [perl perlXMLSimple]; inherit archs;} ''
+    runCommand "${name}.nix" {buildInputs = [perl perlPackages.XMLSimple]; inherit archs;} ''
       gunzip < ${packagesList} > ./packages.xml
       perl -w ${rpm/rpm-closure.pl} \
         ./packages.xml ${urlPrefix} ${toString packages} > $out
diff --git a/pkgs/data/fonts/dejavu-fonts/default.nix b/pkgs/data/fonts/dejavu-fonts/default.nix
index 72eb801fd2979..e4175b88e5227 100644
--- a/pkgs/data/fonts/dejavu-fonts/default.nix
+++ b/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -1,9 +1,9 @@
-args: with args;
+{fetchurl, stdenv, fontforge, perl, fontconfig, FontTTF}:
 
 stdenv.mkDerivation {
   name = "dejavu-fonts-2.23";
   #fontconfig is needed only for fc-lang (?)
-  buildInputs = [fontforge perl perlFontTTF];
+  buildInputs = [fontforge perl FontTTF];
   src = fetchurl {
     url = mirror://sourceforge/dejavu/dejavu-fonts-2.23.tar.bz2;
     sha256 = "0gifaxiianls54i05yw5gxhi2a0j9jmy5p0q58ym4l9fxv5drnhn";
diff --git a/pkgs/data/misc/xkeyboard-config/level3-deadkeys-us-intl b/pkgs/data/misc/xkeyboard-config/level3-deadkeys-us-intl
index 3867d5b171c03..3a80b3be0aef2 100644
--- a/pkgs/data/misc/xkeyboard-config/level3-deadkeys-us-intl
+++ b/pkgs/data/misc/xkeyboard-config/level3-deadkeys-us-intl
@@ -62,8 +62,8 @@ xkb_symbols "altgr-intl" {
     key <AD08> { [	  i,	I,		iacute,		Iacute		] };
     key <AD09> { [	  o,	O,		oacute,		Oacute		] };
     key <AD10> { [	  p,	P,		odiaeresis,	Odiaeresis	] };
-    key <AD11> { [ bracketleft,	braceleft,		guillemotleft		] };
-    key <AD12> { [ bracketright,braceright,		guillemotright		] };
+    key <AD11> { [ bracketleft,	braceleft,	guillemotleft,	lessthanequal	] };
+    key <AD12> { [ bracketright,braceright,	guillemotright,	greaterthanequal] };
 
     key <AC01> { [	  a,	A,		aacute,		Aacute		] };
     key <AC02> { [	  s,	S,		ssharp,		section		] };
diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix
index ce86bf7ed42c1..acbcdc508d94d 100644
--- a/pkgs/desktops/gnome/default.nix
+++ b/pkgs/desktops/gnome/default.nix
@@ -192,6 +192,21 @@ rec {
     input = desktop.gtksourceview;
   };
 
+  gtksourceview_24 = stdenv.mkDerivation {
+    name = "gtksourceview-2.4.2";
+
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/gnome/sources/gtksourceview/2.4/gtksourceview-2.4.2.tar.bz2;
+      sha256 = "1grc2y817c0xd225l0m92ja35x2bgld5npa4w3g21amkqhdnpka9";
+    };
+    
+    buildInputs = [
+      perl perlXMLParser pkgconfig gnomevfs libbonobo GConf
+      libgnomeprintui libgnomecanvas gettext intltool
+    ];
+    propagatedBuildInputs = [gtk libxml2 libgnomeprint];
+  };
+
   scrollkeeper = import ./scrollkeeper.nix {
     inherit fetchurl stdenv pkgconfig perl perlXMLParser
             libxml2 libxslt docbook_xml_dtd_42;
diff --git a/pkgs/development/compilers/ghc-6.6.1/setup-hook.sh b/pkgs/development/compilers/ghc-6.6.1/setup-hook.sh
deleted file mode 100644
index 03057e82f4af7..0000000000000
--- a/pkgs/development/compilers/ghc-6.6.1/setup-hook.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-# Support dir for isolating GHC
-ghc_support=$TMPDIR/ghc-6.6-nix-support
-mkdir -p $ghc_support
-
-# Create isolated package config
-packages_db=$ghc_support/package.conf
-cp @out@/lib/ghc-*/package.conf $packages_db
-chmod +w $packages_db
-
-# Generate wrappers for GHC that use the isolated package config
-makeWrapper() {
-  wrapperName="$1"
-  wrapper="$ghc_support/$wrapperName"
-  shift #the other arguments are passed to the source app
-  echo '#!'"$SHELL" > "$wrapper"
-  echo "exec \"@out@/bin/$wrapperName\" $@" '"$@"' >> "$wrapper"
-  chmod +x "$wrapper"
-}
-
-makeWrapper "ghc"         "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "ghci"        "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "runghc"      "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "runhaskell"  "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "ghc-pkg"     "--global-conf $packages_db"
-
-# Add wrappers to search path
-export _PATH=$ghc_support:$_PATH
-
-# Env hook to add packages to the package config
-addLibToPackageConf ()
-{
-    local regscript=$1/nix-support/register-ghclib.sh
-    if test -f $regscript; then
-        local oldpath=$PATH
-        export PATH=$ghc_support:$PATH
-        sh $regscript $package_db
-        export PATH=$oldpath
-    fi
-}
-
-envHooks=(${envHooks[@]} addLibToPackageConf)
diff --git a/pkgs/development/compilers/ghc-6.6/builder.sh b/pkgs/development/compilers/ghc-6.6/builder.sh
deleted file mode 100644
index 4f4760d691775..0000000000000
--- a/pkgs/development/compilers/ghc-6.6/builder.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-source $stdenv/setup
-
-# Setup isolated package management
-postInstall()
-{
-    ensureDir "$out/nix-support"
-    echo "# Path to the GHC compiler directory in the store" > $out/nix-support/setup-hook
-    echo "ghc=$out" >> $out/nix-support/setup-hook
-    echo ""         >> $out/nix-support/setup-hook
-    cat $setupHook  >> $out/nix-support/setup-hook
-}
-postInstall=postInstall
-
-configureFlags="--with-readline-libraries=\"$readline/lib\""
-
-preConfigure()
-{
-    chmod u+x rts/gmp/configure
-    # add library paths for gmp, ncurses
-    sed -i "s|^\(library-dirs.*$\)|\1 \"$gmp/lib\"|" rts/package.conf.in
-    sed -i "s|^\(library-dirs.*$\)|\1 \"$ncurses/lib\"|" libraries/readline/package.conf.in
-}
-preConfigure=preConfigure
-
-# Standard configure/make/make install
-genericBuild
diff --git a/pkgs/development/compilers/ghc-6.6/default.nix b/pkgs/development/compilers/ghc-6.6/default.nix
deleted file mode 100644
index f76547c89d7d2..0000000000000
--- a/pkgs/development/compilers/ghc-6.6/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses}:
-
-stdenv.mkDerivation {
-  name = "ghc-6.6";
-
-  src = map fetchurl [
-    { url = http://www.haskell.org/ghc/dist/6.6/ghc-6.6-src.tar.bz2;
-      md5 = "2427a8d7d14f86e0878df6b54938acf7";
-    }
-    { url = http://www.haskell.org/ghc/dist/6.6/ghc-6.6-src-extralibs.tar.bz2;
-      md5 = "14b22fce36caffa509046361724bc119";
-    }
-  ];
-
-  builder = ./builder.sh;
-
-  buildInputs = [ghc readline perl m4];
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    description = "The Glasgow Haskell Compiler v6.6";
-  };
-
-  inherit readline gmp ncurses;
-}
diff --git a/pkgs/development/compilers/ghc-6.6/setup-hook.sh b/pkgs/development/compilers/ghc-6.6/setup-hook.sh
deleted file mode 100644
index b8441abc98a76..0000000000000
--- a/pkgs/development/compilers/ghc-6.6/setup-hook.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-# Support dir for isolating GHC
-ghc_support=$TMPDIR/ghc-6.6-nix-support
-mkdir -p $ghc_support
-
-# Create isolated package config
-packages_db=$ghc_support/package.conf
-cp $ghc/lib/ghc-*/package.conf $packages_db
-chmod +w $packages_db
-
-# Generate wrappers for GHC that use the isolated package config
-makeWrapper() {
-  wrapperName="$1"
-  wrapper="$ghc_support/$wrapperName"
-  shift #the other arguments are passed to the source app
-  echo '#!'"$SHELL" > "$wrapper"
-  echo "exec \"$ghc/bin/$wrapperName\" $@" '"$@"' >> "$wrapper"
-  chmod +x "$wrapper"
-}
-
-makeWrapper "ghc"         "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "ghci"        "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "runghc"      "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "runhaskell"  "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "ghc-pkg"     "--global-conf $packages_db"
-
-# Add wrappers to search path
-export _PATH=$ghc_support:$_PATH
-
-# Env hook to add packages to the package config
-addLibToPackageConf ()
-{
-    local regscript=$1/nix-support/register-ghclib.sh
-    if test -f $regscript; then
-        local oldpath=$PATH
-        export PATH=$ghc_support:$PATH
-        sh $regscript $package_db
-        export PATH=$oldpath
-    fi
-}
-
-envHooks=(${envHooks[@]} addLibToPackageConf)
diff --git a/pkgs/development/compilers/ghc-6.8/head.nix b/pkgs/development/compilers/ghc-6.8/head.nix
deleted file mode 100644
index e274070036a7c..0000000000000
--- a/pkgs/development/compilers/ghc-6.8/head.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{stdenv, fetchurl, readline, ghc, happy, alex, perl, m4, gmp, ncurses, haskellEditline}:
-
-stdenv.mkDerivation (rec {
-  name = "ghc-6.9.20080719";
-  homepage = "http://www.haskell.org/ghc";
-
-  src = map fetchurl [
-    { url    = "${homepage}/dist/current/dist/${name}-src.tar.bz2";
-      sha256 = "ed2371c3632962fccab6ec60c04e9fc6a38f3ade3a30a464cea5d53784bc3a34";
-    }
-    { url    = "${homepage}/dist/current/dist/${name}-src-extralibs.tar.bz2";
-      sha256 = "d3c7aa7d53befe268f92148cc8f3b0861dfdc84e9b21b039af0f5b230bfbf72b";
-    }
-  ];
-
-  buildInputs = [ghc readline perl m4 gmp happy alex haskellEditline];
-
-  # The setup hook is executed by other packages building with ghc.
-  # It then looks for package configurations that are available and
-  # build a package database on the fly.
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    description = "The Glasgow Haskell Compiler";
-  };
-
-  configureFlags=[
-    "--with-gmp-libraries=${gmp}/lib"
-    "--with-gmp-includes=${gmp}/include"
-    "--with-readline-libraries=${readline}/lib"
-    "--with-gcc=${gcc}/bin/gcc"
-  ];
-
-  preConfigure = ''
-    # should not be present in a clean distribution
-    rm utils/pwd/pwd
-    # fix bug in makefile
-    sed -i -e 's/:\\"//' -e 's/\\"//' mk/config.mk.in
-  '';
-
-  postInstall = ''
-    ln -s $out/lib/${name}/ghc $out/lib/${name}/${name}
-  '';
-
-  inherit (stdenv) gcc;
-  inherit readline gmp ncurses;
-})
diff --git a/pkgs/development/compilers/ghc-6.8/setup-hook.sh b/pkgs/development/compilers/ghc-6.8/setup-hook.sh
deleted file mode 100644
index 263f46f52d429..0000000000000
--- a/pkgs/development/compilers/ghc-6.8/setup-hook.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-# Support dir for isolating GHC
-ghc_support=$TMPDIR/ghc-6.8-nix-support
-ensureDir $ghc_support
-
-# Create isolated package config
-packages_db=$ghc_support/package.conf
-cp @out@/lib/ghc-*/package.conf $packages_db
-chmod +w $packages_db
-
-# Generate wrappers for GHC that use the isolated package config
-makeWrapper() {
-  wrapperName="$1"
-  wrapper="$ghc_support/$wrapperName"
-  shift #the other arguments are passed to the source app
-  echo '#!'"$SHELL" > "$wrapper"
-  echo "exec \"@out@/bin/$wrapperName\" $@" '"$@"' >> "$wrapper"
-  chmod +x "$wrapper"
-}
-
-makeWrapper "ghc"         "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "ghci"        "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "runghc"      "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "runhaskell"  "-no-user-package-conf -package-conf $packages_db"
-makeWrapper "ghc-pkg"     "--global-conf $packages_db"
-
-# Add wrappers to search path
-export _PATH=$ghc_support:$_PATH
-
-# Env hook to add packages to the package config
-addLibToPackageConf ()
-{
-    local regscript=$1/nix-support/register-ghclib.sh
-    if test -f $regscript; then
-        local oldpath=$PATH
-        export PATH=$ghc_support:$PATH
-        sh $regscript $package_db
-        export PATH=$oldpath
-    fi
-}
-
-envHooks=(${envHooks[@]} addLibToPackageConf)
diff --git a/pkgs/development/compilers/ghc-wrapper/builder.sh b/pkgs/development/compilers/ghc-wrapper/builder.sh
deleted file mode 100644
index 9851f9b2b1b6a..0000000000000
--- a/pkgs/development/compilers/ghc-wrapper/builder.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-source $stdenv/setup
-
-export HOME=$(pwd)/fake-home
-
-makeWrapper() {
-  wrapperBase="$1"
-  wrapperName="$2"
-  wrapper="$out/$wrapperName"
-  shift; shift #the other arguments are passed to the source app
-  echo '#!'"$SHELL" > "$wrapper"
-  echo "exec \"$wrapperBase/$wrapperName\" $@" '"$@"' > "$wrapper"
-  chmod +x "$wrapper"
-}
-
-mkdir -p $out/nix-support $out/bin
-packages_db=$out/nix-support/package.conf
-
-#create packages database (start with compiler base packages)
-cp $ghc/lib/ghc-*/package.conf $packages_db
-chmod +w $packages_db
-for lib in $libraries; do
-  sh $lib/nix-support/register.sh $packages_db || exit 1
-done
-rm -f $packages_db.old
-
-#create the wrappers 
-#NB: The double dash for ghc-pkg is not a typo!
-makeWrapper $ghc "bin/ghc"         "-package-conf"  $packages_db
-makeWrapper $ghc "bin/ghci"        "-package-conf"  $packages_db
-makeWrapper $ghc "bin/runghc"      "-package-conf"  $packages_db
-makeWrapper $ghc "bin/runhaskell"  "-package-conf"  $packages_db
-makeWrapper $ghc "bin/ghc-pkg"     "--global-conf"  $packages_db
-
-# todo: link all other binaries of ghc
diff --git a/pkgs/development/compilers/ghc-wrapper/default.nix b/pkgs/development/compilers/ghc-wrapper/default.nix
deleted file mode 100644
index 8c35db926b65f..0000000000000
--- a/pkgs/development/compilers/ghc-wrapper/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{stdenv, ghc, libraries}:
-
-stdenv.mkDerivation {
-  inherit (ghc) name meta;
-  inherit ghc libraries;
-  builder = ./builder.sh;
-}
diff --git a/pkgs/development/compilers/ghc/boot610.nix b/pkgs/development/compilers/ghc/6.10.1-binary.nix
index 7cfafaa13e8a5..720580c49c567 100644
--- a/pkgs/development/compilers/ghc/boot610.nix
+++ b/pkgs/development/compilers/ghc/6.10.1-binary.nix
@@ -1,31 +1,32 @@
-{stdenv, fetchurl, perl, editline, ncurses, gmp, makeWrapper}:
+{stdenv, fetchurl, perl, libedit, ncurses, gmp}:
 
 stdenv.mkDerivation rec {
   version = "6.10.1";
 
-  name = "ghc-${version}";
+  name = "ghc-${version}-binary";
 
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
-        # libedit .so.0
+        # This binary requires libedit.so.0 (rather than libedit.so.2).
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
         sha256 = "18l0vwlf7y86s65klpdvz4ccp8kydvcmyh03c86hld8jvx16q7zz";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
-        # libedit .so.0
+        # Idem.
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
         sha256 = "14jvvn333i36wm7mmvi47jr93f5hxrw1h2dpjvqql0rp00svhzzg";
       }
     else if stdenv.system == "i686-darwin" then
       fetchurl {
-        # update
-        # untested
+        # Idem.
+        url = "http://haskell.org/ghc/dist/${version}/maeder/ghc-${version}-i386-apple-darwin.tar.bz2";
+        sha256 = "0lax61cfzxkrjb7an3magdax6c8fygsirpw9qfmc651k2sfby1mq";
       }
-    else throw "cannot bootstrap GHC on this platform"; 
+    else throw "cannot bootstrap GHC on this platform";
 
-  buildInputs = [perl makeWrapper];
+  buildInputs = [perl];
 
   postUnpack =
     # Strip is harmful, see also below. It's important that this happens
@@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
     (if stdenv.isLinux then ''
       find . -type f -perm +100 \
           -exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
-          --set-rpath "${editline}/lib:${ncurses}/lib:${gmp}/lib" {} \;
+          --set-rpath "${libedit}/lib:${ncurses}/lib:${gmp}/lib" {} \;
       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
@@ -61,46 +62,45 @@ stdenv.mkDerivation rec {
 
   # No building is necessary, but calling make without flags ironically
   # calls install-strip ...
-  buildPhase = ":";
+  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 "
+  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
+        ensureDir $out/frameworks/GNUeditline.framework/Versions/A
+        ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
+        ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/Versions/A/GNUeditline
 
-    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
-    ensureDir $out/frameworks/GNUeditline.framework/Versions/A
-    ln -s ${editline}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
-    ln -s ${editline}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/Versions/A/GNUeditline
+        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
 
-    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
-
-  wrapProgram $out/bin/ghc --set LDPATH "${gmp}/lib"
-  # 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" ]
-  ''
-  ;
+        # 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" ]
+      '';
 
 }
diff --git a/pkgs/development/compilers/ghc/6.10.1.nix b/pkgs/development/compilers/ghc/6.10.1.nix
new file mode 100644
index 0000000000000..deca9d19f1d2c
--- /dev/null
+++ b/pkgs/development/compilers/ghc/6.10.1.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses}:
+
+stdenv.mkDerivation rec {
+  version = "6.10.1";
+  
+  name = "ghc-${version}";
+  
+  homepage = "http://haskell.org/ghc";
+
+  src = fetchurl {
+    url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
+    sha256 = "16q08cxxsmh4hgjhvkl739pc1hh81gljycfq1d2z6m1ld3jpbi22";
+  };
+
+  buildInputs = [ghc libedit perl gmp];
+
+  configureFlags=[
+    "--with-gmp-libraries=${gmp}/lib"
+    "--with-gmp-includes=${gmp}/include"
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  meta = {
+    inherit homepage;
+    description = "The Glasgow Haskell Compiler";
+  };
+}
diff --git a/pkgs/development/compilers/ghc/6.10.2-binary.nix b/pkgs/development/compilers/ghc/6.10.2-binary.nix
new file mode 100644
index 0000000000000..e00702b8d8407
--- /dev/null
+++ b/pkgs/development/compilers/ghc/6.10.2-binary.nix
@@ -0,0 +1,100 @@
+{stdenv, fetchurl, perl, libedit, ncurses, gmp}:
+
+stdenv.mkDerivation rec {
+  version = "6.10.2";
+
+  name = "ghc-${version}-binary";
+
+  src =
+    if stdenv.system == "i686-linux" then
+      fetchurl {
+        # This binary requires libedit.so.0 (rather than libedit.so.2).
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
+        sha256 = "1fw0zr2qshlpk8s0d16k27zcv5263nqdg2xds5ymw8ff6qz9rz9b";
+      }
+    else if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        # Idem.
+        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"; 
+
+  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
+     '' +
+    # 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 "${libedit}/lib:${ncurses}/lib:${gmp}/lib" {} \;
+      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
+        ensureDir $out/frameworks/GNUeditline.framework/Versions/A
+        ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
+        ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/Versions/A/GNUeditline
+
+        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" ]
+      '';
+
+}
diff --git a/pkgs/development/compilers/ghc/6.10.2.nix b/pkgs/development/compilers/ghc/6.10.2.nix
new file mode 100644
index 0000000000000..8568c56614507
--- /dev/null
+++ b/pkgs/development/compilers/ghc/6.10.2.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses}:
+
+stdenv.mkDerivation rec {
+  version = "6.10.2";
+  
+  name = "ghc-${version}";
+  
+  homepage = "http://haskell.org/ghc";
+
+  src = fetchurl {
+    url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
+    sha256 = "0q3wgp8svfl54kpyp55a1kh63cni5vzz811hqjsps84jdg0lg56m";
+  };
+
+  buildInputs = [ghc libedit perl gmp];
+
+  configureFlags=[
+    "--with-gmp-libraries=${gmp}/lib"
+    "--with-gmp-includes=${gmp}/include"
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  meta = {
+    inherit homepage;
+    description = "The Glasgow Haskell Compiler";
+  };
+}
diff --git a/pkgs/development/compilers/ghc/boot.nix b/pkgs/development/compilers/ghc/6.4.2-binary.nix
index 60664374b8e57..31777244521a0 100644
--- a/pkgs/development/compilers/ghc/boot.nix
+++ b/pkgs/development/compilers/ghc/6.4.2-binary.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, perl, readline, ncurses, gmp}:
 
 stdenv.mkDerivation {
-  name = if stdenv.system == "i686-darwin" then "ghc-6.6.1" else "ghc-6.4.2";
+  name = if stdenv.system == "i686-darwin" then "ghc-6.6.1-binary" else "ghc-6.4.2-binary";
 
   src =
     if stdenv.system == "i686-linux" then
@@ -15,6 +15,9 @@ stdenv.mkDerivation {
         md5 = "8f5fe48798f715cd05214a10987bf6d5";
       }
     else if stdenv.system == "i686-darwin" then
+      /* Yes, this isn't GHC 6.4.2.  But IIRC either there was no
+         6.4.2 binary for Darwin, or it didn't work.  In any case, in
+         Nixpkgs we just need this bootstrapping a "real" GHC. */
       fetchurl {
         url = http://www.haskell.org/ghc/dist/6.6.1/ghc-6.6.1-i386-apple-darwin.tar.bz2;
         sha256 = "1drbsicanr6jlykvs4vs6gbi2q9ac1bcaxz2vzwh3pfv3lfibwia";
@@ -38,7 +41,7 @@ stdenv.mkDerivation {
   # 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 "
+  postInstall = if stdenv.isDarwin then ''
 
     ensureDir $out/frameworks/GMP.framework/Versions/A
     ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
@@ -50,13 +53,13 @@ stdenv.mkDerivation {
     mkdir $out/bin-orig
     for i in $(cd $out/bin && ls *); do
         mv $out/bin/$i $out/bin-orig/$i
-        echo \"#! $SHELL -e\" >> $out/bin/$i
+        echo "#! $SHELL -e" >> $out/bin/$i
         extraFlag=
-        if test $i != ghc-pkg; then extraFlag=\"-framework-path $out/frameworks\"; fi
-        echo \"DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i $extraFlag \\\"\\$@\\\"\" >> $out/bin/$i
+        if test $i != ghc-pkg; then extraFlag="-framework-path $out/frameworks"; fi
+        echo "DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i $extraFlag \"\$@\"" >> $out/bin/$i
         chmod +x $out/bin/$i
     done
 
-  " else "";
+  '' else "";
 
 }
diff --git a/pkgs/development/compilers/ghc/default.nix b/pkgs/development/compilers/ghc/6.4.2.nix
index c175f242ff109..9fccf5307c504 100644
--- a/pkgs/development/compilers/ghc/default.nix
+++ b/pkgs/development/compilers/ghc/6.4.2.nix
@@ -1,15 +1,25 @@
-{stdenv, gcc, fetchurl, perl, ghc, m4, readline, ncurses, gmp}:
+{stdenv, fetchurl, perl, ghc, m4, readline, ncurses, gmp}:
 
 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];
-  builder = ./builder.sh;
-  inherit gcc;
+
+  configureFlags = "--with-gcc=${stdenv.gcc}/bin/gcc";
+
+  preConfigure =
+    ''
+      # Don't you hate build processes that write in $HOME? :-(
+      export HOME=$(pwd)/fake-home
+      mkdir -p $HOME
+    '';
 
   meta = {
     description = "The Glasgow Haskell Compiler";
diff --git a/pkgs/development/compilers/ghc-6.6.1/default.nix b/pkgs/development/compilers/ghc/6.6.1.nix
index 841306578eb69..b8be216c8dc62 100644
--- a/pkgs/development/compilers/ghc-6.6.1/default.nix
+++ b/pkgs/development/compilers/ghc/6.6.1.nix
@@ -14,8 +14,6 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ghc readline perl58 m4 gmp];
 
-  setupHook = ./setup-hook.sh;
-
   meta = {
     description = "The Glasgow Haskell Compiler";
   };
diff --git a/pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix b/pkgs/development/compilers/ghc/6.8.2.nix
index 9b78a979a9678..4015d364b2751 100644
--- a/pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix
+++ b/pkgs/development/compilers/ghc/6.8.2.nix
@@ -16,11 +16,6 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ghc readline perl m4 gmp];
 
-  # The setup hook is executed by other packages building with ghc.
-  # It then looks for package configurations that are available and
-  # build a package database on the fly.
-  setupHook = ./setup-hook.sh;
-
   meta = {
     description = "The Glasgow Haskell Compiler";
   };
@@ -29,14 +24,11 @@ stdenv.mkDerivation (rec {
     "--with-gmp-libraries=${gmp}/lib"
     "--with-gmp-includes=${gmp}/include"
     "--with-readline-libraries=${readline}/lib"
-    "--with-gcc=${gcc}/bin/gcc"
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
   ];
 
   preConfigure = "
     # still requires a hack for ncurses
     sed -i \"s|^\\\(ld-options.*$\\\)|\\\1 -L${ncurses}/lib|\" libraries/readline/readline.buildinfo.in
   ";
-
-  inherit (stdenv) gcc;
-  inherit readline gmp ncurses;
 })
diff --git a/pkgs/development/compilers/ghc-6.8/ghc-6.8.3.nix b/pkgs/development/compilers/ghc/6.8.3.nix
index 98ddca5b36dcc..e3c12cce8c780 100644
--- a/pkgs/development/compilers/ghc-6.8/ghc-6.8.3.nix
+++ b/pkgs/development/compilers/ghc/6.8.3.nix
@@ -1,25 +1,21 @@
 {stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses, haddock}:
 
-stdenv.mkDerivation (rec {
-  name = "ghc-6.8.3";
+stdenv.mkDerivation rec {
+  version = "6.8.3";
+  name = "ghc-${version}";
   homepage = "http://www.haskell.org/ghc";
 
   src = map fetchurl [
-    { url    = "${homepage}/dist/6.8.3/${name}-src.tar.bz2";
+    { url    = "${homepage}/dist/${version}/${name}-src.tar.bz2";
       sha256 = "1fc1ff82a555532f1c9d2dc628fd9de5e6ebab2ce6ee9490a34174ceb6f76e6b";
     }
-    { url    = "${homepage}/dist/6.8.3/${name}-src-extralibs.tar.bz2";
+    { url    = "${homepage}/dist/${version}/${name}-src-extralibs.tar.bz2";
       sha256 = "ee2f5ba6a46157fc53eae515cb6fa1ed3c5023e7eac15981d92af0af00ee2ba2";
     }
   ];
 
   buildInputs = [ghc readline perl m4 gmp haddock];
 
-  # The setup hook is executed by other packages building with ghc.
-  # It then looks for package configurations that are available and
-  # build a package database on the fly.
-  setupHook = ./setup-hook.sh;
-
   meta = {
     description = "The Glasgow Haskell Compiler";
   };
@@ -28,7 +24,7 @@ stdenv.mkDerivation (rec {
     "--with-gmp-libraries=${gmp}/lib"
     "--with-gmp-includes=${gmp}/include"
     "--with-readline-libraries=${readline}/lib"
-    "--with-gcc=${gcc}/bin/gcc"
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
   ];
 
   preConfigure = ''
@@ -37,9 +33,4 @@ stdenv.mkDerivation (rec {
     # build haddock docs
     echo "HADDOCK_DOCS = YES" >> mk/build.mk
   '';
-
-  installTargets = ["install" "install-docs"];
-
-  inherit (stdenv) gcc;
-  inherit readline gmp ncurses;
-})
+}
diff --git a/pkgs/development/compilers/ghc/builder.sh b/pkgs/development/compilers/ghc/builder.sh
deleted file mode 100644
index 5d05417a7e850..0000000000000
--- a/pkgs/development/compilers/ghc/builder.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-source $stdenv/setup
-
-configureFlags="--with-gcc=$gcc/bin/gcc"
-
-# Don't you hate build processes that write in $HOME? :-(
-export HOME=$(pwd)/fake-home
-mkdir -p $HOME
-
-genericBuild
diff --git a/pkgs/development/compilers/ghc/setup-hook.sh b/pkgs/development/compilers/ghc/setup-hook.sh
new file mode 100644
index 0000000000000..11ad50a0c7963
--- /dev/null
+++ b/pkgs/development/compilers/ghc/setup-hook.sh
@@ -0,0 +1,17 @@
+# Create isolated package config
+packages_db=$TMPDIR/.package.conf
+cp @ghc@/lib/ghc-*/package.conf $packages_db
+chmod u+w $packages_db
+
+export GHC_PACKAGE_PATH=$packages_db
+
+# Env hook to add packages to the package config
+addLibToPackageConf () {
+    local fn
+    shopt -s nullglob
+    for fn in $1/lib/ghc-pkgs/ghc-@ghcVersion@/*.conf; do
+        @ghc@/bin/ghc-pkg register --force $fn
+    done
+}
+
+envHooks=(${envHooks[@]} addLibToPackageConf)
diff --git a/pkgs/development/compilers/ghc/wrapper.nix b/pkgs/development/compilers/ghc/wrapper.nix
new file mode 100644
index 0000000000000..932cf63430181
--- /dev/null
+++ b/pkgs/development/compilers/ghc/wrapper.nix
@@ -0,0 +1,15 @@
+{stdenv, ghc}:
+
+stdenv.mkDerivation {
+  name = "ghc-wrapper-${ghc.version}";
+
+  propagatedBuildInputs = [ghc];
+
+  unpackPhase = "true";
+  installPhase = "true";
+  
+  setupHook = ./setup-hook.sh;
+
+  inherit ghc;
+  ghcVersion = ghc.version;
+}
diff --git a/pkgs/development/compilers/iasl/default.nix b/pkgs/development/compilers/iasl/default.nix
index 383b8183cc714..ec6384d8cbac9 100644
--- a/pkgs/development/compilers/iasl/default.nix
+++ b/pkgs/development/compilers/iasl/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, bison, flex}:
 
 stdenv.mkDerivation {
-  name = "iasl-20090123.tar.gz";
+  name = "iasl-20090123";
   src = fetchurl {
     url = http://www.acpica.org/download/acpica-unix-20090123.tar.gz;
     md5 = "4ca6484acbf16cf67fd4ba91d32fd0a0";
diff --git a/pkgs/development/compilers/strategoxt/0.17.nix b/pkgs/development/compilers/strategoxt/0.17.nix
index cfd8b8e60972b..b10b1aca22510 100644
--- a/pkgs/development/compilers/strategoxt/0.17.nix
+++ b/pkgs/development/compilers/strategoxt/0.17.nix
@@ -28,11 +28,11 @@ rec {
 
   
   strategoxt = stdenv.mkDerivation rec {
-    name = "strategoxt-0.17pre18269";
+    name = "strategoxt-0.17pre18583";
 
     src = fetchurl {
-      url = "http://releases.strategoxt.org/strategoxt/${name}-a0f0wy0j/${name}.tar.gz";
-      sha256 = "7c51c2452bd45f34cd480b6b3cbaac50e0fc53fbb1a884d97cf4e2c2b5330577";
+      url = "http://releases.strategoxt.org/strategoxt/strategoxt-0.17pre18583-i573smdl/strategoxt-0.17pre18583.tar.gz";
+      sha256 = "4769d82a62d1c53fc3f4631ddef489e638ff2361a2eceb1226f2b56ab45b7784";
     };
 
     buildInputs = [pkgconfig aterm sdf getopt];
diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix
index 4d737fe70651b..2ba7c5fb697fb 100644
--- a/pkgs/development/interpreters/io/default.nix
+++ b/pkgs/development/interpreters/io/default.nix
@@ -9,7 +9,7 @@ let
   buildInputs = with args; [
     zlib sqlite gmp libffi cairo ncurses freetype mesa
     libpng libtiff libjpeg readline libsndfile libxml2
-    freeglut e2fsprogs libsamplerate pcre libevent editline
+    freeglut e2fsprogs libsamplerate pcre libevent libedit
   ];
 in
 rec {
diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix
index 6408457e2a023..2b0d79f8019fc 100644
--- a/pkgs/development/interpreters/lua-5/default.nix
+++ b/pkgs/development/interpreters/lua-5/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, ncurses, readline}: 
 
 stdenv.mkDerivation {
-  name = "lua-5.1.2";
+  name = "lua-5.1.4";
   src = fetchurl {
-    url = http://www.lua.org/ftp/lua-5.1.2.tar.gz;
-    sha256 = "17ixifwgjva5592s2rn1ki56wa7hgw0z210r4bcx5lv8zv39iw2w";
+    url = http://www.lua.org/ftp/lua-5.1.4.tar.gz;
+    sha256 = "0fmgk100ficm1jbm4ga9xy484v4cm89wsdfckdybb9gjx8jy4f5h";
   };
   buildFlags = "linux"; # TODO: support for non-linux systems
   installFlags = "install INSTALL_TOP=\${out}";
diff --git a/pkgs/development/libraries/boost/1.38.0.nix b/pkgs/development/libraries/boost/1.38.0.nix
index 0a01ca80e787b..739291a0574e6 100644
--- a/pkgs/development/libraries/boost/1.38.0.nix
+++ b/pkgs/development/libraries/boost/1.38.0.nix
@@ -36,6 +36,8 @@ stdenv.mkDerivation {
     url = "mirror://sourceforge/boost/boost_1_38_0.tar.bz2";
     sha256 = "0rk044s4m7l4sma6anml34vxcd9w0fzcy1cy7csbzynjyida9qry";
   };
+
+  patches = [ ./classr.patch ];
   
   buildInputs = [icu expat zlib bzip2 python];
 
diff --git a/pkgs/development/libraries/boost/classr.patch b/pkgs/development/libraries/boost/classr.patch
new file mode 100644
index 0000000000000..fbe383086968b
--- /dev/null
+++ b/pkgs/development/libraries/boost/classr.patch
@@ -0,0 +1,15 @@
+Taken from http://wiki.freebsd.org/BoostPortingProject
+--- boost1.38/boost/function/function_template.hpp.orig   2008-10-16 17:21:50.000000000 +0400
++++ boost1.38_2/boost/function/function_template.hpp        2009-03-25 04:12:15.000000000 +0300
+@@ -950,10 +950,10 @@
+           f.vtable->manager(f.functor, this->functor,
+                             boost::detail::function::move_functor_tag);
+ 		  f.vtable = 0;
+-#if !defined(BOOST_NO_EXCEPTIONS)      
+         } else {
+           clear();
+         }
++#if !defined(BOOST_NO_EXCEPTIONS)      
+       } catch (...) {
+         vtable = 0;
+         throw;
diff --git a/pkgs/development/libraries/editline/default.nix b/pkgs/development/libraries/editline/default.nix
deleted file mode 100644
index ef1ade2228972..0000000000000
--- a/pkgs/development/libraries/editline/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ stdenv, fetchurl, ncurses }:
-
-stdenv.mkDerivation {
-  name = "editline-2.11";
-  src = fetchurl {
-    url = http://www.thrysoee.dk/editline/libedit-20080712-2.11.tar.gz;
-    sha256 = "6ff51a15d1ada16c44be0f32a539b492cd3b0286c3dfa413915525f55851d1e6";
-  };
-  propagatedBuildInputs = [ ncurses ];
-}
diff --git a/pkgs/development/libraries/haskell/Agda/default.nix b/pkgs/development/libraries/haskell/Agda/default.nix
new file mode 100644
index 0000000000000..e1f5b27c0ec64
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Agda/default.nix
@@ -0,0 +1,15 @@
+{cabal, QuickCheck, binary, haskeline, haskellSrc, mtl, utf8String, xhtml, zlib,
+ happy, alex}:
+
+cabal.mkDerivation (self : {
+  pname = "Agda";
+  version = "2.2.2";
+  sha256 = "265dbb5bc6d67bfeefa4a2a4ac9e5018d6d8b5c1a75816e05da2661c43a39bba";
+  extraBuildInputs = [happy alex];
+  propagatedBuildInputs =
+    [QuickCheck binary haskeline haskellSrc mtl utf8String xhtml zlib];
+  meta = {
+    description = "A dependently typed functional language and proof assistant";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/GLUT/default.nix b/pkgs/development/libraries/haskell/GLUT/default.nix
new file mode 100644
index 0000000000000..9ccae0604f00e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/GLUT/default.nix
@@ -0,0 +1,12 @@
+{cabal, OpenGL, glut, libSM, libICE, libXmu, libXi, mesa}:
+
+cabal.mkDerivation (self : {
+  pname = "GLUT";
+  version = "2.1.1.2"; # Haskell Platform 2009.0.0
+  sha256 = "d5ecf4b6bacc5e68ade00710df04fa158c6ed322c74362954716a0baba6bd3fb";
+  propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
+  meta = {
+    description = "A binding for the OpenGL Utility Toolkit";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/HTTP/default.nix b/pkgs/development/libraries/haskell/HTTP/default.nix
index 1d3f0f1a9bcc6..e630a3c72dea5 100644
--- a/pkgs/development/libraries/haskell/HTTP/default.nix
+++ b/pkgs/development/libraries/haskell/HTTP/default.nix
@@ -1,9 +1,10 @@
-{cabal}:
+{cabal, mtl, network, parsec}:
 
 cabal.mkDerivation (self : {
   pname = "HTTP";
-  version = "3001.0.0";
-  sha256 = "0d1ixrylb7vl5q963r31jc8gsqm24bkjas4dyi6ks8kbhzrgrw17";
+  version = "4000.0.5"; # Haskell Platform 2009.0.0
+  sha256 = "54cbb211e73f183aa91780afd6cc7c830edef1b2eb5ce8dc05e5fa539bb685d8";
+  propagatedBuildInputs = [mtl network parsec];
   meta = {
     description = "a Haskell library for client-side HTTP";
   };
diff --git a/pkgs/development/libraries/haskell/HUnit/default.nix b/pkgs/development/libraries/haskell/HUnit/default.nix
new file mode 100644
index 0000000000000..a6f66eefad67d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HUnit/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "HUnit";
+  version = "1.2.0.3"; # Haskell Platform 2009.0.0
+  sha256 = "954f584f7c096c3ddef677e70b3811195bb4fd18dfdb4727a260ca7d7465de12";
+  meta = {
+    description = "A unit testing framework for Haskell";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/OpenAL/default.nix b/pkgs/development/libraries/haskell/OpenAL/default.nix
new file mode 100644
index 0000000000000..45d2394960dc6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenAL/default.nix
@@ -0,0 +1,12 @@
+{cabal, OpenGL, openal}:
+
+cabal.mkDerivation (self : {
+  pname = "OpenAL";
+  version = "1.3.1.1"; # Haskell Platform 2009.0.0
+  sha256 = "4875e015770feb93d5127d4b6f2338eb3957a0c36f64ccb8b3846010619f89b0";
+  propagatedBuildInputs = [OpenGL openal];
+  meta = {
+    description = "A binding to the OpenAL cross-platform 3D audio API";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/OpenGL/default.nix b/pkgs/development/libraries/haskell/OpenGL/default.nix
new file mode 100644
index 0000000000000..dc16fb9cf176f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenGL/default.nix
@@ -0,0 +1,12 @@
+{cabal, mesa, libX11}:
+
+cabal.mkDerivation (self : {
+  pname = "OpenGL";
+  version = "2.2.1.1"; # Haskell Platform 2009.0.0
+  sha256 = "926ca25cf9502cdaaeb8ade484015468cb60594e1bfbf0e04bd01235d8d9a792";
+  propagatedBuildInputs = [mesa libX11];
+  meta = {
+    description = "A binding for the OpenGL graphics system";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.1.0.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.1.0.1.nix
new file mode 100644
index 0000000000000..e84a77809836f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.1.0.1.nix
@@ -0,0 +1,13 @@
+{cabal, mtl}:
+
+cabal.mkDerivation (self : {
+  pname = "QuickCheck";
+  version = "2.1.0.1";
+  sha256 = "f99edf1a45315e90c9ec672d5d959d5878dcc1de65678c6aed85829a896b75f1";
+  propagatedBuildInputs = [mtl];
+  configureFlags = ''--constraint=base<4'';
+  meta = {
+    description = "Automatic testing of Haskell programs";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/QuickCheck/default.nix b/pkgs/development/libraries/haskell/QuickCheck/default.nix
new file mode 100644
index 0000000000000..5405e50aa6bc7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "QuickCheck";
+  version = "1.2.0.0"; # Haskell Platform 2009.0.0
+  sha256 = "21672d817913ac7ab6d3fd7f102dd5d0f115a0826c95b9604c8c0b0171e8d4ed";
+  meta = {
+    description = "Automatic testing of Haskell programs";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/X11/default.nix b/pkgs/development/libraries/haskell/X11/default.nix
index 3b6c87bab589e..c9b57dccf4d95 100644
--- a/pkgs/development/libraries/haskell/X11/default.nix
+++ b/pkgs/development/libraries/haskell/X11/default.nix
@@ -4,8 +4,8 @@ assert xineramaSupport -> (libXinerama != null && libXext != null);
 
 cabal.mkDerivation (self : {
   pname = "X11";
-  version = "1.4.2";
-  sha256 = "7a37ba1adee9c30a27013ea7058e907c2348ef08eaa79c9895e62e4f0d73d2aa";
+  version = "1.4.5";
+  sha256 = "6665056b9fe5801ca27bf960a90215c940ae70b549753efed0303d5ed8d89ddb";
   propagatedBuildInputs = [libX11] ++ (if xineramaSupport then [libXinerama libXext] else []);
   meta = {
     description = "A Haskell binding to the X11 graphics library";
diff --git a/pkgs/development/libraries/haskell/binary/default.nix b/pkgs/development/libraries/haskell/binary/default.nix
index 081779fd31245..53aee9ca5b9ec 100644
--- a/pkgs/development/libraries/haskell/binary/default.nix
+++ b/pkgs/development/libraries/haskell/binary/default.nix
@@ -2,10 +2,9 @@
 
 cabal.mkDerivation (self : {
   pname = "binary";
-  version = "0.4.1";
-  sha256 = "bb74824306843da25f6d97c271e2a06ee3a7e05fc529156fb81d7c576688e549";
+  version = "0.5.0.1";
+  sha256 = "1j5injgrwkjwl7lv6sqx4m033s3rrkspq690cb0ckfh267vsyig1";
   meta = {
     description = "Efficient, pure binary serialisation using lazy ByteStrings";
   };
 })  
-
diff --git a/pkgs/development/libraries/haskell/cabal/cabal.nix b/pkgs/development/libraries/haskell/cabal/cabal.nix
index bafcedced635a..cac8990d271f8 100644
--- a/pkgs/development/libraries/haskell/cabal/cabal.nix
+++ b/pkgs/development/libraries/haskell/cabal/cabal.nix
@@ -17,7 +17,7 @@ attrs :
 	    # all packages with haskell- to avoid name clashes for libraries;
 	    # if that is not desired (for applications), name can be set to
 	    # fname.
-            name = "haskell-${self.fname}"; 
+            name = "haskell-${self.pname}-ghc${attrs.ghc.ghc.version}-${self.version}"; 
 
             # the default download location for Cabal packages is Hackage,
             # you still have to specify the checksum
@@ -39,22 +39,14 @@ attrs :
             # library directories that have to be added to the Cabal files
             extraLibDirs = map (x : x + "/lib") self.propagatedBuildInputs;
 
-            # file(s) that have to be patched with information about extra libraries;
-            # can be redefined to the empty list by the client if this is not desired
-            patchLibFiles = [ "${self.pname}.cabal" ];
-
-            # patches files, compiles Setup, and configures
+            # compiles Setup and configures
             configurePhase = ''
               eval "$preConfigure"
 
-              for i in ${toString self.patchLibFiles}; do
-                echo "patching $i"
-                test -f $i && sed -i '/[eE]xtra-[lL]ibraries/ { s|\( *\)[eE]xtra-[lL]ibraries.*|&\n\1extra-lib-dirs: ${toString self.extraLibDirs}| }' $i
-              done
               for i in Setup.hs Setup.lhs; do
                 test -f $i && ghc --make $i
               done
-              ./Setup configure --verbose --prefix="$out"
+              ./Setup configure --verbose --prefix="$out" ${toString (map (x : "--extra-lib-dir=" + x) self.extraLibDirs)} $configureFlags
 
               eval "$postConfigure"
             '';
@@ -70,24 +62,19 @@ attrs :
 
 	    # installs via Cabal; creates a registration file for nix-support
 	    # so that the package can be used in other Haskell-builds; also
-	    # creates a register-${name}.sh in userspace that can be used to
-	    # register the library in a user environment (but this scheme
-	    # should sooner or later be deprecated in favour of using a
-	    # ghc-wrapper).
+	    # adds all propagated build inputs to the user environment packages
             installPhase = ''
               eval "$preInstall"
 
               ./Setup copy
-              ./Setup register --gen-script
-              mkdir -p $out/nix-support
-              if test -f register.sh; then
-                sed -i 's/|.*\(ghc-pkg update\)/| \1/' register.sh
-                cp register.sh $out/nix-support/register-ghclib.sh
-                sed -i 's/\(ghc-pkg update\)/\1 --user/' register.sh
-                mkdir -p $out/bin
-                cp register.sh $out/bin/register-${self.name}.sh
-              fi
 
+              local confDir=$out/lib/ghc-pkgs/ghc-${attrs.ghc.ghc.version}
+              ensureDir $confDir
+              ./Setup register --gen-pkg-config=$confDir/${self.fname}.conf
+
+              ensureDir $out/nix-support
+              ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
+              
               eval "$postInstall"
             '';
           };
diff --git a/pkgs/development/libraries/haskell/cgi/default.nix b/pkgs/development/libraries/haskell/cgi/default.nix
new file mode 100644
index 0000000000000..e6e5bd91df6e9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cgi/default.nix
@@ -0,0 +1,12 @@
+{cabal, mtl, network, parsec, xhtml}:
+
+cabal.mkDerivation (self : {
+  pname = "cgi";
+  version = "3001.1.7.1"; # Haskell Platform 2009.0.0
+  sha256 = "7d1d710871fffbbec2a33d7288b2959ddbcfd794d47f0122127576c02550b339";
+  propagatedBuildInputs = [mtl network parsec xhtml];
+  meta = {
+    description = "A library for writing CGI programs";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/editline/default.nix b/pkgs/development/libraries/haskell/editline/default.nix
index 58c700921aac4..fb06cd52a8055 100644
--- a/pkgs/development/libraries/haskell/editline/default.nix
+++ b/pkgs/development/libraries/haskell/editline/default.nix
@@ -1,21 +1,12 @@
-{ cabal, editline } :
+{ cabal, libedit } :
 
 cabal.mkDerivation (self : {
   pname = "editline";
-  version = "0.2";
-  sha256 = "6ee0b553cc8d7542c096730ceebabdcb9b2951d7b00a5a0ddbf47b5436a77ce4";
-  propagatedBuildInputs = [ editline ];
-  patchLibFiles = [ "editline.buildinfo.in" ];
-  preConfigure = ''
-    sed -i -e '/el_get/d' include/HsEditline.h
-  '';
-  # I don't quite understand why ncurses as an extra-library is harmful, but
-  # it works only if we remove it ...
-  postConfigure = ''
-    sed -i -e 's/ncurses//' editline.buildinfo
-  '';
+  version = "0.2.1.0";
+  sha256 = "83618e5f86074fdc11d7f5033aa2886284462941be38fa02966acc92712c46e1";
+  propagatedBuildInputs = [ libedit ];
   meta = {
-    description = "Binding to the BSD editline library";
+    description = "Binding to the BSD editline library (libedit)";
   };
 })  
 
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/default.nix b/pkgs/development/libraries/haskell/extensible-exceptions/default.nix
new file mode 100644
index 0000000000000..93857414f602c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/extensible-exceptions/default.nix
@@ -0,0 +1,11 @@
+{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/fgl/default.nix b/pkgs/development/libraries/haskell/fgl/default.nix
new file mode 100644
index 0000000000000..062e0a5ac590b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/fgl/default.nix
@@ -0,0 +1,12 @@
+{cabal, mtl}:
+
+cabal.mkDerivation (self : {
+  pname = "fgl";
+  version = "5.4.2.2";
+  sha256 = "8232c337f0792854bf2a12a5fd1bc46726fff05d2f599053286ff873364cd7d2";
+  propagatedBuildInputs = [mtl];
+  meta = {
+    description = "Martin Erwig's Functional Graph Library";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/ghc-paths/default.nix b/pkgs/development/libraries/haskell/ghc-paths/default.nix
new file mode 100644
index 0000000000000..dadd195acfeda
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ghc-paths/default.nix
@@ -0,0 +1,11 @@
+{ 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/gtk2hs/default.nix b/pkgs/development/libraries/haskell/gtk2hs/default.nix
index e49f4d7113ec4..394151c6cca4e 100644
--- a/pkgs/development/libraries/haskell/gtk2hs/default.nix
+++ b/pkgs/development/libraries/haskell/gtk2hs/default.nix
@@ -1,20 +1,31 @@
-{stdenv, fetchurl, pkgconfig, ghc, gtk, cairo, GConf, libglade
-, glib, libgtkhtml, gtkhtml}:
+{ stdenv, fetchurl, pkgconfig, gnome, cairo, ghc, mtl }:
 
-stdenv.mkDerivation (rec {
+let gtksourceview = gnome.gtksourceview_24; in
+
+stdenv.mkDerivation rec {
   pname = "gtk2hs";
-  version = "0.9.12.1";
+  version = "0.10.0";
   fname = "${pname}-${version}";
-  name = "haskell-${fname}";
+  name = "haskell-${pname}-ghc${ghc.ghc.version}-${version}";
+  
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${fname}.tar.gz";
-    sha256 = "110z6v9gzhg6nzlz5gs8aafmipbva6rc50b8z1jgq0k2g25hfy22";
+    url = http://nixos.org/tarballs/gtk2hs-0.10.0-20090419.tar.gz;
+    sha256 = "18a7cfph83yvv91ks37nrgqrn21fvww8bhb8nd8xy1mgb8lnfds1";
   };
+  
+  propagatedBuildInputs = [mtl];
 
-  buildInputs = [pkgconfig ghc gtk glib cairo GConf libglade libgtkhtml gtkhtml];
-
-  configureFlags = [
-    "--enable-cairo"
+  buildInputs = [
+    pkgconfig cairo ghc gnome.glib gnome.gtk gnome.libglade
+    gnome.GConf gtksourceview gnome.librsvg
   ];
 
-})
+  postInstall =
+    ''
+      local confDir=$out/lib/ghc-pkgs/ghc-${ghc.ghc.version}
+      ensureDir $confDir
+      cp $out/lib/gtk2hs/*.conf $confDir/
+    ''; # */
+
+  passthru = { inherit gtksourceview; };
+}
diff --git a/pkgs/development/libraries/haskell/haskeline/default.nix b/pkgs/development/libraries/haskell/haskeline/default.nix
new file mode 100644
index 0000000000000..e46427bcc3c4a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskeline/default.nix
@@ -0,0 +1,12 @@
+{cabal, extensibleExceptions, mtl, utf8String}:
+
+cabal.mkDerivation (self : {
+  pname = "haskeline";
+  version = "0.6.1.3";
+  sha256 = "af27d17bf6df7647e843bca91548b542748a5305f072ba7cfef97105a52578d4";
+  propagatedBuildInputs = [extensibleExceptions mtl utf8String];
+  meta = {
+    description = "A command-line interface for user input, written in Haskell";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/haskell-platform/default.nix b/pkgs/development/libraries/haskell/haskell-platform/default.nix
new file mode 100644
index 0000000000000..4bf660c684f06
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-platform/default.nix
@@ -0,0 +1,29 @@
+{cabal, fetchurl, GLUT, HTTP, HUnit, OpenAL, OpenGL, QuickCheck, cgi, fgl,
+ haskellSrc, html, parallel, regexBase, regexCompat, regexPosix,
+ stm, time, xhtml, zlib, cabalInstall, alex, happy, haddock, ghc}:
+
+cabal.mkDerivation (self : {
+  pname = "haskell-platform";
+  version = "2009.0.0";
+  src = fetchurl {
+    url = http://code.haskell.org/haskell-platform/haskell-platform.cabal;
+    sha256 = "cefe19076bed6450d3d8611ff1b29fd0966106787003abedec90544968f30d9c";
+  };
+  unpackPhase = ''
+    cp $src haskell-platform.cabal
+  '';
+  preConfigure = ''
+    sed -i 's/^.*cabal-install ==.*$//' haskell-platform.cabal
+    echo 'import Distribution.Simple; main = defaultMain' > Setup.hs
+    touch LICENSE
+  '';
+  propagatedBuildInputs = [
+    GLUT HTTP HUnit OpenAL OpenGL QuickCheck cgi fgl
+    haskellSrc html parallel regexBase regexCompat regexPosix
+    stm time xhtml zlib cabalInstall alex happy ghc
+  ];
+  meta = {
+    description = "Haskell Platform meta package";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/default.nix b/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
new file mode 100644
index 0000000000000..ad372e6ef7c78
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
@@ -0,0 +1,13 @@
+{cabal, cpphs, happy}:
+
+cabal.mkDerivation (self : {
+  pname = "haskell-src-exts";
+  version = "0.4.8";
+  sha256 = "f059f698681b262b2a4725735b99ecbafec721ccadab65fcf075c2fc5d346dec";
+  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
new file mode 100644
index 0000000000000..b6cb87155cc67
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
@@ -0,0 +1,12 @@
+{cabal, haskellSrcExts}:
+
+cabal.mkDerivation (self : {
+  pname = "haskell-src-meta";
+  version = "0.0.3.1";
+  sha256 = "74d450fd9d50edfd3cdad5c2860da2af3454b280bd37b401e16e2f492bfb5e15";
+  propagatedBuildInputs = [haskellSrcExts];
+  meta = {
+    description = "Parse source to template-haskell abstract syntax";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/haskell-src/default.nix b/pkgs/development/libraries/haskell/haskell-src/default.nix
new file mode 100644
index 0000000000000..365138b28a766
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src/default.nix
@@ -0,0 +1,12 @@
+{cabal, happy}:
+
+cabal.mkDerivation (self : {
+  pname = "haskell-src";
+  version = "1.0.1.3"; # Haskell Platform 2009.0.0
+  sha256 = "a7872900acd2293775a6bdc6dc8f70438ccd80e62d2d1e2394ddff15b1883e89";
+  extraBuildInputs = [happy];
+  meta = {
+    description = "Manipulating Haskell source code";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/hscolour/default.nix b/pkgs/development/libraries/haskell/hscolour/default.nix
new file mode 100644
index 0000000000000..10d702cde78f0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hscolour/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "hscolour";
+  version = "1.10.1";
+  sha256 = "293f24b8373be1d70d9e5a4b8d3c527166ad645b4ac983c1a6fc5999c44a2d36";
+  meta = {
+    description = "Colourise Haskell code";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/html/default.nix b/pkgs/development/libraries/haskell/html/default.nix
new file mode 100644
index 0000000000000..024985c82699c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/html/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "html";
+  version = "1.0.1.2"; # Haskell Platform 2009.0.0
+  sha256 = "0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061";
+  meta = {
+    description = "HTML combinator library";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/mtl/default.nix b/pkgs/development/libraries/haskell/mtl/default.nix
new file mode 100644
index 0000000000000..5881a2cd3df7d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mtl/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "mtl";
+  version = "1.1.0.2"; # Haskell Platform 2009.0.0
+  sha256 = "a225aaf2b1e337f40c31e5c42f95eec9a4608322b0e4c135d2b31b8421a58d36";
+  meta = {
+    description = "Monad transformer library";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/multirec/default.nix b/pkgs/development/libraries/haskell/multirec/default.nix
new file mode 100644
index 0000000000000..6fbfe6d0fbd1e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/multirec/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "multirec";
+  version = "0.2";
+  sha256 = "66f748245020437ad30dbc25e2decae7d49c6d968c014b316c0961539892083c";
+  meta = {
+    description = "Generic programming with systems of recursive datatypes";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/network/default.nix b/pkgs/development/libraries/haskell/network/default.nix
new file mode 100644
index 0000000000000..16f4ce12d7a26
--- /dev/null
+++ b/pkgs/development/libraries/haskell/network/default.nix
@@ -0,0 +1,12 @@
+{cabal, parsec}:
+
+cabal.mkDerivation (self : {
+  pname = "network";
+  version = "2.2.1"; # Haskell Platform 2009.0.0
+  sha256 = "111e4963a0a979570993e79511a778b267ef58df35320d1ddda61a869259b63c";
+  propagatedBuildInputs = [parsec];
+  meta = {
+    description = "Networking-related facilities";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/parallel/default.nix b/pkgs/development/libraries/haskell/parallel/default.nix
new file mode 100644
index 0000000000000..065344d75fa39
--- /dev/null
+++ b/pkgs/development/libraries/haskell/parallel/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "parallel";
+  version = "1.1.0.1"; # Haskell Platform 2009.0.0
+  sha256 = "0885086660268f3626effacb29a02b5c81f3e5a8dfa99dabe0981ddbc407999f";
+  meta = {
+    description = "parallel programming library";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/parsec/default.nix b/pkgs/development/libraries/haskell/parsec/default.nix
new file mode 100644
index 0000000000000..e0564d5720d91
--- /dev/null
+++ b/pkgs/development/libraries/haskell/parsec/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "parsec";
+  version = "2.1.0.1"; # Haskell Platform 2009.0.0
+  sha256 = "2d85e5b5c8b2b1f341037ce67e1db7fa47b31c083136796cfef9e5b945c656df";
+  meta = {
+    description = "Monadic parser combinators";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/readline/default.nix b/pkgs/development/libraries/haskell/readline/default.nix
new file mode 100644
index 0000000000000..fe60a4c51f0d7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/readline/default.nix
@@ -0,0 +1,12 @@
+{ cabal, readline } :
+
+cabal.mkDerivation (self : {
+  pname = "readline";
+  version = "1.0.1.0";
+  sha256 = "07f2f039f32bf18838a4875d0f3caa3ed9436dd52b962b2061f0bb8a3316fa1d";
+  propagatedBuildInputs = [ readline ];
+  meta = {
+    description = "An interface to the GNU readline library";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/regex-base/default.nix b/pkgs/development/libraries/haskell/regex-base/default.nix
new file mode 100644
index 0000000000000..afb08ebee0d88
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-base/default.nix
@@ -0,0 +1,12 @@
+{cabal, mtl}:
+
+cabal.mkDerivation (self : {
+  pname = "regex-base";
+  version = "0.72.0.2"; # Haskell Platform 2009.0.0
+  sha256 = "38a4901b942fea646a422d52c52ef14eec4d6561c258b3c54cd96a8a354141ee";
+  propagatedBuildInputs = [mtl];
+  meta = {
+    description = "Replaces/Ehances Text.Regex";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/regex-compat/default.nix b/pkgs/development/libraries/haskell/regex-compat/default.nix
new file mode 100644
index 0000000000000..85a725264f826
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-compat/default.nix
@@ -0,0 +1,12 @@
+{cabal, regexBase, regexPosix}:
+
+cabal.mkDerivation (self : {
+  pname = "regex-compat";
+  version = "0.71.0.1"; # Haskell Platform 2009.0.0
+  sha256 = "904552f7d690686b2602f37494827d09b09fc0a8a2565522b61847bec8d1de8d";
+  propagatedBuildInputs = [regexBase regexPosix];
+  meta = {
+    description = "Replaces/Enhances Text.Regex";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/regex-posix/default.nix b/pkgs/development/libraries/haskell/regex-posix/default.nix
new file mode 100644
index 0000000000000..fbaf5938b0461
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-posix/default.nix
@@ -0,0 +1,12 @@
+{cabal, regexBase}:
+
+cabal.mkDerivation (self : {
+  pname = "regex-posix";
+  version = "0.72.0.3"; # Haskell Platform 2009.0.0
+  sha256 = "327ab87f3d4f5315a9414331eb382b8b997de8836d577c3f7d232c574606feb1";
+  propagatedBuildInputs = [regexBase];
+  meta = {
+    description = "Replaces/Enhances Text.Regex";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/stm/default.nix b/pkgs/development/libraries/haskell/stm/default.nix
new file mode 100644
index 0000000000000..707fd980cbf26
--- /dev/null
+++ b/pkgs/development/libraries/haskell/stm/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "stm";
+  version = "2.1.1.2"; # Haskell Platform 2009.0.0
+  sha256 = "68d550067ae180373142c51f3fa14bdf0a1516310aee9a37e28f9ac7cf3b8c6d";
+  meta = {
+    description = "Software Transactional Memory";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/strictConcurrency/default.nix b/pkgs/development/libraries/haskell/strictConcurrency/default.nix
new file mode 100644
index 0000000000000..6e43e157c37b0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/strictConcurrency/default.nix
@@ -0,0 +1,12 @@
+{cabal, parallel}:
+
+cabal.mkDerivation (self : {
+  pname = "strict-concurrency";
+  version = "0.2.1";
+  sha256 = "8838600033bde2ce7ca6bd95a3815412da67244b57dfc0e2246a8f2469f5fd9c";
+  propagatedBuildInputs = [parallel];
+  meta = {
+    description = "Strict concurrency abstractions";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/time/default.nix b/pkgs/development/libraries/haskell/time/default.nix
new file mode 100644
index 0000000000000..24b78a54ed8f6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/time/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "time";
+  version = "1.1.2.4"; # Haskell Platform 2009.0.0
+  sha256 = "11dfcb9b5ca76428a7a31019928c3c1898320f774e5d3df8e4407580d074fad3";
+  meta = {
+    description = "A time library";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/uniplate/default.nix b/pkgs/development/libraries/haskell/uniplate/default.nix
new file mode 100644
index 0000000000000..7d7a14a8f8e05
--- /dev/null
+++ b/pkgs/development/libraries/haskell/uniplate/default.nix
@@ -0,0 +1,12 @@
+{cabal, mtl}:
+
+cabal.mkDerivation (self : {
+  pname = "uniplate";
+  version = "1.2.0.3";
+  sha256 = "77cf07c96ae62799d790284c0c84beca9ee17c9c2416d4de6641f3fddd644b58";
+  propagatedBuildInputs = [mtl];
+  meta = {
+    description = "Uniform type generic traversals";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/utf8-string/default.nix b/pkgs/development/libraries/haskell/utf8-string/default.nix
new file mode 100644
index 0000000000000..2f2fd5ac2c9a0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/utf8-string/default.nix
@@ -0,0 +1,10 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "utf8-string";
+  version = "0.3.4";
+  sha256 = "1gd5b5q5jw70mg0z8jjgqigc0wmvnc7fx2k3yfdsz20b9wsjfw7r";
+  meta = {
+    description = "A UTF8 layer for IO and Strings";
+  };
+})  
diff --git a/pkgs/development/libraries/haskell/uulib/default.nix b/pkgs/development/libraries/haskell/uulib/default.nix
index 0e5e517d7c542..b715b0ca7433b 100644
--- a/pkgs/development/libraries/haskell/uulib/default.nix
+++ b/pkgs/development/libraries/haskell/uulib/default.nix
@@ -2,9 +2,9 @@
 
 cabal.mkDerivation (self : {
   pname = "uulib";
-  version = "0.9.5";
-  sha256 = "38415725133af464de582dadc7d7e60b1aeb96344b18b239d176bf2181f98563";
+  version = "0.9.10";
+  sha256 = "1df7336ed76c278323c2e25ab53ec1afc9eba6a7c918c826e9f783e84479e08f";
   meta = {
-    description = "Fast Parser Combinators and Pretty Printing Combinators";
+    description = "Haskell Utecht Tools Library";
   };
 })
diff --git a/pkgs/development/libraries/haskell/vacuum/default.nix b/pkgs/development/libraries/haskell/vacuum/default.nix
new file mode 100644
index 0000000000000..05e1448ddb1f6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vacuum/default.nix
@@ -0,0 +1,12 @@
+{cabal, ghcPaths, haskellSrcMeta}:
+
+cabal.mkDerivation (self : {
+  pname = "vacuum";
+  version = "0.0.91";
+  sha256 = "9240ec35b39d60928a73469893adf1d2aa742b9a781dbc6dcdaa54e96d9bf1af";
+  propagatedBuildInputs = [ghcPaths haskellSrcMeta];
+  meta = {
+    description = "Extract graph representations of ghc heap values";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/vacuumCairo/default.nix b/pkgs/development/libraries/haskell/vacuumCairo/default.nix
new file mode 100644
index 0000000000000..cd30b77d5b7b4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vacuumCairo/default.nix
@@ -0,0 +1,12 @@
+{cabal, vacuum, gtk2hs, parallel, strictConcurrency}:
+
+cabal.mkDerivation (self : {
+  pname = "vacuum-cairo";
+  version = "0.4.1";
+  sha256 = "4d506fec246d40e5c983eea1dbd72735e276f882539aa3682cda9d9a33f8ddb2";
+  propagatedBuildInputs = [vacuum gtk2hs parallel strictConcurrency];
+  meta = {
+    description = "Visualize live Haskell data structures using vacuum, graphviz and cairo";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/xhtml/default.nix b/pkgs/development/libraries/haskell/xhtml/default.nix
new file mode 100644
index 0000000000000..916b57e32639a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xhtml/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "xhtml";
+  version = "3000.2.0.1"; # Haskell Platform 2009.0.0
+  sha256 = "60d7a44ae6d607475e2d60c5bf9909b8a3bd88850d52b08ff1532aa6d58bec96";
+  meta = {
+    description = "An XHTML combinator library";
+  };
+})  
+
diff --git a/pkgs/development/libraries/haskell/zlib/default.nix b/pkgs/development/libraries/haskell/zlib/default.nix
index 268a43b5ea3f7..f034e43160af6 100644
--- a/pkgs/development/libraries/haskell/zlib/default.nix
+++ b/pkgs/development/libraries/haskell/zlib/default.nix
@@ -2,8 +2,10 @@
 
 cabal.mkDerivation (self : {
   pname = "zlib";
-  version = "0.4.0.2";
-  sha256 = "e6e9e51ca5b7f1685eb031f826f7865acc10cc2c8d0dfad975e0e81fd17f17ed";
+  version = "0.5.0.0"; # Haskell Platform 2009.0.0
+  sha256 = "20e067cfbec87ec062ac144875a60e158ea6cf7836aac031ec367fcdd5446891";
+  # TODO: find out exactly why propagated is needed here (to build other
+  # packages depending on zlib):
   propagatedBuildInputs = [zlib];
   meta = {
     description = "Compression and decompression in the gzip and zlib formats";
diff --git a/pkgs/development/libraries/libedit/default.nix b/pkgs/development/libraries/libedit/default.nix
new file mode 100644
index 0000000000000..622d6e21c9770
--- /dev/null
+++ b/pkgs/development/libraries/libedit/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation {
+  name = "libedit-20090405-3.0";
+  
+  src = fetchurl {
+    url = http://www.thrysoee.dk/editline/libedit-20090405-3.0.tar.gz;
+    sha256 = "1il68apydk6nnm30v8gn61vbi23ii571bixp7662j96xsivy7z5l";
+  };
+  
+  propagatedBuildInputs = [ ncurses ];
+
+  meta = {
+    homepage = "http://www.thrysoee.dk/editline/";
+    description = "A port of the NetBSD Editline library (libedit)";
+  };
+}
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
new file mode 100644
index 0000000000000..cbf6847c37025
--- /dev/null
+++ b/pkgs/development/libraries/libewf/default.nix
@@ -0,0 +1,17 @@
+{ fetchurl, stdenv, zlib, openssl, libuuid }:
+
+stdenv.mkDerivation rec {
+  name = "libewf-20080501";
+  src = fetchurl {
+    url = mirror://sourceforge/libewf/libewf-20080501.tar.gz;
+    sha256 = "0s8fp7kmpk0976zii0fbk8vhi8k1br2fjp510rmgr6q1ssqdbi36";
+  };
+
+  buildInputs = [ zlib openssl libuuid ];
+
+  meta = {
+    description = "Library for support of the Expert Witness Compression Format";
+    homepage = http://sourceforge.net/projects/libewf/;
+    license = "free";
+  };
+}
diff --git a/pkgs/development/libraries/libpseudo/default.nix b/pkgs/development/libraries/libpseudo/default.nix
new file mode 100644
index 0000000000000..c200a379187bf
--- /dev/null
+++ b/pkgs/development/libraries/libpseudo/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, pkgconfig, glib, ncurses}:
+stdenv.mkDerivation {
+  name = "libpseudo-1.1.0";
+
+  src = fetchurl {
+    url = mirror://sourceforge/libpseudo/libpseudo-1.1.0.tar.gz;
+    sha256 = "0fp64c6sbdrp4gs4a7rnh5zwis73p7zg04basdn91byshvs1giwv";
+  };
+
+  patchPhase = ''
+    sed -i -e s@/usr/local@$out@ -e /ldconfig/d Makefile
+  '';
+
+  preInstall = ''
+    ensureDir $out/include
+    ensureDir $out/lib
+  '';
+
+  buildInputs = [pkgconfig glib ncurses];
+
+  meta = {
+    homepage = http://libpseudo.sourceforge.net/;
+    description = "Simple, thread-safe messaging between threads";
+    license="GPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/libviper/default.nix b/pkgs/development/libraries/libviper/default.nix
new file mode 100644
index 0000000000000..10dee7d56384e
--- /dev/null
+++ b/pkgs/development/libraries/libviper/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, pkgconfig, glib, ncurses, gpm}:
+stdenv.mkDerivation {
+  name = "libviper-1.2.2";
+
+  src = fetchurl {
+    url = mirror://sourceforge/libviper/libviper-1.4.2.tar.gz;
+    sha256 = "06ff9i914cxi3ifnr5xfpfbvz46kx150jaxvr6rcha6ylglw48c9";
+  };
+
+  patchPhase = ''
+    sed -i -e s@/usr/local@$out@ -e /ldconfig/d -e '/cd vdk/d' Makefile
+  '';
+
+  preInstall = ''
+    ensureDir $out/include
+    ensureDir $out/lib
+  '';
+
+  buildInputs = [pkgconfig glib ncurses gpm];
+
+  meta = {
+    homepage = http://libviper.sourceforge.net/;
+    description = "Simple window creation and management facilities for the console";
+    license="GPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 2797bddcb397d..5220d4a2e3e57 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -2,7 +2,7 @@
 
 assert pythonSupport -> python != null;
 
-stdenv.mkDerivation {
+stdenv.mkDerivation ({
   name = "libxml2-2.7.3";
 
   src = fetchurl {
@@ -31,4 +31,8 @@ stdenv.mkDerivation {
     homepage = http://xmlsoft.org/;
     description = "A XML parsing library for C";
   };
-}
+} // (if pythonSupport then {
+  preConfigure = ''
+    sed -e "s^pythondir=.*$^pythondir=$(toPythonPath $out)^" < configure.old > configure
+  '';
+} else {}))
diff --git a/pkgs/development/libraries/openal/default.nix b/pkgs/development/libraries/openal/default.nix
index 170cb52104790..40d9584742cc9 100644
--- a/pkgs/development/libraries/openal/default.nix
+++ b/pkgs/development/libraries/openal/default.nix
@@ -1,19 +1,35 @@
 { stdenv, fetchurl, alsaLib, cmake }:
 
-let version = "1.5.304"; in
+let version = "1.7.411"; in
 stdenv.mkDerivation rec {
   name = "openal-${version}";
 
   src = fetchurl {
-    url = "http://connect.creativelabs.com/openal/Downloads/openal-soft-${version}.tar.bz2";
-    sha256 = "0k26ycprmpynvfkqkqsbaahl6avn033z2c03sp21vhpqbyms50ks";
+    url = "http://connect.creativelabs.com/openal/Downloads/openal-soft-${version}.bz2";
+    sha256 = "1nbqvg08hy5p2cxy2i2mmh2szmbpsg2dcvhr61iplyisw04rwc8i";
+    name = "openal-soft-${version}.tar.bz2";
   };
 
-  # FIXME: The `$out/bin/openal-info' executable doesn't have the
-  # right RPATH, so it can't find `libopenal.so'.  This must be fixed
-  # by tweaking the CMake crap.
   buildInputs = [ cmake alsaLib ];
 
+  cmakeFlags = "-DCMAKE_SHARED_LINKER_FLAGS=\"-Wl,-rpath,$out/lib/\"" +
+    " -DCMAKE_EXE_LINKER_FLAGS=\"-Wl,-rpath,$out/lib\"" +
+    " -DCMAKE_SKIP_BUILD_RPATH=ON" +
+    " -DCMAKE_BUILD_TYPE=Release" +
+    " -DCMAKE_INSTALL_PREFIX=$out";
+
+  dontUseCmakeConfigure = true;
+
+  # I rewrote the configure phase to get the $out references evaluated in
+  # cmakeFlags
+  configurePhase = ''
+    set -x
+    mkdir -p build;
+    cd build
+    eval -- "cmake .. $cmakeFlags"
+    set +x
+    '';
+
   meta = {
     description = "OpenAL, a cross-platform 3D audio API";
 
diff --git a/pkgs/development/perl-modules/DBD-SQLite/default.nix b/pkgs/development/perl-modules/DBD-SQLite/default.nix
index 009c26933504e..5631ec673e597 100644
--- a/pkgs/development/perl-modules/DBD-SQLite/default.nix
+++ b/pkgs/development/perl-modules/DBD-SQLite/default.nix
@@ -1,4 +1,4 @@
-{fetchurl, buildPerlPackage, perlDBI, sqlite}:
+{fetchurl, buildPerlPackage, DBI, sqlite}:
 
 buildPerlPackage {
   name = "DBD-SQLite-1.14";
@@ -8,7 +8,7 @@ buildPerlPackage {
     sha256 = "01qd5xfx702chg3bv2k727kfdp84zy5xh31y6njvivkp78vrs624";
   };
   
-  propagatedBuildInputs = [perlDBI];
+  propagatedBuildInputs = [DBI];
   
   makeMakerFlags = "SQLITE_LOCATION=${sqlite}";
 
diff --git a/pkgs/development/perl-modules/DB_File/default.nix b/pkgs/development/perl-modules/DB_File/default.nix
index f90743350044e..2a344e392fec5 100644
--- a/pkgs/development/perl-modules/DB_File/default.nix
+++ b/pkgs/development/perl-modules/DB_File/default.nix
@@ -1,6 +1,6 @@
-{fetchurl, perl, db4}:
+{fetchurl, buildPerlPackage, db4}:
 
-import ../generic perl {
+buildPerlPackage {
   name = "DB_File-1.816";
   
   src = fetchurl {
@@ -16,6 +16,4 @@ import ../generic perl {
     INCLUDE = ${db4}/include
     EOF
   '';
-  
-  inherit db4;
 }
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
new file mode 100644
index 0000000000000..c52a9be538a08
--- /dev/null
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -0,0 +1,53 @@
+{ fetchurl, stdenv, python, setuptools, twisted, pyopenssl }:
+
+stdenv.mkDerivation rec {
+  name = "foolscap-0.3.2";
+
+  src = fetchurl {
+    url = "http://foolscap.lothar.com/releases/${name}.tar.gz";
+    sha256 = "1wkqgm6anlxvz8dnqx7ki008255nm1mlhak5n9xy6g1yf31fn3l0";
+  };
+
+  buildInputs = [ python ];
+  propagatedBuildInputs = [ setuptools twisted pyopenssl ];
+
+  doCheck = true;
+
+  buildPhase     = "python setup.py build --build-base $out";
+  checkPhase     = "python setup.py test";
+
+  # FIXME: `$out/bin/flogtool' can't find its friends:
+  #
+  # $ ./result/bin/flogtool --help
+  # Traceback (most recent call last):
+  #   File "./result/bin/flogtool", line 4, in <module>
+  #     import pkg_resources
+  # ImportError: No module named pkg_resources
+
+  installPhase   = ''
+    ensureDir "$out/lib/python2.5/site-packages"
+
+    PYTHONPATH="$out/lib/python2.5/site-packages:$PYTHONPATH" \
+    python setup.py install --prefix="$out"
+
+    ensureDir "$out/doc/${name}"
+    cp -rv "doc/"* "$out/doc/${name}"
+  '';
+
+
+  meta = {
+    homepage = http://foolscap.lothar.com/;
+
+    description = "Foolscap, an RPC protocol for Python that follows the distributed object-capability model";
+
+    longDescription = ''
+      "Foolscap" is the name for the next-generation RPC protocol,
+      intended to replace Perspective Broker (part of Twisted).
+      Foolscap is a protocol to implement a distributed
+      object-capabilities model in Python.
+    '';
+
+    # See http://foolscap.lothar.com/trac/browser/LICENSE.
+    license = "MIT";
+  };
+}
diff --git a/pkgs/development/python-modules/nevow/default.nix b/pkgs/development/python-modules/nevow/default.nix
new file mode 100644
index 0000000000000..2c971b4a86adc
--- /dev/null
+++ b/pkgs/development/python-modules/nevow/default.nix
@@ -0,0 +1,80 @@
+{ fetchurl, stdenv, python, setuptools, twisted, makeWrapper, lib }:
+
+stdenv.mkDerivation rec {
+  name = "nevow-0.9.33";
+
+  src = fetchurl {
+    url = "http://divmod.org/trac/attachment/wiki/SoftwareReleases/Nevow-0.9.33.tar.gz?format=raw";
+    sha256 = "1b6zhfxx247b60n1qi2hrawhiaah88v8igg37pf7rjkmvy2z1c6c";
+    name = "${name}.tar.gz";
+  };
+
+  buildInputs = [ python makeWrapper ];
+  propagatedBuildInputs = [ setuptools twisted ];
+
+  doCheck = true;
+
+  buildPhase     = "python setup.py build --build-base $out";
+  checkPhase     = "python runtests";
+
+  installPhase   = ''
+    ensureDir "$out/lib/python2.5/site-packages"
+
+    PYTHONPATH="$out/lib/python2.5/site-packages:$PYTHONPATH" \
+    python setup.py install --prefix="$out"
+
+    ensureDir "$out/doc/${name}"
+    cp -rv "doc/"* "$out/doc/${name}"
+
+    ${postInstall}
+  '';
+
+  /* FIXME: Wrapping programs like this is not enough:
+
+     $ ./result/bin/nit --help
+     Traceback (most recent call last):
+       File "/nix/store/p5a9qbdjqcfzqmaya8absvm5279l9wd0-nevow-0.9.33/bin/.wrapped-nit", line 4, in <module>
+         import pkg_resources
+     [...]
+     pkg_resources.DistributionNotFound: Nevow==0.9.33-r17222
+
+    Ideas welcome.  */
+  postInstall = ''
+    for i in "$out/bin/"*
+    do
+      wrapProgram "$i"                          \
+        --prefix PYTHONPATH ":"                 \
+        ${lib.concatStringsSep ":"
+           ([ "$out/lib/python2.5/site-packages/src" ] ++
+            (map (path: path + "/lib/python2.5/site-packages")
+                 (propagatedBuildInputs
+                  ++ twisted.propagatedBuildInputs)))}
+    done
+  '';
+
+  meta = {
+    description = "Nevow, a web application construction kit for Python";
+
+    longDescription = ''
+      Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow
+      is a web application construction kit written in Python.  It is
+      designed to allow the programmer to express as much of the view
+      logic as desired in Python, and includes a pure Python XML
+      expression syntax named stan to facilitate this.  However it
+      also provides rich support for designer-edited templates, using
+      a very small XML attribute language to provide bi-directional
+      template manipulation capability.
+
+      Nevow also includes formless, a declarative syntax for
+      specifying the types of method parameters and exposing these
+      methods to the web.  Forms can be rendered automatically, and
+      form posts will be validated and input coerced, rendering error
+      pages if appropriate.  Once a form post has validated
+      successfully, the method will be called with the coerced values.
+    '';
+
+    homepage = http://divmod.org/trac/wiki/DivmodNevow;
+
+    license = "BSD-style";
+  };
+}
diff --git a/pkgs/development/python-modules/simplejson/default.nix b/pkgs/development/python-modules/simplejson/default.nix
new file mode 100644
index 0000000000000..9f53d9364f186
--- /dev/null
+++ b/pkgs/development/python-modules/simplejson/default.nix
@@ -0,0 +1,45 @@
+{ fetchsvn, stdenv, python, setuptools }:
+
+stdenv.mkDerivation rec {
+  name = "simplejson-2.0.9";
+
+  src = fetchsvn {
+    url = "http://simplejson.googlecode.com/svn/tags/${name}";
+    sha256 = "a48d5256fdb4f258c33da3dda110ecf3c786f086dcb08a01309acde6d1ddb921";
+    rev = "172";  # to be on the safe side
+  };
+
+  buildInputs = [ python ];
+  propagatedBuildInputs = [ setuptools ];
+
+  doCheck = true;
+
+  buildPhase     = "python setup.py build --build-base $out";
+  checkPhase     = "python setup.py test";
+
+  installPhase   = ''
+    ensureDir "$out/lib/python2.5/site-packages"
+
+    PYTHONPATH="$out/lib/python2.5/site-packages:$PYTHONPATH" \
+    python setup.py install --prefix="$out"
+
+    # Remove irrelevant directories.
+    rm -rvf "$out/"lib.* "$out/"temp.*
+  '';
+
+  meta = {
+    description = "simplejson is a simple, fast, extensible JSON encoder/decoder for Python";
+
+    longDescription = ''
+      simplejson is compatible with Python 2.4 and later with no
+      external dependencies.  It covers the full JSON specification
+      for both encoding and decoding, with unicode support.  By
+      default, encoding is done in an encoding neutral fashion (plain
+      ASCII with \uXXXX escapes for unicode characters).
+    '';
+
+    homepage = http://code.google.com/p/simplejson/;
+
+    license = "MIT";
+  };
+}
diff --git a/pkgs/development/tools/analysis/radare/default.nix b/pkgs/development/tools/analysis/radare/default.nix
new file mode 100644
index 0000000000000..083e32c2eb9ed
--- /dev/null
+++ b/pkgs/development/tools/analysis/radare/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, pkgconfig, gtk, libusb, readline, lua, gtkdialog,
+  python, ruby, libewf, vte, perl}:
+
+stdenv.mkDerivation {
+  name = "radare-1.2.2";
+
+  src = fetchurl {
+    url = http://radare.org/get/radare-1.2.2.tar.gz;
+    sha256 = "0624ic97s1b70ijbr16b33p76mls8rziqwla6bq29l554dh2hfn4";
+  };
+
+  patches = [ ./lua.patch ];
+
+  buildInputs = [pkgconfig gtk readline libusb lua gtkdialog python
+    ruby libewf vte perl];
+
+  meta = {
+    description = "Free advanced command line hexadecimal editor";
+    homepage = http://radare.org/;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/development/tools/analysis/radare/lua.patch b/pkgs/development/tools/analysis/radare/lua.patch
new file mode 100644
index 0000000000000..3a2ca0d505d46
--- /dev/null
+++ b/pkgs/development/tools/analysis/radare/lua.patch
@@ -0,0 +1,12 @@
+diff --git a/src/plug/hack/Makefile b/src/plug/hack/Makefile
+index b05d8dd..d6c73f9 100644
+--- a/src/plug/hack/Makefile
++++ b/src/plug/hack/Makefile
+@@ -7,7 +7,6 @@ PERL_LIBS=`perl -MExtUtils::Embed -e ldopts` -lncurses
+ PY_CFLAGS=-I${PREFIX}/include/python2.5/ -I/usr/include/python2.5/
+ PY_LIBS=-lpython2.5
+ LUA_CFLAGS=-I${PREFIX}/include/lua5.1/ -I/usr/include/lua5.1/
+-LUA_LIBS=
+ RUBY_CFLAGS=-I/usr/lib/ruby/1.8/i386-linux
+ RUBY_LIBS=-lruby18
+ SO=${SHARED_EXT}
diff --git a/pkgs/development/tools/build-managers/cmake/2.6.3.nix b/pkgs/development/tools/build-managers/cmake/2.6.3.nix
deleted file mode 100644
index bb9c3b1485f95..0000000000000
--- a/pkgs/development/tools/build-managers/cmake/2.6.3.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{fetchurl, stdenv, replace, ncurses}:
-
-stdenv.mkDerivation rec {
-  name = "cmake-2.6.3-RC-15";
-
-  # We look for cmake modules in .../share/cmake-${majorVersion}/Modules.
-  majorVersion = "2.6";
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    homepage = http://www.cmake.org/;
-    description = "Cross-Platform Makefile Generator";
-  };
-
-  src = fetchurl {
-    url = "http://www.cmake.org/files/v2.6/${name}.tar.gz";
-    sha256 = "476b6daca63c39bc46955f99f2566735d51159c43ccc716fa689ba2a2fa7e432";
-  };
-
-  postUnpack = ''
-    dontUseCmakeConfigure=1
-    source $setupHook
-    fixCmakeFiles $sourceRoot
-    echo 'SET (CMAKE_SYSTEM_PREFIX_PATH "'${ncurses}'" CACHE FILEPATH "Root for libs for cmake" FORCE)' > $sourceRoot/cmakeInit.txt
-  '';
-
-  configureFlags= [ " --init=cmakeInit.txt " ];
-
-  postInstall = "fixCmakeFiles $out/share";
-}
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index f46ba5ce9aa58..6948215229b27 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,31 +1,31 @@
 {fetchurl, stdenv, replace, ncurses}:
 
 stdenv.mkDerivation rec {
-  name = "cmake-2.6.2";
+  name = "cmake-2.6.3";
 
   # We look for cmake modules in .../share/cmake-${majorVersion}/Modules.
-  majorVersion = "2.6"; 
-  
+  majorVersion = "2.6";
+
   setupHook = ./setup-hook.sh;
-  
+
   meta = {
     homepage = http://www.cmake.org/;
     description = "Cross-Platform Makefile Generator";
   };
-  
+
   src = fetchurl {
-    url = "http://www.cmake.org/files/v2.6/${name}.tar.gz";
-    sha256 = "b3f5a9dfa97fb82cb1b7d78a62d949f93c8d4317af36674f337d27066fa6b7e9";
+    url = "http://www.cmake.org/files/v${majorVersion}/${name}.tar.gz";
+    sha256 = "3c3af80526a32bc2afed616e8f486b847144f2fa3a8e441908bd39c38b146450";
   };
-  
+
   postUnpack = ''
     dontUseCmakeConfigure=1
     source $setupHook
     fixCmakeFiles $sourceRoot
     echo 'SET (CMAKE_SYSTEM_PREFIX_PATH "'${ncurses}'" CACHE FILEPATH "Root for libs for cmake" FORCE)' > $sourceRoot/cmakeInit.txt
   '';
-  
+
   configureFlags= [ " --init=cmakeInit.txt " ];
-  
+
   postInstall = "fixCmakeFiles $out/share";
 }
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 6adc4420379f2..835b9000c68dd 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -11,13 +11,13 @@ fixCmakeFiles()
     echo "fixing cmake files"
     replaceArgs="-e -f -L -T /usr /FOO"
     replaceArgs="$replaceArgs -a NO_DEFAULT_PATH \"\" -a NO_SYSTEM_PATH \"\""
-    find $1 -type f -name "*.cmake" | xargs replace-literal ${replaceArgs}
+    find $1 -type f -name "*.cmake" -print0 | xargs -0 replace-literal ${replaceArgs}
 }
 
 cmakeConfigurePhase()
 {
     eval "$preConfigure"
-    
+
     if test -z "$dontFixCmake"; then
         fixCmakeFiles .
     fi
@@ -33,9 +33,9 @@ cmakeConfigurePhase()
     fi
 
     echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}"
-    
+
     cmake ${cmakeDir:-.} $cmakeFlags ${cmakeFlagsArray[@]}
-    
+
     eval "$postConfigure"
 }
 
diff --git a/pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix b/pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix
new file mode 100644
index 0000000000000..ff7c982267e71
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/haddock-2.4.2.nix
@@ -0,0 +1,13 @@
+{cabal, ghcPaths, libedit}:
+
+cabal.mkDerivation (self : {
+  pname = "haddock";
+  version = "2.4.2"; # Haskell Platform 2009.0.0
+  name = self.fname;
+  sha256 = "dbf0a7d0103a3ce6a91b2a3b96148c1b9c13ea7f8bd74260c21fe98df7839547";
+  # TODO: adding libedit here is a hack
+  propagatedBuildInputs = [ghcPaths libedit];
+  meta = {
+    description = "a tool for automatically generating documentation from annotated Haskell source code";
+  };
+})
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
new file mode 100644
index 0000000000000..80daa6e38f5e5
--- /dev/null
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -0,0 +1,12 @@
+{cabal, haskellSrcExts, mtl, uniplate, hscolour}:
+
+cabal.mkDerivation (self : {
+  pname = "hlint";
+  version = "1.4";
+  name = self.fname;
+  sha256 = "deddcd8b2a2e1dce2510395dae1d6c78dc9264766e362ff378fe0f008db42e4e";
+  extraBuildInputs = [haskellSrcExts mtl uniplate hscolour];
+  meta = {
+    description = "Source code suggestions";
+  };
+})
diff --git a/pkgs/development/tools/haskell/uuagc/default.nix b/pkgs/development/tools/haskell/uuagc/default.nix
index f9fe0d3a6870b..d4c3de9026eb4 100644
--- a/pkgs/development/tools/haskell/uuagc/default.nix
+++ b/pkgs/development/tools/haskell/uuagc/default.nix
@@ -2,9 +2,9 @@
 
 cabal.mkDerivation (self : {
   pname = "uuagc";
-  version = "0.9.7";
+  version = "0.9.10";
   name = self.fname;
-  sha256 = "7479ddbc8dc4b04cae278a942a50d7d76f06011aca06c56bcd26bdeba6eeb2d6";
+  sha256 = "cdbe78b6138a67bbc612f0f667f70ba483ebbdaa4d0c87c5508cfb5e68a49dcb";
   extraBuildInputs = [uulib];
   meta = {
     description = "Attribute Grammar System of Universiteit Utrecht";
diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix
new file mode 100644
index 0000000000000..9b806ff474f17
--- /dev/null
+++ b/pkgs/development/tools/misc/cpphs/default.nix
@@ -0,0 +1,10 @@
+{cabal} :
+
+cabal.mkDerivation (self : {
+  pname = "cpphs";
+  version = "1.6";
+  sha256 = "2e7c430fde17adbb3905e6d2a3c3845a40349c61a53fcfa40c733e8b43e73295";
+  meta = {
+    description = "A liberalised re-implementation of cpp, the C pre-processor";
+  };
+})
diff --git a/pkgs/development/tools/misc/gtkdialog/default.nix b/pkgs/development/tools/misc/gtkdialog/default.nix
new file mode 100644
index 0000000000000..80a7fe4892598
--- /dev/null
+++ b/pkgs/development/tools/misc/gtkdialog/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, gtk, pkgconfig}:
+
+stdenv.mkDerivation {
+  name = "gtkdialog-0.7.9";
+
+  src = fetchurl {
+    url = ftp://linux.pte.hu/pub/gtkdialog/gtkdialog-0.7.9.tar.gz;
+    sha256 = "142k8fnh1b8jclm7my2rhk7n8j1b0xh76b2gg712r738r94qwka2";
+  };
+
+  buildInputs = [ gtk pkgconfig ];
+
+  meta = {
+    homepage = http://linux.pte.hu/~pipas/gtkdialog/;
+    description = "Small utility for fast and easy GUI building from many scripted and compiled languages";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index 0a9e66568b5f4..1e053546cae1a 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, gettext, perlLocaleGettext}:
+{stdenv, fetchurl, perl, gettext, LocaleGettext}:
 
 stdenv.mkDerivation {
   name = "help2man-1.35.1";
@@ -11,11 +11,11 @@ stdenv.mkDerivation {
   buildInputs = [
     perl
     gettext
-    perlLocaleGettext
+    LocaleGettext
   ];
 
   # So that configure can find `preloadable_libintl.so'.
-  LD_LIBRARY_PATH = gettext + "/lib";
+  LD_LIBRARY_PATH = "${gettext}/lib";
 
   inherit gettext;
 }
diff --git a/pkgs/development/tools/misc/icon-naming-utils/default.nix b/pkgs/development/tools/misc/icon-naming-utils/default.nix
index 9d8b85f80bfd0..be1bc9691c8ef 100644
--- a/pkgs/development/tools/misc/icon-naming-utils/default.nix
+++ b/pkgs/development/tools/misc/icon-naming-utils/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, perlXMLSimple}:
+{stdenv, fetchurl, perl, XMLSimple}:
 
 stdenv.mkDerivation {
   name = "icon-naming-utils-0.8.7";
@@ -7,13 +7,13 @@ stdenv.mkDerivation {
     url = http://tango.freedesktop.org/releases/icon-naming-utils-0.8.7.tar.gz;
     sha256 = "1lj0lffdg7fjfinhrn0vsq1kj010dxlxlix4jfc969j6l3k9rd0w";
   };
-
-  buildInputs = [perl perlXMLSimple];
+  
+  buildInputs = [perl XMLSimple];
 
   postInstall = "
     # Add XML::Simple to the runtime search path.
     substituteInPlace $out/libexec/icon-name-mapping \\
-        --replace '/bin/perl' '/bin/perl -I${perlXMLSimple}/lib/perl5/site_perl';
+        --replace '/bin/perl' '/bin/perl -I${XMLSimple}/lib/perl5/site_perl';
     ensureDir $out/lib
     ln -s $out/share/pkgconfig $out/lib/pkgconfig # WTF?
   ";
diff --git a/pkgs/development/tools/parsing/alex/default.nix b/pkgs/development/tools/parsing/alex/default.nix
index 273a25753e82f..aab99629b317b 100644
--- a/pkgs/development/tools/parsing/alex/default.nix
+++ b/pkgs/development/tools/parsing/alex/default.nix
@@ -2,9 +2,9 @@
 
 cabal.mkDerivation (self : {
   pname = "alex";
-  version = "2.2";
+  version = "2.3.1"; # Haskell Platform 2009.0.0
   name = self.fname;
-  sha256 = "e958d4fc6cfdb1d351dc39a45ea882f23b1b1773a736d43814a52d4939a41ffe";
+  sha256 = "cdd42fd992a72fedeff1f38debc21aa315d90dc070f0945d7819c0bccd549a44";
   extraBuildInputs = [perl];
   meta = {
     description = "A lexical analyser generator for Haskell";
diff --git a/pkgs/development/tools/parsing/happy/default.nix b/pkgs/development/tools/parsing/happy/default.nix
deleted file mode 100644
index ac3fb088bbab3..0000000000000
--- a/pkgs/development/tools/parsing/happy/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{stdenv, fetchurl, perl, ghc}:
-
-stdenv.mkDerivation {
-  name = "happy-1.14";
-  src = fetchurl {
-    url = http://www.haskell.org/happy/dist/1.14/happy-1.14-src.tar.gz;
-    md5 = "501b5b63533b2e2838de18085e8c4492";
-  };
-  buildInputs = [ghc perl];
-}
diff --git a/pkgs/development/tools/parsing/happy/happy-1.18.2.nix b/pkgs/development/tools/parsing/happy/happy-1.18.2.nix
new file mode 100644
index 0000000000000..889630a5e9b10
--- /dev/null
+++ b/pkgs/development/tools/parsing/happy/happy-1.18.2.nix
@@ -0,0 +1,13 @@
+{cabal, mtl, perl}:
+
+cabal.mkDerivation (self : {
+  pname = "happy";
+  version = "1.18.2"; # Haskell Platform 2009.0.0
+  name = self.fname;
+  sha256 = "7515922f3cfd32cd844a0abfefe0b4871f403f0d869b8644bf9cbfc0b67996ae";
+  extraBuildInputs = [perl];
+  propagatedBuildInputs = [mtl];
+  meta = {
+    description = "Happy is a parser generator for Haskell";
+  };
+})
diff --git a/pkgs/games/scorched3d/default.nix b/pkgs/games/scorched3d/default.nix
new file mode 100644
index 0000000000000..18a86f2d85c04
--- /dev/null
+++ b/pkgs/games/scorched3d/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, mesa, openal, autoconf, automake, libtool, freealut, wxGTK,
+freetype, fftw, SDL, SDL_net, zlib, libpng, libjpeg} :
+
+stdenv.mkDerivation {
+  name = "scorched3d-42.1";
+  src = fetchurl {
+    url = mirror://sourceforge/scorched3d/Scorched3D-42.1-src.tar.gz;
+    sha256 = "0vhhi68ii5ldxbacsiqccsascrn3q033hnaa1ha8r9gxspzcqkl8";
+  };
+
+  buildInputs = [ mesa openal autoconf automake libtool freealut wxGTK
+    freetype fftw SDL SDL_net zlib libpng libjpeg ];
+
+  unpackPhase = "tar xvzf $src ; cd scorched";
+
+  patches = [ ./scorched3d-42.1-fixups.patch ./file-existence.patch ];
+
+  preConfigure = ''
+    set +e
+    aclocal
+    libtoolize --copy --force
+    autoconf
+    automake
+    libtoolize
+    set -e
+  '';
+
+  meta = {
+    homepage = http://scorched3d.co.uk/;
+    description = "3D Clone of the classic Scorched Earth";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/scorched3d/file-existence.patch b/pkgs/games/scorched3d/file-existence.patch
new file mode 100644
index 0000000000000..35eb63d070224
--- /dev/null
+++ b/pkgs/games/scorched3d/file-existence.patch
@@ -0,0 +1,37 @@
+diff --git a/src/common/common/DefinesFile.cpp b/src/common/common/DefinesFile.cpp
+index 6ad803d..022797a 100644
+--- a/src/common/common/DefinesFile.cpp
++++ b/src/common/common/DefinesFile.cpp
+@@ -36,6 +36,17 @@
+ #include <unistd.h>

+ #endif

+ 

++namespace {

++    bool fileCanBeStated(const std::string &file)

++    {

++        struct stat buf;

++        memset(&buf, 0, sizeof(buf));

++        int result = stat(file.c_str(), &buf );

++

++        return result == 0;

++    }

++}

++

+ std::string S3D::getHomeDir()

+ {

+ #ifdef _WIN32

+@@ -74,12 +85,12 @@ bool S3D::dirMake(const std::string &file)
+ 

+ bool S3D::fileExists(const std::string &file)

+ {

+-	return (S3D::fileModTime(file) != 0);

++	return fileCanBeStated(file);

+ }

+ 

+ bool S3D::dirExists(const std::string &file)

+ {

+-	return (S3D::fileModTime(file) != 0);

++	return fileCanBeStated(file);

+ }

+ 

+ time_t S3D::fileModTime(const std::string &file)

diff --git a/pkgs/games/scorched3d/scorched3d-42.1-fixups.patch b/pkgs/games/scorched3d/scorched3d-42.1-fixups.patch
new file mode 100644
index 0000000000000..36a027cb60cc8
--- /dev/null
+++ b/pkgs/games/scorched3d/scorched3d-42.1-fixups.patch
@@ -0,0 +1,58 @@
+diff -ru scorched.orig/configure-al.m4 scorched/configure-al.m4
+--- scorched.orig/configure-al.m4	2008-03-03 16:17:18.000000000 -0500
++++ scorched/configure-al.m4	2009-02-15 20:43:35.000000000 -0500
+@@ -7,25 +7,9 @@
+ 	[  --disable-openaltest    Do not try to compile and run a test OpenAL program],
+ 		    , enable_openaltest=yes)
+ AC_MSG_CHECKING(for OpenAL support)
+-AC_PATH_PROG(OPENAL_CONFIG, openal-config, no)
+-if test x$OPENAL_CONFIG = xno; then
+-	echo "*** The openal-config script installed by OpenAL could not be found"
+-	echo "*** Make sure openal-config is in your path, or set the OPENAL_CONFIG"
+-	echo "*** environment variable to the full path to openal-config."
+-
+-	AC_MSG_ERROR([*** Can't find the openal library. Try: http://www.openal.org/])
+-else
+-
+-	if test x"$use_static_openal" = x"yes"; then
+-		AL_LIBS="/usr/local/lib/libopenal.a"
+-	else
+-		AL_LIBS="`$OPENAL_CONFIG --libs`"
+-	fi
+-	
+-	AL_CFLAGS="`$OPENAL_CONFIG --cflags`"
+-
+-	AC_MSG_RESULT(yes)
+-fi
++AL_LIBS="-lopenal"
++AL_CFLAGS="-I/usr/include/AL"
++AC_MSG_RESULT(yes)
+ 
+ AC_MSG_CHECKING(for Freealut support)
+ AC_PATH_PROG(FREEALUT_CONFIG, freealut-config, no)
+diff -ru scorched.orig/configure.ac scorched/configure.ac
+--- scorched.orig/configure.ac	2008-03-03 16:17:18.000000000 -0500
++++ scorched/configure.ac	2009-02-15 20:40:30.000000000 -0500
+@@ -13,22 +13,6 @@
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
+ 
+-LDFLAGS="-L/usr/X11R6/lib -L/usr/X11R6"
+-CPPFLAGS="-I/usr/X11R6/include -I/usr/X11R6"
+-
+-if test `uname` == Darwin; then
+-LDFLAGS="$LDFLAGS -lmx"
+-CPPFLAGS="$CPPFLAGS -DFFTW_USE_DOUBLE -D__DARWIN__ -D__MACOSX__"
+-else
+-LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+-fi
+-
+-AC_CHECK_LIB(fridge, beer, echo "Hmm?!",[
+-	echo "Warning: No beer found in fridge!";
+-	echo "We highly suggest that you rectify this situation immediately."
+-])
+-
+ AC_ARG_ENABLE(serveronly, 
+ 	[  --enable-serveronly Enable server only compilation],
+ 		    , enable_serveronly=no,
diff --git a/pkgs/misc/foldingathome/default.nix b/pkgs/misc/foldingathome/default.nix
new file mode 100644
index 0000000000000..ca4fe2657bff8
--- /dev/null
+++ b/pkgs/misc/foldingathome/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl}:
+
+assert stdenv.system == "i686-linux";
+
+stdenv.mkDerivation {
+  name = "folding-at-home-6.02";
+
+  src = fetchurl {
+    url = http://www.stanford.edu/group/pandegroup/folding/release/FAH6.02-Linux.tgz;
+    sha256 = "01nwi0lb4vv0xg4k04i2fbf5v5qgabl70jm5cgvw1ibgqjz03910";
+  };
+
+  unpackPhase = "tar xvzf $src";
+
+  # Otherwise it doesn't work at all, even ldd thinks it's not a dynamic executable
+  dontStrip = true;
+
+  # This program, to run with '-smp', wants to execute the program mpiexec
+  # as "./mpiexec", although it also expects to write the data files into "."
+  # I suggest, if someone wants to run it, in the data directory set a link
+  # to the store for 'mpiexec', so './mpiexec' will work. That link better
+  # be considered a gcroot.
+  installPhase = ''
+    BINFILES="fah6 mpiexec";
+    for a in $BINFILES; do 
+      patchelf --set-interpreter $(cat $NIX_GCC/nix-support/dynamic-linker) $a
+    done
+    ensureDir $out/bin
+    cp $BINFILES $out/bin
+  '';
+
+  meta = {
+    homepage = http://folding.stanford.edu/;
+    description = "Folding@home distributed computing client";
+    license = "unfree";
+  };
+}
diff --git a/pkgs/os-specific/linux/sdparm/1.03.nix b/pkgs/os-specific/linux/sdparm/1.03.nix
deleted file mode 100644
index 9bc19954e0370..0000000000000
--- a/pkgs/os-specific/linux/sdparm/1.03.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-args : with args;
-	let localDefs = builderDefs.passthru.function {
-		src = /* put a fetchurl here */
-		fetchurl {
-      url = http://freshmeat.net/redir/sdparm/66844/url_bz2/sdparm-1.03.tar.bz2;
-      sha256 = "2066af4d55c60bba366b34a29e02f37264e8e1f0efc232d65beba5e317c20819";
-		};
-
-		buildInputs = [];
-		configureFlags = [];
-	};
-	in with localDefs;
-stdenv.mkDerivation rec {
-	name = "sdparm-"+version;
-	builder = writeScript (name + "-builder")
-		(textClosure localDefs [doConfigure doMakeInstall doForceShare doPropagate]);
-	meta = {
-		description = "Utility for setting parameters of SCSI devices";
-		inherit src;
-	};
-}
diff --git a/pkgs/os-specific/linux/sdparm/default.nix b/pkgs/os-specific/linux/sdparm/default.nix
new file mode 100644
index 0000000000000..8389728f22d83
--- /dev/null
+++ b/pkgs/os-specific/linux/sdparm/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "sdparm-1.03";
+
+  src = fetchurl {
+    url = http://sg.danny.cz/sg/p/sdparm-1.03.tgz;
+    sha256 = "067bdhq2qc7h7ykf1yv86s9x12zscpqnsdlnr636a0nv0di2wymq";
+  };
+
+  meta = {
+    homepage = http://sg.danny.cz/sg/sdparm.html;
+    description = "A utility to access SCSI device parameters";
+    license = "free";
+  };
+}
diff --git a/pkgs/shells/tcsh/default.nix b/pkgs/shells/tcsh/default.nix
index f0ef071bb56c2..56f446c2e510e 100644
--- a/pkgs/shells/tcsh/default.nix
+++ b/pkgs/shells/tcsh/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, ncurses}:
 
 stdenv.mkDerivation {
-  name = "tcsh-6.15.00";
+  name = "tcsh-6.16.00";
   src = fetchurl {
-    url = ftp://ftp.funet.fi/pub/unix/shells/tcsh/tcsh-6.15.00.tar.gz;
-    sha256 = "1p5chgvj87m2dv4ci9qf4i81gav0lzr7rkcm320sj62z09ckxa6w";
+    url = ftp://ftp.funet.fi/pub/unix/shells/tcsh/tcsh-6.16.00.tar.gz;
+    sha256 = "1m0p8lqqna3vpf2k4x3hia3rlrz38av67x7hb4qsiq2kfpbbh0vn";
   };
   buildInputs = [ncurses];
 }
diff --git a/pkgs/tools/archivers/cromfs/default.nix b/pkgs/tools/archivers/cromfs/default.nix
index f243bd89d7c04..4d09d9aace32a 100644
--- a/pkgs/tools/archivers/cromfs/default.nix
+++ b/pkgs/tools/archivers/cromfs/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, pkgconfig, fuse, perl}:
 
 stdenv.mkDerivation {
-  name = "cromfs-1.5.7";
+  name = "cromfs-1.5.8.6";
   src = fetchurl {
-    url = http://bisqwit.iki.fi/src/arch/cromfs-1.5.7.tar.bz2;
-    sha256 = "7df900cd5d2656e0d2a9cdfb6da7dd194eef2e2a34537f7f69a56dc08a0c0deb";
+    url = http://bisqwit.iki.fi/src/arch/cromfs-1.5.8.6.tar.bz2;
+    sha256 = "00m362q0b7z1688pjhvnbr14y3p1lgaymq5k9r42z3blzw8mgmay";
   };
 
   patchPhase = ''sed -i 's@/bin/bash@/bin/sh@g' configure; set -x'';
diff --git a/pkgs/tools/cd-dvd/cdrkit/default.nix b/pkgs/tools/cd-dvd/cdrkit/default.nix
index 7e5bb44764cd4..b1060d97a1e00 100644
--- a/pkgs/tools/cd-dvd/cdrkit/default.nix
+++ b/pkgs/tools/cd-dvd/cdrkit/default.nix
@@ -10,6 +10,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [cmake libcap zlib bzip2];
 
+  postInstall = ''
+    # file name compatibility with the old cdrecord (growisofs wants this name)
+    ln -s $out/bin/genisoimage $out/bin/mkisofs
+    ln -s $out/bin/devdump $out/bin/cdrecord
+  '';
+
   makeFlags = "PREFIX=\$(out)";
 
   meta = {
diff --git a/pkgs/tools/misc/ttf2pt1/default.nix b/pkgs/tools/misc/ttf2pt1/default.nix
new file mode 100644
index 0000000000000..870c5b1e121f1
--- /dev/null
+++ b/pkgs/tools/misc/ttf2pt1/default.nix
@@ -0,0 +1,28 @@
+args: with args;
+stdenv.mkDerivation {
+  name = "ttf2pt1-3.4.4";
+
+  src = fetchurl {
+    url = http://prdownloads.sourceforge.net/ttf2pt1/ttf2pt1-3.4.4.tgz;
+    sha256 = "1l718n4k4widx49xz7qrj4mybzb8q67kp2jw7f47604ips4654mf";
+  };
+
+  preConfigure = ''
+    find -type f | xargs sed -i 's@/usr/bin/perl@${perl}/bin/perl@'
+    ensureDir $out
+    sed -e 's/chown/true/' \
+        -e 's/chgrp/true/' \
+        -e 's@^CFLAGS_FT =.*@CFLAGS_FT=-DUSE_FREETYPE -I${freetype}/include/freetype2@' \
+        -i scripts/{inst_dir,inst_file} Makefile
+    makeFlags="INSTDIR=$out OWNER=`id -u`"
+  '';
+
+  buildInputs = [freetype];
+  patches = ./gentoo-makefile.patch; # also contains the freetype patch
+
+  meta = { 
+      description = "True Type to Postscript Type 3 converter, fpdf";
+      homepage = "http://ttf2pt1.sourceforge.net/index.html";
+      license = "ttf2pt1";
+  };
+}
diff --git a/pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch b/pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch
new file mode 100644
index 0000000000000..84854606131f2
--- /dev/null
+++ b/pkgs/tools/misc/ttf2pt1/gentoo-makefile.patch
@@ -0,0 +1,98 @@
+diff -Naur ttf2pt1-3.4.4-orig/Makefile ttf2pt1-3.4.4/Makefile
+--- ttf2pt1-3.4.4-orig/Makefile	2007-07-15 20:06:50.000000000 -0600
++++ ttf2pt1-3.4.4/Makefile	2007-07-15 20:12:40.000000000 -0600
+@@ -9,7 +9,7 @@
+ #
+ # Use GNU C even if it's not the default compiler
+ #
+-#CC=gcc
++CC=gcc
+ #
+ # Use the standard ANSI C compiler on HP-UX even if it's not default
+ #
+@@ -60,18 +60,18 @@
+ # (if the include and lib directory do not match your installation,
+ # modify them), also uncomment LIBS_FT
+ #
+-#CFLAGS_FT = -DUSE_FREETYPE -I/usr/local/include/freetype2 -I/usr/local/include
++CFLAGS_FT = -DUSE_FREETYPE -I/usr/include/freetype2 -I/usr/include
+ 
+ # 
+ # The FreeType-2 library flags (disabled by default)
+ 
+-LIBS_FT=
++#LIBS_FT=
+ 
+ # To enable use of the FreeType-2 library
+ # (if the include and lib directory do not match your installation,
+ # modify them), also uncomment CFLAGS_FT
+ #
+-#LIBS_FT= -L/usr/local/lib -lfreetype
++LIBS_FT= -L/usr/lib -lfreetype
+ 
+ #
+ # The flags for C compiler for the Autotrace library (disabled by default). 
+@@ -120,18 +120,18 @@
+ # Installation-related stuff
+ # 
+ # The base dir for installation and subdirs in it
+-INSTDIR = /usr/local
++INSTDIR = /usr
+ # for binaries
+ BINDIR = $(INSTDIR)/bin
+ # for binaries of little general interest
+ LIBXDIR = $(INSTDIR)/libexec/ttf2pt1
+ # for scripts, maps/encodings etc.
+ SHAREDIR = $(INSTDIR)/share/ttf2pt1
+-MANDIR = $(INSTDIR)/man
++MANDIR = $(INSTDIR)/share/man
+ 
+ # owner and group of installed files
+ OWNER = root
+-GROUP = bin
++GROUP = root
+ 
+ # After you have configured the Makefile, comment out the following
+ # definition:
+@@ -244,17 +244,19 @@
+ 	chmod -R go-w $(SHAREDIR)
+ 	scripts/inst_file ttf2pt1 $(BINDIR)/ttf2pt1 $(OWNER) $(GROUP) 0755
+ 	[ -f $(BINDIR)/t1asm ] || scripts/inst_file t1asm $(LIBXDIR)/t1asm $(OWNER) $(GROUP) 0755
+-	sed 's|^TTF2PT1_BINDIR=$$|TTF2PT1_BINDIR=$(BINDIR)|;\
+-		s|^TTF2PT1_LIBXDIR=$$|TTF2PT1_LIBXDIR=$(LIBXDIR)|;\
+-		s|^TTF2PT1_SHAREDIR=$$|TTF2PT1_SHAREDIR=$(SHAREDIR)|;' <scripts/convert >cvt.tmp
++	sed -e 's|^TTF2PT1_BINDIR=$$|TTF2PT1_BINDIR=$(BINDIR)|' \
++		-e 's|^TTF2PT1_LIBXDIR=$$|TTF2PT1_LIBXDIR=$(LIBXDIR)|' \
++		-e 's|^TTF2PT1_SHAREDIR=$$|TTF2PT1_SHAREDIR=$(SHAREDIR)|' \
++		<scripts/convert >cvt.tmp
+ 	scripts/inst_file cvt.tmp $(BINDIR)/ttf2pt1_convert $(OWNER) $(GROUP) 0755
+ 	scripts/inst_file cvt.tmp $(SHAREDIR)/scripts/convert $(OWNER) $(GROUP) 0755
+ 	rm cvt.tmp
+ 	scripts/inst_file scripts/x2gs $(BINDIR)/ttf2pt1_x2gs $(OWNER) $(GROUP) 0755
+ 	for i in $(MANS1); do { \
+-		sed 's|TTF2PT1_BINDIR|$(BINDIR)|;\
+-			s|TTF2PT1_LIBXDIR|$(LIBXDIR)|;\
+-			s|TTF2PT1_SHAREDIR|$(SHAREDIR)|;' <$$i >$(MANDIR)/man1/$$i \
++		sed -e 's|TTF2PT1_BINDIR|$(BINDIR)|' \
++			-e 's|TTF2PT1_LIBXDIR|$(LIBXDIR)|' \
++			-e 's|TTF2PT1_SHAREDIR|$(SHAREDIR)|' \
++			<$$i >$(MANDIR)/man1/$$i \
+ 		&& chown $(OWNER) $(MANDIR)/man1/$$i \
+ 		&& chgrp $(GROUP) $(MANDIR)/man1/$$i \
+ 		&& chmod 0644 $(MANDIR)/man1/$$i \
+
+
+
+
+
+diff -Naur ttf2pt1-3.4.4-orig/ft.c ttf2pt1-3.4.4/ft.c
+--- ttf2pt1-3.4.4-orig/ft.c	2007-07-15 20:23:43.000000000 -0600
++++ ttf2pt1-3.4.4/ft.c	2007-07-15 20:24:02.000000000 -0600
+@@ -12,6 +12,7 @@
+ #include <stdlib.h>
+ #include <ctype.h>
+ #include <sys/types.h>
++#include <ft2build.h>
+ #include <freetype/freetype.h>
+ #include <freetype/ftglyph.h>
+ #include <freetype/ftsnames.h>
diff --git a/pkgs/tools/misc/xmltv/default.nix b/pkgs/tools/misc/xmltv/default.nix
index 35cbdd470b383..4b8ba43f597d4 100644
--- a/pkgs/tools/misc/xmltv/default.nix
+++ b/pkgs/tools/misc/xmltv/default.nix
@@ -1,7 +1,4 @@
-{ fetchurl, perl, perlTermReadKey, perlXMLTwig, perlXMLWriter
-, perlDateManip, perlHTMLTree, perlHTMLParser, perlHTMLTagset
-, perlURI, perlLWP
-}:
+{ fetchurl, perl, perlPackages }:
 
 import ../../../development/perl-modules/generic perl {
   name = "xmltv-0.5.51";
@@ -11,7 +8,8 @@ import ../../../development/perl-modules/generic perl {
   };
   #makeMakerFlags = "-components tv_grab_nl";
   buildInputs = [
-    perlTermReadKey perlXMLTwig perlXMLWriter perlDateManip
-    perlHTMLTree perlHTMLParser perlHTMLTagset perlURI perlLWP
+    perlPackages.TermReadKey perlPackages.XMLTwig perlPackages.XMLWriter
+    perlPackages.DateManip perlPackages.HTMLTree perlPackages.HTMLParser
+    perlPackages.HTMLTagset perlPackages.URI perlPackages.LWP
   ];
 }
diff --git a/pkgs/tools/networking/pdsh/default.nix b/pkgs/tools/networking/pdsh/default.nix
index 7e60e60bfa360..81327c84bf5b4 100644
--- a/pkgs/tools/networking/pdsh/default.nix
+++ b/pkgs/tools/networking/pdsh/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
                  + " " + (if readline == null then "--without-readline" else "--with-readline")
                  + " " + (if ssh == null then "--without-ssh" else "--with-ssh")
                  + " " + (if pam == null then "--without-pam" else "--with-pam")
-                 + " " + (if rsh == null then "--without-rsh" else "--with-rsh")
+                 + " " + (if rsh == false then "--without-rsh" else "--with-rsh")
                  + " --with-dshgroups"
                  + " --with-xcpu"
                  + " --without-genders"
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index 9ab6fbb813302..a4618a53452d9 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, gettext}:
+{stdenv, fetchurl, gettext, openssl ? null}:
 
 stdenv.mkDerivation rec {
   name = "wget-1.11.4";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1yr7w182n7lvkajvq07wnw65sw2vmxjkc3611kpc728vhvi54zwb";
   };
 
-  buildInputs = [gettext];
+  buildInputs = [gettext openssl];
 
   meta = {
     description = "A console downloading program. Has some features for mirroring sites.";
diff --git a/pkgs/tools/package-management/cabal-install/default.nix b/pkgs/tools/package-management/cabal-install/default.nix
new file mode 100644
index 0000000000000..aafafab453de8
--- /dev/null
+++ b/pkgs/tools/package-management/cabal-install/default.nix
@@ -0,0 +1,13 @@
+{cabal, HTTP, network, zlib} :
+
+cabal.mkDerivation (self : {
+  pname = "cabal-install";
+  name = self.fname;
+  version = "0.6.2"; # Haskell Platform 2009.0.0
+  sha256 = "d8ea91bd0a2a624ab1cf52ddfe48cef02b532bb5e2fcda3fd72ca51efc04b41a";
+  extraBuildInputs = [HTTP network zlib];
+
+  meta = {
+    description = "The command-line interface for Cabal and Hackage";
+  };
+})
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index c0fda960b96bc..2abce029c2ad3 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation {
-  name = "nix-0.13pre14722";
+  name = "nix-0.13pre15214";
   
   src = fetchurl {
-    url = http://hydra.nixos.org/build/6757/download/1/nix-0.13pre14722.tar.bz2;
-    sha256 = "1459dd526a7805dedee91033313da4da249bf2ef13eb89c8c2a64e326464f68b";
+    url = http://hydra.nixos.org/build/17407/download/1/nix-0.13pre15214.tar.bz2;
+    sha256 = "b2423eebb0c70fa2c38d11b5d5e6d8794ebc7283dfde8d1f1c02c54846014ab2";
   };
 
   buildInputs = [perl curl openssl];
diff --git a/pkgs/tools/typesetting/docbook2x/default.nix b/pkgs/tools/typesetting/docbook2x/default.nix
index cebf71ca2009c..72e528a5ed1e9 100644
--- a/pkgs/tools/typesetting/docbook2x/default.nix
+++ b/pkgs/tools/typesetting/docbook2x/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, texinfo, perl
-, perlXMLSAX, perlXMLParser, perlXMLNamespaceSupport
+, XMLSAX, XMLParser, XMLNamespaceSupport
 , groff, libxml2, libxslt, gnused
 , makeWrapper }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   patches = [ ./db2x_texixml-to-stdout.patch ];
 
   buildInputs = [ perl texinfo groff libxml2 libxslt makeWrapper
-                  perlXMLSAX perlXMLParser perlXMLNamespaceSupport ];
+                  XMLSAX XMLParser XMLNamespaceSupport ];
 
   postConfigure = ''
     # Broken substitution is used for `perl/config.pl', which leaves literal
@@ -32,9 +32,9 @@ stdenv.mkDerivation rec {
       # XXX: We work around the fact that `wrapProgram' doesn't support
       # spaces below by inserting escaped backslashes.
       wrapProgram $out/bin/$i --prefix PERL5LIB :			\
-        "${perlXMLSAX}/lib/perl5/site_perl:${perlXMLParser}/lib/perl5/site_perl" \
+        "${XMLSAX}/lib/perl5/site_perl:${XMLParser}/lib/perl5/site_perl" \
 	--prefix PERL5LIB :						\
-	"${perlXMLNamespaceSupport}/lib/perl5/site_perl"		\
+	"${XMLNamespaceSupport}/lib/perl5/site_perl"			\
 	--prefix XML_CATALOG_FILES "\ "					\
 	"$out/share/docbook2X/dtd/catalog.xml\ $out/share/docbook2X/xslt/catalog.xml"
     done
diff --git a/pkgs/tools/typesetting/lhs2tex/default.nix b/pkgs/tools/typesetting/lhs2tex/default.nix
index c4fe10026dd84..f5bbb572504eb 100644
--- a/pkgs/tools/typesetting/lhs2tex/default.nix
+++ b/pkgs/tools/typesetting/lhs2tex/default.nix
@@ -1,26 +1,21 @@
-{stdenv, fetchurl, tetex, polytable, ghc}:
+{cabal, tetex, polytable, regexCompat, utf8String}:
 
 assert tetex == polytable.tetex;
 
-stdenv.mkDerivation {
-  name = "lhs2tex-1.13";
-  
-  src = fetchurl {
-    url = "http://people.cs.uu.nl/andres/lhs2tex/lhs2tex-1.13.tar.gz";
-    sha256 = "28282cb4afcc71785b092d358ffb33f5ec7585e50b392ae4fb6391d495a0836b";
-  };
+cabal.mkDerivation (self : {
+  pname = "lhs2tex";
+  version = "1.14";
+  name = self.fname;
+  sha256 = "1667acce394a0d4852f8ad07fa85397e43873fd98a219db794e4773883288687";
+  extraBuildInputs = [tetex regexCompat utf8String];
+  propagatedBuildInputs = [polytable]; # automatically in user-env now with cabal
 
-  buildInputs = [tetex ghc];
-  propagatedBuildInputs = [polytable];
-  propagatedUserEnvPackages = [polytable];
+  configureFlags = ''--constraint=base<4'';
 
   postInstall = ''
     ensureDir "$out/share/doc/$name"
     cp doc/Guide2.pdf $out/share/doc/$name
     ensureDir "$out/nix-support"
-    echo "$propagatedUserEnvPackages" > $out/nix-support/propagated-user-env-packages
   '';
-
-  inherit tetex;
-}
+})
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c8d51cd5cf2fb..5b7a4fee6b048 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -157,7 +157,7 @@ let
       abort ("Unknown option specified: " + result))
     else x);
 
-  builderDefs = composedArgsAndFun (import ./builder-defs.nix) {
+  builderDefs = composedArgsAndFun (import ../build-support/builder-defs/builder-defs.nix) {
     inherit stringsWithDeps lib stdenv writeScript fetchurl;
   };
 
@@ -248,13 +248,6 @@ let
     inherit stdenv darcs nix;
   };
 
-  # only temporarely  / don't know yet wether it's save to switch
-  # but I have trouble getting HAppS repos
-  fetchdarcs2 = import ../build-support/fetchdarcs {
-    inherit stdenv nix;
-    darcs = darcs2;
-  };
-
   fetchsvn = import ../build-support/fetchsvn {
     inherit stdenv subversion openssh;
     sshSupport = true;
@@ -590,8 +583,8 @@ let
 
   docbook2x = import ../tools/typesetting/docbook2x {
     inherit fetchurl stdenv texinfo perl
-            perlXMLSAX perlXMLParser perlXMLNamespaceSupport
             gnused groff libxml2 libxslt makeWrapper;
+    inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
   };
 
   dosfstools = composedArgsAndFun (import ../tools/misc/dosfstools) {
@@ -882,10 +875,6 @@ let
     inherit fetchurl stdenv readline;
   };
 
-  lhs2tex = import ../tools/typesetting/lhs2tex {
-    inherit fetchurl stdenv ghc tetex polytable;
-  };
-
   libtorrent = import ../tools/networking/p2p/libtorrent {
     inherit fetchurl stdenv pkgconfig openssl libsigcxx;
   };
@@ -1156,7 +1145,7 @@ let
 
   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
     inherit python libsexy pkgconfig libxml2 pygtk;
-    inherit (gtkLibs) pango gtk glib; 
+    inherit (gtkLibs) pango gtk glib;
   };
 
   qhull = import ../development/libraries/qhull {
@@ -1326,6 +1315,10 @@ let
     inherit fetchurl stdenv ncurses;
   };
 
+  ttf2pt1 = import ../tools/misc/ttf2pt1 {
+    inherit fetchurl stdenv perl freetype;
+  };
+
   ucl = import ../development/libraries/ucl {
     inherit fetchurl stdenv;
   };
@@ -1374,10 +1367,6 @@ let
     wxGTK = wxGTK28;
   };
 
-  ttf2pt1 = import ../applications/msic/ttf2pt1 {
-    inherit fetchurl stdenv perl freetype;
-  };
-
   ttmkfdir = import ../tools/misc/ttmkfdir {
     inherit debPackage freetype fontconfig libunwind libtool bison;
     flex = flex2534;
@@ -1405,7 +1394,7 @@ let
   };
 
   wget = import ../tools/networking/wget {
-    inherit fetchurl stdenv gettext;
+    inherit fetchurl stdenv gettext openssl;
   };
 
   which = import ../tools/system/which {
@@ -1442,9 +1431,7 @@ let
   };
 
   xmltv = import ../tools/misc/xmltv {
-    inherit fetchurl perl perlTermReadKey perlXMLTwig perlXMLWriter
-      perlDateManip perlHTMLTree perlHTMLParser perlHTMLTagset
-      perlURI perlLWP;
+    inherit fetchurl perl perlPackages;
   };
 
   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
@@ -1534,11 +1521,6 @@ let
       };
   };
 
-  # Essential Haskell Compiler -- nix expression is work in progress
-  ehc = import ../development/compilers/ehc {
-    inherit fetchsvn stdenv coreutils m4 libtool ghc uulib uuagc llvm;
-  };
-
   adobeFlexSDK33 = import ../development/compilers/adobe-flex-sdk {
     inherit fetchurl stdenv unzip jre;
   };
@@ -1650,8 +1632,9 @@ let
 
   ghcsAndLibs =
     assert builtins ? listToAttrs;
-    recurseIntoAttrs (import ../development/compilers/ghcs {
-      inherit ghcboot fetchurl stdenv recurseIntoAttrs perl gnum4 gmp readline lib;
+    import ../development/compilers/ghcs {
+      ghcboot = ghc642Binary;
+      inherit fetchurl stdenv recurseIntoAttrs perl gnum4 gmp readline lib;
       inherit ghcPkgUtil ctags autoconf automake getConfig;
       inherit (ghc68executables) hasktags;
       inherit (bleedingEdgeRepos) sourceByName;
@@ -1659,7 +1642,7 @@ let
       # needed for install darcs ghc version
       happy = ghc68executables.happy;
       alex = ghc68executables.alex;
-    });
+    };
 
   # creates ghc-X-wl wich adds the passed libraries to the env var GHC_PACKAGE_PATH
   ghcWrapper = { ghcPackagedLibs ? false, ghc, libraries, name, suffix ? "ghc_wrapper_${ghc.name}" } :
@@ -1747,12 +1730,12 @@ let
 
 
   # Executables compiled by this ghc68 - I'm too lazy to add them all as additional file in here
-  ghc68executables = recurseIntoAttrs (import ../misc/ghc68executables {
+  ghc68executables = import ../misc/ghc68executables {
     inherit ghcCabalExecutableFun fetchurl lib bleedingEdgeRepos autoconf zlib getConfig;
-    inherit X11;
+    #inherit X11;
     inherit (xlibs) xmessage;
     inherit pkgs; # passing pkgs to add the possibility for the user to add his own executables. pkgs is passed.
-  });
+  };
 
   # the wrappers basically does one thing: It defines GHC_PACKAGE_PATH before calling ghc{i,-pkg}
   # So you can have different wrappers with different library combinations
@@ -1777,63 +1760,78 @@ let
       inherit ghc;
   };
 
-  # ghc66boot = import ../development/compilers/ghc-6.6-boot {
-  #  inherit fetchurl stdenv perl readline;
-  #  m4 = gnum4;
-  #};
-
-  ghc = ghc683;
+  #ghc = haskellPackages.ghc;
 
-  ghc682 = import ../development/compilers/ghc-6.8/ghc-6.8.2.nix {
-    inherit fetchurl stdenv readline perl gmp ncurses m4;
-    ghc = ghcboot;
-  };
+  ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
+    inherit fetchurl stdenv ncurses gmp;
+    readline = if stdenv.system == "i686-linux" then readline4 else readline;
+    perl = perl58;
+  });
 
-  ghc683 = import ../development/compilers/ghc-6.8/ghc-6.8.3.nix {
-    inherit fetchurl stdenv readline perl gmp ncurses m4;
-    ghc = ghcboot;
-    haddock = haddockboot;
-  };
+  ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
+    inherit fetchurl stdenv perl ncurses gmp libedit;
+  });
 
-  ghc69snapshot = lowPrio (import ../development/compilers/ghc-6.8/head.nix {
-    inherit fetchurl stdenv readline perl gmp ncurses m4 happy alex haskellEditline;
-    ghc = ghc683;
+  ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
+    inherit fetchurl stdenv perl ncurses gmp libedit;
   });
 
-  ghc661 = import ../development/compilers/ghc-6.6.1 {
-    inherit fetchurl stdenv readline perl58 gmp ncurses m4;
-    ghc = ghcboot;
+  haskellPackages = haskellPackages_ghc6102;
+
+  haskellPackages_ghc642 = import ./haskell-packages.nix {
+    inherit pkgs;
+    ghc = import ../development/compilers/ghc/6.4.2.nix {
+      inherit fetchurl stdenv perl ncurses readline m4 gmp;
+      ghc = ghc642Binary;
+    };
   };
 
-  ghc66 = import ../development/compilers/ghc-6.6 {
-    inherit fetchurl stdenv readline perl gmp ncurses m4;
-    ghc = ghcboot;
+  haskellPackages_ghc661 = import ./haskell-packages.nix {
+    inherit pkgs;
+    ghc = import ../development/compilers/ghc/6.6.1.nix {
+      inherit fetchurl stdenv readline perl58 gmp ncurses m4;
+      ghc = ghc642Binary;
+    };
   };
 
-  ghc64 = import ../development/compilers/ghc {
-    inherit fetchurl stdenv perl ncurses readline m4 gmp;
-    gcc = stdenv.gcc;
-    ghc = ghcboot;
+  haskellPackages_ghc682 = import ./haskell-packages.nix {
+    inherit pkgs;
+    ghc = import ../development/compilers/ghc/6.8.2.nix {
+      inherit fetchurl stdenv readline perl gmp ncurses m4;
+      ghc = ghc642Binary;
+    };
   };
+  
+  haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
+    inherit pkgs;
+    ghc = import ../development/compilers/ghc/6.8.3.nix {
+      inherit fetchurl stdenv readline perl gmp ncurses m4;
+      ghc = ghc642Binary;
+      haddock = import ../development/tools/documentation/haddock/boot.nix {
+        inherit gmp;
+        cabal = import ../development/libraries/haskell/cabal/cabal.nix {
+          inherit stdenv fetchurl;
+          ghc = ghc642Binary;
+        };
+      };
+    };
+  });
 
-  ghcboot = lowPrio (appendToName "boot" (import ../development/compilers/ghc/boot.nix {
-    inherit fetchurl stdenv ncurses gmp;
-    readline = if stdenv.system == "i686-linux" then readline4 else readline;
-    perl = perl58;
-  }));
+  haskellPackages_ghc6101 = recurseIntoAttrs (import ./haskell-packages.nix {
+    inherit pkgs;
+    ghc = import ../development/compilers/ghc/6.10.1.nix {
+      inherit fetchurl stdenv perl ncurses gmp libedit;
+      ghc = ghc6101Binary;
+    };
+  });
 
-  ghcboot610 = lowPrio (appendToName "boot" (import ../development/compilers/ghc/boot610.nix {
-    inherit fetchurl stdenv ncurses gmp editline makeWrapper;
-    # readline = if stdenv.system == "i686-linux" then readline4 else readline;
-    perl = perl58;
-  }));
-  /*
-  ghcWrapper = assert uulib.ghc == ghc;
-    import ../development/compilers/ghc-wrapper {
-      inherit stdenv ghc;
-      libraries = [];
+  haskellPackages_ghc6102 = recurseIntoAttrs (import ./haskell-packages.nix {
+    inherit pkgs;
+    ghc = import ../development/compilers/ghc/6.10.2.nix {
+      inherit fetchurl stdenv perl ncurses gmp libedit;
+      ghc = ghc6101Binary;
     };
-  */
+  });
 
   gprolog = import ../development/compilers/gprolog {
     inherit fetchurl stdenv;
@@ -1846,10 +1844,6 @@ let
     libstdcpp5 = gcc33.gcc;
   };
 
-  helium = import ../development/compilers/helium {
-    inherit fetchurl stdenv ghc;
-  };
-
   ikarus = builderDefsPackage (selectVersion ../development/compilers/ikarus "0.0.3") {
     inherit gmp;
   };
@@ -1919,7 +1913,7 @@ let
 
   monotone = import ../applications/version-management/monotone {
     inherit stdenv fetchurl boost zlib botan libidn pcre
-      sqlite; 
+      sqlite;
     lua = lua5;
   };
 
@@ -2002,7 +1996,7 @@ let
 
   metaBuildEnv = import ../development/compilers/meta-environment/meta-build-env {
     inherit fetchurl stdenv ;
-  }; 
+  };
 
   swiProlog = composedArgsAndFun (selectVersion ../development/compilers/swi-prolog "5.6.51") {
     inherit fetchurl stdenv;
@@ -2072,7 +2066,7 @@ let
   io = builderDefsPackage (import ../development/interpreters/io) {
     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
       libpng libtiff libjpeg readline libsndfile libxml2
-      freeglut e2fsprogs libsamplerate pcre libevent editline;
+      freeglut e2fsprogs libsamplerate pcre libevent libedit;
   };
 
   kaffe =  import ../development/interpreters/kaffe {
@@ -2251,7 +2245,7 @@ let
   */
 
   bleedingEdgeRepos = import ../development/misc/bleeding-edge-repos {
-    inherit getConfig fetchdarcs2 fetchurl lib;
+    inherit getConfig fetchurl lib;
   };
 
   ecj = import ../development/eclipse/ecj {
@@ -2274,10 +2268,6 @@ let
   ### DEVELOPMENT / TOOLS
 
 
-  alex = import ../development/tools/parsing/alex {
-    inherit cabal perl;
-  };
-
   antlr = import ../development/tools/parsing/antlr/2.7.7.nix {
     inherit fetchurl stdenv jdk python;
   };
@@ -2367,10 +2357,6 @@ let
     inherit fetchurl stdenv replace ncurses;
   };
 
-  cmakeUnstable = lowPrio (import ../development/tools/build-managers/cmake/2.6.3.nix {
-    inherit fetchurl stdenv replace ncurses;
-  });
-
   cproto = import ../development/tools/misc/cproto {
     inherit fetchurl stdenv flex bison;
   };
@@ -2436,10 +2422,6 @@ let
     inherit fetchurl stdenv yacc;
   };
 
-  frown = import ../development/tools/parsing/frown {
-    inherit fetchurl stdenv ghc;
-  };
-
   m4 = gnum4;
 
   gnum4 = import ../development/tools/misc/gnum4 {
@@ -2459,27 +2441,18 @@ let
     inherit fetchurl stdenv;
   };
 
-  # used to bootstrap ghc with
-  haddockboot = lowPrio (appendToName "boot" (import ../development/tools/documentation/haddock/boot.nix {
-    inherit gmp;
-    cabal = cabalboot;
-  }));
-
-  # old version of haddock, still more stable than 2.0
-  haddock09 = import ../development/tools/documentation/haddock/haddock-0.9.nix {
-    inherit cabal;
+  gtkdialog = import ../development/tools/misc/gtkdialog {
+    inherit fetchurl stdenv pkgconfig;
+    inherit (gtkLibs) gtk;
   };
 
-  # does not compile with ghc-6.8.3
-  haddock210 = lowPrio (import ../development/tools/documentation/haddock/haddock-2.1.0.nix {
-    cabal = cabal682;
-  });
-
+  /*
   hsc2hs = import ../development/tools/misc/hsc2hs {
     inherit bleedingEdgeRepos stdenv;
     ghc = ghcsAndLibs.ghc68.ghc;
     libs = with (ghc68extraLibs ghcsAndLibs.ghc68 // ghcsAndLibs.ghc68.core_libs); [ base directory process cabal_darcs ];
   };
+  */
 
   guileLint = import ../development/tools/guile/guile-lint {
     inherit fetchurl stdenv guile;
@@ -2490,22 +2463,14 @@ let
     inherit (gtkLibs) glib;
   };
 
-  /*
-  happy = import ../development/tools/parsing/happy {
-    inherit fetchurl stdenv perl ghc;
-  };
-  */
-
-  happy = import ../development/tools/parsing/happy/happy-1.17.nix {
-    inherit cabal perl;
-  };
-
   help2man = import ../development/tools/misc/help2man {
-    inherit fetchurl stdenv perl gettext perlLocaleGettext;
+    inherit fetchurl stdenv perl gettext;
+    inherit (perlPackages) LocaleGettext;
   };
 
   iconnamingutils = import ../development/tools/misc/icon-naming-utils {
-    inherit fetchurl stdenv perl perlXMLSimple;
+    inherit fetchurl stdenv perl;
+    inherit (perlPackages) XMLSimple;
   };
 
   indent = composedArgsAndFun (selectVersion ../development/tools/misc/indent "2.2.9") {
@@ -2575,6 +2540,14 @@ let
       inherit fetchurl stdenv;
     });
 
+  radare = import ../development/tools/analysis/radare {
+    inherit stdenv fetchurl pkgconfig libusb readline gtkdialog python
+      ruby libewf perl;
+    inherit (gtkLibs) gtk;
+    inherit (gnome) vte;
+    lua = lua5;
+  };
+
   ragel = import ../development/tools/parsing/ragel {
     inherit composableDerivation fetchurl transfig texLive;
   };
@@ -2635,10 +2608,6 @@ let
     inherit fetchurl stdenv;
   };
 
-  uuagc = import ../development/tools/haskell/uuagc {
-    inherit cabal uulib;
-  };
-
   gdb = import ../development/tools/misc/gdb {
     inherit fetchurl stdenv ncurses gmp mpfr texinfo;
     readline = readline5;
@@ -2751,7 +2720,7 @@ let
   boost_1_36_0 = import ../development/libraries/boost/1.36.0.nix {
     inherit fetchurl stdenv icu expat zlib bzip2 python;
   };
-  
+
   boost = makeOverridable (import ../development/libraries/boost/1.38.0.nix) {
     inherit fetchurl stdenv icu expat zlib bzip2 python;
   };
@@ -2873,10 +2842,6 @@ let
     inherit fetchurl stdenv perl;
   };
 
-  editline = import ../development/libraries/editline {
-    inherit fetchurl stdenv ncurses;
-  };
-
   enchant = selectVersion ../development/libraries/enchant "1.3.0" {
     inherit fetchurl stdenv aspell pkgconfig;
     inherit (gnome) glib;
@@ -3249,7 +3214,7 @@ let
   isocodes = import ../development/libraries/iso-codes {
     inherit stdenv fetchurl gettext python;
   };
-
+  
   jasper = import ../development/libraries/jasper {
     inherit fetchurl stdenv unzip xlibs libjpeg;
   };
@@ -3368,10 +3333,18 @@ let
     inherit fetchurl stdenv libdvdcss;
   };
 
+  libedit = import ../development/libraries/libedit {
+    inherit fetchurl stdenv ncurses;
+  };
+
   libevent = import ../development/libraries/libevent {
     inherit fetchurl stdenv;
   };
 
+  libewf = import ../development/libraries/libewf {
+    inherit fetchurl stdenv zlib openssl libuuid;
+  };
+
   libexif = import ../development/libraries/libexif {
     inherit fetchurl stdenv gettext;
   };
@@ -3512,6 +3485,11 @@ let
     inherit fetchurl stdenv zlib;
   };
 
+  libpseudo = import ../development/libraries/libpseudo {
+    inherit fetchurl stdenv pkgconfig ncurses;
+    inherit (gtkLibs) glib;
+  };
+
   /*libscdFun = lib.sumArgs (selectVersion ../development/libraries/libscd "0.4.2") {
     inherit stdenv fetchurl builderDefs libextractor perl pkgconfig;
   };
@@ -3573,6 +3551,11 @@ let
       libXinerama libXrandr randrproto libXtst;
   };
 
+  libviper = import ../development/libraries/libviper {
+    inherit fetchurl stdenv pkgconfig ncurses gpm;
+    inherit (gtkLibs) glib;
+  };
+
   libvorbis = import ../development/libraries/libvorbis {
     inherit fetchurl stdenv libogg;
   };
@@ -4135,2200 +4118,15 @@ let
   };
 
 
-  ### DEVELOPMENT / LIBRARIES / HASKELL
-
-  benchpress = import ../development/libraries/haskell/benchpress {
-    inherit cabal;
-  };
-
-  maybench = import ../development/libraries/haskell/maybench {
-    inherit cabal benchpress;
-  };
-
-  binary = import ../development/libraries/haskell/binary {
-    inherit cabal;
-  };
-
-  # cabal is a utility function to build cabal-based
-  # Haskell packages
-  cabal682 = import ../development/libraries/haskell/cabal/cabal.nix {
-    inherit stdenv fetchurl;
-    ghc = ghc682;
-  };
-
-  cabal683 = import ../development/libraries/haskell/cabal/cabal.nix {
-    inherit stdenv fetchurl;
-    ghc = ghc683;
-  };
-
-  cabalboot = import ../development/libraries/haskell/cabal/cabal.nix {
-    inherit stdenv fetchurl;
-    ghc = ghcboot;
-  };
-
-  cabal = cabal683;
-
-  Crypto = import ../development/libraries/haskell/Crypto {
-    inherit cabal;
-  };
-
-  gtk2hs = import ../development/libraries/haskell/gtk2hs {
-    inherit pkgconfig stdenv fetchurl cairo ghc;
-    inherit (gnome) gtk glib GConf libglade libgtkhtml gtkhtml;
-  };
-
-  haxr = import ../development/libraries/haskell/haxr {
-    inherit cabal HaXml HTTP;
-  };
-
-  haxr_th = import ../development/libraries/haskell/haxr-th {
-    inherit cabal haxr HaXml HTTP;
-  };
-
-  HaXml = import ../development/libraries/haskell/HaXml {
-    inherit cabal;
-  };
-
-  haskellEditline = import ../development/libraries/haskell/editline {
-    inherit cabal editline;
-  };
-
-  HDBC = import ../development/libraries/haskell/HDBC/HDBC-1.1.4.nix {
-    inherit cabal;
-  };
-
-  HDBCPostgresql = import ../development/libraries/haskell/HDBC/HDBC-postgresql-1.1.4.0.nix {
-    inherit cabal HDBC postgresql;
-  };
-
-  HDBCSqlite = import ../development/libraries/haskell/HDBC/HDBC-sqlite3-1.1.4.0.nix {
-    inherit cabal HDBC sqlite;
-  };
-
-  HTTP = import ../development/libraries/haskell/HTTP {
-    inherit cabal;
-  };
-
-  monadlab = import ../development/libraries/haskell/monadlab {
-    inherit cabal;
-  };
-
-  pcreLight = import ../development/libraries/haskell/pcre-light {
-    inherit cabal pcre;
-  };
-
-  uulib = import ../development/libraries/haskell/uulib {
-    inherit cabal;
-  };
-
-  wxHaskell = import ../development/libraries/haskell/wxHaskell {
-    inherit stdenv fetchurl unzip wxGTK ghc;
-  };
-
-  /*
-  wxHaskell68 = lowPrio (appendToName "ghc68" (import ../development/libraries/haskell/wxHaskell {
-    inherit stdenv fetchurl unzip wxGTK;
-    ghc = ghc68;
-  }));
-  */
-
-  X11 = import ../development/libraries/haskell/X11 {
-    inherit cabal;
-    inherit (xlibs) libX11 libXinerama libXext;
-    xineramaSupport = true;
-  };
-
-  vty = import ../development/libraries/haskell/vty {
-    inherit cabal;
-  };
-
-  zlibHaskell = import ../development/libraries/haskell/zlib {
-    inherit cabal zlib;
-  };
-
-
   ### DEVELOPMENT / PERL MODULES
 
   buildPerlPackage = import ../development/perl-modules/generic perl;
 
-  perlAlgorithmAnnotate = buildPerlPackage {
-    name = "Algorithm-Annotate-0.10";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/Algorithm-Annotate-0.10.tar.gz;
-      sha256 = "1y92k4nqkscfwpriv8q7c90rjfj85lvwq1k96niv2glk8d37dcf9";
-    };
-    propagatedBuildInputs = [perlAlgorithmDiff];
-  };
-
-  perlAlgorithmDiff = buildPerlPackage rec {
-    name = "Algorithm-Diff-1.1901";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TY/TYEMQ/${name}.zip";
-      sha256 = "0qk60fi49mpyvnfpjd2dzcmya8x3g5zfgb2hrnl7a5krn045g6i2";
-    };
-    buildInputs = [unzip];
-  };
-
-  perlAppCLI = buildPerlPackage {
-    name = "App-CLI-0.07";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/App-CLI-0.07.tar.gz;
-      sha256 = "000866qsm7jck3ini69b02sgbjwp6s297lsds002r7xk2wb6fqcz";
-    };
-    propagatedBuildInputs = [perlLocaleMaketextSimple];
-  };
-
-  perlAppConfig = buildPerlPackage {
-    name = "AppConfig-1.66";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AB/ABW/AppConfig-1.66.tar.gz;
-      sha256 = "1p1vs9px20lrq9mdwpzp309a8r6rchibsdmxang4krk90pi2sh4b";
-    };
-  };
-
-  perlArrayCompare = buildPerlPackage {
-    name = "Array-Compare-1.16";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DAVECROSS/Array-Compare-1.16.tar.gz;
-      sha256 = "1iwkn7d07a7vgl3jrv4f0glwapxcbdwwsy3aa6apgwam9119hl7q";
-    };
-  };
-
-  perlArchiveZip = buildPerlPackage {
-    name = "Archive-Zip-1.16";
-    src = fetchurl {
-      url = http://nixos.org/tarballs/Archive-Zip-1.16.tar.gz;
-      md5 = "e28dff400d07b1659d659d8dde7071f1";
-    };
-  };
-
-  perlBerkeleyDB = import ../development/perl-modules/BerkeleyDB {
-    inherit buildPerlPackage fetchurl db4;
-  };
-
-  perlBitVector = buildPerlPackage {
-    name = "Bit-Vector-6.4";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-6.4.tar.gz;
-      sha256 = "146vr78r6w3cxrm0ji491ylaa1abqh7fs81qhg15g3gzzxfg33bp";
-    };
-    propagatedBuildInputs = [perlCarpClan];
-  };
-
-  perlBoolean = buildPerlPackage rec {
-    name = "boolean-0.20";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
-      sha256 = "1xqhzy3m2r08my13alff9bzl8b6xgd68312834x0hf33yir3l1yn";
-    };
-  };
-
-  perlCacheFastMmap = buildPerlPackage {
-    name = "Cache-FastMmap-1.28";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.28.tar.gz;
-      sha256 = "1m851bz5025wy24mzsi1i8hdyg8bm7lszx9rnn47llsv6hb9v0da";
-    };
-  };
-
-  perlCaptchaReCAPTCHA = buildPerlPackage rec {
-    name = "Captcha-reCAPTCHA-0.92";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
-      sha256 = "1fm0fvdy9b7z8k1cyah2qbj0gqlv01chxmqmashwj16198yr7vrc";
-    };
-    propagatedBuildInputs = [perlHTMLTiny perlLWP];
-    buildInputs = [perlTestPod];
-  };
-
-  perlCarpAssert = buildPerlPackage rec {
-    name = "Carp-Assert-0.20";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/${name}.tar.gz";
-      sha256 = "1wzy4lswvwi45ybsm65zlq17rrqx84lsd7rajvd0jvd5af5lmlqd";
-    };
-  };
-
-  perlCarpAssertMore = buildPerlPackage rec {
-    name = "Carp-Assert-More-1.12";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "1m9k6z0m10s03x2hnc9mh5d4r8lnczm9bqd54jmnw0wzm4m33lyr";
-    };
-    propagatedBuildInputs = [perlTestException perlCarpAssert];
-  };
-
-  perlCarpClan = buildPerlPackage {
-    name = "Carp-Clan-6.00";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/J/JJ/JJORE/Carp-Clan-6.00.tar.gz;
-      sha256 = "0lbin4i0vzagcwkywpd5x4gz3a4ira4yn5g5v1ip0pbpyqnjk15h";
-    };
-    propagatedBuildInputs = [perlTestException];
-  };
-
-  perlCatalystActionRenderView = buildPerlPackage rec {
-    name = "Catalyst-Action-RenderView-0.09";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "06bxbdfjgnwp8zz4mqq2x7n5ng02h94m27l610icsps7r9iwi8f9";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlHTTPRequestAsCGI perlDataVisitor];
-  };
-
-  perlCatalystAuthenticationStoreDBIxClass = buildPerlPackage rec {
-    name = "Catalyst-Authentication-Store-DBIx-Class-0.1082";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JA/JAYK/${name}.tar.gz";
-      sha256 = "1rh5jwqw3fb16ll5id8z0igpqdwr0czi0xbaa2igalxr53hh2cni";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlCatalystPluginAuthentication perlCatalystModelDBICSchema
-    ];
-  };
-
-  perlCatalystComponentInstancePerContext = buildPerlPackage rec {
-    name = "Catalyst-Component-InstancePerContext-0.001001";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GR/GRODITI/${name}.tar.gz";
-      sha256 = "0wfj4vnn2cvk6jh62amwlg050p37fcwdgrn9amcz24z6w4qgjqvz";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlMoose];
-  };
-
-  perlCatalystControllerHTMLFormFu = buildPerlPackage rec {
-    name = "Catalyst-Controller-HTML-FormFu-0.03007";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CF/CFRANKS/${name}.tar.gz";
-      sha256 = "1vrd79d0nbqkana5q483fgsr41idlfgjhf7fpd3hc056z5nq8iyn";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlCatalystActionRenderView perlCatalystViewTT
-      perlCatalystPluginConfigLoader perlConfigGeneral
-      perlCatalystComponentInstancePerContext perlMoose
-      perlRegexpAssemble perlTestWWWMechanize
-      perlTestWWWMechanizeCatalyst perlHTMLFormFu
-    ];
-  };
-
-  perlCatalystDevel = buildPerlPackage rec {
-    name = "Catalyst-Devel-1.10";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "19ylkx55gaq9xxxcl4a55284in7hdrr2sb6lqz64daq3xp29n73h";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlCatalystActionRenderView
-      perlCatalystPluginStaticSimple perlCatalystPluginConfigLoader
-      perlPathClass perlTemplateToolkit perlClassAccessor
-      perlConfigGeneral perlFileCopyRecursive perlParent
-    ];
-  };
-
-  perlCatalystEngineHTTPPrefork = buildPerlPackage rec {
-    name = "Catalyst-Engine-HTTP-Prefork-0.50";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
-      sha256 = "1p8mnxqaxd6sxyy9q4f0h5gy4mcnvb3y93y49ziq6kmcvy6yw2p7";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlHTTPBody perlNetServer
-      perlCookieXS perlHTTPHeaderParserXS
-    ];
-    buildInputs = [perlTestPod perlTestPodCoverage];
-    patches = [
-      # Fix chunked transfers (they were missing the final CR/LF at
-      # the end, which makes curl barf).
-      ../development/perl-modules/catalyst-fix-chunked-encoding.patch
-    ];
-  };
-
-  perlCatalystManual = buildPerlPackage rec {
-    name = "Catalyst-Manual-5.7016";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HK/HKCLARK/${name}.tar.gz";
-      sha256 = "0axin80dca3xb0n7frn9w8lj43l7dykpwrf7jj44n1v1kyzw813f";
-    };
-    buildInputs = [perlTestPod perlTestPodCoverage];
-  };
-
-  perlCatalystModelDBICSchema = buildPerlPackage {
-    name = "Catalyst-Model-DBIC-Schema-0.23";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSTROUT/Catalyst-Model-DBIC-Schema-0.23.tar.gz;
-      sha256 = "1rzs4czrwr8pnrj0mvfpzc8i2cbw95rx2xirw9bhqs77z2722ym4";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlCatalystDevel perlDBIxClass
-      perlUNIVERSALrequire perlClassDataAccessor
-      perlDBIxClassSchemaLoader
-    ];
-  };
-
-  perlCatalystRuntime = buildPerlPackage rec{
-    name = "Catalyst-Runtime-5.71001";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "1j3xsh7zi5xd8zdc63r83mwzhjfj30vhd39kgir53mq47v0y07jr";
-    };
-    propagatedBuildInputs = [
-      perlLWP perlClassAccessor perlClassDataInheritable perlClassInspector
-      perlCGISimple perlDataDump perlFileModified perlHTTPBody perlHTTPRequestAsCGI
-      perlPathClass perlTextSimpleTable perlTreeSimple perlTreeSimpleVisitorFactory
-      perlSubExporter perlMROCompat perlTestMockObject perlClassMOP perlMoose
-      perlNamespaceClean perlScopeUpper perlMooseXEmulateClassAccessorFast
-      perlClassC3 perlClassC3AdoptNEXT
-    ];
-  };
-
-  perlCatalystPluginAuthentication = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Authentication-0.10010";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "1jjdmyccsq0k8ysl9ppm7rddf6w4l2yhwjr60c0x4lp5iafzmf4z";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlCatalystPluginSession];
-  };
-
-  perlCatalystPluginAuthorizationACL = buildPerlPackage {
-    name = "Catalyst-Plugin-Authorization-ACL-0.10";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.10.tar.gz;
-      sha256 = "1y9pj0scpc4nd7m1xqy7yvjsffhfadzl0z5r4jjv2srndcv4xj1p";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlClassThrowable];
-  };
-
-  perlCatalystPluginAuthorizationRoles = buildPerlPackage {
-    name = "Catalyst-Plugin-Authorization-Roles-0.07";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/B/BR/BRICAS/Catalyst-Plugin-Authorization-Roles-0.07.tar.gz;
-      sha256 = "07b8zc7b06p0fprjj68fk7rgh781r9s3q8dx045sk03w0fnk3b4b";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlCatalystPluginAuthentication
-      perlTestException perlSetObject perlUNIVERSALisa
-    ];
-  };
-
-  perlCatalystPluginConfigLoader = buildPerlPackage rec {
-    name = "Catalyst-Plugin-ConfigLoader-0.22";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BR/BRICAS/${name}.tar.gz";
-      sha256 = "13ir2l0pvjn4myp7wfh2bxcdd4hp0b3ln28mz1kvlshhxl032lqn";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlDataVisitor perlConfigAny perlMROCompat];
-  };
-
-  perlCatalystPluginHTMLWidget = buildPerlPackage {
-    name = "Catalyst-Plugin-HTML-Widget-1.1";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SR/SRI/Catalyst-Plugin-HTML-Widget-1.1.tar.gz;
-      sha256 = "1zzyfhmzlqvbwk2w930k3mqk8z1lzhrja9ynx9yfq5gmc8qqg95l";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlHTMLWidget];
-  };
-
-  perlCatalystPluginSession = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Session-0.20";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "1p72hf68qi038gayhsxbbx3l3hg7b1njjii510alxqyw3a10y9sj";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlTestMockObject perlObjectSignature
-      perlTestDeep perlMROCompat
-    ];
-  };
-
-  perlCatalystPluginSessionStateCookie = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Session-State-Cookie-0.10";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "1630shg23cpk6v26fwf7xr53ml1s6l2mgirxw524nmciliczgldj";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlCatalystPluginSession perlTestMockObject
-    ];
-  };
-
-  perlCatalystPluginSessionStoreFastMmap = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Session-Store-FastMmap-0.06";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/K/KA/KARMAN/${name}.tar.gz";
-      sha256 = "0by8w1zbp2802f9n3sqp0cmm2q0pwnycf0jgzvvv75riicq1m9pn";
-    };
-    propagatedBuildInputs = [
-      perlPathClass perlCatalystPluginSession perlCacheFastMmap
-    ];
-  };
-
-  perlCatalystPluginStackTrace = buildPerlPackage {
-    name = "Catalyst-Plugin-StackTrace-0.09";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSTROUT/Catalyst-Plugin-StackTrace-0.09.tar.gz;
-      sha256 = "1pywxjhvn5zmcpnxj9ba77pz1jxq4d037yd43y0ks9sc31p01ydh";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlDevelStackTrace];
-  };
-
-  perlCatalystPluginStaticSimple = buildPerlPackage {
-    name = "Catalyst-Plugin-Static-Simple-0.20";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AG/AGRUNDMA/Catalyst-Plugin-Static-Simple-0.20.tar.gz;
-      sha256 = "1qpicgfha81ykxzg4kjll2qw8b1rwzdgvj4s3q9s20zl86gmfr3p";
-    };
-    propagatedBuildInputs = [perlCatalystRuntime perlMIMETypes];
-  };
-
-  perlCatalystViewDownload = buildPerlPackage rec {
-    name = "Catalyst-View-Download-0.04";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GA/GAUDEON/${name}.tar.gz";
-      sha256 = "1d5ck28db6vbks7cwkj1qh0glhxskl3vymksv3izfzbk6xnjrabi";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlTestWWWMechanizeCatalyst perlTestUseOk
-      perlTextCSV
-    ];
-  };
-
-  perlCatalystViewTT = buildPerlPackage rec {
-    name = "Catalyst-View-TT-0.28";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "18chdzgv0fvq65kfp8am2f5cayxpzg355q7jin4xlzygbgh2a5vg";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlTemplateToolkit perlClassAccessor
-      perlPathClass perlTemplateTimer
-    ];
-  };
-
-  perlCGICookieXS = buildPerlPackage rec {
-    name = "CGI-Cookie-XS-0.16";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AG/AGENT/${name}.tar.gz";
-      sha256 = "1jrd3f11sz17117nvssrrf6r80fr412615n5ffspbsap4n816bnn";
-    };
-  };
-
-  perlCGISession = buildPerlPackage {
-    name = "CGI-Session-3.95";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SH/SHERZODR/CGI-Session-3.95.tar.gz;
-      md5 = "fe9e46496c7c711c54ca13209ded500b";
-    };
-  };
-
-  perlCGISimple = buildPerlPackage {
-    name = "CGI-Simple-1.106";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AN/ANDYA/CGI-Simple-1.106.tar.gz;
-      sha256 = "0r0wc2260jnnch7dv7f6ailjf5w8hpqm2w146flfcchcryfxjlpg";
-    };
-  };
-
-  perlClassAccessor = buildPerlPackage {
-    name = "Class-Accessor-0.31";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.31.tar.gz;
-      sha256 = "1a4v5qqdf9bipd6ba5n47mag0cmgwp97cid67i510aw96bcjrsiy";
-    };
-  };
-
-  perlClassAccessorChained = buildPerlPackage {
-    name = "Class-Accessor-Chained-0.01";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-0.01.tar.gz;
-      sha256 = "1lilrjy1s0q5hyr0888kf0ifxjyl2iyk4vxil4jsv0sgh39lkgx5";
-    };
-    propagatedBuildInputs = [perlClassAccessor];
-  };
-
-  perlClassAccessorGrouped = buildPerlPackage rec {
-    name = "Class-Accessor-Grouped-0.08003";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CL/CLACO/${name}.tar.gz";
-      sha256 = "0lvxj8fp79338p52ich0p7hi4gvvf572ks76g9kgkgfyqvmp732k";
-    };
-    propagatedBuildInputs = [perlClassInspector perlMROCompat];
-  };
-
-  perlClassAutouse = buildPerlPackage {
-    name = "Class-Autouse-1.99_02";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-1.99_02.tar.gz;
-      sha256 = "1jkhczx2flxrz154ps90fj9wcchkpmnp5sapwc0l92rpn7jpsf08";
-    };
-  };
-
-  perlClassC3 = buildPerlPackage rec {
-    name = "Class-C3-0.21";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
-    };
-  };
-
-  perlClassC3AdoptNEXT = buildPerlPackage rec {
-    name = "Class-C3-Adopt-NEXT-0.07";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-      sha256 = "1kxbdq10vicrbz3i6hvml3mma5x0r523gfdd649f9bvrsizb0jxj";
-    };
-    propagatedBuildInputs = [perlMROCompat perlTestException perlListMoreUtils];
-  };
-
-  perlClassC3Componentised = buildPerlPackage rec {
-    name = "Class-C3-Componentised-1.0004";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
-      sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
-    };
-    propagatedBuildInputs = [
-      perlClassC3 perlClassInspector perlTestException perlMROCompat
-    ];
-  };
-
-  perlClassDataAccessor = buildPerlPackage {
-    name = "Class-Data-Accessor-0.04004";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLACO/Class-Data-Accessor-0.04004.tar.gz;
-      sha256 = "0578m3rplk41059rkkjy1009xrmrdivjnv8yxadwwdk1vzidc8n1";
-    };
-  };
-
-  perlClassDataInheritable = buildPerlPackage {
-    name = "Class-Data-Inheritable-0.08";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz;
-      sha256 = "0jpi38wy5xh6p1mg2cbyjjw76vgbccqp46685r27w8hmxb7gwrwr";
-    };
-  };
-
-  perlClassFactoryUtil = buildPerlPackage rec {
-    name = "Class-Factory-Util-1.7";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "09ifd6v0c94vr20n9yr1dxgcp7hyscqq851szdip7y24bd26nlbc";
-    };
-  };
-
-  perlClassInspector = buildPerlPackage {
-    name = "Class-Inspector-1.23";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADAMK/Class-Inspector-1.23.tar.gz;
-      sha256 = "0d15b5wls14gqcd6v2k4kbc0v0a1qfb794h49wfc4vwjk5gnpbw1";
-    };
-  };
-
-  perlClassMOP = buildPerlPackage rec {
-    name = "Class-MOP-0.80";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1fmimzzbfkw7vrr57p8xa3y9v55i72bknix2qk3cdrn0jmg6h648";
-    };
-    propagatedBuildInputs = [
-      perlMROCompat perlTaskWeaken perlTestException perlSubName perlSubIdentify
-      perlDevelGlobalDestruction
-    ];
-  };
-
-  perlClassSingleton = buildPerlPackage rec {
-    name = "Class-Singleton-1.4";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AB/ABW/${name}.tar.gz";
-      sha256 = "0l4iwwk91wm2mrrh4irrn6ham9k12iah1ry33k0lzq22r3kwdbyg";
-    };
-  };
-
-  perlClassThrowable = buildPerlPackage {
-    name = "Class-Throwable-0.10";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STEVAN/Class-Throwable-0.10.tar.gz;
-      sha256 = "01hjrfb951c9j83ncg5drnam8vsfdgkjjv0kjshxhkl93sgnlvdl";
-    };
-  };
-
-  perlClassUnload = buildPerlPackage {
-    name = "Class-Unload-0.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.05.tar.gz;
-      sha256 = "01b0j10nxbz37xnnzw3hgmpfgq09mc489kq2d8f5nswsrlk75001";
-    };
-    propagatedBuildInputs = [perlClassInspector];
-  };
-
-  perlCompressRawBzip2 = import ../development/perl-modules/Compress-Raw-Bzip2 {
-    inherit fetchurl buildPerlPackage bzip2;
-  };
-
-  perlCompressRawZlib = import ../development/perl-modules/Compress-Raw-Zlib {
-    inherit fetchurl buildPerlPackage zlib;
-  };
-
-  perlCompressZlib = buildPerlPackage rec {
-    name = "Compress-Zlib-2.015";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
-      sha256 = "1k1i539fszhxay8yllh687sw06i68g8ikw51pvy1c84p3kg6yk4v";
-    };
-    propagatedBuildInputs = [
-      perlCompressRawZlib perlIOCompressBase perlIOCompressGzip
-    ];
-  };
-
-  perlConfigAny = buildPerlPackage {
-    name = "Config-Any-0.14";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/B/BR/BRICAS/Config-Any-0.14.tar.gz;
-      sha256 = "1vlr4w2m88figac5pblg6ppzrm11x2pm7r05n48s84cp4mizhim1";
-    };
-  };
-
-  perlConfigGeneral = buildPerlPackage {
-    name = "Config-General-2.40";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TL/TLINDEN/Config-General-2.40.tar.gz;
-      sha256 = "0wf6dpaanaiy0490dlgs3pi3xvvijs237x9izb00cnzggxcfmsnz";
-    };
-  };
-
-  perlconstant = buildPerlPackage {
-    name = "constant-1.15";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SAPER/constant-1.15.tar.gz;
-      sha256 = "1ygz0hd1fd3q88r6dlw14kpyh06zjprksdci7qva6skxz3261636";
-    };
-  };
-
-  perlCookieXS = buildPerlPackage rec {
-    name = "Cookie-XS-0.11";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AG/AGENT/${name}.tar.gz";
-      sha256 = "1616rcn2qn1cwiv3rxb8mq5fmwxpj4gya1lxxxq2w952h03p3fd3";
-    };
-    propagatedBuildInputs = [
-      perlTestMore perlCGICookieXS
-    ];
-  };
-
-  perlCryptCBC = buildPerlPackage rec {
-    name = "Crypt-CBC-2.30";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/L/LD/LDS/${name}.tar.gz";
-      sha256 = "0cvigpxvwn18kb5i40jlp5fgijbhncvlh23xdgs1cnhxa17yrgwx";
-    };
-  };
-
-  perlCryptDES = buildPerlPackage rec {
-    name = "Crypt-DES-2.05";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DP/DPARIS/${name}.tar.gz";
-      sha256 = "1w12k1b7868v3ql0yprswlz2qri6ja576k9wlda7b8zf2d0rxgmp";
-    };
-    buildInputs = [perlCryptCBC];
-  };
-
-  perlCryptPasswordMD5 = buildPerlPackage {
-    name = "Crypt-PasswdMD5-1.3";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/L/LU/LUISMUNOZ/Crypt-PasswdMD5-1.3.tar.gz;
-      sha256 = "13j0v6ihgx80q8jhyas4k48b64gnzf202qajyn097vj8v48khk54";
-    };
-  };
-
-  perlCryptSSLeay = buildPerlPackage rec {
-    name = "Crypt-SSLeay-0.57";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DL/DLAND/${name}.tar.gz";
-      sha256 = "1f0i5y99ly39vf86jpzwqz8mkz1460vryv85jgqmfx007p781s0l";
-    };
-    makeMakerFlags = "--lib=${openssl}/lib";
-  };
-
-  perlDataDump = buildPerlPackage {
-    name = "Data-Dump-1.11";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/Data-Dump-1.11.tar.gz;
-      sha256 = "0h5y40b6drgsf87nhwhqx1dprq70f98ibm03l9al4ndq7mrx97dd";
-    };
-  };
-
-  perlDataHierarchy = buildPerlPackage {
-    name = "Data-Hierarchy-0.34";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/Data-Hierarchy-0.34.tar.gz;
-      sha256 = "1vfrkygdaq0k7006i83jwavg9wgszfcyzbl9b7fp37z2acmyda5k";
-    };
-    propagatedBuildInputs = [perlTestException];
-  };
-
-  perlDataOptList = buildPerlPackage rec {
-    name = "Data-OptList-0.104";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "1k1qvf3ik2rn9mg65ginv3lyy6dlg1z08yddcnzbnizs8vbqqaxd";
-    };
-    propagatedBuildInputs = [perlSubInstall perlParamsUtil];
-  };
-
-  perlDataPage = buildPerlPackage {
-    name = "Data-Page-2.01";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/L/LB/LBROCARD/Data-Page-2.01.tar.gz;
-      sha256 = "0mvhlid9qx9yd94rgr4lfz9kvflimc1dzcah0x7q5disw39aqrzr";
-    };
-    propagatedBuildInputs = [perlTestException perlClassAccessorChained];
-  };
-
-  perlDataVisitor = buildPerlPackage {
-    name = "Data-Visitor-0.21";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/N/NU/NUFFIN/Data-Visitor-0.21.tar.gz;
-      sha256 = "10cjh3rrqi4gwrmkpzilzmaqdrh71wr59035s6b4p2dzd117p931";
-    };
-    propagatedBuildInputs = [
-      perlTestMockObject perlMouse perlTaskWeaken perlTestUseOk perlTieToObject
-      perlNamespaceClean
-    ];
-  };
-
-  perlDateCalc = buildPerlPackage {
-    name = "Date-Calc-5.4";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STBEY/Date-Calc-5.4.tar.gz;
-      sha256 = "1q7d1sy9ka1akpbysgwj673i7wiwb48yjv6wx1v5dhxllyxlxqc8";
-    };
-    propagatedBuildInputs = [perlCarpClan perlBitVector];
-  };
-
-  perlDateManip = buildPerlPackage {
-    name = "DateManip-5.54";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-5.54.tar.gz;
-      sha256 = "0ap2jgqx7yvjsyph9zsvadsih41cj991j3jwgz5261sq7q74y7xn";
-    };
-  };
-
-  perlDateTime = buildPerlPackage rec {
-    name = "DateTime-0.4501";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1hqhc4xfjgcc1r488gjbi498ws3pxiayabl46607lq02qddcv57s";
-    };
-    propagatedBuildInputs = [perlDateTimeLocale perlDateTimeTimeZone];
-  };
-
-  perlDateTimeFormatBuilder = buildPerlPackage rec {
-    name = "DateTime-Format-Builder-0.7901";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "08zl89gh5lkff8736fkdnrf6dgppsjbmymnysbc06s7igd4ig8zf";
-    };
-    propagatedBuildInputs = [
-      perlDateTime perlParamsValidate perlTaskWeaken perlDateTimeFormatStrptime
-      perlClassFactoryUtil
-    ];
-    buildInputs = [perlTestPod];
-  };
-
-  perlDateTimeFormatNatural = buildPerlPackage rec {
-    name = "DateTime-Format-Natural-0.74";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/${name}.tar.gz";
-      sha256 = "0hq33s5frfa8cpj2al7qi0sbmimm5sdlxf0h3b57fjm9x5arlkcn";
-    };
-    propagatedBuildInputs = [
-      perlDateTime perlListMoreUtils perlParamsValidate perlDateCalc
-      perlTestMockTime perlBoolean
-    ];
-  };
-
-  perlDateTimeFormatStrptime = buildPerlPackage rec {
-    name = "DateTime-Format-Strptime-1.0800";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RI/RICKM/${name}.tgz";
-      sha256 = "10vsmwlhnc62krsh5fm2i0ya7bgjgjsm6nmj56f0bfifjh57ya1j";
-    };
-    propagatedBuildInputs = [
-      perlDateTime perlDateTimeLocale perlDateTimeTimeZone perlParamsValidate
-    ];
-  };
-
-  perlDateTimeLocale = buildPerlPackage rec {
-    name = "DateTime-Locale-0.42";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1cvp9a4j6vy3xpbv6ipzcz1paw7gzal7lkrbm5ipiilji47d5gaw";
-    };
-    propagatedBuildInputs = [perlListMoreUtils perlParamsValidate];
-  };
-
-  perlDateTimeTimeZone = buildPerlPackage rec {
-    name = "DateTime-TimeZone-0.84";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "0jwbldr3x1cl2ibd9dcshdmpg6s5ddc4qiaxcxyqc82cq09ah2vs";
-    };
-    propagatedBuildInputs = [perlClassSingleton perlParamsValidate];
-  };
-
-  perlDBDSQLite = import ../development/perl-modules/DBD-SQLite {
-    inherit fetchurl buildPerlPackage perlDBI sqlite;
-  };
-
-  perlDBFile = import ../development/perl-modules/DB_File {
-    inherit fetchurl perl db4;
-  };
-
-  perlDBI = buildPerlPackage {
-    name = "DBI-1.607";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TI/TIMB/DBI-1.607.tar.gz;
-      sha256 = "053ysk2a4njhzq5p59v5s6jzyi0yqr8l6wkswbvy4fyil3ka343h";
-    };
-  };
-
-  perlDBIxClass = buildPerlPackage rec {
-    name = "DBIx-Class-0.08099_08";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
-      sha256 = "12kn3jylxi7n2c6ccqyrjaxxmk3lajvjv19j6rlifp4crn24cbpy";
-    };
-    propagatedBuildInputs = [
-      perlTestNoWarnings perlTestException perlDBI perlScopeGuard
-      perlPathClass perlClassInspector perlClassAccessorGrouped
-      perlCarpClan perlTestWarn perlDataPage perlSQLAbstract
-      perlSQLAbstractLimit perlClassC3 perlClassC3Componentised
-      perlModuleFind perlDBDSQLite perlJSONAny perlSubName
-    ];
-    buildInputs = [perlTestPod perlTestPodCoverage];
-  };
-
-  perlDBIxClassHTMLWidget = buildPerlPackage rec {
-    name = "DBIx-Class-HTMLWidget-0.16";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AN/ANDREMAR/${name}.tar.gz";
-      sha256 = "05zhniyzl31nq410ywhxm0vmvac53h7ax42hjs9mmpvf45ipahj1";
-    };
-    propagatedBuildInputs = [perlDBIxClass perlHTMLWidget];
-  };
-
-  perlDBIxClassSchemaLoader = buildPerlPackage rec {
-    name = "DBIx-Class-Schema-Loader-0.04999_06";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IL/ILMARI/${name}.tar.gz";
-      sha256 = "169ydwjarq6qk48jdxcn5ks8rx9aksk9fnx07gl5mz7banw5cs6y";
-    };
-    propagatedBuildInputs = [
-      perlDBI perlDBDSQLite perlDataDump perlUNIVERSALrequire
-      perlClassAccessor perlClassDataAccessor perlClassC3 perlCarpClan
-      perlClassInspector perlDBIxClass perlLinguaENInflectNumber
-      perlClassUnload
-    ];
-    doCheck = false; # disabled for now, since some tests fail
-  };
-
-  perlDevelGlobalDestruction = buildPerlPackage rec {
-    name = "Devel-GlobalDestruction-0.02";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NU/NUFFIN/${name}.tar.gz";
-      sha256 = "174m5dx2z89h4308gx6s6vmg93qzaq0bh9m91hp2vqbyialnarhw";
-    };
-    propagatedBuildInputs = [perlSubExporter perlScopeGuard];
-  };
-
-  perlDevelStackTrace = buildPerlPackage rec {
-    name = "Devel-StackTrace-1.20";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "15zh9gzhw6gv7l6sklp02pfmiiv8kwmmjsyvirppsca6aagy4603";
-    };
-  };
-
-  perlDevelSymdump = buildPerlPackage rec {
-    name = "Devel-Symdump-2.08";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AN/ANDK/${name}.tar.gz";
-      sha256 = "0qzj68zw1yypk8jw77h0w5sdpdcrp4xcmgfghcfyddjr2aim60x5";
-    };
-    propagatedBuildInputs = [
-      perlTestPod /* cyclic dependency: perlTestPodCoverage */
-    ];
-  };
-
-  perlDigestHMAC = buildPerlPackage {
-    name = "Digest-HMAC-1.01";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/Digest-HMAC-1.01.tar.gz;
-      sha256 = "042d6nknc5icxqsy5asrh8v2shmvg7b3vbj95jyk4sbqlqpacwz3";
-    };
-    propagatedBuildInputs = [perlDigestSHA1];
-  };
-
-  perlDigestSHA1 = buildPerlPackage {
-    name = "Digest-SHA1-2.11";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/Digest-SHA1-2.11.tar.gz;
-      md5 = "2449bfe21d6589c96eebf94dae24df6b";
-    };
-  };
-
-  perlEmailAddress = buildPerlPackage {
-    name = "Email-Address-1.888";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.888.tar.gz;
-      sha256 = "0c6b8djnmiy0niskrvywd6867xd1qmn241ffdwj957dkqdakq9yx";
-    };
-  };
-
-  perlEmailSend = buildPerlPackage {
-    name = "Email-Send-2.185";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Send-2.185.tar.gz;
-      sha256 = "0pbgnnbmv6z3zzqaiq1sdcv5d26ijhw4p8k8kp6ac7arvldblamz";
-    };
-    propagatedBuildInputs = [perlEmailSimple perlEmailAddress perlModulePluggable perlReturnValue];
-  };
-
-  perlEmailSimple = buildPerlPackage {
-    name = "Email-Simple-2.003";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.003.tar.gz;
-      sha256 = "0h8873pidhkqy7415s5sx8z614d0haxiknbjwrn65icrr2m0b8g6";
-    };
-  };
-
-  perlEmailValid = buildPerlPackage {
-    name = "Email-Valid-0.179";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Valid-0.179.tar.gz;
-      sha256 = "13yfjll63cp1y4xqzdcr1mjhfncn48v6hckk5mvwi47w3ccj934a";
-    };
-    propagatedBuildInputs = [perlMailTools perlNetDNS];
-    doCheck = false;
-  };
-
-  perlEncode = buildPerlPackage {
-    name = "Encode-2.25";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-2.25.tar.gz;
-      sha256 = "0prwmbg3xh1lqskianwrfrgasdfmz4kjm3qpdm27ay110jkk25ak";
-    };
-  };
-
-  perlExtUtilsInstall = buildPerlPackage {
-    name = "ExtUtils-Install-1.50";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/Y/YV/YVES/ExtUtils-Install-1.50.tar.gz;
-      sha256 = "18fr056fwnnhvgc646crx2p9mybf69mh5rkcphc7bbvahw9i61jy";
-    };
-    propagatedBuildInputs = [perlExtUtilsMakeMaker];
-  };
-
-  perlExtUtilsMakeMaker = buildPerlPackage {
-    name = "ExtUtils-MakeMaker-6.44";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-6.44.tar.gz;
-      sha256 = "0zyypnlmmyp06qbfdpc14rp5rj63066mjammn6rlcqz2iil9mpcj";
-    };
-  };
-
-  perlExtUtilsManifest = buildPerlPackage {
-    name = "ExtUtils-Manifest-1.53";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RK/RKOBES/ExtUtils-Manifest-1.53.tar.gz;
-      sha256 = "0xgfzivw0dfy29ydfjkg0c9mvlhjvlhc54s0yvbb4sxb2mdvrfkp";
-    };
-  };
-
-  perlFilechdir = buildPerlPackage {
-    name = "File-chdir-0.1002";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/File-chdir-0.1002.tar.gz;
-      sha256 = "1fc2l754bxsizli3injm4wqf8dn03iq16rmfn62l99nxpibl5k6p";
-    };
-  };
-
-  perlFileCopyRecursive = buildPerlPackage {
-    name = "File-Copy-Recursive-0.37";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.37.tar.gz;
-      sha256 = "12j0s01zwm67g4bcgbs0k61jwz59q1lndrnxyywxsz3xd30ki8rr";
-    };
-  };
-
-  perlFileModified = buildPerlPackage {
-    name = "File-Modified-0.07";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CO/CORION/File-Modified-0.07.tar.gz;
-      sha256 = "11zkg171fa5vdbyrbfcay134hhgyf4yaincjxwspwznrfmkpi49h";
-    };
-  };
-
-  perlFileShareDir = buildPerlPackage rec {
-    name = "File-ShareDir-1.00";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
-      sha256 = "1afr1r1ys2ij8i4r0i85hfrgrbvcha8c7cgkhcrdya1f0lnpw59z";
-    };
-    propagatedBuildInputs = [perlClassInspector perlParamsUtil];
-  };
-
-  perlFileTemp = buildPerlPackage {
-    name = "File-Temp-0.20";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TJ/TJENNESS/File-Temp-0.20.tar.gz;
-      sha256 = "0n7lr7mpdvwgznw469qdpdmac627a26wp615dkpzanc452skad4v";
-    };
-  };
-
-  perlFreezeThaw = buildPerlPackage {
-    name = "FreezeThaw-0.43";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.43.tar.gz;
-      sha256 = "1qamc5aggp35xk590a4hy660f2rhc2l7j65hbyxdya9yvg7z437l";
-    };
-  };
-
-  perlHTMLFormFu = buildPerlPackage rec {
-    name = "HTML-FormFu-0.03007";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CF/CFRANKS/${name}.tar.gz";
-      sha256 = "03lc4pvygp4wn9rsgdkbwk8zkh8x2z5vp8613c6q74imwrfmmfqy";
-    };
-    propagatedBuildInputs = [
-      perlClassAccessorChained perlClassC3 perlConfigAny
-      perlDateCalc perlListMoreUtils perlLWP perlEmailValid
-      perlDataVisitor perlDateTime perlDateTimeFormatBuilder
-      perlDateTimeFormatStrptime perlDateTimeFormatNatural
-      perlReadonly perlYAMLSyck perlRegexpCopy
-      perlHTMLTokeParserSimple perlTestNoWarnings perlRegexpCommon
-      perlCaptchaReCAPTCHA perlHTMLScrubber perlFileShareDir
-      perlTemplateToolkit perlCryptCBC perlCryptDES
-    ];
-  };
-
-  perlHTMLParser = buildPerlPackage {
-    name = "HTML-Parser-3.56";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-3.56.tar.gz;
-      sha256 = "0x1h42r54aq4yqpwi7mla4jzia9c5ysyqh8ir2nav833f9jm6g2h";
-    };
-    propagatedBuildInputs = [perlHTMLTagset];
-  };
-
-  perlHTMLScrubber = buildPerlPackage {
-    name = "HTML-Scrubber-0.08";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PO/PODMASTER/HTML-Scrubber-0.08.tar.gz;
-      sha256 = "0xb5zj67y2sjid9bs3yfm81rgi91fmn38wy1ryngssw6vd92ijh2";
-    };
-    propagatedBuildInputs = [perlHTMLParser];
-  };
-
-  perlHTMLTagset = buildPerlPackage {
-    name = "HTML-Tagset-3.10";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-3.10.tar.gz;
-      sha256 = "05k292qy7jzjlmmybis8nncpnwwa4jfkm7q3gq6866ydxrzds9xh";
-    };
-  };
-
-  perlHTMLTiny = buildPerlPackage rec {
-    name = "HTML-Tiny-1.03";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
-      sha256 = "1nc9vr0z699jwv8jaxxpkfhspiv7glhdp500hqyzdm2jxfw8azrg";
-    };
-  };
-
-  perlHTMLTokeParserSimple = buildPerlPackage rec {
-    name = "HTML-TokeParser-Simple-3.15";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OV/OVID/${name}.tar.gz";
-      sha256 = "0ii1ww17h7wps1lcj7bxrjbisa37f6cvlm0xxpgfq1s6iy06q05b";
-    };
-    propagatedBuildInputs = [perlHTMLParser perlSubOverride];
-    buildInputs = [perlTestPod];
-  };
-
-  perlHTMLTree = buildPerlPackage {
-    name = "HTML-Tree-3.23";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PE/PETEK/HTML-Tree-3.23.tar.gz;
-      sha256 = "1pn80f4g1wixs030f40b80wrj12kwfinwycrx3f10drg4v7ml5zm";
-    };
-    propagatedBuildInputs = [perlHTMLParser];
-  };
-
-  perlHTMLWidget = buildPerlPackage {
-    name = "HTML-Widget-1.11";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz;
-      sha256 = "02w21rd30cza094m5xs9clzw8ayigbhg2ddzl6jycp4jam0dyhmy";
-    };
-    propagatedBuildInputs = [
-      perlTestNoWarnings perlClassAccessor perlClassAccessorChained
-      perlClassDataAccessor perlModulePluggableFast perlHTMLTree
-      perlHTMLScrubber perlEmailValid perlDateCalc
-    ];
-  };
-
-  perlHTTPBody = buildPerlPackage rec {
-    name = "HTTP-Body-1.05";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
-      sha256 = "0s0496sb9l8jfkdx86vahwgdaaxrqb0j6acyww6nk0ajh82qrzfv";
-    };
-    propagatedBuildInputs = [perlLWP perlYAML];
-  };
-
-  perlHTTPHeaderParserXS = buildPerlPackage rec {
-    name = "HTTP-HeaderParser-XS-0.20";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MARKSMITH/${name}.tar.gz";
-      sha256 = "1vs6sw431nnlnbdy6jii9vqlz30ndlfwdpdgm8a1m6fqngzhzq59";
-    };
-  };
-
-  perlHTTPRequestAsCGI = buildPerlPackage {
-    name = "HTTP-Request-AsCGI-0.5";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-Request-AsCGI-0.5.tar.gz;
-      sha256 = "164159iiyk0waqayplchkisxg2ldamx8iifrccx32p344714qcrh";
-    };
-    propagatedBuildInputs = [perlClassAccessor perlLWP];
-  };
-
-  perlHTTPResponseEncoding = buildPerlPackage rec {
-    name = "HTTP-Response-Encoding-0.05";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/${name}.tar.gz";
-      sha256 = "04gdl633g0s2ckn7zixcma2krbpfcd46jngg155qpdx5sdwfkm16";
-    };
-    propagatedBuildInputs = [perlLWP];
-  };
-
-  perlHTTPServerSimple = buildPerlPackage rec {
-    name = "HTTP-Server-Simple-0.38";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JE/JESSE/${name}.tar.gz";
-      sha256 = "1m1lmpbg0zhiv2vyc3fyyqfsv3jhhb2mbdl5624fqb0va2pnla6n";
-    };
-    propagatedBuildInputs = [perlURI];
-    doCheck = false;
-  };
-
-  perlI18NLangTags = buildPerlPackage {
-    name = "I18N-LangTags-0.35";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SB/SBURKE/I18N-LangTags-0.35.tar.gz;
-      sha256 = "0idwfi7k8l44d9akpdj6ygdz3q8zxr690m18s7w23ms9d55bh3jy";
-    };
-  };
-
-  perlIOCompressBase = buildPerlPackage rec {
-    name = "IO-Compress-Base-2.015";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
-      sha256 = "10njlwa50mhs5nqws5yidfmmb7hwmwc6x06gk2vnpyn82g3szgqd";
-    };
-  };
-
-  perlIOCompressBzip2 = buildPerlPackage rec {
-    name = "IO-Compress-Bzip2-2.015";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
-      sha256 = "1kfksf2bslfkviry228p07m1ksnf06mh8gkmdpbrmlmxlbs2idnc";
-    };
-    propagatedBuildInputs = [perlIOCompressBase perlCompressRawBzip2];
-  };
-
-  perlIOCompressGzip = buildPerlPackage rec {
-    name = "IO-Compress-Zlib-2.015";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
-      sha256 = "0sbnx6xdryaajwpssrfgm5b2zasa4ri8pihqwsx3rm5kmkgzy9cx";
-    };
-    propagatedBuildInputs = [perlIOCompressBase perlCompressRawZlib];
-  };
-
-  perlIODigest = buildPerlPackage {
-    name = "IO-Digest-0.10";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.10.tar.gz;
-      sha256 = "1g6ilxqv2a7spf273v7k0721c6am7pwpjrin3h5zaqxfmd312nav";
-    };
-    propagatedBuildInputs = [perlPerlIOviadynamic];
-  };
-
-  perlIOPager = buildPerlPackage {
-    name = "IO-Pager-0.06.tgz";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-0.06.tgz;
-      sha256 = "0r3af4gyjpy0f7bhs7hy5s7900w0yhbckb2dl3a1x5wpv7hcbkjb";
-    };
-  };
-
-  perlIPCRun = buildPerlPackage rec {
-    name = "IPC-Run-0.82";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
-      sha256 = "1v5yfavvhxscqkdl68xs7i7vcp9drl3y1iawppzwqcl1fprd58ip";
-    };
-    doCheck = false; /* attempts a network connection to localhost */
-  };
-
-  perlJSON = buildPerlPackage {
-    name = "JSON-2.12";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-2.12.tar.gz;
-      sha256 = "0qbxfwvfsx8s50h2dzpb0z7qi22k9ghygfzbfk8v08kkpmrkls47";
-    };
-    propagatedBuildInputs = [perlJSONXS];
-  };
-
-  perlJSONAny = buildPerlPackage {
-    name = "JSON-Any-1.17";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RB/RBERJON/JSON-Any-1.17.tar.gz;
-      sha256 = "07y6zb0vzb4c87k2lflxafb69zc4a29bxhzh6xdcpjhplf4vbifb";
-    };
-    propagatedBuildInputs = [perlJSON];
-  };
-
-  perlJSONXS = buildPerlPackage {
-    name = "JSON-XS-2.23";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-2.23.tar.gz;
-      sha256 = "0yd1j5d9b0ymfzfaxyi9zgca3vqwjb3dl8pg14m1qwsx3pidd5j7";
-    };
-  };
-
-  perlLinguaENInflect = buildPerlPackage {
-    name = "Lingua-EN-Inflect-1.89";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.89.tar.gz;
-      sha256 = "1jvj67mvvfqxgxspmblay1c844vvhfwrviiarglkaw6phpg74rby";
-    };
-  };
-
-  perlLinguaENInflectNumber = buildPerlPackage {
-    name = "Lingua-EN-Inflect-Number-1.1";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SI/SIMON/Lingua-EN-Inflect-Number-1.1.tar.gz;
-      sha256 = "13hlr1srp9cd9mcc78snkng9il8iavvylfyh81iadvn2y7wikwfy";
-    };
-    propagatedBuildInputs = [perlLinguaENInflect];
-  };
-
-  perlListMoreUtils = buildPerlPackage {
-    name = "List-MoreUtils-0.22";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/V/VP/VPARSEVAL/List-MoreUtils-0.22.tar.gz;
-      sha256 = "1dv21xclh6r1cyy19r34xv2w6pc1jb5pwj7b2739m78xhlk8p55l";
-    };
-  };
-
-  perlLocaleGettext = buildPerlPackage {
-    name = "LocaleGettext-1.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.05.tar.gz;
-      sha256 = "15262a00vx714szpx8p2z52wxkz46xp7acl72znwjydyq4ypydi7";
-    };
-  };
-
-  perlLocaleMaketext = buildPerlPackage {
-    name = "Locale-Maketext-1.13";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/F/FE/FERREIRA/Locale-Maketext-1.13.tar.gz;
-      sha256 = "0qvrhcs1f28ix3v8hcd5xr4z9s7plz4g5a4q1cjp7bs0c3w2yl6z";
-    };
-    propagatedBuildInputs = [perlI18NLangTags];
-  };
-
-  perlLocaleMaketextLexicon = buildPerlPackage {
-    name = "Locale-Maketext-Lexicon-0.66";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Lexicon-0.66.tar.gz;
-      sha256 = "1cd2kbcrlyjcmlr7m8kf94mm1hlr7hpv1r80a596f4ljk81f2nvd";
-    };
-    propagatedBuildInputs = [perlLocaleMaketext];
-  };
-
-  perlLocaleMaketextSimple = buildPerlPackage {
-    name = "Locale-Maketext-Simple-0.18";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Simple-0.18.tar.gz;
-      sha256 = "14kx7vkxyfqndy90rzavrjp2346aidyc7x5dzzdj293qf8s4q6ig";
-    };
-  };
-
-  perlLWP = buildPerlPackage rec {
-    name = "libwww-perl-5.825";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GA/GAAS/${name}.tar.gz";
-      sha256 = "1wb7br1n86571xz19l20cc5ysy1lx3rhvlk02g5517919z3jxvhw";
-    };
-    propagatedBuildInputs = [perlURI perlHTMLParser perlHTMLTagset];
-  };
-
-  perlMailTools = buildPerlPackage {
-    name = "MailTools-2.04";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.04.tar.gz;
-      sha256 = "0w91rcrz4v0pjdnnv2mvlbrm9ww32f7ajhr7xkjdhhr3455p7adx";
-    };
-    propagatedBuildInputs = [perlTimeDate perlTestPod];
-  };
-
-  perlMIMETypes = buildPerlPackage {
-    name = "MIME-Types-1.24";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-1.24.tar.gz;
-      sha256 = "1j89kjv9lipv6r3bq6dp0k9b8y1f8z9vrmhi7b8h7cs1yc8g7qz9";
-    };
-    propagatedBuildInputs = [perlTestPod];
-  };
-
-  perlModuleBuild = buildPerlPackage {
-    name = "Module-Build-0.2808";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Module-Build-0.2808.tar.gz;
-      sha256 = "1h8zpf4g2n8v47l9apmdqbdgcg039g70w75hpn84m37pmqkbnj8v";
-    };
-    propagatedBuildInputs = [perlExtUtilsInstall perlExtUtilsManifest perlTestHarness];
-  };
-
-  perlModuleFind = buildPerlPackage {
-    name = "Module-Find-0.06";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.06.tar.gz;
-      sha256 = "1394jk0rn2zmchpl11kim69xh5h5yzg96jdlf76fqrk3dcn0y2ip";
-    };
-  };
-
-  perlMoose = buildPerlPackage rec {
-    name = "Moose-0.73";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1h1d551fbrsbr0knvcah4jyg999667ykhgbldl5rv4h7kdzsqsvz";
-    };
-    propagatedBuildInputs = [
-      perlTestMore perlTestException perlTaskWeaken perlListMoreUtils
-      perlClassMOP perlSubExporter
-    ];
-  };
-
-  perlMooseXEmulateClassAccessorFast = buildPerlPackage rec {
-    name = "MooseX-Emulate-Class-Accessor-Fast-0.00800";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GR/GRODITI/${name}.tar.gz";
-      sha256 = "1z2sld2sw1mlwxwzxxanik3086cw14rdsx2wwnzrfy7prsnigcl2";
-    };
-    propagatedBuildInputs = [perlMoose perlNamespaceClean];
-  };
-
-  perlMouse = buildPerlPackage {
-    name = "Mouse-0.09";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SARTAK/Mouse-0.09.tar.gz;
-      sha256 = "1akymbjim6w6i1q8h97izah26ndmcbnl1lwdsw9fa22hnhm0axg0";
-    };
-  };
-
-  perlMROCompat = buildPerlPackage {
-    name = "MRO-Compat-0.09";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/B/BL/BLBLACK/MRO-Compat-0.09.tar.gz;
-      sha256 = "16l37bxd5apax4kyvnadiplz8xmmx76y9pyq9iksqrv0d5rl5vl8";
-    };
-  };
-
-  perlNamespaceClean = buildPerlPackage {
-    name = "namespace-clean-0.08";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PH/PHAYLON/namespace-clean-0.08.tar.gz;
-      sha256 = "1jwc15zz1j6indqgz64l09ayg0db4gfaasq74x0vyi1yx3d9x2yx";
-    };
-    propagatedBuildInputs = [perlScopeGuard];
-  };
-
-  perlNetDNS = buildPerlPackage {
-    name = "Net-DNS-0.63";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/O/OL/OLAF/Net-DNS-0.63.tar.gz;
-      sha256 = "1pswrwhkav051xahm3k4cbyhi8kqpfmaz85lw44kwi2wc7mz4prk";
-    };
-    propagatedBuildInputs = [perlNetIP perlDigestHMAC];
-    doCheck = false;
-  };
-
-  perlNetIP = buildPerlPackage {
-    name = "Net-IP-1.25";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MA/MANU/Net-IP-1.25.tar.gz;
-      sha256 = "1iv0ka6d8kp9iana6zn51sxbcmz2h3mbn6cd8pald36q5whf5mjc";
-    };
-  };
-
-  perlNetServer = buildPerlPackage rec {
-    name = "Net-Server-0.97";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RH/RHANDOM/${name}.tar.gz";
-      sha256 = "13vhv13w06g6h6iqx440q1h6hwj0kpjdxcc3fl9crkwg5glygg2f";
-    };
-    doCheck = false; # seems to hang waiting for connections
-  };
-
-  perlObjectSignature = buildPerlPackage {
-    name = "Object-Signature-1.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADAMK/Object-Signature-1.05.tar.gz;
-      sha256 = "10k9j18jpb16brv0hs7592r7hx877290pafb8gnk6ydy7hcq9r2j";
-    };
-  };
-
-  perlParamsUtil = buildPerlPackage rec {
-    name = "Params-Util-0.37";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
-      sha256 = "1n36vhahbs2mfck5x6g8ab9280zji9zwc5092jiq78s791227cb6";
-    };
-  };
-
-  perlParamsValidate = buildPerlPackage rec {
-    name = "Params-Validate-0.91";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "1j0hx3pbfdyggbhrawa9k0wdm6lln3zdkrhjrdg1hzzf6csrlc1v";
-    };
-  };
-
-  perlParent = buildPerlPackage {
-    name = "parent-0.221";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CO/CORION/parent-0.221.tar.gz;
-      sha256 = "17jhscpa5p5szh1173pd6wvh2m05an1l941zqq9jkw9bzgk12hm0";
-    };
-  };
-
-  perlPathClass = buildPerlPackage {
-    name = "Path-Class-0.16";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.16.tar.gz;
-      sha256 = "0zisxkj58jm84fwcssmdq8g6n37s33v5h7j28m12sbkqib0h76gc";
-    };
-  };
-
-  perlPerl5lib = buildPerlPackage rec {
-    name = "perl5lib-1.02";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NO/NOBULL/${name}.tar.gz";
-      sha256 = "1b6fgs8wy2a7ff8rr1qdvdghhvlpr1pv760k4i2c8lq1hhjnkf94";
-    };
-  };
-
-  perlPerlIOeol = buildPerlPackage {
-    name = "PerlIO-eol-0.14";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AU/AUDREYT/PerlIO-eol-0.14.tar.gz;
-      sha256 = "1rwj0r075jfvvd0fnzgdqldc7qdb94wwsi21rs2l6yhcv0380fs2";
-    };
-  };
-
-  perlPerlIOviadynamic = buildPerlPackage {
-    name = "PerlIO-via-dynamic-0.12";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-dynamic-0.12.tar.gz;
-      sha256 = "140hay9q8q9sz1fa2s57ijp5l2448fkcg7indgn6k4vc7yshmqz2";
-    };
-  };
-
-  perlPerlIOviasymlink = buildPerlPackage {
-    name = "PerlIO-via-symlink-0.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-symlink-0.05.tar.gz;
-      sha256 = "0lidddcaz9anddqrpqk4zwm550igv6amdhj86i2jjdka9b1x81s1";
-    };
-  };
-
-  perlModulePluggable = buildPerlPackage {
-    name = "Module-Pluggable-3.5";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-3.5.tar.gz;
-      sha256 = "08rywi79pqn2c8zr17fmd18lpj5hm8lxd1j4v2k002ni8vhl43nv";
-    };
-    patches = [
-      # !!! merge this patch into Perl itself (which contains Module::Pluggable as well)
-      ../development/perl-modules/module-pluggable.patch
-    ];
-  };
-
-  perlModulePluggableFast = buildPerlPackage {
-    name = "Module-Pluggable-Fast-0.18";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SR/SRI/Module-Pluggable-Fast-0.18.tar.gz;
-      sha256 = "140c311x2darrc2p1drbkafv7qwhzdcff4ad300n6whsx4dfp6wr";
-    };
-    propagatedBuildInputs = [perlUNIVERSALrequire];
-  };
-
-  perlPodCoverage = buildPerlPackage rec {
-    name = "Pod-Coverage-0.19";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RC/RCLAMP/${name}.tar.gz";
-      sha256 = "1krsz4zwmnmq3z29p5vmyr5fdzrn8v0sg6rf3qxk7xpxw4z5np84";
-    };
-    propagatedBuildInputs = [perlDevelSymdump];
-  };
-
-  perlPodEscapes = buildPerlPackage {
-    name = "Pod-Escapes-1.04";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SB/SBURKE/Pod-Escapes-1.04.tar.gz;
-      sha256 = "1wrg5dnsl785ygga7bp6qmakhjgh9n4g3jp2l85ab02r502cagig";
-    };
-  };
-
-  perlPodSimple = buildPerlPackage {
-    name = "Pod-Simple-3.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AR/ARANDAL/Pod-Simple-3.05.tar.gz;
-      sha256 = "1j0kqcvr9ykcqlkr797j1npkbggykb3p4w5ri73s8mi163lzxkqb";
-    };
-    propagatedBuildInputs = [perlconstant perlPodEscapes];
-  };
-
-  perlReadonly = buildPerlPackage rec {
-    name = "Readonly-1.03";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RO/ROODE/${name}.tar.gz";
-      sha256 = "1shkyxajh6l87nif47ygnfxjwvqf3d3kjpdvxaff4957vqanii2k";
-    };
-  };
-
-  perlRegexpAssemble = buildPerlPackage rec {
-    name = "Regexp-Assemble-0.34";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DL/DLAND/${name}.tar.gz";
-      sha256 = "173dnzi3dag88afr4xf5v0hki15cfaffyjimjfmvzv6gbx6fp96f";
-    };
-  };
-
-  perlRegexpCommon = buildPerlPackage rec {
-    name = "Regexp-Common-2.122";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AB/ABIGAIL/${name}.tar.gz";
-      sha256 = "1mi411nfsx58nfsgjsbyck50x9d0yfvwqpw63iavajlpx1z38n8r";
-    };
-  };
-
-  perlRegexpCopy = buildPerlPackage rec {
-    name = "Regexp-Copy-0.06";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JD/JDUNCAN/${name}.tar.gz";
-      sha256 = "09c8xb43p1s6ala6g4274az51mf33phyjkp66dpvgkgbi1xfnawp";
-    };
-  };
-
-  perlReturnValue = buildPerlPackage {
-    name = "Return-Value-1.302";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.302.tar.gz;
-      sha256 = "0hf5rmfap49jh8dnggdpvapy5r4awgx5hdc3acc9ff0vfqav8azm";
-    };
-  };
-
-  perlScopeGuard = buildPerlPackage {
-    name = "Scope-Guard-0.03";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.03.tar.gz;
-      sha256 = "07x966fkqxlwnngxs7a2jrhabh8gzhjfpqq56n9gkwy7f340sayb";
-    };
-  };
-
-  perlScopeUpper = buildPerlPackage rec {
-    name = "Scope-Upper-0.06";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/V/VP/VPIT/${name}.tar.gz";
-      sha256 = "1qaf310wbfpjb0lmg3fpmhbfnjxqw3j47rj0w0f0cy4bgihi8l43";
-    };
-  };
-
-  perlSetObject = buildPerlPackage {
-    name = "Set-Object-1.26";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SAMV/Set-Object-1.26.tar.gz;
-      sha256 = "1hx3wrw8xkvaggacc8zyn86hfi3079ahmia1n8vsw7dglp1bbhmj";
-    };
-  };
-
-  perlSQLAbstract = buildPerlPackage rec {
-    name = "SQL-Abstract-1.51";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
-      sha256 = "1q77yfdrkadf738zvdgarkv0136zs2shz3fdmwaaf03bhvhcbap2";
-    };
-    propagatedBuildInputs = [
-      perlTestDeep perlTestException perlTestWarn
-    ];
-  };
-
-  perlSQLAbstractLimit = buildPerlPackage rec {
-    name = "SQL-Abstract-Limit-0.141";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DAVEBAIRD/${name}.tar.gz";
-      sha256 = "1qqh89kz065mkgyg5pjcgbf8qcpzfk8vf1lgkbwynknadmv87zqg";
-    };
-    propagatedBuildInputs = [
-      perlSQLAbstract perlTestException perlDBI perlTestDeep
-    ];
-    buildInputs = [perlTestPod perlTestPodCoverage];
-  };
-
-  perlStringMkPasswd = buildPerlPackage {
-    name = "String-MkPasswd-0.02";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.02.tar.gz;
-      sha256 = "0si4xfgf8c2pfag1cqbr9jbyvg3hak6wkmny56kn2qwa4ljp9bk6";
-    };
-  };
-
-  perlSubExporter = buildPerlPackage rec {
-    name = "Sub-Exporter-0.982";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "0xf8q05k5xs3bw6qy3pnnl5d670njxsxbw2dprl7n50hf488cbvj";
-    };
-    propagatedBuildInputs = [perlSubInstall perlDataOptList perlParamsUtil];
-  };
-
-  perlSubIdentify = buildPerlPackage rec {
-    name = "Sub-Identify-0.04";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RG/RGARCIA/${name}.tar.gz";
-      sha256 = "16g4dkmb4h5hh15jsq0kvsf3irrlrlqdv7qk6605wh5gjjwbcjxy";
-    };
-  };
-
-  perlSubInstall = buildPerlPackage rec {
-    name = "Sub-Install-0.925";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "1sccc4nwp9y24zkr42ww2gwg6zwax4madi9spsdym1pqna3nwnm6";
-    };
-  };
-
-  perlSubName = buildPerlPackage {
-    name = "Sub-Name-0.04";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/X/XM/XMATH/Sub-Name-0.04.tar.gz;
-      sha256 = "1nlin0ag2krpmiyapp3lzb6qw2yfqvqmx57iz5zwbhr4pyi46bhb";
-    };
-  };
-
-  perlSubOverride = buildPerlPackage rec {
-    name = "Sub-Override-0.08";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OV/OVID/${name}.tar.gz";
-      sha256 = "13s5zi6qz02q50vv4bmwdmhn9gvg0988fydjlrrv500g6hnyzlkj";
-    };
-    propagatedBuildInputs = [perlSubUplevel perlTestException];
-  };
-
-  perlSubUplevel = buildPerlPackage {
-    name = "Sub-Uplevel-0.2002";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2002.tar.gz;
-      sha256 = "19b2b9xsw7lvvkcmmnhhv8ybxdkbnrky9nnqgjridr108ww9m5rh";
-    };
-  };
-
-  perlSVK = buildPerlPackage {
-    name = "SVK-v2.0.2";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/SVK-v2.0.2.tar.gz;
-      sha256 = "0c4m2q7cvzwh9kk1nc1vd8lkxx2kss5nd4k20dpkal4c7735jns0";
-    };
-    propagatedBuildInputs = [perlAlgorithmDiff perlAlgorithmAnnotate perlAppCLI perlClassDataInheritable perlDataHierarchy perlEncode perlFileTemp perlIODigest perlListMoreUtils perlPathClass perlPerlIOeol perlPerlIOviadynamic perlPerlIOviasymlink perlPodEscapes perlPodSimple perlSVNMirror perlTimeHiRes perlUNIVERSALrequire perlURI perlYAMLSyck perlClassAutouse perlIOPager perlLocaleMaketextLexicon perlFreezeThaw];
-  };
-
-  perlSVNMirror = buildPerlPackage {
-    name = "SVN-Mirror-0.73";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/SVN-Mirror-0.73.tar.gz;
-      sha256 = "1scjaq7qjz6jlsk1c2l5q15yxf0sqbydvf22mb2xzy1bzaln0x2c";
-    };
-    propagatedBuildInputs = [perlClassAccessor perlFilechdir subversion perlURI perlTermReadKey perlTimeDate perlSVNSimple];
-  };
-
-  perlSVNSimple = buildPerlPackage {
-    name = "SVN-Simple-0.27";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/SVN-Simple-0.27.tar.gz;
-      sha256 = "0p7p52ja6sf4j0w3b05i0bbqi5wiambckw2m5dsr63bbmlhv4a71";
-    };
-    propagatedBuildInputs = [subversion];
-  };
-
-  perlTaskCatalystTutorial = buildPerlPackage rec {
-    name = "Task-Catalyst-Tutorial-0.06";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
-      sha256 = "07nn8a30n3qylpnf7s4ma6w462g31pywwikib117hr2mc7cv5cbm";
-    };
-    propagatedBuildInputs = [
-      perlCatalystManual perlCatalystRuntime perlCatalystDevel
-      perlCatalystPluginSession perlCatalystPluginAuthentication
-      perlCatalystAuthenticationStoreDBIxClass
-      perlCatalystPluginAuthorizationRoles
-      perlCatalystPluginAuthorizationACL
-      perlCatalystPluginHTMLWidget
-      perlCatalystPluginSessionStoreFastMmap
-      perlCatalystPluginStackTrace
-      perlCatalystViewTT
-      perlDBIxClass perlDBIxClassHTMLWidget
-      perlCatalystControllerHTMLFormFu
-    ];
-    buildInputs = [perlTestPodCoverage];
-  };
-
-  perlTaskWeaken = buildPerlPackage {
-    name = "Task-Weaken-1.02";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADAMK/Task-Weaken-1.02.tar.gz;
-      sha256 = "10f9kd1lwbscmmjwgbfwa4kkp723mb463lkbmh29rlhbsl7kb5wz";
-    };
-  };
-
-  perlTemplateTimer = buildPerlPackage {
-    name = "Template-Timer-0.04";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PE/PETDANCE/Template-Timer-0.04.tar.gz;
-      sha256 = "0j0gmxbq1svp0rb4kprwj2fk2mhl07yah08bksfz0a0pfz6lsam4";
-    };
-    propagatedBuildInputs = [perlTemplateToolkit];
-  };
-
-  perlTemplateToolkit = buildPerlPackage {
-    name = "Template-Toolkit-2.20";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-2.20.tar.gz;
-      sha256 = "13wbh06a76k4ag14lhszmpwv4hb8hlj1d9glizhp8izazl3xf1zg";
-    };
-    propagatedBuildInputs = [perlAppConfig];
-    patches = [
-      # Needed to make TT works properly on templates in the Nix store.
-      ../development/perl-modules/template-toolkit-nix-store.patch
-    ];
-  };
-
-  perlTermReadKey = buildPerlPackage {
-    name = "TermReadKey-2.30";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz;
-      md5 = "f0ef2cea8acfbcc58d865c05b0c7e1ff";
-    };
-  };
-
-  perlTestDeep = buildPerlPackage {
-    name = "Test-Deep-0.103";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/F/FD/FDALY/Test-Deep-0.103.tar.gz;
-      sha256 = "0cdl08k5v0wc9w20va5qw98ynlbs9ifwndgsix8qhi7h15sj8a5j";
-    };
-    propagatedBuildInputs = [perlTestTester perlTestNoWarnings];
-  };
-
-  perlTestException = buildPerlPackage {
-    name = "Test-Exception-0.27";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADIE/Test-Exception-0.27.tar.gz;
-      sha256 = "1s921j7yv2szywd1ffi6yz3ngrbq97f9dh38bvvajqnm29g1xb9j";
-    };
-    propagatedBuildInputs = [perlTestHarness perlTestSimple perlSubUplevel];
-  };
-
-  perlTestHarness = buildPerlPackage {
-    name = "Test-Harness-3.10";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/A/AN/ANDYA/Test-Harness-3.10.tar.gz;
-      sha256 = "1qd217yzppj1vbjhny06v8niqhz85pam996ry6bzi08z0jidr2wh";
-    };
-  };
-
-  perlTestLongString = buildPerlPackage rec {
-    name = "Test-LongString-0.11";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RG/RGARCIA/${name}.tar.gz";
-      sha256 = "0ln3117nfxzq7yxmfk77nnr7116inbjq4bf5v2p0hqlj4damx03d";
-    };
-  };
-
-  perlTestMockObject = buildPerlPackage {
-    name = "Test-MockObject-1.09";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHROMATIC/Test-MockObject-1.09.tar.gz;
-      sha256 = "1cz385x0jrkj84nmfs6qyzwwvv8m9v8r2isagfj1zxvhdw49wdyy";
-    };
-    propagatedBuildInputs = [perlTestException perlUNIVERSALisa perlUNIVERSALcan];
-  };
-
-  perlTestMockTime = buildPerlPackage rec {
-    name = "Test-MockTime-0.09";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DD/DDICK/${name}.tar.gz";
-      sha256 = "1j2riyikzyfkxsgkfdqirs7xa8q5d06b9klpk7l9sgydwqdvxdv3";
-    };
-  };
-
-  perlTestMore = perlTestSimple;
-
-  perlTestNoWarnings = buildPerlPackage {
-    name = "Test-NoWarnings-0.084";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/F/FD/FDALY/Test-NoWarnings-0.084.tar.gz;
-      sha256 = "19g47pa3brr9px3jnwziapvxcnghqqjjwxz1jfch4asawpdx2s8b";
-    };
-    propagatedBuildInputs = [perlTestTester];
-  };
-
-  perlTestPod = buildPerlPackage {
-    name = "Test-Pod-1.26";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PE/PETDANCE/Test-Pod-1.26.tar.gz;
-      sha256 = "025rviipiaa1rf0bp040jlwaxwvx48kdcjriaysvkjpyvilwvqd4";
-    };
-  };
-
-  perlTestPodCoverage = buildPerlPackage rec {
-    name = "Test-Pod-Coverage-1.08";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "0y2md932zhbxdjwzskx0vmw2qy7jxkn87f9lb5h3f3vxxg1kcqz0";
-    };
-    propagatedBuildInputs = [perlPodCoverage];
-  };
-
-  perlTestSimple = buildPerlPackage {
-    name = "Test-Simple-0.84";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Simple-0.84.tar.gz;
-      sha256 = "030j47q3p46jfk60dsh2d5m7ip4nqz0fl4inqr8hx8b8q0f00r4l";
-    };
-    propagatedBuildInputs = [perlTestHarness];
-  };
-
-  perlTestTester = buildPerlPackage {
-    name = "Test-Tester-0.107";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/F/FD/FDALY/Test-Tester-0.107.tar.gz;
-      sha256 = "0qgmsl6s6xm39211lywyzwrlz0gcmax7fb8zipybs9yxfmwcvyx2";
-    };
-  };
-
-  perlTestUseOk = buildPerlPackage rec {
-    name = "Test-use-ok-0.02";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AU/AUDREYT/${name}.tar.gz";
-      sha256 = "11inaxiavb35k8zwxwbfbp9wcffvfqas7k9idy822grn2sz5gyig";
-    };
-  };
-
-  perlTestWarn = buildPerlPackage {
-    name = "Test-Warn-0.11";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHORNY/Test-Warn-0.11.tar.gz;
-      sha256 = "1y9g13bzvjsmg5v555zrl7w085jq40a47hfs4gc3k78s0bkwxbyi";
-    };
-    propagatedBuildInputs = [perlTestSimple perlTestException perlArrayCompare perlTreeDAGNode];
-    buildInputs = [perlTestPod];
-  };
-
-  perlTestWWWMechanize = buildPerlPackage rec {
-    name = "Test-WWW-Mechanize-1.24";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "11knym5ppish78rk8r1hymvq1py43h7z8d6nk8p4ig3p246xx5qa";
-    };
-    propagatedBuildInputs = [
-      perlCarpAssertMore perlURI perlTestLongString perlWWWMechanize
-    ];
-    doCheck = false;
-  };
-
-  perlTestWWWMechanizeCatalyst = buildPerlPackage rec {
-    name = "Test-WWW-Mechanize-Catalyst-0.45";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/L/LB/LBROCARD/${name}.tar.gz";
-      sha256 = "0hixz0hibv2z87kdqvrphzgww0xibgg56w7bh299dgw2739hy4yf";
-    };
-    propagatedBuildInputs = [
-      perlCatalystRuntime perlTestWWWMechanize perlWWWMechanize
-      perlCatalystPluginSessionStateCookie
-    ];
-    buildInputs = [perlTestPod];
-    doCheck = false;
-  };
-
-  perlTextCSV = buildPerlPackage rec {
-    name = "Text-CSV-1.10";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/${name}.tar.gz";
-      sha256 = "0vb0093v3kk7iczb46zzdg7myfyjldwrk8wbk7ibk56gvj350f7c";
-    };
-  };
-
-  perlTextSimpleTable = buildPerlPackage {
-    name = "Text-SimpleTable-0.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SR/SRI/Text-SimpleTable-0.05.tar.gz;
-      sha256 = "028pdfmr2gnaq8w3iar8kqvrpxcghnag8ls7h4227l9zbxd1k9p9";
-    };
-  };
-
-  perlTieToObject = buildPerlPackage {
-    name = "Tie-ToObject-0.03";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz;
-      sha256 = "1x1smn1kw383xc5h9wajxk9dlx92bgrbf7gk4abga57y6120s6m3";
-    };
-    propagatedBuildInputs = [perlTestUseOk];
-  };
-
-  perlTimeDate = buildPerlPackage {
-    name = "TimeDate-1.16";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GB/GBARR/TimeDate-1.16.tar.gz;
-      sha256 = "1cvcpaghn7dc14m9871sfw103g3m3a00m2mrl5iqb0mmh40yyhkr";
-    };
-  };
-
-  perlTimeHiRes = buildPerlPackage {
-    name = "Time-HiRes-1.9715";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/J/JH/JHI/Time-HiRes-1.9715.tar.gz;
-      sha256 = "0pgqrfkysy3mdcx5nd0x8c80lgqb7rkb3nrkii3vc576dcbpvw0i";
-    };
-  };
-
-  perlTreeDAGNode = buildPerlPackage {
-    name = "Tree-DAG_Node-1.06";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CO/COGENT/Tree-DAG_Node-1.06.tar.gz;
-      sha256 = "0anvwfh4vqj41ipq52p65sqlvw3rvm6cla5hbws13gyk9mvp09ah";
-    };
-  };
-
-  perlTreeSimple = buildPerlPackage {
-    name = "Tree-Simple-1.18";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STEVAN/Tree-Simple-1.18.tar.gz;
-      sha256 = "0bb2hc8q5rwvz8a9n6f49kzx992cxczmrvq82d71757v087dzg6g";
-    };
-    propagatedBuildInputs = [perlTestException];
-  };
-
-  perlTreeSimpleVisitorFactory = buildPerlPackage {
-    name = "Tree-Simple-VisitorFactory-0.10";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STEVAN/Tree-Simple-VisitorFactory-0.10.tar.gz;
-      sha256 = "1ghcgnb3xvqjyh4h4aa37x98613aldnpj738z9b80p33bbfxq158";
-    };
-    propagatedBuildInputs = [perlTreeSimple];
-    buildInputs = [perlTestException];
-  };
-
-  perlFontTTF = buildPerlPackage {
-    name = "perl-Font-TTF-0.43";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MH/MHOSKEN/Font-TTF-0.43.tar.gz;
-      sha256 = "0782mj5n5a2qbghvvr20x51llizly6q5smak98kzhgq9a7q3fg89";
-    };
-  };
-
-  perlUNIVERSALcan = buildPerlPackage {
-    name = "UNIVERSAL-can-1.12";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.12.tar.gz;
-      sha256 = "1abadbgcy11cmlmj9qf1v73ycic1qhysxv5xx81h8s4p81alialr";
-    };
-  };
-
-  perlUNIVERSALisa = stdenv.mkDerivation rec {
-    name = "UNIVERSAL-isa-1.01";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/${name}.tar.gz";
-      sha256 = "0iksklmfhiaxg2rsw827n97k1mris6dg596rdwk2gmrwl0rsk0wz";
-    };
-    # Urgh, this package doesn't have a Makefile.PL.
-    buildInputs = [perl];
-    configurePhase = "perl Build.PL --prefix=$out";
-    buildPhase = "perl ./Build";
-    doCheck = true;
-    checkPhase = "perl ./Build test";
-    installPhase = "perl ./Build install";
-  };
-
-  perlUNIVERSALrequire = buildPerlPackage {
-    name = "UNIVERSAL-require-0.11";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSCHWERN/UNIVERSAL-require-0.11.tar.gz;
-      sha256 = "1rh7i3gva4m96m31g6yfhlqcabszhghbb3k3qwxbgx3mkf5s6x6i";
-    };
-  };
-
-  perlURI = buildPerlPackage rec {
-    name = "URI-1.37";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GA/GAAS/${name}.tar.gz";
-      sha256 = "0amwbss2gz00fkdfnfixf1afmqal1246xhmj27g5c0ny7ahcid0j";
-    };
-  };
-
-  perlW3CLinkChecker = buildPerlPackage rec {
-    name = "W3C-LinkChecker-4.5";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SC/SCOP/${name}.tar.gz";
-      sha256 = "0j2zlg57g0y9hqy8n35x5rfkpm7rnfjlwny5g0zaxwrl62ndkbm9";
-    };
-    propagatedBuildInputs = [
-      perlLWP perlConfigGeneral perlNetIP perlTermReadKey perlPerl5lib
-      perlCryptSSLeay
-    ];
-    meta = {
-      homepage = http://validator.w3.org/checklink;
-      description = "A tool to check links and anchors in Web pages or full Web sites";
-    };
-  };
-
-  perlWWWMechanize = buildPerlPackage rec {
-    name = "WWW-Mechanize-1.54";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "1yxvw5xfng5fj4422869p5dwvmrkmqph9gdm2nl12wngydk93lnh";
-    };
-    propagatedBuildInputs = [perlLWP perlHTTPResponseEncoding perlHTTPServerSimple];
-    doCheck = false;
-  };
-
-  perlXMLDOM = buildPerlPackage {
-    name = "XML-DOM-1.44";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-1.44.tar.gz;
-      sha256 = "1r0ampc88ni3sjpzr583k86076qg399arfm9xirv3cw49k3k5bzn";
-    };
-    #buildInputs = [libxml2];
-    propagatedBuildInputs = [perlXMLRegExp perlXMLParser perlLWP];
-  };
-
-  perlXMLLibXML = buildPerlPackage {
-    name = "XML-LibXML-1.66";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PA/PAJAS/XML-LibXML-1.66.tar.gz;
-      sha256 = "1a0bdiv3px6igxnbbjq10064iahm8f5i310p4y05w6zn5d51awyl";
-    };
-    buildInputs = [libxml2];
-    propagatedBuildInputs = [perlXMLLibXMLCommon perlXMLSAX];
-  };
-
-  perlXMLLibXMLCommon = buildPerlPackage {
-    name = "XML-LibXML-Common-0.13";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/P/PH/PHISH/XML-LibXML-Common-0.13.tar.gz;
-      md5 = "13b6d93f53375d15fd11922216249659";
-    };
-    buildInputs = [libxml2];
-  };
-
-  perlXMLNamespaceSupport = buildPerlPackage {
-    name = "XML-NamespaceSupport-1.09";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/R/RB/RBERJON/XML-NamespaceSupport-1.09.tar.gz;
-      sha256 = "0ny2i4pf6j8ggfj1x02rm5zm9a37hfalgx9w9kxnk69xsixfwb51";
-    };
-    buildInputs = [];
-  };
-
-  perlXMLParser = buildPerlPackage {
-    name = "XML-Parser-2.36";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz;
-      sha256 = "0gyp5qfbflhkin1zv8l6wlkjwfjvsf45a3py4vc6ni82fj32kmcz";
-    };
-    makeMakerFlags = "EXPATLIBPATH=${expat}/lib EXPATINCPATH=${expat}/include";
-  };
-
-  perlXMLRegExp = buildPerlPackage {
-    name = "XML-RegExp-0.03";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.03.tar.gz;
-      sha256 = "1gkarylvdk3mddmchcwvzq09gpvx5z26nybp38dg7mjixm5bs226";
-    };
-  };
-
-  perlXMLSAX = buildPerlPackage {
-    name = "XML-SAX-0.96";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-0.96.tar.gz;
-      sha256 = "024fbjgg6s87j0y3yik55plzf7d6qpn7slwd03glcb54mw9zdglv";
-    };
-    propagatedBuildInputs = [perlXMLNamespaceSupport];
-  };
-
-  perlXMLSimple = buildPerlPackage {
-    name = "XML-Simple-2.18";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.18.tar.gz;
-      sha256 = "09k8fvc9m5nd5rqq00rwm3m0wx7iwd6vx0vc947y58ydi30nfjd5";
-    };
-    propagatedBuildInputs = [perlXMLParser];
-  };
-
-  perlXMLTwig = buildPerlPackage {
-    name = "XML-Twig-3.32";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIROD/XML-Twig-3.32.tar.gz;
-      sha256 = "07zdsfzw9dlrx6ril9clf1jfif09vpf27rz66laja7mvih9izd1v";
-    };
-    propagatedBuildInputs = [perlXMLParser];
-  };
-
-  perlXMLWriter = buildPerlPackage {
-    name = "XML-Writer-0.602";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.602.tar.gz;
-      sha256 = "0kdi022jcn9mwqsxy2fiwl2cjlid4x13r038jvi426fhjknl11nl";
-    };
-  };
-
-  perlXSLoader = buildPerlPackage {
-    name = "XSLoader-0.08";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SAPER/XSLoader-0.08.tar.gz;
-      sha256 = "0mr4l3givrpyvz1kg0kap2ds8g0rza2cim9kbnjy8hi64igkixi5";
-    };
-  };
-
-  perlYAML = buildPerlPackage rec {
-    name = "YAML-0.68";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
-      sha256 = "0yg0pgsjkfczsblx03rxlw4ib92k0gwdyb1a258xb9wdg0w61h34";
-    };
-  };
+  perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
+    inherit pkgs;
+  });
 
-  perlYAMLSyck = buildPerlPackage rec {
-    name = "YAML-Syck-1.05";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AU/AUDREYT/${name}.tar.gz";
-      sha256 = "15acwp2qdxfmhfqj4c1s57xyy48hcfc87lblww3lbvihqbysyzss";
-    };
-  };
+  perlXMLParser = perlPackages.XMLParser;
 
 
   ### DEVELOPMENT / PYTHON MODULES
@@ -6349,6 +4147,14 @@ let
     setuptools = setuptools.passthru.function {inherit python;};
   });
 
+  foolscap = import ../development/python-modules/foolscap {
+    inherit fetchurl stdenv python setuptools twisted pyopenssl;
+  };
+
+  nevow = import ../development/python-modules/nevow {
+    inherit fetchurl stdenv python setuptools twisted makeWrapper lib;
+  };
+
   numeric = import ../development/python-modules/numeric {
     inherit fetchurl stdenv python;
   };
@@ -6441,6 +4247,10 @@ let
     inherit python;
   };
 
+  simplejson = import ../development/python-modules/simplejson {
+    inherit fetchsvn stdenv python setuptools;
+  };
+
   wxPython = wxPython26;
 
   wxPython26 = import ../development/python-modules/wxPython/2.6.nix {
@@ -6503,7 +4313,7 @@ let
   };
 
   ejabberd = import ../servers/xmpp/ejabberd {
-    inherit fetchurl stdenv expat erlang zlib openssl 
+    inherit fetchurl stdenv expat erlang zlib openssl
       pam;
   };
 
@@ -7197,7 +5007,7 @@ let
       inherit (gnome) gtk glib pango libglade;
     };
 
-    virtualbox = import ../applications/virtualization/virtualbox/2.2.0.nix {
+    virtualbox = import ../applications/virtualization/virtualbox {
       stdenv = stdenv_32bit;
       inherit fetchurl iasl dev86 libxslt libxml2 qt3 qt4 SDL hal
           libcap libpng zlib kernel python which;
@@ -7404,8 +5214,8 @@ let
     inherit fetchurl stdenv;
   };
 
-  sdparm = composedArgsAndFun (selectVersion ../os-specific/linux/sdparm "1.03") {
-    inherit fetchurl stdenv builderDefs;
+  sdparm = import ../os-specific/linux/sdparm {
+    inherit fetchurl stdenv;
   };
 
   shadowutils = import ../os-specific/linux/shadow {
@@ -7563,8 +5373,8 @@ let
   };
 
   dejavu_fonts = import ../data/fonts/dejavu-fonts {
-    inherit fetchurl stdenv fontforge perl perlFontTTF
-      fontconfig;
+    inherit fetchurl stdenv fontforge perl fontconfig;
+    inherit (perlPackages) FontTTF;
   };
 
   docbook5 = import ../data/sgml+xml/schemas/docbook-5.0 {
@@ -7878,7 +5688,7 @@ let
       automake autoconf libtool
       a52dec alsaLib   lame libavc1394 libiec61883 libraw1394 libsndfile
       libvorbis libogg libjpeg libtiff freetype mjpegtools x264
-      gettext X11 faad2 faac libtheora libpng libdv perl nasm e2fsprogs
+      gettext faad2 faac libtheora libpng libdv perl nasm e2fsprogs
       pkgconfig;
       openexr = openexr_1_6_1;
     fftw = fftwSinglePrec;
@@ -8004,15 +5814,7 @@ let
     inherit (gtkLibs) gtk glib;
   };
 
-  darcs = import ../applications/version-management/darcs {
-    inherit fetchurl stdenv zlib ncurses curl getConfig;
-    ghc = ghc661;
-  };
-
-  # some speed bottle necks are resolved in this version I think .. perhaps you like to try it?
-  darcs2 = import ../applications/version-management/darcs/darcs-2.nix {
-    inherit fetchurl stdenv zlib ncurses curl ghc perl;
-  };
+  darcs = haskellPackages.darcs;
 
   dia = import ../applications/graphics/dia {
     inherit stdenv fetchurl pkgconfig perl perlXMLParser
@@ -8089,6 +5891,10 @@ let
       guile bzip2;
   };
 
+  elvis = import ../applications/editors/elvis {
+    inherit fetchurl stdenv ncurses;
+  };
+
   emacs = emacs22;
 
   emacs21 = import ../applications/editors/emacs-21 {
@@ -8629,20 +6435,22 @@ let
     motif = lesstif;
   };
 
+  nvi = import ../applications/editors/nvi {
+    inherit fetchurl stdenv ncurses;
+  };
+
   nxml = import ../applications/editors/emacs-modes/nxml {
     inherit fetchurl stdenv;
   };
 
   openoffice = import ../applications/office/openoffice {
-    inherit fetchurl stdenv pam python tcsh libxslt
-      perl perlArchiveZip perlCompressZlib zlib libjpeg
-      expat pkgconfig freetype fontconfig libwpd libxml2
-      db4 sablotron curl libsndfile flex zip unzip libmspack
-      getopt file neon cairo which icu jdk ant hsqldb
-      cups openssl bison;
-    boost = boost_1_36_0;
+    inherit fetchurl stdenv pam python tcsh libxslt perl zlib libjpeg
+      expat pkgconfig freetype fontconfig libwpd libxml2 db4 sablotron
+      curl libsndfile flex zip unzip libmspack getopt file neon cairo
+      which icu jdk ant cups openssl bison boost gperf cppunit;
     inherit (xlibs) libXaw libXext libX11 libXtst libXi libXinerama;
     inherit (gtkLibs) gtk;
+    inherit (perlPackages) ArchiveZip CompressZlib;
   };
 
   opera = import ../applications/networking/browsers/opera {
@@ -8896,7 +6704,7 @@ let
     static = true;
   }));
 
-  svk = perlSVK;
+  svk = perlPackages.SVK;
 
   sylpheed = import ../applications/networking/mailreaders/sylpheed {
     inherit fetchurl stdenv pkgconfig openssl gpgme;
@@ -9019,15 +6827,6 @@ let
     flags = [ "X11" ]; # only flag "X11" by now
   };
 
-  /*virtualboxFun = lib.sumArgs (selectVersion ../applications/virtualization/virtualbox "1.5.2") {
-    inherit stdenv fetchurl builderDefs bridge_utils umlutilities kernelHeaders
-      wine jre libxslt SDL qt3 openssl zlib;
-    inherit (xorg) libXcursor;
-    inherit (gnome) libIDL;
-  };
-
-  virtualbox = virtualboxFun null;*/
-
   vlc = import ../applications/video/vlc {
     inherit fetchurl stdenv perl xlibs zlib a52dec libmad faad2
       ffmpeg libdvdnav pkgconfig hal fribidi qt4 freefont_ttf;
@@ -9040,6 +6839,11 @@ let
       speex flac;
   };
 
+  vwm = import ../applications/window-managers/vwm {
+    inherit fetchurl stdenv ncurses pkgconfig libviper libpseudo gpm;
+    inherit (gtkLibs) glib;
+  };
+
   w3m = import ../applications/networking/browsers/w3m {
     inherit fetchurl stdenv ncurses openssl boehmgc gettext zlib;
     graphicsSupport = false;
@@ -9143,19 +6947,6 @@ let
     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
   };
 
-  xmobar = import ../applications/misc/xmobar {
-    inherit cabal X11;
-  };
-
-  xmonad = import ../applications/window-managers/xmonad {
-    inherit cabal X11;
-    inherit (xlibs) xmessage;
-  };
-
-  xmonadContrib = import ../applications/window-managers/xmonad/xmonad-contrib.nix {
-    inherit cabal xmonad X11;
-  };
-
   xneur = import ../applications/misc/xneur {
     inherit fetchurl stdenv pkgconfig pcre libxml2 aspell imlib2 xosd;
     GStreamer=gst_all.gstreamer;
@@ -9360,6 +7151,11 @@ let
     inherit fetchurl stdenv SDL zlib mpeg2dec;
   };
 
+  scorched3d = import ../games/scorched3d {
+    inherit stdenv fetchurl mesa openal autoconf automake libtool freealut freetype fftw SDL SDL_net zlib libpng libjpeg;
+    wxGTK = wxGTK28;
+  };
+
   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
     inherit (gtkLibs) gtk glib;
     inherit pkgconfig;
@@ -9496,7 +7292,7 @@ let
     inherit libxml2 guile perl intltool libtool pkgconfig;
   };
 
-  
+
   ### SCIENCE/BIOLOGY
 
   alliance = import ../applications/science/electronics/alliance {
@@ -9541,7 +7337,7 @@ let
     inherit fetchurl stdenv perl paml;
   };
 
-  
+
   ### SCIENCE/MATH
 
   atlas = import ../development/libraries/science/math/atlas {
@@ -9552,21 +7348,21 @@ let
     inherit fetchurl stdenv gfortran;
   }; */
 
-  
+
   ### SCIENCE/LOGIC
 
   coq = import ../applications/science/logic/coq {
     inherit fetchurl stdenv ocaml ncurses;
   };
 
-  
+
   ### SCIENCE / ELECTRONICS
 
   ngspice = import ../applications/science/electronics/ngspice {
     inherit fetchurl stdenv readline;
   };
 
-  
+
   ### SCIENCE / MATH
 
   maxima = import ../applications/science/math/maxima {
@@ -9585,7 +7381,7 @@ let
     withX = true;
   };
 
-  
+
   ### MISC
 
   atari800 = import ../misc/emulators/atari800 {
@@ -9620,6 +7416,10 @@ let
     inherit fetchurl stdenv perl zlib bzip2;
   };
 
+  foldingathome = import ../misc/foldingathome {
+    inherit fetchurl stdenv;
+  };
+
   freestyle = import ../misc/freestyle {
     inherit fetchurl freeglut qt4 libpng lib3ds libQGLViewer swig;
     inherit (xlibs) libXi;
@@ -9629,11 +7429,11 @@ let
 
   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
-      pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy 
+      pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
       docutils;
     dbus = dbus.libs;
     inherit (gnome) gtk libglade;
-    inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11 
+    inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
       scrnsaverproto;
     python = pythonFull;
   };
@@ -9910,5 +7710,5 @@ let
     inherit (stdenv) mkDerivation;
   };
 
-  
+
 }; in pkgs
diff --git a/pkgs/top-level/build-for-release.nix b/pkgs/top-level/build-for-release.nix
index 244c4ee129f71..39e7c4a1ec8f9 100644
--- a/pkgs/top-level/build-for-release.nix
+++ b/pkgs/top-level/build-for-release.nix
@@ -66,7 +66,6 @@ let
       gcc34
       gcc43
       gdb
-      ghc
       ghostscript
       gimp
       git
@@ -106,7 +105,6 @@ let
       kvm
       less
       lftp
-      lhs2tex
       libtool
       libxml2
       libxslt
@@ -144,7 +142,6 @@ let
       par2cmdline
       pciutils
       perl
-      perlTaskCatalystTutorial
       php
       pinentry
       pkgconfig
@@ -202,7 +199,6 @@ let
       w3m
       wget
       wirelesstools
-      wxHaskell
       x11_ssh_askpass
       xchm
       xfig
@@ -218,6 +214,9 @@ let
       zile
       zip
       ;
+    inherit (pkgs.perlPackages)
+      TaskCatalystTutorial
+      ;    
     inherit (pkgs.xorg)
       fontbh100dpi
       fontbhlucidatypewriter100dpi
@@ -385,7 +384,6 @@ let
       autoconf
       automake110x
       automake19x
-      ghc
       libtool
       libxml2
       libxslt
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
new file mode 100644
index 0000000000000..d9ab86a6d77da
--- /dev/null
+++ b/pkgs/top-level/haskell-packages.nix
@@ -0,0 +1,377 @@
+{pkgs, ghc}:
+
+let ghcReal = ghc; in
+
+rec {
+
+  inherit ghcReal;
+
+  # In the remainder, `ghc' refers to the wrapper.  This is because
+  # it's never useful to use the wrapped GHC (`ghcReal'), as the
+  # wrapper provides essential functionality: the ability to find
+  # Haskell packages in the buildInputs automatically.
+  ghc = import ../development/compilers/ghc/wrapper.nix {
+    inherit (pkgs) stdenv;
+    ghc = ghcReal;
+  };
+
+  cabal = import ../development/libraries/haskell/cabal/cabal.nix {
+    inherit (pkgs) stdenv fetchurl;
+    inherit ghc;
+  };
+
+
+  # Haskell libraries.
+
+  # Agda depends on a specific version of QuickCheck
+  Agda = import ../development/libraries/haskell/Agda {
+    inherit cabal binary haskeline haskellSrc mtl utf8String xhtml zlib
+      happy alex;
+    QuickCheck = QuickCheck2101;
+  };
+
+  benchpress = import ../development/libraries/haskell/benchpress {
+    inherit cabal;
+  };
+
+  binary = import ../development/libraries/haskell/binary {
+    inherit cabal;
+  };
+
+  cgi = import ../development/libraries/haskell/cgi {
+    inherit cabal mtl network parsec xhtml;
+  };
+
+  Crypto = import ../development/libraries/haskell/Crypto {
+    inherit cabal;
+  };
+
+  editline = import ../development/libraries/haskell/editline {
+    inherit (pkgs) libedit;
+    inherit cabal;
+  };
+
+  extensibleExceptions = import ../development/libraries/haskell/extensible-exceptions {
+    inherit cabal;
+  };
+
+  fgl = import ../development/libraries/haskell/fgl {
+    inherit cabal mtl;
+  };
+
+  ghcPaths = import ../development/libraries/haskell/ghc-paths {
+    inherit cabal;
+  };
+
+  GLUT = import ../development/libraries/haskell/GLUT {
+    inherit cabal OpenGL;
+    glut = pkgs.freeglut;
+    inherit (pkgs) mesa;
+    inherit (pkgs.xlibs) libSM libICE libXmu libXi;
+  };
+  
+  gtk2hs = import ../development/libraries/haskell/gtk2hs {
+    inherit ghc mtl;
+    inherit (pkgs) stdenv fetchurl pkgconfig gnome cairo;
+  };
+
+  haskeline = import ../development/libraries/haskell/haskeline {
+    inherit cabal extensibleExceptions mtl utf8String;
+  };
+
+  haskellSrc = import ../development/libraries/haskell/haskell-src {
+    inherit cabal happy;
+  };
+
+  haskellSrcExts = import ../development/libraries/haskell/haskell-src-exts {
+    inherit cabal cpphs happy;
+  };
+
+  haskellSrcMeta = import ../development/libraries/haskell/haskell-src-meta {
+    inherit cabal haskellSrcExts;
+  };
+  
+  haskellPlatform = import ../development/libraries/haskell/haskell-platform {
+    inherit cabal GLUT HTTP HUnit OpenAL OpenGL QuickCheck cgi fgl
+      haskellSrc html parallel regexBase regexCompat regexPosix
+      stm time xhtml zlib cabalInstall alex happy haddock;
+    ghc = ghcReal;
+    inherit (pkgs) fetchurl;
+  };
+
+  HTTP = import ../development/libraries/haskell/HTTP {
+    inherit cabal mtl network parsec;
+  };
+
+  haxr = import ../development/libraries/haskell/haxr {
+    inherit cabal HaXml HTTP;
+  };
+
+  haxr_th = import ../development/libraries/haskell/haxr-th {
+    inherit cabal haxr HaXml HTTP;
+  };
+
+  HaXml = import ../development/libraries/haskell/HaXml {
+    inherit cabal;
+  };
+
+  HDBC = import ../development/libraries/haskell/HDBC/HDBC-1.1.4.nix {
+    inherit cabal;
+  };
+
+  HDBCPostgresql = import ../development/libraries/haskell/HDBC/HDBC-postgresql-1.1.4.0.nix {
+    inherit cabal HDBC;
+    inherit (pkgs) postgresql;
+  };
+
+  HDBCSqlite = import ../development/libraries/haskell/HDBC/HDBC-sqlite3-1.1.4.0.nix {
+    inherit cabal HDBC;
+    inherit (pkgs) sqlite;
+  };
+
+  hscolour = import ../development/libraries/haskell/hscolour {
+    inherit cabal;
+  };
+
+  html = import ../development/libraries/haskell/html {
+    inherit cabal;
+  };
+
+  HUnit = import ../development/libraries/haskell/HUnit {
+    inherit cabal;
+  };
+
+  maybench = import ../development/libraries/haskell/maybench {
+    inherit cabal benchpress;
+  };
+
+  monadlab = import ../development/libraries/haskell/monadlab {
+    inherit cabal;
+  };
+
+  mtl = import ../development/libraries/haskell/mtl {
+    inherit cabal;
+  };
+
+  multirec = import ../development/libraries/haskell/multirec {
+    inherit cabal;
+  };
+
+  network = import ../development/libraries/haskell/network {
+    inherit cabal parsec;
+  };
+
+  OpenAL = import ../development/libraries/haskell/OpenAL {
+    inherit cabal OpenGL;
+    inherit (pkgs) openal;
+  };
+
+  OpenGL = import ../development/libraries/haskell/OpenGL {
+    inherit cabal;
+    inherit (pkgs) mesa;
+    inherit (pkgs.xlibs) libX11;
+  };
+
+  parallel = import ../development/libraries/haskell/parallel {
+    inherit cabal;
+  };
+
+  parsec = import ../development/libraries/haskell/parsec {
+    inherit cabal;
+  };
+
+  pcreLight = import ../development/libraries/haskell/pcre-light {
+    inherit cabal;
+    inherit (pkgs) pcre;
+  };
+
+  QuickCheck  = QuickCheck1;
+  QuickCheck1 = QuickCheck1200;
+  QuickCheck2 = QuickCheck2101;
+
+  QuickCheck1200 = import ../development/libraries/haskell/QuickCheck {
+    inherit cabal;
+  };
+
+  QuickCheck2101 = import ../development/libraries/haskell/QuickCheck/2.1.0.1.nix {
+    inherit cabal mtl;
+  };
+
+  readline = import ../development/libraries/haskell/readline {
+    inherit cabal;
+    inherit (pkgs) readline;
+  };
+
+  regexBase = import ../development/libraries/haskell/regex-base {
+    inherit cabal mtl;
+  };
+
+  regexCompat = import ../development/libraries/haskell/regex-compat {
+    inherit cabal regexBase regexPosix;
+  };
+
+  regexPosix = import ../development/libraries/haskell/regex-posix {
+    inherit cabal regexBase;
+  };
+
+  stm = import ../development/libraries/haskell/stm {
+    inherit cabal;
+  };
+
+  strictConcurrency = import ../development/libraries/haskell/strictConcurrency {
+    inherit cabal parallel;
+  };
+
+  time = import ../development/libraries/haskell/time {
+    inherit cabal;
+  };
+
+  uniplate = import ../development/libraries/haskell/uniplate {
+    inherit cabal mtl;
+  };
+
+  utf8String = import ../development/libraries/haskell/utf8-string {
+    inherit cabal;
+  };
+
+  uulib = import ../development/libraries/haskell/uulib {
+    inherit cabal;
+  };
+
+  vacuum = import ../development/libraries/haskell/vacuum {
+    inherit cabal ghcPaths haskellSrcMeta;
+  };
+
+  vacuumCairo = import ../development/libraries/haskell/vacuumCairo {
+    inherit cabal vacuum gtk2hs parallel strictConcurrency;
+  };
+
+  vty = import ../development/libraries/haskell/vty {
+    inherit cabal;
+  };
+
+  wxHaskell = import ../development/libraries/haskell/wxHaskell {
+    inherit ghc;
+    inherit (pkgs) stdenv fetchurl unzip wxGTK;
+  };
+
+  X11 = import ../development/libraries/haskell/X11 {
+    inherit cabal;
+    inherit (pkgs.xlibs) libX11 libXinerama libXext;
+    xineramaSupport = true;
+  };
+
+  xhtml = import ../development/libraries/haskell/xhtml {
+    inherit cabal;
+  };
+
+  zlib = import ../development/libraries/haskell/zlib {
+    inherit cabal;
+    inherit (pkgs) zlib;
+  };
+
+
+  # Compilers.
+
+  ehc = import ../development/compilers/ehc {
+    inherit ghc uulib uuagc;
+    inherit (pkgs) fetchsvn stdenv coreutils m4 libtool llvm;
+  };
+
+  helium = import ../development/compilers/helium {
+    inherit ghc;
+    inherit (pkgs) fetchurl stdenv;
+  };
+
+
+  # Development tools.
+
+  alex = import ../development/tools/parsing/alex {
+    inherit cabal;
+    inherit (pkgs) perl;
+  };
+
+  cpphs = import ../development/tools/misc/cpphs {
+    inherit cabal;
+  };
+
+  frown = import ../development/tools/parsing/frown {
+    inherit ghc;
+    inherit (pkgs) fetchurl stdenv;
+  };
+
+  haddock = haddock242;
+
+  # old version of haddock, still more stable than 2.0
+  haddock09 = import ../development/tools/documentation/haddock/haddock-0.9.nix {
+    inherit cabal;
+  };
+
+  # does not compile with ghc-6.8.3
+  haddock210 = pkgs.stdenv.lib.lowPrio (import ../development/tools/documentation/haddock/haddock-2.1.0.nix {
+    inherit cabal;
+  });
+
+  haddock242 = import ../development/tools/documentation/haddock/haddock-2.4.2.nix {
+    inherit cabal ghcPaths;
+    inherit (pkgs) libedit;
+  };
+
+  happy = happy1182;
+
+  happy117 = import ../development/tools/parsing/happy/happy-1.17.nix {
+    inherit cabal;
+    inherit (pkgs) perl;
+  };
+
+  happy1182 = import ../development/tools/parsing/happy/happy-1.18.2.nix {
+    inherit cabal mtl;
+    inherit (pkgs) perl;
+  };
+
+  hlint = import ../development/tools/haskell/hlint {
+    inherit cabal haskellSrcExts mtl uniplate hscolour;
+  };
+
+  uuagc = import ../development/tools/haskell/uuagc {
+    inherit cabal uulib;
+  };
+
+  # Applications.
+
+  darcs = import ../applications/version-management/darcs/darcs-2.nix {
+    inherit cabal html mtl parsec regexCompat;
+    inherit (pkgs) zlib curl;
+  };
+
+  leksah = import ../applications/editors/leksah {
+    inherit cabal gtk2hs binary parsec regexPosix utf8String;
+    inherit (pkgs) libedit makeWrapper;
+  };
+  
+  xmobar = import ../applications/misc/xmobar {
+    inherit cabal X11 mtl parsec stm;
+  };
+
+  xmonad = import ../applications/window-managers/xmonad {
+    inherit cabal X11 mtl;
+    inherit (pkgs.xlibs) xmessage;
+  };
+
+  xmonadContrib = import ../applications/window-managers/xmonad/xmonad-contrib.nix {
+    inherit cabal xmonad X11;
+  };
+
+
+  # Tools.
+
+  cabalInstall = import ../tools/package-management/cabal-install {
+    inherit cabal HTTP network zlib;
+  };
+
+  lhs2tex = import ../tools/typesetting/lhs2tex {
+    inherit cabal regexCompat utf8String;
+    inherit (pkgs) tetex polytable;
+  };
+
+}
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
new file mode 100644
index 0000000000000..65235b01b4d5c
--- /dev/null
+++ b/pkgs/top-level/perl-packages.nix
@@ -0,0 +1,2108 @@
+/* This file defines the composition for CPAN (Perl) packages.  It has
+   been factored out of all-packages.nix because there are so many of
+   them.  Also, because most Nix expressions for CPAN packages are
+   trivial, most are actually defined here.  I.e. there's no function
+   for each package in a separate file: the call to the function would
+   be almost as must code as the function itself. */
+
+{pkgs}:
+
+rec {
+
+  inherit (pkgs) buildPerlPackage fetchurl stdenv perl;
+
+  AlgorithmAnnotate = buildPerlPackage {
+    name = "Algorithm-Annotate-0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/Algorithm-Annotate-0.10.tar.gz;
+      sha256 = "1y92k4nqkscfwpriv8q7c90rjfj85lvwq1k96niv2glk8d37dcf9";
+    };
+    propagatedBuildInputs = [AlgorithmDiff];
+  };
+
+  AlgorithmDiff = buildPerlPackage rec {
+    name = "Algorithm-Diff-1.1901";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TY/TYEMQ/${name}.zip";
+      sha256 = "0qk60fi49mpyvnfpjd2dzcmya8x3g5zfgb2hrnl7a5krn045g6i2";
+    };
+    buildInputs = [pkgs.unzip];
+  };
+
+  AppCLI = buildPerlPackage {
+    name = "App-CLI-0.07";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/App-CLI-0.07.tar.gz;
+      sha256 = "000866qsm7jck3ini69b02sgbjwp6s297lsds002r7xk2wb6fqcz";
+    };
+    propagatedBuildInputs = [LocaleMaketextSimple];
+  };
+
+  AppConfig = buildPerlPackage {
+    name = "AppConfig-1.66";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AB/ABW/AppConfig-1.66.tar.gz;
+      sha256 = "1p1vs9px20lrq9mdwpzp309a8r6rchibsdmxang4krk90pi2sh4b";
+    };
+  };
+
+  ArrayCompare = buildPerlPackage {
+    name = "Array-Compare-1.16";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DAVECROSS/Array-Compare-1.16.tar.gz;
+      sha256 = "1iwkn7d07a7vgl3jrv4f0glwapxcbdwwsy3aa6apgwam9119hl7q";
+    };
+  };
+
+  ArchiveZip = buildPerlPackage {
+    name = "Archive-Zip-1.16";
+    src = fetchurl {
+      url = http://nixos.org/tarballs/Archive-Zip-1.16.tar.gz;
+      md5 = "e28dff400d07b1659d659d8dde7071f1";
+    };
+  };
+
+  BerkeleyDB = import ../development/perl-modules/BerkeleyDB {
+    inherit buildPerlPackage fetchurl;
+    inherit (pkgs) db4;
+  };
+
+  BitVector = buildPerlPackage {
+    name = "Bit-Vector-6.4";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-6.4.tar.gz;
+      sha256 = "146vr78r6w3cxrm0ji491ylaa1abqh7fs81qhg15g3gzzxfg33bp";
+    };
+    propagatedBuildInputs = [CarpClan];
+  };
+
+  Boolean = buildPerlPackage rec {
+    name = "boolean-0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
+      sha256 = "1xqhzy3m2r08my13alff9bzl8b6xgd68312834x0hf33yir3l1yn";
+    };
+  };
+
+  CacheFastMmap = buildPerlPackage {
+    name = "Cache-FastMmap-1.28";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.28.tar.gz;
+      sha256 = "1m851bz5025wy24mzsi1i8hdyg8bm7lszx9rnn47llsv6hb9v0da";
+    };
+  };
+
+  CaptchaReCAPTCHA = buildPerlPackage rec {
+    name = "Captcha-reCAPTCHA-0.92";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
+      sha256 = "1fm0fvdy9b7z8k1cyah2qbj0gqlv01chxmqmashwj16198yr7vrc";
+    };
+    propagatedBuildInputs = [HTMLTiny LWP];
+    buildInputs = [TestPod];
+  };
+
+  CarpAssert = buildPerlPackage rec {
+    name = "Carp-Assert-0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/${name}.tar.gz";
+      sha256 = "1wzy4lswvwi45ybsm65zlq17rrqx84lsd7rajvd0jvd5af5lmlqd";
+    };
+  };
+
+  CarpAssertMore = buildPerlPackage rec {
+    name = "Carp-Assert-More-1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
+      sha256 = "1m9k6z0m10s03x2hnc9mh5d4r8lnczm9bqd54jmnw0wzm4m33lyr";
+    };
+    propagatedBuildInputs = [TestException CarpAssert];
+  };
+
+  CarpClan = buildPerlPackage {
+    name = "Carp-Clan-6.00";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JJ/JJORE/Carp-Clan-6.00.tar.gz;
+      sha256 = "0lbin4i0vzagcwkywpd5x4gz3a4ira4yn5g5v1ip0pbpyqnjk15h";
+    };
+    propagatedBuildInputs = [TestException];
+  };
+
+  CatalystActionRenderView = buildPerlPackage rec {
+    name = "Catalyst-Action-RenderView-0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
+      sha256 = "06bxbdfjgnwp8zz4mqq2x7n5ng02h94m27l610icsps7r9iwi8f9";
+    };
+    propagatedBuildInputs = [CatalystRuntime HTTPRequestAsCGI DataVisitor];
+  };
+
+  CatalystAuthenticationStoreDBIxClass = buildPerlPackage rec {
+    name = "Catalyst-Authentication-Store-DBIx-Class-0.1082";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JAYK/${name}.tar.gz";
+      sha256 = "1rh5jwqw3fb16ll5id8z0igpqdwr0czi0xbaa2igalxr53hh2cni";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime CatalystPluginAuthentication CatalystModelDBICSchema
+    ];
+  };
+
+  CatalystComponentInstancePerContext = buildPerlPackage rec {
+    name = "Catalyst-Component-InstancePerContext-0.001001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRODITI/${name}.tar.gz";
+      sha256 = "0wfj4vnn2cvk6jh62amwlg050p37fcwdgrn9amcz24z6w4qgjqvz";
+    };
+    propagatedBuildInputs = [CatalystRuntime Moose];
+  };
+
+  CatalystControllerHTMLFormFu = buildPerlPackage rec {
+    name = "Catalyst-Controller-HTML-FormFu-0.03007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFRANKS/${name}.tar.gz";
+      sha256 = "1vrd79d0nbqkana5q483fgsr41idlfgjhf7fpd3hc056z5nq8iyn";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime CatalystActionRenderView CatalystViewTT
+      CatalystPluginConfigLoader ConfigGeneral
+      CatalystComponentInstancePerContext Moose
+      RegexpAssemble TestWWWMechanize
+      TestWWWMechanizeCatalyst HTMLFormFu
+    ];
+  };
+
+  CatalystDevel = buildPerlPackage rec {
+    name = "Catalyst-Devel-1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
+      sha256 = "19ylkx55gaq9xxxcl4a55284in7hdrr2sb6lqz64daq3xp29n73h";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime CatalystActionRenderView
+      CatalystPluginStaticSimple CatalystPluginConfigLoader
+      PathClass TemplateToolkit ClassAccessor
+      ConfigGeneral FileCopyRecursive Parent
+    ];
+  };
+
+  CatalystEngineHTTPPrefork = buildPerlPackage rec {
+    name = "Catalyst-Engine-HTTP-Prefork-0.50";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
+      sha256 = "1p8mnxqaxd6sxyy9q4f0h5gy4mcnvb3y93y49ziq6kmcvy6yw2p7";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime HTTPBody NetServer
+      CookieXS HTTPHeaderParserXS
+    ];
+    buildInputs = [TestPod TestPodCoverage];
+    patches = [
+      # Fix chunked transfers (they were missing the final CR/LF at
+      # the end, which makes curl barf).
+      ../development/perl-modules/catalyst-fix-chunked-encoding.patch
+    ];
+  };
+
+  CatalystManual = buildPerlPackage rec {
+    name = "Catalyst-Manual-5.7016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HK/HKCLARK/${name}.tar.gz";
+      sha256 = "0axin80dca3xb0n7frn9w8lj43l7dykpwrf7jj44n1v1kyzw813f";
+    };
+    buildInputs = [TestPod TestPodCoverage];
+  };
+
+  CatalystModelDBICSchema = buildPerlPackage {
+    name = "Catalyst-Model-DBIC-Schema-0.23";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSTROUT/Catalyst-Model-DBIC-Schema-0.23.tar.gz;
+      sha256 = "1rzs4czrwr8pnrj0mvfpzc8i2cbw95rx2xirw9bhqs77z2722ym4";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime CatalystDevel DBIxClass
+      UNIVERSALrequire ClassDataAccessor
+      DBIxClassSchemaLoader
+    ];
+  };
+
+  CatalystRuntime = buildPerlPackage rec{
+    name = "Catalyst-Runtime-5.71001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
+      sha256 = "1j3xsh7zi5xd8zdc63r83mwzhjfj30vhd39kgir53mq47v0y07jr";
+    };
+    propagatedBuildInputs = [
+      LWP ClassAccessor ClassDataInheritable ClassInspector
+      CGISimple DataDump FileModified HTTPBody HTTPRequestAsCGI
+      PathClass TextSimpleTable TreeSimple TreeSimpleVisitorFactory
+      SubExporter MROCompat TestMockObject ClassMOP Moose
+      NamespaceClean ScopeUpper MooseXEmulateClassAccessorFast
+      ClassC3 ClassC3AdoptNEXT
+    ];
+  };
+
+  CatalystPluginAuthentication = buildPerlPackage rec {
+    name = "Catalyst-Plugin-Authentication-0.10010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "1jjdmyccsq0k8ysl9ppm7rddf6w4l2yhwjr60c0x4lp5iafzmf4z";
+    };
+    propagatedBuildInputs = [CatalystRuntime CatalystPluginSession];
+  };
+
+  CatalystPluginAuthorizationACL = buildPerlPackage {
+    name = "Catalyst-Plugin-Authorization-ACL-0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.10.tar.gz;
+      sha256 = "1y9pj0scpc4nd7m1xqy7yvjsffhfadzl0z5r4jjv2srndcv4xj1p";
+    };
+    propagatedBuildInputs = [CatalystRuntime ClassThrowable];
+  };
+
+  CatalystPluginAuthorizationRoles = buildPerlPackage {
+    name = "Catalyst-Plugin-Authorization-Roles-0.07";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BR/BRICAS/Catalyst-Plugin-Authorization-Roles-0.07.tar.gz;
+      sha256 = "07b8zc7b06p0fprjj68fk7rgh781r9s3q8dx045sk03w0fnk3b4b";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime CatalystPluginAuthentication
+      TestException SetObject UNIVERSALisa
+    ];
+  };
+
+  CatalystPluginConfigLoader = buildPerlPackage rec {
+    name = "Catalyst-Plugin-ConfigLoader-0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRICAS/${name}.tar.gz";
+      sha256 = "13ir2l0pvjn4myp7wfh2bxcdd4hp0b3ln28mz1kvlshhxl032lqn";
+    };
+    propagatedBuildInputs = [CatalystRuntime DataVisitor ConfigAny MROCompat];
+  };
+
+  CatalystPluginHTMLWidget = buildPerlPackage {
+    name = "Catalyst-Plugin-HTML-Widget-1.1";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SR/SRI/Catalyst-Plugin-HTML-Widget-1.1.tar.gz;
+      sha256 = "1zzyfhmzlqvbwk2w930k3mqk8z1lzhrja9ynx9yfq5gmc8qqg95l";
+    };
+    propagatedBuildInputs = [CatalystRuntime HTMLWidget];
+  };
+
+  CatalystPluginSession = buildPerlPackage rec {
+    name = "Catalyst-Plugin-Session-0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "1p72hf68qi038gayhsxbbx3l3hg7b1njjii510alxqyw3a10y9sj";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime TestMockObject ObjectSignature
+      TestDeep MROCompat
+    ];
+  };
+
+  CatalystPluginSessionStateCookie = buildPerlPackage rec {
+    name = "Catalyst-Plugin-Session-State-Cookie-0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "1630shg23cpk6v26fwf7xr53ml1s6l2mgirxw524nmciliczgldj";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime CatalystPluginSession TestMockObject
+    ];
+  };
+
+  CatalystPluginSessionStoreFastMmap = buildPerlPackage rec {
+    name = "Catalyst-Plugin-Session-Store-FastMmap-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KARMAN/${name}.tar.gz";
+      sha256 = "0by8w1zbp2802f9n3sqp0cmm2q0pwnycf0jgzvvv75riicq1m9pn";
+    };
+    propagatedBuildInputs = [
+      PathClass CatalystPluginSession CacheFastMmap
+    ];
+  };
+
+  CatalystPluginStackTrace = buildPerlPackage {
+    name = "Catalyst-Plugin-StackTrace-0.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSTROUT/Catalyst-Plugin-StackTrace-0.09.tar.gz;
+      sha256 = "1pywxjhvn5zmcpnxj9ba77pz1jxq4d037yd43y0ks9sc31p01ydh";
+    };
+    propagatedBuildInputs = [CatalystRuntime DevelStackTrace];
+  };
+
+  CatalystPluginStaticSimple = buildPerlPackage {
+    name = "Catalyst-Plugin-Static-Simple-0.20";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AG/AGRUNDMA/Catalyst-Plugin-Static-Simple-0.20.tar.gz;
+      sha256 = "1qpicgfha81ykxzg4kjll2qw8b1rwzdgvj4s3q9s20zl86gmfr3p";
+    };
+    propagatedBuildInputs = [CatalystRuntime MIMETypes];
+  };
+
+  CatalystViewDownload = buildPerlPackage rec {
+    name = "Catalyst-View-Download-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAUDEON/${name}.tar.gz";
+      sha256 = "1d5ck28db6vbks7cwkj1qh0glhxskl3vymksv3izfzbk6xnjrabi";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime TestWWWMechanizeCatalyst TestUseOk
+      TextCSV
+    ];
+  };
+
+  CatalystViewTT = buildPerlPackage rec {
+    name = "Catalyst-View-TT-0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
+      sha256 = "18chdzgv0fvq65kfp8am2f5cayxpzg355q7jin4xlzygbgh2a5vg";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime TemplateToolkit ClassAccessor
+      PathClass TemplateTimer
+    ];
+  };
+
+  CGICookieXS = buildPerlPackage rec {
+    name = "CGI-Cookie-XS-0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGENT/${name}.tar.gz";
+      sha256 = "1jrd3f11sz17117nvssrrf6r80fr412615n5ffspbsap4n816bnn";
+    };
+  };
+
+  CGISession = buildPerlPackage {
+    name = "CGI-Session-3.95";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SH/SHERZODR/CGI-Session-3.95.tar.gz;
+      md5 = "fe9e46496c7c711c54ca13209ded500b";
+    };
+  };
+
+  CGISimple = buildPerlPackage {
+    name = "CGI-Simple-1.106";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AN/ANDYA/CGI-Simple-1.106.tar.gz;
+      sha256 = "0r0wc2260jnnch7dv7f6ailjf5w8hpqm2w146flfcchcryfxjlpg";
+    };
+  };
+
+  ClassAccessor = buildPerlPackage {
+    name = "Class-Accessor-0.31";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.31.tar.gz;
+      sha256 = "1a4v5qqdf9bipd6ba5n47mag0cmgwp97cid67i510aw96bcjrsiy";
+    };
+  };
+
+  ClassAccessorChained = buildPerlPackage {
+    name = "Class-Accessor-Chained-0.01";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-0.01.tar.gz;
+      sha256 = "1lilrjy1s0q5hyr0888kf0ifxjyl2iyk4vxil4jsv0sgh39lkgx5";
+    };
+    propagatedBuildInputs = [ClassAccessor];
+  };
+
+  ClassAccessorGrouped = buildPerlPackage rec {
+    name = "Class-Accessor-Grouped-0.08003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CL/CLACO/${name}.tar.gz";
+      sha256 = "0lvxj8fp79338p52ich0p7hi4gvvf572ks76g9kgkgfyqvmp732k";
+    };
+    propagatedBuildInputs = [ClassInspector MROCompat];
+  };
+
+  ClassAutouse = buildPerlPackage {
+    name = "Class-Autouse-1.99_02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-1.99_02.tar.gz;
+      sha256 = "1jkhczx2flxrz154ps90fj9wcchkpmnp5sapwc0l92rpn7jpsf08";
+    };
+  };
+
+  ClassC3 = buildPerlPackage rec {
+    name = "Class-C3-0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
+    };
+  };
+
+  ClassC3AdoptNEXT = buildPerlPackage rec {
+    name = "Class-C3-Adopt-NEXT-0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+      sha256 = "1kxbdq10vicrbz3i6hvml3mma5x0r523gfdd649f9bvrsizb0jxj";
+    };
+    propagatedBuildInputs = [MROCompat TestException ListMoreUtils];
+  };
+
+  ClassC3Componentised = buildPerlPackage rec {
+    name = "Class-C3-Componentised-1.0004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
+      sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
+    };
+    propagatedBuildInputs = [
+      ClassC3 ClassInspector TestException MROCompat
+    ];
+  };
+
+  ClassDataAccessor = buildPerlPackage {
+    name = "Class-Data-Accessor-0.04004";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLACO/Class-Data-Accessor-0.04004.tar.gz;
+      sha256 = "0578m3rplk41059rkkjy1009xrmrdivjnv8yxadwwdk1vzidc8n1";
+    };
+  };
+
+  ClassDataInheritable = buildPerlPackage {
+    name = "Class-Data-Inheritable-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz;
+      sha256 = "0jpi38wy5xh6p1mg2cbyjjw76vgbccqp46685r27w8hmxb7gwrwr";
+    };
+  };
+
+  ClassFactoryUtil = buildPerlPackage rec {
+    name = "Class-Factory-Util-1.7";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "09ifd6v0c94vr20n9yr1dxgcp7hyscqq851szdip7y24bd26nlbc";
+    };
+  };
+
+  ClassInspector = buildPerlPackage {
+    name = "Class-Inspector-1.23";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AD/ADAMK/Class-Inspector-1.23.tar.gz;
+      sha256 = "0d15b5wls14gqcd6v2k4kbc0v0a1qfb794h49wfc4vwjk5gnpbw1";
+    };
+  };
+
+  ClassMOP = buildPerlPackage rec {
+    name = "Class-MOP-0.80";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "1fmimzzbfkw7vrr57p8xa3y9v55i72bknix2qk3cdrn0jmg6h648";
+    };
+    propagatedBuildInputs = [
+      MROCompat TaskWeaken TestException SubName SubIdentify
+      DevelGlobalDestruction
+    ];
+  };
+
+  ClassSingleton = buildPerlPackage rec {
+    name = "Class-Singleton-1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABW/${name}.tar.gz";
+      sha256 = "0l4iwwk91wm2mrrh4irrn6ham9k12iah1ry33k0lzq22r3kwdbyg";
+    };
+  };
+
+  ClassThrowable = buildPerlPackage {
+    name = "Class-Throwable-0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/ST/STEVAN/Class-Throwable-0.10.tar.gz;
+      sha256 = "01hjrfb951c9j83ncg5drnam8vsfdgkjjv0kjshxhkl93sgnlvdl";
+    };
+  };
+
+  ClassUnload = buildPerlPackage {
+    name = "Class-Unload-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.05.tar.gz;
+      sha256 = "01b0j10nxbz37xnnzw3hgmpfgq09mc489kq2d8f5nswsrlk75001";
+    };
+    propagatedBuildInputs = [ClassInspector];
+  };
+
+  CompressRawBzip2 = import ../development/perl-modules/Compress-Raw-Bzip2 {
+    inherit fetchurl buildPerlPackage;
+    inherit (pkgs) bzip2;
+  };
+
+  CompressRawZlib = import ../development/perl-modules/Compress-Raw-Zlib {
+    inherit fetchurl buildPerlPackage;
+    inherit (pkgs) zlib;
+  };
+
+  CompressZlib = buildPerlPackage rec {
+    name = "Compress-Zlib-2.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
+      sha256 = "1k1i539fszhxay8yllh687sw06i68g8ikw51pvy1c84p3kg6yk4v";
+    };
+    propagatedBuildInputs = [
+      CompressRawZlib IOCompressBase IOCompressGzip
+    ];
+  };
+
+  ConfigAny = buildPerlPackage {
+    name = "Config-Any-0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BR/BRICAS/Config-Any-0.14.tar.gz;
+      sha256 = "1vlr4w2m88figac5pblg6ppzrm11x2pm7r05n48s84cp4mizhim1";
+    };
+  };
+
+  ConfigGeneral = buildPerlPackage {
+    name = "Config-General-2.40";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TL/TLINDEN/Config-General-2.40.tar.gz;
+      sha256 = "0wf6dpaanaiy0490dlgs3pi3xvvijs237x9izb00cnzggxcfmsnz";
+    };
+  };
+
+  constant = buildPerlPackage {
+    name = "constant-1.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SA/SAPER/constant-1.15.tar.gz;
+      sha256 = "1ygz0hd1fd3q88r6dlw14kpyh06zjprksdci7qva6skxz3261636";
+    };
+  };
+
+  CookieXS = buildPerlPackage rec {
+    name = "Cookie-XS-0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGENT/${name}.tar.gz";
+      sha256 = "1616rcn2qn1cwiv3rxb8mq5fmwxpj4gya1lxxxq2w952h03p3fd3";
+    };
+    propagatedBuildInputs = [
+      TestMore CGICookieXS
+    ];
+  };
+
+  CryptCBC = buildPerlPackage rec {
+    name = "Crypt-CBC-2.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDS/${name}.tar.gz";
+      sha256 = "0cvigpxvwn18kb5i40jlp5fgijbhncvlh23xdgs1cnhxa17yrgwx";
+    };
+  };
+
+  CryptDES = buildPerlPackage rec {
+    name = "Crypt-DES-2.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DP/DPARIS/${name}.tar.gz";
+      sha256 = "1w12k1b7868v3ql0yprswlz2qri6ja576k9wlda7b8zf2d0rxgmp";
+    };
+    buildInputs = [CryptCBC];
+  };
+
+  CryptPasswordMD5 = buildPerlPackage {
+    name = "Crypt-PasswdMD5-1.3";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LU/LUISMUNOZ/Crypt-PasswdMD5-1.3.tar.gz;
+      sha256 = "13j0v6ihgx80q8jhyas4k48b64gnzf202qajyn097vj8v48khk54";
+    };
+  };
+
+  CryptSSLeay = buildPerlPackage rec {
+    name = "Crypt-SSLeay-0.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DL/DLAND/${name}.tar.gz";
+      sha256 = "1f0i5y99ly39vf86jpzwqz8mkz1460vryv85jgqmfx007p781s0l";
+    };
+    makeMakerFlags = "--lib=${pkgs.openssl}/lib";
+  };
+
+  DataDump = buildPerlPackage {
+    name = "Data-Dump-1.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GA/GAAS/Data-Dump-1.11.tar.gz;
+      sha256 = "0h5y40b6drgsf87nhwhqx1dprq70f98ibm03l9al4ndq7mrx97dd";
+    };
+  };
+
+  DataHierarchy = buildPerlPackage {
+    name = "Data-Hierarchy-0.34";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/Data-Hierarchy-0.34.tar.gz;
+      sha256 = "1vfrkygdaq0k7006i83jwavg9wgszfcyzbl9b7fp37z2acmyda5k";
+    };
+    propagatedBuildInputs = [TestException];
+  };
+
+  DataOptList = buildPerlPackage rec {
+    name = "Data-OptList-0.104";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "1k1qvf3ik2rn9mg65ginv3lyy6dlg1z08yddcnzbnizs8vbqqaxd";
+    };
+    propagatedBuildInputs = [SubInstall ParamsUtil];
+  };
+
+  DataPage = buildPerlPackage {
+    name = "Data-Page-2.01";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LB/LBROCARD/Data-Page-2.01.tar.gz;
+      sha256 = "0mvhlid9qx9yd94rgr4lfz9kvflimc1dzcah0x7q5disw39aqrzr";
+    };
+    propagatedBuildInputs = [TestException ClassAccessorChained];
+  };
+
+  DataVisitor = buildPerlPackage {
+    name = "Data-Visitor-0.21";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/N/NU/NUFFIN/Data-Visitor-0.21.tar.gz;
+      sha256 = "10cjh3rrqi4gwrmkpzilzmaqdrh71wr59035s6b4p2dzd117p931";
+    };
+    propagatedBuildInputs = [
+      TestMockObject Mouse TaskWeaken TestUseOk TieToObject
+      NamespaceClean
+    ];
+  };
+
+  DateCalc = buildPerlPackage {
+    name = "Date-Calc-5.4";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/ST/STBEY/Date-Calc-5.4.tar.gz;
+      sha256 = "1q7d1sy9ka1akpbysgwj673i7wiwb48yjv6wx1v5dhxllyxlxqc8";
+    };
+    propagatedBuildInputs = [CarpClan BitVector];
+  };
+
+  DateManip = buildPerlPackage {
+    name = "DateManip-5.54";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-5.54.tar.gz;
+      sha256 = "0ap2jgqx7yvjsyph9zsvadsih41cj991j3jwgz5261sq7q74y7xn";
+    };
+  };
+
+  DateTime = buildPerlPackage rec {
+    name = "DateTime-0.4501";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "1hqhc4xfjgcc1r488gjbi498ws3pxiayabl46607lq02qddcv57s";
+    };
+    propagatedBuildInputs = [DateTimeLocale DateTimeTimeZone];
+  };
+
+  DateTimeFormatBuilder = buildPerlPackage rec {
+    name = "DateTime-Format-Builder-0.7901";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "08zl89gh5lkff8736fkdnrf6dgppsjbmymnysbc06s7igd4ig8zf";
+    };
+    propagatedBuildInputs = [
+      DateTime ParamsValidate TaskWeaken DateTimeFormatStrptime
+      ClassFactoryUtil
+    ];
+    buildInputs = [TestPod];
+  };
+
+  DateTimeFormatNatural = buildPerlPackage rec {
+    name = "DateTime-Format-Natural-0.74";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/${name}.tar.gz";
+      sha256 = "0hq33s5frfa8cpj2al7qi0sbmimm5sdlxf0h3b57fjm9x5arlkcn";
+    };
+    propagatedBuildInputs = [
+      DateTime ListMoreUtils ParamsValidate DateCalc
+      TestMockTime Boolean
+    ];
+  };
+
+  DateTimeFormatStrptime = buildPerlPackage rec {
+    name = "DateTime-Format-Strptime-1.0800";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RI/RICKM/${name}.tgz";
+      sha256 = "10vsmwlhnc62krsh5fm2i0ya7bgjgjsm6nmj56f0bfifjh57ya1j";
+    };
+    propagatedBuildInputs = [
+      DateTime DateTimeLocale DateTimeTimeZone ParamsValidate
+    ];
+  };
+
+  DateTimeLocale = buildPerlPackage rec {
+    name = "DateTime-Locale-0.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "1cvp9a4j6vy3xpbv6ipzcz1paw7gzal7lkrbm5ipiilji47d5gaw";
+    };
+    propagatedBuildInputs = [ListMoreUtils ParamsValidate];
+  };
+
+  DateTimeTimeZone = buildPerlPackage rec {
+    name = "DateTime-TimeZone-0.84";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "0jwbldr3x1cl2ibd9dcshdmpg6s5ddc4qiaxcxyqc82cq09ah2vs";
+    };
+    propagatedBuildInputs = [ClassSingleton ParamsValidate];
+  };
+
+  DBDSQLite = import ../development/perl-modules/DBD-SQLite {
+    inherit fetchurl buildPerlPackage DBI;
+    inherit (pkgs) sqlite;
+  };
+
+  DBFile = import ../development/perl-modules/DB_File {
+    inherit fetchurl buildPerlPackage;
+    inherit (pkgs) db4;
+  };
+
+  DBI = buildPerlPackage {
+    name = "DBI-1.607";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TI/TIMB/DBI-1.607.tar.gz;
+      sha256 = "053ysk2a4njhzq5p59v5s6jzyi0yqr8l6wkswbvy4fyil3ka343h";
+    };
+  };
+
+  DBIxClass = buildPerlPackage rec {
+    name = "DBIx-Class-0.08099_08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
+      sha256 = "12kn3jylxi7n2c6ccqyrjaxxmk3lajvjv19j6rlifp4crn24cbpy";
+    };
+    propagatedBuildInputs = [
+      TestNoWarnings TestException DBI ScopeGuard
+      PathClass ClassInspector ClassAccessorGrouped
+      CarpClan TestWarn DataPage SQLAbstract
+      SQLAbstractLimit ClassC3 ClassC3Componentised
+      ModuleFind DBDSQLite JSONAny SubName
+    ];
+    buildInputs = [TestPod TestPodCoverage];
+  };
+
+  DBIxClassHTMLWidget = buildPerlPackage rec {
+    name = "DBIx-Class-HTMLWidget-0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDREMAR/${name}.tar.gz";
+      sha256 = "05zhniyzl31nq410ywhxm0vmvac53h7ax42hjs9mmpvf45ipahj1";
+    };
+    propagatedBuildInputs = [DBIxClass HTMLWidget];
+  };
+
+  DBIxClassSchemaLoader = buildPerlPackage rec {
+    name = "DBIx-Class-Schema-Loader-0.04999_06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/${name}.tar.gz";
+      sha256 = "169ydwjarq6qk48jdxcn5ks8rx9aksk9fnx07gl5mz7banw5cs6y";
+    };
+    propagatedBuildInputs = [
+      DBI DBDSQLite DataDump UNIVERSALrequire
+      ClassAccessor ClassDataAccessor ClassC3 CarpClan
+      ClassInspector DBIxClass LinguaENInflectNumber
+      ClassUnload
+    ];
+    doCheck = false; # disabled for now, since some tests fail
+  };
+
+  DevelGlobalDestruction = buildPerlPackage rec {
+    name = "Devel-GlobalDestruction-0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NU/NUFFIN/${name}.tar.gz";
+      sha256 = "174m5dx2z89h4308gx6s6vmg93qzaq0bh9m91hp2vqbyialnarhw";
+    };
+    propagatedBuildInputs = [SubExporter ScopeGuard];
+  };
+
+  DevelStackTrace = buildPerlPackage rec {
+    name = "Devel-StackTrace-1.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "15zh9gzhw6gv7l6sklp02pfmiiv8kwmmjsyvirppsca6aagy4603";
+    };
+  };
+
+  DevelSymdump = buildPerlPackage rec {
+    name = "Devel-Symdump-2.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDK/${name}.tar.gz";
+      sha256 = "0qzj68zw1yypk8jw77h0w5sdpdcrp4xcmgfghcfyddjr2aim60x5";
+    };
+    propagatedBuildInputs = [
+      TestPod /* cyclic dependency: TestPodCoverage */
+    ];
+  };
+
+  DigestHMAC = buildPerlPackage {
+    name = "Digest-HMAC-1.01";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GA/GAAS/Digest-HMAC-1.01.tar.gz;
+      sha256 = "042d6nknc5icxqsy5asrh8v2shmvg7b3vbj95jyk4sbqlqpacwz3";
+    };
+    propagatedBuildInputs = [DigestSHA1];
+  };
+
+  DigestSHA1 = buildPerlPackage {
+    name = "Digest-SHA1-2.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GA/GAAS/Digest-SHA1-2.11.tar.gz;
+      md5 = "2449bfe21d6589c96eebf94dae24df6b";
+    };
+  };
+
+  EmailAddress = buildPerlPackage {
+    name = "Email-Address-1.888";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.888.tar.gz;
+      sha256 = "0c6b8djnmiy0niskrvywd6867xd1qmn241ffdwj957dkqdakq9yx";
+    };
+  };
+
+  EmailSend = buildPerlPackage {
+    name = "Email-Send-2.185";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Send-2.185.tar.gz;
+      sha256 = "0pbgnnbmv6z3zzqaiq1sdcv5d26ijhw4p8k8kp6ac7arvldblamz";
+    };
+    propagatedBuildInputs = [EmailSimple EmailAddress ModulePluggable ReturnValue];
+  };
+
+  EmailSimple = buildPerlPackage {
+    name = "Email-Simple-2.003";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.003.tar.gz;
+      sha256 = "0h8873pidhkqy7415s5sx8z614d0haxiknbjwrn65icrr2m0b8g6";
+    };
+  };
+
+  EmailValid = buildPerlPackage {
+    name = "Email-Valid-0.179";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Valid-0.179.tar.gz;
+      sha256 = "13yfjll63cp1y4xqzdcr1mjhfncn48v6hckk5mvwi47w3ccj934a";
+    };
+    propagatedBuildInputs = [MailTools NetDNS];
+    doCheck = false;
+  };
+
+  Encode = buildPerlPackage {
+    name = "Encode-2.25";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-2.25.tar.gz;
+      sha256 = "0prwmbg3xh1lqskianwrfrgasdfmz4kjm3qpdm27ay110jkk25ak";
+    };
+  };
+
+  ExtUtilsInstall = buildPerlPackage {
+    name = "ExtUtils-Install-1.50";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/Y/YV/YVES/ExtUtils-Install-1.50.tar.gz;
+      sha256 = "18fr056fwnnhvgc646crx2p9mybf69mh5rkcphc7bbvahw9i61jy";
+    };
+    propagatedBuildInputs = [ExtUtilsMakeMaker];
+  };
+
+  ExtUtilsMakeMaker = buildPerlPackage {
+    name = "ExtUtils-MakeMaker-6.44";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-6.44.tar.gz;
+      sha256 = "0zyypnlmmyp06qbfdpc14rp5rj63066mjammn6rlcqz2iil9mpcj";
+    };
+  };
+
+  ExtUtilsManifest = buildPerlPackage {
+    name = "ExtUtils-Manifest-1.53";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RK/RKOBES/ExtUtils-Manifest-1.53.tar.gz;
+      sha256 = "0xgfzivw0dfy29ydfjkg0c9mvlhjvlhc54s0yvbb4sxb2mdvrfkp";
+    };
+  };
+
+  Filechdir = buildPerlPackage {
+    name = "File-chdir-0.1002";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/File-chdir-0.1002.tar.gz;
+      sha256 = "1fc2l754bxsizli3injm4wqf8dn03iq16rmfn62l99nxpibl5k6p";
+    };
+  };
+
+  FileCopyRecursive = buildPerlPackage {
+    name = "File-Copy-Recursive-0.37";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.37.tar.gz;
+      sha256 = "12j0s01zwm67g4bcgbs0k61jwz59q1lndrnxyywxsz3xd30ki8rr";
+    };
+  };
+
+  FileModified = buildPerlPackage {
+    name = "File-Modified-0.07";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CO/CORION/File-Modified-0.07.tar.gz;
+      sha256 = "11zkg171fa5vdbyrbfcay134hhgyf4yaincjxwspwznrfmkpi49h";
+    };
+  };
+
+  FileShareDir = buildPerlPackage rec {
+    name = "File-ShareDir-1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+      sha256 = "1afr1r1ys2ij8i4r0i85hfrgrbvcha8c7cgkhcrdya1f0lnpw59z";
+    };
+    propagatedBuildInputs = [ClassInspector ParamsUtil];
+  };
+
+  FileTemp = buildPerlPackage {
+    name = "File-Temp-0.20";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TJ/TJENNESS/File-Temp-0.20.tar.gz;
+      sha256 = "0n7lr7mpdvwgznw469qdpdmac627a26wp615dkpzanc452skad4v";
+    };
+  };
+
+  FreezeThaw = buildPerlPackage {
+    name = "FreezeThaw-0.43";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.43.tar.gz;
+      sha256 = "1qamc5aggp35xk590a4hy660f2rhc2l7j65hbyxdya9yvg7z437l";
+    };
+  };
+
+  HTMLFormFu = buildPerlPackage rec {
+    name = "HTML-FormFu-0.03007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFRANKS/${name}.tar.gz";
+      sha256 = "03lc4pvygp4wn9rsgdkbwk8zkh8x2z5vp8613c6q74imwrfmmfqy";
+    };
+    propagatedBuildInputs = [
+      ClassAccessorChained ClassC3 ConfigAny
+      DateCalc ListMoreUtils LWP EmailValid
+      DataVisitor DateTime DateTimeFormatBuilder
+      DateTimeFormatStrptime DateTimeFormatNatural
+      Readonly YAMLSyck RegexpCopy
+      HTMLTokeParserSimple TestNoWarnings RegexpCommon
+      CaptchaReCAPTCHA HTMLScrubber FileShareDir
+      TemplateToolkit CryptCBC CryptDES
+    ];
+  };
+
+  HTMLParser = buildPerlPackage {
+    name = "HTML-Parser-3.56";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-3.56.tar.gz;
+      sha256 = "0x1h42r54aq4yqpwi7mla4jzia9c5ysyqh8ir2nav833f9jm6g2h";
+    };
+    propagatedBuildInputs = [HTMLTagset];
+  };
+
+  HTMLScrubber = buildPerlPackage {
+    name = "HTML-Scrubber-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PO/PODMASTER/HTML-Scrubber-0.08.tar.gz;
+      sha256 = "0xb5zj67y2sjid9bs3yfm81rgi91fmn38wy1ryngssw6vd92ijh2";
+    };
+    propagatedBuildInputs = [HTMLParser];
+  };
+
+  HTMLTagset = buildPerlPackage {
+    name = "HTML-Tagset-3.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-3.10.tar.gz;
+      sha256 = "05k292qy7jzjlmmybis8nncpnwwa4jfkm7q3gq6866ydxrzds9xh";
+    };
+  };
+
+  HTMLTiny = buildPerlPackage rec {
+    name = "HTML-Tiny-1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
+      sha256 = "1nc9vr0z699jwv8jaxxpkfhspiv7glhdp500hqyzdm2jxfw8azrg";
+    };
+  };
+
+  HTMLTokeParserSimple = buildPerlPackage rec {
+    name = "HTML-TokeParser-Simple-3.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/${name}.tar.gz";
+      sha256 = "0ii1ww17h7wps1lcj7bxrjbisa37f6cvlm0xxpgfq1s6iy06q05b";
+    };
+    propagatedBuildInputs = [HTMLParser SubOverride];
+    buildInputs = [TestPod];
+  };
+
+  HTMLTree = buildPerlPackage {
+    name = "HTML-Tree-3.23";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PETEK/HTML-Tree-3.23.tar.gz;
+      sha256 = "1pn80f4g1wixs030f40b80wrj12kwfinwycrx3f10drg4v7ml5zm";
+    };
+    propagatedBuildInputs = [HTMLParser];
+  };
+
+  HTMLWidget = buildPerlPackage {
+    name = "HTML-Widget-1.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz;
+      sha256 = "02w21rd30cza094m5xs9clzw8ayigbhg2ddzl6jycp4jam0dyhmy";
+    };
+    propagatedBuildInputs = [
+      TestNoWarnings ClassAccessor ClassAccessorChained
+      ClassDataAccessor ModulePluggableFast HTMLTree
+      HTMLScrubber EmailValid DateCalc
+    ];
+  };
+
+  HTTPBody = buildPerlPackage rec {
+    name = "HTTP-Body-1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
+      sha256 = "0s0496sb9l8jfkdx86vahwgdaaxrqb0j6acyww6nk0ajh82qrzfv";
+    };
+    propagatedBuildInputs = [LWP YAML];
+  };
+
+  HTTPHeaderParserXS = buildPerlPackage rec {
+    name = "HTTP-HeaderParser-XS-0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKSMITH/${name}.tar.gz";
+      sha256 = "1vs6sw431nnlnbdy6jii9vqlz30ndlfwdpdgm8a1m6fqngzhzq59";
+    };
+  };
+
+  HTTPRequestAsCGI = buildPerlPackage {
+    name = "HTTP-Request-AsCGI-0.5";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-Request-AsCGI-0.5.tar.gz;
+      sha256 = "164159iiyk0waqayplchkisxg2ldamx8iifrccx32p344714qcrh";
+    };
+    propagatedBuildInputs = [ClassAccessor LWP];
+  };
+
+  HTTPResponseEncoding = buildPerlPackage rec {
+    name = "HTTP-Response-Encoding-0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/${name}.tar.gz";
+      sha256 = "04gdl633g0s2ckn7zixcma2krbpfcd46jngg155qpdx5sdwfkm16";
+    };
+    propagatedBuildInputs = [LWP];
+  };
+
+  HTTPServerSimple = buildPerlPackage rec {
+    name = "HTTP-Server-Simple-0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JE/JESSE/${name}.tar.gz";
+      sha256 = "1m1lmpbg0zhiv2vyc3fyyqfsv3jhhb2mbdl5624fqb0va2pnla6n";
+    };
+    propagatedBuildInputs = [URI];
+    doCheck = false;
+  };
+
+  I18NLangTags = buildPerlPackage {
+    name = "I18N-LangTags-0.35";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SB/SBURKE/I18N-LangTags-0.35.tar.gz;
+      sha256 = "0idwfi7k8l44d9akpdj6ygdz3q8zxr690m18s7w23ms9d55bh3jy";
+    };
+  };
+
+  IOCompressBase = buildPerlPackage rec {
+    name = "IO-Compress-Base-2.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
+      sha256 = "10njlwa50mhs5nqws5yidfmmb7hwmwc6x06gk2vnpyn82g3szgqd";
+    };
+  };
+
+  IOCompressBzip2 = buildPerlPackage rec {
+    name = "IO-Compress-Bzip2-2.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
+      sha256 = "1kfksf2bslfkviry228p07m1ksnf06mh8gkmdpbrmlmxlbs2idnc";
+    };
+    propagatedBuildInputs = [IOCompressBase CompressRawBzip2];
+  };
+
+  IOCompressGzip = buildPerlPackage rec {
+    name = "IO-Compress-Zlib-2.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
+      sha256 = "0sbnx6xdryaajwpssrfgm5b2zasa4ri8pihqwsx3rm5kmkgzy9cx";
+    };
+    propagatedBuildInputs = [IOCompressBase CompressRawZlib];
+  };
+
+  IODigest = buildPerlPackage {
+    name = "IO-Digest-0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.10.tar.gz;
+      sha256 = "1g6ilxqv2a7spf273v7k0721c6am7pwpjrin3h5zaqxfmd312nav";
+    };
+    propagatedBuildInputs = [PerlIOviadynamic];
+  };
+
+  IOPager = buildPerlPackage {
+    name = "IO-Pager-0.06.tgz";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-0.06.tgz;
+      sha256 = "0r3af4gyjpy0f7bhs7hy5s7900w0yhbckb2dl3a1x5wpv7hcbkjb";
+    };
+  };
+
+  IPCRun = buildPerlPackage rec {
+    name = "IPC-Run-0.82";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+      sha256 = "1v5yfavvhxscqkdl68xs7i7vcp9drl3y1iawppzwqcl1fprd58ip";
+    };
+    doCheck = false; /* attempts a network connection to localhost */
+  };
+
+  JSON = buildPerlPackage {
+    name = "JSON-2.12";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-2.12.tar.gz;
+      sha256 = "0qbxfwvfsx8s50h2dzpb0z7qi22k9ghygfzbfk8v08kkpmrkls47";
+    };
+    propagatedBuildInputs = [JSONXS];
+  };
+
+  JSONAny = buildPerlPackage {
+    name = "JSON-Any-1.17";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RB/RBERJON/JSON-Any-1.17.tar.gz;
+      sha256 = "07y6zb0vzb4c87k2lflxafb69zc4a29bxhzh6xdcpjhplf4vbifb";
+    };
+    propagatedBuildInputs = [JSON];
+  };
+
+  JSONXS = buildPerlPackage {
+    name = "JSON-XS-2.23";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-2.23.tar.gz;
+      sha256 = "0yd1j5d9b0ymfzfaxyi9zgca3vqwjb3dl8pg14m1qwsx3pidd5j7";
+    };
+  };
+
+  LinguaENInflect = buildPerlPackage {
+    name = "Lingua-EN-Inflect-1.89";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.89.tar.gz;
+      sha256 = "1jvj67mvvfqxgxspmblay1c844vvhfwrviiarglkaw6phpg74rby";
+    };
+  };
+
+  LinguaENInflectNumber = buildPerlPackage {
+    name = "Lingua-EN-Inflect-Number-1.1";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SI/SIMON/Lingua-EN-Inflect-Number-1.1.tar.gz;
+      sha256 = "13hlr1srp9cd9mcc78snkng9il8iavvylfyh81iadvn2y7wikwfy";
+    };
+    propagatedBuildInputs = [LinguaENInflect];
+  };
+
+  ListMoreUtils = buildPerlPackage {
+    name = "List-MoreUtils-0.22";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/V/VP/VPARSEVAL/List-MoreUtils-0.22.tar.gz;
+      sha256 = "1dv21xclh6r1cyy19r34xv2w6pc1jb5pwj7b2739m78xhlk8p55l";
+    };
+  };
+
+  LocaleGettext = buildPerlPackage {
+    name = "LocaleGettext-1.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.05.tar.gz;
+      sha256 = "15262a00vx714szpx8p2z52wxkz46xp7acl72znwjydyq4ypydi7";
+    };
+  };
+
+  LocaleMaketext = buildPerlPackage {
+    name = "Locale-Maketext-1.13";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FE/FERREIRA/Locale-Maketext-1.13.tar.gz;
+      sha256 = "0qvrhcs1f28ix3v8hcd5xr4z9s7plz4g5a4q1cjp7bs0c3w2yl6z";
+    };
+    propagatedBuildInputs = [I18NLangTags];
+  };
+
+  LocaleMaketextLexicon = buildPerlPackage {
+    name = "Locale-Maketext-Lexicon-0.66";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Lexicon-0.66.tar.gz;
+      sha256 = "1cd2kbcrlyjcmlr7m8kf94mm1hlr7hpv1r80a596f4ljk81f2nvd";
+    };
+    propagatedBuildInputs = [LocaleMaketext];
+  };
+
+  LocaleMaketextSimple = buildPerlPackage {
+    name = "Locale-Maketext-Simple-0.18";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Simple-0.18.tar.gz;
+      sha256 = "14kx7vkxyfqndy90rzavrjp2346aidyc7x5dzzdj293qf8s4q6ig";
+    };
+  };
+
+  LWP = buildPerlPackage rec {
+    name = "libwww-perl-5.825";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/${name}.tar.gz";
+      sha256 = "1wb7br1n86571xz19l20cc5ysy1lx3rhvlk02g5517919z3jxvhw";
+    };
+    propagatedBuildInputs = [URI HTMLParser HTMLTagset];
+  };
+
+  MailTools = buildPerlPackage {
+    name = "MailTools-2.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.04.tar.gz;
+      sha256 = "0w91rcrz4v0pjdnnv2mvlbrm9ww32f7ajhr7xkjdhhr3455p7adx";
+    };
+    propagatedBuildInputs = [TimeDate TestPod];
+  };
+
+  MIMETypes = buildPerlPackage {
+    name = "MIME-Types-1.24";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-1.24.tar.gz;
+      sha256 = "1j89kjv9lipv6r3bq6dp0k9b8y1f8z9vrmhi7b8h7cs1yc8g7qz9";
+    };
+    propagatedBuildInputs = [TestPod];
+  };
+
+  ModuleBuild = buildPerlPackage {
+    name = "Module-Build-0.2808";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Module-Build-0.2808.tar.gz;
+      sha256 = "1h8zpf4g2n8v47l9apmdqbdgcg039g70w75hpn84m37pmqkbnj8v";
+    };
+    propagatedBuildInputs = [ExtUtilsInstall ExtUtilsManifest TestHarness];
+  };
+
+  ModuleFind = buildPerlPackage {
+    name = "Module-Find-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.06.tar.gz;
+      sha256 = "1394jk0rn2zmchpl11kim69xh5h5yzg96jdlf76fqrk3dcn0y2ip";
+    };
+  };
+
+  Moose = buildPerlPackage rec {
+    name = "Moose-0.73";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "1h1d551fbrsbr0knvcah4jyg999667ykhgbldl5rv4h7kdzsqsvz";
+    };
+    propagatedBuildInputs = [
+      TestMore TestException TaskWeaken ListMoreUtils
+      ClassMOP SubExporter
+    ];
+  };
+
+  MooseXEmulateClassAccessorFast = buildPerlPackage rec {
+    name = "MooseX-Emulate-Class-Accessor-Fast-0.00800";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRODITI/${name}.tar.gz";
+      sha256 = "1z2sld2sw1mlwxwzxxanik3086cw14rdsx2wwnzrfy7prsnigcl2";
+    };
+    propagatedBuildInputs = [Moose NamespaceClean];
+  };
+
+  Mouse = buildPerlPackage {
+    name = "Mouse-0.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SA/SARTAK/Mouse-0.09.tar.gz;
+      sha256 = "1akymbjim6w6i1q8h97izah26ndmcbnl1lwdsw9fa22hnhm0axg0";
+    };
+  };
+
+  MROCompat = buildPerlPackage {
+    name = "MRO-Compat-0.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BL/BLBLACK/MRO-Compat-0.09.tar.gz;
+      sha256 = "16l37bxd5apax4kyvnadiplz8xmmx76y9pyq9iksqrv0d5rl5vl8";
+    };
+  };
+
+  NamespaceClean = buildPerlPackage {
+    name = "namespace-clean-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PH/PHAYLON/namespace-clean-0.08.tar.gz;
+      sha256 = "1jwc15zz1j6indqgz64l09ayg0db4gfaasq74x0vyi1yx3d9x2yx";
+    };
+    propagatedBuildInputs = [ScopeGuard];
+  };
+
+  NetDNS = buildPerlPackage {
+    name = "Net-DNS-0.63";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/O/OL/OLAF/Net-DNS-0.63.tar.gz;
+      sha256 = "1pswrwhkav051xahm3k4cbyhi8kqpfmaz85lw44kwi2wc7mz4prk";
+    };
+    propagatedBuildInputs = [NetIP DigestHMAC];
+    doCheck = false;
+  };
+
+  NetIP = buildPerlPackage {
+    name = "Net-IP-1.25";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MA/MANU/Net-IP-1.25.tar.gz;
+      sha256 = "1iv0ka6d8kp9iana6zn51sxbcmz2h3mbn6cd8pald36q5whf5mjc";
+    };
+  };
+
+  NetServer = buildPerlPackage rec {
+    name = "Net-Server-0.97";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RH/RHANDOM/${name}.tar.gz";
+      sha256 = "13vhv13w06g6h6iqx440q1h6hwj0kpjdxcc3fl9crkwg5glygg2f";
+    };
+    doCheck = false; # seems to hang waiting for connections
+  };
+
+  ObjectSignature = buildPerlPackage {
+    name = "Object-Signature-1.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AD/ADAMK/Object-Signature-1.05.tar.gz;
+      sha256 = "10k9j18jpb16brv0hs7592r7hx877290pafb8gnk6ydy7hcq9r2j";
+    };
+  };
+
+  ParamsUtil = buildPerlPackage rec {
+    name = "Params-Util-0.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+      sha256 = "1n36vhahbs2mfck5x6g8ab9280zji9zwc5092jiq78s791227cb6";
+    };
+  };
+
+  ParamsValidate = buildPerlPackage rec {
+    name = "Params-Validate-0.91";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
+      sha256 = "1j0hx3pbfdyggbhrawa9k0wdm6lln3zdkrhjrdg1hzzf6csrlc1v";
+    };
+  };
+
+  Parent = buildPerlPackage {
+    name = "parent-0.221";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CO/CORION/parent-0.221.tar.gz;
+      sha256 = "17jhscpa5p5szh1173pd6wvh2m05an1l941zqq9jkw9bzgk12hm0";
+    };
+  };
+
+  PathClass = buildPerlPackage {
+    name = "Path-Class-0.16";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.16.tar.gz;
+      sha256 = "0zisxkj58jm84fwcssmdq8g6n37s33v5h7j28m12sbkqib0h76gc";
+    };
+  };
+
+  Perl5lib = buildPerlPackage rec {
+    name = "perl5lib-1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NO/NOBULL/${name}.tar.gz";
+      sha256 = "1b6fgs8wy2a7ff8rr1qdvdghhvlpr1pv760k4i2c8lq1hhjnkf94";
+    };
+  };
+
+  PerlIOeol = buildPerlPackage {
+    name = "PerlIO-eol-0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AU/AUDREYT/PerlIO-eol-0.14.tar.gz;
+      sha256 = "1rwj0r075jfvvd0fnzgdqldc7qdb94wwsi21rs2l6yhcv0380fs2";
+    };
+  };
+
+  PerlIOviadynamic = buildPerlPackage {
+    name = "PerlIO-via-dynamic-0.12";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-dynamic-0.12.tar.gz;
+      sha256 = "140hay9q8q9sz1fa2s57ijp5l2448fkcg7indgn6k4vc7yshmqz2";
+    };
+  };
+
+  PerlIOviasymlink = buildPerlPackage {
+    name = "PerlIO-via-symlink-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-symlink-0.05.tar.gz;
+      sha256 = "0lidddcaz9anddqrpqk4zwm550igv6amdhj86i2jjdka9b1x81s1";
+    };
+  };
+
+  ModulePluggable = buildPerlPackage {
+    name = "Module-Pluggable-3.5";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-3.5.tar.gz;
+      sha256 = "08rywi79pqn2c8zr17fmd18lpj5hm8lxd1j4v2k002ni8vhl43nv";
+    };
+    patches = [
+      # !!! merge this patch into Perl itself (which contains Module::Pluggable as well)
+      ../development/perl-modules/module-pluggable.patch
+    ];
+  };
+
+  ModulePluggableFast = buildPerlPackage {
+    name = "Module-Pluggable-Fast-0.18";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SR/SRI/Module-Pluggable-Fast-0.18.tar.gz;
+      sha256 = "140c311x2darrc2p1drbkafv7qwhzdcff4ad300n6whsx4dfp6wr";
+    };
+    propagatedBuildInputs = [UNIVERSALrequire];
+  };
+
+  PodCoverage = buildPerlPackage rec {
+    name = "Pod-Coverage-0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/${name}.tar.gz";
+      sha256 = "1krsz4zwmnmq3z29p5vmyr5fdzrn8v0sg6rf3qxk7xpxw4z5np84";
+    };
+    propagatedBuildInputs = [DevelSymdump];
+  };
+
+  PodEscapes = buildPerlPackage {
+    name = "Pod-Escapes-1.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SB/SBURKE/Pod-Escapes-1.04.tar.gz;
+      sha256 = "1wrg5dnsl785ygga7bp6qmakhjgh9n4g3jp2l85ab02r502cagig";
+    };
+  };
+
+  PodSimple = buildPerlPackage {
+    name = "Pod-Simple-3.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AR/ARANDAL/Pod-Simple-3.05.tar.gz;
+      sha256 = "1j0kqcvr9ykcqlkr797j1npkbggykb3p4w5ri73s8mi163lzxkqb";
+    };
+    propagatedBuildInputs = [constant PodEscapes];
+  };
+
+  Readonly = buildPerlPackage rec {
+    name = "Readonly-1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROODE/${name}.tar.gz";
+      sha256 = "1shkyxajh6l87nif47ygnfxjwvqf3d3kjpdvxaff4957vqanii2k";
+    };
+  };
+
+  RegexpAssemble = buildPerlPackage rec {
+    name = "Regexp-Assemble-0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DL/DLAND/${name}.tar.gz";
+      sha256 = "173dnzi3dag88afr4xf5v0hki15cfaffyjimjfmvzv6gbx6fp96f";
+    };
+  };
+
+  RegexpCommon = buildPerlPackage rec {
+    name = "Regexp-Common-2.122";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABIGAIL/${name}.tar.gz";
+      sha256 = "1mi411nfsx58nfsgjsbyck50x9d0yfvwqpw63iavajlpx1z38n8r";
+    };
+  };
+
+  RegexpCopy = buildPerlPackage rec {
+    name = "Regexp-Copy-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JD/JDUNCAN/${name}.tar.gz";
+      sha256 = "09c8xb43p1s6ala6g4274az51mf33phyjkp66dpvgkgbi1xfnawp";
+    };
+  };
+
+  ReturnValue = buildPerlPackage {
+    name = "Return-Value-1.302";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.302.tar.gz;
+      sha256 = "0hf5rmfap49jh8dnggdpvapy5r4awgx5hdc3acc9ff0vfqav8azm";
+    };
+  };
+
+  ScopeGuard = buildPerlPackage {
+    name = "Scope-Guard-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.03.tar.gz;
+      sha256 = "07x966fkqxlwnngxs7a2jrhabh8gzhjfpqq56n9gkwy7f340sayb";
+    };
+  };
+
+  ScopeUpper = buildPerlPackage rec {
+    name = "Scope-Upper-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VP/VPIT/${name}.tar.gz";
+      sha256 = "1qaf310wbfpjb0lmg3fpmhbfnjxqw3j47rj0w0f0cy4bgihi8l43";
+    };
+  };
+
+  SetObject = buildPerlPackage {
+    name = "Set-Object-1.26";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SA/SAMV/Set-Object-1.26.tar.gz;
+      sha256 = "1hx3wrw8xkvaggacc8zyn86hfi3079ahmia1n8vsw7dglp1bbhmj";
+    };
+  };
+
+  SQLAbstract = buildPerlPackage rec {
+    name = "SQL-Abstract-1.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/${name}.tar.gz";
+      sha256 = "1q77yfdrkadf738zvdgarkv0136zs2shz3fdmwaaf03bhvhcbap2";
+    };
+    propagatedBuildInputs = [
+      TestDeep TestException TestWarn
+    ];
+  };
+
+  SQLAbstractLimit = buildPerlPackage rec {
+    name = "SQL-Abstract-Limit-0.141";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVEBAIRD/${name}.tar.gz";
+      sha256 = "1qqh89kz065mkgyg5pjcgbf8qcpzfk8vf1lgkbwynknadmv87zqg";
+    };
+    propagatedBuildInputs = [
+      SQLAbstract TestException DBI TestDeep
+    ];
+    buildInputs = [TestPod TestPodCoverage];
+  };
+
+  StringMkPasswd = buildPerlPackage {
+    name = "String-MkPasswd-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.02.tar.gz;
+      sha256 = "0si4xfgf8c2pfag1cqbr9jbyvg3hak6wkmny56kn2qwa4ljp9bk6";
+    };
+  };
+
+  SubExporter = buildPerlPackage rec {
+    name = "Sub-Exporter-0.982";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "0xf8q05k5xs3bw6qy3pnnl5d670njxsxbw2dprl7n50hf488cbvj";
+    };
+    propagatedBuildInputs = [SubInstall DataOptList ParamsUtil];
+  };
+
+  SubIdentify = buildPerlPackage rec {
+    name = "Sub-Identify-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RG/RGARCIA/${name}.tar.gz";
+      sha256 = "16g4dkmb4h5hh15jsq0kvsf3irrlrlqdv7qk6605wh5gjjwbcjxy";
+    };
+  };
+
+  SubInstall = buildPerlPackage rec {
+    name = "Sub-Install-0.925";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "1sccc4nwp9y24zkr42ww2gwg6zwax4madi9spsdym1pqna3nwnm6";
+    };
+  };
+
+  SubName = buildPerlPackage {
+    name = "Sub-Name-0.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/X/XM/XMATH/Sub-Name-0.04.tar.gz;
+      sha256 = "1nlin0ag2krpmiyapp3lzb6qw2yfqvqmx57iz5zwbhr4pyi46bhb";
+    };
+  };
+
+  SubOverride = buildPerlPackage rec {
+    name = "Sub-Override-0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/${name}.tar.gz";
+      sha256 = "13s5zi6qz02q50vv4bmwdmhn9gvg0988fydjlrrv500g6hnyzlkj";
+    };
+    propagatedBuildInputs = [SubUplevel TestException];
+  };
+
+  SubUplevel = buildPerlPackage {
+    name = "Sub-Uplevel-0.2002";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2002.tar.gz;
+      sha256 = "19b2b9xsw7lvvkcmmnhhv8ybxdkbnrky9nnqgjridr108ww9m5rh";
+    };
+  };
+
+  SVK = buildPerlPackage {
+    name = "SVK-v2.0.2";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/SVK-v2.0.2.tar.gz;
+      sha256 = "0c4m2q7cvzwh9kk1nc1vd8lkxx2kss5nd4k20dpkal4c7735jns0";
+    };
+    propagatedBuildInputs = [
+      AlgorithmDiff AlgorithmAnnotate AppCLI
+      ClassDataInheritable DataHierarchy Encode FileTemp
+      IODigest ListMoreUtils PathClass PerlIOeol
+      PerlIOviadynamic PerlIOviasymlink PodEscapes
+      PodSimple SVNMirror TimeHiRes UNIVERSALrequire
+      URI YAMLSyck ClassAutouse IOPager
+      LocaleMaketextLexicon FreezeThaw
+    ];
+  };
+
+  SVNMirror = buildPerlPackage {
+    name = "SVN-Mirror-0.73";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/SVN-Mirror-0.73.tar.gz;
+      sha256 = "1scjaq7qjz6jlsk1c2l5q15yxf0sqbydvf22mb2xzy1bzaln0x2c";
+    };
+    propagatedBuildInputs = [
+      ClassAccessor Filechdir pkgs.subversion URI
+      TermReadKey TimeDate SVNSimple
+    ];
+  };
+
+  SVNSimple = buildPerlPackage {
+    name = "SVN-Simple-0.27";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLKAO/SVN-Simple-0.27.tar.gz;
+      sha256 = "0p7p52ja6sf4j0w3b05i0bbqi5wiambckw2m5dsr63bbmlhv4a71";
+    };
+    propagatedBuildInputs = [pkgs.subversion];
+  };
+
+  TaskCatalystTutorial = buildPerlPackage rec {
+    name = "Task-Catalyst-Tutorial-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/${name}.tar.gz";
+      sha256 = "07nn8a30n3qylpnf7s4ma6w462g31pywwikib117hr2mc7cv5cbm";
+    };
+    propagatedBuildInputs = [
+      CatalystManual CatalystRuntime CatalystDevel
+      CatalystPluginSession CatalystPluginAuthentication
+      CatalystAuthenticationStoreDBIxClass
+      CatalystPluginAuthorizationRoles
+      CatalystPluginAuthorizationACL
+      CatalystPluginHTMLWidget
+      CatalystPluginSessionStoreFastMmap
+      CatalystPluginStackTrace
+      CatalystViewTT
+      DBIxClass DBIxClassHTMLWidget
+      CatalystControllerHTMLFormFu
+    ];
+    buildInputs = [TestPodCoverage];
+  };
+
+  TaskWeaken = buildPerlPackage {
+    name = "Task-Weaken-1.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AD/ADAMK/Task-Weaken-1.02.tar.gz;
+      sha256 = "10f9kd1lwbscmmjwgbfwa4kkp723mb463lkbmh29rlhbsl7kb5wz";
+    };
+  };
+
+  TemplateTimer = buildPerlPackage {
+    name = "Template-Timer-0.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PETDANCE/Template-Timer-0.04.tar.gz;
+      sha256 = "0j0gmxbq1svp0rb4kprwj2fk2mhl07yah08bksfz0a0pfz6lsam4";
+    };
+    propagatedBuildInputs = [TemplateToolkit];
+  };
+
+  TemplateToolkit = buildPerlPackage {
+    name = "Template-Toolkit-2.20";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-2.20.tar.gz;
+      sha256 = "13wbh06a76k4ag14lhszmpwv4hb8hlj1d9glizhp8izazl3xf1zg";
+    };
+    propagatedBuildInputs = [AppConfig];
+    patches = [
+      # Needed to make TT works proy on templates in the Nix store.
+      ../development/perl-modules/template-toolkit-nix-store.patch
+    ];
+  };
+
+  TermReadKey = buildPerlPackage {
+    name = "TermReadKey-2.30";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz;
+      md5 = "f0ef2cea8acfbcc58d865c05b0c7e1ff";
+    };
+  };
+
+  TestDeep = buildPerlPackage {
+    name = "Test-Deep-0.103";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FD/FDALY/Test-Deep-0.103.tar.gz;
+      sha256 = "0cdl08k5v0wc9w20va5qw98ynlbs9ifwndgsix8qhi7h15sj8a5j";
+    };
+    propagatedBuildInputs = [TestTester TestNoWarnings];
+  };
+
+  TestException = buildPerlPackage {
+    name = "Test-Exception-0.27";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AD/ADIE/Test-Exception-0.27.tar.gz;
+      sha256 = "1s921j7yv2szywd1ffi6yz3ngrbq97f9dh38bvvajqnm29g1xb9j";
+    };
+    propagatedBuildInputs = [TestHarness TestSimple SubUplevel];
+  };
+
+  TestHarness = buildPerlPackage {
+    name = "Test-Harness-3.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AN/ANDYA/Test-Harness-3.10.tar.gz;
+      sha256 = "1qd217yzppj1vbjhny06v8niqhz85pam996ry6bzi08z0jidr2wh";
+    };
+  };
+
+  TestLongString = buildPerlPackage rec {
+    name = "Test-LongString-0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RG/RGARCIA/${name}.tar.gz";
+      sha256 = "0ln3117nfxzq7yxmfk77nnr7116inbjq4bf5v2p0hqlj4damx03d";
+    };
+  };
+
+  TestMockObject = buildPerlPackage {
+    name = "Test-MockObject-1.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CH/CHROMATIC/Test-MockObject-1.09.tar.gz;
+      sha256 = "1cz385x0jrkj84nmfs6qyzwwvv8m9v8r2isagfj1zxvhdw49wdyy";
+    };
+    propagatedBuildInputs = [TestException UNIVERSALisa UNIVERSALcan];
+  };
+
+  TestMockTime = buildPerlPackage rec {
+    name = "Test-MockTime-0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DD/DDICK/${name}.tar.gz";
+      sha256 = "1j2riyikzyfkxsgkfdqirs7xa8q5d06b9klpk7l9sgydwqdvxdv3";
+    };
+  };
+
+  TestMore = TestSimple;
+
+  TestNoWarnings = buildPerlPackage {
+    name = "Test-NoWarnings-0.084";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FD/FDALY/Test-NoWarnings-0.084.tar.gz;
+      sha256 = "19g47pa3brr9px3jnwziapvxcnghqqjjwxz1jfch4asawpdx2s8b";
+    };
+    propagatedBuildInputs = [TestTester];
+  };
+
+  TestPod = buildPerlPackage {
+    name = "Test-Pod-1.26";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PETDANCE/Test-Pod-1.26.tar.gz;
+      sha256 = "025rviipiaa1rf0bp040jlwaxwvx48kdcjriaysvkjpyvilwvqd4";
+    };
+  };
+
+  TestPodCoverage = buildPerlPackage rec {
+    name = "Test-Pod-Coverage-1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
+      sha256 = "0y2md932zhbxdjwzskx0vmw2qy7jxkn87f9lb5h3f3vxxg1kcqz0";
+    };
+    propagatedBuildInputs = [PodCoverage];
+  };
+
+  TestSimple = buildPerlPackage {
+    name = "Test-Simple-0.84";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Simple-0.84.tar.gz;
+      sha256 = "030j47q3p46jfk60dsh2d5m7ip4nqz0fl4inqr8hx8b8q0f00r4l";
+    };
+    propagatedBuildInputs = [TestHarness];
+  };
+
+  TestTester = buildPerlPackage {
+    name = "Test-Tester-0.107";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FD/FDALY/Test-Tester-0.107.tar.gz;
+      sha256 = "0qgmsl6s6xm39211lywyzwrlz0gcmax7fb8zipybs9yxfmwcvyx2";
+    };
+  };
+
+  TestUseOk = buildPerlPackage rec {
+    name = "Test-use-ok-0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AU/AUDREYT/${name}.tar.gz";
+      sha256 = "11inaxiavb35k8zwxwbfbp9wcffvfqas7k9idy822grn2sz5gyig";
+    };
+  };
+
+  TestWarn = buildPerlPackage {
+    name = "Test-Warn-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CH/CHORNY/Test-Warn-0.11.tar.gz;
+      sha256 = "1y9g13bzvjsmg5v555zrl7w085jq40a47hfs4gc3k78s0bkwxbyi";
+    };
+    propagatedBuildInputs = [TestSimple TestException ArrayCompare TreeDAGNode];
+    buildInputs = [TestPod];
+  };
+
+  TestWWWMechanize = buildPerlPackage rec {
+    name = "Test-WWW-Mechanize-1.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
+      sha256 = "11knym5ppish78rk8r1hymvq1py43h7z8d6nk8p4ig3p246xx5qa";
+    };
+    propagatedBuildInputs = [
+      CarpAssertMore URI TestLongString WWWMechanize
+    ];
+    doCheck = false;
+  };
+
+  TestWWWMechanizeCatalyst = buildPerlPackage rec {
+    name = "Test-WWW-Mechanize-Catalyst-0.45";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LB/LBROCARD/${name}.tar.gz";
+      sha256 = "0hixz0hibv2z87kdqvrphzgww0xibgg56w7bh299dgw2739hy4yf";
+    };
+    propagatedBuildInputs = [
+      CatalystRuntime TestWWWMechanize WWWMechanize
+      CatalystPluginSessionStateCookie
+    ];
+    buildInputs = [TestPod];
+    doCheck = false;
+  };
+
+  TextCSV = buildPerlPackage rec {
+    name = "Text-CSV-1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/${name}.tar.gz";
+      sha256 = "0vb0093v3kk7iczb46zzdg7myfyjldwrk8wbk7ibk56gvj350f7c";
+    };
+  };
+
+  TextSimpleTable = buildPerlPackage {
+    name = "Text-SimpleTable-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SR/SRI/Text-SimpleTable-0.05.tar.gz;
+      sha256 = "028pdfmr2gnaq8w3iar8kqvrpxcghnag8ls7h4227l9zbxd1k9p9";
+    };
+  };
+
+  TieToObject = buildPerlPackage {
+    name = "Tie-ToObject-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz;
+      sha256 = "1x1smn1kw383xc5h9wajxk9dlx92bgrbf7gk4abga57y6120s6m3";
+    };
+    propagatedBuildInputs = [TestUseOk];
+  };
+
+  TimeDate = buildPerlPackage {
+    name = "TimeDate-1.16";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GB/GBARR/TimeDate-1.16.tar.gz;
+      sha256 = "1cvcpaghn7dc14m9871sfw103g3m3a00m2mrl5iqb0mmh40yyhkr";
+    };
+  };
+
+  TimeHiRes = buildPerlPackage {
+    name = "Time-HiRes-1.9715";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JH/JHI/Time-HiRes-1.9715.tar.gz;
+      sha256 = "0pgqrfkysy3mdcx5nd0x8c80lgqb7rkb3nrkii3vc576dcbpvw0i";
+    };
+  };
+
+  TreeDAGNode = buildPerlPackage {
+    name = "Tree-DAG_Node-1.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CO/COGENT/Tree-DAG_Node-1.06.tar.gz;
+      sha256 = "0anvwfh4vqj41ipq52p65sqlvw3rvm6cla5hbws13gyk9mvp09ah";
+    };
+  };
+
+  TreeSimple = buildPerlPackage {
+    name = "Tree-Simple-1.18";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/ST/STEVAN/Tree-Simple-1.18.tar.gz;
+      sha256 = "0bb2hc8q5rwvz8a9n6f49kzx992cxczmrvq82d71757v087dzg6g";
+    };
+    propagatedBuildInputs = [TestException];
+  };
+
+  TreeSimpleVisitorFactory = buildPerlPackage {
+    name = "Tree-Simple-VisitorFactory-0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/ST/STEVAN/Tree-Simple-VisitorFactory-0.10.tar.gz;
+      sha256 = "1ghcgnb3xvqjyh4h4aa37x98613aldnpj738z9b80p33bbfxq158";
+    };
+    propagatedBuildInputs = [TreeSimple];
+    buildInputs = [TestException];
+  };
+
+  FontTTF = buildPerlPackage {
+    name = "perl-Font-TTF-0.43";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MH/MHOSKEN/Font-TTF-0.43.tar.gz;
+      sha256 = "0782mj5n5a2qbghvvr20x51llizly6q5smak98kzhgq9a7q3fg89";
+    };
+  };
+
+  UNIVERSALcan = buildPerlPackage {
+    name = "UNIVERSAL-can-1.12";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.12.tar.gz;
+      sha256 = "1abadbgcy11cmlmj9qf1v73ycic1qhysxv5xx81h8s4p81alialr";
+    };
+  };
+
+  UNIVERSALisa = stdenv.mkDerivation rec {
+    name = "UNIVERSAL-isa-1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/${name}.tar.gz";
+      sha256 = "0iksklmfhiaxg2rsw827n97k1mris6dg596rdwk2gmrwl0rsk0wz";
+    };
+    # Urgh, this package doesn't have a Makefile.PL.
+    buildInputs = [perl];
+    configurePhase = "perl Build.PL --prefix=$out";
+    buildPhase = "perl ./Build";
+    doCheck = true;
+    checkPhase = "perl ./Build test";
+    installPhase = "perl ./Build install";
+  };
+
+  UNIVERSALrequire = buildPerlPackage {
+    name = "UNIVERSAL-require-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSCHWERN/UNIVERSAL-require-0.11.tar.gz;
+      sha256 = "1rh7i3gva4m96m31g6yfhlqcabszhghbb3k3qwxbgx3mkf5s6x6i";
+    };
+  };
+
+  URI = buildPerlPackage rec {
+    name = "URI-1.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/${name}.tar.gz";
+      sha256 = "0amwbss2gz00fkdfnfixf1afmqal1246xhmj27g5c0ny7ahcid0j";
+    };
+  };
+
+  W3CLinkChecker = buildPerlPackage rec {
+    name = "W3C-LinkChecker-4.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCOP/${name}.tar.gz";
+      sha256 = "0j2zlg57g0y9hqy8n35x5rfkpm7rnfjlwny5g0zaxwrl62ndkbm9";
+    };
+    propagatedBuildInputs = [
+      LWP ConfigGeneral NetIP TermReadKey Perl5lib
+      CryptSSLeay
+    ];
+    meta = {
+      homepage = http://validator.w3.org/checklink;
+      description = "A tool to check links and anchors in Web pages or full Web sites";
+    };
+  };
+
+  WWWMechanize = buildPerlPackage rec {
+    name = "WWW-Mechanize-1.54";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
+      sha256 = "1yxvw5xfng5fj4422869p5dwvmrkmqph9gdm2nl12wngydk93lnh";
+    };
+    propagatedBuildInputs = [LWP HTTPResponseEncoding HTTPServerSimple];
+    doCheck = false;
+  };
+
+  XMLDOM = buildPerlPackage {
+    name = "XML-DOM-1.44";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-1.44.tar.gz;
+      sha256 = "1r0ampc88ni3sjpzr583k86076qg399arfm9xirv3cw49k3k5bzn";
+    };
+    #buildInputs = [libxml2];
+    propagatedBuildInputs = [XMLRegExp XMLParser LWP];
+  };
+
+  XMLLibXML = buildPerlPackage {
+    name = "XML-LibXML-1.66";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PA/PAJAS/XML-LibXML-1.66.tar.gz;
+      sha256 = "1a0bdiv3px6igxnbbjq10064iahm8f5i310p4y05w6zn5d51awyl";
+    };
+    buildInputs = [pkgs.libxml2];
+    propagatedBuildInputs = [XMLLibXMLCommon XMLSAX];
+  };
+
+  XMLLibXMLCommon = buildPerlPackage {
+    name = "XML-LibXML-Common-0.13";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PH/PHISH/XML-LibXML-Common-0.13.tar.gz;
+      md5 = "13b6d93f53375d15fd11922216249659";
+    };
+    buildInputs = [pkgs.libxml2];
+  };
+
+  XMLNamespaceSupport = buildPerlPackage {
+    name = "XML-NamespaceSupport-1.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RB/RBERJON/XML-NamespaceSupport-1.09.tar.gz;
+      sha256 = "0ny2i4pf6j8ggfj1x02rm5zm9a37hfalgx9w9kxnk69xsixfwb51";
+    };
+  };
+
+  XMLParser = buildPerlPackage {
+    name = "XML-Parser-2.36";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz;
+      sha256 = "0gyp5qfbflhkin1zv8l6wlkjwfjvsf45a3py4vc6ni82fj32kmcz";
+    };
+    makeMakerFlags = "EXPATLIBPATH=${pkgs.expat}/lib EXPATINCPATH=${pkgs.expat}/include";
+  };
+
+  XMLRegExp = buildPerlPackage {
+    name = "XML-RegExp-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.03.tar.gz;
+      sha256 = "1gkarylvdk3mddmchcwvzq09gpvx5z26nybp38dg7mjixm5bs226";
+    };
+  };
+
+  XMLSAX = buildPerlPackage {
+    name = "XML-SAX-0.96";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-0.96.tar.gz;
+      sha256 = "024fbjgg6s87j0y3yik55plzf7d6qpn7slwd03glcb54mw9zdglv";
+    };
+    propagatedBuildInputs = [XMLNamespaceSupport];
+  };
+
+  XMLSimple = buildPerlPackage {
+    name = "XML-Simple-2.18";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.18.tar.gz;
+      sha256 = "09k8fvc9m5nd5rqq00rwm3m0wx7iwd6vx0vc947y58ydi30nfjd5";
+    };
+    propagatedBuildInputs = [XMLParser];
+  };
+
+  XMLTwig = buildPerlPackage {
+    name = "XML-Twig-3.32";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIROD/XML-Twig-3.32.tar.gz;
+      sha256 = "07zdsfzw9dlrx6ril9clf1jfif09vpf27rz66laja7mvih9izd1v";
+    };
+    propagatedBuildInputs = [XMLParser];
+  };
+
+  XMLWriter = buildPerlPackage {
+    name = "XML-Writer-0.602";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.602.tar.gz;
+      sha256 = "0kdi022jcn9mwqsxy2fiwl2cjlid4x13r038jvi426fhjknl11nl";
+    };
+  };
+
+  XSLoader = buildPerlPackage {
+    name = "XSLoader-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SA/SAPER/XSLoader-0.08.tar.gz;
+      sha256 = "0mr4l3givrpyvz1kg0kap2ds8g0rza2cim9kbnjy8hi64igkixi5";
+    };
+  };
+
+  YAML = buildPerlPackage rec {
+    name = "YAML-0.68";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
+      sha256 = "0yg0pgsjkfczsblx03rxlw4ib92k0gwdyb1a258xb9wdg0w61h34";
+    };
+  };
+
+  YAMLSyck = buildPerlPackage rec {
+    name = "YAML-Syck-1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AU/AUDREYT/${name}.tar.gz";
+      sha256 = "15acwp2qdxfmhfqj4c1s57xyy48hcfc87lblww3lbvihqbysyzss";
+    };
+  };
+
+}
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 429a2408de013..e2b1376c60788 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -122,7 +122,6 @@ in {
   gcc34 = linux;
   gcc43_multi = ["x86_64-linux"];
   gdb = all;
-  ghc = ghcSupported;
   ghostscript = linux;
   ghostscriptX = linux;
   gimp = linux;
@@ -153,6 +152,7 @@ in {
   hal = linux;
   hello = all;
   host = linux;
+  hugin = linux;
   iana_etc = linux;
   icecat3Xul = [ "i686-linux" ];
   idutils = all;
@@ -174,7 +174,6 @@ in {
   kvm = linux;
   less = all;
   lftp = all;
-  lhs2tex = ghcSupported;
   libsmbios = linux;
   libtool = all;
   libtool_2 = all;
@@ -223,7 +222,6 @@ in {
   pavucontrol = linux;
   pciutils = linux;
   perl = all;
-  perlTaskCatalystTutorial = linux;
   php = linux;
   pidgin = linux;
   pinentry = linux;
@@ -256,6 +254,7 @@ in {
   sqlite = allBut "i686-cygwin";
   ssmtp = linux;
   stdenv = prio 175 all;
+  stlport = linux;
   strace = linux;
   su = linux;
   subversion = all;
@@ -295,7 +294,6 @@ in {
   wget = all;
   wine = ["i686-linux"];
   wirelesstools = linux;
-  wxHaskell = linux;
   x11_ssh_askpass = linux;
   xchm = linux;
   xfig = x11Supported;
@@ -332,6 +330,24 @@ in {
     gtk = linux;
   };
 
+  haskellPackages_ghc683 = {
+    ghc = ghcSupported;
+  };
+
+  haskellPackages_ghc6101 = {
+    ghc = ghcSupported;
+  };
+
+  haskellPackages_ghc6102 = {
+    darcs = ghcSupported;
+    ghc = ghcSupported;
+    gtk2hs = ghcSupported;
+    leksah = ghcSupported;
+    lhs2tex = ghcSupported;
+    haskellPlatform = ghcSupported;
+    xmonad = ghcSupported;
+  };
+
   kde3 = {
     kdebase = linux;
     kdelibs = linux;
@@ -391,6 +407,10 @@ in {
     javafront = all;
     dryad = linux;
   };
+
+  perlPackages = {
+    TaskCatalystTutorial = linux;
+  };
   
   xorg = {
     fontadobe100dpi = linux;
diff --git a/pkgs/top-level/template-debian.nix b/pkgs/top-level/template-debian.nix
deleted file mode 100644
index 80621b27c4d22..0000000000000
--- a/pkgs/top-level/template-debian.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-args: with args; with debPackage;
-debBuild ({
-  src = fetchurl {
-    url = mirror://debian/pool/(abort "Specify URL");
-  };
-  patch = fetchurl {
-    url = mirror://debian/pool/(abort "Specify URL");
-  };
-  name = "${abort "Specify name"}";
-  buildInputs = [];
-  meta = {
-    description = "${abort "Specify description"}";
-  };
-} // args)
diff --git a/pkgs/top-level/template-simple.nix b/pkgs/top-level/template-simple.nix
deleted file mode 100644
index 4eac1fcad0a33..0000000000000
--- a/pkgs/top-level/template-simple.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-args: with args;
-stdenv.mkDerivation {
-  name = "";
-
-  src = fetchurl {
-    url = ;
-    sha256 = "";
-  };
-
-  buildInputs =[];
-
-  meta = {
-    description = "
-
-";
-  };
-}