From 3182cf00ff7da0a6102d981c14d750ddaff12a65 Mon Sep 17 00:00:00 2001
From: Daniel Peebles <pumpkin@me.com>
Date: Sat, 30 Aug 2014 17:22:51 -0400
Subject: [PATCH] Add xar

---
 lib/maintainers.nix                    |  1 +
 pkgs/tools/compression/xar/default.nix | 34 ++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix        |  2 ++
 3 files changed, 37 insertions(+)
 create mode 100644 pkgs/tools/compression/xar/default.nix

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 0c71669a8aea..9ff9f7ea27ae 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -34,6 +34,7 @@
   cfouche = "Chaddaï Fouché <chaddai.fouche@gmail.com>";
   chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
   coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
+  copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
   coroa = "Jonas Hörsch <jonas@chaoflow.net>";
   cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
   DamienCassou = "Damien Cassou <damien.cassou@gmail.com>";
diff --git a/pkgs/tools/compression/xar/default.nix b/pkgs/tools/compression/xar/default.nix
new file mode 100644
index 000000000000..0bb4a1fb2ae4
--- /dev/null
+++ b/pkgs/tools/compression/xar/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, libxml2, openssl, zlib, bzip2 }:
+
+stdenv.mkDerivation rec {
+  version = "1.5.2";
+  name    = "xar-${version}";
+
+  src = fetchurl {
+    url    = "https://xar.googlecode.com/files/${name}.tar.gz";
+    sha256 = "1rp3va6akzlh35yqrapfqnbxaxa0zi8wyr93swbapprwh215cpac";
+  };
+
+  buildInputs = [ libxml2 openssl zlib bzip2 ];
+
+  meta = {
+    homepage    = https://code.google.com/p/xar/;
+    description = "Extensible Archiver";
+
+    longDescription =
+      '' The XAR project aims to provide an easily extensible archive format.
+         Important design decisions include an easily extensible XML table of
+         contents for random access to archived files, storing the toc at the
+         beginning of the archive to allow for efficient handling of streamed
+         archives, the ability to handle files of arbitrarily large sizes, the
+         ability to choose independent encodings for individual files in the
+         archive, the ability to store checksums for individual files in both
+         compressed and uncompressed form, and the ability to query the table
+         of content's rich meta-data.
+      '';
+
+    license     = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ copumpkin ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c85521ecab82..e0e97c0fe3da 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2407,6 +2407,8 @@ let
 
   unrar = callPackage ../tools/archivers/unrar { };
 
+  xar = callPackage ../tools/compression/xar { };
+
   xarchive = callPackage ../tools/archivers/xarchive { };
 
   xarchiver = callPackage ../tools/archivers/xarchiver { };