Package: src:python-handy-archives Version: 0.2.0-5 Severity: serious Control: fixed -1 0.2.0-7 Tags: ftbfs trixie
Dear maintainer: During a rebuild of all packages in trixie, this package failed to build. [ Note: The bug is marked as fixed with the version in forky/sid, but packages in trixie must still build in trixie ]. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/trixie/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:python-handy-archives, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_absolute_arcnames [32mPASSED[0m[32m [ 52%][0m tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_append [32mPASSED[0m[32m [ 52%][0m tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_bad_zip64_extra [31mFAILED[0m[31m [ 53%][0m tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_generated_valid_zip64_extra [31mFAILED[0m[31m [ 53%][0m tests/test_zipfile.py::TestDeflateTestZip64InSmallFiles::test_basic [32mPASSED[0m[31m [ 54%][0m tests/test_zipfile.py::TestDeflateTestZip64InSmallFiles::test_too_many_files [32mPASSED[0m[31m [ 54%][0m tests/test_zipfile.py::TestDeflateTestZip64InSmallFiles::test_too_many_files_append [32mPASSED[0m[31m [ 55%][0m tests/test_zipfile.py::TestBzip2TestZip64InSmallFiles::test_basic [32mPASSED[0m[31m [ 55%][0m tests/test_zipfile.py::TestBzip2TestZip64InSmallFiles::test_too_many_files [32mPASSED[0m[31m [ 55%][0m tests/test_zipfile.py::TestBzip2TestZip64InSmallFiles::test_too_many_files_append [32mPASSED[0m[31m [ 56%][0m tests/test_zipfile.py::TestLzmaTestZip64InSmallFiles::test_basic [32mPASSED[0m[31m [ 56%][0m tests/test_zipfile.py::TestLzmaTestZip64InSmallFiles::test_too_many_files [32mPASSED[0m[31m [ 57%][0m tests/test_zipfile.py::TestLzmaTestZip64InSmallFiles::test_too_many_files_append [32mPASSED[0m[31m [ 57%][0m tests/test_zipfile.py::TestStoredWriter::test_close_after_close [32mPASSED[0m[31m [ 58%][0m tests/test_zipfile.py::TestStoredWriter::test_write_after_close [32mPASSED[0m[31m [ 58%][0m tests/test_zipfile.py::TestDeflateWriter::test_close_after_close [32mPASSED[0m[31m [ 59%][0m tests/test_zipfile.py::TestDeflateWriter::test_write_after_close [32mPASSED[0m[31m [ 59%][0m tests/test_zipfile.py::TestBzip2Writer::test_close_after_close [32mPASSED[0m[31m [ 60%][0m tests/test_zipfile.py::TestBzip2Writer::test_write_after_close [32mPASSED[0m[31m [ 60%][0m tests/test_zipfile.py::TestLzmaWriter::test_close_after_close [32mPASSED[0m[31m [ 61%][0m tests/test_zipfile.py::TestLzmaWriter::test_write_after_close [32mPASSED[0m[31m [ 61%][0m tests/test_zipfile.py::TestExtract::test_extract [32mPASSED[0m[31m [ 62%][0m tests/test_zipfile.py::TestExtract::test_extract_with_target [32mPASSED[0m[31m [ 62%][0m tests/test_zipfile.py::TestExtract::test_extract_with_target_pathlike [32mPASSED[0m[31m [ 63%][0m tests/test_zipfile.py::TestExtract::test_extract_all [32mPASSED[0m[31m [ 63%][0m tests/test_zipfile.py::TestExtract::test_extract_all_with_target [32mPASSED[0m[31m [ 64%][0m tests/test_zipfile.py::TestExtract::test_extract_all_with_target_pathlike [32mPASSED[0m[31m [ 64%][0m tests/test_zipfile.py::TestExtract::test_sanitize_windows_name [32mPASSED[0m[31m [ 65%][0m tests/test_zipfile.py::TestExtract::test_extract_hackers_arcnames_common_cases [32mPASSED[0m[31m [ 65%][0m tests/test_zipfile.py::TestExtract::test_extract_hackers_arcnames_windows_only [33mSKIPPED[0m[31m [ 66%][0m tests/test_zipfile.py::TestExtract::test_extract_hackers_arcnames_posix_only [32mPASSED[0m[31m [ 66%][0m tests/test_zipfile.py::TestsOther::test_open_via_zip_info [32mPASSED[0m[31m [ 66%][0m tests/test_zipfile.py::TestsOther::test_writestr_extended_local_header_issue1202 [32mPASSED[0m[31m [ 67%][0m tests/test_zipfile.py::TestsOther::test_close [32mPASSED[0m[31m [ 67%][0m tests/test_zipfile.py::TestsOther::test_close_on_exception [32mPASSED[0m[31m [ 68%][0m tests/test_zipfile.py::TestsOther::test_unsupported_version [32mPASSED[0m[31m [ 68%][0m tests/test_zipfile.py::TestsOther::test_read_unicode_filenames [33mSKIPPED[0m[31m [ 69%][0m tests/test_zipfile.py::TestsOther::test_write_unicode_filenames [32mPASSED[0m[31m [ 69%][0m tests/test_zipfile.py::TestsOther::test_read_after_write_unicode_filenames [32mPASSED[0m[31m [ 70%][0m tests/test_zipfile.py::TestsOther::test_exclusive_create_zip_file [32mPASSED[0m[31m [ 70%][0m tests/test_zipfile.py::TestsOther::test_create_non_existent_file_for_append [32mPASSED[0m[31m [ 71%][0m tests/test_zipfile.py::TestsOther::test_close_erroneous_file [32mPASSED[0m[31m [ 71%][0m tests/test_zipfile.py::TestsOther::test_is_zip_erroneous_file [32mPASSED[0m[31m [ 72%][0m tests/test_zipfile.py::TestsOther::test_damaged_zipfile [32mPASSED[0m[31m [ 72%][0m tests/test_zipfile.py::TestsOther::test_is_zip_valid_file [32mPASSED[0m[31m [ 73%][0m tests/test_zipfile.py::TestsOther::test_non_existent_file_raises_OSError [32mPASSED[0m[31m [ 73%][0m tests/test_zipfile.py::TestsOther::test_empty_file_raises_BadZipFile [32mPASSED[0m[31m [ 74%][0m tests/test_zipfile.py::TestsOther::test_closed_zip_raises_ValueError [32mPASSED[0m[31m [ 74%][0m tests/test_zipfile.py::TestsOther::test_bad_constructor_mode [32mPASSED[0m[31m [ 75%][0m tests/test_zipfile.py::TestsOther::test_bad_open_mode [32mPASSED[0m[31m [ 75%][0m tests/test_zipfile.py::TestsOther::test_read0 [32mPASSED[0m[31m [ 76%][0m tests/test_zipfile.py::TestsOther::test_open_non_existent_item [32mPASSED[0m[31m [ 76%][0m tests/test_zipfile.py::TestsOther::test_bad_compression_mode [32mPASSED[0m[31m [ 77%][0m tests/test_zipfile.py::TestsOther::test_unsupported_compression [32mPASSED[0m[31m [ 77%][0m tests/test_zipfile.py::TestsOther::test_null_byte_in_filename [32mPASSED[0m[31m [ 77%][0m tests/test_zipfile.py::TestsOther::test_comments [32mPASSED[0m[31m [ 78%][0m tests/test_zipfile.py::TestsOther::test_unicode_comment [32mPASSED[0m[31m [ 78%][0m tests/test_zipfile.py::TestsOther::test_change_comment_in_empty_archive [32mPASSED[0m[31m [ 79%][0m tests/test_zipfile.py::TestsOther::test_change_comment_in_nonempty_archive [32mPASSED[0m[31m [ 79%][0m tests/test_zipfile.py::TestsOther::test_empty_zipfile [32mPASSED[0m[31m [ 80%][0m tests/test_zipfile.py::TestsOther::test_open_empty_file [32mPASSED[0m[31m [ 80%][0m tests/test_zipfile.py::TestsOther::test_zipfile_with_short_extra_field [32mPASSED[0m[31m [ 81%][0m tests/test_zipfile.py::TestsOther::test_open_conflicting_handles [32mPASSED[0m[31m [ 81%][0m tests/test_zipfile.py::TestsOther::test_seek_tell [32mPASSED[0m[31m [ 82%][0m tests/test_zipfile.py::TestsOther::test_decompress_without_3rd_party_library [32mPASSED[0m[31m [ 82%][0m tests/test_zipfile.py::TestStoredBadCrc::test_testzip_with_bad_crc [32mPASSED[0m[31m [ 83%][0m tests/test_zipfile.py::TestStoredBadCrc::test_read_with_bad_crc [32mPASSED[0m[31m [ 83%][0m tests/test_zipfile.py::TestDeflateBadCrcTests::test_testzip_with_bad_crc [32mPASSED[0m[31m [ 84%][0m tests/test_zipfile.py::TestDeflateBadCrcTests::test_read_with_bad_crc [32mPASSED[0m[31m [ 84%][0m tests/test_zipfile.py::TestBzip2BadCrc::test_testzip_with_bad_crc [32mPASSED[0m[31m [ 85%][0m tests/test_zipfile.py::TestBzip2BadCrc::test_read_with_bad_crc [32mPASSED[0m[31m [ 85%][0m tests/test_zipfile.py::TestLzmaBadCrc::test_testzip_with_bad_crc [32mPASSED[0m[31m [ 86%][0m tests/test_zipfile.py::TestLzmaBadCrc::test_read_with_bad_crc [32mPASSED[0m[31m [ 86%][0m tests/test_zipfile.py::TestDecryption::test_no_password [32mPASSED[0m[31m [ 87%][0m tests/test_zipfile.py::TestDecryption::test_bad_password [32mPASSED[0m[31m [ 87%][0m tests/test_zipfile.py::TestDecryption::test_good_password [32mPASSED[0m[31m [ 88%][0m tests/test_zipfile.py::TestDecryption::test_unicode_password [32mPASSED[0m[31m [ 88%][0m tests/test_zipfile.py::TestDecryption::test_seek_tell [32mPASSED[0m[31m [ 88%][0m tests/test_zipfile.py::TestStoredTestsWithRandomBinaryFiles::test_read [32mPASSED[0m[31m [ 89%][0m tests/test_zipfile.py::TestStoredTestsWithRandomBinaryFiles::test_open [32mPASSED[0m[31m [ 89%][0m tests/test_zipfile.py::TestStoredTestsWithRandomBinaryFiles::test_random_open [32mPASSED[0m[31m [ 90%][0m tests/test_zipfile.py::TesteflateTestsWithRandomBinaryFiles::test_read [32mPASSED[0m[31m [ 90%][0m tests/test_zipfile.py::TesteflateTestsWithRandomBinaryFiles::test_open [32mPASSED[0m[31m [ 91%][0m tests/test_zipfile.py::TesteflateTestsWithRandomBinaryFiles::test_random_open [32mPASSED[0m[31m [ 91%][0m tests/test_zipfile.py::TestBzip2TestsWithRandomBinaryFiles::test_read [32mPASSED[0m[31m [ 92%][0m tests/test_zipfile.py::TestBzip2TestsWithRandomBinaryFiles::test_open [32mPASSED[0m[31m [ 92%][0m tests/test_zipfile.py::TestBzip2TestsWithRandomBinaryFiles::test_random_open [32mPASSED[0m[31m [ 93%][0m tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_read [32mPASSED[0m[31m [ 93%][0m tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_open [32mPASSED[0m[31m [ 94%][0m tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_random_open [32mPASSED[0m[31m [ 94%][0m tests/test_zipfile.py::TestsWithMultipleOpens::test_same_file [32mPASSED[0m[31m [ 95%][0m tests/test_zipfile.py::TestsWithMultipleOpens::test_different_file [32mPASSED[0m[31m [ 95%][0m tests/test_zipfile.py::TestsWithMultipleOpens::test_interleaved [32mPASSED[0m[31m [ 96%][0m tests/test_zipfile.py::TestsWithMultipleOpens::test_read_after_close [32mPASSED[0m[31m [ 96%][0m tests/test_zipfile.py::TestsWithMultipleOpens::test_read_after_write [32mPASSED[0m[31m [ 97%][0m tests/test_zipfile.py::TestsWithMultipleOpens::test_write_after_read [32mPASSED[0m[31m [ 97%][0m tests/test_zipfile.py::TestsWithMultipleOpens::test_write_while_reading [32mPASSED[0m[31m [ 98%][0m tests/test_zipfile.py::TestWithDirectory::test_extract_dir [33mSKIPPED[0m (...)[31m [ 98%][0m tests/test_zipfile.py::TestWithDirectory::test_bug_6050 [33mSKIPPED[0m (unk...)[31m [ 99%][0m tests/test_zipfile.py::TestWithDirectory::test_write_dir [32mPASSED[0m[31m [ 99%][0m tests/test_zipfile.py::TestWithDirectory::test_writestr_dir [32mPASSED[0m[31m [100%][0m =================================== FAILURES =================================== [31m[1m_____________ TestStoredTestZip64InSmallFiles.test_bad_zip64_extra _____________[0m self = <tests.test_zipfile.TestStoredTestZip64InSmallFiles object at 0x7f440dcf1f30> zip64_smallfiles = PosixPathPlus('/tmp/pytest-of-sbuild/pytest-0/test_bad_zip64_extra0/@test_88_tmp') @min_version(3.7) def test_bad_zip64_extra(self, zip64_smallfiles): # zip64 file size present, no fields in extra, expecting one, equals # missing file size. missing_file_size_extra = self.make_zip64_file(file_size_64_set=True) with pytest.raises(zipfile.BadZipFile) as e: ZipFile(io.BytesIO(missing_file_size_extra)) assert "file size" in str(e.value).lower() # zip64 file size present, zip64 compress size present, one field in # extra, expecting two, equals missing compress size. missing_compress_size_extra = self.make_zip64_file( file_size_64_set=True, file_size_extra=True, compress_size_64_set=True, ) with pytest.raises(zipfile.BadZipFile) as e: ZipFile(io.BytesIO(missing_compress_size_extra)) > assert "compress size" in str(e.value).lower() [1m[31mE AssertionError: assert 'compress size' in 'corrupt zip64 end of central directory record'[0m [1m[31mE + where 'corrupt zip64 end of central directory record' = <built-in method lower of str object at 0x7f440f4de0d0>()[0m [1m[31mE + where <built-in method lower of str object at 0x7f440f4de0d0> = 'Corrupt zip64 end of central directory record'.lower[0m [1m[31mE + where 'Corrupt zip64 end of central directory record' = str(BadZipFile('Corrupt zip64 end of central directory record'))[0m [1m[31mE + where BadZipFile('Corrupt zip64 end of central directory record') = <ExceptionInfo BadZipFile('Corrupt zip64 end of central directory record') tblen=5>.value[0m [1m[31mtests/test_zipfile.py[0m:1114: AssertionError [31m[1m_______ TestStoredTestZip64InSmallFiles.test_generated_valid_zip64_extra _______[0m self = <tests.test_zipfile.TestStoredTestZip64InSmallFiles object at 0x7f440db8e8d0> zip64_smallfiles = PosixPathPlus('/tmp/pytest-of-sbuild/pytest-0/test_generated_valid_zip64_ext0/@test_88_tmp') def test_generated_valid_zip64_extra(self, zip64_smallfiles): # These values are what is set in the make_zip64_file method. expected_file_size = 8 expected_compress_size = 8 expected_header_offset = 0 expected_content = b"test1234" # Loop through the various valid combinations of zip64 masks # present and extra fields present. params = ( {"file_size_64_set": True, "file_size_extra": True}, {"compress_size_64_set": True, "compress_size_extra": True}, {"header_offset_64_set": True, "header_offset_extra": True}, ) for r in range(1, len(params) + 1): for combo in itertools.combinations(params, r): kwargs = {} for c in combo: kwargs.update(c) > with > ZipFile(io.BytesIO(self.make_zip64_file(**kwargs))) as zf: [1m[31mtests/test_zipfile.py[0m:1193: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31m/usr/lib/python3.13/zipfile/__init__.py[0m:1401: in __init__ self._RealGetContents() [1m[31m/usr/lib/python3.13/zipfile/__init__.py[0m:1464: in _RealGetContents endrec = _EndRecData(fp) [1m[31m/usr/lib/python3.13/zipfile/__init__.py[0m:342: in _EndRecData return _EndRecData64(fpin, filesize - sizeEndCentDir, endrec) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fpin = <_io.BytesIO object at 0x7f440ce6bbf0>, offset = 124 endrec = [b'PK\x05\x06', 0, 0, 1, 1, 58, ...] def _EndRecData64(fpin, offset, endrec): """ Read the ZIP64 end-of-archive records and use that to update endrec """ offset -= sizeEndCentDir64Locator if offset < 0: # The file is not large enough to contain a ZIP64 # end-of-archive record, so just return the end record we were given. return endrec fpin.seek(offset) data = fpin.read(sizeEndCentDir64Locator) if len(data) != sizeEndCentDir64Locator: raise OSError("Unknown I/O error") sig, diskno, reloff, disks = struct.unpack(structEndArchive64Locator, data) if sig != stringEndArchive64Locator: return endrec if diskno != 0 or disks > 1: raise BadZipFile("zipfiles that span multiple disks are not supported") offset -= sizeEndCentDir64 if reloff > offset: raise BadZipFile("Corrupt zip64 end of central directory locator") # First, check the assumption that there is no prepended data. fpin.seek(reloff) extrasz = offset - reloff data = fpin.read(sizeEndCentDir64) if len(data) != sizeEndCentDir64: raise OSError("Unknown I/O error") if not data.startswith(stringEndArchive64) and reloff != offset: # Since we already have seen the Zip64 EOCD Locator, it's # possible we got here because there is prepended data. # Assume no 'zip64 extensible data' fpin.seek(offset) extrasz = 0 data = fpin.read(sizeEndCentDir64) if len(data) != sizeEndCentDir64: raise OSError("Unknown I/O error") if not data.startswith(stringEndArchive64): raise BadZipFile("Zip64 end of central directory record not found") sig, sz, create_version, read_version, disk_num, disk_dir, \ dircount, dircount2, dirsize, diroffset = \ struct.unpack(structEndArchive64, data) if (diroffset + dirsize != reloff or sz + 12 != sizeEndCentDir64 + extrasz): > raise BadZipFile("Corrupt zip64 end of central directory record") [1m[31mE zipfile.BadZipFile: Corrupt zip64 end of central directory record[0m [1m[31m/usr/lib/python3.13/zipfile/__init__.py[0m:298: BadZipFile ============================= slowest 25 durations ============================= 0.31s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_read 0.31s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_open 0.29s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_random_open 0.11s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_read1_10 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_readline_read 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_compresslevel_basic 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_readlines 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_iterlines 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_basic 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_readline 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_read1 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_random_open 0.10s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_open 0.08s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithRandomBinaryFiles::test_open 0.08s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithRandomBinaryFiles::test_read 0.07s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithRandomBinaryFiles::test_random_open 0.05s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestZip64InSmallFiles::test_basic 0.04s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithSourceFile::test_basic 0.04s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithSourceFile::test_compresslevel_basic 0.03s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithSourceFile::test_read1_10 0.03s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithSourceFile::test_open 0.03s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_open_with_pathlike 0.03s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithSourceFile::test_readline_read 0.03s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithSourceFile::test_readlines 0.03s call .pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestBzip2TestsWithSourceFile::test_iterlines [36m[1m=========================== short test summary info ============================[0m [31mFAILED[0m tests/test_zipfile.py::[1mTestStoredTestZip64InSmallFiles::test_bad_zip64_extra[0m - AssertionError: assert 'compress size' in 'corrupt zip64 end of central dir... [31mFAILED[0m tests/test_zipfile.py::[1mTestStoredTestZip64InSmallFiles::test_generated_valid_zip64_extra[0m - zipfile.BadZipFile: Corrupt zip64 end of central directory record [31m============ [31m[1m2 failed[0m, [32m202 passed[0m, [33m5 skipped[0m, [33m4 deselected[0m[31m in 3.62s[0m[31m ============[0m E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest -v --ignore=tests/test_tarfile.py -k 'not test_unpack_archive_xztar and not test_unpack_archive_gztar and not test_unpack_archive_tar and not test_unpack_archive_bztar' dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13 make: *** [debian/rules:8: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

