summary refs log tree commit diff
path: root/pkgs/tools/compression
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-02-03 16:54:03 +0100
committerVladimír Čunát <vcunat@gmail.com>2016-02-03 16:57:19 +0100
commitae74c356d94b795eb07dfe9978788b49b70f5959 (patch)
treec13c6894b75f95d3a4dc4627efef508bb03dfba8 /pkgs/tools/compression
parentc9790126312119ce5a2a8ac946d9f086e7ea9f55 (diff)
parent53e0f8b1cdf36574bfede6e62e2ac2739c3ef804 (diff)
downloadnixpkgs-ae74c356d94b795eb07dfe9978788b49b70f5959.tar
nixpkgs-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.gz
nixpkgs-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.bz2
nixpkgs-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.lz
nixpkgs-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.xz
nixpkgs-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.zst
nixpkgs-ae74c356d94b795eb07dfe9978788b49b70f5959.zip
Merge recent 'staging' into closure-size
Let's get rid of those merge conflicts.
Diffstat (limited to 'pkgs/tools/compression')
-rw-r--r--pkgs/tools/compression/brotli/default.nix47
-rw-r--r--pkgs/tools/compression/lz4/default.nix3
-rw-r--r--pkgs/tools/compression/xdelta/default.nix5
-rw-r--r--pkgs/tools/compression/xdelta/unstable.nix5
-rw-r--r--pkgs/tools/compression/zopfli/default.nix3
-rw-r--r--pkgs/tools/compression/zstd/default.nix45
6 files changed, 98 insertions, 10 deletions
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
new file mode 100644
index 00000000000..eac4af0ec5f
--- /dev/null
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub }:
+
+# ?TODO: there's also python lib in there
+
+stdenv.mkDerivation rec {
+  name = "brotli-${version}";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "brotli";
+    rev = "v" + version;
+    sha256 = "1ijwr8fbrajp4gh8x6lrrpf8gymm0i6w06s97rv294q5dcszn299";
+  };
+
+  preConfigure = "cd tools";
+
+  # Debian installs "brotli" instead of "bro" but let's keep upstream choice for now.
+  installPhase = ''
+    mkdir -p "$out/bin"
+    mv ./bro "$out/bin/"
+  '';
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+
+    description = "A generic-purpose lossless compression algorithm and tool";
+
+    longDescription =
+      ''  Brotli is a generic-purpose lossless compression algorithm that
+          compresses data using a combination of a modern variant of the LZ77
+          algorithm, Huffman coding and 2nd order context modeling, with a
+          compression ratio comparable to the best currently available
+          general-purpose compression methods. It is similar in speed with
+          deflate but offers more dense compression.
+
+          The specification of the Brotli Compressed Data Format is defined
+          in the following internet draft:
+          http://www.ietf.org/id/draft-alakuijala-brotli
+      '';
+
+    license = licenses.mit;
+    maintainers = [ maintainers.vcunat ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix
index 13236da5ab4..8340ea3fe8b 100644
--- a/pkgs/tools/compression/lz4/default.nix
+++ b/pkgs/tools/compression/lz4/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, valgrind }:
 
