summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2011-08-31 18:12:33 +0000
committerShea Levy <shea@shealevy.com>2011-08-31 18:12:33 +0000
commit191a4c404ab57be4466e9b2d6ef25c6c77152602 (patch)
tree23000acd1260299138cdb9cf355ab0054ecfc783 /pkgs/development/tools
parentf7f9b39450877382151dc0bdd10281404780f19f (diff)
parent04b1ac31da9885e3b1893a98e5280b8f9a039652 (diff)
svn path=/nixpkgs/branches/darwin-updates/; revision=28944
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix30
-rw-r--r--pkgs/development/tools/build-managers/cmake/search-path.patch95
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix37
-rw-r--r--pkgs/development/tools/documentation/haddock/2.4.2.nix21
-rw-r--r--pkgs/development/tools/documentation/haddock/2.7.2.nix9
-rw-r--r--pkgs/development/tools/documentation/haddock/2.9.2.nix9
-rw-r--r--pkgs/development/tools/documentation/haddock/boot.nix34
-rw-r--r--pkgs/development/tools/documentation/haddock/haddock-0.9.nix11
-rw-r--r--pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix11
-rw-r--r--pkgs/development/tools/haskell/BNFC-meta/default.nix17
-rw-r--r--pkgs/development/tools/haskell/BNFC/default.nix20
-rw-r--r--pkgs/development/tools/haskell/HaRe/default.nix22
-rw-r--r--pkgs/development/tools/haskell/alex-meta/default.nix17
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix20
-rw-r--r--pkgs/development/tools/haskell/happy-meta/default.nix17
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix23
-rw-r--r--pkgs/development/tools/haskell/hslogger/default.nix19
-rw-r--r--pkgs/development/tools/haskell/mkcabal/default.nix12
-rw-r--r--pkgs/development/tools/haskell/tar/default.nix14
-rw-r--r--pkgs/development/tools/haskell/threadscope/default.nix26
-rw-r--r--pkgs/development/tools/haskell/uuagc/bootstrap.nix20
-rw-r--r--pkgs/development/tools/haskell/uuagc/cabal.nix18
-rw-r--r--pkgs/development/tools/haskell/uuagc/default.nix22
-rw-r--r--pkgs/development/tools/misc/automoc4/default.nix5
-rw-r--r--pkgs/development/tools/misc/avrdude/default.nix8
-rw-r--r--pkgs/development/tools/misc/cpphs/default.nix17
-rw-r--r--pkgs/development/tools/misc/dbench/default.nix22
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix54
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.1.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.2.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.3.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/2.3.5.nix20
-rw-r--r--pkgs/development/tools/parsing/alex/3.0.1.nix21
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.4.nix19
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.5.nix20
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.6.nix20
-rw-r--r--pkgs/development/tools/parsing/peg/default.nix23
37 files changed, 602 insertions, 211 deletions
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index bc66774962558..c7484ee6e84b4 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,14 +1,16 @@
-{fetchurl, stdenv, replace, curl, expat, zlib, bzip2, libarchive
+{ fetchurl, stdenv, replace, curl, expat, zlib, bzip2, libarchive
 , useNcurses ? false, ncurses, useQt4 ? false, qt4
-, darwinInstallNameToolUtility}:
+, darwinInstallNameToolUtility }:
+
+with stdenv.lib;
 
 let
   os = stdenv.lib.optionalString;
-  inherit (stdenv.lib) optional;
   majorVersion = "2.8";
   minorVersion = "4";
   version = "${majorVersion}.${minorVersion}";
 in
