From 960690e9316488579cdda9b0419c9462d25dc47f Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Mon, 24 Mar 2014 00:02:00 -0500 Subject: [PATCH] bsdiff: adopt and clean up Bonus: simpler build, and should fix the build of bsdiff for Darwin (patch taken from homebrew). Signed-off-by: Austin Seipp --- pkgs/tools/compression/bsdiff/builder.sh | 8 ---- pkgs/tools/compression/bsdiff/default.nix | 37 +++++++++++++++---- .../compression/bsdiff/include-systypes.patch | 12 ++++++ 3 files changed, 42 insertions(+), 15 deletions(-) delete mode 100644 pkgs/tools/compression/bsdiff/builder.sh create mode 100644 pkgs/tools/compression/bsdiff/include-systypes.patch diff --git a/pkgs/tools/compression/bsdiff/builder.sh b/pkgs/tools/compression/bsdiff/builder.sh deleted file mode 100644 index f2792a40a60c..000000000000 --- a/pkgs/tools/compression/bsdiff/builder.sh +++ /dev/null @@ -1,8 +0,0 @@ -source $stdenv/setup - -installFlags="PREFIX=$out INSTALL=install" - -mkdir -p "$out/bin" -mkdir -p "$out/man/man1" - -genericBuild diff --git a/pkgs/tools/compression/bsdiff/default.nix b/pkgs/tools/compression/bsdiff/default.nix index 81210490883f..1d693f781e6c 100644 --- a/pkgs/tools/compression/bsdiff/default.nix +++ b/pkgs/tools/compression/bsdiff/default.nix @@ -1,14 +1,37 @@ -{stdenv, fetchurl, bzip2}: +{ stdenv, fetchurl, bzip2 }: + +stdenv.mkDerivation rec { + name = "bsdiff-${version}"; + version = "4.3"; -stdenv.mkDerivation { - name = "bsdiff-4.3"; - builder = ./builder.sh; src = fetchurl { - url = http://www.daemonology.net/bsdiff/bsdiff-4.3.tar.gz; + url = "http://www.daemonology.net/bsdiff/${name}.tar.gz"; sha256 = "0j2zm3z271x5aw63mwhr3vymzn45p2vvrlrpm9cz2nywna41b0hq"; }; + buildInputs = [ bzip2 ]; - patchPhase = '' - sed 's/^\.//g' -i Makefile + patches = [ ./include-systypes.patch ]; + + buildPhase = '' + cc -O3 -lbz2 bspatch.c -o bspatch + cc -O3 -lbz2 bsdiff.c -o bsdiff ''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/man/man1 + + cp bsdiff $out/bin + cp bspatch $out/bin + cp bsdiff.1 $out/share/man/man1 + cp bspatch.1 $out/share/man/man1 + ''; + + meta = { + description = "An efficient binary diff/patch tool"; + homepage = "http://www.daemonology.net/bsdiff"; + license = stdenv.lib.licenses.bsd2; + platforms = stdenv.lib.platforms.unix; + maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; + }; } diff --git a/pkgs/tools/compression/bsdiff/include-systypes.patch b/pkgs/tools/compression/bsdiff/include-systypes.patch new file mode 100644 index 000000000000..d070a8bb0f85 --- /dev/null +++ b/pkgs/tools/compression/bsdiff/include-systypes.patch @@ -0,0 +1,12 @@ +diff --git a/bspatch.c b/bspatch.c +index 643c60b..543379c 100644 +--- a/bspatch.c ++++ b/bspatch.c +@@ -28,6 +28,7 @@ + __FBSDID("$FreeBSD: src/usr.bin/bsdiff/bspatch/bspatch.c,v 1.1 2005/08/06 01:59:06 cperciva Exp $"); + #endif + ++#include + #include + #include + #include