anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / development / libraries / ngtcp2 / gnutls.nix
blob74401482119cf793b0ffa1a75c52f7199e1c5dcf
1 { lib, stdenv, fetchFromGitHub
2 , autoreconfHook, pkg-config
3 , gnutls
4 , cunit, ncurses, knot-dns
5 }:
7 stdenv.mkDerivation rec {
8   pname = "ngtcp2";
9   version = "1.8.0";
11   src = fetchFromGitHub {
12     owner = "ngtcp2";
13     repo = "ngtcp2";
14     rev = "v${version}";
15     hash = "sha256-qBDpNyBxcW/OPnrbmL+NmKWIF69p1OoZFqlP6mwPi9U=";
16   };
18   outputs = [ "out" "dev" ];
20   nativeBuildInputs = [ autoreconfHook pkg-config ];
21   buildInputs = [ gnutls ];
23   configureFlags = [ "--with-gnutls=yes" ];
24   enableParallelBuilding = true;
26   doCheck = true;
27   nativeCheckInputs = [ cunit ]
28     ++ lib.optional stdenv.hostPlatform.isDarwin ncurses;
30   passthru.tests = knot-dns.passthru.tests; # the only consumer so far
32   meta = with lib; {
33     homepage = "https://github.com/ngtcp2/ngtcp2";
34     description = "Effort to implement RFC9000 QUIC protocol";
35     license = licenses.mit;
36     platforms = platforms.unix;
37     maintainers = with maintainers; [ vcunat/* for knot-dns */ ];
38   };
42   Why split from ./default.nix?
44   ngtcp2 libs contain helpers to plug into various crypto libs (gnutls, patched openssl, ...).
45   Building multiple of them while keeping closures separable would be relatively complicated.
46   Separating the builds is easier for now; the missed opportunity to share the 0.3--0.4 MB
47   library isn't such a big deal.
49   Moreover upstream still commonly does incompatible changes, so agreeing
50   on a single version might be hard sometimes.  That's why it seemed simpler
51   to completely separate the nix expressions, too.