nixpkgs/pkgs/development/libraries/c-ares/default.nix
2022-11-04 14:03:18 +01:00

54 lines
1.4 KiB
Nix

{ lib, stdenv, fetchurl, writeTextDir
, fetchpatch
, 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.18.1";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://c-ares.haxx.se/download/${pname}-${version}.tar.gz";
sha256 = "sha256-Gn1SqKhKn7/7G+kTPA9uFyF9kepab6Yfa0cpzaeOu88=";
};
# c-ares is used for fetchpatch, so avoid using it for c-aresMinimal
patches = lib.optionals withCMake [
# fix .pc paths created by cmake build
(fetchpatch {
url = "https://github.com/jonringer/c-ares/commit/9806a8a2f999a8a3efa3c893f2854dce6919d5bb.patch";
sha256 = "sha256-nh/ZKdan2/FTrouApRQA7O8KGZrLEUuWhxGOktiiGwU=";
})
];
nativeBuildInputs = lib.optionals withCMake [ cmake ];
cmakeFlags = [] ++ lib.optionals stdenv.hostPlatform.isStatic [
"-DCARES_SHARED=OFF"
"-DCARES_STATIC=ON"
];
enableParallelBuilding = true;
passthru.tests = {
inherit curl grpc;
};
meta = with lib; {
description = "A C library for asynchronous DNS requests";
homepage = "https://c-ares.haxx.se";
license = licenses.mit;
platforms = platforms.all;
};
}