Merge pull request #4765 from ip1981/master

Added pxz
This commit is contained in:
Peter Simons 2014-11-01 20:04:08 +01:00
commit 1d1e54611a
4 changed files with 85 additions and 3 deletions

View File

@ -5,12 +5,12 @@
alphabetically sorted. */
_1126 = "Christian Lask <mail@elfsechsundzwanzig.de>";
abbradar = "Nikolay Amiantov <ab@fmap.me>";
aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
ak = "Alexander Kjeldaas <ak@formalprivacy.com>";
akc = "Anders Claesson <akc@akc.is>";
algorith = "Dries Van Daele <dries_van_daele@telenet.be>";
all = "Nix Committers <nix-commits@lists.science.uu.nl>";
abbradar = "Nikolay Amiantov <ab@fmap.me>";
amiddelk = "Arie Middelkoop <amiddelk@gmail.com>";
amorsillo = "Andrew Morsillo <andrew.morsillo@gmail.com>";
AndersonTorres = "Anderson Torres <torres.anderson.85@gmail.com>";
@ -46,8 +46,8 @@
coroa = "Jonas Hörsch <jonas@chaoflow.net>";
cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
DamienCassou = "Damien Cassou <damien.cassou@gmail.com>";
DerGuteMoritz = "Moritz Heidkamp <moritz@twoticketsplease.de>";
dbohdan = "Danyil Bohdan <danyil.bohdan@gmail.com>";
DerGuteMoritz = "Moritz Heidkamp <moritz@twoticketsplease.de>";
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
doublec = "Chris Double <chris.double@double.co.nz>";
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
@ -104,6 +104,7 @@
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
orbitz = "Malcolm Matalka <mmatalka@gmail.com>";
page = "Carles Pagès <page@cubata.homelinux.net>";
pashev = "Igor Pashev <pashev.igor@gmail.com>";
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
@ -139,8 +140,8 @@
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
tstrobel = "Thomas Strobel <ts468@cam.ac.uk>";
ttuegel = "Thomas Tuegel <ttuegel@gmail.com>";
twey = "James Twey Kay <twey@twey.co.uk>";
tv = "Tomislav Viljetić <tv@shackspace.de>";
twey = "James Twey Kay <twey@twey.co.uk>";
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
vandenoever = "Jos van den Oever <jos@vandenoever.info>";
vbgl = "Vincent Laporte <Vincent.Laporte@gmail.com>";

View File

@ -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);

View File

@ -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'';
};
}

View File

@ -1381,6 +1381,8 @@ let
pigz = callPackage ../tools/compression/pigz { };
pxz = callPackage ../tools/compression/pxz { };
haproxy = callPackage ../tools/networking/haproxy { };
haveged = callPackage ../tools/security/haveged { };