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