Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at gcc-offload 106 lines 2.4 kB view raw
1{ 2 lib, 3 stdenv, 4 buildPythonPackage, 5 callPackage, 6 setuptools, 7 bcrypt, 8 certifi, 9 cffi, 10 cryptography-vectors ? (callPackage ./vectors.nix { }), 11 fetchPypi, 12 isPyPy, 13 libiconv, 14 libxcrypt, 15 openssl, 16 pkg-config, 17 pretend, 18 pytest-xdist, 19 pytestCheckHook, 20 pythonOlder, 21 rustPlatform, 22 Security, 23}: 24 25buildPythonPackage rec { 26 pname = "cryptography"; 27 version = "43.0.1"; # Also update the hash in vectors.nix 28 pyproject = true; 29 30 disabled = pythonOlder "3.7"; 31 32 src = fetchPypi { 33 inherit pname version; 34 hash = "sha256-ID6Sp1cW2M+0kdxHx54X0NkgfM/8vLNfWY++RjrjRE0="; 35 }; 36 37 cargoDeps = rustPlatform.fetchCargoTarball { 38 inherit src; 39 sourceRoot = "${pname}-${version}/${cargoRoot}"; 40 name = "${pname}-${version}"; 41 hash = "sha256-wiAHM0ucR1X7GunZX8V0Jk2Hsi+dVdGgDKqcYjSdD7Q="; 42 }; 43 44 postPatch = '' 45 substituteInPlace pyproject.toml \ 46 --replace-fail "--benchmark-disable" "" 47 ''; 48 49 cargoRoot = "src/rust"; 50 51 build-system = [ 52 rustPlatform.cargoSetupHook 53 rustPlatform.maturinBuildHook 54 pkg-config 55 setuptools 56 ] ++ lib.optionals (!isPyPy) [ cffi ]; 57 58 buildInputs = 59 [ openssl ] 60 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 61 Security 62 libiconv 63 ] 64 ++ lib.optionals (pythonOlder "3.9") [ libxcrypt ]; 65 66 dependencies = lib.optionals (!isPyPy) [ cffi ]; 67 68 optional-dependencies.ssh = [ bcrypt ]; 69 70 nativeCheckInputs = [ 71 certifi 72 cryptography-vectors 73 pretend 74 pytestCheckHook 75 pytest-xdist 76 ] ++ optional-dependencies.ssh; 77 78 pytestFlagsArray = [ "--disable-pytest-warnings" ]; 79 80 disabledTestPaths = [ 81 # save compute time by not running benchmarks 82 "tests/bench" 83 ]; 84 85 passthru = { 86 vectors = cryptography-vectors; 87 }; 88 89 meta = with lib; { 90 description = "Package which provides cryptographic recipes and primitives"; 91 longDescription = '' 92 Cryptography includes both high level recipes and low level interfaces to 93 common cryptographic algorithms such as symmetric ciphers, message 94 digests, and key derivation functions. 95 ''; 96 homepage = "https://github.com/pyca/cryptography"; 97 changelog = 98 "https://cryptography.io/en/latest/changelog/#v" + replaceStrings [ "." ] [ "-" ] version; 99 license = with licenses; [ 100 asl20 101 bsd3 102 psfl 103 ]; 104 maintainers = with maintainers; [ SuperSandro2000 ]; 105 }; 106}