Skip to content

Configuration parser chokes on certain valid buildout configuration syntaxes #56

@dataflake

Description

@dataflake

Caution

Do not file security issues in this tracker.
Send email to security@plone.org instead.
See Report a security issue.

Describe the bug

The buildout configuration parser blows up on the buildout configuration syntax for prerequisite sections, specifically this line:

https://github.com/zopefoundation/Zope/blob/d99a18dfec8a809f32de7485ce3f7b8d03b00649/buildout.cfg#L80

To Reproduce

Steps to reproduce the behavior:

  • Install plone.versioncheck into the Zope buildout configuration as documented here.
  • Run bin/versioncheck -pn

Expected behavior

The script should run to completion and show output.

Screenshots

bin/versioncheck -pn
Parsing buildout files:
- /Users/jens/src/zope/Zope/buildout.cfg

Traceback (most recent call last):
  File "/Users/jens/src/zope/Zope/bin/versioncheck", line 21, in <module>
    sys.exit(plone.versioncheck.script.run())
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/jens/src/.eggs/plone.versioncheck-1.8.2-py3.13.egg/plone/versioncheck/script.py", line 120, in run
    pkgsinfo["pkgs"] = parse(args.buildout)
                       ~~~~~^^^^^^^^^^^^^^^
  File "/Users/jens/src/.eggs/plone.versioncheck-1.8.2-py3.13.egg/plone/versioncheck/parser.py", line 158, in parse
    version_sections, annotations = _extract_versions_section(
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~^
        session, buildout_filename, relative=base_relative
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/jens/src/.eggs/plone.versioncheck-1.8.2-py3.13.egg/plone/versioncheck/parser.py", line 71, in _extract_versions_section
    config.read(filename)
    ~~~~~~~~~~~^^^^^^^^^^
  File "/Users/jens/src/python/Python-3.13.7/lib/python3.13/configparser.py", line 737, in read
    self._read(fp, filename)
    ~~~~~~~~~~^^^^^^^^^^^^^^
  File "/Users/jens/src/python/Python-3.13.7/lib/python3.13/configparser.py", line 1052, in _read
    ParsingError._raise_all(self._read_inner(fp, fpname))
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jens/src/python/Python-3.13.7/lib/python3.13/configparser.py", line 334, in _raise_all
    raise next(exceptions).combine(exceptions)
configparser.ParsingError: Source contains parsing errors: '/Users/jens/src/zope/Zope/buildout.cfg'
	[line 82]: '=> make-docs\n'

Software (please complete the following information):

  • Zope master branch
  • plone.versioncheck 1.8.2

Additional context

As a workaround I pointed the script to the Zope versions.cfg file instead of buildout.cfg and that worked.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions