Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-scp for openSUSE:Factory checked in at 2026-10-09 21:46:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-scp (Old) and /work/SRC/openSUSE:Factory/.python-scp.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-scp" Fri Oct 9 21:46:35 2026 rev:17 rq:1383825 version:0.16.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-scp/python-scp.changes 2026-08-01 18:31:51.665026124 +0200 +++ /work/SRC/openSUSE:Factory/.python-scp.new.3698736/python-scp.changes 2026-10-09 21:47:53.553647175 +0200 @@ -1,0 +2,8 @@ +Wed Oct 7 05:47:42 UTC 2026 - Martin Hauke <[email protected]> + +- Update to version 0.16.2 + * Catch EOFError from channel.close() that happens sporadically + on some devices. + * Check erroneous server path on download. + +------------------------------------------------------------------- Old: ---- scp-0.16.1.tar.gz New: ---- scp-0.16.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-scp.spec ++++++ --- /var/tmp/diff_new_pack.9xdEoE/_old 2026-10-09 21:47:54.424683705 +0200 +++ /var/tmp/diff_new_pack.9xdEoE/_new 2026-10-09 21:47:54.425683747 +0200 @@ -19,7 +19,7 @@ %{?sle15_python_module_pythons} Name: python-scp -Version: 0.16.1 +Version: 0.16.2 Release: 0 Summary: SSH scp module for paramiko License: LGPL-2.1-or-later ++++++ scp-0.16.1.tar.gz -> scp-0.16.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scp.py-0.16.1/.github/workflows/test.yml new/scp.py-0.16.2/.github/workflows/test.yml --- old/scp.py-0.16.1/.github/workflows/test.yml 2026-07-29 17:59:23.000000000 +0200 +++ new/scp.py-0.16.2/.github/workflows/test.yml 2026-10-06 22:49:22.000000000 +0200 @@ -11,10 +11,9 @@ python-version: - "2.7" - "3.5" - - "3.7" - "3.8" - "3.10" - - "3.13" + - "3.14" runs-on: ubuntu-latest container: image: python:${{ matrix.python-version }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scp.py-0.16.1/CHANGELOG.md new/scp.py-0.16.2/CHANGELOG.md --- old/scp.py-0.16.1/CHANGELOG.md 2026-07-29 17:59:23.000000000 +0200 +++ new/scp.py-0.16.2/CHANGELOG.md 2026-10-06 22:49:22.000000000 +0200 @@ -1,5 +1,10 @@ # Changelog +## 0.16.2 (2026-10-06) + +- Catch `EOFError` from `channel.close()` that happens sporadically on some devices +- Check erroneous server path on download + ## 0.16.1 (2026-07-29) - Fix missing import for `paramiko`, causing exception handling to fail in close() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scp.py-0.16.1/scp.py new/scp.py-0.16.2/scp.py --- old/scp.py-0.16.1/scp.py 2026-07-29 17:59:23.000000000 +0200 +++ new/scp.py-0.16.2/scp.py 2026-10-06 22:49:22.000000000 +0200 @@ -5,7 +5,7 @@ Utilities for sending files over ssh using the scp1 protocol. """ -__version__ = '0.16.1' +__version__ = '0.16.2' import locale import os @@ -261,7 +261,7 @@ else: remote_path = list(remote_path) remote_path = [self.sanitize(asbytes(r)) for r in remote_path] - self._recv_dir = local_path or os.getcwd() + self._recv_dir = os.path.realpath(local_path or os.getcwd()) self._depth = 0 self._rename = (len(remote_path) == 1 and not os.path.isdir(os.path.abspath(local_path))) @@ -298,9 +298,9 @@ try: self.channel.shutdown_write() self.channel.recv_exit_status() + self.channel.close() except (EOFError, OSError, paramiko.SSHException): pass - self.channel.close() self.channel = None def _read_stats(self, name): @@ -471,10 +471,14 @@ name = parts[2].decode('utf-8') assert not os.path.isabs(name) path = os.path.join(asunicode_win(self._recv_dir), name) + if hasattr(os.path, 'commonpath'): + assert os.path.commonpath([os.path.realpath(path), asunicode_win(self._recv_dir)]) == asunicode_win(self._recv_dir) else: name = parts[2] assert not os.path.isabs(name) path = os.path.join(asbytes(self._recv_dir), name) + if hasattr(os.path, 'commonpath'): + assert os.path.commonpath([os.path.realpath(path), asbytes(self._recv_dir)]) == asbytes(self._recv_dir) except (ValueError, IndexError, AssertionError): chan.send('\x01') chan.close() @@ -553,7 +557,7 @@ raise SCPException('%s: Not a directory' % path) self._dirtimes[path] = (self._utime) self._utime = None - self._recv_dir = path + self._recv_dir = os.path.realpath(path) except (OSError, SCPException) as e: self.channel.send(b'\x01' + asbytes(str(e))) raise diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scp.py-0.16.1/setup.py new/scp.py-0.16.2/setup.py --- old/scp.py-0.16.1/setup.py 2026-07-29 17:59:23.000000000 +0200 +++ new/scp.py-0.16.2/setup.py 2026-10-06 22:49:22.000000000 +0200 @@ -10,7 +10,7 @@ description = fp.read() setup( name = 'scp', - version = '0.16.1', + version = '0.16.2', author = 'James Bardin', author_email = '[email protected]', maintainer="Remi Rampin",
