Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-acme for openSUSE:Factory checked in at 2022-06-25 10:24:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-acme (Old) and /work/SRC/openSUSE:Factory/.python-acme.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-acme" Sat Jun 25 10:24:41 2022 rev:59 rq:984952 version:1.28.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-acme/python-acme.changes 2022-05-30 12:45:28.292511999 +0200 +++ /work/SRC/openSUSE:Factory/.python-acme.new.1548/python-acme.changes 2022-06-25 10:25:02.518740550 +0200 @@ -1,0 +2,6 @@ +Fri Jun 24 19:25:33 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 1.28.0: + * use order "status" to determine action during finalization + +------------------------------------------------------------------- Old: ---- acme-1.27.0.tar.gz acme-1.27.0.tar.gz.asc New: ---- acme-1.28.0.tar.gz acme-1.28.0.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-acme.spec ++++++ --- /var/tmp/diff_new_pack.5UVD1g/_old 2022-06-25 10:25:03.042741298 +0200 +++ /var/tmp/diff_new_pack.5UVD1g/_new 2022-06-25 10:25:03.046741304 +0200 @@ -20,7 +20,7 @@ %define skip_python2 1 %define libname acme Name: python-%{libname} -Version: 1.27.0 +Version: 1.28.0 Release: 0 Summary: Python library for the ACME protocol License: Apache-2.0 ++++++ acme-1.27.0.tar.gz -> acme-1.28.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.27.0/PKG-INFO new/acme-1.28.0/PKG-INFO --- old/acme-1.27.0/PKG-INFO 2022-05-03 20:33:19.934802000 +0200 +++ new/acme-1.28.0/PKG-INFO 2022-06-07 21:41:21.792955600 +0200 @@ -1,12 +1,11 @@ Metadata-Version: 2.1 Name: acme -Version: 1.27.0 +Version: 1.28.0 Summary: ACME protocol implementation in Python Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project Author-email: certbot-...@eff.org License: Apache License 2.0 -Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License @@ -22,6 +21,3 @@ Provides-Extra: docs Provides-Extra: test License-File: LICENSE.txt - -UNKNOWN - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.27.0/acme/client.py new/acme-1.28.0/acme/client.py --- old/acme-1.27.0/acme/client.py 2022-05-03 20:33:10.000000000 +0200 +++ new/acme-1.28.0/acme/client.py 2022-06-07 21:41:07.000000000 +0200 @@ -797,9 +797,13 @@ time.sleep(1) response = self._post_as_get(orderr.uri) body = messages.Order.from_json(response.json()) - if body.error is not None: - raise errors.IssuanceError(body.error) - if body.certificate is not None: + if body.status == messages.STATUS_INVALID: + if body.error is not None: + raise errors.IssuanceError(body.error) + raise errors.Error( + "The certificate order failed. No further information was provided " + "by the server.") + elif body.status == messages.STATUS_VALID and body.certificate is not None: certificate_response = self._post_as_get(body.certificate) orderr = orderr.update(body=body, fullchain_pem=certificate_response.text) if fetch_alternative_chains: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.27.0/acme.egg-info/PKG-INFO new/acme-1.28.0/acme.egg-info/PKG-INFO --- old/acme-1.27.0/acme.egg-info/PKG-INFO 2022-05-03 20:33:19.000000000 +0200 +++ new/acme-1.28.0/acme.egg-info/PKG-INFO 2022-06-07 21:41:21.000000000 +0200 @@ -1,12 +1,11 @@ Metadata-Version: 2.1 Name: acme -Version: 1.27.0 +Version: 1.28.0 Summary: ACME protocol implementation in Python Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project Author-email: certbot-...@eff.org License: Apache License 2.0 -Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License @@ -22,6 +21,3 @@ Provides-Extra: docs Provides-Extra: test License-File: LICENSE.txt - -UNKNOWN - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.27.0/docs/jws-help.txt new/acme-1.28.0/docs/jws-help.txt --- old/acme-1.27.0/docs/jws-help.txt 2022-05-03 20:33:10.000000000 +0200 +++ new/acme-1.28.0/docs/jws-help.txt 2022-06-07 21:41:07.000000000 +0200 @@ -3,6 +3,6 @@ positional arguments: {sign,verify} -options: +optional arguments: -h, --help show this help message and exit --compact diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.27.0/setup.py new/acme-1.28.0/setup.py --- old/acme-1.27.0/setup.py 2022-05-03 20:33:11.000000000 +0200 +++ new/acme-1.28.0/setup.py 2022-06-07 21:41:08.000000000 +0200 @@ -3,7 +3,7 @@ from setuptools import find_packages from setuptools import setup -version = '1.27.0' +version = '1.28.0' install_requires = [ 'cryptography>=2.5.0', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.27.0/tests/client_test.py new/acme-1.28.0/tests/client_test.py --- old/acme-1.27.0/tests/client_test.py 2022-05-03 20:33:10.000000000 +0200 +++ new/acme-1.28.0/tests/client_test.py 2022-06-07 21:41:07.000000000 +0200 @@ -822,7 +822,8 @@ def test_finalize_order_success(self): updated_order = self.order.update( - certificate='https://www.letsencrypt-demo.org/acme/cert/') + certificate='https://www.letsencrypt-demo.org/acme/cert/', + status=messages.STATUS_VALID) updated_orderr = self.orderr.update(body=updated_order, fullchain_pem=CERT_SAN_PEM) self.response.json.return_value = updated_order.to_json() @@ -832,12 +833,22 @@ self.assertEqual(self.client.finalize_order(self.orderr, deadline), updated_orderr) def test_finalize_order_error(self): - updated_order = self.order.update(error=messages.Error.with_code('unauthorized')) + updated_order = self.order.update( + error=messages.Error.with_code('unauthorized'), + status=messages.STATUS_INVALID) self.response.json.return_value = updated_order.to_json() deadline = datetime.datetime(9999, 9, 9) self.assertRaises(errors.IssuanceError, self.client.finalize_order, self.orderr, deadline) + def test_finalize_order_invalid_status(self): + # https://github.com/certbot/certbot/issues/9296 + order = self.order.update(error=None, status=messages.STATUS_INVALID) + self.response.json.return_value = order.to_json() + with self.assertRaises(errors.Error) as error: + self.client.finalize_order(self.orderr, datetime.datetime(9999, 9, 9)) + self.assertIn("The certificate order failed", str(error.exception)) + def test_finalize_order_timeout(self): deadline = datetime.datetime.now() - datetime.timedelta(seconds=60) self.assertRaises(errors.TimeoutError, self.client.finalize_order, self.orderr, deadline) @@ -845,6 +856,7 @@ def test_finalize_order_alt_chains(self): updated_order = self.order.update( certificate='https://www.letsencrypt-demo.org/acme/cert/', + status=messages.STATUS_VALID ) updated_orderr = self.orderr.update(body=updated_order, fullchain_pem=CERT_SAN_PEM,