diff --git a/srcpkgs/ansible-core/patches/no-passlib-libxcrypt.patch b/srcpkgs/ansible-core/patches/no-passlib-libxcrypt.patch new file mode 100644 index 00000000000000..fe5195f3bbcf16 --- /dev/null +++ b/srcpkgs/ansible-core/patches/no-passlib-libxcrypt.patch @@ -0,0 +1,68 @@ +diff --git a/test/units/_internal/_encryption/test_crypt.py b/test/units/_internal/_encryption/test_crypt.py +index 661e2c66a6..efcb5c52af 100644 +--- a/test/units/_internal/_encryption/test_crypt.py ++++ b/test/units/_internal/_encryption/test_crypt.py +@@ -80,6 +80,7 @@ class TestCryptFacade: + assert crypt_facade._use_crypt_gensalt_rn is False + assert crypt_facade.has_crypt_gensalt + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_fail_errno(self, mocker: MockerFixture) -> None: + """Test crypt() setting failure errno raises OSError.""" + mocker.patch('ctypes.get_errno', return_value=errno.EBADFD) +@@ -88,6 +89,7 @@ class TestCryptFacade: + with pytest.raises(OSError, match=r'crypt failed:'): + crypt_facade.crypt(b"test", b"123") + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_result_none(self, mocker: MockerFixture) -> None: + """Test crypt() implementation returning None raises ValueError.""" + crypt_facade = CryptFacade() +@@ -96,6 +98,7 @@ class TestCryptFacade: + with pytest.raises(ValueError, match=r'crypt failed: invalid salt or unsupported algorithm'): + crypt_facade.crypt(b"test", b"123") + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_result_failure(self, mocker: MockerFixture) -> None: + """Test crypt() implementation returning failure token raises ValueError.""" + crypt_facade = CryptFacade() +@@ -104,6 +107,7 @@ class TestCryptFacade: + with pytest.raises(ValueError, match=r'crypt failed: invalid salt or unsupported algorithm'): + crypt_facade.crypt(b"test", b"123") + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_gensalt_called_with_no_impl(self, mocker: MockerFixture) -> None: + """Calling crypt_gensalt() without impl should raise NotImplementedError.""" + crypt_facade = CryptFacade() +@@ -113,6 +117,7 @@ class TestCryptFacade: + with pytest.raises(NotImplementedError, match=r'crypt_gensalt not available \(requires libxcrypt\)'): + crypt_facade.crypt_gensalt(b"", 1, b"") + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_gensalt(self, mocker: MockerFixture) -> None: + """Test the NOT _use_crypt_gensalt_rn code path of crypt_gensalt().""" + crypt_facade = CryptFacade() +@@ -122,6 +127,7 @@ class TestCryptFacade: + crypt_facade.crypt_gensalt(b'', 1, b'') + mock_impl.assert_called_once_with(b'', 1, b'', 0) + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_gensalt_fail_errno(self, mocker: MockerFixture) -> None: + """Test crypt_gensalt() setting failure errno raises OSError.""" + mocker.patch('ctypes.get_errno', return_value=errno.EBADFD) +@@ -130,6 +136,7 @@ class TestCryptFacade: + with pytest.raises(OSError, match=r'crypt_gensalt failed:'): + crypt_facade.crypt_gensalt(b'', 1, b'') + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_gensalt_result_none(self, mocker: MockerFixture) -> None: + """Test crypt_gensalt() implementation returning None raises ValueError.""" + crypt_facade = CryptFacade() +@@ -138,6 +145,7 @@ class TestCryptFacade: + with pytest.raises(ValueError, match=r'crypt_gensalt failed: unable to generate salt'): + crypt_facade.crypt_gensalt(b'', 1, b'') + ++ @pytest.mark.skip(reason='no libxcrypt') + def test_crypt_gensalt_result_failure(self, mocker: MockerFixture) -> None: + """Test crypt_gensalt() implementation returning failure token raises ValueError.""" + crypt_facade = CryptFacade() diff --git a/srcpkgs/ansible-core/patches/relax-version-contraints.patch b/srcpkgs/ansible-core/patches/relax-version-contraints.patch index 3b1246d702e49d..864aefd98bb004 100644 --- a/srcpkgs/ansible-core/patches/relax-version-contraints.patch +++ b/srcpkgs/ansible-core/patches/relax-version-contraints.patch @@ -1,9 +1,11 @@ ---- a/pyproject.toml 2025-07-21 21:13:25.000000000 +0330 -+++ b/pyproject.toml 2025-08-05 23:39:12.083997671 +0330 +diff --git a/pyproject.toml b/pyproject.toml +index 61bd257fdb..08b54fc0de 100644 +--- a/pyproject.toml ++++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] --requires = ["setuptools >= 66.1.0, <= 80.9.0", "wheel == 0.45.1"] # lower bound to support controller Python versions, upper bound for latest version tested at release -+requires = ["setuptools", "wheel"] +-requires = ["setuptools >= 77.0.3, <= 82.0.1"] # lower bound to support license/license-files (PEP 639), upper bound for latest version tested at release ++requires = ["setuptools"] build-backend = "setuptools.build_meta" [project] diff --git a/srcpkgs/ansible-core/patches/skip-failing-test.patch b/srcpkgs/ansible-core/patches/skip-failing-test.patch new file mode 100644 index 00000000000000..e0e9ff483c4096 --- /dev/null +++ b/srcpkgs/ansible-core/patches/skip-failing-test.patch @@ -0,0 +1,24 @@ +From c1035676c8fac9a08f442e8b47b75eef350074c8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= + +Date: Tue, 27 May 2025 10:01:20 +0200 +Subject: [PATCH 1/2] skip failing test + +--- + test/units/utils/test_display.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/units/utils/test_display.py b/test/units/utils/test_display.py +index 9d4d30fb04..4c0eb1fe00 100644 +--- a/test/units/utils/test_display.py ++++ b/test/units/utils/test_display.py +@@ -72,6 +72,7 @@ def test_Display_banner_get_text_width(monkeypatch, display_resource): + assert msg.endswith(stars) + + ++@pytest.mark.skip(reason='musl and glibc seem to disagree on the result of wcwidth') + def test_Display_banner_get_text_width_fallback(monkeypatch, display_resource): + locale.setlocale(locale.LC_ALL, 'C.UTF-8') + display = Display() +-- +2.50.1 diff --git a/srcpkgs/ansible-core/template b/srcpkgs/ansible-core/template index 39b5ce805f6e43..fd1eab0fc691a7 100644 --- a/srcpkgs/ansible-core/template +++ b/srcpkgs/ansible-core/template @@ -1,12 +1,12 @@ # Template file for 'ansible-core' pkgname=ansible-core -version=2.20.0 +version=2.21.0 revision=1 build_style=python3-pep517 hostmakedepends="python3-setuptools python3-wheel python3-docutils python3-Jinja2 python3-yaml" depends="python3-cryptography python3-Jinja2 python3-paramiko python3-yaml - python3-resolvelib git" + python3-resolvelib git python3-packaging" checkdepends="${depends} openssh python3-bcrypt python3-botocore python3-passlib python3-pexpect python3-pytest-mock python3-pytest-xdist python3-pytest-forked python3-pywinrm python3-voluptuous" @@ -16,7 +16,7 @@ license="GPL-3.0-or-later" homepage="https://www.ansible.com/" changelog="https://raw.githubusercontent.com/ansible/ansible/stable-${version%.*}/changelogs/CHANGELOG-v${version%.*}.rst" distfiles="${PYPI_SITE}/a/ansible_core/ansible_core-${version}.tar.gz" -checksum=cd73faf28a056c933bc1eee8f66ab597e7ec7309d42c8a6e5d6e4294c4a78b54 +checksum=28ccd0e2d1849f1c7272cec39a74a8a5c83f3d51314658fa5ca57ea85a87f454 conflicts="ansible<2.10.1_1" replaces="ansible-base>=0" @@ -28,6 +28,10 @@ do_check() { # needs mount rm test/units/modules/test_mount_facts.py + # passlib is not compatible with bcrypt >= 4.1.x + # see: https://github.com/pyca/bcrypt/issues/684 + rm -v test/units/utils/test_encrypt.py + bin/ansible-test units } diff --git a/srcpkgs/ansible/template b/srcpkgs/ansible/template index 3f69bc52ad4424..d25b134fbf0ab9 100644 --- a/srcpkgs/ansible/template +++ b/srcpkgs/ansible/template @@ -1,15 +1,15 @@ # Template file for 'ansible' pkgname=ansible -version=12.2.0 +version=13.7.0 revision=1 build_style="python3-pep517" hostmakedepends="python3-setuptools python3-wheel" -depends="ansible-core" +depends="ansible-core python3-packaging" short_desc="Simple deployment, configuration management and execution framework" maintainer="Orphaned " license="GPL-3.0-or-later" homepage="https://www.ansible.com/" distfiles="${PYPI_SITE}/a/ansible/ansible-${version}.tar.gz" -checksum=0563dfd33ebd28caf6ccdc7a6d22a7fdafbd9c9c42fefcae5179616a53a35211 +checksum=ebca5898346963691915bfea19048f5019b4e46f57e856dc1b790bcde3769224 # Relevant tests happen in ansible-core make_check=no diff --git a/srcpkgs/python3-ansible-compat/template b/srcpkgs/python3-ansible-compat/template index e3d6301903ce81..ec337b538ad367 100644 --- a/srcpkgs/python3-ansible-compat/template +++ b/srcpkgs/python3-ansible-compat/template @@ -1,23 +1,25 @@ # Template file for 'python3-ansible-compat' pkgname=python3-ansible-compat -version=24.9.1 -revision=3 +version=26.3.0 +revision=1 build_style=python3-pep517 # deselect unnecessary tests in venv make_check_args=" - --deselect test/test_runtime_scan_path.py::test_scan_sys_path[scanF-raises_not_foundT] - --deselect test/test_runtime_scan_path.py::test_scan_sys_path[scanT-raises_not_foundF] + --deselect test/test_prerun.py::test_get_cache_dir_isolation_no_venv_root + --deselect test/test_prerun.py::test_get_cache_dir_venv_ro_project_ro + --deselect test/test_runtime_scan_path.py::test_ro_venv " hostmakedepends="python3-wheel python3-setuptools_scm" depends="ansible-core python3-jsonschema python3-subprocess-tee python3-yaml python3-packaging" -checkdepends="${depends} python3-pytest python3-pytest-mock python3-cryptography" +checkdepends="${depends} python3-pytest python3-pytest-mock +python3-cryptography python3-pytest-instafail" short_desc="Python package for working with various version of ansible" maintainer="Orphaned " license="MIT" homepage="https://github.com/ansible/ansible-compat" distfiles="${PYPI_SITE}/a/ansible-compat/ansible_compat-${version}.tar.gz" -checksum=9ff20245e1bd9de9b23a367902524ab0e11fbcfb741831996da5da5b60ab95df +checksum=15f0ea5ff6fcc5587b6b11a4a436fdeefd0fd4a46afe92d4e483c28370082ae0 post_patch() { export SETUPTOOLS_SCM_PRETEND_VERSION="${version}" diff --git a/srcpkgs/python3-ansible-lint/template b/srcpkgs/python3-ansible-lint/template index ac2bac141dfda3..93c59ea9267f52 100644 --- a/srcpkgs/python3-ansible-lint/template +++ b/srcpkgs/python3-ansible-lint/template @@ -1,13 +1,14 @@ # Template file for 'python3-ansible-lint' pkgname=python3-ansible-lint -version=24.9.2 -revision=3 +version=26.4.0 +revision=1 build_style=python3-pep517 hostmakedepends="python3-wheel python3-setuptools_scm" depends="python3-ansible-compat ansible-core black python3-filelock python3-importlib_metadata python3-jsonschema python3-packaging python3-pathspec python3-yaml python3-rich python3-ruamel.yaml - python3-subprocess-tee python3-wcmatch python3-yamllint" + python3-subprocess-tee python3-wcmatch python3-yamllint python3-cffi + python3-cryptography python3-distro python3-referencing" checkdepends="${depends} python3-jmespath python3-license-expression python3-mypy python3-netaddr pylint python3-pytest python3-pytest-mock python3-pytest-xdist" @@ -21,7 +22,7 @@ maintainer="Orphaned " license="GPL-3.0-only" homepage="https://github.com/ansible/ansible-lint" distfiles="${PYPI_SITE}/a/ansible-lint/ansible_lint-${version}.tar.gz" -checksum=7cff6c5af10ef996b7c6010cbd48c91592764ae098f2b05408726899a1066a7f +checksum=29e0438f8af685a4fec96f9ea3404a3beb50d2911bc8df43f283256954ceea5b # cba anymore, the list of failing tests changes with every update make_check="no" diff --git a/srcpkgs/python3-pytest-instafail/template b/srcpkgs/python3-pytest-instafail/template new file mode 100644 index 00000000000000..275dc5db94df99 --- /dev/null +++ b/srcpkgs/python3-pytest-instafail/template @@ -0,0 +1,17 @@ +# Template file for 'python3-pytest-instafail' +pkgname=python3-pytest-instafail +version=0.5.0 +revision=1 +build_style=python3-pep517 +hostmakedepends="python3-setuptools_scm" +depends="python3-pytest" +short_desc="Pytest plugin that shows failures and errors instantly" +maintainer="Orphaned " +license="BSD-3-Clause" +homepage="https://github.com/pytest-dev/pytest-instafail" +distfiles="${PYPI_SITE}/p/pytest-instafail/pytest-instafail-${version}.tar.gz" +checksum=33a606f7e0c8e646dc3bfee0d5e3a4b7b78ef7c36168cfa1f3d93af7ca706c9e + +post_install() { + vlicense LICENSE +}