Compare commits

...
Sign in to create a new pull request.

23 commits

Author SHA1 Message Date
Maxwell G
330f77d3e2
Build for Python 3.9
ansible-core in RHEL 9.3 is going back to python3.9

Relates: https://bugzilla.redhat.com/2221820
2023-07-18 19:16:58 +00:00
Maxwell G
c48a055af8
Downgrade to 7.7.0. 2023-07-18 19:16:36 +00:00
Maxwell G
fc81424050
remove unused .coveragerc file 2023-05-31 01:22:19 +00:00
Maxwell G
43d9344813
Update to 8.0.0. 2023-05-31 01:22:18 +00:00
Maxwell G
fb066e03ec
add tmt and gating tests 2023-05-25 03:30:33 +00:00
Maxwell G
d5ea4542c9
Update to 8.0.0~rc1. 2023-05-25 03:30:28 +00:00
Maxwell G
c2e409cc77
update excluded files list for 8.0.0~b1 2023-05-25 03:30:07 +00:00
Maxwell G
10f6b04abf
Update to 8.0.0~b1. 2023-05-25 03:30:01 +00:00
Maxwell G
f489f343c7
add copyright headers
Fedora specfiles are implicitly licensed under the MIT license as per
the FPCA, but explicit is better than implicit.
2023-05-25 03:29:56 +00:00
Maxwell G
282053d3e1
move specfile scripting into separate files
This makes the specfile more readable and makes it easier to sync the
more complex parts across branches.

This also refactors the license install logic.
2023-05-25 03:29:52 +00:00
Maxwell G
fccbd6ed03
modernize specfile for EPEL 9 and Fedora
I'll maintain a separate specfile for EPEL 8.
2023-05-25 03:29:47 +00:00
Maxwell G
58277e4f22
Update to 8.0.0~a3. 2023-05-25 03:29:35 +00:00
Maxwell G
63070568b7
Update to 8.0.0~a2. 2023-05-25 03:29:26 +00:00
Maxwell G
8a5fe04367
Update to 8.0.0~a1. 2023-05-25 03:29:03 +00:00
Maxwell G
c4edd5fdca
Update to 7.4.0. 2023-05-25 03:28:45 +00:00
Maxwell G
dafa29f748
Update to 7.3.0. 2023-05-25 03:28:14 +00:00
Maxwell G
0cd8ef9fba
simplify gitignore by using globs 2023-05-25 03:26:41 +00:00
Maxwell G
ff8cd1338d
Use more precise globs in %files 2023-02-23 20:41:11 -06:00
Maxwell G
db6d821829
Build for 3.11 on RHEL 8 and 9 2023-02-23 20:41:11 -06:00
Maxwell G
1146d9d14d
Add back specfile comment about find(1) syntax
This was accidentally removed at some point.
2023-02-23 20:41:11 -06:00
Maxwell G
3bca2d0ab0
Update to 7.2.0. 2023-02-23 20:41:11 -06:00
Maxwell G
2584a13826
Update to 7.1.0. 2023-02-22 17:54:01 -06:00
Maxwell G
5176defebd
Sync with epel9 2023-02-02 15:53:19 -06:00
11 changed files with 299 additions and 299 deletions

View file

@ -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

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

129
.gitignore vendored
View file

@ -1,127 +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-2.8.6.tar.gz
/ansible-2.9.0.tar.gz
/ansible-2.9.1.tar.gz
/ansible-2.9.2.tar.gz
/ansible-2.9.3.tar.gz
/ansible-2.9.4.tar.gz
/ansible-2.9.5.tar.gz
/ansible-2.9.6.tar.gz
/ansible-2.9.7.tar.gz
/ansible-2.9.9.tar.gz
/ansible-2.9.10.tar.gz
/ansible-2.9.11.tar.gz
/ansible-2.9.12.tar.gz
/ansible-2.9.13.tar.gz
/ansible-2.9.14.tar.gz
/ansible-2.9.15.tar.gz
/ansible-2.9.16.tar.gz
/ansible-2.9.17.tar.gz
/ansible-2.9.18.tar.gz
/ansible-2.9.20.tar.gz
/ansible-2.9.21.tar.gz
/ansible-2.9.22.tar.gz
/ansible-2.9.23.tar.gz
/ansible-2.9.24.tar.gz
/ansible-2.9.25.tar.gz
/ansible-2.9.26.tar.gz
/ansible-2.9.27.tar.gz
/ansible-5.1.0.tar.gz
/ansible-5.2.0.tar.gz
/ansible-5.3.0.tar.gz
/ansible-5.4.0.tar.gz
/ansible-5.5.0.tar.gz
/ansible-5.6.0.tar.gz
/ansible-5.7.0.tar.gz
/ansible-5.8.0.tar.gz
/ansible-5.9.0.tar.gz
/ansible-6.0.0rc1.tar.gz
/ansible-6.0.0.tar.gz
/ansible-6.1.0.tar.gz
/ansible-6.2.0.tar.gz
/ansible-6.3.0.tar.gz
/ansible-*.tar.gz
/ansible-*/

