about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/zziplib
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/zziplib')
-rw-r--r--nixpkgs/pkgs/development/libraries/zziplib/default.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/zziplib/default.nix b/nixpkgs/pkgs/development/libraries/zziplib/default.nix
new file mode 100644
index 000000000000..8078a3c360c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/zziplib/default.nix
@@ -0,0 +1,65 @@
+{ docbook_xml_dtd_412, fetchurl, stdenv, perl, python2, zip, xmlto, zlib, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  pname = "zziplib";
+  version = "0.13.69";
+
+  src = fetchurl {
+    url = "https://github.com/gdraheim/zziplib/archive/v${version}.tar.gz";
+    sha256 = "0i052a7shww0fzsxrdp3rd7g4mbzx7324a8ysbc0br7frpblcql4";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "CVE-2018-17828.patch";
+      url = "https://github.com/gdraheim/zziplib/commit/f609ae8971f3c0ce6.diff";
+      sha256 = "0jhiz4fgr93wzh6q03avn95b2nsf6402jaki6hxirxyhs5v9ahry";
+    })
+
+    (fetchpatch {
+      name = "CVE-2018-16548-part1.patch";
+      url = "https://github.com/gdraheim/zziplib/commit/9411bde3e4a70a81ff3ffd256b71927b2d90dcbb.patch";
+      sha256 = "0cy8i182zbvcqzs5z2j13d5sl7hbh59pkgw4xkyg5yz739q4fp9b";
+    })
+    (fetchpatch {
+      name = "CVE-2018-16548-part2.patch";
+      url = "https://github.com/gdraheim/zziplib/commit/d2e5d5c53212e54a97ad64b793a4389193fec687.patch";
+      sha256 = "153wd4vab8xqj9avcpx8g2zw9qsp9nkaqi7yc65pz3r7xfcxwdla";
+    })
+    (fetchpatch {
+      name = "CVE-2018-16548-part3.patch";
+      url = "https://github.com/gdraheim/zziplib/commit/0e1dadb05c1473b9df2d7b8f298dab801778ef99.patch";
+      sha256 = "0fs6dns8l7dz5a900397g8b7x62z72b0pbpdmwk1hnx6vb7z5rz5";
+    })
+  ];
+  postPatch = ''
+    sed -i -e s,--export-dynamic,, configure
+  '';
+
+  buildInputs = [ docbook_xml_dtd_412 perl python2 zip xmlto zlib ];
+
+  # tests are broken (https://github.com/gdraheim/zziplib/issues/20),
+  # and test/zziptests.py requires network access
+  # (https://github.com/gdraheim/zziplib/issues/24)
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Library to extract data from files archived in a zip file";
+
+    longDescription = ''
+      The zziplib library is intentionally lightweight, it offers the ability
+      to easily extract data from files archived in a single zip
+      file.  Applications can bundle files into a single zip archive and
+      access them.  The implementation is based only on the (free) subset of
+      compression with the zlib algorithm which is actually used by the
+      zip/unzip tools.
+    '';
+
+    license = with licenses; [ lgpl2Plus mpl11 ];
+
+    homepage = "http://zziplib.sourceforge.net/";
+
+    maintainers = [ ];
+    platforms = python2.meta.platforms;
+  };
+}