ansible/ansible.spec
Michael Ströder 7fb97c17d4 Accepting request 528397 from home:lrupp:branches:systemsmanagement
- update to 2.4.0.0 (final)
  Major Changes
  + Support for Python-2.4 and Python-2.5 on the managed system's side 
    was dropped. If you need to manage a system that ships with Python-2.4 
    or Python-2.5, you'll need to install Python-2.6 or better on the 
    managed system or run Ansible-2.3 until you can upgrade the system.
  + New import/include keywords to replace the old bare include directives. 
    The use of static: {yes|no} on such includes is now deprecated.
[...]
  + Windows become_method: runas now works across all authtypes and 
    will auto-elevate under UAC if WinRM user has "Act as part of the 
    operating system" privilege
  - please refer to /usr/share/doc/packages/ansible/CHANGELOG.md for 
    further changes
- added ansible-inventory and ansible-config binaries and manpages
- package contrib and examples directories in docdir
- package all *md files as documentation for now
- recommend the following new packages for (open)SUSE:
  + python-httplib2
  + python-keyczar
  + python-six
- enable/fix build for RHEL and Fedora by redefining __python2 and 
  adding/enhancing the needed (build)requires if needed

old: systemsmanagement/ansible
new: home:lrupp:branches:systemsmanagement/ansible rev None
Index: ansible.changes
===================================================================
--- ansible.changes (revision 89)
+++ ansible.changes (revision 7)
@@ -1,4 +1,74 @@
 -------------------------------------------------------------------
+Sat Sep 23 09:05:01 UTC 2017 - lars@linux-schulserver.de
+
+- update to 2.4.0.0 (final)
+  Major Changes
+  + Support for Python-2.4 and Python-2.5 on the managed system's side 
+    was dropped. If you need to manage a system that ships with Python-2.4 
+    or Python-2.5, you'll need to install Python-2.6 or better on the 
+    managed system or run Ansible-2.3 until you can upgrade the system.
+  + New import/include keywords to replace the old bare include directives. 
+    The use of static: {yes|no} on such includes is now deprecated.
+  ++ Using import_* (import_playbook, import_tasks, import_role) directives are static.
+  ++ Using include_* (include_tasks, include_role) directives are dynamic. 
+     This is done to avoid collisions and possible security issues as 
+     facts come from the remote targets and they might be compromised.
+  + New order play level keyword that allows the user to change the 
+    order in which Ansible processes hosts when dispatching tasks.
+  + Users can now set group merge priority for groups of the same depth 
+    (parent child relationship), using the new ansible_group_priority variable, 
+    when values are the same or don't exist it will fallback to the previous 
+    sorting by name'.
+  + Inventory has been revamped:
+  ++ Inventory classes have been split to allow for better 
+     management and deduplication
+  ++ Logic that each inventory source duplicated is now common and pushed
+     up to reconciliation
+  ++ VariableManager has been updated for better interaction with inventory
+  ++ Updated CLI with helper method to initialize base objects for plays
+  ++ New inventory plugins for creating inventory
+  ++ Old inventory formats are still supported via plugins
+  ++ Inline host_list is also an inventory plugin, an example alternative 
+     advanced_host_list is also provided (it supports ranges)
+  ++ New configuration option to list enabled plugins and precedence 
+     order: whitelist_inventory in ansible.cfg
+  ++ vars_plugins have been reworked, they are now run from Vars manager 
+     and API has changed (need docs)
+  ++ Loading group_vars/host_vars is now a vars plugin and can be overridden
+  ++ It is now possible to specify mulitple inventory sources in the 
+     command line (-i /etc/hosts1 -i /opt/hosts2)
+  ++ Inventory plugins can use the cache plugin (i.e. virtualbox) and 
+     is affected by meta: refresh_inventory
+  ++ Group variable precedence is now configurable via new 'precedence' 
+     option in ansible.cfg (needs docs)
+  ++ Improved warnings and error messages across the board
+  + Configuration has been changed from a hardcoded listing in the 
+    constants module to dynamically loaded from yaml definitions
+  ++ Also added an ansible-config CLI to allow for listing config options
+     and dumping current config (including origin)
+  ++ TODO: build upon this to add many features detailed in ansible-config
+     proposal https://github.com/ansible/proposals/issues/35
+  + Windows modules now support the use of multiple shared module_utils 
+    files in the form of Powershell modules (.psm1), via 
+      #Requires -Module Ansible.ModuleUtils.Whatever.psm1
+  + Python module argument_spec now supports custom validation logic 
+    by accepting a callable as the type argument.
+  + Windows become_method: runas now works across all authtypes and 
+    will auto-elevate under UAC if WinRM user has "Act as part of the 
+    operating system" privilege
+  - please refer to /usr/share/doc/packages/ansible/CHANGELOG.md for 
+    further changes
+- added ansible-inventory and ansible-config binaries and manpages
+- package contrib and examples directories in docdir
+- package all *md files as documentation for now
+- recommend the following new packages for (open)SUSE:
+  + python-httplib2
+  + python-keyczar
+  + python-six
+- enable/fix build for RHEL and Fedora by redefining __python2 and 
+  adding/enhancing the needed (build)requires if needed
+
+-------------------------------------------------------------------
 Tue Aug  8 17:06:10 UTC 2017 - michael@stroeder.com
 
 - update to 2.3.2.0 (final)
