Your message dated Thu, 25 Dec 2025 00:48:55 +0000
with message-id <[email protected]>
and subject line Bug#1123252: fixed in python-handy-archives 0.2.0-6
has caused the Debian Bug report #1123252,
regarding python-handy-archives: FTBFS: dh_auto_test: error: pybuild --test
--test-pytest -i python{version} -p "3.14 3.13" returned exit code 13
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1123252: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123252
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:python-handy-archives
Version: 0.2.0-5
Severity: serious
Tags: ftbfs forky sid
Dear maintainer:
During a rebuild of all packages in unstable, this package failed to build.
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/202512/
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.
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
dh_autoreconf_clean -O--buildsystem=pybuild
dh_clean -O--buildsystem=pybuild
debian/rules binary
dh binary --buildsystem=pybuild
dh_update_autotools_config -O--buildsystem=pybuild
dh_autoreconf -O--buildsystem=pybuild
dh_auto_configure -O--buildsystem=pybuild
dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:131: Building wheel for python3.14 with "build"
module
I: pybuild base:317: python3.14 -m build --skip-dependency-check --no-isolation
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14
* Building wheel...
Successfully built handy_archives-0.2.0-py3-none-any.whl
[... snipped ...]
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_readline
[32mPASSED[0m[32m [ 44%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_readlines
[32mPASSED[0m[32m [ 44%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_iterlines
[32mPASSED[0m[32m [ 45%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_low_compression
[32mPASSED[0m[32m [ 45%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_writestr_compression
[32mPASSED[0m[32m [ 46%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_writestr_compresslevel
[32mPASSED[0m[32m [ 46%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_read_return_size
[32mPASSED[0m[32m [ 47%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_truncated_zipfile
[32mPASSED[0m[32m [ 47%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_repr
[32mPASSED[0m[32m [ 48%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_compresslevel_basic
[32mPASSED[0m[32m [ 48%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_per_file_compresslevel
[32mPASSED[0m[32m [ 49%][0m
tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_writing_errors
[32mPASSED[0m[32m [ 49%][0m
tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_basic
[32mPASSED[0m[32m [ 50%][0m
tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_too_many_files
[32mPASSED[0m[32m [ 50%][0m
tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_too_many_files_append
[32mPASSED[0m[32m [ 51%][0m
tests/test_zipfile.py::TestStoredTestZip64InSmallFiles::test_large_file_exception
[32mPASSED[0m[32m [ 51%][0m
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
0x7fbf21381a70>
zip64_smallfiles =
PosixPathPlus('/tmp/pytest-of-sbuild/pytest-1/test_bad_zip64_extra0/@test_93_tmp')
[0m[37m@min_version[39;49;00m([94m3.7[39;49;00m)[90m[39;49;00m
[94mdef[39;49;00m
[92mtest_bad_zip64_extra[39;49;00m([96mself[39;49;00m,
zip64_smallfiles):[90m[39;49;00m
[90m# zip64 file size present, no fields in extra, expecting one,
equals[39;49;00m[90m[39;49;00m
[90m# missing file size.[39;49;00m[90m[39;49;00m
missing_file_size_extra =
[96mself[39;49;00m.make_zip64_file(file_size_64_set=[94mTrue[39;49;00m)[90m[39;49;00m
[94mwith[39;49;00m pytest.raises(zipfile.BadZipFile)
[94mas[39;49;00m e:[90m[39;49;00m
ZipFile(io.BytesIO(missing_file_size_extra))[90m[39;49;00m
[94massert[39;49;00m [33m"[39;49;00m[33mfile
size[39;49;00m[33m"[39;49;00m [95min[39;49;00m
[96mstr[39;49;00m(e.value).lower()[90m[39;49;00m
[90m[39;49;00m
[90m# zip64 file size present, zip64 compress size present, one field
in[39;49;00m[90m[39;49;00m
[90m# extra, expecting two, equals missing compress
size.[39;49;00m[90m[39;49;00m
missing_compress_size_extra =
[96mself[39;49;00m.make_zip64_file([90m[39;49;00m
file_size_64_set=[94mTrue[39;49;00m,[90m[39;49;00m
file_size_extra=[94mTrue[39;49;00m,[90m[39;49;00m
compress_size_64_set=[94mTrue[39;49;00m,[90m[39;49;00m
)[90m[39;49;00m
[94mwith[39;49;00m pytest.raises(zipfile.BadZipFile)
[94mas[39;49;00m e:[90m[39;49;00m
ZipFile(io.BytesIO(missing_compress_size_extra))[90m[39;49;00m
> [94massert[39;49;00m [33m"[39;49;00m[33mcompress
> size[39;49;00m[33m"[39;49;00m [95min[39;49;00m
> [96mstr[39;49;00m(e.value).lower()[90m[39;49;00m
[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 0x7fbf22f37750>()[0m
[1m[31mE + where <built-in method lower of str object at
0x7fbf22f37750> = '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
0x7fbf213af2f0>
zip64_smallfiles =
PosixPathPlus('/tmp/pytest-of-sbuild/pytest-1/test_generated_valid_zip64_ext0/@test_93_tmp')
[0m[94mdef[39;49;00m
[92mtest_generated_valid_zip64_extra[39;49;00m([96mself[39;49;00m,
zip64_smallfiles):[90m[39;49;00m
[90m[39;49;00m
[90m# These values are what is set in the make_zip64_file
method.[39;49;00m[90m[39;49;00m
expected_file_size = [94m8[39;49;00m[90m[39;49;00m
expected_compress_size = [94m8[39;49;00m[90m[39;49;00m
expected_header_offset = [94m0[39;49;00m[90m[39;49;00m
expected_content =
[33mb[39;49;00m[33m"[39;49;00m[33mtest1234[39;49;00m[33m"[39;49;00m[90m[39;49;00m
[90m[39;49;00m
[90m# Loop through the various valid combinations of zip64
masks[39;49;00m[90m[39;49;00m
[90m# present and extra fields present.[39;49;00m[90m[39;49;00m
params = ([90m[39;49;00m
{[33m"[39;49;00m[33mfile_size_64_set[39;49;00m[33m"[39;49;00m:
[94mTrue[39;49;00m,
[33m"[39;49;00m[33mfile_size_extra[39;49;00m[33m"[39;49;00m:
[94mTrue[39;49;00m},[90m[39;49;00m
{[33m"[39;49;00m[33mcompress_size_64_set[39;49;00m[33m"[39;49;00m:
[94mTrue[39;49;00m,
[33m"[39;49;00m[33mcompress_size_extra[39;49;00m[33m"[39;49;00m:
[94mTrue[39;49;00m},[90m[39;49;00m
{[33m"[39;49;00m[33mheader_offset_64_set[39;49;00m[33m"[39;49;00m:
[94mTrue[39;49;00m,
[33m"[39;49;00m[33mheader_offset_extra[39;49;00m[33m"[39;49;00m:
[94mTrue[39;49;00m},[90m[39;49;00m
)[90m[39;49;00m
[90m[39;49;00m
[94mfor[39;49;00m r [95min[39;49;00m
[96mrange[39;49;00m([94m1[39;49;00m, [96mlen[39;49;00m(params) +
[94m1[39;49;00m):[90m[39;49;00m
[94mfor[39;49;00m combo [95min[39;49;00m
itertools.combinations(params, r):[90m[39;49;00m
kwargs = {}[90m[39;49;00m
[94mfor[39;49;00m c [95min[39;49;00m
combo:[90m[39;49;00m
kwargs.update(c)[90m[39;49;00m
> [94mwith[39;49;00m
> ZipFile(io.BytesIO([96mself[39;49;00m.make_zip64_file(**kwargs)))
> [94mas[39;49;00m zf:[90m[39;49;00m
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[90m[39;49;00m
[1m[31mtests/test_zipfile.py[0m:1193:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[1m[31m/usr/lib/python3.13/zipfile/__init__.py[0m:1401: in __init__
[0m[96mself[39;49;00m._RealGetContents()[90m[39;49;00m
[1m[31m/usr/lib/python3.13/zipfile/__init__.py[0m:1464: in _RealGetContents
[0mendrec = _EndRecData(fp)[90m[39;49;00m
^^^^^^^^^^^^^^^[90m[39;49;00m
[1m[31m/usr/lib/python3.13/zipfile/__init__.py[0m:342: in _EndRecData
[0m[94mreturn[39;49;00m _EndRecData64(fpin, filesize - sizeEndCentDir,
endrec)[90m[39;49;00m
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[90m[39;49;00m
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
fpin = <_io.BytesIO object at 0x7fbf206ac590>, offset = 124
endrec = [b'PK\x05\x06', 0, 0, 1, 1, 58, ...]
[0m[94mdef[39;49;00m [92m_EndRecData64[39;49;00m(fpin, offset,
endrec):[90m[39;49;00m
[90m [39;49;00m[33m"""[39;49;00m
[33m Read the ZIP64 end-of-archive records and use that to update
endrec[39;49;00m
[33m """[39;49;00m[90m[39;49;00m
offset -= sizeEndCentDir64Locator[90m[39;49;00m
[94mif[39;49;00m offset < [94m0[39;49;00m:[90m[39;49;00m
[90m# The file is not large enough to contain a
ZIP64[39;49;00m[90m[39;49;00m
[90m# end-of-archive record, so just return the end record we were
given.[39;49;00m[90m[39;49;00m
[94mreturn[39;49;00m endrec[90m[39;49;00m
fpin.seek(offset)[90m[39;49;00m
data = fpin.read(sizeEndCentDir64Locator)[90m[39;49;00m
[94mif[39;49;00m [96mlen[39;49;00m(data) !=
sizeEndCentDir64Locator:[90m[39;49;00m
[94mraise[39;49;00m
[96mOSError[39;49;00m([33m"[39;49;00m[33mUnknown I/O
error[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
sig, diskno, reloff, disks = struct.unpack(structEndArchive64Locator,
data)[90m[39;49;00m
[94mif[39;49;00m sig != stringEndArchive64Locator:[90m[39;49;00m
[94mreturn[39;49;00m endrec[90m[39;49;00m
[90m[39;49;00m
[94mif[39;49;00m diskno != [94m0[39;49;00m [95mor[39;49;00m disks
> [94m1[39;49;00m:[90m[39;49;00m
[94mraise[39;49;00m BadZipFile([33m"[39;49;00m[33mzipfiles
that span multiple disks are not
supported[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
[90m[39;49;00m
offset -= sizeEndCentDir64[90m[39;49;00m
[94mif[39;49;00m reloff > offset:[90m[39;49;00m
[94mraise[39;49;00m BadZipFile([33m"[39;49;00m[33mCorrupt
zip64 end of central directory
locator[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
[90m# First, check the assumption that there is no prepended
data.[39;49;00m[90m[39;49;00m
fpin.seek(reloff)[90m[39;49;00m
extrasz = offset - reloff[90m[39;49;00m
data = fpin.read(sizeEndCentDir64)[90m[39;49;00m
[94mif[39;49;00m [96mlen[39;49;00m(data) !=
sizeEndCentDir64:[90m[39;49;00m
[94mraise[39;49;00m
[96mOSError[39;49;00m([33m"[39;49;00m[33mUnknown I/O
error[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
[94mif[39;49;00m [95mnot[39;49;00m
data.startswith(stringEndArchive64) [95mand[39;49;00m reloff !=
offset:[90m[39;49;00m
[90m# Since we already have seen the Zip64 EOCD Locator,
it's[39;49;00m[90m[39;49;00m
[90m# possible we got here because there is prepended
data.[39;49;00m[90m[39;49;00m
[90m# Assume no 'zip64 extensible data'[39;49;00m[90m[39;49;00m
fpin.seek(offset)[90m[39;49;00m
extrasz = [94m0[39;49;00m[90m[39;49;00m
data = fpin.read(sizeEndCentDir64)[90m[39;49;00m
[94mif[39;49;00m [96mlen[39;49;00m(data) !=
sizeEndCentDir64:[90m[39;49;00m
[94mraise[39;49;00m
[96mOSError[39;49;00m([33m"[39;49;00m[33mUnknown I/O
error[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
[94mif[39;49;00m [95mnot[39;49;00m
data.startswith(stringEndArchive64):[90m[39;49;00m
[94mraise[39;49;00m BadZipFile([33m"[39;49;00m[33mZip64 end of
central directory record not found[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
[90m[39;49;00m
sig, sz, create_version, read_version, disk_num, disk_dir, \
dircount, dircount2, dirsize, diroffset = \
struct.unpack(structEndArchive64, data)[90m[39;49;00m
[94mif[39;49;00m (diroffset + dirsize != reloff
[95mor[39;49;00m[90m[39;49;00m
sz + [94m12[39;49;00m != sizeEndCentDir64 +
extrasz):[90m[39;49;00m
> [94mraise[39;49;00m BadZipFile([33m"[39;49;00m[33mCorrupt
> zip64 end of central directory
> record[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
[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.15s call
.pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_read
0.15s call
.pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithRandomBinaryFiles::test_open
0.15s 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.11s call
.pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_readline_read
0.11s call
.pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_readlines
0.11s call
.pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_basic
0.11s call
.pybuild/cpython3_3.13/build/tests/test_zipfile.py::TestLzmaTestsWithSourceFile::test_iterlines
0.11s 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_compresslevel_basic
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::TestLzmaTestsWithSourceFile::test_open_with_pathlike
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::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.19s[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.14
3.13" returned exit code 13
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
--- End Message ---
--- Begin Message ---
Source: python-handy-archives
Source-Version: 0.2.0-6
Done: Alexandre Detiste <[email protected]>
We believe that the bug you reported is fixed in the latest version of
python-handy-archives, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Alexandre Detiste <[email protected]> (supplier of updated python-handy-archives
package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Thu, 25 Dec 2025 01:10:30 +0100
Source: python-handy-archives
Architecture: source
Version: 0.2.0-6
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Alexandre Detiste <[email protected]>
Closes: 1123252
Changes:
python-handy-archives (0.2.0-6) unstable; urgency=medium
.
* Team upload.
* Fix Zip64 end of central directory locator (Closes: #1123252)
* Drop "Rules-Requires-Root: no": it is the default now
* Rewrite d/watch in v5 format
* Add debian/gbp.conf
* Add debian/salsa-ci.yml
* Bump Standards-Version to 4.7.3
* Drop python3-setuptools build-dep: this build with "flit"
Checksums-Sha1:
d1a59f785fa4658a86b8976d51d0a4cc9fcb3d8d 2402 python-handy-archives_0.2.0-6.dsc
7e8dd1dd17e49dd1ea87563715ac67a2fe50cac2 5388
python-handy-archives_0.2.0-6.debian.tar.xz
e1c92366f181ba25f6121576d85a7f63451fbdd1 8172
python-handy-archives_0.2.0-6_source.buildinfo
Checksums-Sha256:
1f1f6166c90568d8de196d7c5fba5100d7a4fa5c5cea4d3765ff75074918438b 2402
python-handy-archives_0.2.0-6.dsc
22f6fd1c29fc7e75a0cc830ea449b5f1914d0306ffc33b34f4c5f4fa00f0a087 5388
python-handy-archives_0.2.0-6.debian.tar.xz
b6858968a1cc42ed40a413a458e9a0ba729e47e73668eb7bd349344f0d4210a2 8172
python-handy-archives_0.2.0-6_source.buildinfo
Files:
1000be403b9952238f144b4b279fd025 2402 python optional
python-handy-archives_0.2.0-6.dsc
783c6c177f30af4010cec246b313a300 5388 python optional
python-handy-archives_0.2.0-6.debian.tar.xz
5b98030628a85129174a607b3139f567 8172 python optional
python-handy-archives_0.2.0-6_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQJFBAEBCgAvFiEEj23hBDd/OxHnQXSHMfMURUShdBoFAmlMhNIRHHRjaGV0QGRl
Ymlhbi5vcmcACgkQMfMURUShdBqARg//TlkU7+LfbJJ6FTLzlfUVYmlKECh75tlO
DHdzw7jf/Xn9jzXANfV3RWY4lw+AlqK4h6C0hyjf9jwrnJb8ZzLciHpEfYwhaiIG
CYxx0jAgZlhbYSJOOBjcyjN7qRvvD3iiQJpxoBWTn3pKjBLEskCLD9mjNxkNmsFD
2C389pokDwJXS6dlOo7EDXq70zesWhH4Q2f6Xgd8a1DHBG6uYl8CMNjeQsbRa7Vz
pXmHWNu3vEzg5oEmEeOvceOAhIyY/U6S1geLG8WiewJfWUKhwlxuDonarR5yGRr3
rKXZ0mswFuQ2hBzQPi7kGr7U1lkT+outnvmdAfYtT25QzhVp3Htd8/CUY4wYHICf
Xp0psQV87oJf6l9T0axAfzOdmAfttWQPHvjOuATrbJ+HEpUriPhkf7DMbXtKytYw
P8yLHomlLgUEHxAVue7dGPnIJhbdop1yLsmt95DSEIyRfEIrP9G7sRNPbr5sqBFx
PbCpVmOir68yDC7ots7YmRNFzgZIDQqSLi1XKQH4Mem7avYoM8QLNyXo6dFXgJw2
N0ksmyOYYi1D/gdqm0WjWOqP5hvqqsWyMkMtcSHL3gmgpXakFS5ZLVO5DL4d/vuI
xdwrj4KBoqzQI9mPAW8Qltn0MuGlgzIvbBtkbVujttntsPmwOhCYB0Hn5XAi4+/z
NuFsPv3Fffg=
=aTQS
-----END PGP SIGNATURE-----
pgpSGVcEUSEW0.pgp
Description: PGP signature
--- End Message ---