Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-python-gnupg for
openSUSE:Leap:16.0 checked in at 2025-04-07 13:58:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:16.0/python-python-gnupg (Old)
and /work/SRC/openSUSE:Leap:16.0/.python-python-gnupg.new.1907 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-gnupg"
Mon Apr 7 13:58:32 2025 rev:2 rq:1267571 version:0.5.4
Changes:
--------
---
/work/SRC/openSUSE:Leap:16.0/python-python-gnupg/python-python-gnupg.changes
2025-03-19 11:55:44.636424857 +0100
+++
/work/SRC/openSUSE:Leap:16.0/.python-python-gnupg.new.1907/python-python-gnupg.changes
2025-04-07 13:58:54.118335446 +0200
@@ -1,0 +2,12 @@
+Mon Feb 17 03:29:13 UTC 2025 - Steve Kowalik <[email protected]>
+
+- Switch to pyproject macros.
+- No more greedy globs in %files.
+
+-------------------------------------------------------------------
+Thu Feb 13 10:37:11 UTC 2025 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 0.5.4
+ * Fix #242: Handle exceptions in the on_data callable.
+
+-------------------------------------------------------------------
Old:
----
python-gnupg-0.5.3.tar.gz
New:
----
python-gnupg-0.5.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python-gnupg.spec ++++++
--- /var/tmp/diff_new_pack.9bO9JX/_old 2025-04-07 13:58:54.386346674 +0200
+++ /var/tmp/diff_new_pack.9bO9JX/_new 2025-04-07 13:58:54.390346841 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-python-gnupg
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,13 +18,13 @@
%{?sle15_python_module_pythons}
Name: python-python-gnupg
-Version: 0.5.3
+Version: 0.5.4
Release: 0
Summary: A wrapper for the GNU Privacy Guard (GPG or GnuPG)
License: BSD-3-Clause
-Group: Development/Languages/Python
URL: https://pythonhosted.org/python-gnupg/index.html
Source:
https://files.pythonhosted.org/packages/source/p/python-gnupg/python-gnupg-%{version}.tar.gz
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -42,13 +42,12 @@
%prep
%setup -q -n python-gnupg-%{version}
-echo "import setuptools; setuptools.setup()" > setup.py
%build
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
@@ -58,5 +57,7 @@
%files %{python_files}
%license LICENSE.txt
%doc README.rst
-%{python_sitelib}/*
+%{python_sitelib}/gnupg.py
+%pycache_only %{python_sitelib}/__pycache__/gnupg.*.pyc
+%{python_sitelib}/python_gnupg-%{version}.dist-info
++++++ python-gnupg-0.5.3.tar.gz -> python-gnupg-0.5.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-gnupg-0.5.3/PKG-INFO
new/python-gnupg-0.5.4/PKG-INFO
--- old/python-gnupg-0.5.3/PKG-INFO 2024-09-20 18:40:43.000000000 +0200
+++ new/python-gnupg-0.5.4/PKG-INFO 2025-01-07 12:57:56.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: python-gnupg
-Version: 0.5.3
+Version: 0.5.4
Summary: A wrapper for the Gnu Privacy Guard (GPG or GnuPG)
Home-page: https://github.com/vsajip/python-gnupg
Author: Vinay Sajip
@@ -26,6 +26,8 @@
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-gnupg-0.5.3/README.rst
new/python-gnupg-0.5.4/README.rst
--- old/python-gnupg-0.5.3/README.rst 2024-09-20 18:19:42.000000000 +0200
+++ new/python-gnupg-0.5.4/README.rst 2024-10-25 15:49:15.000000000 +0200
@@ -77,6 +77,7 @@
Released: Not yet
+* Fix #242: Handle exceptions in ``on_data`` callable.
0.5.3
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-gnupg-0.5.3/gnupg.py
new/python-gnupg-0.5.4/gnupg.py
--- old/python-gnupg-0.5.3/gnupg.py 2024-09-20 18:22:27.000000000 +0200
+++ new/python-gnupg-0.5.4/gnupg.py 2025-01-07 11:13:17.000000000 +0100
@@ -45,9 +45,9 @@
import sys
import threading
-__version__ = '0.5.3'
+__version__ = '0.5.4'
__author__ = 'Vinay Sajip'
-__date__ = '$20-Sep-2024 17:22:27$'
+__date__ = '$07-Jan-2025 10:13:17$'
STARTUPINFO = None
if os.name == 'nt': # pragma: no cover
@@ -217,6 +217,8 @@
The base class for handling status messages from `gpg`.
"""
+ on_data_failure = None # set at instance level when failures occur
+
def __init__(self, gpg):
"""
Initialize an instance.
@@ -1249,17 +1251,27 @@
# Read the contents of the file from GPG's stdout
assert buffer_size > 0
chunks = []
+ on_data_failure = None
while True:
data = stream.read(buffer_size)
if len(data) == 0:
if on_data:
- on_data(data)
+ try:
+ on_data(data)
+ except Exception as e:
+ if on_data_failure is None:
+ on_data_failure = e
break
if log_everything:
logger.debug('chunk: %r' % data[:256])
append = True
if on_data:
- append = on_data(data) is not False
+ try:
+ on_data_result = on_data(data)
+ append = on_data_result is not False
+ except Exception as e:
+ if on_data_failure is None:
+ on_data_failure = e
if append:
chunks.append(data)
if _py3k:
@@ -1267,6 +1279,8 @@
result.data = type(data)().join(chunks)
else:
result.data = ''.join(chunks)
+ if on_data_failure:
+ result.on_data_failure = on_data_failure
def _collect_output(self, process, result, writer=None, stdin=None):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-gnupg-0.5.3/python_gnupg.egg-info/PKG-INFO
new/python-gnupg-0.5.4/python_gnupg.egg-info/PKG-INFO
--- old/python-gnupg-0.5.3/python_gnupg.egg-info/PKG-INFO 2024-09-20
18:40:43.000000000 +0200
+++ new/python-gnupg-0.5.4/python_gnupg.egg-info/PKG-INFO 2025-01-07
12:57:56.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: python-gnupg
-Version: 0.5.3
+Version: 0.5.4
Summary: A wrapper for the Gnu Privacy Guard (GPG or GnuPG)
Home-page: https://github.com/vsajip/python-gnupg
Author: Vinay Sajip
@@ -26,6 +26,8 @@
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-gnupg-0.5.3/setup.cfg
new/python-gnupg-0.5.4/setup.cfg
--- old/python-gnupg-0.5.3/setup.cfg 2024-09-20 18:40:43.000000000 +0200
+++ new/python-gnupg-0.5.4/setup.cfg 2025-01-07 12:57:56.000000000 +0100
@@ -40,6 +40,8 @@
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
+ Programming Language :: Python :: 3.12
+ Programming Language :: Python :: 3.13
Operating System :: OS Independent
Topic :: Software Development :: Libraries :: Python Modules
project_urls =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-gnupg-0.5.3/test_gnupg.py
new/python-gnupg-0.5.4/test_gnupg.py
--- old/python-gnupg-0.5.3/test_gnupg.py 2024-09-20 18:23:25.000000000
+0200
+++ new/python-gnupg-0.5.4/test_gnupg.py 2025-01-07 11:12:41.000000000
+0100
@@ -35,7 +35,7 @@
import gnupg
__author__ = 'Vinay Sajip'
-__date__ = '$20-Sep-2024 17:23:25$'
+__date__ = '$07-Jan-2025 10:12:41$'
ALL_TESTS = True
@@ -832,6 +832,7 @@
gpg.on_data = collector
result = gpg.encrypt(data, barbara)
self.assertEqual(0, result.returncode, 'Non-zero return code')
+ self.assertIsNone(result.on_data_failure)
edata = str(result)
self.assertTrue(chunks)
expected = type(chunks[0])().join(chunks)
@@ -840,9 +841,21 @@
ddata = gpg.decrypt(edata, passphrase='bbrown')
self.assertEqual(0, ddata.returncode, 'Non-zero return code')
self.assertEqual(data.encode('ascii'), ddata.data, 'Round-trip must
work')
+ self.assertIsNone(result.on_data_failure)
expected = type(chunks[0])().join(chunks)
self.assertEqual(expected.decode('ascii'), data)
+ # test with on-data generating an exception
+
+ def exceptor(data):
+ raise ValueError('exception in on_data')
+
+ chunks = []
+ gpg.on_data = exceptor
+ ddata = gpg.decrypt(edata, passphrase='bbrown')
+ self.assertIs(type(ddata.on_data_failure), ValueError)
+ self.assertEqual(str(ddata.on_data_failure), 'exception in on_data')
+
# test signing with encryption and verification during decryption
logger.debug('encrypting with signature')
gpg.on_data = None