From 7f07b33e4dcdfbb27153384a55587d11bfe3fdfd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Fri, 13 Mar 2015 15:30:31 -0300
Subject: [PATCH] Add ocaml-xml-light

---
 .../ocaml-modules/xml-light/default.nix       | 43 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 2 files changed, 45 insertions(+)
 create mode 100644 pkgs/development/ocaml-modules/xml-light/default.nix

diff --git a/pkgs/development/ocaml-modules/xml-light/default.nix b/pkgs/development/ocaml-modules/xml-light/default.nix
new file mode 100644
index 000000000000..5eb4fbfd6b15
--- /dev/null
+++ b/pkgs/development/ocaml-modules/xml-light/default.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl, ocaml, findlib}:
+let
+  pname = "xml-light";
+  version = "2.4";
+in
+stdenv.mkDerivation {
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/ncannasse/${pname}/archive/${version}.tar.gz";
+    sha256 = "10b55qf6mvdp11ny3h0jv6k6wrs78jr9lhsiswl0xya7z8r8j0a2";
+  };
+
+  buildInputs = [ ocaml findlib ];
+
+  createFindlibDestdir = true;
+
+  buildPhase = ''
+    make all
+    make opt
+  '';
+  
+  installPhase = ''
+    make install_ocamlfind
+    mkdir -p $out/share
+    cp -vai doc $out/share/
+  '';
+
+  meta = {
+    description = "Minimal Xml parser and printer for OCaml";
+    longDescription = ''
+      Xml-Light provides functions to parse an XML document into an OCaml
+      data structure, work with it, and print it back to an XML
+      document. It support also DTD parsing and checking, and is
+      entirely written in OCaml, hence it does not require additional C
+      library.
+    '';
+    homepage = "http://tech.motion-twin.com/xmllight.html";
+    license = stdenv.lib.licenses.lgpl21;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 90dbe36e1008..1ee447f806bf 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4095,6 +4095,8 @@ let
 
     xmlm = callPackage ../development/ocaml-modules/xmlm { };
 
+    xml-light = callPackage ../development/ocaml-modules/xml-light { };
+
     yojson = callPackage ../development/ocaml-modules/yojson { };
 
     zarith = callPackage ../development/ocaml-modules/zarith { };