Index: ansible.spec
===================================================================
--- ansible.spec (revision 89)
+++ ansible.spec (revision 7)
@@ -24,7 +24,7 @@
 BuildArch:      noarch
 %endif
 Name:           ansible
-Version:        2.3.2.0
+Version:        2.4.0.0
 Release:        0
 Summary:        Radically simple IT automation
 License:        GPL-3.0
@@ -33,14 +33,19 @@
 Source:         https://releases.ansible.com/ansible/ansible-%{version}.tar.gz
 Source99:       ansible-rpmlintrc
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+
+# SuSE/openSuSE
 %if 0%{?suse_version}
 BuildRequires:  python-devel
 BuildRequires:  python-setuptools
-Requires:       python-setuptools
 Recommends:     python-dnspython
 Recommends:     python-dopy
 Recommends:     python-pywinrm
 Recommends:     sshpass
+Recommends:     python-httplib2
+Recommends:     python-keyczar
+Recommends:     python-six
+Requires:       python-setuptools
 %if 0%{?suse_version} >= 01130
 BuildRequires:  python-Jinja2
 BuildRequires:  python-PyYAML
@@ -52,20 +57,52 @@
 Requires:       python-pycrypto >= 2.6
 %endif
 %endif
-# RHEL == 6
-%if 0%{?rhel} == 6
-Requires:       python-crypto2.6
+
+# RHEL <=5
+%if 0%{?rhel} && 0%{?rhel} <= 5
+BuildRequires:  python26-devel
+BuildRequires:  python26-setuptools
+Requires:       python26-PyYAML
+Requires:       python26-httplib2
+Requires:       python26-jinja2
+Requires:       python26-keyczar
+Requires:       python26-paramiko
+Requires:       python26-setuptools
+Requires:       python26-six
+Requires:       sshpass
 %endif
 # RHEL > 5
 %if 0%{?rhel} && 0%{?rhel} >= 5
 BuildRequires:  python-setuptools
 BuildRequires:  python2-devel
 Requires:       PyYAML
+Requires:       python-jinja2
+Requires:       python-paramiko
+Requires:       python-setuptools
+Requires:       python-six
+Requires:       sshpass
+%endif
+# RHEL == 6
+%if 0%{?rhel} == 6
+Requires:       python-crypto
+%endif
+# RHEL >=7
+%if 0%{?rhel} >= 7
+Requires:       python2-cryptography
+BuildRequires:  perl(Exporter)
+%endif
+%if 0%{?fedora} >= 18
+BuildRequires:  python-devel
+BuildRequires:  python-setuptools
+Requires:       PyYAML
 Requires:       python-httplib2
 Requires:       python-jinja2
 Requires:       python-keyczar
 Requires:       python-paramiko
 Requires:       python-setuptools
+Requires:       python-six
+Requires:       sshpass
+%define         __python %{__python2}
 %endif
 
 %description
@@ -76,12 +113,14 @@
 
 %prep
 %setup -q -n ansible-%{version}
+find . -name .git_keep -delete
+find contrib/ -type f -exec chmod 644 {} \;
 
 %build
-python setup.py build
+%{__python} setup.py build
 
 %install
-python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+%{__python} setup.py install --prefix=%{_prefix} --root=%{buildroot}
 
 mkdir -p %{buildroot}%{_sysconfdir}/ansible/
 cp examples/hosts %{buildroot}%{_sysconfdir}/ansible/
@@ -92,20 +131,24 @@
 
 %files
 %defattr(-,root,root,-)
-%doc COPYING README.md CHANGELOG.md
+%doc COPYING *.md contrib examples
 %{_bindir}/ansible
+%{_bindir}/ansible-config
 %{_bindir}/ansible-connection
 %{_bindir}/ansible-console
-%{_bindir}/ansible-playbook
-%{_bindir}/ansible-pull
 %{_bindir}/ansible-doc
 %{_bindir}/ansible-galaxy
