about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/compression
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-12-06 19:57:55 +0000
committerAlyssa Ross <hi@alyssa.is>2023-02-08 13:48:30 +0000
commitbf3aadfdd39aa197e18bade671fab6726349ffa4 (patch)
tree698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/tools/compression
parentf4afc5a01d9539ce09e47494e679c51f80723d07 (diff)
parent99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff)
downloadnixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/tools/compression')
-rw-r--r--nixpkgs/pkgs/tools/compression/advancecomp/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/compression/bzip2/CVE-2016-3189.patch12
-rw-r--r--nixpkgs/pkgs/tools/compression/bzip2/cve-2019-12900.patch13
-rw-r--r--nixpkgs/pkgs/tools/compression/bzip2/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/compression/bzip3/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/compression/crabz/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/compression/efficient-compression-tool/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch108
-rw-r--r--nixpkgs/pkgs/tools/compression/gzip/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/gzrt/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/compression/heatshrink/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/compression/kzipmix/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/compression/lhasa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/compression/lrzip/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/lzip/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/compression/pigz/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/compression/pixz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/pxz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/xdelta/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/compression/xdelta/unstable.nix1
-rw-r--r--nixpkgs/pkgs/tools/compression/xz/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/compression/zfp/default.nix59
-rw-r--r--nixpkgs/pkgs/tools/compression/zstd/default.nix2
23 files changed, 350 insertions, 81 deletions
diff --git a/nixpkgs/pkgs/tools/compression/advancecomp/default.nix b/nixpkgs/pkgs/tools/compression/advancecomp/default.nix
index 00ce6af1d593..e7db524e729a 100644
--- a/nixpkgs/pkgs/tools/compression/advancecomp/default.nix
+++ b/nixpkgs/pkgs/tools/compression/advancecomp/default.nix
@@ -1,40 +1,23 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "advancecomp";
-  version = "2.1";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "advancecomp";
     rev = "v${version}";
-    sha256 = "1pd6czamamrd0ppk5a3a65hcgdlqwja98aandhqiajhnibwldv8x";
+    hash = "sha256-klyTqqZs5TwadgDP8LJ1wUhXlO+/kQPM6qhiSki31Q8=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ zlib ];
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2019-9210.patch";
-      url = "https://github.com/amadvance/advancecomp/commit/fcf71a89265c78fc26243574dda3a872574a5c02.patch";
-      sha256 = "0cdv9g87c1y8zwhqkd9ba2zjw4slcvg7yzcqv43idvnwb5fl29n7";
-      excludes = [ "doc/history.d" ];
-    })
-
-    # Pull upstream fix for gcc-11:
-    (fetchpatch {
-      name = "gcc-11.patch";
-      url = "https://github.com/amadvance/advancecomp/commit/7b08f7a2af3f66ab95437e4490499cebb20e5e41.patch";
-      sha256 = "0gpppq6b760m1429g7d808ipdgb4lrqc1b6xk2457y66pbaiwc9s";
-    })
-  ];
-
   # autover.sh relies on 'git describe', which obviously doesn't work as we're not cloning
   # the full git repo. so we have to put the version number in `.version`, otherwise
   # the binaries get built reporting "none" as their version number.