+
 stdenv.mkDerivation rec {
   name = "cmake-${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}";
 
@@ -19,23 +21,35 @@ stdenv.mkDerivation rec {
     sha256 = "1k2kjaj3vfifb329ff7fr4hcbpbaqb66l97pshq70h7m0zwajznr";
   };
 
+  patches =
+    # Don't search in non-Nix locations such as /usr, but do search in
+    # Nixpkgs' Glibc.
+    optional (stdenv ? glibc) ./search-path.patch;
+
   buildInputs = [ curl expat zlib bzip2 libarchive ]
     ++ optional stdenv.isDarwin darwinInstallNameToolUtility
     ++ optional useNcurses ncurses
     ++ optional useQt4 qt4;
 
   CMAKE_PREFIX_PATH = stdenv.lib.concatStringsSep ":" buildInputs;
+  
   configureFlags =
     "--docdir=/share/doc/${name} --mandir=/share/man --system-libs"
     + stdenv.lib.optionalString useQt4 " --qt-gui";
 
   setupHook = ./setup-hook.sh;
 
-  postUnpack = ''
-    dontUseCmakeConfigure=1
-    source $setupHook
-    fixCmakeFiles $sourceRoot
-  '';
+  postUnpack =
+    ''
+      dontUseCmakeConfigure=1
+      source $setupHook
+      fixCmakeFiles $sourceRoot
+    '';
+
+  preConfigure = optionalString (stdenv ? glibc)
+    ''
+      substituteInPlace Modules/Platform/UnixPaths.cmake --subst-var-by glibc ${stdenv.glibc}
+    '';
 
   meta = {
     homepage = http://www.cmake.org/;
diff --git a/pkgs/development/tools/build-managers/cmake/search-path.patch b/pkgs/development/tools/build-managers/cmake/search-path.patch
new file mode 100644
index 0000000000000..ef8a9eef7c181
--- /dev/null
+++ b/pkgs/development/tools/build-managers/cmake/search-path.patch
@@ -0,0 +1,95 @@
+diff -ru -x '*~' cmake-2.8.5-orig/Modules/Platform/Linux.cmake cmake-2.8.5/Modules/Platform/Linux.cmake
+--- cmake-2.8.5-orig/Modules/Platform/Linux.cmake	2011-07-08 14:21:44.000000000 +0200
++++ cmake-2.8.5/Modules/Platform/Linux.cmake	2011-07-21 19:45:00.000000000 +0200
+@@ -36,13 +36,13 @@
+   # checking the platform every time.  This option is advanced enough
+   # that only package maintainers should need to adjust it.  They are
+   # capable of providing a setting on the command line.
+-  IF(EXISTS "/etc/debian_version")
+-    SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
+-      "Install .so files without execute permission.")
+-  ELSE(EXISTS "/etc/debian_version")
++  #IF(EXISTS "/etc/debian_version")
++  #  SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
++  #    "Install .so files without execute permission.")
++  #ELSE(EXISTS "/etc/debian_version")
+     SET(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+       "Install .so files without execute permission.")
+-  ENDIF(EXISTS "/etc/debian_version")
++  #ENDIF(EXISTS "/etc/debian_version")
+ ENDIF(DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ 
+ # Match multiarch library directory names.
+@@ -52,6 +52,6 @@
+ 
+ # Debian has lib64 paths only for compatibility so they should not be
+ # searched.
+-IF(EXISTS "/etc/debian_version")
+-  SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
+-ENDIF(EXISTS "/etc/debian_version")
++#IF(EXISTS "/etc/debian_version")
++#  SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
++#ENDIF(EXISTS "/etc/debian_version")
+diff -ru -x '*~' cmake-2.8.5-orig/Modules/Platform/UnixPaths.cmake cmake-2.8.5/Modules/Platform/UnixPaths.cmake
+--- cmake-2.8.5-orig/Modules/Platform/UnixPaths.cmake	2011-07-08 14:21:44.000000000 +0200
++++ cmake-2.8.5/Modules/Platform/UnixPaths.cmake	2011-07-21 19:50:52.000000000 +0200
+@@ -33,55 +33,18 @@
+ # search types.
+ LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH
+   # Standard
+-  /usr/local /usr /
+-
+-  # CMake install location
+-  "${_CMAKE_INSTALL_DIR}"
+-
+-  # Project install destination.
+-  "${CMAKE_INSTALL_PREFIX}"
+-  )
+-
+-# List common include file locations not under the common prefixes.
+-LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+-  # Windows API on Cygwin
+-  /usr/include/w32api
+-
+-  # X11
+-  /usr/X11R6/include /usr/include/X11
+-
+-  # Other
+-  /usr/pkg/include
+-  /opt/csw/include /opt/include  
+-  /usr/openwin/include
+-  )
+-
+-LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+-  # Windows API on Cygwin
+-  /usr/lib/w32api
+-
+-  # X11
+-  /usr/X11R6/lib /usr/lib/X11
+-
+-  # Other
+-  /usr/pkg/lib
+-  /opt/csw/lib /opt/lib 
+-  /usr/openwin/lib
+-  )
+-
+-LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH
+-  /usr/pkg/bin
++  "@glibc@"
+   )
+ 
+ LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+-  /lib /usr/lib /usr/lib32 /usr/lib64
++  "@glibc@/lib"
+   )
+ 
+ LIST(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
+-  /usr/include
++  "@glibc@/include"
+   )
+ LIST(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
+-  /usr/include
++  "@glibc@/include"
+   )
+ 
+ # Enable use of lib64 search path variants by default.
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index a9600f1d6dc60..df51c51bde174 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -1,7 +1,10 @@
-{stdenv, fetchurl, graphviz, perl, flex, bison, gnumake, libX11, libXext, qt}:
+{ stdenv, fetchurl, perl, flex, bison, qt }:
 
