]> TLD Linux GIT Repositories - packages/ansible.git/commitdiff
- updated to 9.4.0 master
authorMarcin Krol <hawk@tld-linux.org>
Mon, 1 Apr 2024 14:30:37 +0000 (16:30 +0200)
committerMarcin Krol <hawk@tld-linux.org>
Mon, 1 Apr 2024 14:30:37 +0000 (16:30 +0200)
ansible.spec
poldek.patch [deleted file]
poldek.py [deleted file]
setup.patch [new file with mode: 0644]

index 6e02a664b77f9e64475bcca54afaf74837606cf7..b18e179f8494f8dd3e6295593a93a182f42b382f 100644 (file)
@@ -1,26 +1,18 @@
-Summary:       SSH-based configuration management, deployment, and task execution system
+Summary:       Curated set of Ansible collections included in addition to ansible-core
 Name:          ansible
-Version:       2.9.12
+Version:       9.4.0
 Release:       1
 License:       GPL v3+
 Group:         Development/Libraries
-Source0:       https://releases.ansible.com/ansible/%{name}-%{version}.tar.gz
-# Source0-md5: 3fcbd7f0886c0e46bf024f64dfb8ade4
-Source1:       poldek.py
-Patch0:                poldek.patch
-URL:           http://ansible.github.com/
+Source0:       https://files.pythonhosted.org/packages/source/a/ansible/%{name}-%{version}.tar.gz
+# Source0-md5: 9beb78c4a29a6132915cb00734b6e735
+Patch0:                setup.patch
+URL:           https://ansible.com
 BuildRequires: python3-PyYAML
 BuildRequires: python3-modules
-BuildRequires: python3-straight-plugin
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.710
-Requires:      python3-PyYAML
-Requires:      python3-idna
-Requires:      python3-jinja2
-Requires:      python3-modules
-Requires:      python3-paramiko
-Requires:      python3-setuptools
-Requires:      sshpass
+Requires:      %{name}-core >= 2.6.11
 BuildArch:     noarch
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -35,52 +27,20 @@ are transferred to managed machines automatically.
 %setup -q
 %patch0 -p1
 
+grep -rlZ -0 '#!/usr/bin/env bash' ansible_collections | xargs -0 sed -i -e 's,#!/usr/bin/env bash,#!/bin/bash,g'
+
 %build
 %py3_build
-%{__make} docs
 
 %install
 rm -rf $RPM_BUILD_ROOT
 %py3_install
 
