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))
[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)
[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):
[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
--------------------------------------------------------------------------------