Accepting request 1008798 from systemsmanagement:ansible

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1008798
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ansible?expand=0&rev=85
This commit is contained in:
Fabian Vogt 2022-10-10 16:46:54 +00:00 committed by Git OBS Bridge
commit cc45e9b246
6 changed files with 91 additions and 410 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:479159e50b3bd90920d06bc59410c3a51d3f9be9b4e1029e11d1e4a2d0705736
size 14844836

View File

@ -1 +0,0 @@
479159e50b3bd90920d06bc59410c3a51d3f9be9b4e1029e11d1e4a2d0705736 ansible-2.9.27.tar.gz

3
ansible-6.4.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:80b422f73e2feeddc456581bf7de22e14ccd3e7fdb0d5060176e21c350ed8320
size 35884480

View File

@ -1,10 +1,4 @@
# Modules are scripts by definition but are executed from ansible not directly # Collections are scripts by definition but are executed from ansible not directly
addFilter("non-executable-script.*/usr/lib/python.*/site-packages/ansible/modules/.*"); addFilter("non-executable-script.*/usr/lib/python.*/site-packages/ansible_collections/.*");
# same as utils and runner script # ignore hidden files inside collections
addFilter("non-executable-script.*/usr/lib/python.*/site-packages/ansible/(cli|galaxy|module_utils|plugins/action|runner|utils)/.*.py"); addFilter("hidden-file-or-dir /usr/lib/python.*/site-packages/ansible_collections/");
# no really a lib - ignore rpmlint for this package explicitely
addFilter("explicit-lib-dependency python3-passlib");
# # standard files, needed for python
# addFilter("files-duplicate /usr/lib/python.*/site-packages/ansible/.*");
# # same for the ansible-test sub-package
# addFilter("files-duplicate /usr/lib/python.*/site-packages/ansible_test/.*");

View File

