Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / libnbd / default.nix
blob31104b262af98378a0ce447a005e09ae3126a212
1 { lib
2 , stdenv
3 , fetchurl
4 , bash-completion
5 , pkg-config
6 , perl
7 , libxml2
8 , fuse
9 , fuse3
10 , gnutls
13 stdenv.mkDerivation rec {
14   pname = "libnbd";
15   version = "1.18.0";
17   src = fetchurl {
18     url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
19     hash = "sha256-srJyd32eCIthoncvM9JQEKCWEOZxxc3YntaV4Ay8kZ8=";
20   };
22   nativeBuildInputs = [
23     bash-completion
24     pkg-config
25     perl
26   ];
28   buildInputs = [
29     fuse
30     fuse3
31     gnutls
32     libxml2
33   ];
35   installFlags = [ "bashcompdir=$(out)/share/bash-completion/completions" ];
37   meta = with lib; {
38     homepage = "https://gitlab.com/nbdkit/libnbd";
39     description = "Network Block Device client library in userspace";
40     longDescription = ''
41       NBD — Network Block Device — is a protocol for accessing Block Devices
42       (hard disks and disk-like things) over a Network.  This is the NBD client
43       library in userspace, a simple library for writing NBD clients.
45       The key features are:
46       - Synchronous API for ease of use.
47       - Asynchronous API for writing non-blocking, multithreaded clients. You
48         can mix both APIs freely.
49       - High performance.
50       - Minimal dependencies for the basic library.
51       - Well-documented, stable API.
52       - Bindings in several programming languages.
53       - Shell (nbdsh) for command line and scripting.
54     '';
55     license = with licenses; lgpl21Plus;
56     maintainers = with maintainers; [ AndersonTorres humancalico ];
57     platforms = with platforms; linux;
58   };
60 # TODO: package the 1.6-stable version too
61 # TODO: git version needs ocaml
62 # TODO: bindings for go, ocaml and python