{ 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; }; }