-stdenv.mkDerivation rec {
+let
   name = "doxygen-1.7.4";
+in
+stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
     url = "ftp://ftp.stack.nl/pub/users/dimitri/${name}.src.tar.gz";
@@ -10,23 +13,25 @@ stdenv.mkDerivation rec {
 
   patches = [ ./tmake.patch ];
 
-  buildInputs = [ graphviz perl flex bison libX11 libXext ]
-    ++ (if (qt != null) then [ qt ] else []);
+  buildInputs =
+    [ perl flex bison ]
+    ++ stdenv.lib.optional (qt != null) qt;
 
   prefixKey = "--prefix ";
-  configureFlags = "--release"
-		 + (if qt == null then "" else " --with-doxywizard")
-		 ;
-  makeFlags = "MAN1DIR=share/man/man1";
-  preConfigure =
-   (if (qt == null)
-    then ""
-    else ''
+
+  configureFlags =
+    [ "--dot dot" ]
+    ++ stdenv.lib.optional (qt != null) "--with-doxywizard";
+
+  preConfigure = stdenv.lib.optionalString (qt != null)
+    ''
       echo "using QTDIR=${qt}..."
       export QTDIR=${qt}
-    '');
-      # export CPLUS_INCLUDE_PATH="${qt}/include:$CPLUS_INCLUDE_PATH"
-      # export LIBRARY_PATH="${qt}/lib:$LIBRARY_PATH"
+    '';
+
+  makeFlags = "MAN1DIR=share/man/man1";
+
+  enableParallelBuilding = true;
 
   meta = {
     license = "GPLv2+";
@@ -42,6 +47,6 @@ stdenv.mkDerivation rec {
     '';
 
     maintainers = [stdenv.lib.maintainers.simons];
-    platforms = stdenv.lib.platforms.unix;
+    platforms = if (qt != null) then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/documentation/haddock/2.4.2.nix b/pkgs/development/tools/documentation/haddock/2.4.2.nix
index ff7c982267e71..226a4fd676e38 100644
--- a/pkgs/development/tools/documentation/haddock/2.4.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.4.2.nix
@@ -1,13 +1,20 @@
-{cabal, ghcPaths, libedit}:
+{ cabal, ghcPaths }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haddock";
-  version = "2.4.2"; # Haskell Platform 2009.0.0
-  name = self.fname;
+  version = "2.4.2";
   sha256 = "dbf0a7d0103a3ce6a91b2a3b96148c1b9c13ea7f8bd74260c21fe98df7839547";
-  # TODO: adding libedit here is a hack
-  propagatedBuildInputs = [ghcPaths libedit];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ghcPaths ];
   meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/documentation/haddock/2.7.2.nix b/pkgs/development/tools/documentation/haddock/2.7.2.nix
index b59ea32827967..c94b3e43b7e18 100644
--- a/pkgs/development/tools/documentation/haddock/2.7.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.7.2.nix
@@ -13,6 +13,13 @@ cabal.mkDerivation (self : {
   '';
 
   meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/documentation/haddock/2.9.2.nix b/pkgs/development/tools/documentation/haddock/2.9.2.nix
index 42dbd81d9ff67..c6543936ab319 100644
--- a/pkgs/development/tools/documentation/haddock/2.9.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.9.2.nix
@@ -13,6 +13,13 @@ cabal.mkDerivation (self : {
   '';
 
   meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/documentation/haddock/boot.nix b/pkgs/development/tools/documentation/haddock/boot.nix
deleted file mode 100644
index edaaac473301f..0000000000000
--- a/pkgs/development/tools/documentation/haddock/boot.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{cabal, gmp}:
-
-cabal.mkDerivation (self : {
-  pname = "haddock";
-  version = "0.9";
-  name = self.fname;
-  sha256 = "beefd4a6da577978e7a79cabba60970accc5cd48fbb04c424a6b36ace3a9f8d0";
-  extraBuildInputs = [gmp];
-  meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
-  };
-
-  # we are using this for booting, and ghc-6.4.2 doesn't have full
-  # Cabal support, therefore we have to override some things:
-  configurePhase = ''
-    sed -i -e 's|cabal-version:.*$|cabal-version: >= 1.0|' \
-           -e '/^flag/,+3d' \
-           -e '/^ *if/,+2d' \
-           -e '/^ *else/d' \
-           -e 's|^    ||' \
-           -e 's|^  ||' \
-           -e '/^executable/,$ { /^ *$/d }' \
-           -e '/^build-depends/d' \
-           -e '/data-files/ibuild-depends: base, haskell98' \
-           haddock.cabal
-    cp dist/build/haddock/haddock-tmp/*.hs src
-    ghc --make -o Setup Setup.lhs
-    ./Setup configure --verbose --prefix="$out"
-  '';
-
-  installPhase = ''
-    ./Setup copy
-  '';
-})
diff --git a/pkgs/development/tools/documentation/haddock/haddock-0.9.nix b/pkgs/development/tools/documentation/haddock/haddock-0.9.nix
deleted file mode 100644
index 8dddc59d96e14..0000000000000
--- a/pkgs/development/tools/documentation/haddock/haddock-0.9.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "haddock";
-  version = "0.9";
-  name = self.fname;
-  sha256 = "beefd4a6da577978e7a79cabba60970accc5cd48fbb04c424a6b36ace3a9f8d0";
-  meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
-  };
-})
diff --git a/pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix b/pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix
deleted file mode 100644
index f170cbf7c2622..0000000000000
--- a/pkgs/development/tools/documentation/haddock/haddock-2.1.0.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "haddock";
-  version = "2.1.0";
-  name = self.fname;
-  sha256 = "1b67869e493e56366207a128949998851f975d821e0952c2c717840d2eadaca7";
-  meta = {
-    description = "a tool for automatically generating documentation from annotated Haskell source code";
-  };
-})
diff --git a/pkgs/development/tools/haskell/BNFC-meta/default.nix b/pkgs/development/tools/haskell/BNFC-meta/default.nix
new file mode 100644
index 0000000000000..3661ece97bfff
--- /dev/null
+++ b/pkgs/development/tools/haskell/BNFC-meta/default.nix
@@ -0,0 +1,17 @@
+{ cabal, alexMeta, happyMeta, haskellSrcMeta }:
+
+cabal.mkDerivation (self: {
+  pname = "BNFC-meta";
+  version = "0.2.1";
+  sha256 = "0c58m1xkaylgp9f3r71nfgqb30fpidldz46dbwalhkb7fm0k4gmm";
+  buildDepends = [ alexMeta happyMeta haskellSrcMeta ];
+  meta = {
+    description = "Deriving Quasi-Quoters from BNF Grammars";
+    license = self.stdenv.lib.licenses.gpl2;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/BNFC/default.nix b/pkgs/development/tools/haskell/BNFC/default.nix
new file mode 100644
index 0000000000000..c06b5eacc24b3
--- /dev/null
+++ b/pkgs/development/tools/haskell/BNFC/default.nix
@@ -0,0 +1,20 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "BNFC";
+  version = "2.4.2.0";
+  sha256 = "0nnalzsql1k5y3s93g5y2hy2gcdsrbi8r7cwzmdcy4vyy589pin0";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://www.cse.chalmers.se/research/group/Language-technology/BNFC/";
+    description = "A compiler front-end generator";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/HaRe/default.nix b/pkgs/development/tools/haskell/HaRe/default.nix
index ac04831fef97d..a7c2e74fa7e87 100644
--- a/pkgs/development/tools/haskell/HaRe/default.nix
+++ b/pkgs/development/tools/haskell/HaRe/default.nix
@@ -1,14 +1,20 @@
-{cabal, hint, mtl, network}:
+{ cabal, hint, mtl, network, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HaRe";
   version = "0.6.0.1";
   sha256 = "cd3fa312c7fa6a5f761bbc3ebdbc6300e83ba9e285047acded6269d2164d67f8";
-  propagatedBuildInputs = [hint mtl network];
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ hint mtl network syb ];
   meta = {
-    description = "The Haskell Refactorer";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.cs.kent.ac.uk/projects/refactor-fp";
+    description = "the Haskell Refactorer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/tools/haskell/alex-meta/default.nix b/pkgs/development/tools/haskell/alex-meta/default.nix
new file mode 100644
index 0000000000000..58d8c3e1a10b2
--- /dev/null
+++ b/pkgs/development/tools/haskell/alex-meta/default.nix
@@ -0,0 +1,17 @@
+{ cabal, haskellSrcMeta }:
+
+cabal.mkDerivation (self: {
+  pname = "alex-meta";
+  version = "0.2.0.1";
+  sha256 = "1b508pg4a9f0ln9k91j5dj0mja3faxasz5k6qyxqz3zqnlysm2gj";
+  buildDepends = [ haskellSrcMeta ];
+  meta = {
+    description = "Quasi-quoter for Alex lexers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
new file mode 100644
index 0000000000000..7c86f79485a2d
--- /dev/null
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -0,0 +1,20 @@
+{ cabal, hackageDb, HTTP, mtl, nixosTypes, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "cabal2nix";
+  version = "1.13";
+  sha256 = "1wjxaz3yyc41y4plwixd6p2g7higvjzpi8znbgvnzcpfj3hlh616";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ hackageDb HTTP mtl nixosTypes regexPosix ];
+  meta = {
+    homepage = "http://github.com/haskell4nix/cabal2nix";
+    description = "Convert Cabal files into Nix build instructions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/happy-meta/default.nix b/pkgs/development/tools/haskell/happy-meta/default.nix
new file mode 100644
index 0000000000000..f73d61924c5c2
--- /dev/null
+++ b/pkgs/development/tools/haskell/happy-meta/default.nix
@@ -0,0 +1,17 @@
+{ cabal, haskellSrcMeta, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy-meta";
+  version = "0.2.0.2";
+  sha256 = "1r9i01bnw0dz10balhpgiwcls5jwv5p09jafi8jl6hy0jwx7xydp";
+  buildDepends = [ haskellSrcMeta mtl ];
+  meta = {
+    description = "Quasi-quoter for Happy parsers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 75b38f62999ed..da117157f223b 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -1,13 +1,22 @@
-{cabal, haskellSrcExts, mtl, uniplate, hscolour, parallel, transformers}:
+{ cabal, cpphs, haskellSrcExts, hscolour, transformers, uniplate }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.8.7";
-  name = self.fname;
-  sha256 = "0k2fwwwmq0qqb5nw5acsjr2gqnsmqcf3ckb6wdrkqsqp8g2k14mn";
-  extraBuildInputs =
-    [haskellSrcExts mtl uniplate hscolour parallel transformers];
+  version = "1.8.15";
+  sha256 = "1hi2qapi8lb7cawjzvpknp8qvsnfw3glxyyd5m2lbp3rvkx0d6kr";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    cpphs haskellSrcExts hscolour transformers uniplate
+  ];
   meta = {
+    homepage = "http://community.haskell.org/~ndm/hlint/";
     description = "Source code suggestions";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/haskell/hslogger/default.nix b/pkgs/development/tools/haskell/hslogger/default.nix
index 60a3fd400fec4..78863fab18547 100644
--- a/pkgs/development/tools/haskell/hslogger/default.nix
+++ b/pkgs/development/tools/haskell/hslogger/default.nix
@@ -1,11 +1,20 @@
-{cabal, mtl, network, time}:
+{ cabal, mtl, network, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hslogger";
-  version = "1.1.4";
-  sha256 = "0858jbkjda7ccjzxjnlp2ng1jyvfsa1jhd45vr9bbhsr8qwrdky7";
-  propagatedBuildInputs = [ mtl time network ];
+  version = "1.1.5";
+  sha256 = "0lk966csxxyjjdg5jg4pzzl5118zj8ms78vn1n9imb7f4vcs8vk7";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl network time ];
   meta = {
+    homepage = "http://software.complete.org/hslogger";
     description = "Versatile logging framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/haskell/mkcabal/default.nix b/pkgs/development/tools/haskell/mkcabal/default.nix
deleted file mode 100644
index 04c66673ae263..0000000000000
--- a/pkgs/development/tools/haskell/mkcabal/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl, pcreLight, readline}:
-
-cabal.mkDerivation (self : {
-  pname = "mkcabal";
-  version = "0.4.2";
-  name = self.fname;
-  sha256 = "a3d781fdcdea4ac27a897888593091d4afee10dfc3eff5a49f9108b346232f50";
-  propagatedBuildInputs = [mtl pcreLight readline];
-  meta = {
-    description = "Generate cabal files for a Haskell project";
-  };
-})
diff --git a/pkgs/development/tools/haskell/tar/default.nix b/pkgs/development/tools/haskell/tar/default.nix
index 8672e0db95019..ef03d80f5e955 100644
--- a/pkgs/development/tools/haskell/tar/default.nix
+++ b/pkgs/development/tools/haskell/tar/default.nix
@@ -1,12 +1,16 @@
-{cabal, binary}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tar";
   version = "0.3.1.0";
-  name = self.fname;
   sha256 = "1n16sq5y7x30r1k7ydxmncn9x2nx3diildzyfxjy2b8drxp4jr03";
-  extraBuildInputs = [binary];
   meta = {
-    description = "tar wrapper";
+    description = "Reading, writing and manipulating \".tar\" archive files.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/haskell/threadscope/default.nix b/pkgs/development/tools/haskell/threadscope/default.nix
index 63d48ef9cca16..7787ea203eef0 100644
--- a/pkgs/development/tools/haskell/threadscope/default.nix
+++ b/pkgs/development/tools/haskell/threadscope/default.nix
@@ -1,18 +1,20 @@
-{cabal, binary, cairo, ghcEvents, glade, gtk, mtl}:
+{ cabal, binary, cairo, ghcEvents, glade, gtk, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "threadscope";
-  version = "0.1.2";
-  sha256 = "ce1116016f6b2d38e6063ba3dd147f38147a9c4399160f37aba9c50c96d00a90";
-  propagatedBuildInputs = [binary cairo ghcEvents glade gtk mtl];
-  preConfigure = ''
-    sed -i 's|\(containers.*\) && < 0.4|\1|' ${self.pname}.cabal
-  '';
+  version = "0.1.3";
+  sha256 = "1vak3624vrnkfvwxzfw5hkc0552v213jb874f6q536g5vhjjxpih";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ binary cairo ghcEvents glade gtk mtl ];
   configureFlags = "--ghc-options=-rtsopts";
   meta = {
     description = "A graphical thread profiler";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-})  
-
+})
diff --git a/pkgs/development/tools/haskell/uuagc/bootstrap.nix b/pkgs/development/tools/haskell/uuagc/bootstrap.nix
new file mode 100644
index 0000000000000..2110f2582291f
--- /dev/null
+++ b/pkgs/development/tools/haskell/uuagc/bootstrap.nix
@@ -0,0 +1,20 @@
+{ cabal, haskellSrcExts, mtl, uulib }:
+
+cabal.mkDerivation (self: {
+  pname = "uuagc-bootstrap";
+  version = "0.9.39.1.0";
+  sha256 = "06w330j0nds5piv1rr3m6m1idnf0c5swfk9qwdqzi0pmpws6lpkj";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellSrcExts mtl uulib ];
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
+    description = "Attribute Grammar System of Universiteit Utrecht";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/uuagc/cabal.nix b/pkgs/development/tools/haskell/uuagc/cabal.nix
new file mode 100644
index 0000000000000..7af637cd665aa
--- /dev/null
+++ b/pkgs/development/tools/haskell/uuagc/cabal.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, uulib }:
+
+cabal.mkDerivation (self: {
+  pname = "uuagc-cabal";
+  version = "1.0.0.5";
+  sha256 = "1is7kcbx7hlrzqxqz40sggniwxwnzd6k18dxsra4bibfcg8fvy4h";
+  buildDepends = [ mtl uulib ];
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
+    description = "Cabal plugin for the Universiteit Utrecht Attribute Grammar System";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/uuagc/default.nix b/pkgs/development/tools/haskell/uuagc/default.nix
index a7ede2ef37987..417f430ba9b05 100644
--- a/pkgs/development/tools/haskell/uuagc/default.nix
+++ b/pkgs/development/tools/haskell/uuagc/default.nix
@@ -1,12 +1,22 @@
-{cabal, uulib}:
+{ cabal, haskellSrcExts, mtl, uuagcBootstrap, uuagcCabal, uulib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uuagc";
-  version = "0.9.36";
-  name = self.fname;
-  sha256 = "02sl19apxwhgj7zq37pl6xkl35pafma2683d7hyzyyn6y5kqma1j";
-  extraBuildInputs = [uulib];
+  version = "0.9.39.1";
+  sha256 = "0zqhwpafq51czy97z0f93cbxd8k6hllnmb24a6yzr4y6kzzv65hd";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    haskellSrcExts mtl uuagcBootstrap uuagcCabal uulib
+  ];
   meta = {
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
     description = "Attribute Grammar System of Universiteit Utrecht";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/misc/automoc4/default.nix b/pkgs/development/tools/misc/automoc4/default.nix
index f6c29e5d7a388..860ea220799ab 100644
--- a/pkgs/development/tools/misc/automoc4/default.nix
+++ b/pkgs/development/tools/misc/automoc4/default.nix
@@ -1,12 +1,15 @@
-{stdenv, fetchurl, cmake, qt4}:
+{ stdenv, fetchurl, cmake, qt4 }:
 
 stdenv.mkDerivation rec {
   name = "automoc4-0.9.88";
+  
   src = fetchurl {
     url = "mirror://kde/stable/automoc4/0.9.88/${name}.tar.bz2";
     sha256 = "0jackvg0bdjg797qlbbyf9syylm0qjs55mllhn11vqjsq3s1ch93";
   };
+  
   buildInputs = [ cmake qt4 ];
+  
   meta = with stdenv.lib; {
     homepage = http://techbase.kde.org/Development/Tools/Automoc4;
     description = "KDE Meta Object Compiler";
diff --git a/pkgs/development/tools/misc/avrdude/default.nix b/pkgs/development/tools/misc/avrdude/default.nix
index 3cfd8736d8220..7a294e7207818 100644
--- a/pkgs/development/tools/misc/avrdude/default.nix
+++ b/pkgs/development/tools/misc/avrdude/default.nix
@@ -2,12 +2,12 @@
 
 let edf = composableDerivation.edf; in
 
-composableDerivation.composableDerivation {} {
-  name="avrdude-5.4";
+composableDerivation.composableDerivation {} rec {
+  name="avrdude-5.10";
 
   src = fetchurl {
-    url = http://mirror.switch.ch/mirror/gentoo/distfiles/avrdude-5.4.tar.gz;
-    sha256 = "bee4148c51ec95999d803cb9f68f12ac2e9128b06f07afe307d38966c0833b30";
+    url = "http://download.savannah.gnu.org/releases/avrdude/${name}.tar.gz";
+    sha256 = "0pmy73777x8p7f2aj2w2q1dnk1bvhd1cm7hcs1s9hsdqsmiinl41";
   };
 
   configureFlags = [ "--disable-dependency-tracking" ];
diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix
index bb527e63c1e6c..6d0ca9884d680 100644
--- a/pkgs/development/tools/misc/cpphs/default.nix
+++ b/pkgs/development/tools/misc/cpphs/default.nix
@@ -1,10 +1,19 @@
-{cabal} :
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cpphs";
-  version = "1.11";
-  sha256 = "26124ca2b1af9a9804ba37c627dbbca3977bde93925f979f08b342895548db01";
+  version = "1.12";
+  sha256 = "18c8yx8y54b2q086sqlp4vhslkb7mm1gry1f13mki43x93kd1vdj";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://haskell.org/cpphs/";
     description = "A liberalised re-implementation of cpp, the C pre-processor";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/misc/dbench/default.nix b/pkgs/development/tools/misc/dbench/default.nix
new file mode 100644
index 0000000000000..0ef9c47dcc5d9
--- /dev/null
+++ b/pkgs/development/tools/misc/dbench/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchgit, autoconf, popt, zlib}: 
+
+stdenv.mkDerivation rec {
+  name = "dbench-20101121";
+
+  buildInputs = [autoconf popt zlib];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  src = fetchgit {
+    url = git://git.samba.org/sahlberg/dbench.git;
+    rev = "8b5143bcc0f4409553392fdf12fd21c95a075fae";
+    sha256 = "607a62b7ff2e9b1393980777e0ba239215dd8145bc1a34649bcbe2b1e567006d";
+  };
+
+  postInstall = ''
+    cp -R loadfiles/* $out/share
+  '';
+
+}
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 37d41d42fcee7..b2ce5aa629748 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -1,35 +1,57 @@
-{ fetchurl, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo
-, dejagnu, python, target ? null }:
+{ fetchurl, fetchgit, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo
+, dejagnu, python, target ? null
+
+# Set it to true to fetch the latest release/branchpoint from git.
+, bleedingEdgeVersion ? false
+
+# needed for the git version
+, flex, bison }:
 
 let
-    basename = "gdb-7.2";
+    basename =
+      if bleedingEdgeVersion
+      then "gdb-7.3.20110726"
+      else "gdb-7.3";
 in
+
 stdenv.mkDerivation rec {
   name = basename + stdenv.lib.optionalString (target != null)
       ("-" + target.config);
 
-  src = fetchurl {
-    url = "mirror://gnu/gdb/${basename}.tar.bz2";
-    sha256 = "1w0h6hya0bl46xddd57mdzwmffplwglhnh9x9hv46ll4mf44ni5z";
-  };
+  src =
+    if bleedingEdgeVersion
+    then fetchgit {
+        url = "git://sourceware.org/git/gdb.git";
+        rev = "refs/tags/gdb_7_3-2011-07-26-release";
+      }
+    else fetchurl {
+        url = "mirror://gnu/gdb/${basename}.tar.bz2";
+        # md5 is provided by the annoucement page
+        # http://www.gnu.org/s/gdb/download/ANNOUNCEMENT
+        md5 = "485022b8df7ba2221f217e128f479fe7";
+      };
 
   # I think python is not a native input, but I leave it
   # here while I will not need it cross building
-  buildNativeInputs = [ texinfo python ];
+  buildNativeInputs = [ texinfo python ]
+  ++ stdenv.lib.optionals bleedingEdgeVersion [ flex bison ];
+
   buildInputs = [ ncurses readline gmp mpfr expat ]
     ++ stdenv.lib.optional doCheck dejagnu;
 
-  configureFlags =
+  configureFlags = with stdenv.lib;
     '' --with-gmp=${gmp} --with-mpfr=${mpfr} --with-system-readline
-       --with-expat --with-libexpat-prefix=${expat} --with-python
-    '' + stdenv.lib.optionalString (target != null)
-       " --target=${target.config}";
+       --with-expat --with-libexpat-prefix=${expat}
+    ''
+    + optionalString (target != null) " --target=${target.config}"
+    + optionalString (elem stdenv.system platforms.cygwin) "  --without-python"
+  ;
 
   crossAttrs = {
     # Do not add --with-python here to avoid cross building it.
     configureFlags =
       '' --with-gmp=${gmp.hostDrv} --with-mpfr=${mpfr.hostDrv} --with-system-readline
-         --with-expat --with-libexpat-prefix=${expat.hostDrv}
+         --with-expat --with-libexpat-prefix=${expat.hostDrv} --without-python
       '' + stdenv.lib.optionalString (target != null)
          " --target=${target.config}";
   };
@@ -42,7 +64,7 @@ stdenv.mkDerivation rec {
   # TODO: Investigate & fix the test failures.
   doCheck = false;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "GDB, the GNU Project debugger";
 
     longDescription = ''
@@ -55,7 +77,7 @@ stdenv.mkDerivation rec {
 
     license = "GPLv3+";
 
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.cygwin;
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = with platforms; linux ++ cygwin;
+    maintainers = with maintainers; [ ludo pierron ];
   };
 }
diff --git a/pkgs/development/tools/parsing/alex/2.3.1.nix b/pkgs/development/tools/parsing/alex/2.3.1.nix
index aab99629b317b..fd239d580bf3f 100644
--- a/pkgs/development/tools/parsing/alex/2.3.1.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.1.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.1"; # Haskell Platform 2009.0.0
-  name = self.fname;
+  version = "2.3.1";
   sha256 = "cdd42fd992a72fedeff1f38debc21aa315d90dc070f0945d7819c0bccd549a44";
-  extraBuildInputs = [perl];
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
   meta = {
-    description = "A lexical analyser generator for Haskell";
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/alex/2.3.2.nix b/pkgs/development/tools/parsing/alex/2.3.2.nix
index 565ecf2f167c6..d3a4778f3f32b 100644
--- a/pkgs/development/tools/parsing/alex/2.3.2.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.2.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.2"; # Haskell Platform 2010.1.0.0
-  name = self.fname;
+  version = "2.3.2";
   sha256 = "6715a4c27b15a74d8f31cbb6a7d654b9cb6766d74980c75b65dee7c627049f43";
-  extraBuildInputs = [perl];
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
   meta = {
-    description = "A lexical analyser generator for Haskell";
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/alex/2.3.3.nix b/pkgs/development/tools/parsing/alex/2.3.3.nix
index 7f6186970faea..c9e7671c94478 100644
--- a/pkgs/development/tools/parsing/alex/2.3.3.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.3.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.3"; # Haskell Platform 2010.2.0.0
-  name = self.fname;
+  version = "2.3.3";
   sha256 = "338fc492a1fddd6c528d0eb89857cadab211cb42680aeee1f9702bbfa7c5e1c8";
-  extraBuildInputs = [perl];
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
   meta = {
-    description = "A lexical analyser generator for Haskell";
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/alex/2.3.5.nix b/pkgs/development/tools/parsing/alex/2.3.5.nix
index 9fbbca7f4e9d8..db676a906849e 100644
--- a/pkgs/development/tools/parsing/alex/2.3.5.nix
+++ b/pkgs/development/tools/parsing/alex/2.3.5.nix
@@ -1,12 +1,20 @@
-{cabal, perl}:
+{ cabal, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "alex";
-  version = "2.3.5"; # Haskell Platform 2011.2.0.0
-  name = self.fname;
+  version = "2.3.5";
   sha256 = "0lyjiq4lmii2syk6838ln32qvn8c0ljf1ypsggahy748k05x79if";
-  extraBuildInputs = [perl];
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ perl ];
   meta = {
-    description = "A lexical analyser generator for Haskell";
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/alex/3.0.1.nix b/pkgs/development/tools/parsing/alex/3.0.1.nix
new file mode 100644
index 0000000000000..6725fed527976
--- /dev/null
+++ b/pkgs/development/tools/parsing/alex/3.0.1.nix
@@ -0,0 +1,21 @@
+{ cabal, perl, QuickCheck }:
+
+cabal.mkDerivation (self: {
+  pname = "alex";
+  version = "3.0.1";
+  sha256 = "1w7s9kzgr4kfh6cyhb4qkvxwy9gcw3xa1d2k5dy575k3wk73awkj";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ QuickCheck ];
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/alex/";
+    description = "Alex is a tool for generating lexical analysers in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/tools/parsing/happy/1.18.4.nix b/pkgs/development/tools/parsing/happy/1.18.4.nix
index a5cbfc6e21bb9..5b52d222f374e 100644
--- a/pkgs/development/tools/parsing/happy/1.18.4.nix
+++ b/pkgs/development/tools/parsing/happy/1.18.4.nix
@@ -1,13 +1,20 @@
-{cabal, mtl, perl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "happy";
-  version = "1.18.4"; # Haskell Platform 2009.2.0.1
-  name = self.fname;
+  version = "1.18.4";
   sha256 = "909bec4541a92d3765e74756f752514d2d03ec7a5d3e74c18268a57fe7ffa832";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
   meta = {
+    homepage = "http://www.haskell.org/happy/";
     description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/happy/1.18.5.nix b/pkgs/development/tools/parsing/happy/1.18.5.nix
index c3cd406f127bc..41532651c9950 100644
--- a/pkgs/development/tools/parsing/happy/1.18.5.nix
+++ b/pkgs/development/tools/parsing/happy/1.18.5.nix
@@ -1,13 +1,21 @@
-{cabal, mtl, perl}:
+{ cabal, mtl, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "happy";
-  version = "1.18.5"; # Haskell Platform 2010.2.0.0
-  name = self.fname;
+  version = "1.18.5";
   sha256 = "91e1c29ac42bc5cabcac2c2e28e693fc59fbdf30636e5c52cb51b779a74d755e";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  buildTools = [ perl ];
   meta = {
+    homepage = "http://www.haskell.org/happy/";
     description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/happy/1.18.6.nix b/pkgs/development/tools/parsing/happy/1.18.6.nix
index f6e2ee3bf41c2..60b8d253659e9 100644
--- a/pkgs/development/tools/parsing/happy/1.18.6.nix
+++ b/pkgs/development/tools/parsing/happy/1.18.6.nix
@@ -1,13 +1,21 @@
-{cabal, mtl, perl}:
+{ cabal, mtl, perl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "happy";
-  version = "1.18.6"; # Haskell Platform 2011.2.0.0
-  name = self.fname;
+  version = "1.18.6";
   sha256 = "0q6dnwihi1q761qdq0hhi733nh5d53xz6frwmr7slpvrp6v8y344";
-  extraBuildInputs = [perl];
-  propagatedBuildInputs = [mtl];
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  buildTools = [ perl ];
   meta = {
+    homepage = "http://www.haskell.org/happy/";
     description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/tools/parsing/peg/default.nix b/pkgs/development/tools/parsing/peg/default.nix
new file mode 100644
index 0000000000000..b1b9a6dee4ef3
--- /dev/null
+++ b/pkgs/development/tools/parsing/peg/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "peg-0.1.4";
+
+  src = fetchurl {
+    url = "${meta.homepage}/${name}.tar.gz";
+    sha256 = "01agf4fbqv0r1xyqvj0va8kcrh3f2ka59f1aqvzfrabn7n5p8ik4";
+  };
+
+  preBuild="makeFlagsArray+=( PREFIX=$out )";
+
+  preInstall=''
+    mkdir -pv $out/bin $out/share/man/man1
+    cp -pv *.1 $out/share/man/man1
+  '';
+
+  meta = {
+    homepage = http://piumarta.com/software/peg/;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}