Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ stdenv, python, lib, src, version }:
2
3let
4 buildAzureCliPackage = with py.pkgs; attrs: buildPythonPackage (attrs // {
5 # Remove overly restrictive version contraints and obsolete namespace setup
6 prePatch = (attrs.prePatch or "") + ''
7 rm -f azure_bdist_wheel.py tox.ini
8 substituteInPlace setup.py \
9 --replace "wheel==0.30.0" "wheel"
10 sed -i "/azure-namespace-package/c\ " setup.cfg
11 '';
12
13 # Prevent these __init__'s from violating PEP420, only needed for python2
14 postInstall = (attrs.postInstall or "") + ''
15 rm $out/${python.sitePackages}/azure/{,__pycache__/}__init__.* \
16 $out/${python.sitePackages}/azure/cli/{,__pycache__/}__init__.*
17 '';
18
19 checkInputs = [ mock pytest ] ++ (attrs.checkInputs or []);
20 checkPhase = attrs.checkPhase or ''
21 cd azure
22 HOME=$TMPDIR pytest
23 '';
24 });
25
26 overrideAzureMgmtPackage = package: version: extension: sha256:
27 package.overrideAttrs(oldAttrs: rec {
28 inherit version;
29
30 src = py.pkgs.fetchPypi {
31 inherit (oldAttrs) pname;
32 inherit version sha256 extension;
33 };
34
35 preBuild = ''
36 rm -f azure_bdist_wheel.py
37 substituteInPlace setup.cfg \
38 --replace "azure-namespace-package = azure-mgmt-nspkg" ""
39 '';
40 });
41
42 py = python.override {
43 packageOverrides = self: super: {
44 inherit buildAzureCliPackage;
45
46 # core and the actual application are highly coupled
47 azure-cli-core = buildAzureCliPackage {
48 pname = "azure-cli-core";
49 inherit version src;
50
51 sourceRoot = "source/src/azure-cli-core";
52
53 propagatedBuildInputs = with self; [
54 adal
55 argcomplete
56 azure-common
57 azure-cli-telemetry
58 azure-mgmt-resource
59 colorama
60 humanfriendly
61 jmespath
62 knack
63 msrest
64 msrestazure
65 paramiko
66 psutil
67 pygments
68 pyjwt
69 pyopenssl
70 pyperclip
71 pyyaml
72 requests
73 six
74 tabulate
75 ]
76 ++ lib.optionals isPy3k [ antlr4-python3-runtime ]
77 ++ lib.optionals (!isPy3k) [ enum34 futures antlr4-python2-runtime ndg-httpsclient ];
78
79 doCheck = stdenv.isLinux;
80 # ignore test that does network call
81 checkPhase = ''
82 rm azure/{,cli/}__init__.py
83 python -c 'import azure.common; print(azure.common)'
84 PYTHONPATH=$PWD:$PYTHONPATH HOME=$TMPDIR pytest \
85 --ignore=azure/cli/core/tests/test_profile.py \
86 --ignore=azure/cli/core/tests/test_generic_update.py
87 '';
88
89 pythonImportsCheck = [
90 "azure.cli.telemetry"
91 "azure.cli.core"
92 ];
93 };
94
95 azure-cli-telemetry = buildAzureCliPackage {
96 pname = "azure-cli-telemetry";
97 version = "1.0.4"; # might be wrong, but doesn't really matter
98 inherit src;
99
100 sourceRoot = "source/src/azure-cli-telemetry";
101
102 propagatedBuildInputs = with super; [
103 applicationinsights
104 portalocker
105 ];
106
107 # ignore flaky test
108 checkPhase = ''
109 cd azure
110 HOME=$TMPDIR pytest -k 'not test_create_telemetry_note_file_from_scratch'
111 '';
112 };
113
114 azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.4.0" "zip"
115 "1b69rz9wm0jvc54vx3b7h633x8gags51xwxrkp6myar40jggxw6g";
116
117 azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.6.0" "zip"
118 "13s2k4jl8570bj6jkqzm0w29z29rl7h5i7czd3kr6vqar5wj9xjd";
119
120 azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "8.0.1" "zip"
121 "0gngm7w17r5922ji11pnpa6gp5vh5z6la025v9cda6smsnx0fxx7";
122
123 azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "0.4.0" "zip"
124 "1dn5585nsizszjivx6lp677ka0mrg0ayqgag4yzfdz9ml8mj1xl5";
125
126 azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "10.0.0" "zip"
127 "1s3bx6knxw5dxycp43yimvgrh0i19drzd09asglcwz2x5mr3bpyg";
128
129 azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
130 "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
131
132 azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "8.1.0" "zip"
133 "07vpzhvi2946v5dn9cb2hkd1b9vj5c6zl32958bg2bxsjg9vvyi1";
134
135 azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.11.0" "zip"
136 "05j0s2ng6ck35lw85cbjf5cm6canc71c41aagr68cmiqj1li6v1z";
137
138 azure-mgmt-deploymentmanager = overrideAzureMgmtPackage super.azure-mgmt-deploymentmanager "0.2.0" "zip"
139 "0c6pyr36n9snx879vas5r6l25db6nlp2z96xn759mz4kg4i45qs6";
140
141 azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.2.1" "zip"
142 "0mwlvy4x5nr3hsz7wdpdhpzwarzzwz4225bfpd68hr0pcjgzspky";
143
144 azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "0.8.2" "zip"
145 "0w3w1d156rnkwjdarv3qvycklxr3z2j7lry7a3jfgj3ykzny12rq";
146
147 azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "2.0.0" "zip"
148 "1fql0j28d2r6slgabb7b438gdga513iskqh4al6c7dsmj1yzdzwa";
149
150 azure-mgmt-kusto = overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
151 "1pmcdgimd66h964a3d5m2j2fbydshcwhrk87wblhwhfl3xwbgf4y";
152
153 azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "2.2.0" "zip"
154 "15lpyv9z8ss47rjmg1wx5akh22p9br2vckaj7jk3639vi38ac5nl";
155
156 azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.7.0" "zip"
157 "0cf4pknb5y2yz4jqwg7xm626zkfx8i8hqcr3dkvq21lrx7fz96r3";
158
159 azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "2.1.0" "zip"
160 "1l55py4fzzwhxlmnwa41gpmqk9v2ncc79w7zq11sm9a5ynrv2c1p";
161
162 azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "9.0.0" "zip"
163 "12bsdbh37xiz42hvrp8ghszyqkiali3pk50x44f3aip12pgx6kix";
164
165 azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "1.1.1" "zip"
166 "16wk0ksycrscsn3n14qk4vvf7i567vq6f96lwf5dwbc81wx6n32x";
167
168 azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "0.2.0" "zip"
169 "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
170
171 azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "0.44.0" "zip"
172 "05dqakhfi301k2jnvccxdkigqvwnf9xz858pqg9vsri3dq69f1rw";
173
174 azure-mgmt-redis = overrideAzureMgmtPackage super.azure-mgmt-redis "7.0.0rc1" "zip"
175 "086wk31wsl8dx14qpd0g1bly8i9a8fix007djlj9cybva2f2bk6k";
176
177 azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "0.6.0" "zip"
178 "16ycni3cjl9c0mv419gy5rgbrlg8zp0vnr6aj8z8p2ypdw6sgac3";
179
180 azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.1.0" "zip"
181 "1cb466722bs0ribrirb32kc299716pl0pwivz3jyn40dd78cwhhx";
182
183 azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.15.0" "zip"
184 "0qv58xraznv2ldhd34cvznhz045x3ncfgam9c12gxyj4q0k3pyc9";
185
186 azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "0.5.0" "zip"
187 "1b9am8raa17hxnz7d5pk2ix0309wsnhnchq1mi22icd728sl5adm";
188
189 azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "0.1.0" "zip"
190 "1pq5rn32yvrf5kqjafnj0kc92gpfg435w2l0k7cm8gvlja4r4m77";
191
192 azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
193 "1jss6qhvif8l5s0lblqw3qzijjf0h88agciiydaa7f4q577qgyfr";
194
195 azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "3.0.0" "zip"
196 "05c6isg13dslds94kv28v6navxj4bp4c5lsd9df0g3ndsxvpdrxp";
197
198 azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "2.1.0" "zip"
199 "1ikv8b2h1r91fa0srz95ymn54qpqgb5a4faxwp4hf92r5h85c8j9";
200
201 azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "4.0.0" "zip"
202 "0aphqh4mvrc1yiyis8zvks0d19d1m3lqylr9jc8fj73iw84rwgm5";
203
204 azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc8" "zip"
205 "1j2xyfid0qg95lywwsz8520r7gd8m0a487n03jxnckr91vd890v1";
206
207 azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "0.7.0" "zip"
208 "1pprvk5255b6brbw73g0g13zygwa7a2px5x08wy3153rqlzan5l2";
209
210 azure-mgmt-advisor = overrideAzureMgmtPackage super.azure-mgmt-advisor "2.0.1" "zip"
211 "1wsfkprdrn22mwm24y2zlcms8ppp7jwq3s86r3ymbl29pbaxca8r";
212
213 azure-mgmt-applicationinsights = overrideAzureMgmtPackage super.azure-mgmt-applicationinsights "0.1.1" "zip"
214 "16raxr5naszrxmgbfhsvh7rqcph5cx6x3f480790m79ykvmjj0pi";
215
216 azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.52.0" "zip"
217 "0357laxgldb7lvvws81r8xb6mrq9dwwnr1bnwdnyj4bw6p21i9hn";
218
219 azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "7.2.0" "zip"
220 "01ck1ankgr9ikvfghhdcs777yrl2j2p8cw9q8nfdrjp22lpchabl";
221
222 azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.4.0" "zip"
223 "1x18grkjf2p2r1ihlwv607sna9yjvsr2jwnkjc55askrgrwx5jx2";
224
225 azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.3.0" "zip"
226 "1r7isr7hzq2dv1idwwa9xxxgk8wh0ncka45r4rdcsl1p7kd2kqam";
227
228 azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
229 version = "0.60.0";
230
231 src = super.fetchPypi {
232 inherit (oldAttrs) pname;
233 inherit version;
234 sha256 = "1zna5vb887clvpyfp5439vhlz3j4z95blw9r7y86n6cfpzc65fyh";
235 extension = "zip";
236 };
237 });
238
239 azure-storage-blob = super.azure-storage-blob.overrideAttrs(oldAttrs: rec {
240 version = "1.5.0";
241 src = super.fetchPypi {
242 inherit (oldAttrs) pname;
243 inherit version;
244 sha256 = "0b15dzy75fml994gdfmaw5qcyij15gvh968mk3hg94d1wxwai1zi";
245 };
246 });
247
248 azure-storage-common = super.azure-storage-common.overrideAttrs(oldAttrs: rec {
249 version = "1.4.2";
250 src = super.fetchPypi {
251 inherit (oldAttrs) pname;
252 inherit version;
253 sha256 = "00g41b5q4ijlv02zvzjgfwrwy71cgr3lc3if4nayqmyl6xsprj2f";
254 };
255 });
256
257 azure-keyvault = super.azure-keyvault.overrideAttrs(oldAttrs: rec {
258 version = "1.1.0";
259 src = super.fetchPypi {
260 inherit (oldAttrs) pname;
261 inherit version;
262 extension = "zip";
263 sha256 = "0jfxm8lx8dzs3v2b04ljizk8gfckbm5l2v86rm7k0npbfvryba1p";
264 };
265
266 propagatedBuildInputs = with self; [
267 azure-common azure-nspkg msrest msrestazure cryptography
268 ];
269 postInstall = ''
270 rm -f $out/${self.python.sitePackages}/azure/__init__.py
271 '';
272 pythonImportsCheck = [ ];
273 });
274
275 # part of azure.mgmt.datalake namespace
276 azure-mgmt-datalake-analytics = super.azure-mgmt-datalake-analytics.overrideAttrs(oldAttrs: rec {
277 version = "0.2.1";
278
279 src = super.fetchPypi {
280 inherit (oldAttrs) pname;
281 inherit version;
282 sha256 = "192icfx82gcl3igr18w062744376r2ivh63c8nd7v17mjk860yac";
283 extension = "zip";
284 };
285
286 preBuild = ''
287 rm azure_bdist_wheel.py
288 substituteInPlace setup.cfg \
289 --replace "azure-namespace-package = azure-mgmt-datalake-nspkg" ""
290 '';
291 });
292
293 };
294 };
295in
296 py