diff --git a/nixpkgs/pkgs/tools/compression/bzip2/CVE-2016-3189.patch b/nixpkgs/pkgs/tools/compression/bzip2/CVE-2016-3189.patch
deleted file mode 100644
index eff324b32503..000000000000
--- a/nixpkgs/pkgs/tools/compression/bzip2/CVE-2016-3189.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/bzip2recover.c b/bzip2recover.c
-index f9de049..252c1b7 100644
---- a/bzip2recover.c
-+++ b/bzip2recover.c
-@@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv )
-             bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
-             bsPutUInt32 ( bsWr, blockCRC );
-             bsClose ( bsWr );
-+            outFile = NULL;
-          }
-          if (wrBlock >= rbCtr) break;
-          wrBlock++;
diff --git a/nixpkgs/pkgs/tools/compression/bzip2/cve-2019-12900.patch b/nixpkgs/pkgs/tools/compression/bzip2/cve-2019-12900.patch
deleted file mode 100644
index bf3d13a7a691..000000000000
--- a/nixpkgs/pkgs/tools/compression/bzip2/cve-2019-12900.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://gitlab.com/federicomenaquintero/bzip2/commit/74de1e2e6ffc9d
-diff --git a/decompress.c b/decompress.c
---- a/decompress.c
-+++ b/decompress.c
-@@ -287,7 +287,7 @@
-       GET_BITS(BZ_X_SELECTOR_1, nGroups, 3);
-       if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR);
-       GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
--      if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
-+      if (nSelectors < 1 || nSelectors > BZ_MAX_SELECTORS) RETURN(BZ_DATA_ERROR);
-       for (i = 0; i < nSelectors; i++) {
-          j = 0;
-          while (True) {
diff --git a/nixpkgs/pkgs/tools/compression/bzip2/default.nix b/nixpkgs/pkgs/tools/compression/bzip2/default.nix
index da37cf9fbd8c..3b48195d11d6 100644
--- a/nixpkgs/pkgs/tools/compression/bzip2/default.nix
+++ b/nixpkgs/pkgs/tools/compression/bzip2/default.nix
@@ -10,33 +10,38 @@
 
 stdenv.mkDerivation rec {
   pname = "bzip2";
-  version = "1.0.6.0.2";
+  version = "1.0.8";
 
-  /* We use versions patched to use autotools style properly,
-      saving lots of trouble. */
   src = fetchurl {
-    urls = map
-      (prefix: prefix + "/people/sbrabec/bzip2/tarballs/${pname}-${version}.tar.gz")
-      [
-        "http://ftp.uni-kl.de/pub/linux/suse"
-        "ftp://ftp.hs.uni-hamburg.de/pub/mirrors/suse"
-        "ftp://ftp.mplayerhq.hu/pub/linux/suse"
-        "http://ftp.suse.com/pub" # the original patched version but slow
-      ];
-    sha256 = "sha256-FnhwNy4OHe8d5M6iYCClkxzcB/EHXg0veXwv43ZlxbA=";
+    url = "https://sourceware.org/pub/bzip2/bzip2-${version}.tar.gz";
+    sha256 = "sha256-q1oDF27hBtPw+pDjgdpHjdrkBZGBU8yiSOaCzQxKImk=";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  patchFlags = ["-p0"];
 
   patches = [
-    ./CVE-2016-3189.patch
-    ./cve-2019-12900.patch
+    (fetchurl {
+      url = "https://ftp.suse.com/pub/people/sbrabec/bzip2/for_downstream/bzip2-1.0.6.2-autoconfiscated.patch";
+      sha256 = "sha256-QMufl6ffJVVVVZespvkCbFpB6++R1lnq1687jEsUjr0=";
+    })
   ];
-
+  # Fix up hardcoded version from the above patch, e.g. seen in bzip2.pc or libbz2.so.1.0.N
   postPatch = ''
-    sed -i -e '/<sys\\stat\.h>/s|\\|/|' bzip2.c
+    patch <<-EOF
+      --- configure.ac
+      +++ configure.ac
+      @@ -3,3 +3,3 @@
+      -AC_INIT([bzip2], [1.0.6], [Julian Seward <jseward@bzip.org>])
+      +AC_INIT([bzip2], [${version}], [Julian Seward <jseward@bzip.org>])
+       BZIP2_LT_CURRENT=1
+      -BZIP2_LT_REVISION=6
+      +BZIP2_LT_REVISION=${lib.versions.patch version}
+    EOF
   '';
 
+  strictDeps = true;
+  nativeBuildInputs = [ autoreconfHook ];
+
   outputs = [ "bin" "dev" "out" "man" ];
 
   configureFlags =
@@ -44,6 +49,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  postInstall = ''
+    ln -s $out/lib/libbz2.so.1.0.* $out/lib/libbz2.so.1.0
+  '';
+
   meta = with lib; {
     description = "High-quality data compression program";
     homepage = "https://www.sourceware.org/bzip2";
diff --git a/nixpkgs/pkgs/tools/compression/bzip3/default.nix b/nixpkgs/pkgs/tools/compression/bzip3/default.nix
new file mode 100644
index 000000000000..c265a54a9813
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/bzip3/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bzip3";
+  version = "1.1.4";
+
+  outputs = [ "bin" "dev" "out" ];
+
+  src = fetchFromGitHub {
+    owner = "kspalaiologos";
+    repo = "bzip3";
+    rev = version;
+    hash = "sha256-rbJUvFm8WYgQLNpbX6kcXb5qAGAJfylTo4HgOvZVCu8=";
+  };
+
+  postPatch = ''
+    echo -n "${version}" > .tarball-version
+    patchShebangs build-aux
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  configureFlags = [
+    "--disable-arch-native"
+  ] ++ lib.optionals stdenv.isDarwin [ "--disable-link-time-optimization" ];
+
+  meta = {
+    description = "A better and stronger spiritual successor to BZip2";
+    homepage = "https://github.com/kspalaiologos/bzip3";
+    changelog = "https://github.com/kspalaiologos/bzip3/blob/${src.rev}/NEWS";
+    license = lib.licenses.lgpl3Plus;
+    maintainers = with lib.maintainers; [ dotlambda ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/crabz/default.nix b/nixpkgs/pkgs/tools/compression/crabz/default.nix
index 5eafb3f56145..67c4cffbc331 100644
--- a/nixpkgs/pkgs/tools/compression/crabz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/crabz/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crabz";
-  version = "0.7.2";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "sstadick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ch9cqarsakihg9ymbdm0ka6wz77z84n4g6cdlcskczc5g3b9gp9";
+    sha256 = "sha256-9PZbrdgHX7zOftecvsyVjYUkBlFEt20lYtLSkFcb8dg=";
   };
 
-  cargoSha256 = "sha256-nrCYlhq/f8gk3NmltAg+xppRJ533ooEpetWvaF2vmP0=";
+  cargoSha256 = "sha256-tT6RCL5pOAMZw7cQr0BCAde9Y/1FeBBLXF6uXfM1I0A=";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/tools/compression/efficient-compression-tool/default.nix b/nixpkgs/pkgs/tools/compression/efficient-compression-tool/default.nix
new file mode 100644
index 000000000000..6a9615601276
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/efficient-compression-tool/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, boost
+, cmake
+, nasm
+, libpng
+}:
+
+stdenv.mkDerivation rec {
+  pname = "efficient-compression-tool";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "fhanau";
+    repo = "Efficient-Compression-Tool";
+    rev = "v${version}";
+    sha256 = "sha256-TSV5QXf6GuHAwQrde3Zo9MA1rtpAhtRg0UTzMkBnHB8=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake nasm ];
+
+  patches = [ ./use-nixpkgs-libpng.patch ];
+
+  buildInputs = [ boost libpng  ];
+
+  cmakeDir = "../src";
+
+  cmakeFlags = [ "-DECT_FOLDER_SUPPORT=ON" ];
+
+  meta = with lib; {
+    description = "Fast and effective C++ file optimizer";
+    homepage = "https://github.com/fhanau/Efficient-Compression-Tool";
+    license = licenses.asl20;
+    maintainers = [ maintainers.lunik1 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch b/nixpkgs/pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch
new file mode 100644
index 000000000000..f165b2b95506
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch
@@ -0,0 +1,108 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index d18843c..a9df1fb 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -8,11 +8,6 @@ if(NOT CMAKE_BUILD_TYPE)
+ 	set(CMAKE_BUILD_TYPE Release)
+ endif()
+ 
+-# Check that submodules are present only if source was downloaded with git
+-if(EXISTS "${CMAKE_SOURCE_DIR}/../.git" AND NOT EXISTS "${CMAKE_SOURCE_DIR}/../src/libpng/README")
+-    message (FATAL_ERROR "Submodules are not initialized. Run \n\tgit submodule update --init --recursive\n within the repository")
+-endif()
+-
+ add_executable(ect
+ 	main.cpp
+ 	gztools.cpp
+@@ -56,7 +51,6 @@ add_subdirectory(lodepng EXCLUDE_FROM_ALL)
+ add_subdirectory(miniz EXCLUDE_FROM_ALL)
+ add_subdirectory(zlib EXCLUDE_FROM_ALL)
+ add_subdirectory(zopfli EXCLUDE_FROM_ALL)
+-file(COPY ${CMAKE_SOURCE_DIR}/pngusr.h DESTINATION ${CMAKE_SOURCE_DIR}/libpng/)
+ add_subdirectory(optipng EXCLUDE_FROM_ALL)
+ # Mozjpeg changes the install prefix if it thinks the current is defaulted
+ set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT FALSE)
+diff --git a/src/Makefile b/src/Makefile
+index cc24367..7aa9f0a 100755
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -18,7 +18,7 @@ CXXSRC = support.cpp zopflipng.cpp zopfli/deflate.cpp zopfli/zopfli_gzip.cpp zop
+ lodepng/lodepng.cpp lodepng/lodepng_util.cpp optipng/codec.cpp optipng/optipng.cpp jpegtran.cpp gztools.cpp \
+ leanify/zip.cpp leanify/leanify.cpp
+ 
+-.PHONY: libpng mozjpeg deps bin all install
++.PHONY: mozjpeg deps bin all install
+ all: deps bin
+ 
+ bin: deps
+@@ -33,9 +33,6 @@ libz.a:
+ 	cd zlib/; \
+ 	$(CC) $(UCFLAGS) -c adler32.c crc32.c deflate.c inffast.c inflate.c inftrees.c trees.c zutil.c gzlib.c gzread.c; \
+ 	ar rcs ../libz.a adler32.o crc32.o deflate.o inffast.o inflate.o inftrees.o trees.o zutil.o gzlib.o gzread.o
+-libpng:
+-	cp pngusr.h libpng/pngusr.h
+-	make -C libpng/ -f scripts/makefile.linux-opt CC="$(CC)" CFLAGS="$(UCFLAGS) -DPNG_USER_CONFIG -Wno-macro-redefined" libpng.a
+ mozjpeg:
+ 	cd mozjpeg/; \
+ 	export CC="$(CC)"; \
+diff --git a/src/optipng/CMakeLists.txt b/src/optipng/CMakeLists.txt
+index 1037a20..3c751e9 100644
+--- a/src/optipng/CMakeLists.txt
++++ b/src/optipng/CMakeLists.txt
+@@ -16,16 +16,14 @@ add_library(optipng
+ add_library(optipng::optipng ALIAS optipng)
+ 
+ #make sure that we are using custom zlib and custom libpng options
+-set(PNG_BUILD_ZLIB ON CACHE BOOL "use custom zlib within libpng" FORCE)
+ set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../zlib/ CACHE FILEPATH "custom zlib directory" FORCE)
+ if(NOT WIN32)
+ 	add_compile_options(-Wno-macro-redefined)
+ endif()
+ add_compile_definitions(PNG_USER_CONFIG)
+ 
+-add_subdirectory(../libpng libpng EXCLUDE_FROM_ALL)
+ target_link_libraries(optipng
+-	png_static)
++	png)
+ 
+ # libpng generates some header files that we need to be able to include
+ target_include_directories(optipng
+diff --git a/src/optipng/image.h b/src/optipng/image.h
+index c439f84..8255fa0 100755
+--- a/src/optipng/image.h
++++ b/src/optipng/image.h
+@@ -13,7 +13,7 @@
+ #ifndef OPNGCORE_IMAGE_H
+ #define OPNGCORE_IMAGE_H
+ 
+-#include "../libpng/png.h"
++#include <png.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
+diff --git a/src/optipng/opngreduc/opngreduc.h b/src/optipng/opngreduc/opngreduc.h
+index a7e6553..06ef956 100755
+--- a/src/optipng/opngreduc/opngreduc.h
++++ b/src/optipng/opngreduc/opngreduc.h
+@@ -13,7 +13,7 @@
+ 
+ #include <stdbool.h>
+ 
+-#include "../../libpng/png.h"
++#include <png.h>
+ 
+ 
+ #ifdef __cplusplus
+diff --git a/src/optipng/trans.h b/src/optipng/trans.h
+index a2f7f3e..c0e8dc4 100755
+--- a/src/optipng/trans.h
++++ b/src/optipng/trans.h
+@@ -13,7 +13,7 @@
+ #ifndef OPNGTRANS_TRANS_H
+ #define OPNGTRANS_TRANS_H
+ 
+-#include "../libpng/png.h"
++#include <png.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
diff --git a/nixpkgs/pkgs/tools/compression/gzip/default.nix b/nixpkgs/pkgs/tools/compression/gzip/default.nix
index 8bec5b481c90..bd28ca63e80a 100644
--- a/nixpkgs/pkgs/tools/compression/gzip/default.nix
+++ b/nixpkgs/pkgs/tools/compression/gzip/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gzip";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchurl {
     url = "mirror://gnu/gzip/${pname}-${version}.tar.xz";
-    sha256 = "01vrly90rvc98af6rcmrb3gwv1l6pylasvsdka23dffwizb9b6lv";
+    sha256 = "sha256-zl4D5Rn2N+H4FAEazjXE+HszwLur7sNbr1+9NHnpGVY=";
   };
 
   outputs = [ "out" "man" "info" ];
diff --git a/nixpkgs/pkgs/tools/compression/gzrt/default.nix b/nixpkgs/pkgs/tools/compression/gzrt/default.nix
index 664c1eb78565..59d87cf4f341 100644
--- a/nixpkgs/pkgs/tools/compression/gzrt/default.nix
+++ b/nixpkgs/pkgs/tools/compression/gzrt/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.urbanophile.com/arenn/hacking/gzrt/";
     description = "The gzip Recovery Toolkit";
     maintainers = with maintainers; [ ];
+    mainProgram = "gzrecover";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/compression/heatshrink/default.nix b/nixpkgs/pkgs/tools/compression/heatshrink/default.nix
new file mode 100644
index 000000000000..290e2dc9d8ca
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/heatshrink/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "heatshrink";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "atomicobject";
+    repo = "heatshrink";
+    rev = "v${version}";
+    hash = "sha256-Nm9/+JFMDXY1N90hmNFGh755V2sXSRQ4VBN9f8TcsGk=";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preInstall = ''
+    mkdir -p $out/{bin,lib,include}
+  '';
+
+  doCheck = true;
+  checkTarget = "test";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    echo "Hello world" | \
+      $out/bin/heatshrink -e - | \
+      $out/bin/heatshrink -d - | \
+      grep "Hello world"
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    description = "A data compression/decompression library for embedded/real-time systems";
+    homepage = "https://github.com/atomicobject/heatshrink";
+    license = licenses.isc;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/kzipmix/default.nix b/nixpkgs/pkgs/tools/compression/kzipmix/default.nix
index 9072a24b7fb5..bde65af03e90 100644
--- a/nixpkgs/pkgs/tools/compression/kzipmix/default.nix
+++ b/nixpkgs/pkgs/tools/compression/kzipmix/default.nix
@@ -13,12 +13,13 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp amd64/{kzip,zipmix} $out/bin
 
-    patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/kzip
-    patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/zipmix
+    patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux.so.2 $out/bin/kzip
+    patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux.so.2 $out/bin/zipmix
   '';
 
   meta = with lib; {
     description = "A tool that aggressively optimizes the sizes of Zip archives";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     homepage = "http://advsys.net/ken/utils.htm";
     maintainers = [ maintainers.sander ];
diff --git a/nixpkgs/pkgs/tools/compression/lhasa/default.nix b/nixpkgs/pkgs/tools/compression/lhasa/default.nix
index 4f1ba702831f..a58f186129ed 100644
--- a/nixpkgs/pkgs/tools/compression/lhasa/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lhasa/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     homepage = "http://fragglet.github.io/lhasa";
     maintainers = [ maintainers.sander ];
+    mainProgram = "lha";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/compression/lrzip/default.nix b/nixpkgs/pkgs/tools/compression/lrzip/default.nix
index 4fe5512b4c6f..3bb1e29f0347 100644
--- a/nixpkgs/pkgs/tools/compression/lrzip/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lrzip/default.nix
@@ -5,13 +5,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "lrzip";
-  version = "0.641";
+  version = "0.651";
 
   src = fetchFromGitHub {
     owner = "ckolivas";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-253CH6TiHWyr13C76y9PXjyB7gj2Bhd2VRgJ5r+cm/g=";
+    sha256 = "sha256-Mb324ojtLV0S10KhL7Vjf3DhSOtCy1pFMTzvLkTnpXM=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/tools/compression/lzip/default.nix b/nixpkgs/pkgs/tools/compression/lzip/default.nix
index 17abb6503c9b..7fa7b4e35c85 100644
--- a/nixpkgs/pkgs/tools/compression/lzip/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lzip/default.nix
@@ -7,13 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "lzip";
-  version = "1.22";
+  version = "1.23";
+  outputs = [ "out" "man" "info" ];
 
   nativeBuildInputs = [ texinfo ];
 
   src = fetchurl {
     url = "mirror://savannah/lzip/${pname}-${version}.tar.gz";
-    sha256 = "sha256-wzQtQuZxOcFluLEo0DO1yWiToTrF8lkzGQMVIU6HqUg=";
+    sha256 = "sha256-R5LAR93xXvKdVbqOaKGiHgy3aS2H7N9yBEGYZFgvKA0=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/compression/pigz/default.nix b/nixpkgs/pkgs/tools/compression/pigz/default.nix
index 6dbe190c400b..e7a1df5fd6cd 100644
--- a/nixpkgs/pkgs/tools/compression/pigz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pigz/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, zlib, util-linux }:
+{ lib, stdenv, fetchFromGitHub, zlib, util-linux }:
 
 stdenv.mkDerivation rec {
   pname = "pigz";
   version = "2.6";
 
-  src = fetchurl {
-    url = "https://www.zlib.net/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Lu17DXRJ0dcJA/KmLNYAXSYus6jJ6YaHvIy7WAnbKn0=";
+  src = fetchFromGitHub {
+      owner = "madler";
+      repo = "${pname}";
+      rev = "refs/tags/v${version}";
+      sha256 = "146qkmzi199xwmmf6bllanqfyl702fm1rnad8cd5r5yyrp5ks115";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/compression/pixz/default.nix b/nixpkgs/pkgs/tools/compression/pixz/default.nix
index ec05a44a5189..a8463f8abc4e 100644
--- a/nixpkgs/pkgs/tools/compression/pixz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pixz/default.nix
@@ -18,10 +18,8 @@ stdenv.mkDerivation rec {
   pname = "pixz";
   version = "1.0.7";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config autoconf automake ];
   buildInputs = [
-    autoconf
-    automake
     libtool
     asciidoc
     libxslt
diff --git a/nixpkgs/pkgs/tools/compression/pxz/default.nix b/nixpkgs/pkgs/tools/compression/pxz/default.nix
index 0f509a3bd170..f61e80cbc065 100644
--- a/nixpkgs/pkgs/tools/compression/pxz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pxz/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, testVersion
+, testers
 , pxz
 , xz
 }:
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     "MANDIR=${placeholder "out"}/share/man"
   ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = pxz;
   };
 
diff --git a/nixpkgs/pkgs/tools/compression/xdelta/default.nix b/nixpkgs/pkgs/tools/compression/xdelta/default.nix
index fbaab91d0931..27d0141ff75b 100644
--- a/nixpkgs/pkgs/tools/compression/xdelta/default.nix
+++ b/nixpkgs/pkgs/tools/compression/xdelta/default.nix
@@ -56,6 +56,7 @@ in stdenv.mkDerivation rec {
     '';
     homepage = "http://xdelta.org/";
     license = licenses.gpl2Plus;
+    mainProgram = "xdelta3";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/compression/xdelta/unstable.nix b/nixpkgs/pkgs/tools/compression/xdelta/unstable.nix
index 03366e5b1ce3..2ac8398dbc2d 100644
--- a/nixpkgs/pkgs/tools/compression/xdelta/unstable.nix
+++ b/nixpkgs/pkgs/tools/compression/xdelta/unstable.nix
@@ -60,6 +60,7 @@ in stdenv.mkDerivation rec {
     '';
     homepage = "http://xdelta.org/";
     license = licenses.gpl2Plus;
+    mainProgram = "xdelta3";
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/compression/xz/default.nix b/nixpkgs/pkgs/tools/compression/xz/default.nix
index 8304c34af897..75a58d011cef 100644
--- a/nixpkgs/pkgs/tools/compression/xz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/xz/default.nix
@@ -16,10 +16,12 @@ stdenv.mkDerivation rec {
     sha256 = "1ps2i8i212n0f4xpq6clp7h13q7m1y8slqvxha9i8d0bj0qgj5si";
   };
 
+  strictDeps = true;
   outputs = [ "bin" "dev" "out" "man" "doc" ];
 
   configureFlags = lib.optional enableStatic "--disable-shared";
 
+  enableParallelBuilding = true;
   doCheck = true;
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/tools/compression/zfp/default.nix b/nixpkgs/pkgs/tools/compression/zfp/default.nix
new file mode 100644
index 000000000000..0b337f613366
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/zfp/default.nix
@@ -0,0 +1,59 @@
+{ cmake, cudatoolkit, fetchFromGitHub, gfortran, lib, llvmPackages, python3Packages, stdenv, targetPlatform
+, enableCfp ? true
+, enableCuda ? false
+, enableExamples ? true
+, enableFortran ? builtins.elem targetPlatform.system gfortran.meta.platforms
+, enableOpenMP ? true
+, enablePython ? true
+, enableUtilities ? true }:
+
+stdenv.mkDerivation rec {
+  pname = "zfp";
+  version = "0.5.5";
+
+  src = fetchFromGitHub {
+    owner = "LLNL";
+    repo = "zfp";
+    rev = version;
+    sha256 = "19ycflz35qsrzfcvxdyy0mgbykfghfi9y5v684jb4awjp7nf562c";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = lib.optional enableCuda cudatoolkit
+    ++ lib.optional enableFortran gfortran
+    ++ lib.optional enableOpenMP llvmPackages.openmp
+    ++ lib.optionals enablePython (with python3Packages; [ cython numpy python ]);
+
+  cmakeFlags = [
+    # More tests not enabled by default
+    ''-DZFP_BINARY_DIR=${placeholder "out"}''
+    ''-DZFP_BUILD_TESTING_LARGE=ON''
+  ]
+    ++ lib.optionals targetPlatform.isDarwin [
+      "-DCMAKE_INSTALL_BINDIR=bin"
+      "-DCMAKE_INSTALL_LIBDIR=lib"
+    ]
+    ++ lib.optional enableCfp "-DBUILD_CFP=ON"
+    ++ lib.optional enableCuda "-DZFP_WITH_CUDA=ON"
+    ++ lib.optional enableExamples "-DBUILD_EXAMPLES=ON"
+    ++ lib.optional enableFortran "-DBUILD_ZFORP=ON"
+    ++ lib.optional enableOpenMP "-DZFP_WITH_OPENMP=ON"
+    ++ lib.optional enablePython "-DBUILD_ZFPY=ON"
+    ++ ([ "-DBUILD_UTILITIES=${if enableUtilities then "ON" else "OFF"}" ]);
+
+  preCheck = lib.optional targetPlatform.isDarwin ''
+    export DYLD_LIBRARY_PATH="$out/lib:$DYLD_LIBRARY_PATH"
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://computing.llnl.gov/projects/zfp";
+    description = "Library for random-access compression of floating-point arrays";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.spease ];
+    # 64-bit only
+    platforms = platforms.aarch64 ++ platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/zstd/default.nix b/nixpkgs/pkgs/tools/compression/zstd/default.nix
index 0bff5110c935..87d499614bff 100644
--- a/nixpkgs/pkgs/tools/compression/zstd/default.nix
+++ b/nixpkgs/pkgs/tools/compression/zstd/default.nix
@@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
       tests/playTests.sh
   '';
 
+  LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
+
   cmakeFlags = lib.attrsets.mapAttrsToList
     (name: value: "-DZSTD_${name}:BOOL=${if value then "ON" else "OFF"}") {
       BUILD_SHARED = !static;