@ -1,3 +1,52 @@
-------------------------------------------------------------------
Sun Sep 25 11:48:07 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 6.4.0:
Ansible 6.4.0 will include ansible-core 2.13.4 as well as a curated set of
Ansible collections to provide a vast number of modules and plugins.
* The changelog for ansible-core 2.13 installed by this release of
ansible is available here:
https://github.com/ansible/ansible/blob/stable-2.13/changelogs/CHANGELOG-v2.13.rst
* Collections which have opted into being a part of the Ansible-6
unified changelog will have an entry on this page:
https://github.com/ansible-community/ansible-build-data/blob/main/6/CHANGELOG-v6.rst
-------------------------------------------------------------------
Wed Sep 7 13:47:45 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 6.3.0:
* Ansible 6.3.0 will include ansible-core 2.13.3 as well as a curated set of
Ansible collections to provide a vast number of modules and plugins.
* The changelog for ansible-core 2.13 installed by this release of
ansible is available here:
https://github.com/ansible/ansible/blob/stable-2.13/changelogs/CHANGELOG-v2.13.rst
* Collections which have opted into being a part of the Ansible-6
unified changelog will have an entry on this page:
https://github.com/ansible-community/ansible-build-data/blob/main/6/CHANGELOG-v6.rst
-------------------------------------------------------------------
Wed Sep 7 13:38:07 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 6.2.0:
* Ansible 6.2.0 will include ansible-core 2.13.2 as well as a curated set of
Ansible collections to provide a vast number of modules and plugins.
* The changelog for ansible-core 2.13 installed by this release of
ansible is available here:
https://github.com/ansible/ansible/blob/stable-2.13/changelogs/CHANGELOG-v2.13.rst
* Collections which have opted into being a part of the Ansible-6
unified changelog will have an entry on this page:
https://github.com/ansible-community/ansible-build-data/blob/main/6/CHANGELOG-v6.rst
-------------------------------------------------------------------
Wed Jul 20 07:27:34 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- BREAKING CHANGE:
use this package for the ansible release made by the ansible
community. This requires ansible-core, which will contain the
actual ansible binar
- rework ansible-rpmlintrc file to only use the filters we need
- most of the errors are handled inside the %build section
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Dec 14 10:32:03 UTC 2021 - Pablo Suárez Hernández <pablo.suarezhernandez@suse.com> Tue Dec 14 10:32:03 UTC 2021 - Pablo Suárez Hernández <pablo.suarezhernandez@suse.com>
@ -6,13 +55,7 @@ Tue Dec 14 10:32:03 UTC 2021 - Pablo Suárez Hernández <pablo.suarezhernandez@s
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Oct 11 19:33:37 UTC 2021 - Michael Ströder <michael@stroeder.com> Mon Oct 11 19:33:37 UTC 2021 - Michael Ströder <michael@stroeder.com>
- update to 2.9.27 (jsc#SLE-23631) (jsc#SLE-24133) - update to 2.9.27
* bsc#1187725 CVE-2021-3620 ansible-connection module discloses sensitive
info in traceback error message (in 2.9.27)
* bsc#1188061 CVE-2021-3583 Template Injection through yaml multi-line
strings with ansible facts used in template. (in 2.9.23)
* bsc#1176460 gh#ansible/ansible#72094 ansible module nmcli is broken in
ansible 2.9.13 (in 2.9.15)
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Sep 14 14:03:52 UTC 2021 - Michael Ströder <michael@stroeder.com> Tue Sep 14 14:03:52 UTC 2021 - Michael Ströder <michael@stroeder.com>
@ -52,7 +95,6 @@ Tue Jun 22 14:35:05 UTC 2021 - Michael Ströder <michael@stroeder.com>
Wed Jun 2 05:58:58 UTC 2021 - Stefan Seyfried <seife+obs@b1-systems.com> Wed Jun 2 05:58:58 UTC 2021 - Stefan Seyfried <seife+obs@b1-systems.com>
- update to 2.9.22 - update to 2.9.22
* CVE-2021-3447 (bsc#1183684) multiple modules expose secured values
------------------------------------------------------------------- -------------------------------------------------------------------
Tue May 4 05:24:10 UTC 2021 - Michael Ströder <michael@stroeder.com> Tue May 4 05:24:10 UTC 2021 - Michael Ströder <michael@stroeder.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package ansible # spec file for package ansible
# #
# Copyright (c) 2020 SUSE LLC # Copyright (c) 2022 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -15,231 +15,27 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Please submit bugfixes or comments via https://bugs.opensuse.org/
# #
%global __brp_mangle_shebangs_exclude_from %{_prefix}/lib/python[0-9]+\.[0-9]+/site-packages/ansible_test/_data/.*
%if 0%{?rhel} || 0%{?fedora}
# 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}
%endif
# While Windows Powershell meanwhile exists, it is not in Factory/Leap for now.
# So let's exclude /usr/bin/pwsh from the dependencies
%define __requires_exclude ^%{_bindir}/pwsh$
# Python 2 or Python 3?
%if 0%{?suse_version} >= 1315
%bcond_without python3
%else
%bcond_with python3
%endif
# Disable/Enable tests only on newer distributions, which have the
# needed dependencies.
%define with_tests 0
#
# Fedora
#
%if 0%{?fedora} >= 18
%global with_python2 0
%global with_python3 1
%define __python python2
BuildRequires: python-devel
BuildRequires: python-setuptools
BuildRequires: python-straight-plugin
Requires: PyYAML
Requires: python-httplib2
Requires: python-jinja2
Requires: python-keyczar
Requires: python-paramiko
Requires: python-setuptools
Requires: python-six
Requires: sshpass
# Bundled provides
Provides: bundled(python-backports-ssl_match_hostname) = 3.7.0.1
Provides: bundled(python-distro) = 1.4.0
Provides: bundled(python-ipaddress) = 1.0.22
Provides: bundled(python-selectors2) = 1.1.1
Provides: bundled(python-six) = 1.12.0
%endif
#
# RHEL
#
%if 0%{?rhel}
%if 0%{?rhel} >= 8
%global with_python2 0
%global with_python3 1
BuildRequires: %{py3_dist coverage}
BuildRequires: git-core
BuildRequires: python3-PyYAML
BuildRequires: python3-cryptography
BuildRequires: python3-devel
BuildRequires: python3-docutils
BuildRequires: python3-jinja2
BuildRequires: python3-mock
BuildRequires: python3-pytest
BuildRequires: python3-pytest-mock
BuildRequires: python3-pytest-xdist
BuildRequires: python3-requests
BuildRequires: python3-setuptools
BuildRequires: python3-six
BuildRequires: python3-systemd
Requires: python3-PyYAML
Requires: python3-cryptography
Requires: python3-jinja2
Requires: python3-six
Requires: sshpass
%else
%if 0%{?rhel} >= 7
%global with_python2 1
%global with_python3 0
BuildRequires: PyYAML
BuildRequires: git
BuildRequires: pytest
BuildRequires: python-boto3
BuildRequires: python-coverage
BuildRequires: python-jinja2
BuildRequires: python-jmespath
BuildRequires: python-mock
BuildRequires: python-paramiko
BuildRequires: python-passlib
BuildRequires: python-requests
BuildRequires: python-setuptools
BuildRequires: python-six
BuildRequires: python-sphinx
BuildRequires: python2-cryptography
BuildRequires: python2-devel
Requires: PyYAML
Requires: python-jinja2
Requires: python-paramiko
Requires: python-six
Requires: python2-cryptography
Requires: sshpass
# end of Requires for RHEL 7
%endif
# end of Requires for RHEL 8
%endif
# Bundled provides
Provides: bundled(python-backports-ssl_match_hostname) = 3.7.0.1
Provides: bundled(python-distro) = 1.4.0
Provides: bundled(python-ipaddress) = 1.0.22
Provides: bundled(python-selectors2) = 1.1.1
Provides: bundled(python-six) = 1.12.0
%endif
%if %{with python3}
%define __python python3
%define python python3
%else
%define python python
%endif
#
# SUSE/openSUSE
#
%if 0%{?suse_version}
# Enable WinRM (Run tasks over Microsoft's WinRM)
# by setting the following definition to 1
%define with_winrm 0
# Enable Gitlab support (runner, project, hook, deploy)
# by setting this definition to 1
%define with_gitlab 0
# openSUSE has currently not good enough python3 sphinx (sub-)packages
# disable building extensive docs per default:
%define with_docs 0
# Distribution version dependend stuff
%if 0%{?suse_version} >= 1500
# Enable VMWare support for newer openSUSE distributions here
# otherwise disable this by setting the value below to 0
%define with_vmware 1
# Enable Amazon EC2 support (modules) dependencies
# by setting the following definition to 1
%define with_amazon 1
%else
%define with_amazon 0
%define with_vmware 0
%define with_tests 0
%endif
%if ! %{with python3}
Requires: %{python}-xml
%endif
%if 0%{?with_amazon}
BuildRequires: %{python}-boto3
BuildRequires: %{python}-botocore
%endif
%if 0%{?with_gitlab}
BuildRequires: %{python}-gitlab
BuildRequires: %{python}-httmock
Recommends: %{python}-gitlab
Recommends: %{python}-httmock
%endif
%if 0%{?with_tests}
BuildRequires: %{python}-pbkdf2
BuildRequires: %{python}-pytest
BuildRequires: %{python}-python-memcached
BuildRequires: %{python}-redis
BuildRequires: %{python}-requests
%endif
%if 0%{?with_vmware}
BuildRequires: %{python}-pyvmomi
Recommends: %{python}-pyvmomi
%endif
%if 0%{?with_winrm}
BuildRequires: %{python}-pexpect
BuildRequires: %{python}-pywinrm
Recommends: %{python}-pywinrm
%endif
BuildRequires: %{python}-rpm-macros
BuildRequires: %{python}-Jinja2
BuildRequires: %{python}-PyYAML
BuildRequires: %{python}-coverage
BuildRequires: %{python}-devel
BuildRequires: %{python}-jmespath
BuildRequires: %{python}-paramiko
BuildRequires: %{python}-cryptography
BuildRequires: %{python}-setuptools > 0.6
BuildRequires: %{python}-straight-plugin
BuildRequires: fdupes
Requires: %{python}-Jinja2
Requires: %{python}-PyYAML
Requires: %{python}-jmespath
Requires: %{python}-paramiko
Requires: %{python}-passlib
Requires: %{python}-cryptography
Requires: %{python}-setuptools > 0.6
Recommends: %{python}-boto3
Recommends: %{python}-botocore
Recommends: %{python}-dnspython
Recommends: %{python}-dopy
Recommends: %{python}-httplib2
Recommends: %{python}-keyczar
Recommends: %{python}-pbkdf2
Recommends: %{python}-python-memcached
Recommends: %{python}-pywinrm
Recommends: %{python}-redis
Recommends: %{python}-requests
Recommends: %{python}-selinux
Recommends: %{python}-six
Recommends: sshpass
%endif
Name: ansible Name: ansible
Version: 2.9.27 Version: 6.4.0
Release: 0 Release: 0
Summary: SSH-based configuration management, deployment, and task execution system Summary: Radically simple IT automation
License: GPL-3.0-or-later License: GPL-3.0+
Group: Development/Languages/Python
URL: https://ansible.com/ URL: https://ansible.com/
Source: https://releases.ansible.com/ansible/ansible-%{version}.tar.gz Source: https://files.pythonhosted.org/packages/source/a/ansible/ansible-%{version}.tar.gz
Source1: https://releases.ansible.com/ansible/ansible-%{version}.tar.gz.sha
Source99: ansible-rpmlintrc Source99: ansible-rpmlintrc
BuildRequires: python3-rpm-macros
BuildRequires: python3-setuptools
BuildRequires: fdupes
# required to fix the azure collection line endings
BuildRequires: dos2unix
# SECTION test requirements
BuildRequires: ansible-core >= 2.13.3
# /SECTION
Requires: ansible-core >= 2.13.3
BuildArch: noarch BuildArch: noarch
# extented documentation
%if 0%{?with_docs}
BuildRequires: asciidoc
BuildRequires: python-sphinx
BuildRequires: python-sphinx-notfound-page
BuildRequires: python-sphinx-theme-alabaster
%endif
%description %description
Ansible is a radically simple model-driven configuration management, multi-node Ansible is a radically simple model-driven configuration management, multi-node
@ -248,191 +44,41 @@ 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 modules can be written in any language and are transferred to managed machines
automatically. automatically.
%package doc
Summary: Documentation for Ansible
Recommends: %{name} = %{version}
%description doc
This package contains extensive documentation for ansible.
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 test
Summary: Tool for testing ansible plugin and module code
Requires: %{name} = %{version}
#
# RHEL
#
%if 0%{?rhel} >= 7
BuildRequires: python-virtualenv
Requires: python-virtualenv
%endif
#
# SUSE/openSUSE
#
%if 0%{?suse_version} >= 1500
BuildRequires: %{python}-virtualenv
Requires: %{python}-virtualenv
%endif
%description test
This package installs the ansible-test command for testing modules and plugins
developed for ansible.
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.
%prep %prep
%setup -q -n ansible-%{version} %setup -q -n ansible-%{version}
for file in .git_keep .travis.yml ; do for file in .git_keep .travis.yml ; do
find . -name "$file" -delete find . -name "$file" -delete
done done
find contrib/ -type f -exec chmod 644 {} +
# fix for wrong shebang:
sed -i 's|/Users/kbreit/Documents/Programming/ansible_collections/cisco/meraki/venv/bin/python|%{_bindir}/python3|g' ansible_collections/cisco/meraki/scripts/sublime-build/build.py.generic
# Replace all #!/usr/bin/env lines to use #!/usr/bin/$1 directly. # Replace all #!/usr/bin/env lines to use #!/usr/bin/$1 directly.
find ./ -type f -exec \ find ./ -type f -exec \
sed -i '1s|^#!%{_bindir}/env |#!%{_bindir}/|' {} \; sed -i '1s|^#!%{_bindir}/env |#!%{_bindir}/|' {} \;
# Run test fragments under Python 3, if that is our configured Python. find ./ -type f -exec \
%if %{with python3} sed -i '1s|python$|python3|' {} \;
find test -name '*.py' -exec \
sed -i '1s|^\(#!%{_bindir}/python\)$|\13|' {} \; # remove .keep and .gitignore files
%endif find ./ansible_collections/ -iname .gitignore -delete
find ./ansible_collections/ -iname .keep -delete
# azure collection has wrong file endings
find ./ansible_collections/azure -type f -exec dos2unix {} \;
%build %build
%{python} setup.py build python3 setup.py build
%if 0%{?with_docs}
%make_build PYTHON=%{_bindir}/%{python} SPHINXBUILD=sphinx-build webdocs
%else
%make_build PYTHON=%{_bindir}/%{python} -Cdocs/docsite config cli keywords modules plugins testing
%endif
%install %install
%{python} setup.py install --prefix=%{_prefix} --root=%{buildroot} python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
%fdupes %{buildroot}/%{python_sitelib}/ansible_collections/
mkdir -p %{buildroot}%{_sysconfdir}/ansible/
cp examples/hosts %{buildroot}%{_sysconfdir}/ansible/
cp examples/ansible.cfg %{buildroot}%{_sysconfdir}/ansible/
mkdir -p %{buildroot}/%{_mandir}/man1/
cp -v docs/man/man1/*.1 %{buildroot}/%{_mandir}/man1/
mkdir -p %{buildroot}/%{_datadir}/ansible
%if 0%{?suse_version} >= 01130
%fdupes %{buildroot}/%{python_sitelib}/ansible/
%endif
# 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 '%{_datadir}/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/
# fix for https://github.com/ansible/ansible/pull/24381
# resp. https://bugzilla.opensuse.org/show_bug.cgi?id=1137479
mkdir -p %{buildroot}%{python3_sitelib}/ansible/galaxy/data/default/role/{files,templates}
cp examples/hosts %{buildroot}%{_sysconfdir}/ansible/
cp examples/ansible.cfg %{buildroot}%{_sysconfdir}/ansible/
mkdir -p %{buildroot}/%{_mandir}/man1/
cp -v docs/man/man1/*.1 %{buildroot}/%{_mandir}/man1/
cp -pr docs/docsite/rst .
%if 0%{?with_docs}
cp -pr docs/docsite/_build/html %{_builddir}/%{name}-%{version}/html
%endif
%if 0%{?with_tests} && 0%{with python3}
%check
python3 bin/ansible-test units -v --python %{python3_version}
%endif
%files %files
%doc CHANGELOG-v6.rst README.rst
%license COPYING %license COPYING
%{_bindir}/ansible %{_bindir}/ansible-community
%{_bindir}/ansible-config
%{_bindir}/ansible-connection
%{_bindir}/ansible-console
%{_bindir}/ansible-doc
%{_bindir}/ansible-galaxy
%{_bindir}/ansible-inventory
%{_bindir}/ansible-playbook
%{_bindir}/ansible-pull
%{_bindir}/ansible-vault
%if %{with python3}
%{python3_sitelib}/*
%exclude %{python3_sitelib}/ansible_test
%else
%{python_sitelib}/* %{python_sitelib}/*
%exclude %{python_sitelib}/ansible_test
%endif
%{_mandir}/man1/ansible.1%{?ext_man}*
%{_mandir}/man1/ansible-config.1%{?ext_man}*
%{_mandir}/man1/ansible-console.1%{?ext_man}*
%{_mandir}/man1/ansible-doc.1%{?ext_man}*
%{_mandir}/man1/ansible-galaxy.1%{?ext_man}*
%{_mandir}/man1/ansible-inventory.1%{?ext_man}*
%{_mandir}/man1/ansible-playbook.1%{?ext_man}*
%{_mandir}/man1/ansible-pull.1%{?ext_man}*
%{_mandir}/man1/ansible-vault.1%{?ext_man}*
%dir %{_sysconfdir}/ansible
%config(noreplace) %{_sysconfdir}/ansible/ansible.cfg
%config(noreplace) %{_sysconfdir}/ansible/hosts
%{_datadir}/ansible/
%files doc
%doc changelogs contrib examples rst
%if 0%{?with_docs}
%doc html
%endif
%files test
%{_bindir}/ansible-test
%if %{with python3}
%{python3_sitelib}/ansible_test
%attr(0755,root,root) %{python3_sitelib}/ansible_test/_data/injector/*.sh
%attr(0755,root,root) %{python3_sitelib}/ansible_test/_data/setup/*.sh
%else
%{python2_sitelib}/ansible_test
%attr(0755,root,root) %{python2_sitelib}/ansible_test/_data/injector/*.sh
%attr(0755,root,root) %{python2_sitelib}/ansible_test/_data/setup/*.sh
%endif
%changelog %changelog