46
ansible-install-licenses.sh Executable file
View file

@ -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

77
ansible-prep.sh Executable file
View file

@ -0,0 +1,77 @@
#!/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/digitalocean/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/ci/
rm -rv ansible_collections/cyberark/conjur/dev/
rm -rv ansible_collections/cyberark/conjur/roles/conjur_host_identity/tests/
rm -rv ansible_collections/google/cloud/test-fixtures/
rm -rv ansible_collections/google/cloud/scripts/
rm -rv ansible_collections/netbox/netbox/hacking/
rm -rv ansible_collections/sensu/sensu_go/docker/
rm -rv ansible_collections/sensu/sensu_go/tools/
rm -v ansible_collections/community/dns/update-docs-fragments.py
rm -v ansible_collections/community/dns/update-psl.sh
rm -v ansible_collections/community/mysql/run_all_tests.py
rm -v ansible_collections/community/routeros/update-docs.py
rm -v ansible_collections/cyberark/conjur/Jenkinsfile
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
rm -vr ansible_collections/ibm/spectrum_virtualize/roles/place_holder
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}'

View file

@ -2,3 +2,8 @@ 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")

View file

@ -1,31 +1,37 @@
# 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_with docs
%bcond_with tests
%global ansible_licensedir %{_defaultlicensedir}/ansible
%global ansible_docdir %{_defaultdocdir}/ansible
%bcond docs 0
%bcond tests 0
# This should be updated after each release to match upstream's metadata
# We manually specify this in order to workaround RHEL 8's deficient
# python-rpm-generators and lack of dynamic BR support.
# https://github.com/ansible-community/community-topics/issues/84
%global ansible_core_version 2.13.3
%global ansible_core_next_version 2.14
%global ansible_core_requires (ansible-core >= %{ansible_core_version} with ansible-core < %{ansible_core_next_version})
# 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||')
%if 0%{?rhel} == 8
# RHEL 8's ansible-core package is built using Python 3.8, which is not the default version.
%define python3_pkgversion 39
BuildRequires: python%{python3_pkgversion}-rpm-macros
# RHEL 8's RPM Python dependency generator ignores the version constraints, so we manually specify the dependency.
Requires: %{ansible_core_requires}
%endif
%global uversion %(tr -d '~' <<< %{version})
# 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}
Name: ansible
Summary: Curated set of Ansible collections included in addition to ansible-core
Version: 6.3.0
%if %{defined el9}
# https://bugzilla.redhat.com/2221820 :(
Epoch: 1
%endif
Version: 7.7.0
%global uversion %{version_no_tilde %{quote:%nil}}
Release: 1%{?dist}
# In addition to GPL-3.0-or-later, the following licenses apply.
@ -47,6 +53,8 @@ Release: 1%{?dist}
# 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
Url: https://ansible.com
BuildArch: noarch
@ -54,8 +62,6 @@ BuildRequires: dos2unix
BuildRequires: findutils
BuildRequires: hardlink
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
BuildRequires: %{ansible_core_requires}
%if %{with tests}
# TODO build-requires
@ -65,6 +71,7 @@ BuildRequires: %{ansible_core_requires}
# TODO build-requires
%endif
%description
Ansible is a radically simple model-driven configuration management,
multi-node deployment, and remote task execution system. Ansible works
@ -75,165 +82,141 @@ are transferred to managed machines automatically.
This package provides a curated set of Ansible collections included in addition
to ansible-core.
%prep
%autosetup -p1 -n %{name}-%{uversion}
# Fix wrong-script-end-of-line-encoding in azure.azcollection
find ansible_collections/azure/azcollection -type f -print -exec dos2unix -k '{}' \;
# 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.
find ansible_collections/community/mongodb/roles/*/{files,templates} -type f ! -executable -name '*.sh*' \
-print -exec chmod a+x '{}' \;
sed -i -e '1{\@^#!.*@d}' ansible_collections/cyberark/conjur/Jenkinsfile
# 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 and has
# /Users/kbreit/Documents/Programming/ansible_collections/cisco/meraki/venv/bin/python shebang
rm -r ansible_collections/cisco/meraki/scripts
# Not needed for runtime
rm -r ansible_collections/netbox/netbox/hacking
rm -r ansible_collections/cyberark/conjur/roles/conjur_host_identity/tests
# 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 -f ansible_collections/community/zabbix/roles/zabbix_agent/files/win_sample/doSomething.ps1
rm -f ansible_collections/community/docker/meta/ee-bindep.txt
echo "[END] Delete unnecessary files and directories"
# 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.
find -type f ! -executable -name '*.py' -print -exec sed -i -e '1{\@^#!.*@d}' '{}' \;
# This ensures that %%ansible_core_requires is set properly, when %%pyproject_buildrequires is defined.
# It also ensures that dependencies remain consistent.
%if %{undefined el8}
%generate_buildrequires
%pyproject_buildrequires
sed "s|ansible-core ~=|ansible-core >=|" setup.py > setup.py.bak
# Verify
set -o pipefail
grep -B1 "ansible-core >=" setup.py.bak | grep -F 'install_requires=['
%if %{defined rhel}
mv setup.py.bak setup.py
%endif
# 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
%build
# disable the python -s shbang flag as we want to be able to find non system modules
%global py3_shbang_opts %{nil}
%py3_shebang_fix ansible_collections
%py3_build
%pyproject_wheel
%install
%py3_install
%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
# Install docs and licenses
(
mkdir -p "%{buildroot}%{ansible_docdir}" "%{buildroot}%{ansible_licensedir}"
cd %{buildroot}%{python3_sitelib}/ansible_collections
# This finds the license file for each collection, moves it to
# `%%{ansible_licensedir}/collection_namespace/collection_name`, and then adds
# `%%license /path/to/license` to the %%files list.
# `-printf '%%P\n'` removes the trailing `./`.
for f in $(find . -mindepth 3 -type f \( -iname '*LICENSE*' -o -iname '*COPYING*' \) -not -name '*.py' -not -name '*.pyc' -printf '%%P\n' | grep -v '\.license$'); do
dirname="$(dirname %{buildroot}%{ansible_licensedir}/${f})"
mkdir -p "${dirname}"
mv "${f}" "${dirname}"
tee -a %{_builddir}/files.list << EOF
%%license %%{ansible_licensedir}/${f}
EOF
done
for f in $(find -mindepth 3 -iname 'LICENSES' -type d); do
cp -rfp --parents ${f} %{buildroot}%{ansible_licensedir}
echo "%%license %%{ansible_licensedir}/${f}" >> %{_builddir}/files.list
done
mkdir -p %{buildroot}%{_licensedir}/ansible %{buildroot}%{_docdir}/ansible
mv licenses %{buildroot}%{_licensedir}/ansible/ansible_collections
mv docs %{buildroot}%{_pkgdocdir}/ansible_collections
# This does the same thing, but for READMEs.
for f in $(find . -mindepth 3 -type f -name 'README*' -printf '%%P\n'); do
dirname="$(dirname %{buildroot}%{ansible_docdir}/${f})"
mkdir -p "${dirname}"
mv "${f}" "${dirname}"
tee -a %{_builddir}/files.list << EOF
%%doc %%{ansible_docdir}/${f}
EOF
done
)
hardlink -v %{buildroot}%{python3_sitelib}/ansible_collections
hardlink -v %{buildroot}%{ansible_licensedir}
hardlink -v %{buildroot}%{_licensedir}/ansible
# XXX: One of the build steps is messing with the permission.
# XXX: The file is 0755 in the source tarball.
chmod 0755 %{buildroot}%{python3_sitelib}/ansible_collections/ngine_io/cloudstack/scripts/inventory/cloudstack.py
%check
%if 0%{?with_tests}
%if %{with tests}
# TODO: Run tests
%endif
%files -f %{_builddir}/files.list
%files
%license COPYING
%doc README.rst PKG-INFO porting_guide_6.rst CHANGELOG-v6.rst
%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}/*egg-info
%{python3_sitelib}/ansible_collections/
%{python3_sitelib}/ansible-%{uversion}.dist-info/
%changelog
* Tue Aug 23 2022 Maxwell G <gotmax@e.email> - 6.3.0-1
* Tue Jul 18 2023 Maxwell G <maxwell@gtmx.me> - 1:7.7.0-1
- Downgrade to 7.7.0.
- Build for python3.9.
- Relates: rhbz#2221820
* Tue May 30 2023 Maxwell G <maxwell@gtmx.me> - 8.0.0-1
- Update to 8.0.0.
* Tue May 23 2023 Maxwell G <maxwell@gtmx.me> - 8.0.0~rc1-1
- Update to 8.0.0~rc1.
* Tue May 16 2023 Maxwell G <maxwell@gtmx.me> - 8.0.0~b1-1
- Update to 8.0.0~b1.
* Wed May 03 2023 Maxwell G <maxwell@gtmx.me> - 8.0.0~a3-1
- Update to 8.0.0~a3.
* Thu Apr 27 2023 Maxwell G <maxwell@gtmx.me> - 8.0.0~a2-1
- Update to 8.0.0~a2.
* Thu Apr 20 2023 Maxwell G <maxwell@gtmx.me> - 8.0.0~a1-1
- Update to 8.0.0~a1.
* Wed Mar 29 2023 Maxwell G <maxwell@gtmx.me> - 7.4.0-1
- Update to 7.4.0.
* Wed Mar 01 2023 Maxwell G <maxwell@gtmx.me> - 7.3.0-1
- Update to 7.3.0.
* Fri Feb 10 2023 Maxwell G <gotmax@e.email> - 7.2.0-1
- Update to 7.2.0.
* Thu Feb 02 2023 Maxwell G <gotmax@e.email> - 7.1.0-1
- Update to 7.1.0.
* Mon Dec 12 2022 Maxwell G <gotmax@e.email> - 6.3.0-2
- Rebuild to fix epel9-next sorting issue
* Thu Nov 17 2022 Maxwell G <gotmax@e.email> - 6.3.0-1
- Update to 6.3.0.
* Tue Aug 02 2022 Maxwell G <gotmax@e.email> - 6.2.0-1
- Update to 6.2.0.
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jul 15 2022 Maxwell G <gotmax@e.email> - 6.1.0-2
- Fix FTI (rhbz#2107532).
* Thu Jul 14 2022 Maxwell G <gotmax@e.email> - 6.1.0-1
- Update to 6.1.0.
* Wed Jun 22 2022 Maxwell G <gotmax@e.email> - 6.0.0-1
- Update to 6.0.0.
* Wed Jun 22 2022 Maxwell G <gotmax@e.email> - 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 <python-maint@redhat.com> - 5.9.0-2
- Rebuilt for Python 3.11
* Sun Nov 13 2022 Kevin Fenzi <kevin@scrye.com> - 5.4.0-3
- Relax ansible-core dependency.
* Wed Jun 08 2022 Maxwell G <gotmax@e.email> - 5.9.0-1
- Update to 5.9.0.
* Thu May 19 2022 Maxwell G <gotmax@e.email> - 5.8.0-1
- Update to 5.8.0.
- Remove fortinet.fortios patch.
* Wed Apr 27 2022 Maxwell G <gotmax@e.email> - 5.7.0-1
- Update to 5.7.0.
- Fix SyntaxError in fortinet.fortios collection.
- Fix rpmlint errors
* Mon Apr 25 2022 Maxwell G <gotmax@e.email> - 5.6.0-2
* Mon Apr 25 2022 Maxwell G <gotmax@e.email> - 5.4.0-2
- Ensure correct version of ansible-core is available at buildtime.
- Implement support for epel8.
* Wed Apr 06 2022 Kevin Fenzi <kevin@scrye.com> - 5.6.0-1
- Update to 5.6.0.
* Tue Mar 15 2022 David Moreau-Simard <moi@dmsimard.com> - 5.5.0-1
- Update to latest upstream release
* Tue Feb 22 2022 David Moreau-Simard <moi@dmsimard.com> - 5.4.0-1
- Update to latest upstream release

13
gating.yaml Normal file
View file

@ -0,0 +1,13 @@
# Copyright (C) 2023 Maxwell G <maxwell@gtmx.me>
# 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}
...

View file

@ -1 +1 @@
SHA512 (ansible-6.3.0.tar.gz) = 3832159065d6400caade84de1ff5f31d64d7b5d9c3a61ae9bb2ad207e410166dac3537c68d0ec3df7c4b8aec61ee48cc4b690e3117a987efa9306c6cbee534e0
SHA512 (ansible-7.7.0.tar.gz) = 7da6845c9a68f2b8c10cf3e4cc6ea347861d5b59daa6ac895731ac79b733c6724d234345054fe9e3bf4ea460345b9026492fda42dce22bfbc027c9b4de093fd9

17
tests/smoke.fmf Normal file
View file

@ -0,0 +1,17 @@
# Copyright (C) 2023 Maxwell G <maxwell@gtmx.me>
# 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

7
tests/smoke.sh Executable file
View file

@ -0,0 +1,7 @@
#!/usr/bin/bash -x
# Copyright (C) 2023 Maxwell G <maxwell@gtmx.me>
# SPDX-License-Identifier: MIT
set -euo pipefail
curl -L https://src.fedoraproject.org/rpms/ansible-core/raw/rawhide/f/tests/smoke.sh | bash -x