about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/c-ares/default.nix
blob: 87b86036cff28d204f8fdfc9cfd793f58a750b26 (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
{ lib, stdenv, fetchurl, writeTextDir
, withCMake ? true, cmake

# sensitive downstream packages
, curl
, grpc # consumes cmake config
}:

# Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as
# files.

stdenv.mkDerivation rec {
  pname = "c-ares";
  version = "1.27.0";

  src = fetchurl {
    url = "https://c-ares.org/download/${pname}-${version}.tar.gz";
    hash = "sha256-CnK+ZpWZVcQ+KvL70DQY6Cor1UZGBOyaYhR+N6zrQgs=";
  };

  outputs = [ "out" "dev" "man" ];

  nativeBuildInputs = lib.optionals withCMake [ cmake ];

  cmakeFlags = [] ++ lib.optionals stdenv.hostPlatform.isStatic [
    "-DCARES_SHARED=OFF"
    "-DCARES_STATIC=ON"
  ];

  enableParallelBuilding = true;

  passthru.tests = {
    inherit grpc;
    curl = (curl.override { c-aresSupport = true; }).tests.withCheck;
  };

  meta = with lib; {
    description = "A C library for asynchronous DNS requests";
    homepage = "https://c-ares.haxx.se";
    changelog = "https://c-ares.org/changelog.html#${lib.replaceStrings [ "." ] [ "_" ] version}";
    license = licenses.mit;
    platforms = platforms.all;
  };
}