416 lines
13 KiB
RPMSpec
416 lines
13 KiB
RPMSpec
%bcond_without tests
|
|
# disable the python -s shbang flag as we want to be able to find non system modules
|
|
%undefine _py3_shebang_s
|
|
|
|
Name: ansible-core
|
|
Summary: A radically simple IT automation system
|
|
Version: 2.15.0
|
|
%global uversion %{version_no_tilde %{quote:%nil}}
|
|
Release: 1%{?dist}
|
|
# The main license is GPLv3+. Many of the files in lib/ansible/module_utils
|
|
# are BSD licensed. There are various files scattered throughout the codebase
|
|
# containing code under different licenses.
|
|
License: GPL-3.0-or-later AND BSD-2-Clause AND PSF-2.0 AND MIT AND Apache-2.0
|
|
Source0: https://github.com/ansible/ansible/archive/v%{uversion}/%{name}-%{uversion}.tar.gz
|
|
Source1: build_manpages.py
|
|
Patch: https://github.com/ansible/ansible/commit/734f38b2594692707d1fd3cbcfc8dc8a677f4ee3.patch#/GALAXY_COLLECTIONS_PATH_WARNINGS.patch
|
|
Url: https://ansible.com
|
|
BuildArch: noarch
|
|
|
|
# Virtual provides for bundled libraries
|
|
# Search for `_BUNDLED_METADATA` to find them
|
|
|
|
# lib/ansible/module_utils/urls.py
|
|
# SPDX-License-Identifier: BSD-2-Clause AND PSF-2.0
|
|
Provides: bundled(python3dist(backports-ssl-match-hostname)) = 3.7.0.1
|
|
|
|
# lib/ansible/module_utils/distro/*
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
Provides: bundled(python3dist(distro)) = 1.6.0
|
|
|
|
# lib/ansible/module_utils/six/*
|
|
# SPDX-License-Identifier: MIT
|
|
Provides: bundled(python3dist(six)) = 1.16.0
|
|
|
|
# lib/ansible/module_utils/compat/selectors.py
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
Provides: bundled(python3dist(selectors2)) = 1.1.1
|
|
|
|
# lib/ansible/module_utils/compat/ipaddress.py
|
|
# SPDX-License-Identifier: PSF-2.0
|
|
Provides: bundled(python3dist(ipaddress)) = 1.0.22
|
|
|
|
Conflicts: ansible <= 2.9.99
|
|
#
|
|
# obsoletes/provides for ansible-base
|
|
#
|
|
Provides: ansible-base = %{version}-%{release}
|
|
Obsoletes: ansible-base < 2.10.6-1
|
|
|
|
BuildRequires: make
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
# Needed to build manpages from source.
|
|
BuildRequires: python%{python3_pkgversion}-docutils
|
|
# Shell completions
|
|
BuildRequires: python%{python3_pkgversion}-argcomplete
|
|
|
|
%if %{with tests}
|
|
BuildRequires: git-core
|
|
BuildRequires: glibc-all-langpacks
|
|
BuildRequires: python%{python3_pkgversion}-systemd
|
|
# test/units/modules/test_async_wrapper.py needs this.
|
|
# Instead of patching the tests to use /usr/bin/python3,
|
|
# just give it what it wants.
|
|
BuildRequires: /usr/bin/python
|
|
%endif
|
|
|
|
Requires: python%{python3_pkgversion}-argcomplete
|
|
# Require packaging macros if rpm-build exists
|
|
# This makes the transition seamless for other packages
|
|
# This is DEPRECATED. Packages must explicitly BuildRequire ansible-packaging.
|
|
Requires: (ansible-packaging if rpm-build)
|
|
|
|
|
|
%global _description %{expand:
|
|
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.}
|
|
|
|
%description %_description
|
|
|
|
This is the base part of ansible (the engine).
|
|
|
|
%package doc
|
|
Summary: Documentation for Ansible Core
|
|
Provides: ansible-base-doc = %{version}-%{release}
|
|
Obsoletes: ansible-base-doc < 2.10.6-1
|
|
|
|
%description doc %_description
|
|
|
|
This package installs extensive documentation for ansible-core
|
|
|
|
|
|
%prep
|
|
%autosetup -p1 -n ansible-%{uversion}
|
|
|
|
sed -i -s 's|/usr/bin/env python|%{python3}|' \
|
|
bin/ansible-test \
|
|
test/lib/ansible_test/_util/target/cli/ansible_test_cli_stub.py
|
|
|
|
|
|
# TODO: Investigate why hostname is the only module that still has a shebang
|
|
# and file an upstream issue if needed.
|
|
sed -i -e '1{\@^#!.*@d}' lib/ansible/modules/hostname.py
|
|
|
|
sed '/^mock$/d' test/lib/ansible_test/_data/requirements/units.txt > _requirements.txt
|
|
|
|
|
|
%generate_buildrequires
|
|
%pyproject_buildrequires %{?with_tests:_requirements.txt test/units/requirements.txt}
|
|
|
|
|
|
%build
|
|
%pyproject_wheel
|
|
|
|
# Build manpages
|
|
|
|
# XXX: This should be removed once upstream provides a proper way to build
|
|
# manpages from source.
|
|
# See https://github.com/ansible/ansible/issues/80368
|
|
# and the discussion in https://github.com/ansible/ansible/pull/80372
|
|
# for more details.
|
|
PYTHONPATH="$(pwd)/packaging" %{python3} %{S:1}
|
|
|
|
# Build shell completions
|
|
(
|
|
cd bin
|
|
for shell in bash fish; do
|
|
mkdir -p "../${shell}_completions"
|
|
for bin in *; do
|
|
if grep -q PYTHON_ARGCOMPLETE_OK "${bin}"; then
|
|
case "${shell}" in
|
|
bash)
|
|
format="${bin}"
|
|
;;
|
|
fish)
|
|
format="${bin}.${shell}"
|
|
;;
|
|
esac
|
|
register-python-argcomplete --shell "${shell}" "${bin}" > "../${shell}_completions/${format}"
|
|
else
|
|
echo "Skipped generating completions for ${bin}"
|
|
fi
|
|
done
|
|
done
|
|
)
|
|
|
|
|
|
%install
|
|
%pyproject_install
|
|
%pyproject_save_files ansible ansible_test
|
|
|
|
# These files are executable when they shouldn't be.
|
|
# Only the actual "binaries" in %%{_bindir} need to be executable
|
|
# and have shebangs.
|
|
while read -r file; do
|
|
sed -i -e '1{\@^#!.*@d}' "${file}"
|
|
done < <(find \
|
|
%{buildroot}%{python3_sitelib}/ansible/cli/*.py \
|
|
%{buildroot}%{python3_sitelib}/ansible/cli/scripts/ansible_connection_cli_stub.py \
|
|
-type f ! -executable)
|
|
|
|
install -Dpm 0644 bash_completions/* -t %{buildroot}%{bash_completions_dir}
|
|
install -Dpm 0644 fish_completions/* -t %{buildroot}%{fish_completions_dir}
|
|
|
|
# Create system directories that Ansible defines as default locations in
|
|
# ansible/config/base.yml
|
|
DATADIR_LOCATIONS='%{_datadir}/ansible/collections
|
|
%{_datadir}/ansible/collections/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 %{buildroot}%{_datadir}/ansible/plugins/
|
|
for location in $DATADIR_LOCATIONS ; do
|
|
mkdir %{buildroot}"$location"
|
|
done
|
|
mkdir -p %{buildroot}%{_sysconfdir}/ansible/
|
|
mkdir -p %{buildroot}%{_sysconfdir}/ansible/roles/
|
|
|
|
cp examples/hosts %{buildroot}/etc/ansible/
|
|
cp examples/ansible.cfg %{buildroot}/etc/ansible/
|
|
mkdir -p %{buildroot}/%{_mandir}/man1
|
|
cp -v docs/man/man1/*.1 %{buildroot}/%{_mandir}/man1/
|
|
|
|
# We install licenses in this manner so we don't miss new licenses:
|
|
# 1. Copy all files in licenses to %%{_pkglicensedir}.
|
|
# 2. List the files explicitly in %%files.
|
|
# 3. The build will fail with unpackaged file errors if license
|
|
# files aren't accounted for.
|
|
%global _pkglicensedir %{_licensedir}/ansible-core
|
|
install -Dpm 0644 licenses/* -t %{buildroot}%{_pkglicensedir}
|
|
|
|
%check
|
|
%if %{with tests}
|
|
%{python3} bin/ansible-test \
|
|
units --local --python-interpreter %{python3}
|
|
%endif
|
|
|
|
|
|
%files -f %{pyproject_files}
|
|
%license COPYING
|
|
%license %{_pkglicensedir}/{Apache-License,MIT-license,PSF-license,simplified_bsd}.txt
|
|
%doc README.rst changelogs/CHANGELOG-v2.1?.rst
|
|
%dir %{_sysconfdir}/ansible/
|
|
%config(noreplace) %{_sysconfdir}/ansible/*
|
|
%{_bindir}/ansible*
|
|
%{_datadir}/ansible/
|
|
%{bash_completions_dir}/ansible*
|
|
%{fish_completions_dir}/ansible*.fish
|
|
%{_mandir}/man1/ansible*
|
|
|
|
%files doc
|
|
%doc docs/docsite/rst
|
|
%if %{with docs}
|
|
%doc docs/docsite/_build/html
|
|
%endif
|
|
|
|
|
|
%changelog
|
|
* Tue May 16 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0-1
|
|
- Update to 2.15.0.
|
|
- Don't remove dotfiles and empty files. ansible-core actually needs these.
|
|
|
|
* Wed May 03 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0~rc2-1
|
|
- Update to 2.15.0~rc2.
|
|
|
|
* Thu Apr 27 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0~rc1-1
|
|
- Update to 2.15.0~rc1.
|
|
|
|
* Mon Apr 24 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0~b3-1
|
|
- Update to 2.15.0~b3.
|
|
- Account for the removed Makefile
|
|
|
|
* Mon Apr 24 2023 Maxwell G <maxwell@gtmx.me> - 2.14.4-2
|
|
- Add gating
|
|
|
|
* Wed Mar 29 2023 Maxwell G <maxwell@gtmx.me> - 2.14.4-1
|
|
- Update to 2.14.4. Fixes rhbz#2173765.
|
|
|
|
* Wed Mar 01 2023 Maxwell G <maxwell@gtmx.me> - 2.14.3-1
|
|
- Update to 2.14.3.
|
|
|
|
* Tue Jan 31 2023 David Moreau-Simard <moi@dmsimard.com> - 2.14.2-1
|
|
- Update to 2.14.2. Fixes rhbz#2165629.
|
|
|
|
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.1-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
|
|
* Fri Dec 09 2022 Maxwell G <gotmax@e.email> - 2.14.1-1
|
|
- Update to 2.14.1.
|
|
|
|
* Mon Nov 07 2022 Maxwell G <gotmax@e.email> - 2.14.0-1
|
|
- Update to 2.14.0.
|
|
|
|
* Wed Nov 02 2022 Maxwell G <gotmax@e.email> - 2.14.0~rc2-1
|
|
- Update to 2.14.0~rc2.
|
|
|
|
* Fri Oct 28 2022 Maxwell G <gotmax@e.email> - 2.14.0~rc1-1
|
|
- Update to 2.14.0~rc1.
|
|
|
|
* Wed Oct 12 2022 Maxwell G <gotmax@e.email> - 2.13.5-1
|
|
- Update to 2.13.5.
|
|
|
|
* Tue Sep 13 2022 Maxwell G <gotmax@e.email> - 2.13.4-1
|
|
- Update to 2.13.4.
|
|
|
|
* Wed Aug 31 2022 Maxwell G <gotmax@e.email> - 2.13.3-2
|
|
- Remove weak deps on paramiko and winrm
|
|
|
|
* Mon Aug 15 2022 Maxwell G <gotmax@e.email> - 2.13.3-1
|
|
- Update to 2.13.3.
|
|
|
|
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.13.2-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
|
|
* Tue Jul 19 2022 Maxwell G <gotmax@e.email> - 2.13.2-1
|
|
- Update to 2.13.2. Fixes rhbz#2108195.
|
|
|
|
* Thu Jul 07 2022 Miro Hrončok <mhroncok@redhat.com> - 2.13.1-2
|
|
- Don't put -- into Python shebangs
|
|
|
|
* Wed Jun 22 2022 Maxwell G <gotmax@e.email> - 2.13.1-1
|
|
- Update to 2.13.1 (rhbz#2096312).
|
|
|
|
* Thu Jun 16 2022 Maxwell G <gotmax@e.email> - 2.13.0-1
|
|
- Update to 2.13.0.
|
|
- Re-enable tests that work with newer pytest
|
|
- Patch out python3-mock
|
|
- Manually build manpages to workaround upstream issue.
|
|
- Remove unneeded BRs and switch to pyproject-rpm-macros.
|
|
- Make ansible-base* Obsoletes/Provides compliant with Packaging Guidelines
|
|
- Remove python3-jmespath dependency. json_query is part of community.general.
|
|
- Correct licensing
|
|
- Generate shell completions
|
|
|
|
* Thu Jun 16 2022 Python Maint <python-maint@redhat.com> - 2.12.6-2
|
|
- Rebuilt for Python 3.11
|
|
|
|
* Tue May 24 2022 Maxwell G <gotmax@e.email> - 2.12.6-1
|
|
- Update to 2.12.6.
|
|
|
|
* Wed Apr 27 2022 Maxwell G <gotmax@e.email> - 2.12.5-1
|
|
- Update to 2.12.5. Fixes rhbz#2078558.
|
|
|
|
* Sat Apr 02 2022 Maxwell G <gotmax@e.email> - 2.12.4-1
|
|
- Update to 2.12.4. Fixes rhbz#2069384.
|
|
|
|
* Thu Mar 10 2022 Maxwell G <gotmax@e.email> - 2.12.3-2
|
|
- Add patch to fix failing tests and FTBFS with Pytest 7.
|
|
- Resolves: rhbz#2059937
|
|
|
|
* Tue Mar 01 2022 Kevin Fenzi <kevin@scrye.com> - 2.12.3-1
|
|
- Update to 2.12.3. Fixes rhbz#2059284
|
|
|
|
* Mon Jan 31 2022 Kevin Fenzi <kevin@scrye.com> - 2.12.2-1
|
|
- Update to 2.12.2. Fixes rhbz#2048795
|
|
|
|
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.12.1-4
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
|
|
* Thu Jan 13 2022 Neal Gompa <ngompa@fedoraproject.org> - 2.12.1-3
|
|
- Split out packaging macros and generators to ansible-packaging
|
|
|
|
* Wed Dec 08 2021 Kevin Fenzi <kevin@scrye.com> - 2.12.1-2
|
|
- Re-enable tests
|
|
|
|
* Tue Dec 07 2021 Kevin Fenzi <kevin@scrye.com> - 2.12.1-1
|
|
- Update to 2.12.1. Fixes rhbz#2029598
|
|
|
|
* Mon Nov 08 2021 Kevin Fenzi <kevin@scrye.com> - 2.12.0-1
|
|
- Update to 2.12.0. Fixes rhbz#2022533
|
|
|
|
* Thu Oct 14 2021 Maxwell G <gotmax@e.email> - 2.11.6-1
|
|
- Update to 2.11.6.
|
|
|
|
* Tue Sep 14 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.5-1
|
|
- Update to 2.11.5. Fixes rhbz#2002393
|
|
|
|
* Thu Aug 19 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.4-1
|
|
- Update to 2.11.4. Fixes rhbz#1994107
|
|
|
|
* Sun Jul 25 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.3-1
|
|
- Update to 2.11.3. Fixes rhbz#1983836
|
|
|
|
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.2-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
|
|
* Tue Jun 22 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.2-1
|
|
- Update to 2.11.2. Fixed rhbz#1974593
|
|
|
|
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.11.1-2
|
|
- Rebuilt for Python 3.10
|
|
|
|
* Mon May 24 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.1-1
|
|
- Update to 2.11.1. Fixes rhbz#1964172
|
|
|
|
* Tue Apr 27 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.0-1
|
|
- Update to 2.11.0 final.
|
|
|
|
* Sat Apr 24 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.0-0.3.rc2
|
|
- Update to 2.11.0rc2.
|
|
|
|
* Sat Apr 03 2021 Kevin Fenzi <kevin@scrye.com> - 2.11.0-0.1.b4
|
|
- Rename to ansible-base, update to b4 beta version.
|
|
|
|
* Sat Feb 20 2021 Kevin Fenzi <kevin@scrye.com> - 2.10.6-1
|
|
- Update to 2.10.6.
|
|
- Fixes CVE-2021-20228
|
|
|
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.10.5-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
|
|
* Sun Jan 24 2021 Kevin Fenzi <kevin@scrye.com> - 2.10.5-1
|
|
- Update to 2.10.5.
|
|
|
|
* Sat Dec 19 2020 Kevin Fenzi <kevin@scrye.com> - 2.10.4-1
|
|
- Update to 2.10.4
|
|
|
|
* Sat Nov 07 2020 Kevin Fenzi <kevin@scrye.com> - 2.10.3-2
|
|
- Various review fixes
|
|
|
|
* Tue Nov 03 2020 Kevin Fenzi <kevin@scrye.com> - 2.10.3-1
|
|
- Update to 2.10.3
|
|
|
|
* Sat Oct 10 2020 Kevin Fenzi <kevin@scrye.com> - 2.10.2-1
|
|
- Update to 2.10.2
|
|
|
|
* Sat Sep 26 2020 Kevin Fenzi <kevin@scrye.com> - 2.10.1-1
|
|
- Initial version for review.
|
|
|