Merge remote-tracking branch 'origin/master' into staging.
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
{stdenv, fetchurl, bzip2}:
|
||||
|
||||
let name = "pbzip2";
|
||||
version = "1.0.5";
|
||||
let major = "1.1";
|
||||
version = "${major}.9";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = name + "-" + version;
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pbzip2-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://compression.ca/${name}/${name}-${version}.tar.gz";
|
||||
sha256 = "0vc9r6b2djhpwslavi2ykv6lk8pwf4lqb107lmapw2q8d658qpa1";
|
||||
url = "https://launchpad.net/pbzip2/${major}/${version}/+download/${name}.tar.gz";
|
||||
sha256 = "1i7rql77ac33lz7lzrjyl9b16mqizmdkb8hv295a493f7vh1nhmx";
|
||||
};
|
||||
|
||||
buildInputs = [ bzip2 ];
|
||||
@@ -16,11 +16,11 @@ stdenv.mkDerivation {
|
||||
make install PREFIX=$out
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://compression.ca/pbzip2/;
|
||||
description = "A parallel implementation of bzip2 for multi-core machines";
|
||||
license = "free";
|
||||
maintainers = with stdenv.lib.maintainers; [viric];
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [viric];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
From b8f9827fc4de9296c7a6f5e6fdac46e070cd6cb4 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Pashev <pashev.igor@gmail.com>
|
||||
Date: Sat, 1 Nov 2014 18:10:05 +0300
|
||||
Subject: [PATCH] Fixed crash on Linux when stack size is unlimited
|
||||
|
||||
---
|
||||
pxz.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pxz.c b/pxz.c
|
||||
index 9cb843e..52713e2 100644
|
||||
--- a/pxz.c
|
||||
+++ b/pxz.c
|
||||
@@ -65,7 +65,7 @@ FILE **ftemp;
|
||||
char str[0x100];
|
||||
char buf[BUFFSIZE];
|
||||
char *xzcmd;
|
||||
-size_t xzcmd_max;
|
||||
+const size_t xzcmd_max = 10240;
|
||||
|
||||
unsigned opt_complevel = 6, opt_stdout, opt_keep, opt_threads, opt_verbose;
|
||||
unsigned opt_force, opt_stdout;
|
||||
@@ -243,9 +243,12 @@ int main( int argc, char **argv ) {
|
||||
lzma_filter filters[LZMA_FILTERS_MAX + 1];
|
||||
lzma_options_lzma lzma_options;
|
||||
|
||||
- xzcmd_max = sysconf(_SC_ARG_MAX);
|
||||
page_size = sysconf(_SC_PAGE_SIZE);
|
||||
xzcmd = malloc(xzcmd_max);
|
||||
+ if (!xzcmd) {
|
||||
+ fprintf(stderr, "Failed to allocate %lu bytes for xz command.\n", xzcmd_max);
|
||||
+ return -1;
|
||||
+ }
|
||||
snprintf(xzcmd, xzcmd_max, XZ_BINARY);
|
||||
|
||||
parse_args(argc, argv);
|
||||
@@ -0,0 +1,43 @@
|
||||
{ stdenv, fetchgit, xz, lzma }:
|
||||
|
||||
let name = "pxz";
|
||||
version = "4.999.9beta+git";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = name + "-" + version;
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/jnovy/pxz.git";
|
||||
rev = "ae808463c2950edfdedb8fb49f95006db0a18667";
|
||||
sha256 = "0na2kw8cf0qd8l1aywlv9m3xrxnqlcwxfdwp3f7x9vxwqx3k32kc";
|
||||
};
|
||||
|
||||
buildInputs = [ lzma ];
|
||||
|
||||
patches = [ ./_SC_ARG_MAX.patch ];
|
||||
|
||||
buildPhase = ''
|
||||
gcc -o pxz pxz.c -llzma \
|
||||
-fopenmp -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2 \
|
||||
-DPXZ_BUILD_DATE=\"nixpkgs\" \
|
||||
-DXZ_BINARY=\"${xz}/bin/xz\" \
|
||||
-DPXZ_VERSION=\"${version}\"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/man/man1
|
||||
cp pxz $out/bin
|
||||
cp pxz.1 $out/share/man/man1
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://jnovy.fedorapeople.org/pxz/";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
maintainers = with stdenv.lib.maintainers; [pashev];
|
||||
description = ''Parallel XZ is a compression utility that takes advantage of
|
||||
running LZMA compression of different parts of an input file on multiple
|
||||
cores and processors simultaneously. Its primary goal is to utilize all
|
||||
resources to speed up compression time with minimal possible influence
|
||||
on compression ratio'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user