Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-certbot for openSUSE:Factory checked in at 2026-07-23 23:15:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-certbot (Old) and /work/SRC/openSUSE:Factory/.python-certbot.new.2004 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-certbot" Thu Jul 23 23:15:29 2026 rev:68 rq:1367392 version:5.7.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-certbot/python-certbot.changes 2026-05-14 21:44:56.247484661 +0200 +++ /work/SRC/openSUSE:Factory/.python-certbot.new.2004/python-certbot.changes 2026-07-23 23:17:58.932396885 +0200 @@ -1,0 +2,7 @@ +Thu Jul 23 11:32:18 UTC 2026 - Markéta Machová <[email protected]> + +- update to 5.7.0 + * Fixed nginx configuration parsing when comments appear between + tokens of a multi-line directive + +------------------------------------------------------------------- Old: ---- certbot-5.6.0.tar.gz New: ---- certbot-5.7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-certbot.spec ++++++ --- /var/tmp/diff_new_pack.Iiujia/_old 2026-07-23 23:17:59.468416050 +0200 +++ /var/tmp/diff_new_pack.Iiujia/_new 2026-07-23 23:17:59.468416050 +0200 @@ -23,7 +23,7 @@ %endif %{?sle15_python_module_pythons} Name: python-certbot -Version: 5.6.0 +Version: 5.7.0 Release: 0 Summary: ACME client License: Apache-2.0 ++++++ certbot-5.6.0.tar.gz -> certbot-5.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/CHANGELOG.md new/certbot-5.7.0/CHANGELOG.md --- old/certbot-5.6.0/CHANGELOG.md 2026-05-11 17:56:17.000000000 +0200 +++ new/certbot-5.7.0/CHANGELOG.md 2026-07-07 20:28:27.000000000 +0200 @@ -4,6 +4,13 @@ <!-- towncrier release notes start --> +## 5.7.0 - 2026-07-07 + +### Fixed + +- Fixed nginx configuration parsing when comments appear between tokens of a multi-line directive. ([#10598](https://github.com/certbot/certbot/issues/10598)) + + ## 5.6.0 - 2026-05-11 ### Changed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/PKG-INFO new/certbot-5.7.0/PKG-INFO --- old/certbot-5.6.0/PKG-INFO 2026-05-11 17:56:18.764637500 +0200 +++ new/certbot-5.7.0/PKG-INFO 2026-07-07 20:28:27.783317300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: certbot -Version: 5.6.0 +Version: 5.7.0 Summary: ACME client Author: Certbot Project License-Expression: Apache-2.0 @@ -25,7 +25,7 @@ Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: LICENSE.txt -Requires-Dist: acme>=5.6.0 +Requires-Dist: acme>=5.7.0 Requires-Dist: ConfigArgParse>=1.5.3 Requires-Dist: configobj>=5.0.6 Requires-Dist: cryptography>=43.0.0 @@ -37,7 +37,6 @@ Requires-Dist: pywin32>=300; sys_platform == "win32" Provides-Extra: dev Requires-Dist: apacheconfig>=0.3.2; extra == "dev" -Requires-Dist: azure-devops; extra == "dev" Requires-Dist: build; extra == "dev" Requires-Dist: ipdb; extra == "dev" Requires-Dist: poetry-plugin-export>=1.9.0; extra == "dev" @@ -66,10 +65,10 @@ Requires-Dist: uv; extra == "test" Requires-Dist: wheel; extra == "test" Provides-Extra: apache -Requires-Dist: certbot-apache>=5.6.0; extra == "apache" +Requires-Dist: certbot-apache>=5.7.0; extra == "apache" Requires-Dist: python-augeas; extra == "apache" Provides-Extra: nginx -Requires-Dist: certbot-nginx>=5.6.0; extra == "nginx" +Requires-Dist: certbot-nginx>=5.7.0; extra == "nginx" Requires-Dist: PyOpenSSL>=25.0.0; extra == "nginx" Requires-Dist: pyparsing>=3.0.0; extra == "nginx" Provides-Extra: all @@ -82,9 +81,9 @@ |build-status| -.. |build-status| image:: https://img.shields.io/azure-devops/build/certbot/ba534f81-a483-4b9b-9b4e-a60bec8fee72/5/main - :target: https://dev.azure.com/certbot/certbot/_build?definitionId=5 - :alt: Azure Pipelines CI status +.. |build-status| image:: https://img.shields.io/github/actions/workflow/status/certbot/certbot/nightly.yml + :target: https://github.com/certbot/certbot/actions/workflows/nightly.yml + :alt: GitHub Actions nightly CI status .. image:: https://raw.githubusercontent.com/EFForg/design/master/logos/certbot/eff-certbot-lockup.png :width: 200 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/README.rst new/certbot-5.7.0/README.rst --- old/certbot-5.6.0/README.rst 2026-05-11 17:56:16.000000000 +0200 +++ new/certbot-5.7.0/README.rst 2026-07-07 20:28:26.000000000 +0200 @@ -2,9 +2,9 @@ |build-status| -.. |build-status| image:: https://img.shields.io/azure-devops/build/certbot/ba534f81-a483-4b9b-9b4e-a60bec8fee72/5/main - :target: https://dev.azure.com/certbot/certbot/_build?definitionId=5 - :alt: Azure Pipelines CI status +.. |build-status| image:: https://img.shields.io/github/actions/workflow/status/certbot/certbot/nightly.yml + :target: https://github.com/certbot/certbot/actions/workflows/nightly.yml + :alt: GitHub Actions nightly CI status .. image:: https://raw.githubusercontent.com/EFForg/design/master/logos/certbot/eff-certbot-lockup.png :width: 200 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/docs/cli-help.txt new/certbot-5.7.0/docs/cli-help.txt --- old/certbot-5.6.0/docs/cli-help.txt 2026-05-11 17:56:16.000000000 +0200 +++ new/certbot-5.7.0/docs/cli-help.txt 2026-07-07 20:28:26.000000000 +0200 @@ -38,7 +38,7 @@ options: -h, --help show this help message and exit - -c, --config CONFIG_FILE + -c CONFIG_FILE, --config CONFIG_FILE path to config file (default: /etc/letsencrypt/cli.ini and ~/.config/letsencrypt/cli.ini) -v, --verbose This flag can be used multiple times to incrementally @@ -58,7 +58,7 @@ --force-interactive Force Certbot to be interactive even if it detects it's not being run in a terminal. This flag cannot be used with the renew subcommand. (default: False) - -d, --domains, --domain DOMAIN + -d DOMAIN, --domains DOMAIN, --domain DOMAIN Domain names to include. For multiple domains you can use multiple -d flags or enter a comma separated list of domains as a parameter. All domains will be @@ -147,7 +147,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/5.5.0 (certbot; + "". (default: CertbotACMEClient/5.6.0 (certbot; OS_NAME OS_VERSION) Authenticator/XXX Installer/YYY (SUBCOMMAND; flags: FLAGS) Py/major.minor.patchlevel). The flags encoded in the user agent are: --duplicate, @@ -424,7 +424,8 @@ register: Options for account registration - -m, --email EMAIL Email used for registration and recovery contact. Use + -m EMAIL, --email EMAIL + Email used for registration and recovery contact. Use comma to register multiple emails, ex: [email protected],[email protected]. (default: Ask). --eff-email Share your e-mail address with EFF (default: Ask) @@ -477,9 +478,9 @@ Name of the plugin that is both an authenticator and an installer. Should not be used together with --authenticator or --installer. (default: Ask) - -a, --authenticator AUTHENTICATOR + -a AUTHENTICATOR, --authenticator AUTHENTICATOR Authenticator plugin name. (default: None) - -i, --installer INSTALLER + -i INSTALLER, --installer INSTALLER Installer plugin name (also used to find domains). (default: None) --apache Obtain and install certificates using Apache (default: @@ -756,7 +757,7 @@ be running and serving files from the webroot path. HTTP challenge only (wildcards not supported). - --webroot-path, -w WEBROOT_PATH + --webroot-path WEBROOT_PATH, -w WEBROOT_PATH public_html / webroot path. This can be specified multiple times to handle different identifiers; each identifier will have the webroot path that preceded diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/docs/contributing.rst new/certbot-5.7.0/docs/contributing.rst --- old/certbot-5.6.0/docs/contributing.rst 2026-05-11 17:56:16.000000000 +0200 +++ new/certbot-5.7.0/docs/contributing.rst 2026-07-07 20:28:26.000000000 +0200 @@ -156,7 +156,7 @@ Running automated integration tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Generally it is sufficient to open a pull request and let Github and Azure Pipelines run +Generally it is sufficient to open a pull request and let GitHub run integration tests for you. However, you may want to run them locally before submitting your pull request. You need Docker installed and working. @@ -224,8 +224,8 @@ Running tests in CI ~~~~~~~~~~~~~~~~~~~ -Certbot uses Azure Pipelines to run continuous integration tests. If you are using our -Azure setup, a branch whose name starts with `test-` will run all tests on that branch. +Certbot uses GitHub Actions to run continuous integration tests. If you are using our +GitHub Actions setup, a branch whose name starts with `test-` will run all tests on that branch. Code components and layout ========================== @@ -526,7 +526,7 @@ containing your pull request to squash or amend commits. We use `squash merges <https://github.com/blog/2141-squash-your-commits>`_ on PRs and rewriting commits makes changes harder to track between reviews. -7. Did your tests pass on Azure Pipelines? If they didn't, fix any errors. +7. Did your tests pass on GitHub Actions? If they didn't, fix any errors. .. _ask for help: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/docs/using.rst new/certbot-5.7.0/docs/using.rst --- old/certbot-5.6.0/docs/using.rst 2026-05-11 17:56:16.000000000 +0200 +++ new/certbot-5.7.0/docs/using.rst 2026-07-07 20:28:26.000000000 +0200 @@ -336,6 +336,7 @@ dns-hetzner-cloud_ Y N DNS Authentication for Hetzner Cloud DNS dns-czechia_ Y N DNS Authentication for czechia.com dns-eurodns_ Y N DNS Authentication for EuroDNS +dns-dnscale_ Y N DNS Authenticator for DNScale ======================= ==== ==== ================================================================= .. _haproxy: https://github.com/greenhost/certbot-haproxy @@ -373,6 +374,7 @@ .. _dns-hetzner-cloud: https://github.com/rolschewsky/certbot-dns-hetzner-cloud .. _dns-czechia: https://github.com/CZECHIA-COM/certbot-dns-czechia .. _dns-eurodns: https://pypi.org/project/certbot-dns-eurodns/ +.. _dns-dnscale: https://github.com/dnscaleou/certbot-dns-dnscale 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-5.6.0/setup.py new/certbot-5.7.0/setup.py --- old/certbot-5.6.0/setup.py 2026-05-11 17:56:16.000000000 +0200 +++ new/certbot-5.7.0/setup.py 2026-07-07 20:28:26.000000000 +0200 @@ -43,7 +43,6 @@ extras_require = { "dev": [ "apacheconfig>=0.3.2", - "azure-devops", "build", "ipdb", # allows us to use newer urllib3 https://github.com/python-poetry/poetry-plugin-export/issues/183 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/src/certbot/__init__.py new/certbot-5.7.0/src/certbot/__init__.py --- old/certbot-5.6.0/src/certbot/__init__.py 2026-05-11 17:56:17.000000000 +0200 +++ new/certbot-5.7.0/src/certbot/__init__.py 2026-07-07 20:28:27.000000000 +0200 @@ -1,4 +1,4 @@ """Certbot client.""" # version number like 1.2.3a0, must have at least 2 parts, like 1.2 -__version__ = '5.6.0' +__version__ = '5.7.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/src/certbot/_internal/plugins/nginx/nginxparser.py new/certbot-5.7.0/src/certbot/_internal/plugins/nginx/nginxparser.py --- old/certbot-5.6.0/src/certbot/_internal/plugins/nginx/nginxparser.py 2026-05-11 17:56:16.000000000 +0200 +++ new/certbot-5.7.0/src/certbot/_internal/plugins/nginx/nginxparser.py 2026-07-07 20:28:26.000000000 +0200 @@ -13,6 +13,7 @@ from typing import Union from pyparsing import Combine +from pyparsing import FollowedBy from pyparsing import Forward from pyparsing import Group from pyparsing import Literal @@ -50,15 +51,29 @@ token = paren_quote_extend | tokenchars | quoted - whitespace_token_group = space + token + ZeroOrMore(required_space + token) + space - assignment = whitespace_token_group + semicolon + # An nginx comment runs from '#' to the end of the line. `restOfLine` does + # not consume the trailing newline; the following `required_space` does. + comment = Literal('#') + restOfLine + # A separator between two tokens is whitespace, optionally interleaved with + # one or more comments. The `FollowedBy(token)` lookahead means a comment is + # only treated as inline when a real token follows it — otherwise we leave + # the `#` alone so existing fallback paths (e.g. comment-as-token in a block + # header) still parse. This lets a multi-line directive contain comment + # lines between its tokens (valid nginx), which the old grammar mis-parsed: + # an unbalanced `"` inside such a comment would be sucked up by the + # `multiline=True` quoted strings and run away across the rest of the file + # (issue #10598). + token_separator = required_space + ZeroOrMore( + comment + required_space + FollowedBy(token) + ) - comment = space + Literal('#') + restOfLine + whitespace_token_group = space + token + ZeroOrMore(token_separator + token) + space + assignment = whitespace_token_group + semicolon block = Forward() # order matters! see issue 518, and also http { # server { \n} - contents = Group(comment) | Group(block) | Group(assignment) + contents = Group(space + comment) | Group(block) | Group(assignment) block_begin = Group(whitespace_token_group) block_innards = Group(ZeroOrMore(contents) + space).leave_whitespace() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/src/certbot/_internal/tests/plugins/nginx/nginxparser_test.py new/certbot-5.7.0/src/certbot/_internal/tests/plugins/nginx/nginxparser_test.py --- old/certbot-5.6.0/src/certbot/_internal/tests/plugins/nginx/nginxparser_test.py 2026-05-11 17:56:16.000000000 +0200 +++ new/certbot-5.7.0/src/certbot/_internal/tests/plugins/nginx/nginxparser_test.py 2026-07-07 20:28:26.000000000 +0200 @@ -201,6 +201,20 @@ [['#', ' server{']]] ] + def test_comment_inside_multiline_directive(self): + # See https://github.com/certbot/certbot/issues/10598 + # An unbalanced double-quote inside a comment that sits between tokens + # of a multi-line directive must not be sucked into a multiline quoted + # string and run away across the rest of the file. + source = ("http {\n" + " log_format json_test escape=json '{'\n" + " # '\"req\": \"$request\"' # GET \"/test?...\n" + " '}';\n" + "}\n") + parsed = loads(source) + # The config parses and round-trips byte-for-byte. + assert dumps(parsed) == source + def test_access_log(self): # see issue #3798 parsed = loads('access_log syslog:server=unix:/dev/log,facility=auth,' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/src/certbot.egg-info/PKG-INFO new/certbot-5.7.0/src/certbot.egg-info/PKG-INFO --- old/certbot-5.6.0/src/certbot.egg-info/PKG-INFO 2026-05-11 17:56:18.000000000 +0200 +++ new/certbot-5.7.0/src/certbot.egg-info/PKG-INFO 2026-07-07 20:28:27.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: certbot -Version: 5.6.0 +Version: 5.7.0 Summary: ACME client Author: Certbot Project License-Expression: Apache-2.0 @@ -25,7 +25,7 @@ Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: LICENSE.txt -Requires-Dist: acme>=5.6.0 +Requires-Dist: acme>=5.7.0 Requires-Dist: ConfigArgParse>=1.5.3 Requires-Dist: configobj>=5.0.6 Requires-Dist: cryptography>=43.0.0 @@ -37,7 +37,6 @@ Requires-Dist: pywin32>=300; sys_platform == "win32" Provides-Extra: dev Requires-Dist: apacheconfig>=0.3.2; extra == "dev" -Requires-Dist: azure-devops; extra == "dev" Requires-Dist: build; extra == "dev" Requires-Dist: ipdb; extra == "dev" Requires-Dist: poetry-plugin-export>=1.9.0; extra == "dev" @@ -66,10 +65,10 @@ Requires-Dist: uv; extra == "test" Requires-Dist: wheel; extra == "test" Provides-Extra: apache -Requires-Dist: certbot-apache>=5.6.0; extra == "apache" +Requires-Dist: certbot-apache>=5.7.0; extra == "apache" Requires-Dist: python-augeas; extra == "apache" Provides-Extra: nginx -Requires-Dist: certbot-nginx>=5.6.0; extra == "nginx" +Requires-Dist: certbot-nginx>=5.7.0; extra == "nginx" Requires-Dist: PyOpenSSL>=25.0.0; extra == "nginx" Requires-Dist: pyparsing>=3.0.0; extra == "nginx" Provides-Extra: all @@ -82,9 +81,9 @@ |build-status| -.. |build-status| image:: https://img.shields.io/azure-devops/build/certbot/ba534f81-a483-4b9b-9b4e-a60bec8fee72/5/main - :target: https://dev.azure.com/certbot/certbot/_build?definitionId=5 - :alt: Azure Pipelines CI status +.. |build-status| image:: https://img.shields.io/github/actions/workflow/status/certbot/certbot/nightly.yml + :target: https://github.com/certbot/certbot/actions/workflows/nightly.yml + :alt: GitHub Actions nightly CI status .. image:: https://raw.githubusercontent.com/EFForg/design/master/logos/certbot/eff-certbot-lockup.png :width: 200 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.6.0/src/certbot.egg-info/requires.txt new/certbot-5.7.0/src/certbot.egg-info/requires.txt --- old/certbot-5.6.0/src/certbot.egg-info/requires.txt 2026-05-11 17:56:18.000000000 +0200 +++ new/certbot-5.7.0/src/certbot.egg-info/requires.txt 2026-07-07 20:28:27.000000000 +0200 @@ -1,4 +1,4 @@ -acme>=5.6.0 +acme>=5.7.0 ConfigArgParse>=1.5.3 configobj>=5.0.6 cryptography>=43.0.0 @@ -17,12 +17,11 @@ certbot[apache,dev,docs,nginx,test] [apache] -certbot-apache>=5.6.0 +certbot-apache>=5.7.0 python-augeas [dev] apacheconfig>=0.3.2 -azure-devops build ipdb poetry-plugin-export>=1.9.0 @@ -35,7 +34,7 @@ sphinx_rtd_theme [nginx] -certbot-nginx>=5.6.0 +certbot-nginx>=5.7.0 PyOpenSSL>=25.0.0 pyparsing>=3.0.0
