diff --git a/fabric-3.0.1.tar.gz b/fabric-3.0.1.tar.gz deleted file mode 100644 index 96445f5..0000000 --- a/fabric-3.0.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65af8199f3e90c226db0aa03984989084099b9758315d9a4001f5e32c8599a84 -size 169085 diff --git a/fabric-3.2.2.tar.gz b/fabric-3.2.2.tar.gz new file mode 100644 index 0000000..b61ecbf --- /dev/null +++ b/fabric-3.2.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8783ca42e3b0076f08b26901aac6b9d9b1f19c410074e7accfab902c184ff4a3 +size 183215 diff --git a/fix-test-deps.patch b/fix-test-deps.patch new file mode 100644 index 0000000..5377094 --- /dev/null +++ b/fix-test-deps.patch @@ -0,0 +1,72 @@ +Index: fabric-3.2.2/tests/conftest.py +=================================================================== +--- fabric-3.2.2.orig/tests/conftest.py ++++ fabric-3.2.2/tests/conftest.py +@@ -4,15 +4,9 @@ from unittest.mock import patch + + from pytest import fixture + +-# Set up icecream globally for convenience. +-from icecream import install as install_icecream +- + from fabric.testing.fixtures import client, remote, sftp, sftp_objs, transfer + + +-install_icecream() +- +- + # TODO: does this want to end up in the public fixtures module too? + @fixture(autouse=True) + def no_user_ssh_config(): +Index: fabric-3.2.2/tests/_util.py +=================================================================== +--- fabric-3.2.2.orig/tests/_util.py ++++ fabric-3.2.2/tests/_util.py +@@ -3,7 +3,7 @@ import os + import re + import sys + +-from invoke.vendor.lexicon import Lexicon ++from lexicon import Lexicon + from pytest_relaxed import trap + + from fabric.main import make_program +Index: fabric-3.2.2/tests/auth.py +=================================================================== +--- fabric-3.2.2.orig/tests/auth.py ++++ fabric-3.2.2/tests/auth.py +@@ -2,7 +2,7 @@ from getpass import getpass + from pathlib import Path + from unittest.mock import Mock, patch + +-from invoke.vendor.lexicon import Lexicon ++from lexicon import Lexicon + from pytest import raises, fixture + from paramiko import ( + AgentKey, +Index: fabric-3.2.2/tests/config.py +=================================================================== +--- fabric-3.2.2.orig/tests/config.py ++++ fabric-3.2.2/tests/config.py +@@ -3,7 +3,7 @@ from os.path import join, expanduser + + from paramiko.config import SSHConfig + from invoke import Local +-from invoke.vendor.lexicon import Lexicon ++from lexicon import Lexicon + + from fabric import Config, Remote, RemoteShell + from fabric.util import get_local_user +Index: fabric-3.2.2/tests/connection.py +=================================================================== +--- fabric-3.2.2.orig/tests/connection.py ++++ fabric-3.2.2/tests/connection.py +@@ -13,7 +13,7 @@ from paramiko import SSHConfig + import pytest # for mark, internal raises + from pytest import skip, param + from pytest_relaxed import raises +-from invoke.vendor.lexicon import Lexicon ++from lexicon import Lexicon + + from invoke.config import Config as InvokeConfig + from invoke.exceptions import ThreadException diff --git a/python-Fabric.changes b/python-Fabric.changes index b965b1d..f52a928 100644 --- a/python-Fabric.changes +++ b/python-Fabric.changes @@ -1,3 +1,51 @@ +------------------------------------------------------------------- +Thu Oct 19 08:51:37 UTC 2023 - Ondřej Súkup + +- Update to 3.2.2 +- add fix-test-deps.patch to remove vendored dependencies + *[Bug]: fabric.runners.Remote failed to properly deregister its SIGWINCH signal + handler on shutdown; in rare situations this could cause tracebacks when + the Python process receives SIGWINCH while no remote session is active. + This has been fixed. + * [Bug] #2204: The signal handling functionality added in Fabric 2.6 caused + unrecoverable tracebacks when invoked from inside a thread (such as + the use of fabric.group.ThreadingGroup) under certain interpreter versions. + This has been fixed by simply refusing to register signal handlers when not + in the main thread. Thanks to Francesco Giordano and others for the reports. + * [Bug]: Neglected to actually add deprecated to our runtime dependency + specification (it was still in our development dependencies). This has been fixed. + * [Feature]: Enhanced fabric.testing in ways large and small: + Backwards-compatibly merged the functionality of MockSFTP into MockRemote (may be + opted-into by instantiating the latter with enable_sftp=True) so you can mock + out both SSH and SFTP functionality in the same test, which was previously impossible. + It also means you can use this in a Pytest autouse fixture to prevent any tests + from accidentally hitting the network! + A new pytest fixture, remote_with_sftp, has been added which leverages the previous + bullet point (an all-in-one fixture suitable for, eg, preventing any incidental + ssh/sftp attempts during test execution). + A pile of documentation and test enhancements (yes, testing our testing helpers is a thing). + * [Support]: Added a new runtime dependency on the Deprecated library. + * [Support]: Language update: applied s/sanity/safety/g to the codebase + (with the few actual API members using the term now marked deprecated & new ones added + in the meantime, mostly in fabric.testing). + * [Feature]: Add a new CLI flag to fab, fab --list-agent-keys, which will attempt + to connect to your local SSH agent and print a key list, similarly to ssh-add -l. + This is mostly useful for expectations-checking Fabric and Paramiko’s agent + functionality, or for situations where you might not have ssh-add handy. + * [Feature]: Implement opt-in support for Paramiko 3.2’s AuthStrategy machinery, as follows: + Added a new module and class, fabric.auth.OpenSSHAuthStrategy, which leverages + aforementioned new Paramiko functionality to marry loaded SSH config files with + Fabric-level and runtime-level parameters, arriving at what should + be OpenSSH-client-compatible authentication behavior. See its API docs for details. + Added new configuration settings: + authentication.strategy_class, which defaults to None, + but can be set to OpenSSHAuthStrategy to opt-in to the new behavior. + authentication.identities, which defaults to the empty list, and can + be a list of private key paths for use by the new strategy class. + * [Bug] #2263: Explicitly add our dependency on decorator to setup.py instead of using + Invoke’s old, now removed, vendored copy of same. This allows Fabric to happily use + Invoke 2.1 and above + ------------------------------------------------------------------- Sun Jul 2 08:57:33 UTC 2023 - ecsos diff --git a/python-Fabric.spec b/python-Fabric.spec index 77f8ce1..4b2393e 100644 --- a/python-Fabric.spec +++ b/python-Fabric.spec @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-Fabric -Version: 3.0.1 +Version: 3.2.2 Release: 0 Summary: A Pythonic tool for remote execution and deployment License: BSD-2-Clause @@ -26,16 +26,21 @@ URL: https://fabfile.org Source: https://files.pythonhosted.org/packages/source/f/fabric/fabric-%{version}.tar.gz # PATCH-FIX-UPSTREAM gh#fabric/fabric#2209 Patch0: fix-executable.patch +# PATCH-FIX-OPENSUSE fix-test-deps.patch - remove usage of icecream and vendored libs +Patch1: fix-test-deps.patch +BuildRequires: %{python_module Deprecated} BuildRequires: %{python_module decorator} BuildRequires: %{python_module invoke >= 2.0} -BuildRequires: %{python_module paramiko >= 2.4} +BuildRequires: %{python_module lexicon} +BuildRequires: %{python_module paramiko >= 3.2} BuildRequires: %{python_module pytest-relaxed} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros +Requires: python-Deprecated Requires: python-decorator Requires: python-invoke >= 2.0 -Requires: python-paramiko >= 2.4 +Requires: python-paramiko >= 3.2 Requires(post): update-alternatives Requires(postun):update-alternatives Conflicts: python-Fabric3