Source: pyflakes
Version: 2.5.0-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20230726 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --with python3 --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:240: python3.11 setup.py config 
> /usr/lib/python3/dist-packages/setuptools/config/setupcfg.py:293: 
> _DeprecatedConfig: Deprecated config in `setup.cfg`
> !!
> 
>         
> ********************************************************************************
>         The license_file parameter is deprecated, use license_files instead.
> 
>         By 2023-Oct-30, you need to update your project and remove deprecated 
> calls
>         or your builds will no longer be supported.
> 
>         See 
> https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for 
> details.
>         
> ********************************************************************************
> 
> !!
>   parsed = self.parsers.get(option_name, lambda x: x)(value)
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:240: /usr/bin/python3 setup.py build 
> /usr/lib/python3/dist-packages/setuptools/config/setupcfg.py:293: 
> _DeprecatedConfig: Deprecated config in `setup.cfg`
> !!
> 
>         
> ********************************************************************************
>         The license_file parameter is deprecated, use license_files instead.
> 
>         By 2023-Oct-30, you need to update your project and remove deprecated 
> calls
>         or your builds will no longer be supported.
> 
>         See 
> https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for 
> details.
>         
> ********************************************************************************
> 
> !!
>   parsed = self.parsers.get(option_name, lambda x: x)(value)
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes
> copying pyflakes/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes
> copying pyflakes/reporter.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes
> copying pyflakes/api.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes
> copying pyflakes/__main__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes
> copying pyflakes/messages.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes
> copying pyflakes/checker.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes
> creating 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/scripts
> copying pyflakes/scripts/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/scripts
> copying pyflakes/scripts/pyflakes.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/scripts
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_dict.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_doctests.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_imports.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_other.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_builtin.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_checker.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/harness.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_undefined_names.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_code_segment.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_match.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_is_literal.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_api.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
> copying pyflakes/test/test_type_annotations.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/pyflakes/test
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild pybuild:307: mkdir -p 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/bin && ln -s 
> /<<PKGBUILDDIR>>/bin/pyflakes 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build/bin/pyflakes
> I: pybuild base:240: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build; python3.11 -m pytest 
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0
> rootdir: /<<PKGBUILDDIR>>
> collected 746 items
> 
> pyflakes/test/test_api.py .....................F..................       [  
> 5%]
> pyflakes/test/test_builtin.py ..                                         [  
> 5%]
> pyflakes/test/test_checker.py ...............                            [  
> 7%]
> pyflakes/test/test_code_segment.py .....                                 [  
> 8%]
> pyflakes/test/test_dict.py .........................                     [ 
> 11%]
> pyflakes/test/test_doctests.py .............s....s...................... [ 
> 17%]
> ...............................s........................................ [ 
> 26%]
> ........................................................................ [ 
> 36%]
> ...............ss..s..........s.......s..............                    [ 
> 43%]
> pyflakes/test/test_imports.py ....................................s..... [ 
> 49%]
> ........................................................................ [ 
> 58%]
> ...................                                                      [ 
> 61%]
> pyflakes/test/test_is_literal.py ...............................         [ 
> 65%]
> pyflakes/test/test_match.py .......                                      [ 
> 66%]
> pyflakes/test/test_other.py .............s....s......................... [ 
> 72%]
> .........................................s.............................. [ 
> 82%]
> ..s...........                                                           [ 
> 83%]
> pyflakes/test/test_type_annotations.py ................................. [ 
> 88%]
> ....................                                                     [ 
> 91%]
> pyflakes/test/test_undefined_names.py .................................. [ 
> 95%]
> ...............ss..s..........s..                                        
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _____________________ CheckTests.test_misencodedFileUTF16 
> ______________________
> 
> codeString = b'\xff\xfe#\x00 \x00c\x00o\x00d\x00i\x00n\x00g\x00:\x00 
> \x00a\x00s\x00c\x00i\x00i\x00\n\x00x\x00 \x00=\x00 \x00"\x00\x03&"\x00\n\x00'
> filename = '/tmp/tmp23f_7c6i'
> reporter = <pyflakes.reporter.Reporter object at 0x7fa57c224b10>
> 
>     def check(codeString, filename, reporter=None):
>         """
>         Check the Python source given by C{codeString} for flakes.
>     
>         @param codeString: The Python source to check.
>         @type codeString: C{str}
>     
>         @param filename: The name of the file the source came from, used to 
> report
>             errors.
>         @type filename: C{str}
>     
>         @param reporter: A L{Reporter} instance, where errors and warnings 
> will be
>             reported.
>     
>         @return: The number of warnings emitted.
>         @rtype: C{int}
>         """
>         if reporter is None:
>             reporter = modReporter._makeDefaultReporter()
>         # First, compile into an AST and handle syntax errors.
>         try:
> >           tree = ast.parse(codeString, filename=filename)
> 
> pyflakes/api.py:39: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> source = b'\xff\xfe#\x00 \x00c\x00o\x00d\x00i\x00n\x00g\x00:\x00 
> \x00a\x00s\x00c\x00i\x00i\x00\n\x00x\x00 \x00=\x00 \x00"\x00\x03&"\x00\n\x00'
> filename = '/tmp/tmp23f_7c6i', mode = 'exec'
> 
>     def parse(source, filename='<unknown>', mode='exec', *,
>               type_comments=False, feature_version=None):
>         """
>         Parse the source into an AST node.
>         Equivalent to compile(source, filename, mode, PyCF_ONLY_AST).
>         Pass type_comments=True to get back type comments where the syntax 
> allows.
>         """
>         flags = PyCF_ONLY_AST
>         if type_comments:
>             flags |= PyCF_TYPE_COMMENTS
>         if isinstance(feature_version, tuple):
>             major, minor = feature_version  # Should be a 2-tuple.
>             assert major == 3
>             feature_version = minor
>         elif feature_version is None:
>             feature_version = -1
>         # Else it should be an int giving the minor version for 3.x.
> >       return compile(source, filename, mode, flags,
>                        _feature_version=feature_version)
> E       SyntaxError: source code string cannot contain null bytes
> 
> /usr/lib/python3.11/ast.py:50: SyntaxError
> 
> During handling of the above exception, another exception occurred:
> 
> self = <pyflakes.test.test_api.CheckTests testMethod=test_misencodedFileUTF16>
> 
>         def test_misencodedFileUTF16(self):
>             """
>             If a source file contains bytes which cannot be decoded, this is
>             reported on stderr.
>             """
>             SNOWMAN = chr(0x2603)
>             source = ("""\
>     # coding: ascii
>     x = "%s"
>     """ % SNOWMAN).encode('utf-16')
>             with self.makeTempFile(source) as sourcePath:
> >               self.assertHasErrors(
>                     sourcePath, [f"{sourcePath}: problem decoding source\n"])
> 
> pyflakes/test/test_api.py:631: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> pyflakes/test/test_api.py:340: in assertHasErrors
>     count = withStderrTo(err, checkPath, path)
> pyflakes/test/test_api.py:32: in withStderrTo
>     return f(*args, **kwargs)
> pyflakes/api.py:72: in checkPath
>     return check(codestr, filename, reporter)
> pyflakes/api.py:41: in check
>     reporter.syntaxError(filename, e.args[0], e.lineno, e.offset, e.text)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <pyflakes.reporter.Reporter object at 0x7fa57c224b10>
> filename = '/tmp/tmp23f_7c6i'
> msg = 'source code string cannot contain null bytes', lineno = None
> offset = None, text = None
> 
>     def syntaxError(self, filename, msg, lineno, offset, text):
>         """
>         There was a syntax error in C{filename}.
>     
>         @param filename: The path to the file with the syntax error.
>         @ptype filename: C{unicode}
>         @param msg: An explanation of the syntax error.
>         @ptype msg: C{unicode}
>         @param lineno: The line number where the syntax error occurred.
>         @ptype lineno: C{int}
>         @param offset: The column on which the syntax error occurred, or None.
>         @ptype offset: C{int}
>         @param text: The source code containing the syntax error.
>         @ptype text: C{unicode}
>         """
>         if text is None:
>             line = None
>         else:
>             line = text.splitlines()[-1]
>     
>         # lineno might be 0 if the error came from stdin
> >       lineno = max(lineno, 1)
> E       TypeError: '>' not supported between instances of 'int' and 'NoneType'
> 
> pyflakes/reporter.py:60: TypeError
> =========================== short test summary info 
> ============================
> FAILED pyflakes/test/test_api.py::CheckTests::test_misencodedFileUTF16 - 
> Type...
> ================== 1 failed, 728 passed, 17 skipped in 1.86s 
> ===================
> E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyflakes/build; python3.11 -m pytest 
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 
> returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/07/26/pyflakes_2.5.0-1_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230726;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230726&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to