From: Vladimír Čunát <vcunat@gmail.com>
Subject: [PATCH] vlada/hakyll

- Hakyll updated to the latest 3.* version
- many dependencies added/updated
- bytestring and network-bytestring removed (now in core)

Signed-off-by: Vladimír Čunát <vcunat@gmail.com>

---
 .../libraries/haskell/PSQueue/default.nix          |   12 +++++++
 .../libraries/haskell/attoparsec/default.nix       |   12 +++++++
 .../libraries/haskell/attoparsec/enumerator.nix    |   13 ++++++++
 .../haskell/blaze-builder-enumerator/default.nix   |   12 +++++++
 .../libraries/haskell/bytestring-nums/default.nix  |   12 +++++++
 .../libraries/haskell/bytestring/default.nix       |   12 -------
 .../libraries/haskell/directory-tree/default.nix   |   12 +++++++
 .../libraries/haskell/enumerator/default.nix       |   13 ++++++++
 .../libraries/haskell/hakyll/default.nix           |   12 ++++---
 .../libraries/haskell/hamlet/default.nix           |    8 ++--
 .../libraries/haskell/hopenssl/default.nix         |   14 +++++++++
 .../libraries/haskell/jsonEnumerator/default.nix   |   13 ++++++++
 .../libraries/haskell/jsonTypes/default.nix        |   12 +++++++
 .../libraries/haskell/murmur-hash/default.nix      |   12 +++++++
 .../haskell/network-bytestring/default.nix         |   12 -------
 .../libraries/haskell/regex-pcre/default.nix       |   13 ++++++++
 pkgs/development/libraries/haskell/snap/core.nix   |   17 +++++++++++
 pkgs/development/libraries/haskell/snap/server.nix |   19 ++++++++++++
 .../libraries/haskell/unix-compat/default.nix      |    5 +--
 pkgs/top-level/haskell-packages.nix                |   31 ++++++++++++++++++--
 20 files changed, 227 insertions(+), 39 deletions(-)

