nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 81 lines 2.0 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 cargo, 6 rustPlatform, 7 cargo-c, 8 validatePkgConfig, 9 buildPackages, 10 libiconv, 11 curl, 12 apacheHttpd, 13 testers, 14}: 15 16stdenv.mkDerivation (finalAttrs: { 17 pname = "rustls-ffi"; 18 version = "0.15.0"; 19 20 src = fetchFromGitHub { 21 owner = "rustls"; 22 repo = "rustls-ffi"; 23 tag = "v${finalAttrs.version}"; 24 hash = "sha256-m92kWH+J8wuGmI0msrp2aginY1K51iqgi3+u4ncmfts="; 25 }; 26 27 cargoDeps = rustPlatform.fetchCargoVendor { 28 inherit (finalAttrs) pname version src; 29 hash = "sha256-gqc6en59QQpD14hOgRuGEPWLvrkyGn9tPR9vQmRAxIg="; 30 }; 31 32 propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ 33 libiconv 34 ]; 35 36 nativeBuildInputs = [ 37 cargo 38 rustPlatform.cargoSetupHook 39 cargo-c 40 validatePkgConfig 41 ]; 42 43 buildPhase = '' 44 runHook preBuild 45 ${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} 46 runHook postBuild 47 ''; 48 49 installPhase = '' 50 runHook preInstall 51 ${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} 52 runHook postInstall 53 ''; 54 55 checkPhase = '' 56 runHook preCheck 57 ${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} 58 runHook postCheck 59 ''; 60 61 passthru.tests = { 62 curl = curl.override { 63 opensslSupport = false; 64 rustlsSupport = true; 65 rustls-ffi = finalAttrs.finalPackage; 66 }; 67 pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; 68 }; 69 70 meta = { 71 description = "C-to-rustls bindings"; 72 homepage = "https://github.com/rustls/rustls-ffi/"; 73 pkgConfigModules = [ "rustls" ]; 74 license = with lib.licenses; [ 75 mit 76 asl20 77 isc 78 ]; 79 maintainers = [ lib.maintainers.lesuisse ]; 80 }; 81})