diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 698302a..0000000 --- a/.coveragerc +++ /dev/null @@ -1,24 +0,0 @@ -# This configuration file is used for manual execution of coverage -# as well as for tests run through ansible-test. - -[run] -branch = True - -# Enable concurrency. This also enables parallel mode, which results in -# multiple coverage files being created. Concurrency allows us to collect -# results from multiple tests simultaneously, as well as supporting multiple -# test runs, such as from integration tests. -concurrency = multiprocessing -parallel = True - -# When running tests through ansible-test, this option is overridden by -# the COVERAGE_FILE environment variable. This option is present for -# convenience when running coverage manually from this directory. -data_file = test/results/coverage/coverage - -# Don't collect or report code coverage from files matching these patterns. -omit = - */python*/dist-packages/* - */python*/site-packages/* - */python*/distutils - */pytest diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index db2c392..a3dd11c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,86 +1,2 @@ -/ansible-1.5.3.tar.gz -/ansible-1.5.4.tar.gz -/ansible-1.5.5.tar.gz -/ansible-1.6.tar.gz -/ansible-1.6.1.tar.gz -/ansible-1.6.2.tar.gz -/ansible-1.6.3.tar.gz -/ansible-1.6.4.tar.gz -/ansible-1.6.5.tar.gz -/ansible-1.6.6.tar.gz -/ansible-1.6.7.tar.gz -/ansible-1.6.8.tar.gz -/ansible-1.6.9.tar.gz -/ansible-1.6.10.tar.gz -/ansible-1.7.tar.gz -/ansible-1.7.1.tar.gz -/ansible-1.7.2.tar.gz -/ansible-1.8.tar.gz -/ansible-1.8.1.tar.gz -/ansible-1.8.2.tar.gz -/ansible-1.8.3.tar.gz -/ansible-1.8.4.tar.gz -/ansible-1.9.0.tar.gz -/ansible-1.9.0.1.tar.gz -/ansible-1.9.1.tar.gz -/ansible-1.9.2.tar.gz -/ansible-1.9.3.tar.gz -/ansible-1.9.4.tar.gz -/ansible-2.0.0.1.tar.gz -/ansible-unittests.tar.xz -/ansible-2.0.0.2.tar.gz -/ansible-2.0.1.0.tar.gz -/ansible-unittests-2.0.1.0.tar.xz -/ansible-unittests-2.0.2.0.tar.xz -/ansible-2.0.2.0.tar.gz -/ansible-unittests-2.1.0.0.tar.xz -/ansible-2.1.0.0.tar.gz -/ansible-unittests-2.1.1.0.tar.xz -/ansible-2.1.1.0.tar.gz -/ansible-2.1.2.0.tar.gz -/ansible-unittests-2.1.2.0.tar.xz -/ansible-unittests-2.2.0.0.tar.xz -/ansible-2.2.0.0.tar.gz -/ansible-unittests-2.2.1.0.tar.xz -/ansible-2.2.1.0.tar.gz -/ansible-2.2.2.0-0.1.rc1.tar.gz -/ansible-unittests-2.2.2.0.tar.xz -/ansible-2.2.2.0.tar.gz -/ansible-2.3.0.0.tar.gz -/ansible-2.3.1.0.tar.gz -/ansible-2.3.2.0.tar.gz -/ansible-2.4.0.0.tar.gz -/ansible-2.4.1.0.tar.gz -/ansible-2.4.2.0.tar.gz -/ansible-2.4.3.0.tar.gz -/ansible-2.5.0.tar.gz -/ansible-2.5.1.tar.gz -/ansible-2.5.2.tar.gz -/ansible-2.5.3.tar.gz -/ansible-2.5.5.tar.gz -/ansible-2.6.0.tar.gz -/ansible-2.6.1.tar.gz -/ansible-2.6.2.tar.gz -/ansible-2.6.3.tar.gz -/ansible-2.6.4.tar.gz -/ansible-2.6.5.tar.gz -/ansible-2.7.0.tar.gz -/ansible-2.7.1.tar.gz -/ansible-2.7.2.tar.gz -/ansible-2.7.3.tar.gz -/ansible-2.7.4.tar.gz -/ansible-2.7.5.tar.gz -/ansible-2.7.6.tar.gz -/ansible-2.7.7.tar.gz -/ansible-2.7.8.tar.gz -/ansible-2.7.9.tar.gz -/ansible-2.7.10.tar.gz -/ansible-2.8.0b1.tar.gz -/ansible-2.8.0rc1.tar.gz -/ansible-2.8.0rc3.tar.gz -/ansible-2.8.0.tar.gz -/ansible-2.8.1.tar.gz -/ansible-2.8.2.tar.gz -/ansible-2.8.3.tar.gz -/ansible-2.8.4.tar.gz -/ansible-2.8.5.tar.gz +/ansible-*.tar.gz +/ansible-*/ diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..de2f925 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,33 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +upstream_project_url: https://github.com/ansible-community/ansible-build-data +issue_repository: https://pagure.io/ansible-packit-issues +create_sync_note: false +upstream_tag_include: "11" +jobs: + - job: pull_from_upstream + trigger: release + dist_git_branches: + rawhide: + fast_forward_merge_into: + - fedora-43 + - fedora-42 + - job: koji_build + trigger: commit + dist_git_branches: + - rawhide + - fedora-43 + - fedora-42 + sidetag_group: "ansible" + dependencies: + - ansible-core + - job: bodhi_update + trigger: commit + dist_git_branches: + - rawhide + - fedora-43 + - fedora-42 + dependencies: + - ansible-core + sidetag_group: "ansible" diff --git a/56806.patch b/56806.patch deleted file mode 100644 index db06d26..0000000 --- a/56806.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 702e044b90fd0a0524fa4574648fe7dae4d4f2fe Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= -Date: Wed, 22 May 2019 21:31:22 +0200 -Subject: [PATCH] Don't change dictionary keys during iteration - -With Python 3.8.0a4+, we get the following RuntimeError in Fedora: - -PYTHONPATH=../../lib ../bin/dump_keywords.py --template-dir=../templates --output-dir=rst/reference_appendices/ -d ./keyword_desc.yml -Traceback (most recent call last): - File "../bin/dump_keywords.py", line 49, in - for a in oblist[name]: -RuntimeError: dictionary keys changed during iteration - -And: - - def populate(self): - super(Interfaces, self).populate() - self.facts['all_ipv4_addresses'] = list() - self.facts['all_ipv6_addresses'] = list() - - data = self.responses[0] - interfaces = self.parse_interfaces(data) - -> for key in interfaces.keys(): -E RuntimeError: dictionary keys changed during iteration - -In TestDellos9Facts.test_dellos9_facts_gather_subset_default -and TestDellos9Facts.test_dellos9_facts_gather_subset_interfaces. - -Python change: https://github.com/python/cpython/pull/12596 - -Downstream bug: https://bugzilla.redhat.com/show_bug.cgi?id=1712531 ---- - docs/bin/dump_keywords.py | 2 +- - lib/ansible/modules/network/dellos9/dellos9_facts.py | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/docs/bin/dump_keywords.py b/docs/bin/dump_keywords.py -index 30056a6fc8cc..e25171126576 100755 ---- a/docs/bin/dump_keywords.py -+++ b/docs/bin/dump_keywords.py -@@ -46,7 +46,7 @@ - oblist[name] = dict((x, aobj.__dict__['_attributes'][x]) for x in aobj.__dict__['_attributes'] if 'private' not in x or not x.private) - - # pick up docs if they exist -- for a in oblist[name]: -+ for a in list(oblist[name]): - if a in docs: - oblist[name][a] = docs[a] - else: diff --git a/ansible-install-licenses.sh b/ansible-install-licenses.sh new file mode 100755 index 0000000..f78c535 --- /dev/null +++ b/ansible-install-licenses.sh @@ -0,0 +1,46 @@ +#!/usr/bin/bash -x + +# SPDX-License-Identifier: MIT +# Copyright (C) Fedora Project Authors +# License Text: https://spdx.org/licenses/MIT.txt + +set -euo pipefail + +ansible_licensedir="${1}" +ansible_docdir="${2}" + +# Install docs and licenses +mkdir -p "${ansible_licensedir}" "${ansible_docdir}" + +# This finds the license file for each collection and moves it to +# `${ansible_licensedir}` + +for f in $(find -mindepth 3 -iname 'LICENSES' -type d -printf '%P\n') +do + dirname="$(dirname "${ansible_licensedir}/${f}")" + mkdir -p "${dirname}" + mv "${f}" "${ansible_licensedir}/${f}" +done + +for f in $( + find . -mindepth 3 -type f \ + \( -iname '*LICENSE*' -o -iname '*COPYING*' \) \ + -not -name '*.py' -not -name '*.pyc' \ + -not -name '*.license' -not -name '*.yaml' -not -name '*.yml' \ + -not -name '*.json' \ + -printf '%P\n' \ + | grep -vE '/docs/[^/]+_module\.rst$' +) +do + dirname="$(dirname "${ansible_licensedir}/${f}")" + mkdir -p "${dirname}" + mv "${f}" "${dirname}" +done + +# This does the same thing, but for READMEs. +for f in $(find . -mindepth 3 -type f -name 'README*' -printf '%P\n') +do + dirname="$(dirname "${ansible_docdir}/${f}")" + mkdir -p "${dirname}" + mv "${f}" "${dirname}" +done diff --git a/ansible-newer-jinja.patch b/ansible-newer-jinja.patch deleted file mode 100644 index c393067..0000000 --- a/ansible-newer-jinja.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Nur ansible-2.4.1.0.orig/requirements.txt ansible-2.4.1.0/requirements.txt ---- ansible-2.4.1.0.orig/requirements.txt 2017-10-25 16:05:04.000000000 -0700 -+++ ansible-2.4.1.0/requirements.txt 2017-10-30 14:41:31.202896847 -0700 -@@ -3,8 +3,8 @@ - # packages. Thus, this should be the loosest set possible (only required - # packages, not optional ones, and with the widest range of versions that could - # be suitable) --jinja2 -+jinja2 >= 2.6 - PyYAML - paramiko --cryptography -+pycrypto >= 2.6 - setuptools diff --git a/ansible-prep.sh b/ansible-prep.sh new file mode 100755 index 0000000..6db71a7 --- /dev/null +++ b/ansible-prep.sh @@ -0,0 +1,69 @@ +#!/usr/bin/bash -x + +# SPDX-License-Identifier: MIT +# Copyright (C) Fedora Project Authors +# License Text: https://spdx.org/licenses/MIT.txt + +set -euo pipefail + +# Fix wrong-script-end-of-line-encoding in azure.azcollection +find ansible_collections/azure/azcollection -type f -print -exec dos2unix -k '{}' \; + +# Remove unnecessary files and directories included in the Ansible collection release tarballs +# Tracked upstream in part by: https://github.com/ansible-community/community-topics/issues/29 +echo "[START] Delete unnecessary files and directories" + +# Collection tarballs contain a lot of hidden files and directories +hidden_pattern=".*\.(DS_Store|all-contributorsrc|ansible-lint|azure-pipelines|circleci|codeclimate.yml|flake8|galaxy_install_info|gitattributes|github|gitignore|gitkeep|gitlab-ci.yml|idea|keep|mypy_cache|nojekyll|orig|plugin-cache.yaml|pre-commit-config.yaml|project|pydevproject|pytest_cache|pytest_cache|readthedocs.yml|settings|swp|travis.yml|vscode|yamllint|yamllint.yaml|zuul.d|zuul.yaml|rstcheck.cfg|placeholder)$" +find ansible_collections -depth -regextype posix-egrep -regex "${hidden_pattern}" -print -exec rm -r {} \; + +# Not needed for runtime +rm -rv ansible_collections/cisco/meraki/scripts/ +rm -rv ansible_collections/community/grafana/hacking/ +rm -rv ansible_collections/community/okd/ci/ +rm -rv ansible_collections/community/vmware/tools/ +rm -rv ansible_collections/cyberark/conjur/roles/conjur_host_identity/tests/ +rm -rv ansible_collections/google/cloud/scripts/ +rm -rv ansible_collections/google/cloud/test-fixtures/ +rm -rv ansible_collections/grafana/grafana/tools/ +rm -rv ansible_collections/hetzner/hcloud/scripts/ +rm -rv ansible_collections/netbox/netbox/hacking/ + +rm -v ansible_collections/community/mysql/run_all_tests.py +rm -v ansible_collections/dellemc/enterprise_sonic/rebuild.sh +rm -v ansible_collections/ovirt/ovirt/build.sh + +# rpmlint W: pem-certificate +find ansible_collections/cyberark/conjur -type f -name "*.pem" -print -delete + +# rpmlint E: zero-length +find -type f -name "*requirements.txt" -size 0 -print -delete +rm -v ansible_collections/community/zabbix/roles/zabbix_agent/files/win_sample/doSomething.ps1 +rm -v ansible_collections/community/docker/meta/ee-bindep.txt + +echo "[END] Delete unnecessary files and directories" + +### +# Fix various shebang related issues to appease brp-managle-shebangs +### +find ansible_collections/community/mongodb/roles/*/{files,templates} -type f '!' -executable -name '*.sh*' \ + -print -exec chmod a+x '{}' \; + +# ansible_collections/lowlydba/sqlserver thought it was a good idea to make +# *every* single file, in its repository executable, including .md, .yml, and +# .rst. :facepalm: +# +# TODO: File issue upstream +find ansible_collections/lowlydba/sqlserver/ -executable -type f -print -exec chmod a-x '{}' \; + + +# Remove shebangs instead of hardocding to %%__python3 to avoid unexpected issues +# from https://github.com/ansible/ansible/commit/9142be2f6cabbe6597c9254c5bb9186d17036d55. +# Upstream, ansible-core has also removed shebangs from its modules. +# +# XXX: Print out the files before they're replaced +find ansible_collections -type f ! -executable -name '*.py' | tee non_exec +echo ansible_collections/community/sap_libs/plugins/module_utils/swpm2_parameters_inifile_generate.py >> non_exec +# xargs is noticably faster than find -exec, because it spawns one sed process +# instead of ~13 thousand! +xargs -a non_exec -d'\n' sed -i -e '1{\@^#!.*@d}' diff --git a/ansible.rpmlintrc b/ansible.rpmlintrc new file mode 100644 index 0000000..d5ffe46 --- /dev/null +++ b/ansible.rpmlintrc @@ -0,0 +1,9 @@ +addFilter("W: files-duplicate") +addFilter("E: files-duplicated-waste") +addFilter("W: name-repeated-in-summary") +addFilter("W: cross-directory-hard-link") +# Roles' files and templates should not be mangled +addFilter(r"E: env-script-interpreter.*ansible_collections/[^/]+/[^/]+/roles/[^/]+/(files|templates)/") +addFilter(r"E: non-executable-script.*ansible_collections/[^/]+/[^/]+/roles/[^/]+/(files|templates)/") +addFilter("W: no-manual-page-for-binary ansible-community") +addFilter(r"E: zero-length") diff --git a/ansible.spec b/ansible.spec index 00b41c3..5db073a 100644 --- a/ansible.spec +++ b/ansible.spec @@ -1,151 +1,76 @@ -# RHEL 6 didn't have a __python2 macro. -# Amazon Linux 2015.9 is based on RHEL6, with /usr/bin/python2 -> python2.6, while -# /usr/bin/python -> python2.7. Explicitly use python2.6. -%if 0%{?rhel} == 6 || 0%{?rhel} == 5 -%global __python2 /usr/bin/python2.6 +# SPDX-License-Identifier: MIT +# Copyright (C) Fedora Project Authors +# License Text: https://spdx.org/licenses/MIT.html + +# Compatibility # +############################################################################# +# This specfile should remain compatible with EPEL 9 and stable Fedoras. # +# The EPEL 8 specfile is separately maintained, # +# but the ansible-prep.sh and ansible-install-license.sh scripts are shared # +# across branches. # +############################################################################# + +# TODO: Re-enable docs and tests once possible +%bcond docs 0 +%bcond tests 0 + +# disable the python -s shbang flag as we want to be able to find non system modules +# NB: We cannot use https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_py3_shebang_S on RHEL 9. +%global py3_shebang_flags %(echo %{py3_shebang_flags} | sed 's|s||') + +# Roles' files and templates should not be mangled. +# These files are installed on remote systems which may or may not have the +# same filesystem layout as Fedora. +%global __brp_mangle_shebangs_exclude_from ^%{python3_sitelib}/ansible_collections/[^/]+/[^/]+/roles/[^/]+/(files|templates)/.*$ +%global __requires_exclude_from %{?__requires_exclude_from:%__requires_exclude_from|}%{__brp_mangle_shebangs_exclude_from} + +%if 0%{?rhel} >= 8 +# ansible-core package is built against Python 3.11 in RHEL 8 and RHEL 9 which +# is not the default version. +%global python3_pkgversion 3.11 %endif -# RHEL 6 and 7 do not have BuildRequires to build docs -# Fedora 27 and older have too old a jinja2 to build docs -%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 -%global with_docs 1 -%else -%global with_docs 0 -%endif +Name: ansible +Summary: Curated set of Ansible collections included in addition to ansible-core +Version: 13.1.0 +%global uversion %{version_no_tilde %{quote:%nil}} +Release: 2%{?dist} -# Build Fedora and RHEL larger than 7 with python3 -%if 0%{?fedora} || 0%{?rhel} >= 8 -%global with_python3 1 -%else -%global with_python3 0 -%endif - -# Fedora 29+ and RHEL larger than 7 no python2, python3 default -%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8 -%global with_python2 0 -%else -%global with_python2 1 -%endif - -Name: ansible -Summary: SSH-based configuration management, deployment, and task execution system -Version: 2.8.5 -Release: 1%{?dist} - -License: GPLv3+ -Source0: https://releases.ansible.com/ansible/%{name}-%{version}.tar.gz - -# Patch to utilize a newer jinja2 package on epel6 -# Non-upstreamable as it creates a dependency on a specific version of jinja. -# This is desirable for us as we have packages for that version but not for -# upstream as they don't know what their customers are running. -Patch100: ansible-newer-jinja.patch - -# Python 3.8 compatibility in docs -# https://bugzilla.redhat.com/show_bug.cgi?id=1712531 -# rebased from https://github.com/ansible/ansible/pull/56806 -Patch101: 56806.patch - -Url: http://ansible.com -BuildArch: noarch - -# This is needed to update the old ansible-fireball package that is no -# longer needed. Note that you should also remove ansible-node-fireball manually -# Where you still have it installed. +# In addition to GPL-3.0-or-later, the following licenses apply. +# License text that solely exists in file headers were not considered. +# Instead, the overall license was determined by searching for license files +# This is the only the practical way to handle license scanning for a project +# of this size. +# All collections must be primarily licensed under GPL-3.0-or-later, so top +# level license files are excluded. +# find /usr/share/licenses/ansible -type f | grep -vEe '(COPYING|LICENSE)(\.(txt|md))?$' -e 'GPL' | xargs -n1 basename | sort -u # -Provides: ansible-fireball = %{version}-%{release} -Obsoletes: ansible-fireball < 1.2.4 +# Apache-2.0.txt +# Apache-license.txt +# BSD-2-Clause.txt +# BSD-3-Clause.txt +# MIT.txt +# MPL-2.0.txt +# PSF-2.0.txt +# PSF-license.txt +License: GPL-3.0-or-later AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND MIT AND MPL-2.0 AND PSF-2.0 +Source0: %{pypi_source %{name} %{uversion}} +Source1: ansible-prep.sh +Source2: ansible-install-licenses.sh -%if 0%{?with_python2} -%if 0%{?rhel} && 0%{?rhel} <= 5 -# On RHEL6 use the python26 stack -BuildRequires: python26-devel -Requires: python26-PyYAML -Requires: python26-paramiko -Requires: python26-jinja2 +Url: https://ansible.com +BuildArch: noarch + +BuildRequires: dos2unix +BuildRequires: findutils +BuildRequires: python%{python3_pkgversion}-devel + +%if %{with tests} +# TODO build-requires %endif -BuildRequires: python2-devel -BuildRequires: python-setuptools - -# For building docs/tests -BuildRequires: git-core - -# For tests -# We don't run tests on epel6, so don't bother pulling these in there. -%if (0%{?fedora} || 0%{?rhel} > 6) -BuildRequires: PyYAML -BuildRequires: python2-cryptography -BuildRequires: python2-crypto -BuildRequires: python-paramiko -BuildRequires: python-six -BuildRequires: python-nose -BuildRequires: python-coverage -BuildRequires: python-requests -BuildRequires: python-mock -BuildRequires: python-boto3 -BuildRequires: python-botocore -BuildRequires: python-passlib -%if 0%{?fedora} -# Fedora only docs building -BuildRequires: python3-sphinx-theme-alabaster -%endif -# rhel7 does not have python-pytest but has pytest -%if 0%{?rhel} == 7 -BuildRequires: pytest -BuildRequires: python2-sphinx-theme-alabaster -%else -BuildRequires: python-pytest -BuildRequires: python-pytest-xdist -BuildRequires: python-pytest-mock -BuildRequires: python-packaging -BuildRequires: python2-pexpect -BuildRequires: python2-winrm -%endif -%endif - -%if (0%{?rhel} && 0%{?rhel} <= 6) -# Ansible will work with the jinja2 shipped with RHEL6 but users can gain -# additional jinja features by using the newer version -Requires: python-jinja2-26 -BuildRequires: python-jinja2-26 - -# Distros with python < 2.7.0 -BuildRequires: python-unittest2 - -%else -Requires: python-jinja2 -BuildRequires: python-jinja2 -%endif - -Requires: PyYAML -Requires: python2-cryptography -Requires: python-paramiko -Requires: python-httplib2 -Requires: python-setuptools -Requires: python-six -Requires: sshpass - -%if (0%{?fedora} || 0%{?rhel} > 6) -# needed for json_query filter -# but avoid on rhel6 due to amazon linux conflicts -Requires: python2-jmespath -%endif - -%if 0%{?rhel} == 6 -# RHEL 6 needs a newer version of the pycrypto library for the ansible-vault -# command. Note: If other pieces of ansible also grow to need pycrypto you may -# need to add: Requires: python-crypto or patch the other pieces of ansible to -# make use of this forward compat package (see the patch for ansible-vault -# above to see what needs to be done.) -Requires: python-crypto2.6 -# The python-2.6 stdlib json module has a bug that affects the ansible -# to_nice_json filter -Requires: python-simplejson - -# For testing -BuildRequires: python-crypto2.6 -BuildRequires: python-simplejson +%if %{with docs} +# TODO build-requires %endif @@ -156,303 +81,474 @@ over SSH and does not require any software or daemons to be installed on remote nodes. Extension modules can be written in any language and are transferred to managed machines automatically. -%endif -# python2 +This package provides a curated set of Ansible collections included in addition +to ansible-core. -%if 0%{?with_python3} -# Note, ansible is not intended to be used as a library so avoiding the -# python3-ansible and python2-ansible package names so we don't confuse users. - -# Also note, similarly to dnf in its transition period, the python2 and python3 -# versions of ansible should behave identically but python3-only bugs may be present. -# So upstream would like us to ship both py2 and py3 ansible (at least in -# rawhide) for people to beat on and find bugs. - -# However, for future ELs and Fedora 29+, we want Python 3 only -%if 0%{?with_python2} -%package -n ansible-python3 -Summary: SSH-based configuration management, deployment, and task execution system -%else -Provides: ansible-python3 = %{version}-%{release} -Obsoletes: ansible-python3 < %{version}-%{release} -%endif - -BuildRequires: python3-devel -BuildRequires: python3-setuptools - -# For tests -BuildRequires: python3-PyYAML -BuildRequires: python3-paramiko -BuildRequires: python3-cryptography -BuildRequires: python3-crypto -BuildRequires: python3-pbkdf2 -BuildRequires: python3-packaging -BuildRequires: python3-pexpect -BuildRequires: python3-winrm -BuildRequires: python3-httmock -BuildRequires: python3-gitlab - -# For Docs/tests -BuildRequires: git-core -%if %with_docs -BuildRequires: python3-sphinx -BuildRequires: python3-sphinx-theme-alabaster -BuildRequires: python3-sphinx-notfound-page -BuildRequires: asciidoc -%endif -# accelerate is the only thing that makes keyczar mandatory. Since accelerate -# is deprecated, just ignore it -#BuildRequires: python-keyczar -BuildRequires: python3-six -BuildRequires: python3-nose -BuildRequires: python3-pytest -BuildRequires: python3-pytest-xdist -BuildRequires: python3-pytest-mock -BuildRequires: python3-requests -BuildRequires: python3-coverage -BuildRequires: python3-mock -BuildRequires: python3-boto3 -BuildRequires: python3-botocore -BuildRequires: python3-passlib -BuildRequires: python3-jinja2 - -Requires: python3-PyYAML -Requires: python3-paramiko -Requires: python3-cryptography -# accelerate is the only thing that makes keyczar mandatory. Since accelerate -# is deprecated, just ignore it -#Requires: python3-keyczar -Requires: python3-setuptools -Requires: python3-six -Requires: python3-jinja2 -Requires: sshpass -# needed for json_query filter -Requires: python3-jmespath - - -%if 0%{?with_python2} -%description -n ansible-python3 -%else -%description -%endif - -Ansible is a radically simple model-driven configuration management, -multi-node deployment, and remote task execution system. Ansible works -over SSH and does not require any software or daemons to be installed -on remote nodes. Extension modules can be written in any language and -are transferred to managed machines automatically. - -This package installs versions of ansible that execute on Python3. -%endif -# python3 - -%package -n ansible-doc -Summary: Documentation for Ansible - -%description -n ansible-doc - -Ansible is a radically simple model-driven configuration management, -multi-node deployment, and remote task execution system. Ansible works -over SSH and does not require any software or daemons to be installed -on remote nodes. Extension modules can be written in any language and -are transferred to managed machines automatically. - -This package installs extensive documentation for ansible - %prep -%setup -q -n %{name}-%{version} +%autosetup -N -n %{name}-%{uversion} -%if 0%{?rhel} == 6 -%patch100 -p1 +# Relax ansible-core dependency to avoid FTI bugs on EPEL +# +# This is necessary, because the EPEL ansible maintainers don't have control +# over ansible-core in RHEL, and it's difficult to time updates across +# repositories. I have tried to stick to upstream's version constraints, but +# that's apparently not working too well. This change gives us a grace period +# to properly release and test new ansible major versions after RHEL rebases +# ansible-core. The lower version constraints can stay in place. + +sed "s|ansible-core ~=|ansible-core >=|" setup.cfg > setup.cfg.bak +# Verify +set -o pipefail +grep -B1 "ansible-core >=" setup.cfg.bak | grep -F 'install_requires =' +%if %{defined rhel} +mv setup.cfg.bak setup.cfg %endif -%patch101 -p1 +# ansible-prep.sh +%{S:1} + +( +mkdir licenses docs +cd ansible_collections +# ansible-license-install.sh +%{S:2} \ + "$(readlink -f ../licenses)" \ + "$(readlink -f ../docs)" \ +) + + +%generate_buildrequires +%pyproject_buildrequires -%if 0%{?with_python3} -rm -rf %{py3dir} -cp -a . %{py3dir} -%endif -# with_python3 %build -%if 0%{?with_python2} -%{__python2} setup.py build -%endif +%py3_shebang_fix ansible_collections -%if 0%{?with_python3} -pushd %{py3dir} -%py3_build +%pyproject_wheel -%if %with_docs - # Fedora 26 does not have pathfix, so build docs with python2 - %if (0%{?fedora} == 26) - make PYTHON=/usr/bin/python2 webdocs - %else - pathfix.py -i %{__python3} -p docs/bin test/runner - make PYTHON=/usr/bin/python3 SPHINXBUILD=sphinx-build-3 webdocs - %endif -%endif - -popd -%endif -# with_python3 - -%if ! %with_docs && ( 0%{?fedora} || 0%{?rhel} >= 7) - # Generate the rst docs from the source if they weren't generated earlier as - # part of the html docs build - make -Cdocs/docsite config cli keywords modules plugins testing -%endif %install -%if 0%{?with_python3} -pushd %{py3dir} -%{__python3} setup.py install --root=$RPM_BUILD_ROOT -popd +%pyproject_install +# This adds over a minute to the build due to the size of the ansible package. +# It's better to manually specify the paths in %%files... +# %%pyproject_save_files ansible_collections -for i in $RPM_BUILD_ROOT/%{_bindir}/ansible* ; do - if [ $(basename $i) = "ansible-connection" -o $(basename $i) = "ansible" ] ; then - %if 0%{?with_python2} - mv $i $i-%{python3_version} - %else - # for backwards compatibility - ln -s $(basename $i) $i-%{python3_version} - %endif - ln -s %{_bindir}/$(basename $i)-%{python3_version} $i-3 - %if 0%{?with_python2} - else - # The ansible commands are themselves symlinks to /usr/bin/ansible. - # Need to change them to point to the python3 version - ln -s %{_bindir}/ansible-3 $i-%{python3_version} - ln -s %{_bindir}/$(basename $i)-%{python3_version} $i-3 - %endif - fi -done -%endif -# with_python3 - -%if 0%{?with_python2} -%{__python2} setup.py install --root=$RPM_BUILD_ROOT -for i in $RPM_BUILD_ROOT/%{_bindir}/{ansible,ansible-console,ansible-doc,ansible-galaxy,ansible-playbook,ansible-pull,ansible-vault} ; do - mv $i $i-%{python2_version} - ln -s %{_bindir}/$(basename $i)-%{python2_version} $i - ln -s %{_bindir}/$(basename $i)-%{python2_version} $i-2 -done -%endif - -# Create system directories that Ansible defines as default locations in -# ansible/config/base.yml -DATADIR_LOCATIONS='%{_datadir}/ansible/collections -%{_datadir}/ansible/plugins/doc_fragments -%{_datadir}/ansible/plugins/action -%{_datadir}/ansible/plugins/become -%{_datadir}/ansible/plugins/cache -%{_datadir}/ansible/plugins/callback -%{_datadir}/ansible/plugins/cliconf -%{_datadir}/ansible/plugins/connection -%{_datadir}/ansible/plugins/filter -%{_datadir}/ansible/plugins/httpapi -%{_datadir}/ansible/plugins/inventory -%{_datadir}/ansible/plugins/lookup -%{_datadir}/ansible/plugins/modules -%{_datadir}/ansible/plugins/module_utils -%{_datadir}/ansible/plugins/netconf -%{_datadir}/ansible/roles -%{_datadir}/ansible/plugins/strategy -%{_datadir}/ansible/plugins/terminal -%{_datadir}/ansible/plugins/test -%{_datadir}/ansible/plugins/vars' - -UPSTREAM_DATADIR_LOCATIONS=$(grep -ri default lib/ansible/config/base.yml| tr ':' '\n' | grep '/usr/share/ansible') - -if [ "$SYSTEM_LOCATIONS" != "$UPSTREAM_SYSTEM_LOCATIONS" ] ; then - echo "The upstream Ansible datadir locations have changed. Spec file needs to be updated" - exit 1 -fi - -mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/plugins/ -for location in $DATADIR_LOCATIONS ; do - mkdir $RPM_BUILD_ROOT"$location" -done -mkdir -p $RPM_BUILD_ROOT/etc/ansible/ -mkdir -p $RPM_BUILD_ROOT/etc/ansible/roles/ - -cp examples/hosts $RPM_BUILD_ROOT/etc/ansible/ -cp examples/ansible.cfg $RPM_BUILD_ROOT/etc/ansible/ -mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man1 -cp -v docs/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1/ - -cp -pr docs/docsite/rst . -%if %with_docs - pushd %{py3dir} - cp -pr docs/docsite/_build/html %{_builddir}/%{name}-%{version}/html - popd -%endif +mkdir -p %{buildroot}%{_licensedir}/ansible %{buildroot}%{_docdir}/ansible +mv licenses %{buildroot}%{_licensedir}/ansible/ansible_collections +mv docs %{buildroot}%{_pkgdocdir}/ansible_collections %check -# RHEL <= 6 doesn't have a new enough python-mock to run the tests -# Currently RHEL <= 7 doesn't have pytest-xdist or a new enough pytest -# Fedora 25 doesn't have a new enough pytest -%if 0%{?with_python2} && 0%{?fedora} >= 26 -ln -s /usr/bin/pytest bin/pytest -make PYTHON=/usr/bin/python2 tests +%if %{with tests} +# TODO: Run tests %endif -# New enough Fedora with python2 - -%if 0%{?with_python3} -pushd %{py3dir} -ln -s /usr/bin/pytest-3 bin/pytest -pathfix.py -i %{__python3} -p test/runner -pathfix.py -i %{__python3} -p bin/ansible-test -# This test needs a module not packaged in Fedora so disable it. -rm -f test/units/modules/cloud/cloudstack/test_cs_traffic_type.py -%if 0%{?fedora} < 30 -# In fedora 29 and eariler, python-gitlab is too old to run these tests -rm -f test/units/modules/source_control/test_gitlab_user.py -rm -f test/units/modules/source_control/test_gitlab_runner.py -%endif -make PYTHON=/usr/bin/python3 tests-py3 - -popd -%endif -# python3 %files -%if 0%{?with_python2} -%{python2_sitelib}/ansible* -%endif -%{_bindir}/ansible* -%if 0%{?with_python3} && 0%{?with_python2} -%exclude %{_bindir}/ansible*-3* -%endif -# python3 and 2 -%config(noreplace) %{_sysconfdir}/ansible/ -%{_datadir}/ansible/ -%doc README.rst PKG-INFO COPYING changelogs/CHANGELOG-v2.8.rst -%doc %{_mandir}/man1/ansible* +%license COPYING +%license %{_licensedir}/ansible/ansible_collections/ +%doc README.rst PKG-INFO porting_guide_*.rst CHANGELOG-v*.rst +%doc %{_pkgdocdir}/ansible_collections/ +%{_bindir}/ansible-community +# Note (dmsimard): This ansible package installs collections to the python sitelib to mirror the UX +# when installing the ansible package from PyPi. +# This allows users to install individual collections manually with ansible-galaxy (~/.ansible/collections/ansible_collections) +# or via standalone distribution packages to datadir (/usr/share). +# Both will have precedence over the collections installed in the python sitelib. +%{python3_sitelib}/ansible_collections/ +%{python3_sitelib}/ansible-%{uversion}.dist-info/ -%if 0%{?with_python3} -%if 0%{?with_python2} -%files -n ansible-python3 -%config(noreplace) %{_sysconfdir}/ansible/ -%doc README.rst PKG-INFO COPYING changelogs/CHANGELOG-v2.8.rst -%doc %{_mandir}/man1/ansible* -%{_bindir}/ansible*-3* -%endif -# python2 -%{python3_sitelib}/ansible* -%endif -# python3 - -%files -n ansible-doc -%doc rst -%if %with_docs -%doc html -%endif %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 13.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Tue Dec 09 2025 Maxwell G - 13.1.0-1 +- Update to 13.1.0. Fixes rhbz#2354912. + +* Mon Nov 17 2025 Packit - 11.12.0-1 +- Update to version 11.12.0 + +* Sat Sep 27 2025 Maxwell G - 11.10.0-1 +- Update to 11.10.0. + +* Fri Sep 19 2025 Python Maint - 11.8.0-4 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 11.8.0-3 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Wed Jul 23 2025 Fedora Release Engineering - 11.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Wed Jul 16 2025 Maxwell G - 11.8.0-1 +- Update to 11.8.0. + +* Sat Jun 07 2025 Python Maint - 11.6.0-2 +- Rebuilt for Python 3.14 + +* Sat Jun 07 2025 Maxwell G - 11.6.0-1 +- Update to 11.6.0. + +* Tue Mar 25 2025 Packit - 11.4.0-1 +- Update to version 11.4.0 +- Resolves: rhbz#2354912 + +* Mon Mar 17 2025 Packit - 11.3.0-1 +- Update to version 11.3.0 + +* Thu Jan 16 2025 Fedora Release Engineering - 11.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Dec 18 2024 Maxwell G - 11.1.0-1 +- Update to 11.1.0. + +* Tue Nov 26 2024 Maxwell G - 11.0.0-1 +- Update to 11.0.0. + +* Fri Oct 11 2024 Maxwell G - 9.11.0-1 +- Update to 9.11.0. + +* Tue Sep 10 2024 Maxwell G - 9.10.0-1 +- Update to 9.10.0. + +* Tue Aug 13 2024 Maxwell G - 9.9.0-1 +- Update to 9.9.0. + +* Fri Jul 19 2024 Maxwell G - 9.8.0-1 +- Update to 9.8.0. + +* Wed Jul 17 2024 Fedora Release Engineering - 9.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Jun 23 2024 Maxwell G - 9.7.0-1 +- Update to 9.7.0. + +* Sun Jun 09 2024 Maxwell G - 9.6.1-1 +- Update to 8.6.1. + +* Sun Jun 09 2024 Python Maint - 9.6.0-2 +- Rebuilt for Python 3.13 + +* Tue Jun 04 2024 Maxwell G - 9.6.0-1 +- Update to 9.6.0. + +* Thu May 02 2024 Maxwell G - 9.5.1-1 +- Update to 9.5.1. + +* Fri Mar 29 2024 Maxwell G - 9.4.0-1 +- Update to 9.4.0. + +* Sat Mar 02 2024 Maxwell G - 9.3.0-1 +- Update to 9.3.0. +- Backport "podman pod info" patch to containers.podman + +* Thu Feb 01 2024 Maxwell G - 9.2.0-1 +- Update to 9.2.0. + +* Mon Jan 22 2024 Fedora Release Engineering - 9.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 9.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Dec 06 2023 Maxwell G - 9.1.0-1 +- Update to 9.1.0. + +* Tue Nov 21 2023 Maxwell G - 9.0.1-1 +- Update to 9.0.1. + +* Thu Oct 19 2023 Maxwell G - 9.0.0~a3-1 +- Update to 9.0.0~a3. + +* Thu Oct 12 2023 Maxwell G - 9.0.0~a2-1 +- Update to 9.0.0~a2. + +* Thu Sep 28 2023 Maxwell G - 9.0.0~a1-1 +- Update to 9.0.0~a1. + +* Tue Sep 12 2023 Maxwell G - 8.4.0-1 +- Update to 8.4.0. + +* Thu Aug 17 2023 Maxwell G - 8.3.0-1 +- Update to 8.3.0. + +* Wed Jul 19 2023 Fedora Release Engineering - 8.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jul 03 2023 Maxwell G - 8.1.0-2 +- Rebuilt for Python 3.12 + +* Thu Jun 22 2023 Maxwell G - 8.1.0-1 +- Update to 8.1.0. + +* Fri Jun 16 2023 Python Maint - 8.0.0-2 +- Rebuilt for Python 3.12 + +* Tue May 30 2023 Maxwell G - 8.0.0-1 +- Update to 8.0.0. + +* Tue May 23 2023 Maxwell G - 8.0.0~rc1-1 +- Update to 8.0.0~rc1. + +* Tue May 16 2023 Maxwell G - 8.0.0~b1-1 +- Update to 8.0.0~b1. + +* Wed May 03 2023 Maxwell G - 8.0.0~a3-1 +- Update to 8.0.0~a3. + +* Thu Apr 27 2023 Maxwell G - 8.0.0~a2-1 +- Update to 8.0.0~a2. + +* Thu Apr 20 2023 Maxwell G - 8.0.0~a1-1 +- Update to 8.0.0~a1. + +* Wed Mar 29 2023 Maxwell G - 7.4.0-1 +- Update to 7.4.0. + +* Wed Mar 01 2023 Maxwell G - 7.3.0-1 +- Update to 7.3.0. + +* Tue Jan 31 2023 David Moreau-Simard - 7.2.0-1 +- Update to 7.2.0. + +* Wed Jan 18 2023 Fedora Release Engineering - 7.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Dec 09 2022 Maxwell G - 7.1.0-1 +- Update to 7.1.0. + +* Wed Nov 23 2022 Maxwell G - 7.0.0-1 +- Update to 7.0.0. + +* Fri Nov 18 2022 Maxwell G - 7.0.0~rc1-1 +- Update to 7.0.0~rc1. + +* Tue Nov 08 2022 Maxwell G - 7.0.0~b1-1 +- Update to 7.0.0~b1. + +* Fri Oct 28 2022 Maxwell G - 7.0.0~a2-1 +- Update to 7.0.0~a2. + +* Thu Oct 13 2022 Maxwell G - 6.5.0-1 +- Update to 6.5.0. + +* Thu Sep 15 2022 Maxwell G - 6.4.0-1 +- Update to 6.4.0. + +* Tue Aug 23 2022 Maxwell G - 6.3.0-1 +- Update to 6.3.0. + +* Tue Aug 02 2022 Maxwell G - 6.2.0-1 +- Update to 6.2.0. + +* Wed Jul 20 2022 Fedora Release Engineering - 6.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jul 15 2022 Maxwell G - 6.1.0-2 +- Fix FTI (rhbz#2107532). + +* Thu Jul 14 2022 Maxwell G - 6.1.0-1 +- Update to 6.1.0. + +* Wed Jun 22 2022 Maxwell G - 6.0.0-1 +- Update to 6.0.0. + +* Wed Jun 22 2022 Maxwell G - 6.0.0~rc1-1 +- Update to 6.0.0~rc1. +- Stop duplicating docs and licenses. +- Don't remove tests in %%prep that are now handled by setup.py. +- Hardlink duplicated files and fix rpmlint errors + +* Thu Jun 16 2022 Python Maint - 5.9.0-2 +- Rebuilt for Python 3.11 + +* Wed Jun 08 2022 Maxwell G - 5.9.0-1 +- Update to 5.9.0. + +* Thu May 19 2022 Maxwell G - 5.8.0-1 +- Update to 5.8.0. +- Remove fortinet.fortios patch. + +* Wed Apr 27 2022 Maxwell G - 5.7.0-1 +- Update to 5.7.0. +- Fix SyntaxError in fortinet.fortios collection. +- Fix rpmlint errors + +* Mon Apr 25 2022 Maxwell G - 5.6.0-2 +- Ensure correct version of ansible-core is available at buildtime. +- Implement support for epel8. + +* Wed Apr 06 2022 Kevin Fenzi - 5.6.0-1 +- Update to 5.6.0. + +* Tue Mar 15 2022 David Moreau-Simard - 5.5.0-1 +- Update to latest upstream release + +* Tue Feb 22 2022 David Moreau-Simard - 5.4.0-1 +- Update to latest upstream release + +* Wed Feb 16 2022 Maxwell G - 5.3.0-2 +- Fix shebangs. + +* Tue Feb 1 2022 David Moreau-Simard - 5.3.0-1 +- Update to latest upstream release + +* Wed Jan 19 2022 Fedora Release Engineering - 5.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jan 12 2022 David Moreau-Simard - 5.2.0-1 +- Update to latest upstream release + +* Tue Jan 11 2022 David Moreau-Simard - 5.1.0-1 +- Update to latest upstream release +- Refactor to take into account split from ansible-core after ansible 2.9, see: https://fedoraproject.org/wiki/Changes/Ansible5 +- Remove patches intended for Ansible 2.9 +- Removed packaging macros (soon included in ansible-packaging, see rhbz#2038591) +- Removed provides/obsoletes on ansible-python3 + +* Mon Nov 01 2021 Kevin Fenzi - 2.9.27-2 +- Add patch for oracle linux Fixes rhbz#2018369 + +* Mon Oct 11 2021 Kevin Fenzi - 2.9.27-1 +- Update to 2.9.27. Fixes rhbz#2012918 + +* Tue Sep 14 2021 Kevin Fenzi - 2.9.26-1 +- Update to 2.9.26. Fixes rhbz#2002394 + +* Fri Aug 20 2021 Kevin Fenzi - 2.9.25-1 +- Update to 2.9.25. Fixes rhbz#1994108 + +* Sun Jul 25 2021 Kevin Fenzi - 2.9.24-1 +- Update to 2.9.24. Fixes rhbz#1983837 + +* Wed Jul 21 2021 Fedora Release Engineering - 2.9.23-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jul 10 2021 Kevin Fenzi - 2.9.23-2 +- Fix FTBFS with sphinx 4.x. Fixes rhbz#1977303 + +* Tue Jun 22 2021 Kevin Fenzi - 2.9.23-1 +- Update to 2.9.23. Fixes rhbz#1974592 +- Add patch for Rocky Linux. Fixes rhbz#1968728 + +* Fri Jun 04 2021 Python Maint - 2.9.22-2 +- Rebuilt for Python 3.10 + +* Mon May 24 2021 Kevin Fenzi - 2.9.22-1 +- Update to 2.9.22. Fixes rhbz#1964173 + +* Mon May 03 2021 Kevin Fenzi - 2.9.21-1 +- Update to 2.9.21. Fixes rhbz#1956584 + +* Sat Apr 24 2021 Kevin Fenzi - 2.9.20-1 +- Update to 2.9.20. + +* Sat Feb 20 2021 Kevin Fenzi - 2.9.18-1 +- Update to 2.9.18. +- Fixes: CVE-2021-20228 CVE-2021-20178 CVE-2021-20180 CVE-2021-20191 + +* Tue Jan 26 2021 Fedora Release Engineering - 2.9.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Jan 24 2021 Kevin Fenzi - 2.9.17-2 +- Update to 2.9.17. + +* Sat Jan 16 2021 Kevin Fenzi - 2.9.16-2 +- Conflict with ansible-base 2.10.x for now. +- Ajust generator so collections will install/work with either ansible or ansible-base. + +* Tue Dec 15 2020 Kevin Fenzi - 2.9.16-1 +- Update to 2.9.16. + +* Tue Nov 03 2020 Kevin Fenzi - 2.9.15-1 +- Update to 2.9.15. + +* Tue Oct 06 2020 Kevin Fenzi - 2.9.14-1 +- Update to 2.9.14. + +* Tue Sep 01 2020 Kevin Fenzi - 2.9.13-1 +- Update to 2.9.13. Fixes CVE-2020-14365 + +* Tue Aug 11 2020 Kevin Fenzi - 2.9.12-1 +- Update to 2.9.12. + +* Sun Aug 09 2020 Igor Raits - 2.9.11-4 +- Add support for generating '>=' dependencies in RPM generator + +* Sat Aug 08 2020 Igor Raits - 2.9.11-3 +- Add very basic support for generating dependencies in RPM generator + +* Mon Jul 27 2020 Fedora Release Engineering - 2.9.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 21 2020 Kevin Fenzi - 2.9.11-1 +- Update to 2.9.11. + +* Thu Jun 18 2020 Kevin Fenzi - 2.9.10-1 +- Update to 2.9.10. + +* Fri May 29 2020 Charalampos Stratakis - 2.9.9-3 +- Fix Python 3.9 compatibility (#1808674) +- Pin Pytest to version 4 for now + +* Tue May 26 2020 Miro HronĨok - 2.9.9-2 +- Rebuilt for Python 3.9 + +* Tue May 12 2020 Kevin Fenzi - 2.9.9-1 +- Update to 2.9.9. Fixes bug #1834582 +- Fixes gathering facts on f32+ bug #1832625 + +* Sun Apr 19 2020 Igor Raits - 2.9.7-3 +- Own /usr/share/ansible/collections/ansible_collections + +* Sun Apr 19 2020 Igor Raits - 2.9.7-2 +- Add macros for packaging Ansible collections + +* Fri Apr 17 2020 Kevin Fenzi - 2.9.7-1 +- Update to 2.9.7. +- fixes CVE-2020-1733 CVE-2020-1735 CVE-2020-1740 CVE-2020-1746 CVE-2020-1753 CVE-2020-10684 CVE-2020-10685 CVE-2020-10691 +- Drop the -s from the shebang to allow ansible to use locally installed modules. + +* Fri Mar 06 2020 Kevin Fenzi - 2.9.6-1 +- Update to 2.9.6. Fixes bug #1810373 +- fixes for CVE-2020-1737, CVE-2020-1739 + +* Thu Feb 13 2020 Kevin Fenzi - 2.9.5-1 +- Update to 2.9.5. Fixes bug #1802725 + +* Tue Jan 28 2020 Fedora Release Engineering - 2.9.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 21 2020 Kevin Fenzi - 2.9.4-1 +- Update to 2.9.4 with one bugfix. + +* Thu Jan 16 2020 Kevin Fenzi - 2.9.3-1 +- Update to 2.9.3. + +* Sun Dec 08 2019 Kevin Fenzi - 2.9.2-1 +- Update to 2.9.2. + +* Thu Nov 14 2019 Kevin Fenzi - 2.9.1-2 +- Add Requires for python3-pyyaml + +* Wed Nov 13 2019 Kevin Fenzi - 2.9.1-1 +- Update to 2.9.1. + +* Fri Nov 08 2019 Kevin Fenzi - 2.9.0-2 +- Supress pwsh requires added by rpm. + +* Thu Oct 31 2019 Kevin Fenzi - 2.9.0-1 +- Update to 2.9.0. + +* Thu Oct 17 2019 Kevin Fenzi - 2.8.6-1 +- Update to 2.8.6. +- Rework spec file to drop old conditionals. + +* Thu Oct 10 2019 Kevin Fenzi - 2.8.5-2 +- Make python3-paramiko and python3-winrm Recommended so they install on Fedora and not RHEL8 + * Fri Sep 13 2019 Kevin Fenzi - 2.8.5-1 - Update to 2.8.5. @@ -481,7 +577,7 @@ popd - Fixes for various releases build/test issues. * Fri May 17 2019 Kevin Fenzi - 2.8.0-1 -- Update to 2.8.0 final. +- Update to 2.8.0 final. - Add datadirs for other packages to land ansible files in. * Fri May 10 2019 Kevin Fenzi - 2.8.0-0.4rc3 @@ -627,7 +723,7 @@ popd - Conditionalize jmespath to work around amazon linux issues. Fixes bug #1494640 * Tue Sep 19 2017 Kevin Fenzi - 2.4.0.0-1 -- Update to 2.4.0. +- Update to 2.4.0. * Tue Aug 08 2017 Kevin Fenzi - 2.3.2.0-1 - Update to 2.3.2. Fixes bugs #1471017 #1461116 #1465586 @@ -780,7 +876,7 @@ popd - Update to 1.9.1 * Wed Mar 25 2015 Kevin Fenzi 1.9.0.1-2 -- Drop upstreamed epel6 patches. +- Drop upstreamed epel6 patches. * Wed Mar 25 2015 Kevin Fenzi 1.9.0.1-1 - Update to 1.9.0.1 @@ -831,7 +927,7 @@ popd - Update to 1.6.9 with more shell quoting fixes. * Tue Jul 22 2014 Kevin Fenzi 1.6.8-1 -- Update to 1.6.8 with fixes for shell quoting from previous release. +- Update to 1.6.8 with fixes for shell quoting from previous release. - Fixes bugs #1122060 #1122061 #1122062 * Mon Jul 21 2014 Kevin Fenzi 1.6.7-1 @@ -927,7 +1023,7 @@ popd * Thu Sep 12 2013 Kevin Fenzi 1.3.0-1 - Update to 1.3.0 - Drop node-fireball subpackage entirely. -- Obsolete/provide fireball subpackage. +- Obsolete/provide fireball subpackage. - Add Requires python-keyczar on main package for accelerated mode. * Wed Aug 21 2013 Kevin Fenzi 1.2.3-2 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..1a03a59 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,13 @@ +# Copyright (C) 2023 Maxwell G +# SPDX-License-Identifier: MIT + +--- !Policy +product_versions: + - fedora-* +decision_contexts: + - bodhi_update_push_testing + - bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +... diff --git a/sources b/sources index 9528a50..079d378 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ansible-2.8.5.tar.gz) = 6555b9a3d3d8298410e54f7116d92fc1978bef185a5136cfb809c1942b08b96c562af9e0d6d1a25eee5a4024d309b6713ce27836857b428a7c362e26efb53777 +SHA512 (ansible-13.1.0.tar.gz) = 2e7abd85b44d48ea756c65906811c9fa5519ce5d9ecaca71c718446a52dfc3dff97597d048f071ca820ea606ee2de670e8a0746717f95e2ce636db06273b3544 diff --git a/tests/smoke.fmf b/tests/smoke.fmf new file mode 100644 index 0000000..a8f51cb --- /dev/null +++ b/tests/smoke.fmf @@ -0,0 +1,17 @@ +# Copyright (C) 2023 Maxwell G +# SPDX-License-Identifier: MIT + +summary: Run ansible-core smoke tests with ansible bundle installed +discover: + - name: Smoke tests with ansible + how: shell + tests: + - name: Run tests/smoke.sh + test: tests/smoke.sh + require: + - python3-dnf + - dnf-plugins-core + - ansible-core + - ansible +execute: + how: tmt diff --git a/tests/smoke.sh b/tests/smoke.sh new file mode 100755 index 0000000..903938a --- /dev/null +++ b/tests/smoke.sh @@ -0,0 +1,7 @@ +#!/usr/bin/bash -x +# Copyright (C) 2023 Maxwell G +# SPDX-License-Identifier: MIT + +set -euo pipefail + +curl -L https://src.fedoraproject.org/rpms/ansible-core/raw/rawhide/f/tests/smoke.sh | bash -x