diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 39ff99f5ff1c..1236324f032c 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -5,12 +5,12 @@ alphabetically sorted. */ _1126 = "Christian Lask "; + abbradar = "Nikolay Amiantov "; aforemny = "Alexander Foremny "; ak = "Alexander Kjeldaas "; akc = "Anders Claesson "; algorith = "Dries Van Daele "; all = "Nix Committers "; - abbradar = "Nikolay Amiantov "; amiddelk = "Arie Middelkoop "; amorsillo = "Andrew Morsillo "; AndersonTorres = "Anderson Torres "; @@ -46,8 +46,8 @@ coroa = "Jonas Hörsch "; cstrahan = "Charles Strahan "; DamienCassou = "Damien Cassou "; - DerGuteMoritz = "Moritz Heidkamp "; dbohdan = "Danyil Bohdan "; + DerGuteMoritz = "Moritz Heidkamp "; dmalikov = "Dmitry Malikov "; doublec = "Chris Double "; ederoyd46 = "Matthew Brown "; @@ -104,6 +104,7 @@ offline = "Jaka Hudoklin "; orbitz = "Malcolm Matalka "; page = "Carles Pagès "; + pashev = "Igor Pashev "; phreedom = "Evgeny Egorochkin "; pierron = "Nicolas B. Pierron "; piotr = "Piotr Pietraszkiewicz "; @@ -139,8 +140,8 @@ tomberek = "Thomas Bereknyei "; tstrobel = "Thomas Strobel "; ttuegel = "Thomas Tuegel "; - twey = "James ‘Twey’ Kay "; tv = "Tomislav Viljetić "; + twey = "James ‘Twey’ Kay "; urkud = "Yury G. Kudryashov "; vandenoever = "Jos van den Oever "; vbgl = "Vincent Laporte "; diff --git a/pkgs/tools/compression/pxz/_SC_ARG_MAX.patch b/pkgs/tools/compression/pxz/_SC_ARG_MAX.patch new file mode 100644 index 000000000000..fac8f1fc147c --- /dev/null +++ b/pkgs/tools/compression/pxz/_SC_ARG_MAX.patch @@ -0,0 +1,36 @@ +From b8f9827fc4de9296c7a6f5e6fdac46e070cd6cb4 Mon Sep 17 00:00:00 2001 +From: Igor Pashev +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); diff --git a/pkgs/tools/compression/pxz/default.nix b/pkgs/tools/compression/pxz/default.nix new file mode 100644 index 000000000000..07c3e205a982 --- /dev/null +++ b/pkgs/tools/compression/pxz/default.nix @@ -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''; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e93964838d2..2c9aa00f135d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };