From 1ac1a0f71bced422377f756b7cede4904e330040 Mon Sep 17 00:00:00 2001 From: James Antill Date: Thu, 26 May 2022 00:51:36 -0400 Subject: [PATCH] Auto sync2gitlab import of ansible-core-2.12.3-1.el8.src.rpm --- .gitignore | 4 + EMPTY | 1 - ansible-core.spec | 262 ++++++++++++++++++++++++++++++++++++ ansible-test-data-files.txt | 1 + sources | 4 + 5 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 .gitignore delete mode 100644 EMPTY create mode 100644 ansible-core.spec create mode 100644 ansible-test-data-files.txt create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9e6ec71 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/ansible-0ee3815c555ce16e1749a26ce5478eeea72b91a8.tar.gz +/packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz +/pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz +/straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz diff --git a/EMPTY b/EMPTY deleted file mode 100644 index 0519ecb..0000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ansible-core.spec b/ansible-core.spec new file mode 100644 index 0000000..5f44dc1 --- /dev/null +++ b/ansible-core.spec @@ -0,0 +1,262 @@ +# 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 0ee3815c555ce16e1749a26ce5478eeea72b91a8 +%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.3 +Release: 1%{?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 conflict old ansible, and any version of ansible-base. +Conflicts: ansible < 2.10.0 +Conflicts: 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 +%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 +* Mon Mar 14 2022 Dimitri Savineau - 2.12.3-1 +- ansible-core 2.12.3 release +- re-enable changelog and manpages + +* Mon Mar 07 2022 Dimitri Savineau - 2.12.2-3 +- replace Obsolete to Conflicts + +* Wed Feb 02 2022 Dimitri Savineau - 2.12.2-2 +- fix ansible tarball setup + +* Wed Feb 02 2022 Dimitri Savineau - 2.12.2-1 +- ansible-core 2.12.2 release +- add gating and test files + +* Wed Jan 19 2022 Dimitri Savineau - 2.12.1-2 +- Remove Provides on ansible + +* Thu Dec 16 2021 Yanis Guenane - 2.12.1-1 +- ansible-core 2.12.1-1 + +* Wed Jul 21 2021 Paul Belanger - 2.11.3-2 +- Add git dependency for ansible-galaxy CLI command. + +* Tue Jul 20 2021 Yanis Guenane - 2.11.3-1 +- ansible-core 2.11.3-1 + +* Fri Jul 02 2021 Satoe Imaishi - 2.11.2-2 +- Add man pages + +* Tue Jun 29 2021 Paul Belanger - 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 - 2.11.0b4-1 +- ansible-core 2.11.0 beta 4 + +* Thu Mar 18 2021 Rick Elrod - 2.11.0b2-3 +- Try adding a Provides for old ansible. + +* Thu Mar 18 2021 Rick Elrod - 2.11.0b2-2 +- Try Obsoletes instead of Conflicts. + +* Thu Mar 18 2021 Rick Elrod - 2.11.0b2-1 +- ansible-core 2.11.0 beta 2 +- Conflict with old ansible and ansible-base. + +* Thu Mar 11 2021 Rick Elrod - 2.11.0b1-1 +- ansible-core 2.11.0 beta 1 + +* Mon Nov 30 2020 Rick Elrod - 2.11.0-1 +- ansible-core, beta + +* Wed Jun 10 2020 Rick Elrod - 2.10.0-1 +- ansible-base, beta diff --git a/ansible-test-data-files.txt b/ansible-test-data-files.txt new file mode 100644 index 0000000..9a7f880 --- /dev/null +++ b/ansible-test-data-files.txt @@ -0,0 +1 @@ +/usr/lib/python[0-9]+\.[0-9]+/site-packages/ansible_test/_data/.* diff --git a/sources b/sources new file mode 100644 index 0000000..bd4174a --- /dev/null +++ b/sources @@ -0,0 +1,4 @@ +SHA512 (ansible-0ee3815c555ce16e1749a26ce5478eeea72b91a8.tar.gz) = fa3a6b659ad0b5191b2cfa5074a99683ab2d37684b78ffab2a096e6f659d93c4836e07d5d9ecff865e4ec7e77ea96dd948a8781004c3ab918f9cb6c49353c110 +SHA512 (packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz) = ceacb927289775fe901b2169053e3265db1531c8c22dc42329d28c24b64d021a791cf523044420e3a821fbbc251039796f951b21745a4870a8ec53e2eeac76a7 +SHA512 (pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz) = ad95ec904f35dce422e31c6fc5922ca5970757229463e9fc4d1cbb0e798b6b7c1c6f44dcb8aaccec47f106506e78e7482ffc40b21f2122ba9d83e4e27bd57118 +SHA512 (straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz) = 7a3ba87f0de4cd7c7c8dda564d737b1656f8f3a9fa33895a252dec49ed53cbaf7e140d7fa65a68efa959487f4477b079cf9ae8cd251df3b8977053cde8aab7a5