Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-certbot-nginx for openSUSE:Factory checked in at 2021-06-24 18:22:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-certbot-nginx (Old) and /work/SRC/openSUSE:Factory/.python-certbot-nginx.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-certbot-nginx" Thu Jun 24 18:22:52 2021 rev:28 rq:901692 version:1.16.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-certbot-nginx/python-certbot-nginx.changes 2021-05-12 19:33:15.310792424 +0200 +++ /work/SRC/openSUSE:Factory/.python-certbot-nginx.new.2625/python-certbot-nginx.changes 2021-06-24 18:23:12.476958399 +0200 @@ -1,0 +2,6 @@ +Thu Jun 24 09:30:29 UTC 2021 - Mark??ta Machov?? <mmach...@suse.com> + +- update to version 1.16.0 + * Require the latest certbot and acme plugins for simplicity + +------------------------------------------------------------------- Old: ---- certbot-nginx-1.15.0.tar.gz New: ---- certbot-nginx-1.16.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-certbot-nginx.spec ++++++ --- /var/tmp/diff_new_pack.VwG8G8/_old 2021-06-24 18:23:12.828958790 +0200 +++ /var/tmp/diff_new_pack.VwG8G8/_new 2021-06-24 18:23:12.832958794 +0200 @@ -19,13 +19,13 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-certbot-nginx -Version: 1.15.0 +Version: 1.16.0 Release: 0 Summary: Nginx plugin for Certbot License: Apache-2.0 URL: https://github.com/letsencrypt/letsencrypt Source: https://files.pythonhosted.org/packages/source/c/certbot-nginx/certbot-nginx-%{version}.tar.gz -BuildRequires: %{python_module certbot >= 1.4.0} +BuildRequires: %{python_module certbot >= %{version}} BuildRequires: %{python_module pyOpenSSL} BuildRequires: %{python_module pyparsing >= 1.5.5} BuildRequires: %{python_module pytest} @@ -34,8 +34,8 @@ BuildRequires: nginx BuildRequires: python-rpm-macros Requires: nginx -Requires: python-acme >= 1.4.0 -Requires: python-certbot >= 1.4.0 +Requires: python-acme >= %{version} +Requires: python-certbot >= %{version} Requires: python-pyOpenSSL Requires: python-pyparsing >= 1.5.5 Requires: python-zope.interface ++++++ certbot-nginx-1.15.0.tar.gz -> certbot-nginx-1.16.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/PKG-INFO new/certbot-nginx-1.16.0/PKG-INFO --- old/certbot-nginx-1.15.0/PKG-INFO 2021-05-04 20:48:48.385637800 +0200 +++ new/certbot-nginx-1.16.0/PKG-INFO 2021-06-01 19:49:45.433660500 +0200 @@ -1,12 +1,11 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: certbot-nginx -Version: 1.15.0 +Version: 1.16.0 Summary: Nginx plugin for Certbot Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project Author-email: certbot-...@eff.org License: Apache License 2.0 -Description: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Plugins @@ -26,3 +25,7 @@ Classifier: Topic :: System :: Systems Administration Classifier: Topic :: Utilities Requires-Python: >=3.6 +License-File: LICENSE.txt + +UNKNOWN + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/certbot_nginx/_internal/configurator.py new/certbot-nginx-1.16.0/certbot_nginx/_internal/configurator.py --- old/certbot-nginx-1.15.0/certbot_nginx/_internal/configurator.py 2021-05-04 20:48:08.000000000 +0200 +++ new/certbot-nginx-1.16.0/certbot_nginx/_internal/configurator.py 2021-06-01 19:49:17.000000000 +0200 @@ -24,6 +24,7 @@ from certbot import errors from certbot import interfaces from certbot import util +from certbot.display import util as display_util from certbot.compat import os from certbot.plugins import common from certbot_nginx._internal import constants @@ -234,6 +235,8 @@ vhosts = self.choose_vhosts(domain, create_if_no_match=True) for vhost in vhosts: self._deploy_cert(vhost, cert_path, key_path, chain_path, fullchain_path) + display_util.notify("Successfully deployed certificate for {} to {}" + .format(domain, vhost.filep)) def _deploy_cert(self, vhost, cert_path, key_path, chain_path, fullchain_path): # pylint: disable=unused-argument """ @@ -675,8 +678,9 @@ """Generate invalid certs that let us create ssl directives for Nginx""" # TODO: generate only once tmp_dir = os.path.join(self.config.work_dir, "snakeoil") - le_key = crypto_util.init_save_key( - key_size=1024, key_dir=tmp_dir, keyname="key.pem") + le_key = crypto_util.generate_key( + key_size=1024, key_dir=tmp_dir, keyname="key.pem", + strict_permissions=self.config.strict_permissions) key = OpenSSL.crypto.load_privatekey( OpenSSL.crypto.FILETYPE_PEM, le_key.pem) cert = acme_crypto_util.gen_ss_cert(key, domains=[socket.gethostname()]) @@ -766,7 +770,7 @@ raise errors.PluginError( "Unsupported enhancement: {0}".format(enhancement)) except errors.PluginError: - logger.warning("Failed %s for %s", enhancement, domain) + logger.error("Failed %s for %s", enhancement, domain) raise def _has_certbot_redirect(self, vhost, domain): @@ -985,13 +989,14 @@ Unable to run Nginx version command """ try: - proc = subprocess.Popen( + proc = subprocess.run( [self.conf('ctl'), "-c", self.nginx_conf, "-V"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, + check=False, env=util.env_no_snap_for_external_calls()) - text = proc.communicate()[1] # nginx prints output to stderr + text = proc.stderr # nginx prints output to stderr except (OSError, ValueError) as error: logger.debug(str(error), exc_info=True) raise errors.PluginError( @@ -1075,6 +1080,13 @@ version=".".join(str(i) for i in self.version)) ) + def auth_hint(self, failed_achalls): # pragma: no cover + return ( + "The Certificate Authority failed to verify the temporary nginx configuration changes " + "made by Certbot. Ensure the listed domains point to this nginx server and that it is " + "accessible from the internet." + ) + ################################################### # Wrapper functions for Reverter class (IInstaller) ################################################### @@ -1224,10 +1236,9 @@ try: reload_output: Text = u"" with tempfile.TemporaryFile() as out: - proc = subprocess.Popen([nginx_ctl, "-c", nginx_conf, "-s", "reload"], - env=util.env_no_snap_for_external_calls(), - stdout=out, stderr=out) - proc.communicate() + proc = subprocess.run([nginx_ctl, "-c", nginx_conf, "-s", "reload"], + env=util.env_no_snap_for_external_calls(), + stdout=out, stderr=out, check=False) out.seek(0) reload_output = out.read().decode("utf-8") @@ -1237,9 +1248,8 @@ # Write to temporary files instead of piping because of communication issues on Arch # https://github.com/certbot/certbot/issues/4324 with tempfile.TemporaryFile() as out: - nginx_proc = subprocess.Popen([nginx_ctl, "-c", nginx_conf], - stdout=out, stderr=out, env=util.env_no_snap_for_external_calls()) - nginx_proc.communicate() + nginx_proc = subprocess.run([nginx_ctl, "-c", nginx_conf], + stdout=out, stderr=out, env=util.env_no_snap_for_external_calls(), check=False) if nginx_proc.returncode != 0: out.seek(0) # Enter recovery routine... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/certbot_nginx/_internal/http_01.py new/certbot-nginx-1.16.0/certbot_nginx/_internal/http_01.py --- old/certbot-nginx-1.15.0/certbot_nginx/_internal/http_01.py 2021-05-04 20:48:08.000000000 +0200 +++ new/certbot-nginx-1.16.0/certbot_nginx/_internal/http_01.py 2021-06-01 19:49:17.000000000 +0200 @@ -128,12 +128,12 @@ ipv6_addr = ipv6_addr + " ipv6only=on" addresses = [obj.Addr.fromstring(default_addr), obj.Addr.fromstring(ipv6_addr)] - logger.info(("Using default addresses %s and %s for authentication."), + logger.debug(("Using default addresses %s and %s for authentication."), default_addr, ipv6_addr) else: addresses = [obj.Addr.fromstring(default_addr)] - logger.info("Using default address %s for authentication.", + logger.debug("Using default address %s for authentication.", default_addr) return addresses diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/certbot_nginx/_internal/parser.py new/certbot-nginx-1.16.0/certbot_nginx/_internal/parser.py --- old/certbot-nginx-1.15.0/certbot_nginx/_internal/parser.py 2021-05-04 20:48:08.000000000 +0200 +++ new/certbot-nginx-1.16.0/certbot_nginx/_internal/parser.py 2021-06-01 19:49:17.000000000 +0200 @@ -217,7 +217,7 @@ "character. Only UTF-8 encoding is " "supported.", item) except pyparsing.ParseException as err: - logger.debug("Could not parse file: %s due to %s", item, err) + logger.warning("Could not parse file: %s due to %s", item, err) return trees def _find_config_root(self): @@ -430,7 +430,7 @@ logger.warning("Could not read file: %s due to invalid character. " "Only UTF-8 encoding is supported.", ssl_options) except pyparsing.ParseBaseException as err: - logger.debug("Could not parse file: %s due to %s", ssl_options, err) + logger.warning("Could not parse file: %s due to %s", ssl_options, err) return [] def _do_for_subarray(entry, condition, func, path=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/certbot_nginx.egg-info/PKG-INFO new/certbot-nginx-1.16.0/certbot_nginx.egg-info/PKG-INFO --- old/certbot-nginx-1.15.0/certbot_nginx.egg-info/PKG-INFO 2021-05-04 20:48:48.000000000 +0200 +++ new/certbot-nginx-1.16.0/certbot_nginx.egg-info/PKG-INFO 2021-06-01 19:49:45.000000000 +0200 @@ -1,12 +1,11 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: certbot-nginx -Version: 1.15.0 +Version: 1.16.0 Summary: Nginx plugin for Certbot Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project Author-email: certbot-...@eff.org License: Apache License 2.0 -Description: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Plugins @@ -26,3 +25,7 @@ Classifier: Topic :: System :: Systems Administration Classifier: Topic :: Utilities Requires-Python: >=3.6 +License-File: LICENSE.txt + +UNKNOWN + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/certbot_nginx.egg-info/requires.txt new/certbot-nginx-1.16.0/certbot_nginx.egg-info/requires.txt --- old/certbot-nginx-1.15.0/certbot_nginx.egg-info/requires.txt 2021-05-04 20:48:48.000000000 +0200 +++ new/certbot-nginx-1.16.0/certbot_nginx.egg-info/requires.txt 2021-06-01 19:49:45.000000000 +0200 @@ -1,5 +1,5 @@ -acme>=1.4.0 -certbot>=1.6.0 +acme>=1.8.0 +certbot>=1.16.0 PyOpenSSL>=17.3.0 pyparsing>=2.2.0 setuptools>=39.0.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/setup.py new/certbot-nginx-1.16.0/setup.py --- old/certbot-nginx-1.15.0/setup.py 2021-05-04 20:48:10.000000000 +0200 +++ new/certbot-nginx-1.16.0/setup.py 2021-06-01 19:49:18.000000000 +0200 @@ -1,13 +1,13 @@ from setuptools import find_packages from setuptools import setup -version = '1.15.0' +version = '1.16.0' # Remember to update local-oldest-requirements.txt when changing the minimum # acme/certbot version. install_requires = [ - 'acme>=1.4.0', - 'certbot>=1.6.0', + 'acme>=1.8.0', + 'certbot>=1.16.0', 'PyOpenSSL>=17.3.0', 'pyparsing>=2.2.0', 'setuptools>=39.0.1', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/tests/configurator_test.py new/certbot-nginx-1.16.0/tests/configurator_test.py --- old/certbot-nginx-1.15.0/tests/configurator_test.py 2021-05-04 20:48:08.000000000 +0200 +++ new/certbot-nginx-1.16.0/tests/configurator_test.py 2021-06-01 19:49:17.000000000 +0200 @@ -31,6 +31,10 @@ self.config = self.get_nginx_configurator( self.config_path, self.config_dir, self.work_dir, self.logs_dir) + patch = mock.patch('certbot_nginx._internal.configurator.display_util.notify') + self.mock_notify = patch.start() + self.addCleanup(patch.stop) + @mock.patch("certbot_nginx._internal.configurator.util.exe_exists") def test_prepare_no_install(self, mock_exe_exists): mock_exe_exists.return_value = False @@ -42,15 +46,16 @@ self.assertEqual(13, len(self.config.parser.parsed)) @mock.patch("certbot_nginx._internal.configurator.util.exe_exists") - @mock.patch("certbot_nginx._internal.configurator.subprocess.Popen") - def test_prepare_initializes_version(self, mock_popen, mock_exe_exists): - mock_popen().communicate.return_value = ( - "", "\n".join(["nginx version: nginx/1.6.2", + @mock.patch("certbot_nginx._internal.configurator.subprocess.run") + def test_prepare_initializes_version(self, mock_run, mock_exe_exists): + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = "\n".join( + ["nginx version: nginx/1.6.2", "built by clang 6.0 (clang-600.0.56)" " (based on LLVM 3.5svn)", "TLS SNI support enabled", "configure arguments: --prefix=/usr/local/Cellar/" - "nginx/1.6.2 --with-http_ssl_module"])) + "nginx/1.6.2 --with-http_ssl_module"]) mock_exe_exists.return_value = True @@ -347,141 +352,149 @@ self.assertEqual(mock_revert.call_count, 1) self.assertEqual(mock_restart.call_count, 2) - @mock.patch("certbot_nginx._internal.configurator.subprocess.Popen") - def test_get_version(self, mock_popen): - mock_popen().communicate.return_value = ( - "", "\n".join(["nginx version: nginx/1.4.2", + @mock.patch("certbot_nginx._internal.configurator.subprocess.run") + def test_get_version(self, mock_run): + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = "\n".join( + ["nginx version: nginx/1.4.2", "built by clang 6.0 (clang-600.0.56)" " (based on LLVM 3.5svn)", "TLS SNI support enabled", "configure arguments: --prefix=/usr/local/Cellar/" - "nginx/1.6.2 --with-http_ssl_module"])) + "nginx/1.6.2 --with-http_ssl_module"]) self.assertEqual(self.config.get_version(), (1, 4, 2)) - mock_popen().communicate.return_value = ( - "", "\n".join(["nginx version: nginx/0.9", + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = "\n".join( + ["nginx version: nginx/0.9", "built by clang 6.0 (clang-600.0.56)" " (based on LLVM 3.5svn)", "TLS SNI support enabled", - "configure arguments: --with-http_ssl_module"])) + "configure arguments: --with-http_ssl_module"]) self.assertEqual(self.config.get_version(), (0, 9)) - mock_popen().communicate.return_value = ( - "", "\n".join(["blah 0.0.1", + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = "\n".join( + ["blah 0.0.1", "built by clang 6.0 (clang-600.0.56)" " (based on LLVM 3.5svn)", "TLS SNI support enabled", - "configure arguments: --with-http_ssl_module"])) + "configure arguments: --with-http_ssl_module"]) self.assertRaises(errors.PluginError, self.config.get_version) - mock_popen().communicate.return_value = ( - "", "\n".join(["nginx version: nginx/1.4.2", - "TLS SNI support enabled"])) + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = "\n".join( + ["nginx version: nginx/1.4.2", + "TLS SNI support enabled"]) self.assertRaises(errors.PluginError, self.config.get_version) - mock_popen().communicate.return_value = ( - "", "\n".join(["nginx version: nginx/1.4.2", + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = "\n".join( + ["nginx version: nginx/1.4.2", "built by clang 6.0 (clang-600.0.56)" " (based on LLVM 3.5svn)", - "configure arguments: --with-http_ssl_module"])) + "configure arguments: --with-http_ssl_module"]) self.assertRaises(errors.PluginError, self.config.get_version) - mock_popen().communicate.return_value = ( - "", "\n".join(["nginx version: nginx/0.8.1", + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = "\n".join( + ["nginx version: nginx/0.8.1", "built by clang 6.0 (clang-600.0.56)" " (based on LLVM 3.5svn)", "TLS SNI support enabled", - "configure arguments: --with-http_ssl_module"])) + "configure arguments: --with-http_ssl_module"]) self.assertRaises(errors.NotSupportedError, self.config.get_version) - mock_popen.side_effect = OSError("Can't find program") + mock_run.side_effect = OSError("Can't find program") self.assertRaises(errors.PluginError, self.config.get_version) - @mock.patch("certbot_nginx._internal.configurator.subprocess.Popen") - def test_get_openssl_version(self, mock_popen): + @mock.patch("certbot_nginx._internal.configurator.subprocess.run") + def test_get_openssl_version(self, mock_run): # pylint: disable=protected-access - mock_popen().communicate.return_value = ( - "", """ + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = """ nginx version: nginx/1.15.5 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) built with OpenSSL 1.0.2g 1 Mar 2016 TLS SNI support enabled configure arguments: - """) + """ self.assertEqual(self.config._get_openssl_version(), "1.0.2g") - mock_popen().communicate.return_value = ( - "", """ + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = """ nginx version: nginx/1.15.5 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) built with OpenSSL 1.0.2-beta1 1 Mar 2016 TLS SNI support enabled configure arguments: - """) + """ self.assertEqual(self.config._get_openssl_version(), "1.0.2-beta1") - mock_popen().communicate.return_value = ( - "", """ + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = """ nginx version: nginx/1.15.5 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) built with OpenSSL 1.0.2 1 Mar 2016 TLS SNI support enabled configure arguments: - """) + """ self.assertEqual(self.config._get_openssl_version(), "1.0.2") - mock_popen().communicate.return_value = ( - "", """ + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = """ nginx version: nginx/1.15.5 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) built with OpenSSL 1.0.2g 1 Mar 2016 (running with OpenSSL 1.0.2a 1 Mar 2016) TLS SNI support enabled configure arguments: - """) + """ self.assertEqual(self.config._get_openssl_version(), "1.0.2a") - mock_popen().communicate.return_value = ( - "", """ + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = """ nginx version: nginx/1.15.5 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) built with LibreSSL 2.2.2 TLS SNI support enabled configure arguments: - """) + """ self.assertEqual(self.config._get_openssl_version(), "") - mock_popen().communicate.return_value = ( - "", """ + mock_run.return_value.stdout = "" + mock_run.return_value.stderr = """ nginx version: nginx/1.15.5 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) TLS SNI support enabled configure arguments: - """) + """ self.assertEqual(self.config._get_openssl_version(), "") - @mock.patch("certbot_nginx._internal.configurator.subprocess.Popen") + @mock.patch("certbot_nginx._internal.configurator.subprocess.run") @mock.patch("certbot_nginx._internal.configurator.time") - def test_nginx_restart(self, mock_time, mock_popen): - mocked = mock_popen() - mocked.communicate.return_value = ('', '') + def test_nginx_restart(self, mock_time, mock_run): + mocked = mock_run.return_value + mocked.stdout = '' + mocked.stderr = '' mocked.returncode = 0 self.config.restart() - self.assertEqual(mocked.communicate.call_count, 1) + self.assertEqual(mock_run.call_count, 1) mock_time.sleep.assert_called_once_with(0.1234) - @mock.patch("certbot_nginx._internal.configurator.subprocess.Popen") + @mock.patch("certbot_nginx._internal.configurator.subprocess.run") @mock.patch("certbot_nginx._internal.configurator.logger.debug") - def test_nginx_restart_fail(self, mock_log_debug, mock_popen): - mocked = mock_popen() - mocked.communicate.return_value = ('', '') + def test_nginx_restart_fail(self, mock_log_debug, mock_run): + mocked = mock_run.return_value + mocked.stdout = '' + mocked.stderr = '' mocked.returncode = 1 self.assertRaises(errors.MisconfigurationError, self.config.restart) - self.assertEqual(mocked.communicate.call_count, 2) + self.assertEqual(mock_run.call_count, 2) mock_log_debug.assert_called_once_with("nginx reload failed:\n%s", "") - @mock.patch("certbot_nginx._internal.configurator.subprocess.Popen") - def test_no_nginx_start(self, mock_popen): - mock_popen.side_effect = OSError("Can't find program") + @mock.patch("certbot_nginx._internal.configurator.subprocess.run") + def test_no_nginx_start(self, mock_run): + mock_run.side_effect = OSError("Can't find program") self.assertRaises(errors.MisconfigurationError, self.config.restart) @mock.patch("certbot.util.run_script") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-nginx-1.15.0/tests/test_util.py new/certbot-nginx-1.16.0/tests/test_util.py --- old/certbot-nginx-1.15.0/tests/test_util.py 2021-05-04 20:48:08.000000000 +0200 +++ new/certbot-nginx-1.16.0/tests/test_util.py 2021-06-01 19:49:17.000000000 +0200 @@ -9,7 +9,6 @@ except ImportError: # pragma: no cover from unittest import mock # type: ignore import pkg_resources -import zope.component from certbot import util from certbot.compat import os @@ -79,9 +78,6 @@ openssl_version=openssl_version) config.prepare() - # Provide general config utility. - zope.component.provideUtility(self.configuration) - return config