17
0
Files
python-cfn-lint/python-cfn-lint.spec
Dirk Mueller ccfe4e6591 - update to 0.54.4:
* Update CloudFormation specs to `45.0.0`
  * Add `AWS::DynamoDB::GlobalTable` to `AWS::Lambda::EventSourceMapping.EventSourceArn`
  * Expand stateful resource types to include `AWS::SecretsManager::Secret`
  * Add exceptions to rule [E3031]
  * Update `aws-sam-translator` to `1.39.0`
  * Update `Serverless/ManagedPolicies.json` and create automation to keep it up to date
  * Update default configuration on rule [E3012]
  * Add rule [E3043]
  * Add `AWS::KMS::ReplicaKey` as a `Ref`/`GetAtt` for `AWS::KMS::Alias.TargetKeyId`
  * `AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute` `AllowedValues` expansion
  * Fix rule message string formatting for [E3013]

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:aws/python-cfn-lint?expand=0&rev=28
2021-12-06 21:36:47 +00:00

140 lines
4.4 KiB
RPMSpec

#
# spec file for package python-cfn-lint
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
%define skip_python36 1
Name: python-cfn-lint
Version: 0.54.4
Release: 0
Summary: Tool to checks cloudformation for practices and behaviour
License: MIT
URL: https://github.com/aws-cloudformation/cfn-python-lint
Source: https://github.com/aws-cloudformation/cfn-python-lint/archive/v%{version}.tar.gz#/cfn-lint-%{version}.tar.gz
Patch0: skip-tests-require-network.patch
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: git-core
Requires: python-PyYAML >= 5.4
Requires: python-aws-sam-translator >= 1.39.0
Requires: python-jsonpatch
Requires: python-jsonschema > 3.0
Requires: python-junit-xml >= 1.9
Requires: python-requests >= 2.15.0
Requires: python-six >= 1.11
%if 0%{python_version_nodots} <= 34
Requires: python-importlib_resources >= 1.0.2
Requires: python-networkx >= 2.2
Requires: python-pathlib2 >= 2.3.0
Requires: python-pyrsistent <= 0.16.0
%else
Requires: python-networkx >= 2.4
Requires: python-numpy
%if 0%{python_version_nodots} < 37
Requires: python-importlib_resources >= 1.4
%endif
%endif
Requires(post): update-alternatives
Requires(postun):update-alternatives
Recommends: python-pydot
Provides: cfn-lint = %{version}
Obsoletes: cfn-lint < %{version}
BuildArch: noarch
%if 0%{?suse_version} < 1500
BuildRequires: python
%endif
# SECTION test requirements
BuildRequires: %{python_module PyYAML >= 5.4}
BuildRequires: %{python_module aws-sam-translator >= 1.39.0}
BuildRequires: %{python_module jsonpatch}
BuildRequires: %{python_module jsonschema > 3.0}
BuildRequires: %{python_module junit-xml >= 1.9}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module networkx >= 2.2}
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module pydot}
BuildRequires: %{python_module requests >= 2.15.0}
BuildRequires: %{python_module six >= 1.11}
BuildRequires: bash
BuildRequires: git-core
%if %{with python2}
BuildRequires: python-importlib-resources >= 1.0.2
BuildRequires: python-pathlib2 >= 2.3.0
%endif
BuildRequires: (python3-importlib-resources >= 1.0.2 if python3-base == 3.4)
BuildRequires: (python3-importlib-resources >= 1.4 if (python3-base < 3.7 and python3-base > 3.4))
BuildRequires: (python3-pathlib2 >= 2.3.0 if python3-base <= 3.4)
BuildRequires: (python36-importlib-resources >= 1.4 if python36-base)
# /SECTION
%python_subpackages
%description
Validate CloudFormation yaml/json templates against the CloudFormation
spec and additional checks. Includes checking valid values for
resource properties and best practices.
%prep
%setup -q -n cfn-lint-%{version}
%patch0 -p1
# do not hardcode versions
sed -i -e 's:~=:>=:g' setup.py
%build
%python_build
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%python_clone -a %{buildroot}%{_bindir}/cfn-lint
%post
%python_install_alternative cfn-lint
%postun
%python_uninstall_alternative cfn-lint
%check
export LANG=en_US.UTF-8
export AWS_DEFAULT_REGION=us-east-1
# We use update-alternatives and don't have cfn-lint binary around during check
mkdir bin
OPATH=$PATH
# the code calls git grep, need to be inside git repo
git init
git add src/cfnlint/rules
%{python_expand #
ln -sf %{buildroot}%{_bindir}/cfn-lint-%{$python_bin_suffix} bin/cfn-lint
export PATH="./bin:$OPATH"
export PYTHONPATH=%{buildroot}%{$python_sitelib}
$python -B -m unittest discover -s test -v
}
%files %{python_files}
%doc CHANGELOG.md README.md
%license LICENSE
%python_alternative %{_bindir}/cfn-lint
%{python_sitelib}/cfnlint
%{python_sitelib}/cfn_lint-%{version}*-info
%changelog