Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at litex 272 lines 7.2 kB view raw
1{ stdenv, lib, python3, fetchPypi, fetchFromGitHub, installShellFiles }: 2 3let 4 version = "2.44.1"; 5 srcName = "azure-cli-${version}-src"; 6 7 src = fetchFromGitHub { 8 name = srcName; 9 owner = "Azure"; 10 repo = "azure-cli"; 11 rev = "azure-cli-${version}"; 12 hash = "sha256-QcY08YxwGywFCXy3PslEzc5qZd62y4XAcuIC9Udp6Cc="; 13 }; 14 15 # put packages that needs to be overridden in the py package scope 16 py = import ./python-packages.nix { 17 inherit stdenv lib src version python3 fetchPypi; 18 }; 19in 20py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage { 21 pname = "azure-cli"; 22 inherit version src; 23 24 sourceRoot = "${srcName}/src/azure-cli"; 25 26 prePatch = '' 27 substituteInPlace setup.py \ 28 --replace "chardet~=3.0.4" "chardet" \ 29 --replace "javaproperties~=0.5.1" "javaproperties" \ 30 --replace "scp~=0.13.2" "scp" \ 31 --replace "packaging>=20.9,<22.0" "packaging" \ 32 --replace "fabric~=2.4" "fabric" 33 34 # remove namespace hacks 35 # remove urllib3 because it was added as 'urllib3[secure]', which doesn't get handled well 36 sed -i setup.py \ 37 -e '/azure-cli-command_modules-nspkg/d' \ 38 -e '/azure-cli-nspkg/d' \ 39 -e '/urllib3/d' 40 ''; 41 42 nativeBuildInputs = [ installShellFiles ]; 43 44 propagatedBuildInputs = with py.pkgs; [ 45 azure-appconfiguration 46 azure-batch 47 azure-cli-core 48 azure-cli-telemetry 49 azure-cosmos 50 azure-data-tables 51 azure-datalake-store 52 azure-functions-devops-build 53 azure-graphrbac 54 azure-identity 55 azure-keyvault 56 azure-keyvault-administration 57 azure-keyvault-keys 58 azure-loganalytics 59 azure-mgmt-advisor 60 azure-mgmt-apimanagement 61 azure-mgmt-applicationinsights 62 azure-mgmt-appconfiguration 63 azure-mgmt-authorization 64 azure-mgmt-batch 65 azure-mgmt-batchai 66 azure-mgmt-billing 67 azure-mgmt-botservice 68 azure-mgmt-cdn 69 azure-mgmt-cognitiveservices 70 azure-mgmt-compute 71 azure-mgmt-consumption 72 azure-mgmt-containerinstance 73 azure-mgmt-containerregistry 74 azure-mgmt-containerservice 75 azure-mgmt-cosmosdb 76 azure-mgmt-databoxedge 77 azure-mgmt-datalake-analytics 78 azure-mgmt-datalake-store 79 azure-mgmt-datamigration 80 azure-mgmt-deploymentmanager 81 azure-mgmt-devtestlabs 82 azure-mgmt-dns 83 azure-mgmt-eventgrid 84 azure-mgmt-eventhub 85 azure-mgmt-extendedlocation 86 azure-mgmt-hdinsight 87 azure-mgmt-imagebuilder 88 azure-mgmt-iotcentral 89 azure-mgmt-iothub 90 azure-mgmt-iothubprovisioningservices 91 azure-mgmt-keyvault 92 azure-mgmt-kusto 93 azure-mgmt-loganalytics 94 azure-mgmt-managedservices 95 azure-mgmt-managementgroups 96 azure-mgmt-maps 97 azure-mgmt-marketplaceordering 98 azure-mgmt-media 99 azure-mgmt-monitor 100 azure-mgmt-msi 101 azure-mgmt-network 102 azure-mgmt-netapp 103 azure-mgmt-policyinsights 104 azure-mgmt-privatedns 105 azure-mgmt-rdbms 106 azure-mgmt-recoveryservices 107 azure-mgmt-recoveryservicesbackup 108 azure-mgmt-redhatopenshift 109 azure-mgmt-redis 110 azure-mgmt-relay 111 azure-mgmt-reservations 112 azure-mgmt-resource 113 azure-mgmt-search 114 azure-mgmt-security 115 azure-mgmt-servicebus 116 azure-mgmt-servicefabric 117 azure-mgmt-servicefabricmanagedclusters 118 azure-mgmt-servicelinker 119 azure-mgmt-signalr 120 azure-mgmt-sql 121 azure-mgmt-sqlvirtualmachine 122 azure-mgmt-storage 123 azure-mgmt-synapse 124 azure-mgmt-trafficmanager 125 azure-mgmt-web 126 azure-multiapi-storage 127 azure-storage-blob 128 azure-synapse-accesscontrol 129 azure-synapse-artifacts 130 azure-synapse-managedprivateendpoints 131 azure-synapse-spark 132 chardet 133 colorama 134 cryptography 135 distro 136 fabric 137 jsmin 138 knack 139 mock 140 paramiko 141 pydocumentdb 142 pygithub 143 pygments 144 pynacl 145 pyopenssl 146 pytz 147 pyyaml 148 psutil 149 requests 150 scp 151 semver 152 six 153 sshtunnel 154 urllib3 155 vsts-cd-manager 156 websocket-client 157 xmltodict 158 javaproperties 159 jsondiff 160 # urllib3[secure] 161 # shell completion 162 argcomplete 163 ]; 164 165 postInstall = '' 166 substituteInPlace az.completion.sh \ 167 --replace register-python-argcomplete ${py.pkgs.argcomplete}/bin/register-python-argcomplete 168 installShellCompletion --bash --name az.bash az.completion.sh 169 installShellCompletion --zsh --name _az az.completion.sh 170 171 # remove garbage 172 rm $out/bin/az.bat 173 rm $out/bin/az.completion.sh 174 ''; 175 176 # wrap the executable so that the python packages are available 177 # it's just a shebang script which calls `python -m azure.cli "$@"` 178 postFixup = '' 179 wrapProgram $out/bin/az \ 180 --set PYTHONPATH $PYTHONPATH 181 ''; 182 183 # almost the entire test suite requires an azure account setup and networking 184 # ensure that the azure namespaces are setup correctly and that azure.cli can be accessed 185 checkPhase = '' 186 HOME=$TMPDIR $out/bin/az --help > /dev/null 187 ''; 188 189 # ensure these namespaces are able to be accessed 190 pythonImportsCheck = [ 191 "azure.batch" 192 "azure.cli.core" 193 "azure.cli.telemetry" 194 "azure.cosmos" 195 "azure.datalake.store" 196 "azure_functions_devops_build" 197 "azure.graphrbac" 198 "azure.keyvault" 199 "azure.loganalytics" 200 "azure.mgmt.advisor" 201 "azure.mgmt.apimanagement" 202 "azure.mgmt.applicationinsights" 203 "azure.mgmt.appconfiguration" 204 "azure.mgmt.authorization" 205 "azure.mgmt.batch" 206 "azure.mgmt.batchai" 207 "azure.mgmt.billing" 208 "azure.mgmt.botservice" 209 "azure.mgmt.cdn" 210 "azure.mgmt.cognitiveservices" 211 "azure.mgmt.compute" 212 "azure.mgmt.consumption" 213 "azure.mgmt.containerinstance" 214 "azure.mgmt.containerregistry" 215 "azure.mgmt.containerservice" 216 "azure.mgmt.cosmosdb" 217 "azure.mgmt.datalake.analytics" 218 "azure.mgmt.datalake.store" 219 "azure.mgmt.datamigration" 220 "azure.mgmt.deploymentmanager" 221 "azure.mgmt.devtestlabs" 222 "azure.mgmt.dns" 223 "azure.mgmt.eventgrid" 224 "azure.mgmt.eventhub" 225 "azure.mgmt.hdinsight" 226 "azure.mgmt.imagebuilder" 227 "azure.mgmt.iotcentral" 228 "azure.mgmt.iothub" 229 "azure.mgmt.iothubprovisioningservices" 230 "azure.mgmt.keyvault" 231 "azure.mgmt.kusto" 232 "azure.mgmt.loganalytics" 233 "azure.mgmt.managedservices" 234 "azure.mgmt.managementgroups" 235 "azure.mgmt.maps" 236 "azure.mgmt.marketplaceordering" 237 "azure.mgmt.media" 238 "azure.mgmt.monitor" 239 "azure.mgmt.msi" 240 "azure.mgmt.network" 241 "azure.mgmt.netapp" 242 "azure.mgmt.policyinsights" 243 "azure.mgmt.privatedns" 244 "azure.mgmt.rdbms" 245 "azure.mgmt.recoveryservices" 246 "azure.mgmt.recoveryservicesbackup" 247 "azure.mgmt.redis" 248 "azure.mgmt.relay" 249 "azure.mgmt.reservations" 250 "azure.mgmt.resource" 251 "azure.mgmt.search" 252 "azure.mgmt.security" 253 "azure.mgmt.servicebus" 254 "azure.mgmt.servicefabric" 255 "azure.mgmt.signalr" 256 "azure.mgmt.sql" 257 "azure.mgmt.sqlvirtualmachine" 258 "azure.mgmt.storage" 259 "azure.mgmt.trafficmanager" 260 "azure.mgmt.web" 261 "azure.storage.blob" 262 "azure.storage.common" 263 ]; 264 265 meta = with lib; { 266 homepage = "https://github.com/Azure/azure-cli"; 267 description = "Next generation multi-platform command line experience for Azure"; 268 license = licenses.mit; 269 maintainers = with maintainers; [ jonringer ]; 270 }; 271}) 272