-let version = "131"; in
 stdenv.mkDerivation rec {
   name = "lz4-${version}";
+  version = "131";
 
   src = fetchFromGitHub {
     sha256 = "1bhvcq8fxxsqnpg5qa6k3nsyhq0nl0iarh08sqzclww27hlpyay2";
@@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
   patches = [ ./install-on-freebsd.patch ] ;
 
   meta = with stdenv.lib; {
-    inherit version;
     description = "Extremely fast compression algorithm";
     longDescription = ''
       Very fast lossless compression algorithm, providing compression speed
diff --git a/pkgs/tools/compression/xdelta/default.nix b/pkgs/tools/compression/xdelta/default.nix
index 396099df41c..8bc5e464ee7 100644
--- a/pkgs/tools/compression/xdelta/default.nix
+++ b/pkgs/tools/compression/xdelta/default.nix
@@ -5,12 +5,12 @@
 assert lzmaSupport -> xz != null;
 
 let
-  version = "3.0.11";
   mkWith = flag: name: if flag
     then "--with-${name}"
     else "--without-${name}";
-in stdenv.mkDerivation {
+in stdenv.mkDerivation rec {
   name = "xdelta-${version}";
+  version = "3.0.11";
 
   src = fetchFromGitHub {
     sha256 = "1c7xym7xr26phyf4wb9hh2w88ybzbzh2w3h1kyqq3da0ndidmf2r";
@@ -48,7 +48,6 @@ in stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    inherit version;
     description = "Binary differential compression in VCDIFF (RFC 3284) format";
     longDescription = ''
       xdelta is a command line program for delta encoding, which generates two
diff --git a/pkgs/tools/compression/xdelta/unstable.nix b/pkgs/tools/compression/xdelta/unstable.nix
index a19fb4de68a..dd7277c4e8f 100644
--- a/pkgs/tools/compression/xdelta/unstable.nix
+++ b/pkgs/tools/compression/xdelta/unstable.nix
@@ -5,12 +5,12 @@
 assert lzmaSupport -> xz != null;
 
 let
-  version = "3.1.0";
   mkWith = flag: name: if flag
     then "--with-${name}"
     else "--without-${name}";
-in stdenv.mkDerivation {
+in stdenv.mkDerivation rec {
   name = "xdelta-${version}";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     sha256 = "09mmsalc7dwlvgrda56s2k927rpl3a5dzfa88aslkqcjnr790wjy";
@@ -52,7 +52,6 @@ in stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    inherit version;
     description = "Binary differential compression in VCDIFF (RFC 3284) format";
     longDescription = ''
       xdelta is a command line program for delta encoding, which generates two
diff --git a/pkgs/tools/compression/zopfli/default.nix b/pkgs/tools/compression/zopfli/default.nix
index 3c455ca5635..8aeeb3b9e51 100644
--- a/pkgs/tools/compression/zopfli/default.nix
+++ b/pkgs/tools/compression/zopfli/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, fetchpatch }:
 
-let version = "1.0.1"; in
 stdenv.mkDerivation rec {
   name = "zopfli-${version}";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "google";
@@ -45,7 +45,6 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    inherit version;
     inherit (src.meta) homepage;
     description = "Very good, but slow, deflate or zlib compression";
     longDescription = ''
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
new file mode 100644
index 00000000000..d60b4b3614a
--- /dev/null
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub
+, legacySupport ? false }:
+
+stdenv.mkDerivation rec {
+  name = "zstd-${version}";
+  version = "0.4.7";
+
+  src = fetchFromGitHub {
+    sha256 = "09l917979qfqk44dbgsa9vs37a2qj4ga43553zcgvnps02wlja8s";
+    rev = "v${version}";
+    repo = "zstd";
+    owner = "Cyan4973";
+  };
+
+  # The Makefiles don't properly use file targets, but blindly rebuild
+  # all dependencies on every make invocation. So no nice phases. :-(
+  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+  makeFlags = [
+    "ZSTD_LEGACY_SUPPORT=${if legacySupport then "1" else "0"}"
+  ];
+
+  installFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Zstandard real-time compression algorithm";
+    longDescription = ''
+      Zstd, short for Zstandard, is a fast lossless compression algorithm,
+      targeting real-time compression scenarios at zlib-level compression
+      ratio. Zstd can also offer stronger compression ratio at the cost of
+      compression speed. Speed/ratio trade-off is configurable by small
+      increment, to fit different situations. Note however that decompression
+      speed is preserved and remain roughly the same at all settings, a
+      property shared by most LZ compression algorithms, such as zlib. 
+    '';
+    homepage = http://www.zstd.net/;
+    # The licence of the CLI programme is GPLv2+, that of the library BSD-2.
+    license = with licenses; [ gpl2Plus bsd2 ];
+
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nckx ];
+  };
+}