Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ansible-core for openSUSE:Factory 
checked in at 2025-04-24 17:27:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ansible-core (Old)
 and      /work/SRC/openSUSE:Factory/.ansible-core.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ansible-core"

Thu Apr 24 17:27:06 2025 rev:42 rq:1272411 version:2.18.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/ansible-core/ansible-core.changes        
2025-03-26 21:22:12.603493491 +0100
+++ /work/SRC/openSUSE:Factory/.ansible-core.new.30101/ansible-core.changes     
2025-04-24 17:29:03.918277378 +0200
@@ -1,0 +2,18 @@
+Thu Apr 24 06:56:16 UTC 2025 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- update to 2.18.5:
+  * Bugfixes
+    - build - Pin wheel in pyproject.toml to ensure compatibility
+      with supported setuptools versions.
+    - dnf5 - Handle forwarded exceptions from dnf5-5.2.13 where a
+      generic RuntimeError was previously raised
+    - find - skip ENOENT error code while recursively enumerating
+      files. find module will now be tolerant to race conditions
+      that remove files or directories from the target it is
+      currently inspecting. (#84873).
+    - gather_facts action, will now add setup when 'smart' appears
+      with other modules in the FACTS_MODULES setting (#84750).
+    - uri - Form location correctly when the server returns a
+      relative redirect (#84540)
+
+-------------------------------------------------------------------

Old:
----
  ansible_core-2.18.4.tar.gz
  ansible_core-2.18.4.tar.gz.sha256

New:
----
  ansible_core-2.18.5.tar.gz
  ansible_core-2.18.5.tar.gz.sha256

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ansible-core.spec ++++++
--- /var/tmp/diff_new_pack.qscx1O/_old  2025-04-24 17:29:04.494301553 +0200
+++ /var/tmp/diff_new_pack.qscx1O/_new  2025-04-24 17:29:04.498301721 +0200
@@ -43,7 +43,7 @@
 %endif
 
 Name:           ansible-core
-Version:        2.18.4
+Version:        2.18.5
 Release:        0
 Summary:        Radically simple IT automation
 License:        GPL-3.0-or-later

++++++ ansible_core-2.18.4.tar.gz -> ansible_core-2.18.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/PKG-INFO 
new/ansible_core-2.18.5/PKG-INFO
--- old/ansible_core-2.18.4/PKG-INFO    2025-03-25 19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/PKG-INFO    2025-04-21 23:51:57.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.2
 Name: ansible-core
-Version: 2.18.4
+Version: 2.18.5
 Summary: Radically simple IT automation
 Author: Ansible Project
 Project-URL: Homepage, https://ansible.com/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/ansible_core.egg-info/PKG-INFO 
new/ansible_core-2.18.5/ansible_core.egg-info/PKG-INFO
--- old/ansible_core-2.18.4/ansible_core.egg-info/PKG-INFO      2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/ansible_core.egg-info/PKG-INFO      2025-04-21 
23:51:57.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.2
 Name: ansible-core
-Version: 2.18.4
+Version: 2.18.5
 Summary: Radically simple IT automation
 Author: Ansible Project
 Project-URL: Homepage, https://ansible.com/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/ansible_core.egg-info/SOURCES.txt 
new/ansible_core-2.18.5/ansible_core.egg-info/SOURCES.txt
--- old/ansible_core-2.18.4/ansible_core.egg-info/SOURCES.txt   2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/ansible_core.egg-info/SOURCES.txt   2025-04-21 
23:51:57.000000000 +0200
@@ -2002,6 +2002,7 @@
 test/integration/targets/gathering_facts/one_two.json
 test/integration/targets/gathering_facts/prevent_clobbering.yml
 test/integration/targets/gathering_facts/runme.sh
+test/integration/targets/gathering_facts/smart_added.yml
 test/integration/targets/gathering_facts/test_gathering_facts.yml
 test/integration/targets/gathering_facts/test_module_defaults.yml
 test/integration/targets/gathering_facts/test_prevent_injection.yml
@@ -3457,6 +3458,7 @@
 test/integration/targets/setup_paramiko/uninstall-RedHat-9-python-3.yml
 test/integration/targets/setup_paramiko/uninstall-apt-python-3.yml
 test/integration/targets/setup_paramiko/uninstall-dnf.yml
+test/integration/targets/setup_paramiko/uninstall-dnf5.yml
 test/integration/targets/setup_paramiko/uninstall-fail.yml
 test/integration/targets/setup_paramiko/uninstall-yum.yml
 test/integration/targets/setup_paramiko/uninstall-zypper-python-3.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/changelogs/CHANGELOG-v2.18.rst 
new/ansible_core-2.18.5/changelogs/CHANGELOG-v2.18.rst
--- old/ansible_core-2.18.4/changelogs/CHANGELOG-v2.18.rst      2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/changelogs/CHANGELOG-v2.18.rst      2025-04-21 
23:51:57.000000000 +0200
@@ -4,6 +4,24 @@
 
 .. contents:: Topics
 
+v2.18.5
+=======
+
+Release Summary
+---------------
+
+| Release Date: 2025-04-21
+| `Porting Guide 
<https://docs.ansible.com/ansible-core/2.18/porting_guides/porting_guide_core_2.18.html>`__
+
+Bugfixes
+--------
+
+- build - Pin ``wheel`` in ``pyproject.toml`` to ensure compatibility with 
supported ``setuptools`` versions.
+- dnf5 - Handle forwarded exceptions from dnf5-5.2.13 where a generic 
``RuntimeError`` was previously raised
+- find - skip ENOENT error code while recursively enumerating files. find 
module will now be tolerant to race conditions that remove files or directories 
from the target it is currently inspecting. 
(https://github.com/ansible/ansible/issues/84873).
+- gather_facts action, will now add setup when 'smart' appears with other 
modules in the FACTS_MODULES setting (#84750).
+- uri - Form location correctly when the server returns a relative redirect 
(https://github.com/ansible/ansible/issues/84540)
+
 v2.18.4
 =======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/changelogs/changelog.yaml 
new/ansible_core-2.18.5/changelogs/changelog.yaml
--- old/ansible_core-2.18.4/changelogs/changelog.yaml   2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/changelogs/changelog.yaml   2025-04-21 
23:51:57.000000000 +0200
@@ -780,3 +780,42 @@
     - respawn-min-python.yml
     - win-wdac-audit.yml
     release_date: '2025-03-17'
+  2.18.5:
+    changes:
+      release_summary: '| Release Date: 2025-04-21
+
+        | `Porting Guide 
<https://docs.ansible.com/ansible-core/2.18/porting_guides/porting_guide_core_2.18.html>`__
+
+        '
+    codename: Fool in the Rain
+    fragments:
+    - 2.18.5_summary.yaml
+    release_date: '2025-04-21'
+  2.18.5rc1:
+    changes:
+      bugfixes:
+      - build - Pin ``wheel`` in ``pyproject.toml`` to ensure compatibility 
with supported
+        ``setuptools`` versions.
+      - dnf5 - Handle forwarded exceptions from dnf5-5.2.13 where a generic 
``RuntimeError``
+        was previously raised
+      - find - skip ENOENT error code while recursively enumerating files. 
find module
+        will now be tolerant to race conditions that remove files or 
directories from
+        the target it is currently inspecting. 
(https://github.com/ansible/ansible/issues/84873).
+      - gather_facts action, will now add setup when 'smart' appears with 
other modules
+        in the FACTS_MODULES setting (#84750).
+      - uri - Form location correctly when the server returns a relative 
redirect
+        (https://github.com/ansible/ansible/issues/84540)
+      release_summary: '| Release Date: 2025-04-14
+
+        | `Porting Guide 
<https://docs.ansible.com/ansible-core/2.18/porting_guides/porting_guide_core_2.18.html>`__
+
+        '
+    codename: Fool in the Rain
+    fragments:
+    - 2.18.5rc1_summary.yaml
+    - 84540-uri-relative-redirect.yml
+    - dnf5-exception-forwarding.yml
+    - find_enoent.yml
+    - gather_facts_smart_fix.yml
+    - pin-wheel.yml
+    release_date: '2025-04-14'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/lib/ansible/module_utils/ansible_release.py 
new/ansible_core-2.18.5/lib/ansible/module_utils/ansible_release.py
--- old/ansible_core-2.18.4/lib/ansible/module_utils/ansible_release.py 
2025-03-25 19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/module_utils/ansible_release.py 
2025-04-21 23:51:57.000000000 +0200
@@ -17,6 +17,6 @@
 
 from __future__ import annotations
 
-__version__ = '2.18.4'
+__version__ = '2.18.5'
 __author__ = 'Ansible, Inc.'
 __codename__ = "Fool in the Rain"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/lib/ansible/modules/dnf5.py 
new/ansible_core-2.18.5/lib/ansible/modules/dnf5.py
--- old/ansible_core-2.18.4/lib/ansible/modules/dnf5.py 2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/modules/dnf5.py 2025-04-21 
23:51:57.000000000 +0200
@@ -354,6 +354,8 @@
 from ansible.module_utils.yumdnf import YumDnf, yumdnf_argument_spec
 
 libdnf5 = None
+# Through dnf5-5.2.12 all exceptions raised through swig became RuntimeError
+LIBDNF5_ERROR = RuntimeError
 
 
 def is_installed(base, spec):
@@ -411,7 +413,7 @@
 
     try:
         spec_nevra = next(iter(libdnf5.rpm.Nevra.parse(spec)))
-    except (RuntimeError, StopIteration):
+    except (LIBDNF5_ERROR, StopIteration):
         return False
 
     spec_version = spec_nevra.get_version()
@@ -503,12 +505,19 @@
         os.environ["LANGUAGE"] = os.environ["LANG"] = locale
 
         global libdnf5
+        global LIBDNF5_ERROR
         has_dnf = True
         try:
             import libdnf5  # type: ignore[import]
         except ImportError:
             has_dnf = False
 
+        try:
+            import libdnf5.exception  # type: ignore[import-not-found]
+            LIBDNF5_ERROR = libdnf5.exception.Error
+        except (ImportError, AttributeError):
+            pass
+
         if has_dnf:
             return
 
@@ -553,7 +562,7 @@
 
         try:
             base.load_config()
-        except RuntimeError as e:
+        except LIBDNF5_ERROR as e:
             self.module.fail_json(
                 msg=str(e),
                 conf_file=self.conf_file,
@@ -716,7 +725,7 @@
             for spec in self.names:
                 try:
                     goal.add_remove(spec, settings)
-                except RuntimeError as e:
+                except LIBDNF5_ERROR as e:
                     self.module.fail_json(msg=str(e), failures=[], rc=1)
             if self.autoremove:
                 for pkg in get_unneeded_pkgs(base):
@@ -725,7 +734,7 @@
         goal.set_allow_erasing(self.allowerasing)
         try:
             transaction = goal.resolve()
-        except RuntimeError as e:
+        except LIBDNF5_ERROR as e:
             self.module.fail_json(msg=str(e), failures=[], rc=1)
 
         if transaction.get_problems():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/lib/ansible/modules/find.py 
new/ansible_core-2.18.5/lib/ansible/modules/find.py
--- old/ansible_core-2.18.4/lib/ansible/modules/find.py 2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/modules/find.py 2025-04-21 
23:51:57.000000000 +0200
@@ -513,7 +513,7 @@
     skipped = {}
 
     def handle_walk_errors(e):
-        if e.errno in (errno.EPERM, errno.EACCES):
+        if e.errno in (errno.EPERM, errno.EACCES, errno.ENOENT):
             skipped[e.filename] = to_text(e)
             return
         raise e
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/lib/ansible/modules/import_role.py 
new/ansible_core-2.18.5/lib/ansible/modules/import_role.py
--- old/ansible_core-2.18.4/lib/ansible/modules/import_role.py  2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/modules/import_role.py  2025-04-21 
23:51:57.000000000 +0200
@@ -59,7 +59,7 @@
     description:
       - This option dictates whether the role's C(vars) and C(defaults) are 
exposed to the play.
       - Variables are exposed to the play at playbook parsing time, and 
available to earlier roles and tasks as well unlike C(include_role).
-      - The default depends on the configuration option 
:ref:`default_private_role_vars`.
+      - The default depends on the configuration option 
R(DEFAULT_PRIVATE_ROLE_VARS, DEFAULT_PRIVATE_ROLE_VARS).
     type: bool
     default: yes
     version_added: '2.17'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/lib/ansible/modules/uri.py 
new/ansible_core-2.18.5/lib/ansible/modules/uri.py
--- old/ansible_core-2.18.4/lib/ansible/modules/uri.py  2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/modules/uri.py  2025-04-21 
23:51:57.000000000 +0200
@@ -448,7 +448,7 @@
 
 from ansible.module_utils.basic import AnsibleModule, sanitize_keys
 from ansible.module_utils.six import binary_type, iteritems, string_types
-from ansible.module_utils.six.moves.urllib.parse import urlencode, urlsplit
+from ansible.module_utils.six.moves.urllib.parse import urlencode, urljoin
 from ansible.module_utils.common.text.converters import to_native, to_text
 from ansible.module_utils.compat.datetime import utcnow, utcfromtimestamp
 from ansible.module_utils.six.moves.collections_abc import Mapping, Sequence
@@ -505,27 +505,6 @@
         os.remove(tmpsrc)
 
 
-def absolute_location(url, location):
-    """Attempts to create an absolute URL based on initial URL, and
-    next URL, specifically in the case of a ``Location`` header.
-    """
-
-    if '://' in location:
-        return location
-
-    elif location.startswith('/'):
-        parts = urlsplit(url)
-        base = url.replace(parts[2], '')
-        return '%s%s' % (base, location)
-
-    elif not location.startswith('/'):
-        base = os.path.dirname(url)
-        return '%s/%s' % (base, location)
-
-    else:
-        return location
-
-
 def kv_list(data):
     ''' Convert data into a list of key-value tuples '''
     if data is None:
@@ -766,7 +745,7 @@
         uresp[ukey] = value
 
     if 'location' in uresp:
-        uresp['location'] = absolute_location(url, uresp['location'])
+        uresp['location'] = urljoin(url, uresp['location'])
 
     # Default content_encoding to try
     if isinstance(content, binary_type):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/lib/ansible/modules/wait_for.py 
new/ansible_core-2.18.5/lib/ansible/modules/wait_for.py
--- old/ansible_core-2.18.4/lib/ansible/modules/wait_for.py     2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/modules/wait_for.py     2025-04-21 
23:51:57.000000000 +0200
@@ -187,17 +187,19 @@
     host: '{{ 
(ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}'
     search_regex: OpenSSH
     delay: 10
-  connection: local
+    timeout: 300
+  delegate_to: localhost
 
-# Same as above but you normally have ansible_connection set in inventory, 
which overrides 'connection'
+# Same as above but using config lookup for the target,
+# most plugins use 'remote_addr', but ssh uses 'host'
 - name: Wait 300 seconds for port 22 to become open and contain "OpenSSH"
   ansible.builtin.wait_for:
     port: 22
-    host: '{{ 
(ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}'
+    host: "{{ lookup('config', 'host', plugin_name='ssh', 
plugin_type='connection') }}"
     search_regex: OpenSSH
     delay: 10
-  vars:
-    ansible_connection: local
+    timeout: 300
+  delegate_to: localhost
 '''
 
 RETURN = r'''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/lib/ansible/plugins/action/gather_facts.py 
new/ansible_core-2.18.5/lib/ansible/plugins/action/gather_facts.py
--- old/ansible_core-2.18.4/lib/ansible/plugins/action/gather_facts.py  
2025-03-25 19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/plugins/action/gather_facts.py  
2025-04-21 23:51:57.000000000 +0200
@@ -95,7 +95,7 @@
                 self._display.warning("Detected 'setup' module and a network 
OS is set, the output when running it will reflect 'localhost'"
                                       " and not the target when a netwoking 
connection plugin is used.")
 
-        elif not set(modules).difference(set(C._ACTION_SETUP)):
+        elif not set(modules).intersection(set(C._ACTION_SETUP)):
             # no network OS and setup not in list, add setup by default since 
'smart'
             modules.append('ansible.legacy.setup')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/lib/ansible/plugins/filter/human_to_bytes.yml 
new/ansible_core-2.18.5/lib/ansible/plugins/filter/human_to_bytes.yml
--- old/ansible_core-2.18.4/lib/ansible/plugins/filter/human_to_bytes.yml       
2025-03-25 19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/plugins/filter/human_to_bytes.yml       
2025-04-21 23:51:57.000000000 +0200
@@ -8,7 +8,7 @@
   options:
     _input:
       description: human-readable description of a number of bytes.
-      type: int
+      type: string
       required: true
     default_unit:
       description: Unit to assume when input does not specify it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/lib/ansible/release.py 
new/ansible_core-2.18.5/lib/ansible/release.py
--- old/ansible_core-2.18.4/lib/ansible/release.py      2025-03-25 
19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/lib/ansible/release.py      2025-04-21 
23:51:57.000000000 +0200
@@ -17,6 +17,6 @@
 
 from __future__ import annotations
 
-__version__ = '2.18.4'
+__version__ = '2.18.5'
 __author__ = 'Ansible, Inc.'
 __codename__ = "Fool in the Rain"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible_core-2.18.4/pyproject.toml 
new/ansible_core-2.18.5/pyproject.toml
--- old/ansible_core-2.18.4/pyproject.toml      2025-03-25 19:10:19.000000000 
+0100
+++ new/ansible_core-2.18.5/pyproject.toml      2025-04-21 23:51:57.000000000 
+0200
@@ -1,5 +1,5 @@
 [build-system]
-requires = ["setuptools >= 66.1.0, <= 76.0.0"]  # lower bound to support 
controller Python versions, upper bound for latest version tested at release
+requires = ["setuptools >= 66.1.0, <= 76.0.0", "wheel == 0.45.1"]  # lower 
bound to support controller Python versions, upper bound for latest version 
tested at release
 build-backend = "setuptools.build_meta"
 
 [project]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/test/integration/targets/gathering_facts/runme.sh 
new/ansible_core-2.18.5/test/integration/targets/gathering_facts/runme.sh
--- old/ansible_core-2.18.4/test/integration/targets/gathering_facts/runme.sh   
2025-03-25 19:10:19.000000000 +0100
+++ new/ansible_core-2.18.5/test/integration/targets/gathering_facts/runme.sh   
2025-04-21 23:51:57.000000000 +0200
@@ -45,4 +45,7 @@
 # ensure we warn on setup + network OS
 ANSIBLE_FACTS_MODULES='smart, setup' ansible -m gather_facts localhost -e 
'ansible_network_os="N/A"' "$@" 2>&1 | grep "Detected 'setup' module and a 
network OS is set"
 
+# ensure run setup when smart+ and no network OS
+ANSIBLE_FACTS_MODULES='smart, facts_one' ansible-playbook smart_added.yml -i 
inventory "$@"
+
 rm "${OUTPUT_DIR}/canary.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/test/integration/targets/gathering_facts/smart_added.yml
 
new/ansible_core-2.18.5/test/integration/targets/gathering_facts/smart_added.yml
--- 
old/ansible_core-2.18.4/test/integration/targets/gathering_facts/smart_added.yml
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/ansible_core-2.18.5/test/integration/targets/gathering_facts/smart_added.yml
    2025-04-21 23:51:57.000000000 +0200
@@ -0,0 +1,11 @@
+- hosts: facthost0
+  tasks:
+    - name: ensure we ran custom module AND setup.py/smart
+      assert:
+        that:
+          - >-
+            'factsone' in ansible_facts
+          - >-
+            ansible_facts['factsone'] == "from facts_one module"
+          - >-
+            'os_family' in ansible_facts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/test/integration/targets/setup_paramiko/uninstall-dnf5.yml
 
new/ansible_core-2.18.5/test/integration/targets/setup_paramiko/uninstall-dnf5.yml
--- 
old/ansible_core-2.18.4/test/integration/targets/setup_paramiko/uninstall-dnf5.yml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/ansible_core-2.18.5/test/integration/targets/setup_paramiko/uninstall-dnf5.yml
  2025-04-21 23:51:57.000000000 +0200
@@ -0,0 +1,2 @@
+- name: Uninstall Paramiko using dnf history undo
+  command: dnf history undo last --assumeyes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/test/integration/targets/uri/tasks/redirect-none.yml 
new/ansible_core-2.18.5/test/integration/targets/uri/tasks/redirect-none.yml
--- 
old/ansible_core-2.18.4/test/integration/targets/uri/tasks/redirect-none.yml    
    2025-03-25 19:10:19.000000000 +0100
+++ 
new/ansible_core-2.18.5/test/integration/targets/uri/tasks/redirect-none.yml    
    2025-04-21 23:51:57.000000000 +0200
@@ -293,4 +293,25 @@
     - "'Status code was 308 and not [200]: HTTP Error 308: ' in 
http_308_post.msg"
     - http_308_post.redirected == false
     - http_308_post.status == 308
-    - http_308_post.url == 'https://{{ httpbin_host 
}}/redirect-to?status_code=308&url=https://{{ httpbin_host }}/anything'
+    - http_308_post.url == 'https://' + httpbin_host + 
'/redirect-to?status_code=308&url=https://' + httpbin_host + '/anything'
+
+- name: Test HTTP return value for location using relative redirects
+  uri:
+    url: https://{{ httpbin_host }}/redirect-to?url={{ item }}
+    status_code: 302
+    follow_redirects: none
+  register: http_302
+  loop:
+    - "/anything?foo=bar"
+    - "status/302"
+    - "./status/302"
+    - "/status/302"
+    - "//{{ httpbin_host }}/status/302"
+    - "https:status/302"
+
+- assert:
+    that:
+      - item.location == ('https://' + httpbin_host + ((idx == 0) | 
ternary('/anything?foo=bar', '/status/302')))
+  loop: "{{ http_302.results }}"
+  loop_control:
+    index_var: idx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible_core-2.18.4/test/integration/targets/uri/tasks/redirect-safe.yml 
new/ansible_core-2.18.5/test/integration/targets/uri/tasks/redirect-safe.yml
--- 
old/ansible_core-2.18.4/test/integration/targets/uri/tasks/redirect-safe.yml    
    2025-03-25 19:10:19.000000000 +0100
+++ 
new/ansible_core-2.18.5/test/integration/targets/uri/tasks/redirect-safe.yml    
    2025-04-21 23:51:57.000000000 +0200
@@ -271,4 +271,28 @@
     - "'Status code was 308 and not [200]: HTTP Error 308: ' in 
http_308_post.msg"
     - http_308_post.redirected == false
     - http_308_post.status == 308
-    - http_308_post.url == 'https://{{ httpbin_host 
}}/redirect-to?status_code=308&url=https://{{ httpbin_host }}/anything'
+    - http_308_post.url == 'https://' + httpbin_host + 
'/redirect-to?status_code=308&url=https://' + httpbin_host + '/anything'
+
+
+- name: Test HTTP using HEAD with relative path in redirection
+  uri:
+    url: https://{{ httpbin_host }}/redirect-to?status_code={{ item 
}}&url=/anything?foo=bar
+    follow_redirects: safe
+    return_content: yes
+    method: HEAD
+  register: http_head
+  loop:
+    - '301'
+    - '302'
+    - '303'
+    - '307'
+    - '308'
+
+- assert:
+    that:
+    - item.changed is false
+    - item.json is not defined
+    - item.redirected
+    - item.status == 200
+    - item.url == 'https://' + httpbin_host + '/anything?foo=bar'
+  loop: "{{ http_head.results }}"

++++++ ansible_core-2.18.4.tar.gz.sha256 -> ansible_core-2.18.5.tar.gz.sha256 
++++++
--- /work/SRC/openSUSE:Factory/ansible-core/ansible_core-2.18.4.tar.gz.sha256   
2025-03-26 21:22:15.223602251 +0100
+++ 
/work/SRC/openSUSE:Factory/.ansible-core.new.30101/ansible_core-2.18.5.tar.gz.sha256
        2025-04-24 17:29:04.018281575 +0200
@@ -1 +1 @@
-e1f8f5c33546362b0ee933e0969a3ba364b486515a6fa1bc25ebb5d95f8ec5f4  
ansible_core-2.18.4.tar.gz
+319304d161770a8a891c07dec8a22c528548a948a7097eaf1a79939395105535  
ansible_core-2.18.5.tar.gz

Reply via email to