+%{_bindir}/ansible-inventory
+%{_bindir}/ansible-playbook
+%{_bindir}/ansible-pull
 %{_bindir}/ansible-vault
 %{python_sitelib}/*
 %{_mandir}/man1/ansible.1*
+%{_mandir}/man1/ansible-config.1*
 %{_mandir}/man1/ansible-console.1*
 %{_mandir}/man1/ansible-doc.1*
 %{_mandir}/man1/ansible-galaxy.1*
+%{_mandir}/man1/ansible-inventory.1*
 %{_mandir}/man1/ansible-playbook.1*
 %{_mandir}/man1/ansible-pull.1*
 %{_mandir}/man1/ansible-vault.1*
Index: ansible-2.4.0.0.tar.gz
===================================================================
Binary file ansible-2.4.0.0.tar.gz (revision 7) added
Index: ansible-2.3.2.0.tar.gz
===================================================================
Binary file ansible-2.3.2.0.tar.gz (revision 89) deleted

OBS-URL: https://build.opensuse.org/request/show/528397
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement/ansible?expand=0&rev=90
2017-09-23 11:37:02 +00:00

160 lines
4.7 KiB
RPMSpec

#
# spec file for package ansible
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright 2013 by Lars Vogdt
# Copyright 2014 by Boris Manojlovic
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%if 0%{?suse_version} && 0%{?suse_version} <= 1110 || 0%{?rhel} == 5
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch: noarch
%endif
Name: ansible
Version: 2.4.0.0
Release: 0
Summary: Radically simple IT automation
License: GPL-3.0
Group: Development/Languages/Python
Url: http://ansible.com/
Source: https://releases.ansible.com/ansible/ansible-%{version}.tar.gz
Source99: ansible-rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# SuSE/openSuSE
%if 0%{?suse_version}
BuildRequires: python-devel
BuildRequires: python-setuptools
Recommends: python-dnspython
Recommends: python-dopy
Recommends: python-pywinrm
Recommends: sshpass
Recommends: python-httplib2
Recommends: python-keyczar
Recommends: python-six
Requires: python-setuptools
%if 0%{?suse_version} >= 01130
BuildRequires: python-Jinja2
BuildRequires: python-PyYAML
BuildRequires: python-paramiko
BuildRequires: python-pycrypto >= 2.6
Requires: python-Jinja2
Requires: python-PyYAML
Requires: python-paramiko
Requires: python-pycrypto >= 2.6
%endif
%endif
# RHEL <=5
%if 0%{?rhel} && 0%{?rhel} <= 5
BuildRequires: python26-devel
BuildRequires: python26-setuptools
Requires: python26-PyYAML
Requires: python26-httplib2
Requires: python26-jinja2
Requires: python26-keyczar
Requires: python26-paramiko
Requires: python26-setuptools
Requires: python26-six
Requires: sshpass
%endif
# RHEL > 5
%if 0%{?rhel} && 0%{?rhel} >= 5
BuildRequires: python-setuptools
BuildRequires: python2-devel
Requires: PyYAML
Requires: python-jinja2
Requires: python-paramiko
Requires: python-setuptools
Requires: python-six
Requires: sshpass
%endif
# RHEL == 6
%if 0%{?rhel} == 6
Requires: python-crypto
%endif
# RHEL >=7
%if 0%{?rhel} >= 7
Requires: python2-cryptography
BuildRequires: perl(Exporter)
%endif
%if 0%{?fedora} >= 18
BuildRequires: python-devel
BuildRequires: python-setuptools
Requires: PyYAML
Requires: python-httplib2
Requires: python-jinja2
Requires: python-keyczar
Requires: python-paramiko
Requires: python-setuptools
Requires: python-six
Requires: sshpass
%define __python %{__python2}
%endif
%description
Ansible is a radically simple IT automation system. It handles
configuration-management, application deployment, cloud provisioning, ad-hoc
task-execution, and multinode orchestration - including trivializing things
like zero downtime rolling updates with load balancers.
%prep
%setup -q -n ansible-%{version}
find . -name .git_keep -delete
find contrib/ -type f -exec chmod 644 {} \;
%build
%{__python} setup.py build
%install
%{__python} setup.py install --prefix=%{_prefix} --root=%{buildroot}
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
%files
%defattr(-,root,root,-)
%doc COPYING *.md contrib examples
%{_bindir}/ansible
%{_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
%{python_sitelib}/*
%{_mandir}/man1/ansible.1*
%{_mandir}/man1/ansible-config.1*
%{_mandir}/man1/ansible-console.1*
%{_mandir}/man1/ansible-doc.1*
%{_mandir}/man1/ansible-galaxy.1*
%{_mandir}/man1/ansible-inventory.1*
%{_mandir}/man1/ansible-playbook.1*
%{_mandir}/man1/ansible-pull.1*
%{_mandir}/man1/ansible-vault.1*
%dir %{_sysconfdir}/ansible
%config(noreplace) %{_sysconfdir}/ansible/ansible.cfg
%config(noreplace) %{_sysconfdir}/ansible/hosts
%changelog