awscli2/awscli2.spec
Maxwell G 3a8ae5cc66
use modern shell completions macros
The shell completions macros are available on all Fedora and EPEL
releases. Also, the filesystem package already owns the parent
directories, so there's no need to do that here.

[skip changelog]
2023-05-06 16:50:38 +00:00

104 lines
2.9 KiB
RPMSpec

%global pkgname aws-cli
Name: awscli2
Version: 2.11.17
Release: %autorelease
Summary: Universal Command Line Environment for AWS, version 2
# all files are licensed under Apache-2.0, except:
# - awscli/topictags.py is MIT
# - awscli/botocore/vendored/six.py is MIT
License: Apache-2.0 AND MIT
URL: https://github.com/aws/aws-cli/tree/v2
Source0: https://github.com/aws/aws-cli/archive/%{version}/%{pkgname}-%{version}.tar.gz
# ruamel-yaml 0.17.22 changed whitespace formatting, breaking some TestUpdateKubeconfig tests
# add a workaround for that until upstream comes with a proper fix
Patch0: ruamel-yaml-0.17.22.patch
BuildArch: noarch
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-pytest
BuildRequires: python%{python3_pkgversion}-pytest-xdist
BuildRequires: python%{python3_pkgversion}-jsonschema
BuildRequires: python-unversioned-command
BuildRequires: procps-ng
Recommends: groff
Provides: awscli = %{version}-%{release}
Obsoletes: awscli < 2
# provide an upgrade path from awscli-2 (Amazon Linux)
Provides: awscli-2 = %{version}-%{release}
Obsoletes: awscli-2 < %{version}-%{release}
# python-awscrt does not build on s390x
ExcludeArch: s390x
%description
This package provides version 2 of the unified command line
interface to Amazon Web Services.
%prep
%autosetup -p1 -n %{pkgname}-%{version}
# fix permissions
find awscli/examples/ -type f -name '*.rst' -executable -exec chmod -x '{}' +
# use unittest.mock
find -type f -name '*.py' -exec sed \
-e 's/^\( *\)import mock$/\1from unittest import mock/' \
-e 's/^\( *\)from mock import mock/\1from unittest import mock/' \
-e 's/^\( *\)from mock import/\1from unittest.mock import/' \
-i '{}' +
%generate_buildrequires
%pyproject_buildrequires
%build
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files awscli
# remove unnecessary scripts
rm -vf %{buildroot}%{_bindir}/{aws_bash_completer,aws_zsh_completer.sh,aws.cmd}
# install shell completion
install -Dpm0644 bin/aws_bash_completer \
%{buildroot}%{bash_completions_dir}/aws
install -Dpm0644 bin/aws_zsh_completer.sh \
%{buildroot}%{zsh_completions_dir}/_awscli
%check
# it appears that some tests modify the environment and remove PYTHONPATH
# so it's not passed to botocore cmd-runner, inject it here
sed -i '/self.driver.start(env=env)/i \ \ \ \ \ \ \ \ env["PYTHONPATH"] = "%{buildroot}%{python3_sitelib}"' \
tests/utils/botocore/__init__.py
export TESTS_REMOVE_REPO_ROOT_FROM_PATH=1 TZ=UTC
%pytest --verbose --numprocesses=auto --dist=loadfile tests/unit tests/functional
%files -f %{pyproject_files}
%license LICENSE.txt
%doc README.rst
%{_bindir}/aws
%{_bindir}/aws_completer
%{bash_completions_dir}/aws
%{zsh_completions_dir}/_awscli
%changelog
%autochangelog