2022-01-03 16:56:52 +00:00
|
|
|
{ lib
|
|
|
|
, stdenv
|
2020-11-03 02:18:15 +00:00
|
|
|
, fetchFromGitHub
|
|
|
|
, doxygen
|
|
|
|
, pkg-config
|
|
|
|
, python3
|
|
|
|
, python3Packages
|
|
|
|
, wafHook
|
2022-01-03 16:56:52 +00:00
|
|
|
, boost175
|
2020-11-03 02:18:15 +00:00
|
|
|
, openssl
|
|
|
|
, sqlite
|
|
|
|
}:
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2020-04-24 23:36:52 +00:00
|
|
|
pname = "ndn-cxx";
|
2020-11-03 02:18:15 +00:00
|
|
|
version = "0.7.1";
|
|
|
|
|
2020-04-24 23:36:52 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "named-data";
|
|
|
|
repo = "ndn-cxx";
|
2020-11-03 02:18:15 +00:00
|
|
|
rev = "${pname}-${version}";
|
2022-01-03 16:56:52 +00:00
|
|
|
sha256 = "sha256-oTSc/lh0fDdk7dQeDhYKX5+gFl2t2Xlu1KkNmw7DitE=";
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
2020-11-03 02:18:15 +00:00
|
|
|
|
|
|
|
nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx wafHook ];
|
|
|
|
|
2022-01-03 16:56:52 +00:00
|
|
|
buildInputs = [ boost175 openssl sqlite ];
|
2020-11-03 02:18:15 +00:00
|
|
|
|
2020-04-24 23:36:52 +00:00
|
|
|
wafConfigureFlags = [
|
|
|
|
"--with-openssl=${openssl.dev}"
|
2022-01-03 16:56:52 +00:00
|
|
|
"--boost-includes=${boost175.dev}/include"
|
|
|
|
"--boost-libs=${boost175.out}/lib"
|
|
|
|
# "--with-tests" # disabled since upstream tests fail (Net/TestFaceUri/ParseDev Bug #3896)
|
2020-04-24 23:36:52 +00:00
|
|
|
];
|
2020-11-03 02:18:15 +00:00
|
|
|
|
2022-01-03 16:56:52 +00:00
|
|
|
|
|
|
|
doCheck = false; # disabled since upstream tests fail (Net/TestFaceUri/ParseDev Bug #3896)
|
|
|
|
checkPhase = ''
|
|
|
|
runHook preCheck
|
|
|
|
LD_PRELOAD=build/ndn-cxx.so build/unit-tests
|
|
|
|
runHook postCheck
|
|
|
|
'';
|
|
|
|
|
2021-02-05 17:12:51 +00:00
|
|
|
meta = with lib; {
|
|
|
|
homepage = "https://named-data.net/";
|
2020-04-24 23:36:52 +00:00
|
|
|
description = "A Named Data Neworking (NDN) or Content Centric Networking (CCN) abstraction";
|
|
|
|
longDescription = ''
|
|
|
|
ndn-cxx is a C++ library, implementing Named Data Networking (NDN)
|
|
|
|
primitives that can be used to implement various NDN applications.
|
|
|
|
NDN operates by addressing and delivering Content Objects directly
|
|
|
|
by Name instead of merely addressing network end-points. In addition,
|
|
|
|
the NDN security model explicitly secures individual Content Objects
|
|
|
|
rather than securing the connection or “pipe”. Named and secured
|
|
|
|
content resides in distributed caches automatically populated on
|
|
|
|
demand or selectively pre-populated. When requested by name, NDN
|
|
|
|
delivers named content to the user from the nearest cache, thereby
|
|
|
|
traversing fewer network hops, eliminating redundant requests,
|
|
|
|
and consuming less resources overall.
|
|
|
|
'';
|
|
|
|
license = licenses.lgpl3;
|
2020-11-03 02:18:15 +00:00
|
|
|
platforms = platforms.unix;
|
2022-01-03 16:56:52 +00:00
|
|
|
maintainers = with maintainers; [ sjmackenzie bertof ];
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
|
|
|
}
|