Hello community, here is the log from the commit of package python-certbot for openSUSE:Factory checked in at 2019-09-13 14:59:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-certbot (Old) and /work/SRC/openSUSE:Factory/.python-certbot.new.7948 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-certbot" Fri Sep 13 14:59:01 2019 rev:17 rq:730161 version:0.38.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-certbot/python-certbot.changes 2019-08-28 16:03:58.318778043 +0200 +++ /work/SRC/openSUSE:Factory/.python-certbot.new.7948/python-certbot.changes 2019-09-13 14:59:03.553279119 +0200 @@ -1,0 +2,9 @@ +Wed Sep 11 12:29:03 UTC 2019 - Marketa Calabkova <[email protected]> + +- update to version 0.38.0 + * If Certbot fails to rollback your server configuration, the + error message links to the Let's Encrypt forum. + * Replace platform.linux_distribution with distro.linux_distribution + as a step towards Python 3.8 support in Certbot. + +------------------------------------------------------------------- Old: ---- certbot-0.37.2.tar.gz New: ---- certbot-0.38.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-certbot.spec ++++++ --- /var/tmp/diff_new_pack.rZfY1Z/_old 2019-09-13 14:59:04.013279139 +0200 +++ /var/tmp/diff_new_pack.rZfY1Z/_new 2019-09-13 14:59:04.017279139 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-certbot -Version: 0.37.2 +Version: 0.38.0 Release: 0 Summary: ACME client License: Apache-2.0 @@ -29,6 +29,7 @@ BuildRequires: %{python_module configargparse >= 0.9.3} BuildRequires: %{python_module configobj} BuildRequires: %{python_module cryptography >= 1.2.3} +BuildRequires: %{python_module distro >= 1.0.1} BuildRequires: %{python_module future} BuildRequires: %{python_module josepy >= 1.1.0} BuildRequires: %{python_module mock} @@ -46,6 +47,7 @@ Requires: python-configargparse >= 0.9.3 Requires: python-configobj Requires: python-cryptography >= 1.2.3 +Requires: python-distro >= 1.0.1 Requires: python-future Requires: python-josepy >= 1.1.0 Requires: python-mock ++++++ certbot-0.37.2.tar.gz -> certbot-0.38.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/CHANGELOG.md new/certbot-0.38.0/CHANGELOG.md --- old/certbot-0.37.2/CHANGELOG.md 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/CHANGELOG.md 2019-09-03 21:42:35.000000000 +0200 @@ -2,10 +2,28 @@ Certbot adheres to [Semantic Versioning](https://semver.org/). -## 0.37.2 - 2019-08-21 +## 0.38.0 - 2019-09-03 + +### Added + +* + +### Changed + +* If Certbot fails to rollback your server configuration, the error message + links to the Let's Encrypt forum. Change the link to the Help category now + that the Server category has been closed. +* Replace platform.linux_distribution with distro.linux_distribution as a step + towards Python 3.8 support in Certbot. ### Fixed +* Fixed OS detection in the Apache plugin on Scientific Linux. + +More details about these changes can be found on our GitHub repo. + +## 0.37.2 - 2019-08-21 + * Stop disabling TLS session tickets in Nginx as it caused TLS failures on some systems. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/PKG-INFO new/certbot-0.38.0/PKG-INFO --- old/certbot-0.37.2/PKG-INFO 2019-08-21 23:48:42.000000000 +0200 +++ new/certbot-0.38.0/PKG-INFO 2019-09-03 21:42:38.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: certbot -Version: 0.37.2 +Version: 0.38.0 Summary: ACME client Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/__init__.py new/certbot-0.38.0/certbot/__init__.py --- old/certbot-0.37.2/certbot/__init__.py 2019-08-21 23:48:41.000000000 +0200 +++ new/certbot-0.38.0/certbot/__init__.py 2019-09-03 21:42:37.000000000 +0200 @@ -1,4 +1,4 @@ """Certbot client.""" # version number like 1.2.3a0, must have at least 2 parts, like 1.2 -__version__ = '0.37.2' +__version__ = '0.38.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/client.py new/certbot-0.38.0/certbot/client.py --- old/certbot-0.37.2/certbot/client.py 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/certbot/client.py 2019-09-03 21:42:35.000000000 +0200 @@ -624,7 +624,7 @@ reporter.add_message( "An error occurred and we failed to restore your config and " "restart your server. Please post to " - "https://community.letsencrypt.org/c/server-config " + "https://community.letsencrypt.org/c/help " "with details about your configuration and this error you received.", reporter.HIGH_PRIORITY) raise diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/compat/filesystem.py new/certbot-0.38.0/certbot/compat/filesystem.py --- old/certbot-0.37.2/certbot/compat/filesystem.py 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/certbot/compat/filesystem.py 2019-09-03 21:42:35.000000000 +0200 @@ -166,11 +166,11 @@ # See https://docs.microsoft.com/en-us/windows/desktop/api/securitybaseapi/nf-securitybaseapi-setsecuritydescriptordacl # pylint: disable=line-too-long security.SetSecurityDescriptorDacl(1, dacl, 0) + handle = None try: handle = win32file.CreateFile(file_path, win32file.GENERIC_READ, win32file.FILE_SHARE_READ & win32file.FILE_SHARE_WRITE, attributes, disposition, 0, None) - handle.Close() except pywintypes.error as err: # Handle native windows errors into python errors to be consistent with the API # of os.open in the situation of a file already existing or locked. @@ -179,6 +179,9 @@ if err.winerror == winerror.ERROR_SHARING_VIOLATION: raise OSError(errno.EACCES, err.strerror) raise err + finally: + if handle: + handle.Close() # At this point, the file that did not exist has been created with proper permissions, # so os.O_CREAT and os.O_EXCL are not needed anymore. We remove them from the flags to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/tests/cli_test.py new/certbot-0.38.0/certbot/tests/cli_test.py --- old/certbot-0.37.2/certbot/tests/cli_test.py 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/certbot/tests/cli_test.py 2019-09-03 21:42:35.000000000 +0200 @@ -23,21 +23,27 @@ class TestReadFile(TempDirTestCase): - '''Test cli.read_file''' - - + """Test cli.read_file""" def test_read_file(self): - rel_test_path = os.path.relpath(os.path.join(self.tempdir, 'foo')) - self.assertRaises( - argparse.ArgumentTypeError, cli.read_file, rel_test_path) - - test_contents = b'bar\n' - with open(rel_test_path, 'wb') as f: - f.write(test_contents) - - path, contents = cli.read_file(rel_test_path) - self.assertEqual(path, os.path.abspath(path)) - self.assertEqual(contents, test_contents) + curr_dir = os.getcwd() + try: + # On Windows current directory may be on a different drive than self.tempdir. + # However a relative path between two different drives is invalid. So we move to + # self.tempdir to ensure that we stay on the same drive. + os.chdir(self.tempdir) + rel_test_path = os.path.relpath(os.path.join(self.tempdir, 'foo')) + self.assertRaises( + argparse.ArgumentTypeError, cli.read_file, rel_test_path) + + test_contents = b'bar\n' + with open(rel_test_path, 'wb') as f: + f.write(test_contents) + + path, contents = cli.read_file(rel_test_path) + self.assertEqual(path, os.path.abspath(path)) + self.assertEqual(contents, test_contents) + finally: + os.chdir(curr_dir) class FlagDefaultTest(unittest.TestCase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/tests/compat/filesystem_test.py new/certbot-0.38.0/certbot/tests/compat/filesystem_test.py --- old/certbot-0.37.2/certbot/tests/compat/filesystem_test.py 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/certbot/tests/compat/filesystem_test.py 2019-09-03 21:42:35.000000000 +0200 @@ -210,15 +210,15 @@ def _test_one_creation(self, num, file_exist, flags): one_file = os.path.join(self.tempdir, str(num)) if file_exist and not os.path.exists(one_file): - open(one_file, 'w').close() + with open(one_file, 'w'): + pass handler = None try: handler = filesystem.open(one_file, flags) - except BaseException as err: + finally: if handler: os.close(handler) - raise err @unittest.skipIf(POSIX_MODE, reason='Test specific to Windows security') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/tests/util.py new/certbot-0.38.0/certbot/tests/util.py --- old/certbot-0.37.2/certbot/tests/util.py 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/certbot/tests/util.py 2019-09-03 21:42:35.000000000 +0200 @@ -5,7 +5,6 @@ """ import logging import shutil -import stat import sys import tempfile import unittest @@ -339,16 +338,7 @@ logging.getLogger().handlers = [] util._release_locks() # pylint: disable=protected-access - def handle_rw_files(_, path, __): - """Handle read-only files, that will fail to be removed on Windows.""" - filesystem.chmod(path, stat.S_IWRITE) - try: - os.remove(path) - except (IOError, OSError): - # TODO: remote the try/except once all logic from windows file permissions is merged - if os.name != 'nt': - raise - shutil.rmtree(self.tempdir, onerror=handle_rw_files) + shutil.rmtree(self.tempdir) class ConfigTestCase(TempDirTestCase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/tests/util_test.py new/certbot-0.38.0/certbot/tests/util_test.py --- old/certbot-0.37.2/certbot/tests/util_test.py 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/certbot/tests/util_test.py 2019-09-03 21:42:35.000000000 +0200 @@ -520,11 +520,11 @@ with mock.patch('platform.system_alias', return_value=('linux', '', '')): - with mock.patch('platform.linux_distribution', + with mock.patch('distro.linux_distribution', return_value=('', '', '')): self.assertEqual(get_python_os_info(), ("linux", "")) - with mock.patch('platform.linux_distribution', + with mock.patch('distro.linux_distribution', return_value=('testdist', '42', '')): self.assertEqual(get_python_os_info(), ("testdist", "42")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot/util.py new/certbot-0.38.0/certbot/util.py --- old/certbot-0.37.2/certbot/util.py 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/certbot/util.py 2019-09-03 21:42:35.000000000 +0200 @@ -14,6 +14,7 @@ import subprocess import configargparse +import distro import six from acme.magic_typing import Tuple, Union # pylint: disable=unused-import, no-name-in-module @@ -391,8 +392,8 @@ os_type, os_ver, _ = info os_type = os_type.lower() if os_type.startswith('linux'): - info = platform.linux_distribution() - # On arch, platform.linux_distribution() is reportedly ('','',''), + info = distro.linux_distribution() + # On arch, distro.linux_distribution() is reportedly ('','',''), # so handle it defensively if info[0]: os_type = info[0] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot.egg-info/PKG-INFO new/certbot-0.38.0/certbot.egg-info/PKG-INFO --- old/certbot-0.37.2/certbot.egg-info/PKG-INFO 2019-08-21 23:48:42.000000000 +0200 +++ new/certbot-0.38.0/certbot.egg-info/PKG-INFO 2019-09-03 21:42:37.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: certbot -Version: 0.37.2 +Version: 0.38.0 Summary: ACME client Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/certbot.egg-info/requires.txt new/certbot-0.38.0/certbot.egg-info/requires.txt --- old/certbot-0.37.2/certbot.egg-info/requires.txt 2019-08-21 23:48:42.000000000 +0200 +++ new/certbot-0.38.0/certbot.egg-info/requires.txt 2019-09-03 21:42:37.000000000 +0200 @@ -2,6 +2,7 @@ ConfigArgParse>=0.9.3 configobj cryptography>=1.2.3 +distro>=1.0.1 josepy>=1.1.0 mock parsedatetime>=1.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/docs/cli-help.txt new/certbot-0.38.0/docs/cli-help.txt --- old/certbot-0.37.2/docs/cli-help.txt 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/docs/cli-help.txt 2019-09-03 21:42:35.000000000 +0200 @@ -113,7 +113,7 @@ case, and to know when to deprecate support for past Python versions and flags. If you wish to hide this information from the Let's Encrypt server, set this to - "". (default: CertbotACMEClient/0.37.1 + "". (default: CertbotACMEClient/0.37.2 (certbot(-auto); OS_NAME OS_VERSION) Authenticator/XXX Installer/YYY (SUBCOMMAND; flags: FLAGS) Py/major.minor.patchlevel). The flags encoded in the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/docs/contributing.rst new/certbot-0.38.0/docs/contributing.rst --- old/certbot-0.37.2/docs/contributing.rst 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/docs/contributing.rst 2019-09-03 21:42:35.000000000 +0200 @@ -114,9 +114,9 @@ run all of the unittests for Certbot with ``tox -e py27`` (this uses Python 2.7). -Once all the unittests pass, check for sufficient test coverage using -``tox -e cover``, and then check for code style with ``tox -e lint`` (all files) -or ``pylint --rcfile=.pylintrc path/to/file.py`` (single file at a time). +Once all the unittests pass, check for sufficient test coverage using ``tox -e +py27-cover``, and then check for code style with ``tox -e lint`` (all files) or +``pylint --rcfile=.pylintrc path/to/file.py`` (single file at a time). Once all of the above is successful, you may run the full test suite using ``tox --skip-missing-interpreters``. We recommend running the commands above diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/docs/install.rst new/certbot-0.38.0/docs/install.rst --- old/certbot-0.37.2/docs/install.rst 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/docs/install.rst 2019-09-03 21:42:35.000000000 +0200 @@ -200,23 +200,39 @@ **Debian** -If you run Debian Stretch or Debian Sid, you can install certbot packages. +If you run Debian Buster or Debian testing/Sid, you can easily install certbot +packages through commands like: .. code-block:: shell sudo apt-get update - sudo apt-get install certbot python-certbot-apache + sudo apt-get install certbot -If you don't want to use the Apache plugin, you can omit the -``python-certbot-apache`` package. Or you can install ``python-certbot-nginx`` instead. +If you run Debian Stretch, we recommend you use the packages in Debian +backports repository. First you'll have to follow the instructions at +https://backports.debian.org/Instructions/ to enable the Stretch backports repo, +if you have not already done so. Then run: -Packages exist for Debian Jessie via backports. First you'll have to follow the -instructions at http://backports.debian.org/Instructions/ to enable the Jessie backports -repo, if you have not already done so. Then run: +.. code-block:: shell + + sudo apt-get install certbot -t stretch-backports + +In all of these cases, there also packages available to help Certbot integrate +with Apache, nginx, or various DNS services. If you are using Apache or nginx, +we strongly recommend that you install the ``python-certbot-apache`` or +``python-certbot-nginx`` package so that Certbot can fully automate HTTPS +configuration for your server. A full list of these packages can be found +through a command like: .. code-block:: shell - sudo apt-get install certbot python-certbot-apache -t jessie-backports + apt search 'python-certbot*' + +They can be installed by running the same installation command above but +replacing ``certbot`` with the name of the desired package. + +There are no Certbot packages available for Debian Jessie and Jessie users +should instead use certbot-auto_. **Ubuntu** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/docs/using.rst new/certbot-0.38.0/docs/using.rst --- old/certbot-0.37.2/docs/using.rst 2019-08-21 23:48:40.000000000 +0200 +++ new/certbot-0.38.0/docs/using.rst 2019-09-03 21:42:35.000000000 +0200 @@ -281,6 +281,7 @@ proxmox_ N Y Install certificates in Proxmox Virtualization servers heroku_ Y Y Integration with Heroku SSL dns-standalone_ Y N Obtain certificates via an integrated DNS server +dns-ispconfig_ Y N DNS Authentication using ISPConfig as DNS server ================== ==== ==== =============================================================== .. _haproxy: https://github.com/greenhost/certbot-haproxy @@ -294,6 +295,7 @@ .. _external: https://github.com/marcan/letsencrypt-external .. _heroku: https://github.com/gboudreau/certbot-heroku .. _dns-standalone: https://github.com/siilike/certbot-dns-standalone +.. _dns-ispconfig: https://github.com/m42e/certbot-dns-ispconfig If you're interested, you can also :ref:`write your own plugin <dev-plugin>`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-0.37.2/setup.py new/certbot-0.38.0/setup.py --- old/certbot-0.37.2/setup.py 2019-08-21 23:48:41.000000000 +0200 +++ new/certbot-0.38.0/setup.py 2019-09-03 21:42:36.000000000 +0200 @@ -41,6 +41,7 @@ 'ConfigArgParse>=0.9.3', 'configobj', 'cryptography>=1.2.3', # load_pem_x509_certificate + 'distro>=1.0.1', # 1.1.0+ is required to avoid the warnings described at # https://github.com/certbot/josepy/issues/13. 'josepy>=1.1.0',
