Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ansible-core-2.19 for openSUSE:Factory checked in at 2026-02-27 17:12:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ansible-core-2.19 (Old) and /work/SRC/openSUSE:Factory/.ansible-core-2.19.new.29461 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansible-core-2.19" Fri Feb 27 17:12:08 2026 rev:4 rq:1335399 version:2.19.7 Changes: -------- --- /work/SRC/openSUSE:Factory/ansible-core-2.19/ansible-core-2.19.changes 2026-02-03 21:29:35.335820492 +0100 +++ /work/SRC/openSUSE:Factory/.ansible-core-2.19.new.29461/ansible-core-2.19.changes 2026-02-27 17:13:07.380107546 +0100 @@ -1,0 +2,17 @@ +Fri Feb 27 07:33:55 UTC 2026 - Johannes Kastl <[email protected]> + +- update to 2.19.7: + https://github.com/ansible/ansible/blob/v2.19.7/changelogs/CHANGELOG-v2.19.rst + * Minor Changes + - ansible-test - Update URL used to download FreeBSD wheels for + managed remotes. + - ansible-test - Use the new API endpoint for the Ansible Core + CI service. + * Bugfixes + - Fix up the Action plugin '_make_tmp_path' error to only + include the command run rather than the shell's dataclass + repr from mkdtemp. + - local connection - Pass correct type to become plugins when + checking password (#86458) + +------------------------------------------------------------------- Old: ---- ansible_core-2.19.6.tar.gz ansible_core-2.19.6.tar.gz.sha256 New: ---- ansible_core-2.19.7.tar.gz ansible_core-2.19.7.tar.gz.sha256 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ansible-core-2.19.spec ++++++ --- /var/tmp/diff_new_pack.RZTY0R/_old 2026-02-27 17:13:10.016216645 +0100 +++ /var/tmp/diff_new_pack.RZTY0R/_new 2026-02-27 17:13:10.040217640 +0100 @@ -43,7 +43,7 @@ %endif Name: ansible-core-2.19 -Version: 2.19.6 +Version: 2.19.7 Release: 0 Summary: Radically simple IT automation License: GPL-3.0-or-later ++++++ ansible_core-2.19.6.tar.gz -> ansible_core-2.19.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/PKG-INFO new/ansible_core-2.19.7/PKG-INFO --- old/ansible_core-2.19.6/PKG-INFO 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/PKG-INFO 2026-02-24 00:02:39.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: ansible-core -Version: 2.19.6 +Version: 2.19.7 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.19.6/ansible_core.egg-info/PKG-INFO new/ansible_core-2.19.7/ansible_core.egg-info/PKG-INFO --- old/ansible_core-2.19.6/ansible_core.egg-info/PKG-INFO 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/ansible_core.egg-info/PKG-INFO 2026-02-24 00:02:39.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: ansible-core -Version: 2.19.6 +Version: 2.19.7 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.19.6/changelogs/CHANGELOG-v2.19.rst new/ansible_core-2.19.7/changelogs/CHANGELOG-v2.19.rst --- old/ansible_core-2.19.6/changelogs/CHANGELOG-v2.19.rst 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/changelogs/CHANGELOG-v2.19.rst 2026-02-24 00:02:39.000000000 +0100 @@ -4,6 +4,27 @@ .. contents:: Topics +v2.19.7 +======= + +Release Summary +--------------- + +| Release Date: 2026-02-23 +| `Porting Guide <https://docs.ansible.com/ansible-core/2.19/porting_guides/porting_guide_core_2.19.html>`__ + +Minor Changes +------------- + +- ansible-test - Update URL used to download FreeBSD wheels for managed remotes. +- ansible-test - Use the new API endpoint for the Ansible Core CI service. + +Bugfixes +-------- + +- Fix up the Action plugin ``_make_tmp_path`` error to only include the command run rather than the shell's dataclass repr from ``mkdtemp``. +- local connection - Pass correct type to become plugins when checking password (https://github.com/ansible/ansible/issues/86458) + v2.19.6 ======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/changelogs/changelog.yaml new/ansible_core-2.19.7/changelogs/changelog.yaml --- old/ansible_core-2.19.6/changelogs/changelog.yaml 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/changelogs/changelog.yaml 2026-02-24 00:02:39.000000000 +0100 @@ -1486,3 +1486,37 @@ - module_defaults-action-plugin-templating.yml - winrm-kerberos.yml release_date: '2026-01-22' + 2.19.7: + changes: + release_summary: '| Release Date: 2026-02-23 + + | `Porting Guide <https://docs.ansible.com/ansible-core/2.19/porting_guides/porting_guide_core_2.19.html>`__ + + ' + codename: What Is and What Should Never Be + fragments: + - 2.19.7_summary.yaml + release_date: '2026-02-23' + 2.19.7rc1: + changes: + bugfixes: + - Fix up the Action plugin ``_make_tmp_path`` error to only include the command + run rather than the shell's dataclass repr from ``mkdtemp``. + - local connection - Pass correct type to become plugins when checking password + (https://github.com/ansible/ansible/issues/86458) + minor_changes: + - ansible-test - Update URL used to download FreeBSD wheels for managed remotes. + - ansible-test - Use the new API endpoint for the Ansible Core CI service. + release_summary: '| Release Date: 2026-02-17 + + | `Porting Guide <https://docs.ansible.com/ansible-core/2.19/porting_guides/porting_guide_core_2.19.html>`__ + + ' + codename: What Is and What Should Never Be + fragments: + - 2.19.7rc1_summary.yaml + - 86473_su_become_local.yml + - ansible-test-api-endpoint.yml + - ansible-test-spare-tire.yml + - make-tmp-path-msg.yml + release_date: '2026-02-17' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/lib/ansible/config/base.yml new/ansible_core-2.19.7/lib/ansible/config/base.yml --- old/ansible_core-2.19.6/lib/ansible/config/base.yml 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/lib/ansible/config/base.yml 2026-02-24 00:02:39.000000000 +0100 @@ -291,7 +291,7 @@ Collections must be in nested *subdirectories*, not directly in these directories. For example, if ``COLLECTIONS_PATHS`` includes ``'{{ ANSIBLE_HOME ~ "/collections" }}'``, and you want to add ``my.collection`` to that directory, it must be saved as - ``'{{ ANSIBLE_HOME} ~ "/collections/ansible_collections/my/collection" }}'``. + ``'{{ ANSIBLE_HOME ~ "/collections/ansible_collections/my/collection" }}'``. default: '{{ ANSIBLE_HOME ~ "/collections:/usr/share/ansible/collections" }}' type: pathspec env: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/lib/ansible/module_utils/ansible_release.py new/ansible_core-2.19.7/lib/ansible/module_utils/ansible_release.py --- old/ansible_core-2.19.6/lib/ansible/module_utils/ansible_release.py 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/lib/ansible/module_utils/ansible_release.py 2026-02-24 00:02:39.000000000 +0100 @@ -17,6 +17,6 @@ from __future__ import annotations -__version__ = '2.19.6' +__version__ = '2.19.7' __author__ = 'Ansible, Inc.' __codename__ = "What Is and What Should Never Be" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/lib/ansible/plugins/action/__init__.py new/ansible_core-2.19.7/lib/ansible/plugins/action/__init__.py --- old/ansible_core-2.19.6/lib/ansible/plugins/action/__init__.py 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/lib/ansible/plugins/action/__init__.py 2026-02-24 00:02:39.000000000 +0100 @@ -456,7 +456,7 @@ become_user = self.get_become_option('become_user') return bool(become_user and become_user not in admin_users + [remote_user]) - def _make_tmp_path(self, remote_user=None): + def _make_tmp_path(self, remote_user: str | None = None) -> str: """ Create and return a temporary path on a remote box. """ @@ -494,7 +494,7 @@ output = ('Failed to create temporary directory. ' 'In some cases, you may have been able to authenticate and did not have permissions on the target directory. ' 'Consider changing the remote tmp path in ansible.cfg to a path rooted in "/tmp", for more error information use -vvv. ' - 'Failed command was: %s, exited with result %d' % (cmd, result['rc'])) + 'Failed command was: %s, exited with result %d' % (cmd.command, result['rc'])) if 'stdout' in result and result['stdout'] != u'': output = output + u", stdout output: %s" % result['stdout'] if display.verbosity > 3 and 'stderr' in result and result['stderr'] != u'': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/lib/ansible/plugins/become/__init__.py new/ansible_core-2.19.7/lib/ansible/plugins/become/__init__.py --- old/ansible_core-2.19.6/lib/ansible/plugins/become/__init__.py 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/lib/ansible/plugins/become/__init__.py 2026-02-24 00:02:39.000000000 +0100 @@ -105,7 +105,7 @@ b_success = to_bytes(self.success) return any(b_success in l.rstrip() for l in b_output.splitlines(True)) - def check_password_prompt(self, b_output): + def check_password_prompt(self, b_output: bytes) -> bool: """ checks if the expected password prompt exists in b_output """ if self.prompt: b_prompt = to_bytes(self.prompt).strip() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/lib/ansible/plugins/connection/local.py new/ansible_core-2.19.7/lib/ansible/plugins/connection/local.py --- old/ansible_core-2.19.6/lib/ansible/plugins/connection/local.py 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/lib/ansible/plugins/connection/local.py 2026-02-24 00:02:39.000000000 +0100 @@ -201,8 +201,8 @@ raise AnsibleError(become_error_msg('Premature end of stream')) if expect_password_prompt and ( - self.become.check_password_prompt(become_stdout[last_stdout_prompt_offset:]) or - self.become.check_password_prompt(become_stderr[last_stderr_prompt_offset:]) + self.become.check_password_prompt(bytes(become_stdout[last_stdout_prompt_offset:])) or + self.become.check_password_prompt(bytes(become_stderr[last_stderr_prompt_offset:])) ): if sent_password: raise AnsibleError(become_error_msg('Duplicate become password prompt encountered')) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/lib/ansible/release.py new/ansible_core-2.19.7/lib/ansible/release.py --- old/ansible_core-2.19.6/lib/ansible/release.py 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/lib/ansible/release.py 2026-02-24 00:02:39.000000000 +0100 @@ -17,6 +17,6 @@ from __future__ import annotations -__version__ = '2.19.6' +__version__ = '2.19.7' __author__ = 'Ansible, Inc.' __codename__ = "What Is and What Should Never Be" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/pyproject.toml new/ansible_core-2.19.7/pyproject.toml --- old/ansible_core-2.19.6/pyproject.toml 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/pyproject.toml 2026-02-24 00:02:39.000000000 +0100 @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools >= 66.1.0, <= 80.10.2", "wheel == 0.45.1"] # lower bound to support controller Python versions, upper bound for latest version tested at release +requires = ["setuptools >= 66.1.0, <= 82.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.19.6/test/integration/targets/become_su/aliases new/ansible_core-2.19.7/test/integration/targets/become_su/aliases --- old/ansible_core-2.19.6/test/integration/targets/become_su/aliases 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/test/integration/targets/become_su/aliases 2026-02-24 00:02:39.000000000 +0100 @@ -5,6 +5,7 @@ needs/root needs/target/setup_become_user_pair needs/target/setup_test_user +needs/target/setup_pexpect setup/always/setup_passlib_controller # required for setup_test_user skip/macos # requires a TTY skip/freebsd # appears to require a TTY (ignores password input from stdin) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/test/integration/targets/become_su/tasks/main.yml new/ansible_core-2.19.7/test/integration/targets/become_su/tasks/main.yml --- old/ansible_core-2.19.6/test/integration/targets/become_su/tasks/main.yml 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/test/integration/targets/become_su/tasks/main.yml 2026-02-24 00:02:39.000000000 +0100 @@ -61,3 +61,46 @@ - wrong_su_prompt is unreachable - ansible_connection != "local" or wrong_su_prompt.msg is contains "Timed out waiting for become success or become password prompt" - ansible_connection != "ssh" or wrong_su_prompt.msg is contains "waiting for privilege escalation prompt" + +# The bug from issue https://github.com/ansible/ansible/issues/86458 presents itself only on local connections +# and only when the password is entered interactively using -K/--ask-become-pass. +- name: Test different locale + when: ansible_os_family == 'RedHat' and ansible_connection == 'local' + block: + - import_role: + name: setup_pexpect + + - name: install language pack and pexpect + dnf: + name: + - langpacks-uk + - glibc-langpack-uk + state: present + + - name: verify language pack is enabled + command: locale -a + register: installed_languages + + - assert: + that: "'uk_UA.utf8' in installed_languages.stdout" + + - name: test su prompt basic success with alternate language on local connection + expect: + command: "ansible -m command -a whoami localhost -b --become-method su -K" + responses: + BECOME password: + - "{{ target_user_password }}" + environment: + LC_ALL: uk_UA.utf8 + ANSIBLE_BECOME_USER: "{{ target_user_name }}" + ANSIBLE_BECOME_EXE: /tmp/sushim.sh + ANSIBLE_BECOME_FLAGS: --intermediate-user {{ intermediate_user_name | quote }} + # protect our target user password + no_log: true + always: + - name: remove language pack + dnf: + name: + - langpacks-uk + - glibc-langpack-uk + state: absent diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/test/lib/ansible_test/_internal/core_ci.py new/ansible_core-2.19.7/test/lib/ansible_test/_internal/core_ci.py --- old/ansible_core-2.19.6/test/lib/ansible_test/_internal/core_ci.py 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/test/lib/ansible_test/_internal/core_ci.py 2026-02-24 00:02:39.000000000 +0100 @@ -137,7 +137,7 @@ class AnsibleCoreCI: """Client for Ansible Core CI services.""" - DEFAULT_ENDPOINT = 'https://ansible-core-ci.testing.ansible.com' + DEFAULT_ENDPOINT = 'https://api.ci.core.ansible.com' def __init__( self, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/test/lib/ansible_test/_util/target/setup/bootstrap.sh new/ansible_core-2.19.7/test/lib/ansible_test/_util/target/setup/bootstrap.sh --- old/ansible_core-2.19.6/test/lib/ansible_test/_util/target/setup/bootstrap.sh 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/test/lib/ansible_test/_util/target/setup/bootstrap.sh 2026-02-24 00:02:39.000000000 +0100 @@ -231,7 +231,7 @@ # make additional wheels available for packages which lack them for this platform echo "# generated by ansible-test [global] -extra-index-url = https://spare-tire.testing.ansible.com/simple/ +extra-index-url = https://spare-tire.core.ansible.com/simple/ prefer-binary = yes " > /etc/pip.conf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.6/test/units/plugins/become/test_su.py new/ansible_core-2.19.7/test/units/plugins/become/test_su.py --- old/ansible_core-2.19.6/test/units/plugins/become/test_su.py 2026-01-29 20:19:58.000000000 +0100 +++ new/ansible_core-2.19.7/test/units/plugins/become/test_su.py 2026-02-24 00:02:39.000000000 +0100 @@ -70,4 +70,4 @@ mocker.patch.object(become, 'get_option', return_value=['(invalid regex']) - assert become.check_password_prompt('(invalid regex:') is True + assert become.check_password_prompt(b'(invalid regex:') is True ++++++ ansible_core-2.19.6.tar.gz.sha256 -> ansible_core-2.19.7.tar.gz.sha256 ++++++ --- /work/SRC/openSUSE:Factory/ansible-core-2.19/ansible_core-2.19.6.tar.gz.sha256 2026-02-03 21:29:35.471826200 +0100 +++ /work/SRC/openSUSE:Factory/.ansible-core-2.19.new.29461/ansible_core-2.19.7.tar.gz.sha256 2026-02-27 17:13:07.708121122 +0100 @@ -1 +1 @@ -1e6b711e357901422592a1d1e4a076eee918497587646a5843fa61536ede1990 ansible_core-2.19.6.tar.gz +7d6f53dc33fc3defbe437b88bfaf87b3f7abbc56c4f1691e59342166c70bbebd ansible_core-2.19.7.tar.gz
