Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / ansible / core.nix
blobd4f275184bab85c8d5b11b4eb0e5321dcf8b1aeb
1 { lib
2 , buildPythonPackage
3 , fetchPypi
4 , pythonOlder
5 , pythonRelaxDepsHook
6 , installShellFiles
7 , docutils
8 , ansible
9 , cryptography
10 , importlib-resources
11 , jinja2
12 , junit-xml
13 , lxml
14 , ncclient
15 , packaging
16 , paramiko
17 , ansible-pylibssh
18 , passlib
19 , pexpect
20 , psutil
21 , pycrypto
22 , pyyaml
23 , requests
24 , resolvelib
25 , scp
26 , windowsSupport ? false, pywinrm
27 , xmltodict
30 buildPythonPackage rec {
31   pname = "ansible-core";
32   version = "2.16.5";
34   src = fetchPypi {
35     inherit pname version;
36     hash = "sha256-zdKbDsPyDDVlc1Wi9qnB0M8RMdqZzJpKNAGAGwqzbW0=";
37   };
39   # ansible_connection is already wrapped, so don't pass it through
40   # the python interpreter again, as it would break execution of
41   # connection plugins.
42   postPatch = ''
43     substituteInPlace lib/ansible/executor/task_executor.py \
44       --replace "[python," "["
46     patchShebangs --build packaging/cli-doc/build.py
47   '';
49   nativeBuildInputs = [
50     installShellFiles
51     docutils
52   ] ++ lib.optionals (pythonOlder "3.10") [
53     pythonRelaxDepsHook
54   ];
56   propagatedBuildInputs = [
57     # depend on ansible instead of the other way around
58     ansible
59     # from requirements.txt
60     cryptography
61     jinja2
62     packaging
63     passlib
64     pyyaml
65     resolvelib # This library is a PITA, since ansible requires a very old version of it
66     # optional dependencies
67     junit-xml
68     lxml
69     ncclient
70     paramiko
71     ansible-pylibssh
72     pexpect
73     psutil
74     pycrypto
75     requests
76     scp
77     xmltodict
78   ] ++ lib.optionals windowsSupport [
79     pywinrm
80   ] ++ lib.optionals (pythonOlder "3.10") [
81     importlib-resources
82   ];
84   pythonRelaxDeps = lib.optionals (pythonOlder "3.10") [
85     "importlib-resources"
86   ];
88   postInstall = ''
89     export HOME="$(mktemp -d)"
90     packaging/cli-doc/build.py man --output-dir=man
91     installManPage man/*
92   '';
94   # internal import errors, missing dependencies
95   doCheck = false;
97   meta = with lib; {
98     changelog = "https://github.com/ansible/ansible/blob/v${version}/changelogs/CHANGELOG-v${lib.versions.majorMinor version}.rst";
99     description = "Radically simple IT automation";
100     homepage = "https://www.ansible.com";
101     license = licenses.gpl3Plus;
102     maintainers = with maintainers; [ ];
103   };