From 07566095180d24f98613683b6795a66471eea3f3 Mon Sep 17 00:00:00 2001 From: natsukium Date: Wed, 8 May 2024 19:10:34 +0900 Subject: awscli: sync with botocore Update pkgs/tools/admin/awscli/default.nix Co-authored-by: annaleeleaves <168274788+annaleeleaves@users.noreply.github.com> --- pkgs/tools/admin/awscli/default.nix | 133 +++++++++++++++++++----------------- 1 file changed, 70 insertions(+), 63 deletions(-) diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix index 38e6664c58b50..1c6cce5c8bc84 100644 --- a/pkgs/tools/admin/awscli/default.nix +++ b/pkgs/tools/admin/awscli/default.nix @@ -8,82 +8,89 @@ , awscli }: -python3.pkgs.buildPythonApplication rec { - pname = "awscli"; - version = "1.32.101"; # N.B: if you change this, change botocore and boto3 to a matching version too - pyproject = true; +let + botocoreVersion = python3.pkgs.botocore.version; + # awscli.version should be pinned to 2 minor versions less than the botocoreVersion + versionMinor = toString (lib.toInt (lib.versions.minor botocoreVersion) - 2); + versionPatch = lib.versions.patch botocoreVersion; + self = python3.pkgs.buildPythonApplication rec { + pname = "awscli"; + version = "1.${versionMinor}.${versionPatch}"; # N.B: if you change this, change botocore and boto3 to a matching version too + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-M4KzuQ+srPfk85P5QeQfVMorSKWhmNhdX4AY0AeRDTQ="; - }; + src = fetchPypi { + inherit pname version; + hash = "sha256-GPcXkl2H0XNaeqt2/qD5+KvW23dRB0X+zLWo9hLigQM="; + }; - nativeBuildInputs = [ - python3.pkgs.pythonRelaxDepsHook - ]; + nativeBuildInputs = [ + python3.pkgs.pythonRelaxDepsHook + ]; - pythonRelaxDeps = [ - "botocore" - "colorama" - "docutils" - "rsa" - ]; + pythonRelaxDeps = [ + # botocore must not be relaxed + "colorama" + "docutils" + "rsa" + ]; - build-system = [ - python3.pkgs.setuptools - ]; + build-system = [ + python3.pkgs.setuptools + ]; - propagatedBuildInputs = with python3.pkgs; [ - botocore - s3transfer - colorama - docutils - rsa - pyyaml - groff - less - ]; + propagatedBuildInputs = with python3.pkgs; [ + botocore + s3transfer + colorama + docutils + rsa + pyyaml + groff + less + ]; - postInstall = '' - mkdir -p $out/share/bash-completion/completions - echo "complete -C $out/bin/aws_completer aws" > $out/share/bash-completion/completions/awscli + postInstall = '' + mkdir -p $out/share/bash-completion/completions + echo "complete -C $out/bin/aws_completer aws" > $out/share/bash-completion/completions/awscli - mkdir -p $out/share/zsh/site-functions - mv $out/bin/aws_zsh_completer.sh $out/share/zsh/site-functions + mkdir -p $out/share/zsh/site-functions + mv $out/bin/aws_zsh_completer.sh $out/share/zsh/site-functions - rm $out/bin/aws.cmd - ''; + rm $out/bin/aws.cmd + ''; - doInstallCheck = true; + doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck + installCheckPhase = '' + runHook preInstallCheck - $out/bin/aws --version | grep "${python3.pkgs.botocore.version}" - $out/bin/aws --version | grep "${version}" + $out/bin/aws --version | grep "${botocoreVersion}" + $out/bin/aws --version | grep "${version}" - runHook postInstallCheck - ''; + runHook postInstallCheck + ''; - passthru = { - python = python3; # for aws_shell - updateScript = nix-update-script { - # Excludes 1.x versions from the Github tags list - extraArgs = [ "--version-regex" "^(1\.(.*))" ]; - }; - tests.version = testers.testVersion { - package = awscli; - command = "aws --version"; - inherit version; + passthru = { + python = python3; # for aws_shell + updateScript = nix-update-script { + extraArgs = [ "--version=skip" ]; + }; + tests.version = testers.testVersion { + package = awscli; + command = "aws --version"; + inherit version; + }; }; - }; - meta = with lib; { - homepage = "https://aws.amazon.com/cli/"; - changelog = "https://github.com/aws/aws-cli/blob/${version}/CHANGELOG.rst"; - description = "Unified tool to manage your AWS services"; - license = licenses.asl20; - mainProgram = "aws"; - maintainers = with maintainers; [ anthonyroussel ]; + meta = with lib; { + homepage = "https://aws.amazon.com/cli/"; + changelog = "https://github.com/aws/aws-cli/blob/${version}/CHANGELOG.rst"; + description = "Unified tool to manage your AWS services"; + license = licenses.asl20; + mainProgram = "aws"; + maintainers = with maintainers; [ anthonyroussel ]; + }; }; -} +in +assert self ? pythonRelaxDeps -> !(lib.elem "botocore" self.pythonRelaxDeps); +self -- cgit 1.4.1