chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / ru / rustls-ffi / package.nix
blobe5317b40b78ce4a75a8bbdbc2051761ad015eed4
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cargo
5 , rustPlatform
6 , cargo-c
7 , validatePkgConfig
8 , rust
9 , libiconv
10 , darwin
11 , curl
12 , apacheHttpd
13 , testers
16 stdenv.mkDerivation (finalAttrs: {
17   pname = "rustls-ffi";
18   version = "0.13.0";
20   src = fetchFromGitHub {
21     owner = "rustls";
22     repo = "rustls-ffi";
23     rev = "v${finalAttrs.version}";
24     hash = "sha256-Bc9bVZ2pDsG118l/SlElZpgh9F1JEgPF8LzBX7d4mhE=";
25   };
27   cargoDeps = rustPlatform.fetchCargoTarball {
28     src = finalAttrs.src;
29     name = "${finalAttrs.pname}-${finalAttrs.version}";
30     hash = "sha256-gDQ9AFrJuV7SrzKCAHQBkKj6clXuPLO0DHhnvcBqRLs=";
31   };
33   propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
35   nativeBuildInputs = [ cargo rustPlatform.cargoSetupHook cargo-c validatePkgConfig ];
37   buildPhase = ''
38     runHook preBuild
39     ${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
40     runHook postBuild
41   '';
43   installPhase = ''
44     runHook preInstall
45     ${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
46     runHook postInstall
47   '';
49   checkPhase = ''
50     runHook preCheck
51     ${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
52     runHook postCheck
53   '';
55   passthru.tests = {
56     curl = curl.override { opensslSupport = false; rustlsSupport = true; rustls-ffi = finalAttrs.finalPackage; };
57     apacheHttpd = apacheHttpd.override { modTlsSupport = true; rustls-ffi = finalAttrs.finalPackage; };
58     pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
59   };
61   meta = with lib; {
62     description = "C-to-rustls bindings";
63     homepage = "https://github.com/rustls/rustls-ffi/";
64     pkgConfigModules = [ "rustls" ];
65     license = with lib.licenses; [ mit asl20 isc ];
66     maintainers = [ maintainers.lesuisse ];
67   };