base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / compression / xdelta / unstable.nix
blob2ac8398dbc2dfb0addd084877533d336b71a9834
1 { lib, stdenv, fetchFromGitHub, autoreconfHook
2 , lzmaSupport ? true, xz ? null
3 }:
5 assert lzmaSupport -> xz != null;
7 let
8   mkWith = flag: name: if flag
9     then "--with-${name}"
10     else "--without-${name}";
11 in stdenv.mkDerivation rec {
12   pname = "xdelta";
13   version = "3.1.0";
15   src = fetchFromGitHub {
16     sha256 = "09mmsalc7dwlvgrda56s2k927rpl3a5dzfa88aslkqcjnr790wjy";
17     rev = "v${version}";
18     repo = "xdelta-devel";
19     owner = "jmacd";
20   };
22   nativeBuildInputs = [ autoreconfHook ];
23   buildInputs = []
24     ++ lib.optionals lzmaSupport [ xz ];
26   postPatch = ''
27     cd xdelta3
29     substituteInPlace Makefile.am --replace \
30       "common_CFLAGS =" \
31       "common_CFLAGS = -DXD3_USE_LARGESIZET=1"
32   '';
34   configureFlags = [
35     (mkWith lzmaSupport "liblzma")
36   ];
38   enableParallelBuilding = true;
40   doCheck = true;
41   checkPhase = ''
42     mkdir $PWD/tmp
43     for i in testing/file.h xdelta3-test.h; do
44       substituteInPlace $i --replace /tmp $PWD/tmp
45     done
46     ./xdelta3regtest
47   '';
49   installPhase = ''
50     install -D -m755 xdelta3 $out/bin/xdelta3
51     install -D -m644 xdelta3.1 $out/share/man/man1/xdelta3.1
52   '';
54   meta = with lib; {
55     description = "Binary differential compression in VCDIFF (RFC 3284) format";
56     longDescription = ''
57       xdelta is a command line program for delta encoding, which generates two
58       file differences. This is similar to diff and patch, but it is targeted
59       for binary files and does not generate human readable output.
60     '';
61     homepage = "http://xdelta.org/";
62     license = licenses.gpl2Plus;
63     mainProgram = "xdelta3";
64     platforms = platforms.linux;
65   };