ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / development / python-modules / johnnycanencrypt / default.nix
blob6fcdd5aeb35421439cc4447d3a03c3cc30a0a9eb
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
16 , libiconv
19 buildPythonPackage rec {
20   pname = "johnnycanencrypt";
21   version = "0.6.0";
22   disabled = pythonOlder "3.7";
24   src = fetchFromGitHub {
25     owner = "kushaldas";
26     repo = "johnnycanencrypt";
27     rev = "v${version}";
28     sha256 = "0b1yfddf38dicmjgnw9mk5g0iisa5yq6l9cj6kfskhyrznasvz3g";
29   };
31   cargoDeps = rustPlatform.fetchCargoTarball {
32     inherit patches src;
33     name = "${pname}-${version}";
34     hash = "sha256-1dRFC59GY7M99LvQWy2eXPesmLX5k46rN8l4suLYkQY=";
35   };
37   format = "pyproject";
39   patches = [ ./Cargo.lock.patch ];
41   LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
43   propagatedBuildInputs = [
44     requests
45     vcrpy
46   ];
48   nativeBuildInputs = [
49     llvmPackages.clang
50     pkg-config
51   ] ++ (with rustPlatform; [
52     cargoSetupHook
53     maturinBuildHook
54   ]);
56   buildInputs = [
57     pcsclite
58     nettle
59   ] ++ lib.optionals stdenv.isDarwin [
60     PCSC
61     libiconv
62   ];
64   # Needed b/c need to check AFTER python wheel is installed (using Rust Build, not buildPythonPackage)
65   doCheck = false;
66   doInstallCheck = true;
68   installCheckInputs = [
69     pytestCheckHook
70     numpy
71   ];
73   # Remove with the next release after 0.5.0. This change is required
74   # for compatibility with maturin 0.9.0.
75   postPatch = ''
76     sed '/project-url = /d' -i Cargo.toml
77     substituteInPlace pyproject.toml \
78       --replace 'manylinux = "off"' 'skip-auditwheel = true'
79   '';
81   preCheck = ''
82     export TESTDIR=$(mktemp -d)
83     cp -r tests/ $TESTDIR
84     pushd $TESTDIR
85   '';
87   postCheck = ''
88     popd
89   '';
91   pythonImportsCheck = [ "johnnycanencrypt" ];
93   meta = with lib; {
94     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
95     homepage = "https://github.com/kushaldas/johnnycanencrypt";
96     description = "Python module for OpenPGP written in Rust";
97     license = licenses.gpl3Plus;
98     maintainers = with maintainers; [ _0x4A6F ];
99   };