linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / python-modules / johnnycanencrypt / default.nix
blob460b0cddf6164c4be8cd3c24a8d4a195f9081d46
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , buildPythonPackage
5 , rustPlatform
6 , llvmPackages
7 , pkg-config
8 , pcsclite
9 , nettle
10 , requests
11 , vcrpy
12 , numpy
13 , pytestCheckHook
14 , pythonOlder
15 , PCSC
18 buildPythonPackage rec {
19   pname = "johnnycanencrypt";
20   version = "0.5.0";
21   disabled = pythonOlder "3.7";
23   src = fetchFromGitHub {
24     owner = "kushaldas";
25     repo = "johnnycanencrypt";
26     rev = "v${version}";
27     sha256 = "192wfrlyylrpzq70yki421mi1smk8q2cyki2a1d03q7h6apib3j4";
28   };
30   cargoDeps = rustPlatform.fetchCargoTarball {
31     inherit patches src;
32     name = "${pname}-${version}";
33     hash = "sha256-2XhXCKyXVlFgbcOoMy/A5ajiIVxBii56YeI29mO720U=";
34   };
36   format = "pyproject";
38   patches = [ ./Cargo.lock.patch ];
40   cargoSha256 = "0ifvpdizcdp2c5x2x2j1bhhy5a75q0pk7a63dmh52mlpmh45fy6r";
42   LIBCLANG_PATH = llvmPackages.libclang + "/lib";
44   propagatedBuildInputs = [
45     requests
46     vcrpy
47   ];
49   nativeBuildInputs = [
50     llvmPackages.clang
51     pkg-config
52   ] ++ (with rustPlatform; [
53     cargoSetupHook
54     maturinBuildHook
55   ]);
57   buildInputs = [
58     pcsclite
59     nettle
60   ] ++ lib.optionals stdenv.isDarwin [ PCSC ];
62   # Needed b/c need to check AFTER python wheel is installed (using Rust Build, not buildPythonPackage)
63   doCheck = false;
64   doInstallCheck = true;
66   installCheckInputs = [
67     pytestCheckHook
68     numpy
69   ];
71   # Remove with the next release after 0.5.0. This change is required
72   # for compatibility with maturin 0.9.0.
73   postPatch = ''
74     sed '/project-url = /d' -i Cargo.toml
75   '';
77   preCheck = ''
78     export TESTDIR=$(mktemp -d)
79     cp -r tests/ $TESTDIR
80     pushd $TESTDIR
81   '';
83   postCheck = ''
84     popd
85   '';
87   pythonImportsCheck = [ "johnnycanencrypt" ];
89   meta = with lib; {
90     homepage = "https://github.com/kushaldas/johnnycanencrypt";
91     description = "Python module for OpenPGP written in Rust";
92     license = licenses.gpl3Plus;
93     maintainers = with maintainers; [ _0x4A6F ];
94   };