Initial import
Resolves: rhbz#1990948
This commit is contained in:
parent
aee98cc71c
commit
46c3830dc7
4
.gitignore
vendored
4
.gitignore
vendored
@ -0,0 +1,4 @@
|
||||
/ansible-ae9001ee1819f06d88022b5ea7146d7383b7d061.tar.gz
|
||||
/packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
|
||||
/pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
|
||||
/straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz
|
239
ansible-core.spec
Normal file
239
ansible-core.spec
Normal file
@ -0,0 +1,239 @@
|
||||
# Is this a nightly build?
|
||||
%global nightly 0
|
||||
|
||||
# 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}
|
||||
|
||||
%if 0%{?nightly}
|
||||
%global snap %(date +'%Y%m%d')git
|
||||
%global nightly_pretag .dev0
|
||||
%endif
|
||||
|
||||
# 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 ae9001ee1819f06d88022b5ea7146d7383b7d061
|
||||
%global python39_sitelib /usr/lib/python3.9/site-packages/
|
||||
|
||||
# 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}%{python39_sitelib}/ansible/_vendor/
|
||||
%define vendor_pip /usr/bin/python3.9 -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
|
||||
|
||||
|
||||
Name: ansible-core
|
||||
Summary: SSH-based configuration management, deployment, and task execution system
|
||||
Version: 2.11.2
|
||||
%if 0%{?nightly}
|
||||
Release: 0.1.%{snap}%{?dist}
|
||||
%else
|
||||
Release: 3%{?dist}
|
||||
%endif
|
||||
|
||||
Group: Development/Libraries
|
||||
License: GPLv3+
|
||||
%if 0%{?nightly}
|
||||
Source0: %{name}-%{version}%{nightly_pretag}.tar.gz
|
||||
%else
|
||||
Source0: ansible-ae9001ee1819f06d88022b5ea7146d7383b7d061.tar.gz
|
||||
%endif
|
||||
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}
|
||||
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-docutils
|
||||
BuildRequires: python3-jinja2
|
||||
BuildRequires: python3-pip
|
||||
BuildRequires: python3-pyyaml
|
||||
BuildRequires: python3-resolvelib
|
||||
BuildRequires: python3-rpm-macros
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-wheel
|
||||
BuildRequires: make
|
||||
|
||||
Requires: python3
|
||||
Requires: python3-jinja2
|
||||
Requires: python3-PyYAML
|
||||
Requires: python3-cryptography
|
||||
Requires: python3-resolvelib
|
||||
Requires: python3-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}
|
||||
|
||||
%build
|
||||
/usr/bin/python3.9 setup.py build
|
||||
|
||||
%install
|
||||
/usr/bin/python3.9 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.9 -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.9 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
|
||||
%doc changelogs/CHANGELOG-v2.*.rst
|
||||
%doc %{_mandir}/man1/ansible*
|
||||
%{_datadir}/ansible/
|
||||
%{python39_sitelib}/ansible*
|
||||
%exclude %{python39_sitelib}/ansible_test
|
||||
|
||||
%files -n ansible-test
|
||||
%{_bindir}/ansible-test
|
||||
%{python39_sitelib}/ansible_test
|
||||
|
||||
%changelog
|
||||
* 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
|
1
ansible-test-data-files.txt
Normal file
1
ansible-test-data-files.txt
Normal file
@ -0,0 +1 @@
|
||||
/usr/lib/python[0-9]+\.[0-9]+/site-packages/ansible_test/_data/.*
|
4
sources
Normal file
4
sources
Normal file
@ -0,0 +1,4 @@
|
||||
SHA512 (ansible-ae9001ee1819f06d88022b5ea7146d7383b7d061.tar.gz) = f13cb67cc8601aa05c070720eca1612bd7403818f0b7a476c05bdf26b68f650029efacbe3e15acc4824b1fce383c2e8a6112a5f4ccf0593dd4d254235a8f1af9
|
||||
SHA512 (packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz) = ceacb927289775fe901b2169053e3265db1531c8c22dc42329d28c24b64d021a791cf523044420e3a821fbbc251039796f951b21745a4870a8ec53e2eeac76a7
|
||||
SHA512 (pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz) = ad95ec904f35dce422e31c6fc5922ca5970757229463e9fc4d1cbb0e798b6b7c1c6f44dcb8aaccec47f106506e78e7482ffc40b21f2122ba9d83e4e27bd57118
|
||||
SHA512 (straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz) = 7a3ba87f0de4cd7c7c8dda564d737b1656f8f3a9fa33895a252dec49ed53cbaf7e140d7fa65a68efa959487f4477b079cf9ae8cd251df3b8977053cde8aab7a5
|
Loading…
Reference in New Issue
Block a user