-install -p %{SOURCE1} $RPM_BUILD_ROOT%{py3_sitescriptdir}/ansible/modules/packaging/os
-
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_mandir}}
-sed -re '/^#/ !s,[^#]+$,#&,' examples/hosts > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/hosts
-cp -p examples/ansible.cfg $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
-cp -a docs/man/* $RPM_BUILD_ROOT%{_mandir}
-
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/.gitdir
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc README.rst
-%dir %{_sysconfdir}/%{name}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/hosts
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.cfg
-%attr(755,root,root) %{_bindir}/ansible
-%attr(755,root,root) %{_bindir}/ansible-connection
-%attr(755,root,root) %{_bindir}/ansible-test
-%{_bindir}/ansible-config
-%{_bindir}/ansible-console
-%{_bindir}/ansible-doc
-%{_bindir}/ansible-galaxy
-%{_bindir}/ansible-inventory
-%{_bindir}/ansible-playbook
-%{_bindir}/ansible-pull
-%{_bindir}/ansible-vault
-%{_mandir}/man1/ansible-config.1*
-%{_mandir}/man1/ansible-console.1*
-%{_mandir}/man1/ansible-galaxy.1*
-%{_mandir}/man1/ansible-inventory.1*
-%{_mandir}/man1/ansible-vault.1*
-%{_mandir}/man1/ansible.1*
-%{_mandir}/man1/ansible-doc.1*
-%{_mandir}/man1/ansible-playbook.1*
-%{_mandir}/man1/ansible-pull.1*
-%{py3_sitescriptdir}/ansible
+%attr(755,root,root) %{_bindir}/ansible-community
+%{py3_sitescriptdir}/ansible_collections
 %{py3_sitescriptdir}/ansible-%{version}-*.egg-info
-%{py3_sitescriptdir}/ansible_test
diff --git a/poldek.patch b/poldek.patch
deleted file mode 100644 (file)
index 37d2a10..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ur ansible-2.8.0.orig/lib/ansible/module_utils/facts/system/pkg_mgr.py ansible-2.8.0/lib/ansible/module_utils/facts/system/pkg_mgr.py
---- ansible-2.8.0.orig/lib/ansible/module_utils/facts/system/pkg_mgr.py        2019-06-21 22:50:15.462000000 +0200
-+++ ansible-2.8.0/lib/ansible/module_utils/facts/system/pkg_mgr.py     2019-06-21 22:51:42.117000000 +0200
-@@ -13,7 +13,8 @@
- # A list of dicts.  If there is a platform with more than one
- # package manager, put the preferred one last.  If there is an
- # ansible module, use that as the value for the 'name' key.
--PKG_MGRS = [{'path': '/usr/bin/yum', 'name': 'yum'},
-+PKG_MGRS = [{'path': '/usr/bin/poldek', 'name': 'poldek'},
-+            {'path': '/usr/bin/yum', 'name': 'yum'},
-             {'path': '/usr/bin/dnf', 'name': 'dnf'},
-             {'path': '/usr/bin/apt-get', 'name': 'apt'},
-             {'path': '/usr/bin/zypper', 'name': 'zypper'},
diff --git a/poldek.py b/poldek.py
deleted file mode 100644 (file)
index bc306a6..0000000
--- a/poldek.py
+++ /dev/null
@@ -1,294 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# Copyright: (c) 2019, Marcin Krol <hawk@tld-linux.org>
-# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-from __future__ import absolute_import, division, print_function
-__metaclass__ = type
-
-ANSIBLE_METADATA = {'metadata_version': '1.0',
-                    'status': ['preview'],
-                    'supported_by': 'community'}
-
-DOCUMENTATION = '''
----
-module: poldek
-short_description: Manage packages with I(poldek)
-description:
-    - Manage packages with the I(poldek) package manager, which is used by TLD Linux and PLD Linux
-version_added: "1.0"
-author:
-    - Marcin Krol <hawk@tld-linux.org>
-options:
-    name:
-        description:
-            - Name or list of names of the package(s) or file(s) to install, upgrade, or remove.
-              Can't be used in combination with C(upgrade).
-        aliases: [ package, pkg ]
-
-    state:
-        description:
-            - Desired state of the package.
-        default: present
-        choices: [ absent, latest, present ]
-
-    extra_args:
-        description:
-            - Additional option to pass to poldek when enforcing C(state).
-        default:
-
-    update_cache:
-        description:
-            - Whether or not to refresh the master package lists.
-            - This can be run as part of a package installation or as a separate step.
-        default: no
-        type: bool
-        aliases: [ update-cache ]
-
-    update_cache_extra_args:
-        description:
-            - Additional option to pass to poldek when enforcing C(update_cache).
-        default:
-
-    upgrade:
-        description:
-            - Whether or not to upgrade the whole system.
-              Can't be used in combination with C(name).
-        default: no
-        type: bool
-
-    upgrade_extra_args:
-        description:
-            - Additional option to pass to poldek when enforcing C(upgrade).
-        default:
-'''
-
-RETURN = '''
-packages:
-    description: a list of packages that have been changed
-    returned: when upgrade is set to yes
-    type: list
-    sample: [ package, other-package ]
-'''
-
-EXAMPLES = '''
-- name: Install packages foo and bar
-  poldek:
-    name:
-      - foo
-      - bar
-    state: present
-
-- name: Update package cache and upgrade package foo
-  poldek:
-    name: foo
-    state: latest
-    update_cache: yes
-
-- name: Remove packages foo and bar
-  poldek:
-    name:
-      - foo
-      - bar
-    state: absent
-
-- name: Update package cache only
-  poldek:
-    update_cache: yes
-
-- name: Update package cache and upgrade all packages
-  poldek:
-    upgrade: yes
-    update_cache: yes
-'''
-
-import re
-
-from ansible.module_utils.basic import AnsibleModule
-
-
-def query_package(module, poldek_path, name):
-    """Query the package status in both the local system and the repository. Returns a boolean to indicate if the package is installed, a second
-    boolean to indicate if the package is up-to-date. Note: indexes must be up to date to ensure that poldek knows latest version of package.
-    """
-    lcmd = "%s -q --shcmd='ls -n --installed %s'" % (poldek_path, name)
-    lrc, lstdout, lstderr = module.run_command(lcmd, check_rc=False)
-    rcmd = "%s -q --shcmd='ls -n --installed --upgradeable %s'" % (poldek_path, name)
-    rrc, rstdout, rstderr = module.run_command(rcmd, check_rc=False)
-    if lrc != 0 or rrc != 0:
-        return False, False
-
-    pkg_latest = False
-    if rstdout == "":
-        return True, True
-    else:
-        return True, False
-
-
-def update_package_db(module, poldek_path):
-    if module.params['force']:
-        module.params["update_cache_extra_args"] += " --upa"
-
-    cmd = "%s --noask --up %s" % (poldek_path, module.params["update_cache_extra_args"])
-    rc, stdout, stderr = module.run_command(cmd, check_rc=False)
-
-    if rc == 0:
-        return True
-    else:
-        module.fail_json(msg="error updating package database")
-
-
-def upgrade(module, poldek_path):
-    cmdupgrade = "%s -v --noask --upgrade-dist %s" % (poldek_path, module.params["upgrade_extra_args"])
-    cmdupgradeable = "%s -q --shcmd='ls --upgradeable --qf=\"%%{NAME}-%%{VERSION}-%%{RELEASE}\n\"' %s" % (poldek_path, module.params["upgrade_extra_args"])
-    rc, stdout, stderr = module.run_command(cmdupgradeable, check_rc=False)
-
-    packages = stdout.split('\n')[:-1]
-    if stdout == "":
-        module.exit_json(changed=False, msg='Nothing to upgrade', packages=packages, stdout=stdout, stderr=stderr, rc=rc)
-    else:
-        if module.check_mode:
-            module.exit_json(changed=True, msg="%s package(s) would be upgraded" % (len(packages)), packages=packages, stdout=stdout, stderr=stderr, rc=rc)
-        rc, stdout, stderr = module.run_command(cmdupgrade, check_rc=False)
-        if rc == 0:
-            module.exit_json(changed=True, msg="%s package(s) upgraded" % (len(packages)), packages=packages, stdout=stdout, stderr=stderr, rc=rc)
-        else:
-            module.fail_json(msg="Error while upgrading packages", stdout=stdout, stderr=stderr, rc=rc)
-
-
-def remove_packages(module, poldek_path, packages):
-    if module.params["force"]:
-        module.params["extra_args"] += " --force --nodeps"
-
-    remove_c = 0
-    out = ""
-    err = ""
-
-    for package in packages:
-        installed, updated = query_package(module, poldek_path, package)
-        if not installed:
-            continue
-
-        cmd = "%s -v --noask --erase %s %s" % (poldek_path, module.params["extra_args"], package)
-        rc, stdout, stderr = module.run_command(cmd, check_rc=False)
-
-        out = out + stdout
-        err = err + stderr
-
-        if rc != 0:
-            module.fail_json(msg="failed to remove %s" % (package), stdout=out, stderr=err, rc=rc)
-
-        remove_c += 1
-
-    if remove_c > 0:
-        module.exit_json(changed=True, msg="removed %s package(s)" % (remove_c), packages=packages, stdout=out, stderr=err, rc=0)
-
-    module.exit_json(changed=False, msg="package(s) already absent", packages=packages, stdout=out, stderr=err, rc=0)
-
-
-def install_packages(module, poldek_path, state, packages):
-    if module.params["force"]:
-        module.params["extra_args"] += " --force --nodeps"
-
-    install_c = 0
-    out = ""
-    err = ""
-
-    for package in packages:
-        installed, updated = query_package(module, poldek_path, package)
-        if installed and (state == 'present' or (state == 'latest' and updated)):
-            continue
-
-        cmd = "%s -v --noask --upgrade %s %s" % (poldek_path, module.params["extra_args"], package)
-        rc, stdout, stderr = module.run_command(cmd, check_rc=False)
-
-        out = out + stdout
-        err = err + stderr
-
-        if rc != 0:
-            module.fail_json(msg="failed to install %s" % (package), stdout=out, stderr=err, rc=rc)
-
-        install_c += 1
-
-    if install_c > 0:
-        module.exit_json(changed=True, msg="installed %s package(s)" % (install_c), packages=packages, stdout=out, stderr=err, rc=0)
-
-    module.exit_json(changed=False, msg="package(s) already installed", packages=packages, stdout=out, stderr=err, rc=0)
-
-
-def check_packages(module, poldek_path, packages, state):
-    would_be_changed = []
-
-    for package in packages:
-        installed, updated = query_package(module, poldek_path, package)
-        if ((state in ["present", "latest"] and not installed) or
-                (state == "absent" and installed) or
-                (state == "latest" and not updated)):
-            would_be_changed.append(package)
-
-    if state == "absent":
-        state = "removed"
-    if state == "present" or state == "latest":
-        state = "installed"
-
-    if would_be_changed:
-        module.exit_json(changed=True, msg="%s package(s) would be %s" % (
-            len(would_be_changed), state))
-    else:
-        module.exit_json(changed=False, msg="package(s) already %s" % state)
-
-
-def main():
-    module = AnsibleModule(
-        argument_spec=dict(
-            name=dict(type='list', aliases=['pkg', 'package']),
-            state=dict(type='str', default='present', choices=['present', 'installed', 'latest', 'absent', 'removed']),
-            extra_args=dict(type='str', default=''),
-            upgrade=dict(type='bool', default=False),
-            upgrade_extra_args=dict(type='str', default=''),
-            update_cache=dict(type='bool', default=False, aliases=['update-cache']),
-            update_cache_extra_args=dict(type='str', default=''),
-            force=dict(type='bool', default=False),
-        ),
-        required_one_of=[['name', 'update_cache', 'upgrade']],
-        mutually_exclusive=[['name', 'upgrade']],
-        supports_check_mode=True,
-    )
-
-    poldek_path = module.get_bin_path('poldek', True)
-
-    p = module.params
-
-    if p['state'] in ['present', 'installed']:
-        p['state'] = 'present'
-    elif p['state'] in ['absent', 'removed']:
-        p['state'] = 'absent'
-
-    if p["update_cache"] and not module.check_mode:
-        update_package_db(module, poldek_path)
-        if not (p['name'] or p['upgrade']):
-            module.exit_json(changed=True, msg='Updated package database')
-
-    if p['update_cache'] and module.check_mode and not (p['name'] or p['upgrade']):
-        module.exit_json(changed=True, msg='Would have updated package database')
-
-    if p['upgrade']:
-        upgrade(module, poldek_path)
-
-    if p['name']:
-        pkgs = p['name']
-
-        if module.check_mode:
-            check_packages(module, poldek_path, pkgs, p['state'])
-
-        if p['state'] in ['present', 'latest']:
-            install_packages(module, poldek_path, p['state'], pkgs)
-        elif p['state'] == 'absent':
-            remove_packages(module, poldek_path, pkgs)
-    else:
-        module.exit_json(changed=False, msg="No package specified to work on")
-
-
-if __name__ == "__main__":
-    main()
diff --git a/setup.patch b/setup.patch
new file mode 100644 (file)
index 0000000..bbc8672
--- /dev/null
@@ -0,0 +1,11 @@
+--- ansible-9.1.0/setup.cfg.orig       2023-12-05 17:35:06.236860300 +0100
++++ ansible-9.1.0/setup.cfg    2024-01-07 23:16:26.780075265 +0100
+@@ -33,7 +33,7 @@
+ [options]
+ zip_safe = False
+ install_requires = 
+-      ansible-core ~= 2.16.5
++      ansible-core >= 2.16.5
+ python_requires = >=3.10
+ package_dir = 
+       =.