How to Resolve AWS CLI v2 Package Dependency Issue?

How can I resolve a package version dependency issue? Should I add an overlay to my flake?

I installed the AWS CLI v2 package (see flake below), however, upon executing any command, e.g., aws --version, I receive the error included below.

Essentially, AWS CLI v2 transitively relies on specific ciphers found within versions less than 2.0 of Urllib3. Apparently, the AWS CLI v2 package does stipulate a version less than 2.0 (i.e., 1.26.18), but somehow a newer version, e.g., v2.0.7, is installed (see below error).

Traceback (most recent call last):
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/bin/.aws-wrapped”, line 20, in
import awscli.clidriver
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/clidriver.py”, line 21, in
import botocore.session
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/session.py”, line 27, in
import botocore.client
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/client.py”, line 16, in
from botocore import UNSIGNED, waiter, xform_name
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/waiter.py”, line 17, in
from botocore.docs.docstring import WaiterDocstring
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/docs/init.py”, line 15, in
from botocore.docs.service import ServiceDocumenter
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/docs/service.py”, line 14, in
from botocore.docs.client import ClientDocumenter, ClientExceptionsDocumenter
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/docs/client.py”, line 16, in
from botocore.docs.example import ResponseExampleDocumenter
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/docs/example.py”, line 13, in
from botocore.docs.shape import ShapeDocumenter
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/docs/shape.py”, line 19, in
from botocore.utils import is_json_value_header
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/utils.py”, line 33, in
import botocore.httpsession
File “/nix/store/iblfnc4k15nkyzn1idgffwha8msf0mbr-awscli2-2.13.33/lib/python3.11/site-packages/awscli/botocore/httpsession.py”, line 21, in
from urllib3.util.ssl_ import (
ImportError: cannot import name ‘DEFAULT_CIPHERS’ from ‘urllib3.util.ssl_’ (/nix/store/0hqxlnv2k8vay7acydvd3mdnp0hwf205-python3.11-urllib3-2.0.7/lib/python3.11/site-packages/urllib3/util/ssl_.py)

{
  description = "Development shell.";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
    nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
    poetry2nix = {
      url = "github:nix-community/poetry2nix";
      inputs.nixpkgs.follows = "nixpkgs-unstable";
    };
  };

  outputs = { self, nixpkgs, nixpkgs-unstable, poetry2nix, ... } @ inputs:
    let
      system = "aarch64-darwin";
      pkgs = import nixpkgs { inherit system; };
      py = pkgs.python3;
      pypkgs = py.withPackages (p: with p; [ botocore boto3 ipython jsonpatch kubernetes pyyaml ]);
    in
    {
      devShells.${system}.default = pkgs.mkShell {
        packages = with pkgs; [
          ansible_2_14
          awscli2
          nodejs_18
          nodePackages.prettier
          pypkgs
          terraform
          terraform-ls
        ];
      };
    };
}
1 Like