summary refs log tree commit diff
path: root/pkgs/development/libraries/libchop/default.nix
blob: f524c940255857091bd9b1543e7b497589274b0d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{ fetchurl, stdenv, zlib, bzip2, libgcrypt
, gdbm, gperf, tdb, gnutls, db, libuuid
, lzo, pkgconfig, guile
}:

stdenv.mkDerivation rec {
  name = "libchop-0.5.2";

  src = fetchurl {
    url = "mirror://savannah/libchop/${name}.tar.gz";
    sha256 = "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g";
  };

  patches = [ ./gets-undeclared.patch ./size_t.patch ];

  nativeBuildInputs = [ pkgconfig gperf ];
  
  buildInputs =
    [ zlib bzip2 lzo
      libgcrypt
      gdbm db tdb
      gnutls libuuid
      guile
    ];

  doCheck = false;

  preConfigure = ''
    sed -re 's%@GUILE@%&/guile%' -i */Makefile.* Makefile.*
  '';

  meta = with stdenv.lib; {
    description = "Tools & library for data backup and distributed storage";

    longDescription =
      '' Libchop is a set of utilities and library for data backup and
         distributed storage.  Its main application is chop-backup, an
         encrypted backup program that supports data integrity checks,
         versioning at little cost, distribution among several sites,
         selective sharing of stored data, adaptive compression, and more.
         The library itself, which chop-backup builds upon, implements
         storage techniques such as content-based addressing, content hash
         keys, Merkle trees, similarity detection, and lossless compression.
         It makes it easy to combine them in different ways.  The
         ‘chop-archiver’ and ‘chop-block-server’ tools, illustrated in the
         manual, provide direct access to these facilities from the command
         line.  It is written in C and has Guile (Scheme) bindings.
      '';

    homepage = http://nongnu.org/libchop/;
    license = licenses.gpl3Plus;
    maintainers = with maintainers; [ ];
    platforms = platforms.gnu ++ platforms.linux;
  };
}