From f6374fbc5b8907eb5ff8c4a0290c9e30755817b2 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Tue, 26 Aug 2008 12:50:03 +0000
Subject: [PATCH] Add recent versions of the Haskell libraries HTTP, HaXml,
 haxr, and haxr-th. Unfortunately, the latter library doesn't build
 successfully because of the following error:

  Setup: ../LICENSE: copyFile: does not exist (No such file or directory)

I'm not sure where this comes from. Also, it seems that passing haxr-th the
library haxr as a build input doesn't suffice; it also needs to be passed the
libraries that haxr depends on to configure successfully. Something isn't
right. Andreas, do you know how to fix this?

svn path=/nixpkgs/trunk/; revision=12722
---
 .../libraries/haskell/HTTP/default.nix           | 11 +++++++++++
 .../libraries/haskell/HaXml/default.nix          | 11 +++++++++++
 .../libraries/haskell/haxr-th/default.nix        | 11 +++++++++++
 .../libraries/haskell/haxr/default.nix           | 12 ++++++++++++
 pkgs/top-level/all-packages.nix                  | 16 ++++++++++++++++
 5 files changed, 61 insertions(+)
 create mode 100644 pkgs/development/libraries/haskell/HTTP/default.nix
 create mode 100644 pkgs/development/libraries/haskell/HaXml/default.nix
 create mode 100644 pkgs/development/libraries/haskell/haxr-th/default.nix
 create mode 100644 pkgs/development/libraries/haskell/haxr/default.nix

diff --git a/pkgs/development/libraries/haskell/HTTP/default.nix b/pkgs/development/libraries/haskell/HTTP/default.nix
new file mode 100644
index 000000000000..1d3f0f1a9bcc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTTP/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "HTTP";
+  version = "3001.0.0";
+  sha256 = "0d1ixrylb7vl5q963r31jc8gsqm24bkjas4dyi6ks8kbhzrgrw17";
+  meta = {
+    description = "a Haskell library for client-side HTTP";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/HaXml/default.nix b/pkgs/development/libraries/haskell/HaXml/default.nix
new file mode 100644
index 000000000000..00a5cba60eff
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HaXml/default.nix
@@ -0,0 +1,11 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "HaXml";
+  version = "1.13.3";
+  sha256 = "08d9wy0rg9m66dd10x0zvkl74l25vxdakz7xp3j88s2gd31jp1v0";
+  meta = {
+    description = "Haskell utilities for parsing, filtering, transforming and generating XML documents.";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/haxr-th/default.nix b/pkgs/development/libraries/haskell/haxr-th/default.nix
new file mode 100644
index 000000000000..207da9831afc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haxr-th/default.nix
@@ -0,0 +1,11 @@
+{cabal, haxr, HaXml, HTTP}:
+
+cabal.mkDerivation (self : {
+  pname = "haxr-th";
+  version = "3000.0.0";
+  sha256 = "00wqhri2fljjds6rwws0hgk7z27ii1lgvxr8db2li0780q5fa6ic";
+  meta = {
+    description = "Automatic deriving of XML-RPC structs for Haskell records.";
+  };
+  propagatedBuildInputs = [HaXml HTTP haxr];
+})
diff --git a/pkgs/development/libraries/haskell/haxr/default.nix b/pkgs/development/libraries/haskell/haxr/default.nix
new file mode 100644
index 000000000000..002b6ff7e618
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haxr/default.nix
@@ -0,0 +1,12 @@
+{cabal, HaXml, HTTP}:
+
+cabal.mkDerivation (self : {
+  pname = "haxr";
+  version = "3000.0.1";
+  sha256 = "1sppfd8qyqggfh5m8phxdn40x17g97q6j3a8d5wspy7kcmg2qaci";
+  meta = {
+    description = "a Haskell library for writing XML-RPC client and server applications";
+  };
+  propagatedBuildInputs = [HaXml HTTP];
+})
+
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7622b9b45ecf..4ae1c298c35e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3755,6 +3755,18 @@ let pkgs = rec {
     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;
   };
@@ -3771,6 +3783,10 @@ let pkgs = rec {
     inherit cabal HDBC sqlite;
   };
 
+  HTTP = import ../development/libraries/haskell/HTTP {
+    inherit cabal;
+  };
+
   pcreLight = import ../development/libraries/haskell/pcre-light {
     inherit cabal pcre;
   };