Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / ndn-cxx / default.nix
blobd7b31426c4f68cb1a7a11aa4eae75f5238ed3f26
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , doxygen
5 , pkg-config
6 , python3
7 , python3Packages
8 , wafHook
9 , boost179
10 , openssl
11 , sqlite
14 stdenv.mkDerivation rec {
15   pname = "ndn-cxx";
16   version = "0.8.1";
18   src = fetchFromGitHub {
19     owner = "named-data";
20     repo = "ndn-cxx";
21     rev = "${pname}-${version}";
22     sha256 = "sha256-nnnxlkYVTSRB6ZcuIUDFol999+amGtqegHXK+06ITK8=";
23   };
25   nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx wafHook ];
27   buildInputs = [ boost179 openssl sqlite ];
29   wafConfigureFlags = [
30     "--with-openssl=${openssl.dev}"
31     "--boost-includes=${boost179.dev}/include"
32     "--boost-libs=${boost179.out}/lib"
33     "--with-tests"
34   ];
36   doCheck = false; # some tests fail in upstream, some fail because of the sandbox environment
37   checkPhase = ''
38     runHook preCheck
39     LD_PRELOAD=build/libndn-cxx.so build/unit-tests
40     runHook postCheck
41   '';
43   meta = with lib; {
44     homepage = "https://named-data.net/";
45     description = "A Named Data Networking (NDN) or Content Centric Networking (CCN) abstraction";
46     longDescription = ''
47       ndn-cxx is a C++ library, implementing Named Data Networking (NDN)
48       primitives that can be used to implement various NDN applications.
49       NDN operates by addressing and delivering Content Objects directly
50       by Name instead of merely addressing network end-points. In addition,
51       the NDN security model explicitly secures individual Content Objects
52       rather than securing the connection or “pipe”. Named and secured
53       content resides in distributed caches automatically populated on
54       demand or selectively pre-populated. When requested by name, NDN
55       delivers named content to the user from the nearest cache, thereby
56       traversing fewer network hops, eliminating redundant requests,
57       and consuming less resources overall.
58     '';
59     license = licenses.lgpl3;
60     platforms = platforms.unix;
61     maintainers = with maintainers; [ sjmackenzie bertof ];
62   };