anki-bin: 24.06.3 -> 24.11 (#360722)
[NixPkgs.git] / pkgs / development / python-modules / ansible / core.nix
blob0061a8e4144f223ac94b092455af10b9c1137d05
2   lib,
3   buildPythonPackage,
4   fetchPypi,
5   pythonOlder,
6   installShellFiles,
7   docutils,
8   setuptools,
9   ansible,
10   cryptography,
11   importlib-resources,
12   jinja2,
13   junit-xml,
14   lxml,
15   ncclient,
16   packaging,
17   paramiko,
18   ansible-pylibssh,
19   passlib,
20   pexpect,
21   psutil,
22   pycrypto,
23   pyyaml,
24   requests,
25   resolvelib,
26   scp,
27   windowsSupport ? false,
28   pywinrm,
29   xmltodict,
32 buildPythonPackage rec {
33   pname = "ansible-core";
34   version = "2.17.6";
35   pyproject = true;
37   src = fetchPypi {
38     pname = "ansible_core";
39     inherit version;
40     hash = "sha256-PlOXC3zr/irbObcRweL4u/y+2sgo2lHcA1ehkHBjjpU=";
41   };
43   # ansible_connection is already wrapped, so don't pass it through
44   # the python interpreter again, as it would break execution of
45   # connection plugins.
46   postPatch = ''
47     substituteInPlace lib/ansible/executor/task_executor.py \
48       --replace "[python," "["
50     patchShebangs --build packaging/cli-doc/build.py
51   '';
53   nativeBuildInputs = [
54     installShellFiles
55     docutils
56   ];
58   build-system = [ setuptools ];
60   dependencies =
61     [
62       # depend on ansible instead of the other way around
63       ansible
64       # from requirements.txt
65       cryptography
66       jinja2
67       packaging
68       passlib
69       pyyaml
70       resolvelib
71       # optional dependencies
72       junit-xml
73       lxml
74       ncclient
75       paramiko
76       ansible-pylibssh
77       pexpect
78       psutil
79       pycrypto
80       requests
81       scp
82       xmltodict
83     ]
84     ++ lib.optionals windowsSupport [ pywinrm ]
85     ++ lib.optionals (pythonOlder "3.10") [ importlib-resources ];
87   pythonRelaxDeps = lib.optionals (pythonOlder "3.10") [ "importlib-resources" ];
89   postInstall = ''
90     export HOME="$(mktemp -d)"
91     packaging/cli-doc/build.py man --output-dir=man
92     installManPage man/*
93   '';
95   # internal import errors, missing dependencies
96   doCheck = false;
98   meta = with lib; {
99     changelog = "https://github.com/ansible/ansible/blob/v${version}/changelogs/CHANGELOG-v${lib.versions.majorMinor version}.rst";
100     description = "Radically simple IT automation";
101     homepage = "https://www.ansible.com";
102     license = licenses.gpl3Plus;
103     maintainers = [ ];
104   };