import ansible-core-2.12.2-2.el8

This commit is contained in:
CentOS Sources 2022-03-29 12:03:55 -04:00 committed by Stepan Oksanichenko
commit 5814b8955b
4 changed files with 265 additions and 0 deletions

4
.ansible-core.metadata Normal file
View File

@ -0,0 +1,4 @@
c482edef8c65b0ebf62eb0eddab3c039ac1e4589 SOURCES/ansible-6c75cf5c83da044d1fd69bc444ce4de50d728d09.tar.gz
d5b06047a8a5937c9433c8e0e88bcf2ccb6a4f84 SOURCES/packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
f20e820c8fa08ff162ace90735a2a89c599f7166 SOURCES/pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
c17fd6000af4ccf32930c41e928fea1e38cb5d0a SOURCES/straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
SOURCES/ansible-6c75cf5c83da044d1fd69bc444ce4de50d728d09.tar.gz
SOURCES/packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
SOURCES/pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
SOURCES/straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz

View File

@ -0,0 +1 @@
/usr/lib/python[0-9]+\.[0-9]+/site-packages/ansible_test/_data/.*

256
SPECS/ansible-core.spec Normal file
View File

@ -0,0 +1,256 @@
# We need this because we are no longer noarch, since our bundled deps might
# conceivably need to compile arch-specific things. But we currently have no
# useful debuginfo stuff.
%global debug_package %{nil}
# Disable shebang munging for specific paths. These files are data files.
# ansible-test munges the shebangs itself.
%global __brp_mangle_shebangs_exclude_from_file %{SOURCE1}
%global commitId 6c75cf5c83da044d1fd69bc444ce4de50d728d09
%global python38_sitelib /usr/lib/python3.8/site-packages/
# NOTE(pabelanger): Don't auto add pwsh as Requires for ansible-test. We do
# not wish to package it.
%global __requires_exclude ^/usr/bin/pwsh$
# RHEL and Fedora add -s to the shebang line. We do *not* use -s -E -S or -I
# with ansible because it has many optional features which users need to
# install libraries on their own to use. For instance, paramiko for the
# network connection plugins or winrm to talk to windows hosts.
# Set this to nil to remove -s
%define py_shbang_opts %{nil}
%define py2_shbang_opts %{nil}
%define py3_shbang_opts %{nil}
%define vendor_path %{buildroot}%{python38_sitelib}/ansible/_vendor/
%define vendor_pip /usr/bin/python3.8 -m pip install --no-deps -v --no-use-pep517 --no-binary :all: -t %{vendor_path}
# These control which bundled dep versions we pin against
%global packaging_version 20.4
%global pyparsing_version 2.4.7
%global straightplugin_version 1.4.1
Name: ansible-core
Summary: SSH-based configuration management, deployment, and task execution system
Version: 2.12.2
Release: 2%{?dist}
ExcludeArch: i686
Group: Development/Libraries
License: GPLv3+
Source0: ansible-%{commitId}.tar.gz
Source1: ansible-test-data-files.txt
# And bundled deps
Source2: packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
Source3: pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
# Deps to build man pages
Source5: straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz
URL: http://ansible.com
# We obsolete old ansible, and any version of ansible-base.
Obsoletes: ansible < 2.10.0
Obsoletes: ansible-base
# ... and provide 'ansible' so that old packages still work without updated
# spec files.
# Provides: ansible
# Bundled provides that are sprinkled throughout the codebase.
Provides: bundled(python-backports-ssl_match_hostname) = 3.7.0.1
Provides: bundled(python-distro) = 1.5.0
Provides: bundled(python-selectors2) = 1.1.1
Provides: bundled(python-six) = 1.13.0
# Things we explicitly bundle via src rpm, and put in ansible._vendor
Provides: bundled(python-packaging) = %{packaging_version}
Provides: bundled(python-pyparsing) = %{pyparsing_version}
Provides: bundled(python-straightplugin) = %{straightplugin_version}
BuildRequires: python38-devel
# BuildRequires: python38-docutils
BuildRequires: python38-jinja2
BuildRequires: python38-pip
BuildRequires: python38-pyyaml
BuildRequires: python38-resolvelib
BuildRequires: python38-rpm-macros
BuildRequires: python38-setuptools
BuildRequires: python38-wheel
Requires: git
Requires: python38
Requires: python38-jinja2
Requires: python38-PyYAML
Requires: python38-cryptography
Requires: python38-resolvelib
Requires: python38-six
Requires: sshpass
%description
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.
%package -n ansible-test
Summary: Tool for testing ansible plugin and module code
Requires: %{name} = %{version}-%{release}
%description -n ansible-test
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 the ansible-test command for testing modules and plugins
developed for ansible.
%prep
%setup -q -T -b 2 -n packaging-ded06cedf6e20680eea0363fac894cb4a09e7831
%setup -q -T -b 3 -n pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605
%setup -q -T -b 5 -n straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed
%setup -q -n ansible-%{commitId}
# Fix all Python shebangs recursively in ansible-test
# -p preserves timestamps
# -n prevents creating ~backup files
# -i specifies the interpreter for the shebang
pathfix3.8.py -pni "%{__python3} %{py3_shbang_opts}" test/lib/ansible_test
%build
/usr/bin/python3.8 setup.py build
%install
/usr/bin/python3.8 setup.py install --root %{buildroot}
# Handle bundled deps:
%{vendor_pip} \
../pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605/ \
../packaging-ded06cedf6e20680eea0363fac894cb4a09e7831/
# 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 %{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}%{_sysconfdir}/ansible/
cp examples/ansible.cfg %{buildroot}%{_sysconfdir}/ansible/
mkdir -p %{buildroot}/%{_mandir}/man1/
## Build man pages
#
#mkdir /tmp/_vendor
#/usr/bin/python3.8 -m pip install ../straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed -t /tmp/_vendor --no-build-isolation
#
## Remove plugins not needed, they bring in more dependencies
#find hacking/build_library/build_ansible/command_plugins ! -name 'generate_man.py' -type f -exec rm -f {} +
#
#PYTHON=python3.8 PYTHONPATH=%{vendor_path}:/tmp/_vendor make docs
#cp -v docs/man/man1/*.1 %{buildroot}/%{_mandir}/man1/
#
#cp -pr docs/docsite/rst .
cp -p lib/ansible_core.egg-info/PKG-INFO .
%files
%defattr(-,root,root)
%{_bindir}/ansible*
%exclude %{_bindir}/ansible-test
%config(noreplace) %{_sysconfdir}/ansible/
%doc README.rst PKG-INFO COPYING
# TODO(pabelanger): uncomment once we move back to tagged releases
# %doc changelogs/CHANGELOG-v2.*.rst
#%doc %{_mandir}/man1/ansible*
%{_datadir}/ansible/
%{python38_sitelib}/ansible*
%exclude %{python38_sitelib}/ansible_test
%files -n ansible-test
%{_bindir}/ansible-test
%{python38_sitelib}/ansible_test
%changelog
* Wed Feb 02 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.2-2
- fix ansible tarball setup
* Wed Feb 02 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.2-1
- ansible-core 2.12.2 release
- add gating and test files
* Wed Jan 19 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.1-2
- Remove Provides on ansible
* Thu Dec 16 2021 Yanis Guenane <yguenane@redhat.com> - 2.12.1-1
- ansible-core 2.12.1-1
* Wed Jul 21 2021 Paul Belanger <pabelanger@redhat.com> - 2.11.3-2
- Add git dependency for ansible-galaxy CLI command.
* Tue Jul 20 2021 Yanis Guenane <yguenane@redhat.com> - 2.11.3-1
- ansible-core 2.11.3-1
* Fri Jul 02 2021 Satoe Imaishi <simaishi@redhat.com> - 2.11.2-2
- Add man pages
* Tue Jun 29 2021 Paul Belanger <pabelanger@redhat.com> - 2.11.2-1
- ansible-core 2.11.2 released.
- Drop bundled version of resolvelib in favor of
python38-resolvelib.
* Wed Mar 31 2021 Rick Elrod <relrod@redhat.com> - 2.11.0b4-1
- ansible-core 2.11.0 beta 4
* Thu Mar 18 2021 Rick Elrod <relrod@redhat.com> - 2.11.0b2-3
- Try adding a Provides for old ansible.
* Thu Mar 18 2021 Rick Elrod <relrod@redhat.com> - 2.11.0b2-2
- Try Obsoletes instead of Conflicts.
* Thu Mar 18 2021 Rick Elrod <relrod@redhat.com> - 2.11.0b2-1
- ansible-core 2.11.0 beta 2
- Conflict with old ansible and ansible-base.
* Thu Mar 11 2021 Rick Elrod <relrod@redhat.com> - 2.11.0b1-1
- ansible-core 2.11.0 beta 1
* Mon Nov 30 2020 Rick Elrod <relrod@redhat.com> - 2.11.0-1
- ansible-core, beta
* Wed Jun 10 2020 Rick Elrod <relrod@redhat.com> - 2.10.0-1
- ansible-base, beta