at 24.05-pre 1.5 kB view raw
1{ lib 2, buildPythonPackage 3, cargo 4, rustPlatform 5, rustc 6, setuptools 7, setuptools-rust 8, isPyPy 9, fetchPypi 10, pythonOlder 11, cffi 12, pytestCheckHook 13, libiconv 14, stdenv 15 # for passthru.tests 16, asyncssh 17, django_4 18, fastapi 19, paramiko 20, twisted 21}: 22 23buildPythonPackage rec { 24 pname = "bcrypt"; 25 version = "4.0.1"; 26 format = "pyproject"; 27 28 disabled = pythonOlder "3.6"; 29 30 src = fetchPypi { 31 inherit pname version; 32 hash = "sha256-J9N1kDrIJhz+QEf2cJ0W99GNObHskqr3KvmJVSplDr0="; 33 }; 34 35 cargoRoot = "src/_bcrypt"; 36 cargoDeps = rustPlatform.fetchCargoTarball { 37 inherit src; 38 sourceRoot = "${pname}-${version}/${cargoRoot}"; 39 name = "${pname}-${version}"; 40 hash = "sha256-lDWX69YENZFMu7pyBmavUZaalGvFqbHSHfkwkzmDQaY="; 41 }; 42 43 nativeBuildInputs = [ 44 setuptools 45 setuptools-rust 46 rustPlatform.cargoSetupHook 47 cargo 48 rustc 49 ]; 50 51 # Remove when https://github.com/NixOS/nixpkgs/pull/190093 lands. 52 buildInputs = lib.optional stdenv.isDarwin libiconv; 53 54 propagatedBuildInputs = [ 55 cffi 56 ]; 57 58 propagatedNativeBuildInputs = [ 59 cffi 60 ]; 61 62 nativeCheckInputs = [ 63 pytestCheckHook 64 ]; 65 66 pythonImportsCheck = [ 67 "bcrypt" 68 ]; 69 70 passthru.tests = { 71 inherit asyncssh django_4 fastapi paramiko twisted; 72 }; 73 74 meta = with lib; { 75 description = "Modern password hashing for your software and your servers"; 76 homepage = "https://github.com/pyca/bcrypt/"; 77 license = licenses.asl20; 78 maintainers = with maintainers; [ domenkozar ]; 79 }; 80}