Bug#1036731: python3-debian: fails to parse some debian/control.in files
Dylan Aïssi
bob.dybian at gmail.com
Wed May 24 21:56:21 BST 2023
Package: python3-debian
Version: 0.1.49
Hello,
python3-debian is not able anymore to parse correctly some debian/control.in.
The first version with this issue is 0.1.44, so I suppose it is related to the
new RTS parser. The consequence of this bug is wrap-and-sort crashes when it
run on these files. Below is the error message:
Traceback (most recent call last):
File "/usr/bin/wrap-and-sort", line 496, in <module>
main()
File "/usr/bin/wrap-and-sort", line 481, in main
modified_files = wrap_and_sort(args)
^^^^^^^^^^^^^^^^^^^
File "/usr/bin/wrap-and-sort", line 312, in wrap_and_sort
control = WrapAndSortControl(control_file, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/wrap-and-sort", line 99, in __init__
super().__init__(filename, use_rts_parser=args.rts_parser)
File "/usr/lib/python3/dist-packages/devscripts/control.py", line
210, in __init__
self._deb822_file = parse_deb822_file(sequence)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/parsing.py",
line 3095, in parse_deb822_file
deb822_file = Deb822FileElement(LinkedList(tokens))
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debian/_util.py", line 159, in __init__
self.extend(values)
File "/usr/lib/python3/dist-packages/debian/_util.py", line 272, in extend
for v in values:
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/_util.py",
line 104, in _impl
for token in token_stream:
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/_util.py",
line 104, in _impl
for token in token_stream:
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/parsing.py",
line 2991, in _build_field_with_value
value_element = next(buffered_stream, None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/_util.py",
line 143, in __next__
return next(self._stream)
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/_util.py",
line 104, in _impl
for token in token_stream:
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/parsing.py",
line 2939, in _build_value_line
tokens_in_value = list(buffered_stream.takewhile(_non_end_of_line_token))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/_util.py",
line 149, in takewhile
while buffer or self._fill_buffer(5):
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/_util.py",
line 198, in _fill_buffer
self._buffer.append(next(self._stream))
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/_util.py",
line 104, in _impl
for token in token_stream:
File "/usr/lib/python3/dist-packages/debian/_deb822_repro/parsing.py",
line 3031, in _abort_on_error_tokens
raise SyntaxOrParseError(
debian._deb822_repro.types.SyntaxOrParseError: Syntax or Parse error
on the line: "%if USE_SYSTEM_ZLIB\n"
An easy way to reproduce the crash is to run wrap-and-sort on the
debian/ folder of
firefox-esr:
> wget http://deb.debian.org/debian/pool/main/f/firefox-esr/firefox-esr_102.11.0esr-1.debian.tar.xz
> tar -xvf firefox-esr
> wrap-and-sort
It crashes in a similar way on these packages: babel-minify and xapian-bindings.
Best regards,
Dylan
More information about the pkg-python-debian-maint
mailing list