diff --git a/pkgs/development/libraries/haskell/PSQueue/default.nix b/pkgs/development/libraries/haskell/PSQueue/default.nix
new file mode 100644
index 0000000..7da7a50
--- /dev/null
+++ b/pkgs/development/libraries/haskell/PSQueue/default.nix
@@ -0,0 +1,12 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "PSQueue";
+  version = "1.1";
+  sha256 = "1k291bh8j5vpcrn6vycww2blwg7jxx9yrfmrqdanz48gs4d8gq58";
+  meta = {
+    description = "Priority Search Queue implementation for Haskell";
+    license = "BSD";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/attoparsec/default.nix b/pkgs/development/libraries/haskell/attoparsec/default.nix
new file mode 100644
index 0000000..8d3e53c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec/default.nix
@@ -0,0 +1,12 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "attoparsec";
+  version = "0.8.5.0";
+  sha256 = "0rdhjqgbbasc1diqzjdb6a8s46kcpdw5yxq2vkg3y2z71zln0a31";
+  meta = {
+    description = "Fast combinator parsing for bytestrings";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/attoparsec/enumerator.nix b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
new file mode 100644
index 0000000..95a06a0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
@@ -0,0 +1,13 @@
+{cabal, attoparsec, enumerator}:
+
+cabal.mkDerivation (self : {
+  pname = "attoparsec-enumerator";
+  version = "0.2.0.3";
+  sha256 = "02v9cwq1jbn0179zd2cky4ix6ykrkd7cpw38c1x7zgy0pal42x4v";
+  propagatedBuildInputs = [attoparsec enumerator];
+  meta = {
+    description = "Converts an Attoparsec parser into an iteratee";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
new file mode 100644
index 0000000..d636e68
--- /dev/null
+++ b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
@@ -0,0 +1,12 @@
+{cabal, blazeBuilder, enumerator, transformers}:
+
+cabal.mkDerivation (self : {
+  pname = "blaze-builder-enumerator";
+  version = "0.2.0.2";
+  sha256 = "0as4mjh695jpxp9qfhpsxyr1448l0pk94sh5kk8sgxv5hfiy41k9";
+  propagatedBuildInputs = [blazeBuilder enumerator transformers];
+  meta = {
+    description = "Enumeratees for the incremental conversion of builders to bytestrings";
+    license = "BSD3";
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bytestring-nums/default.nix b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
new file mode 100644
index 0000000..b957f28
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
@@ -0,0 +1,12 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "bytestring-nums";
+  version = "0.3.2";
+  sha256 = "16d99xm692x88vx27w4g6iqi4sbi9il8c10r1zaqq2hqviv0k1wg";
+  meta = {
+    description = "Parse numeric literals from ByteStrings";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/bytestring/default.nix b/pkgs/development/libraries/haskell/bytestring/default.nix
deleted file mode 100644
index c694250..0000000
--- a/pkgs/development/libraries/haskell/bytestring/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "bytestring";
-  version = "0.9.1.4";
-  name = self.fname;
-  sha256 = "00x620zkxhlmdxmb2icrq3a2wc6jichng6mn33xr2gsw102973xz";
-  extraBuildInputs = [];
-  meta = {
-    description = "A time and space-efficient implementation of byte vectors using packed Word8 arrays [..]";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/directory-tree/default.nix b/pkgs/development/libraries/haskell/directory-tree/default.nix
new file mode 100644
index 0000000..df6ef68
--- /dev/null
+++ b/pkgs/development/libraries/haskell/directory-tree/default.nix
@@ -0,0 +1,12 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "directory-tree";
+  version = "0.10.0";
+  sha256 = "08b0w9j55x6c06pri7yvv84n24inhpb4miybdnkyjkjy7r3yy7m4";
+  meta = {
+    description = "A simple directory-like tree datatype, with useful IO functions";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/enumerator/default.nix b/pkgs/development/libraries/haskell/enumerator/default.nix
new file mode 100644
index 0000000..8cd33a1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/enumerator/default.nix
@@ -0,0 +1,13 @@
+{cabal, text, transformers}:
+
+cabal.mkDerivation (self : {
+  pname = "enumerator";
+  version = "0.4.9.1";
+  sha256 = "1rnhapj5am1rv3dff2bkhch7ikpyhs18nay39h0805xl50dcyw99";
+  propagatedBuildInputs = [text transformers];
+  meta = {
+    description = "Reliable, high-performance processing with left-fold enumerators";
+    license = "MIT";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index f0dc59b..d8e8954 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -1,12 +1,14 @@
-{cabal, binary, blazeHtml, hamlet, mtl, network, pandoc, regexBase,
- regexTDFA}:
+{cabal, binary, blazeHtml, hamlet, hopenssl, mtl, network, pandoc, regexBase
+, regexPCRE, snapCore, snapServer, strictConcurrency}:
 
 cabal.mkDerivation (self : {
   pname = "hakyll";
-  version = "2.4.3";
-  sha256 = "1n1hibwhg22l9p126d10zwhvaab46svcri2rkvd78f4vhmwpvkbs";
+  version = "3.0.2.0";
+  sha256 = "0d1kmvkbwygr9mxz7m8jiasrbj470j4hwsj8mmkdgdm9clxbi74k";
   propagatedBuildInputs =
-    [binary blazeHtml hamlet mtl network pandoc regexBase regexTDFA];
+    [ binary blazeHtml hamlet hopenssl mtl network pandoc regexBase
+     regexPCRE snapCore snapServer strictConcurrency
+    ];
   meta = {
     description = "A simple static site generator library";
     license = "BSD";
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index de8b5da..2025b38 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -1,11 +1,11 @@
-{cabal, blazeBuilder, failure, parsec, text}:
+{cabal, blazeBuilder, blazeHtml, failure, parsec, text, jsonEnumerator, jsonTypes}:
 
 cabal.mkDerivation (self : {
   pname = "hamlet";
-  version = "0.6.1.2";
-  sha256 = "0aqrjdbqb99nz3snnsrgkd6bnaj1m3bdm8kj9agd3qgv8lv90knn";
+  version = "0.7.3";
+  sha256 = "1knapi8506kqm6pbl1qdr3vm579z2dn6q3h3ahzwbxqjafy7pnj9";
   propagatedBuildInputs =
-    [blazeBuilder failure parsec text];
+    [blazeBuilder blazeHtml failure parsec text jsonEnumerator jsonTypes];
   meta = {
     description = "Haml-like template files that are compile-time checked";
     license = "BSD";
diff --git a/pkgs/development/libraries/haskell/hopenssl/default.nix b/pkgs/development/libraries/haskell/hopenssl/default.nix
new file mode 100644
index 0000000..7251fe4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hopenssl/default.nix
@@ -0,0 +1,14 @@
+{cabal, mtl, openssl}:
+
+cabal.mkDerivation (self : {
+  pname = "hopenssl";
+  version = "1.6.1";
+  sha256 = "12lmhpg7m2amqld95lpv6d2j3rfzgdbmz8jsgh2hjb5hx72l5fkm";
+  propagatedBuildInputs = [mtl];
+  extraBuildInputs = [openssl];
+  meta = {
+    description = "FFI bindings to OpenSSL's EVP digest interface";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/jsonEnumerator/default.nix b/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
new file mode 100644
index 0000000..4b01a25
--- /dev/null
+++ b/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
@@ -0,0 +1,13 @@
+{cabal, blazeBuilder, blazeBuilderEnumerator, enumerator, jsonTypes, text, transformers}:
+
+cabal.mkDerivation (self : {
+  pname = "json-enumerator";
+  version = "0.0.1.1";
+  sha256 = "0k94x9vwwaprqbc8gay5l0vg6hjmjpjp852yncncb8kr0r344z7l";
+  propagatedBuildInputs =
+    [blazeBuilder blazeBuilderEnumerator enumerator jsonTypes text transformers];
+  meta = {
+    description = "Provides the ability to render JSON in a streaming manner using the enumerator package";
+    license = "BSD3";
+  };
+})
diff --git a/pkgs/development/libraries/haskell/jsonTypes/default.nix b/pkgs/development/libraries/haskell/jsonTypes/default.nix
new file mode 100644
index 0000000..69c2173
--- /dev/null
+++ b/pkgs/development/libraries/haskell/jsonTypes/default.nix
@@ -0,0 +1,12 @@
+{cabal, text}:
+
+cabal.mkDerivation (self : {
+  pname = "json-types";
+  version = "0.1";
+  sha256 = "088if9qv0didjyb6y1583viihjgc4nwr61qfjqdg9rzc2ya6vqdn";
+  propagatedBuildInputs = [text];
+  meta = {
+    description = "Basic types for representing JSON";
+    license = "MIT";
+  };
+})
diff --git a/pkgs/development/libraries/haskell/murmur-hash/default.nix b/pkgs/development/libraries/haskell/murmur-hash/default.nix
new file mode 100644
index 0000000..30eb3dc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/murmur-hash/default.nix
@@ -0,0 +1,12 @@
+{cabal}:
+
+cabal.mkDerivation (self : {
+  pname = "murmur-hash";
+  version = "0.1.0.2";
+  sha256 = "14amqkcz2dbjyjrsjblsnka8qymllbzjx5x3za58kwlcifnsq9jr";
+  meta = {
+    description = "MurmurHash2 implementation for Haskell";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/network-bytestring/default.nix b/pkgs/development/libraries/haskell/network-bytestring/default.nix
deleted file mode 100644
index baf7c90..0000000
--- a/pkgs/development/libraries/haskell/network-bytestring/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, bytestring, network}:
-
-cabal.mkDerivation (self : {
-  pname = "network-bytestring";
-  version = "0.1.2.1";
-  name = self.fname;
-  sha256 = "0l5gxwc5pg49qyxb1jy3kn9j66a6pg9frw4c7dn1mrpqicm155am";
-  extraBuildInputs = [bytestring network];
-  meta = {
-    description = "Fast, memory-efficient, low-level socket functions that use Data.ByteStrings instead of Strings";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/regex-pcre/default.nix b/pkgs/development/libraries/haskell/regex-pcre/default.nix
new file mode 100644
index 0000000..7b3629a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-pcre/default.nix
@@ -0,0 +1,13 @@
+{cabal, regexBase, pcre}:
+
+cabal.mkDerivation (self : {
+  pname = "regex-pcre";
+  version = "0.94.2";
+  sha256 = "0p4az8z4jlrcmmyz9bjf7n90hpg6n242vq4255w2dz5v29l822wn";
+  propagatedBuildInputs = [regexBase];
+  extraBuildInputs = [pcre];
+  meta = {
+    description = "Replaces/Enhances Text.Regex";
+    license = "BSD3";
+  };
+})
diff --git a/pkgs/development/libraries/haskell/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
new file mode 100644
index 0000000..905af17
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -0,0 +1,17 @@
+{cabal, attoparsec, attoparsecEnumerator, MonadCatchIOTransformers, blazeBuilder
+, bytestringNums, dlist, mtl, unixCompat, vector, zlib}:
+
+cabal.mkDerivation (self : {
+  pname = "snap-core";
+  version = "0.4.1";
+  sha256 = "0cc6qh8rnfdhv6s4clnb4avbxkvvj4dibbdg0vjbf75iafxvsg9f";
+  propagatedBuildInputs =
+    [ attoparsec attoparsecEnumerator MonadCatchIOTransformers blazeBuilder
+     bytestringNums dlist mtl unixCompat vector zlib
+    ];
+  meta = {
+    description = "Snap: A Haskell Web Framework (Core)";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix
new file mode 100644
index 0000000..b29bc63
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -0,0 +1,19 @@
+{cabal, attoparsec, attoparsecEnumerator, binary, blazeBuilder, blazeBuilderEnumerator
+, bytestringNums, directoryTree, enumerator, MonadCatchIOTransformers, mtl, murmurHash
+, network, PSQueue, snapCore, unixCompat, utf8String, vector, vectorAlgorithms, zlib}:
+
+cabal.mkDerivation (self : {
+  pname = "snap-server";
+  version = "0.4.1";
+  sha256 = "1xav58sk6f1capibkil9a834lxg7badcq3v8016azzzmvvhy9iq8";
+  propagatedBuildInputs =
+    [ attoparsec attoparsecEnumerator binary blazeBuilder blazeBuilderEnumerator
+     bytestringNums directoryTree enumerator MonadCatchIOTransformers mtl murmurHash
+     network PSQueue snapCore unixCompat utf8String vector vectorAlgorithms zlib
+    ];
+  meta = {
+    description = "Snap: A Haskell Web Framework (Server)";
+    license = "BSD3";
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/unix-compat/default.nix b/pkgs/development/libraries/haskell/unix-compat/default.nix
index b859ddd..c0d3940 100644
--- a/pkgs/development/libraries/haskell/unix-compat/default.nix
+++ b/pkgs/development/libraries/haskell/unix-compat/default.nix
@@ -2,12 +2,11 @@
 
 cabal.mkDerivation (self : {
   pname = "unix-compat";
-  version = "0.1.2.1";
-  sha256 = "553326e140f71f09cedeec5f74666171c2ad2b3d9ba4312da97da02cbf8a2e85";
+  version = "0.2.1.1";
+  sha256 = "11bh29rq3g4qqvxc72wbip85vc3m91lafa85086izpqkkpnl4pxh";
   meta = {
     description = "Portable POSIX-compatibility layer";
     license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
   };
 })
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 5fc42eb..17ffb7f 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -287,6 +287,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   AspectAG = callPackage ../development/libraries/haskell/AspectAG {};
 
+  attoparsec = callPackage ../development/libraries/haskell/attoparsec {};
+
+  attoparsecEnumerator = callPackage ../development/libraries/haskell/attoparsec/enumerator.nix {};
+
   benchpress = callPackage ../development/libraries/haskell/benchpress {};
 
   bimap = callPackage ../development/libraries/haskell/bimap {};
@@ -299,15 +303,15 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   blazeBuilder = callPackage ../development/libraries/haskell/blaze-builder {};
 
+  blazeBuilderEnumerator = callPackage ../development/libraries/haskell/blaze-builder-enumerator {};
+
   blazeHtml = callPackage ../development/libraries/haskell/blaze-html {};
 
   bktrees = callPackage ../development/libraries/haskell/bktrees {};
 
   Boolean = callPackage ../development/libraries/haskell/Boolean {};
 
-  bytestring = callPackage ../development/libraries/haskell/bytestring {};
-
-  networkBytestring = callPackage ../development/libraries/haskell/network-bytestring {};
+  bytestringNums = callPackage ../development/libraries/haskell/bytestring-nums {};
 
   cairo = callPackage ../development/libraries/haskell/cairo {
     inherit (pkgs) cairo zlib;
@@ -378,6 +382,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     inherit (pkgs) zlib;
   };
 
+  directoryTree = callPackage ../development/libraries/haskell/directory-tree {};
+
   dlist = callPackage ../development/libraries/haskell/dlist {};
 
   dotgen = callPackage ../development/libraries/haskell/dotgen {};
@@ -386,6 +392,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     inherit (pkgs) libedit;
   };
 
+  enumerator = callPackage ../development/libraries/haskell/enumerator {};
+
   erf = callPackage ../development/libraries/haskell/erf {};
 
   filepath = callPackage ../development/libraries/haskell/filepath {};
@@ -543,6 +551,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     inherit (pkgs) gsl liblapack/* lapack library */ blas;
   };
 
+  hopenssl = callPackage ../development/libraries/haskell/hopenssl {};
+
   hscolour = callPackage ../development/libraries/haskell/hscolour {};
 
   hsemail = callPackage ../development/libraries/haskell/hsemail {};
@@ -577,6 +587,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   json_0_3_6 = callPackage ../development/libraries/haskell/json/0.3.6.nix {};
 
+  jsonEnumerator = callPackage ../development/libraries/haskell/jsonEnumerator {};
+
+  jsonTypes = callPackage ../development/libraries/haskell/jsonTypes {};
+
   leksahServer = callPackage ../development/libraries/haskell/leksah/leksah-server.nix {
     network = self.network_2_2_1_7;
   };
@@ -630,6 +644,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   multiset = callPackage ../development/libraries/haskell/multiset {};
 
+  murmurHash = callPackage ../development/libraries/haskell/murmur-hash {};
+
   mwcRandom = callPackage ../development/libraries/haskell/mwc-random {};
 
   neither = callPackage ../development/libraries/haskell/neither {};
@@ -703,6 +719,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   processLeksah = callPackage ../development/libraries/haskell/leksah/process-leksah.nix {};
 
+  PSQueue = callPackage ../development/libraries/haskell/PSQueue {};
+
   pureMD5 = callPackage ../development/libraries/haskell/pureMD5 {};
 
   QuickCheck_1_2_0_0 = callPackage ../development/libraries/haskell/QuickCheck/1.2.0.0.nix {};
@@ -748,6 +766,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   regexTDFA = callPackage ../development/libraries/haskell/regex-tdfa {};
 
+  regexPCRE = callPackage ../development/libraries/haskell/regex-pcre {};
+
   regular = callPackage ../development/libraries/haskell/regular {};
 
   safe = callPackage ../development/libraries/haskell/safe {};
@@ -760,6 +780,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   sendfile = callPackage ../development/libraries/haskell/sendfile {};
 
+  snapCore = callPackage ../development/libraries/haskell/snap/core.nix {};
+  snapServer = callPackage ../development/libraries/haskell/snap/server.nix {};
+
   stateref = callPackage ../development/libraries/haskell/stateref {};
 
   statistics = callPackage ../development/libraries/haskell/statistics {};
@@ -847,6 +870,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   tuple = callPackage ../development/libraries/haskell/tuple {};
 
+  tuple = callPackage ../development/libraries/haskell/tuple {};
+
   uniplate = callPackage ../development/libraries/haskell/uniplate {};
 
   uniqueid = callPackage ../development/libraries/haskell/uniqueid {};
-- 
tg: (121282c..) vlada/hakyll (depends on: trunk)
