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
 

Reply via email to