2016-01-11 17:20:40 +01:00
|
|
|
{ stdenv, fetchFromGitHub, autoreconfHook
|
|
|
|
, lzmaSupport ? true, xz ? null
|
|
|
|
}:
|
2010-11-28 17:37:48 +01:00
|
|
|
|
2016-01-11 17:20:40 +01:00
|
|
|
assert lzmaSupport -> xz != null;
|
|
|
|
|
|
|
|
let
|
|
|
|
mkWith = flag: name: if flag
|
|
|
|
then "--with-${name}"
|
|
|
|
else "--without-${name}";
|
2016-01-25 20:08:34 +01:00
|
|
|
in stdenv.mkDerivation rec {
|
2015-04-16 23:25:24 +02:00
|
|
|
name = "xdelta-${version}";
|
2016-01-25 20:08:34 +01:00
|
|
|
version = "3.0.11";
|
2016-01-11 18:34:21 +01:00
|
|
|
|
2015-04-16 23:25:24 +02:00
|
|
|
src = fetchFromGitHub {
|
2016-01-11 17:18:37 +01:00
|
|
|
sha256 = "1c7xym7xr26phyf4wb9hh2w88ybzbzh2w3h1kyqq3da0ndidmf2r";
|
2015-04-16 23:25:24 +02:00
|
|
|
rev = "v${version}";
|
|
|
|
repo = "xdelta-devel";
|
|
|
|
owner = "jmacd";
|
2010-11-28 17:37:48 +01:00
|
|
|
};
|
|
|
|
|
2015-06-17 19:36:06 +02:00
|
|
|
nativeBuildInputs = [ autoreconfHook ];
|
2016-01-11 17:20:40 +01:00
|
|
|
buildInputs = []
|
|
|
|
++ stdenv.lib.optionals lzmaSupport [ xz ];
|
2010-11-28 17:37:48 +01:00
|
|
|
|
2015-04-16 23:25:24 +02:00
|
|
|
postPatch = ''
|
|
|
|
cd xdelta3
|
|
|
|
'';
|
|
|
|
|
2016-01-11 17:20:40 +01:00
|
|
|
configureFlags = [
|
|
|
|
(mkWith lzmaSupport "liblzma")
|
|
|
|
];
|
|
|
|
|
2015-04-16 23:25:24 +02:00
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
|
|
|
doCheck = true;
|
|
|
|
checkPhase = ''
|
2015-08-02 22:03:26 +02:00
|
|
|
mkdir $PWD/tmp
|
|
|
|
for i in testing/file.h xdelta3-test.h; do
|
|
|
|
substituteInPlace $i --replace /tmp $PWD/tmp
|
|
|
|
done
|
2015-04-16 23:25:24 +02:00
|
|
|
./xdelta3regtest
|
|
|
|
'';
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
install -D -m755 xdelta3 $out/bin/xdelta3
|
|
|
|
install -D -m644 xdelta3.1 $out/share/man/man1/xdelta3.1
|
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with stdenv.lib; {
|
|
|
|
description = "Binary differential compression in VCDIFF (RFC 3284) format";
|
2016-01-11 18:40:02 +01:00
|
|
|
longDescription = ''
|
|
|
|
xdelta is a command line program for delta encoding, which generates two
|
|
|
|
file differences. This is similar to diff and patch, but it is targeted
|
|
|
|
for binary files and does not generate human readable output.
|
|
|
|
'';
|
2010-11-28 17:37:48 +01:00
|
|
|
homepage = http://xdelta.org/;
|
2015-05-28 19:20:29 +02:00
|
|
|
license = licenses.gpl2Plus;
|
2015-11-17 21:29:29 +01:00
|
|
|
platforms = platforms.linux;
|
2010-11-28 17:37:48 +01:00
|
|
|
};
|
|
|
|
}
|