Your message dated Tue, 03 Sep 2024 16:47:08 +0000
with message-id <e1slwgo-00fa4n...@fasolo.debian.org>
and subject line Bug#1078883: fixed in diffoscope 240+deb12u1
has caused the Debian Bug report #1078883,
regarding diffoscope: FTBFS: failing tests
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 ow...@bugs.debian.org
immediately.)


-- 
1078883: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1078883
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: src:diffoscope
Version: 240
Severity: serious
Control: close -1 274
Tags: ftbfs bookworm

Dear maintainer:

During a rebuild of all packages in bookworm, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules binary
dh binary --with python3 --with bash-completion --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
running config
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:240: /usr/bin/python3 setup.py build
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/diffoscope
copying diffoscope/config.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/diffoscope

[... snipped ...]

self       = <zipfile.ZipFile 
filename='/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip' 
mode='r'>
zef_file   = <zipfile._SharedFile object at 0x7f3060577e90>
zinfo      = <ZipInfo filename='dir/text' compress_type=deflate 
filemode='-rw-r--r--' file_size=446 compress_size=269>

/usr/lib/python3.11/zipfile.py:1600: BadZipFile
=================================== FAILURES ===================================
__________________________ test_mozzip_no_differences __________________________

mozzip1 = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>

    def test_mozzip_no_differences(mozzip1):
      difference = mozzip1.compare(mozzip1)

mozzip1    = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>

tests/comparators/test_zip.py:88:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
diffoscope/comparators/zip.py:217: in compare
    x = super().compare(other, source)
        __class__  = <class 'diffoscope.comparators.zip.ZipFileBase'>
        other      = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        self       = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        source     = None
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
        other      = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        self       = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        source     = None
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
        depth      = 1
        details    = [None, None, None]
        difference = <Difference 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip -- 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip []>
        no_recurse = False
        other      = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        self       = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        source     = None
diffoscope/comparators/utils/container.py:130: in comparisons
    my_members = OrderedDict(self.get_adjusted_members_sizes())
        other      = <diffoscope.comparators.zip.MozillaZipContainer object at 
0x7f3066ec6850>
        self       = <diffoscope.comparators.zip.MozillaZipContainer object at 
0x7f3066ec6850>
diffoscope/comparators/utils/container.py:126: in get_adjusted_members_sizes
    size = path_apparent_size(member.path)
        member     = <<class 'diffoscope.comparators.utils.archive.ArchiveMember'> 
dir/text>
        name       = 'dir/text'
        self       = <diffoscope.comparators.zip.MozillaZipContainer object at 
0x7f3066ec6850>
diffoscope/comparators/utils/archive.py:114: in path
    self._path = self.container.extract(
        self       = <<class 'diffoscope.comparators.utils.archive.ArchiveMember'> 
dir/text>
diffoscope/comparators/zip.py:196: in extract
    with self.archive.open(member_name) as source, open(
        dest_dir   = '/tmp/diffoscope_kq5ljc2x_/tmpv1u01aow_MozillaZipContainer'
        member_name = 'dir/text'
        self       = <diffoscope.comparators.zip.MozillaZipContainer object at 
0x7f3066ec6850>
        targetpath = 
b'/tmp/diffoscope_kq5ljc2x_/tmpv1u01aow_MozillaZipContainer/text'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <zipfile.ZipFile 
filename='/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip' 
mode='r'>
name = 'dir/text', mode = 'r', pwd = None

    def open(self, name, mode="r", pwd=None, *, force_zip64=False):
        """Return file-like object for 'name'.
name is a string for the file name within the ZIP file, or a ZipInfo
        object.
mode should be 'r' to read a file already in the ZIP file, or 'w' to
        write to a file newly added to the archive.
pwd is the password to decrypt files (only used for reading). When writing, if the file size is not known in advance but may exceed
        2 GiB, pass force_zip64 to use the ZIP64 format, which can handle large
        files.  If the size is known in advance, it is best to pass a ZipInfo
        instance for name, with zinfo.file_size set.
        """
        if mode not in {"r", "w"}:
            raise ValueError('open() requires mode "r" or "w"')
        if pwd and (mode == "w"):
            raise ValueError("pwd is only supported for reading files")
        if not self.fp:
            raise ValueError(
                "Attempt to use ZIP archive that was already closed")
# Make sure we have an info object
        if isinstance(name, ZipInfo):
            # 'name' is already an info object
            zinfo = name
        elif mode == 'w':
            zinfo = ZipInfo(name)
            zinfo.compress_type = self.compression
            zinfo._compresslevel = self.compresslevel
        else:
            # Get info object for name
            zinfo = self.getinfo(name)
if mode == 'w':
            return self._open_to_write(zinfo, force_zip64=force_zip64)
if self._writing:
            raise ValueError("Can't read from the ZIP file while there "
                    "is an open writing handle on it. "
                    "Close the writing handle before trying to read.")
# Open for reading:
        self._fileRefCnt += 1
        zef_file = _SharedFile(self.fp, zinfo.header_offset,
                               self._fpclose, self._lock, lambda: self._writing)
        try:
            # Skip the file header:
            fheader = zef_file.read(sizeFileHeader)
            if len(fheader) != sizeFileHeader:
                raise BadZipFile("Truncated file header")
            fheader = struct.unpack(structFileHeader, fheader)
            if fheader[_FH_SIGNATURE] != stringFileHeader:
                raise BadZipFile("Bad magic number for file header")
fname = zef_file.read(fheader[_FH_FILENAME_LENGTH])
            if fheader[_FH_EXTRA_FIELD_LENGTH]:
                zef_file.read(fheader[_FH_EXTRA_FIELD_LENGTH])
if zinfo.flag_bits & _MASK_COMPRESSED_PATCH:
                # Zip 2.7: compressed patched data
                raise NotImplementedError("compressed patched data (flag bit 
5)")
if zinfo.flag_bits & _MASK_STRONG_ENCRYPTION:
                # strong encryption
                raise NotImplementedError("strong encryption (flag bit 6)")
if fheader[_FH_GENERAL_PURPOSE_FLAG_BITS] & _MASK_UTF_FILENAME:
                # UTF-8 filename
                fname_str = fname.decode("utf-8")
            else:
                fname_str = fname.decode(self.metadata_encoding or "cp437")
if fname_str != zinfo.orig_filename:
                raise BadZipFile(
                    'File name in directory %r and header %r differ.'
                    % (zinfo.orig_filename, fname))
if (zinfo._end_offset is not None and
                zef_file.tell() + zinfo.compress_size > zinfo._end_offset):
              raise BadZipFile(f"Overlapped entries: {zinfo.orig_filename!r} 
(possible zip bomb)")
E               zipfile.BadZipFile: Overlapped entries: 'dir/text' (possible 
zip bomb)

fheader    = (b'PK\x03\x04', 20, 0, 2, 8, 0, 15393, 1139091176, 269, 446, 8, 0)
fname      = b'dir/text'
fname_str  = 'dir/text'
force_zip64 = False
mode       = 'r'
name       = 'dir/text'
pwd        = None
self       = <zipfile.ZipFile 
filename='/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip' 
mode='r'>
zef_file   = <zipfile._SharedFile object at 0x7f306f28cd10>
zinfo      = <ZipInfo filename='dir/text' compress_type=deflate 
filemode='-rw-r--r--' file_size=446 compress_size=269>

/usr/lib/python3.11/zipfile.py:1600: BadZipFile
_______________________ test_mozzip_compare_non_existing _______________________

monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f30646cbd10>
mozzip1 = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>

    @skip_unless_tools_exist("zipinfo")
    def test_mozzip_compare_non_existing(monkeypatch, mozzip1):
      assert_non_existing(monkeypatch, mozzip1)

monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f30646cbd10>
mozzip1    = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>

tests/comparators/test_zip.py:111:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils/nonexisting.py:31: in assert_non_existing
    difference = fixture.compare(MissingFile("/nonexisting", fixture))
        fixture    = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        has_details = True
        has_null_source = True
        monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f30646cbd10>
diffoscope/comparators/zip.py:217: in compare
    x = super().compare(other, source)
        __class__  = <class 'diffoscope.comparators.zip.ZipFileBase'>
        other      = <<class 'diffoscope.comparators.missing_file.MissingFile'> 
/nonexisting>
        self       = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        source     = None
diffoscope/comparators/utils/file.py:515: in compare
    difference = self._compare_using_details(other, source)
        other      = <<class 'diffoscope.comparators.missing_file.MissingFile'> 
/nonexisting>
        self       = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        source     = None
diffoscope/comparators/utils/file.py:450: in _compare_using_details
    details.extend(
        depth      = 1
        details    = [<Difference zipinfo {} -- zipinfo {} []>,
 <Difference zipnote «TEMP»/diffoscope_kq5ljc2x_/tmpwtggrr29_.zip -- zipnote 
«TEMP»/diffoscope_kq5ljc2x_/tmpwtggrr29_.zip []>,
 None,
 <Difference filetype from diffoscope -- filetype from diffoscope []>]
        difference = <Difference 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip -- /nonexisting 
[]>
        no_recurse = False
        other      = <<class 'diffoscope.comparators.missing_file.MissingFile'> 
/nonexisting>
        self       = <<class 'abc.MozillaZipFile'> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip>
        source     = None
diffoscope/comparators/utils/container.py:130: in comparisons
    my_members = OrderedDict(self.get_adjusted_members_sizes())
        other      = <diffoscope.comparators.utils.archive.MissingArchive object 
at 0x7f30658f7310>
        self       = <diffoscope.comparators.zip.MozillaZipContainer object at 
0x7f30646cae50>
diffoscope/comparators/utils/container.py:126: in get_adjusted_members_sizes
    size = path_apparent_size(member.path)
        member     = <<class 'diffoscope.comparators.utils.archive.ArchiveMember'> 
dir/text>
        name       = 'dir/text'
        self       = <diffoscope.comparators.zip.MozillaZipContainer object at 
0x7f30646cae50>
diffoscope/comparators/utils/archive.py:114: in path
    self._path = self.container.extract(
        self       = <<class 'diffoscope.comparators.utils.archive.ArchiveMember'> 
dir/text>
diffoscope/comparators/zip.py:196: in extract
    with self.archive.open(member_name) as source, open(
        dest_dir   = '/tmp/diffoscope_kq5ljc2x_/tmpx6_nmw3e_MozillaZipContainer'
        member_name = 'dir/text'
        self       = <diffoscope.comparators.zip.MozillaZipContainer object at 
0x7f30646cae50>
        targetpath = 
b'/tmp/diffoscope_kq5ljc2x_/tmpx6_nmw3e_MozillaZipContainer/text'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <zipfile.ZipFile 
filename='/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip' 
mode='r'>
name = 'dir/text', mode = 'r', pwd = None

    def open(self, name, mode="r", pwd=None, *, force_zip64=False):
        """Return file-like object for 'name'.
name is a string for the file name within the ZIP file, or a ZipInfo
        object.
mode should be 'r' to read a file already in the ZIP file, or 'w' to
        write to a file newly added to the archive.
pwd is the password to decrypt files (only used for reading). When writing, if the file size is not known in advance but may exceed
        2 GiB, pass force_zip64 to use the ZIP64 format, which can handle large
        files.  If the size is known in advance, it is best to pass a ZipInfo
        instance for name, with zinfo.file_size set.
        """
        if mode not in {"r", "w"}:
            raise ValueError('open() requires mode "r" or "w"')
        if pwd and (mode == "w"):
            raise ValueError("pwd is only supported for reading files")
        if not self.fp:
            raise ValueError(
                "Attempt to use ZIP archive that was already closed")
# Make sure we have an info object
        if isinstance(name, ZipInfo):
            # 'name' is already an info object
            zinfo = name
        elif mode == 'w':
            zinfo = ZipInfo(name)
            zinfo.compress_type = self.compression
            zinfo._compresslevel = self.compresslevel
        else:
            # Get info object for name
            zinfo = self.getinfo(name)
if mode == 'w':
            return self._open_to_write(zinfo, force_zip64=force_zip64)
if self._writing:
            raise ValueError("Can't read from the ZIP file while there "
                    "is an open writing handle on it. "
                    "Close the writing handle before trying to read.")
# Open for reading:
        self._fileRefCnt += 1
        zef_file = _SharedFile(self.fp, zinfo.header_offset,
                               self._fpclose, self._lock, lambda: self._writing)
        try:
            # Skip the file header:
            fheader = zef_file.read(sizeFileHeader)
            if len(fheader) != sizeFileHeader:
                raise BadZipFile("Truncated file header")
            fheader = struct.unpack(structFileHeader, fheader)
            if fheader[_FH_SIGNATURE] != stringFileHeader:
                raise BadZipFile("Bad magic number for file header")
fname = zef_file.read(fheader[_FH_FILENAME_LENGTH])
            if fheader[_FH_EXTRA_FIELD_LENGTH]:
                zef_file.read(fheader[_FH_EXTRA_FIELD_LENGTH])
if zinfo.flag_bits & _MASK_COMPRESSED_PATCH:
                # Zip 2.7: compressed patched data
                raise NotImplementedError("compressed patched data (flag bit 
5)")
if zinfo.flag_bits & _MASK_STRONG_ENCRYPTION:
                # strong encryption
                raise NotImplementedError("strong encryption (flag bit 6)")
if fheader[_FH_GENERAL_PURPOSE_FLAG_BITS] & _MASK_UTF_FILENAME:
                # UTF-8 filename
                fname_str = fname.decode("utf-8")
            else:
                fname_str = fname.decode(self.metadata_encoding or "cp437")
if fname_str != zinfo.orig_filename:
                raise BadZipFile(
                    'File name in directory %r and header %r differ.'
                    % (zinfo.orig_filename, fname))
if (zinfo._end_offset is not None and
                zef_file.tell() + zinfo.compress_size > zinfo._end_offset):
              raise BadZipFile(f"Overlapped entries: {zinfo.orig_filename!r} 
(possible zip bomb)")
E               zipfile.BadZipFile: Overlapped entries: 'dir/text' (possible 
zip bomb)

fheader    = (b'PK\x03\x04', 20, 0, 2, 8, 0, 15393, 1139091176, 269, 446, 8, 0)
fname      = b'dir/text'
fname_str  = 'dir/text'
force_zip64 = False
mode       = 'r'
name       = 'dir/text'
pwd        = None
self       = <zipfile.ZipFile 
filename='/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/tests/data/test1.mozzip' 
mode='r'>
zef_file   = <zipfile._SharedFile object at 0x7f30658f6d10>
zinfo      = <ZipInfo filename='dir/text' compress_type=deflate 
filemode='-rw-r--r--' file_size=446 compress_size=269>

/usr/lib/python3.11/zipfile.py:1600: BadZipFile

---------- coverage: platform linux, python 3.11.2-final-0 -----------
Name                                         Stmts   Miss  Cover   Missing
--------------------------------------------------------------------------
diffoscope/__init__.py                           1      0   100%
diffoscope/changes.py                          123     52    58%   84, 92, 95, 
104, 111, 118, 139, 176, 182, 188, 194-198, 204, 210, 226-229, 232-235, 244, 
256-288, 306-308, 313-316, 323, 335
diffoscope/comparators/__init__.py              47     13    72%   147-153, 
158-167
diffoscope/comparators/android.py               43      1    98%   49
diffoscope/comparators/apk.py                  179     27    85%   48-50, 56, 
242, 253-256, 259, 271, 278-282, 290, 294-309, 322, 326
diffoscope/comparators/ar.py                    27      0   100%
diffoscope/comparators/arsc.py                  38      0   100%
diffoscope/comparators/berkeley_db.py           20      0   100%
diffoscope/comparators/binary.py                20      0   100%
diffoscope/comparators/binwalk.py               64      8    88%   32-33, 
37-39, 74, 101-102
diffoscope/comparators/bzip2.py                 25      0   100%
diffoscope/comparators/cbfs.py                  89      1    99%   166
diffoscope/comparators/cpio.py                  10      0   100%
diffoscope/comparators/deb.py                  126      9    93%   37-39, 52, 
77, 136, 189-191
diffoscope/comparators/debian.py               169     12    93%   26-30, 
87-89, 116-121, 189, 258-262, 282, 358
diffoscope/comparators/debian_fallback.py       17      0   100%
diffoscope/comparators/decompile.py            192     99    48%   38-39, 
58-59, 62-67, 71, 74, 78, 86-97, 101-109, 116, 119, 122, 132-133, 137, 140, 
143, 156-159, 165, 169, 175, 178, 181, 184, 187, 193-204, 207-212, 224-231, 
234, 241, 245, 249, 253, 257-260, 264-275, 279-284, 307-327, 330, 336, 339, 
342-343, 346-347
diffoscope/comparators/device.py                48      6    88%   48-51, 86-89
diffoscope/comparators/dex.py                   53      2    96%   38, 77
diffoscope/comparators/directory.py            159     43    73%   40-43, 
98-106, 112-115, 119-143, 173-174, 177, 180-201, 256, 271
diffoscope/comparators/docx.py                  14      0   100%
diffoscope/comparators/dtb.py                   14      0   100%
diffoscope/comparators/elf.py                  347     33    90%   77, 82-83, 
221, 236, 243, 341, 385, 407-409, 417, 429-431, 439, 471, 511-520, 528-530, 
535, 548, 559, 565, 578-582, 594-599, 688-691
diffoscope/comparators/ffprobe.py               27      0   100%
diffoscope/comparators/fit.py                   57      2    96%   88, 118
diffoscope/comparators/fontconfig.py            27      0   100%
diffoscope/comparators/fonts.py                 27      2    93%   55-56
diffoscope/comparators/fsimage.py               88     20    77%   34-36, 44, 
51-52, 59-65, 69-71, 77, 82-83, 87, 132-134
diffoscope/comparators/gettext.py               37      0   100%
diffoscope/comparators/gif.py                   42      4    90%   56-57, 
100-101
diffoscope/comparators/git.py                   29      0   100%
diffoscope/comparators/gnumeric.py              19      0   100%
diffoscope/comparators/gzip.py                  27      0   100%
diffoscope/comparators/haskell.py               66     22    67%   37, 85-87, 
96, 102-109, 120-145, 148-153
diffoscope/comparators/hdf.py                   14      0   100%
diffoscope/comparators/html.py                  24      2    92%   50-51
diffoscope/comparators/icc.py                   14      0   100%
diffoscope/comparators/image.py                 84      6    93%   135-136, 
164-165, 184-185
diffoscope/comparators/ipk.py                    4      0   100%
diffoscope/comparators/iso9660.py               52     20    62%   33, 51, 
56-57, 61-68, 71-73, 95, 105-119
diffoscope/comparators/java.py                  51      4    92%   94-97, 106
diffoscope/comparators/javascript.py            13      0   100%
diffoscope/comparators/json.py                  56      9    84%   34-36, 
54-55, 86, 95-96, 104
diffoscope/comparators/kbx.py                   18      1    94%   35
diffoscope/comparators/llvm.py                  22      0   100%
diffoscope/comparators/lz4.py                   28      0   100%
diffoscope/comparators/lzip.py                  27      0   100%
diffoscope/comparators/macho.py                305     57    81%   94-96, 100, 
104, 107, 111-114, 119, 124, 129, 134, 148-151, 155, 159, 162, 166-169, 
174-175, 181, 184-185, 190-191, 213, 324, 328, 332-349, 366, 472, 495, 509-512, 
538, 559-562, 582, 586, 625, 637-645
diffoscope/comparators/missing_file.py          55      4    93%   71, 74, 77, 
95
diffoscope/comparators/mono.py                  14      0   100%
diffoscope/comparators/ocaml.py                 19      0   100%
diffoscope/comparators/odt.py                   24      3    88%   35, 43-44
diffoscope/comparators/ogg.py                   14      0   100%
diffoscope/comparators/openssh.py               14      0   100%
diffoscope/comparators/openssl.py               26      5    81%   56-68, 71-77
diffoscope/comparators/pcap.py                  14      0   100%
diffoscope/comparators/pdf.py                  104     24    77%   43-45, 
53-62, 67-77, 113-120, 148, 178-180
diffoscope/comparators/pe32.py                  18      5    72%   31, 41-44, 52
diffoscope/comparators/pgp.py                   59     13    78%   55-72, 75, 
79, 82, 103-104, 110-112
diffoscope/comparators/png.py                   32      2    94%   78-79
diffoscope/comparators/ppu.py                   57     16    72%   73, 85-98, 
101-107
diffoscope/comparators/ps.py                    25      2    92%   50-51
diffoscope/comparators/python.py                67     43    36%   48-60, 
64-65, 69-82, 86-117, 121-129, 133
diffoscope/comparators/rdata.py                 58      4    93%   93, 104, 
108, 170
diffoscope/comparators/rpm.py                   73      1    99%   42
diffoscope/comparators/rpm_fallback.py          12      0   100%
diffoscope/comparators/rust.py                  32      0   100%
diffoscope/comparators/socket_or_fifo.py        52     10    81%   45-63, 101
diffoscope/comparators/sphinx.py                23      2    91%   61-65
diffoscope/comparators/sqlite.py                14      0   100%
diffoscope/comparators/squashfs.py             204     34    83%   102, 120, 
134, 142, 145, 159, 167, 193-194, 198-199, 205-206, 221, 235-247, 250-251, 254, 
257, 286-287, 344, 360-362
diffoscope/comparators/symlink.py               35      2    94%   58-59
diffoscope/comparators/tar.py                   12      0   100%
diffoscope/comparators/text.py                  27      2    93%   69-71
diffoscope/comparators/uimage.py                24      0   100%
diffoscope/comparators/utils/__init__.py         0      0   100%
diffoscope/comparators/utils/archive.py        102     14    86%   67, 71, 75, 
79, 125-126, 145, 148, 151, 160, 163, 170, 173, 178
diffoscope/comparators/utils/command.py         56      3    95%   63, 77, 105
diffoscope/comparators/utils/compare.py        101     13    87%   77, 85, 105, 
124-125, 141, 160-168
diffoscope/comparators/utils/container.py      125     11    91%   66, 70, 
115-119, 192-195, 211
diffoscope/comparators/utils/file.py           298     53    82%   39-40, 
53-59, 80-94, 122, 296-297, 346-348, 358-360, 368, 372, 376, 380, 445-448, 
473-476, 490-493, 501, 505-509, 538, 549-562, 581, 588, 611
diffoscope/comparators/utils/fuzzy.py           33      2    94%   27-28
diffoscope/comparators/utils/libarchive.py     197     32    84%   47-50, 
54-57, 69-72, 76-79, 83-86, 134-137, 176, 208, 216, 219, 232, 246, 251-252, 
255, 258, 272-273, 304, 347-348, 371-387
diffoscope/comparators/utils/operation.py       26      6    77%   33, 40, 48, 
55, 62, 66
diffoscope/comparators/utils/specialize.py      32      2    94%   78, 81
diffoscope/comparators/vmlinuz.py               28      9    68%   35, 38, 41, 
45-59
diffoscope/comparators/wasm.py                  19      0   100%
diffoscope/comparators/xml.py                   52      3    94%   69, 156-157
diffoscope/comparators/xmlb.py                  19      3    84%   31, 43, 46
diffoscope/comparators/xsb.py                   17      0   100%
diffoscope/comparators/xz.py                    28      0   100%
diffoscope/comparators/zip.py                  158      5    97%   171, 174, 
206, 258-259
diffoscope/comparators/zst.py                   26      0   100%
diffoscope/config.py                            50      4    92%   83-98
diffoscope/diff.py                             435     60    86%   103, 140, 
199, 237, 239, 283-286, 299-327, 409, 555-560, 579-580, 591, 608, 610, 614, 
630, 635, 668-669, 672-673, 695-696, 699-709, 717-720, 730-733, 748
diffoscope/difference.py                       232     17    93%   116, 
226-230, 249, 284, 291-292, 311, 346-349, 380, 396, 402, 457
diffoscope/environ.py                           13      0   100%
diffoscope/exc.py                               21      0   100%
diffoscope/excludes.py                          24      5    79%   31-36, 43-45
diffoscope/external_tools.py                     5      0   100%
diffoscope/feeders.py                           83      3    96%   36, 116-117
diffoscope/logging.py                           28      4    86%   29-30, 35-36
diffoscope/main.py                             281     67    76%   59-61, 
65-67, 73, 450, 458-465, 477-481, 529, 569-614, 631, 686, 700-701, 723, 
730-734, 739, 744-752, 770, 772-775, 780-786, 804
diffoscope/path.py                              15      2    87%   30-31
diffoscope/presenters/__init__.py                0      0   100%
diffoscope/presenters/formats.py                43      4    91%   99-102
diffoscope/presenters/html/__init__.py           1      0   100%
diffoscope/presenters/html/html.py             473    125    74%   82-89, 
143-146, 150, 152-154, 268-269, 272, 307, 331, 348-359, 418, 429, 442-446, 451, 
458-465, 476, 481-493, 496-511, 542-545, 549-554, 557, 563-567, 592-601, 
606-618, 623-637, 652, 672-675, 750, 752, 816, 832, 843-875, 893
diffoscope/presenters/html/templates.py         11      0   100%
diffoscope/presenters/icon.py                    1      0   100%
diffoscope/presenters/json.py                   32      1    97%   55
diffoscope/presenters/markdown.py               21      0   100%
diffoscope/presenters/restructuredtext.py       25      0   100%
diffoscope/presenters/text.py                   44      7    84%   61-66, 
71-72, 81-82
diffoscope/presenters/utils.py                 166     14    92%   42, 71, 153, 
158, 165, 307, 343, 354, 357, 422-427
diffoscope/profiling.py                         47      3    94%   70-72
diffoscope/progress.py                         168     18    89%   34-36, 
45-52, 78, 89-90, 95, 120, 225, 240-241, 249
diffoscope/readers/__init__.py                   9      0   100%
diffoscope/readers/json.py                      17      1    94%   34
diffoscope/readers/utils.py                      2      0   100%
diffoscope/tempfiles.py                         57      9    84%   83-84, 
99-105, 123-124
diffoscope/tools.py                             93     13    86%   26-27, 
98-99, 109-110, 149, 162, 167, 182-185
diffoscope/utils.py                             38      1    97%   45
--------------------------------------------------------------------------
TOTAL                                         7843   1141    85%
Coverage HTML written to dir htmlcov

=========================== short test summary info ============================
SKIPPED [1] tests/comparators/test_berkeley_db.py:64: requires  >= 6.0 (5.3.28 
detected)
SKIPPED [1] tests/comparators/test_dex.py:89: requires  min 9.0.4 >= 14.0 
(17.0.11 detected)
SKIPPED [1] tests/comparators/test_elf_decompiler.py:78: radare2 didn't 
recognize pdgj command
SKIPPED [1] tests/comparators/test_elf_decompiler.py:88: radare2 didn't 
recognize pdgj command
SKIPPED [1] tests/comparators/test_elf_decompiler.py:98: requires r2pipe Python 
module
SKIPPED [1] tests/comparators/test_iso9660.py:53: requires isoinfo (try 
installing genisoimage)
SKIPPED [1] tests/comparators/test_iso9660.py:62: requires isoinfo (try 
installing genisoimage)
SKIPPED [1] tests/comparators/test_iso9660.py:71: requires isoinfo (try 
installing genisoimage)
SKIPPED [1] tests/comparators/test_iso9660.py:78: requires isoinfo (try 
installing genisoimage)
SKIPPED [1] tests/comparators/test_iso9660.py:86: requires isoinfo (try 
installing genisoimage)
SKIPPED [1] tests/comparators/test_java.py:86: requires  min 9.0.4 >= 14.0 
(17.0.11 detected)
SKIPPED [1] tests/comparators/test_macho.py:59: requires otool and lipo
SKIPPED [1] tests/comparators/test_macho.py:67: requires otool and lipo
SKIPPED [1] tests/comparators/test_macho_decompiler.py:86: radare2 didn't 
recognize pdgj command
SKIPPED [1] tests/comparators/test_macho_decompiler.py:96: radare2 didn't 
recognize pdgj command
SKIPPED [1] tests/comparators/test_macho_decompiler.py:109: requires r2pipe 
Python module
SKIPPED [1] tests/comparators/test_odt.py:55: requires  >= 0.7 (0.5 detected)
SKIPPED [1] tests/comparators/test_odt.py:60: requires  >= 0.7 (0.5 detected)
SKIPPED [1] tests/comparators/test_python.py:41: Unstable on 3.10+
SKIPPED [1] tests/comparators/test_python.py:54: Only Python 3.9 and 3.10 can 
de-marshal test1.pyc-renamed
SKIPPED [1] tests/comparators/test_utils.py:49: requires
SKIPPED [1] tests/comparators/test_utils.py:54: requires /missing
XFAIL tests/comparators/test_apk.py::test_android_manifest
== 2 failed, 688 passed, 22 skipped, 1 xfailed, 2 errors in 185.35s (0:03:05) ==
E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; python3.11 -m pytest -vv -r sxX 
-l --cov=diffoscope --cov-report=term-missing --cov-report=html
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 
returned exit code 13
make: *** [debian/rules:35: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/bookworm/

About the archive rebuild: The build was made on virtual machines
of type m6a.large and r6a.large from AWS, using sbuild and a
reduced chroot with only build-essential packages.

If you could not 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 affects, so that this is still visible in the BTS web
page for this package.

Thanks.

--- End Message ---
--- Begin Message ---
Source: diffoscope
Source-Version: 240+deb12u1
Done: Chris Lamb <la...@debian.org>

We believe that the bug you reported is fixed in the latest version of
diffoscope, 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 1078...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Chris Lamb <la...@debian.org> (supplier of updated diffoscope 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 ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Mon, 26 Aug 2024 11:43:37 +0100
Source: diffoscope
Built-For-Profiles: nocheck
Architecture: source
Version: 240+deb12u1
Distribution: stable
Urgency: medium
Maintainer: Reproducible builds folks 
<reproducible-bui...@lists.alioth.debian.org>
Changed-By: Chris Lamb <la...@debian.org>
Closes: 1078883
Changes:
 diffoscope (240+deb12u1) stable; urgency=medium
 .
   [ Chris Lamb ]
   * Backport a patch by FC (Fay) Stegerman to fix a FTBFS caused by a
     .zip-related security fix that was included in Debian's own upload of
     python3.11 3.11.2-6+deb12u2 (see #1070133). Diffoscope's testsuite
     deliberately excercises a Mozilla-style ZIP file that has its Central
     Directory secton at the beginning of the file, rather than at the end. This
     breaks the new overlap check in Python's built-in zipfile.py library as
     that checks that every entry ends before the Central Directory begins. Many
     thanks to Fay for both the patch and related guidance. (Closes: #1078883)
   * Do not call marshal.loads() on precompiled Python bytecode as it is
     inherently unsafe. The loads() method can easily cause the CPython process
     running diffoscope to irretrievably crash (e.g. when presented with a newer
     .pyc format), and potentially permit of arbitrary code execution. Replace,
     for now, with a brief textual summary of the code section of .pyc files
     instead. For more information, see:
     <https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/371>
Checksums-Sha1:
 618824e4657b53c86c5403b724286e8336228ad3 5183 diffoscope_240+deb12u1.dsc
 3fc068320bad4c5e4bf98cbd1b8170549cdaa473 2442344 diffoscope_240+deb12u1.tar.xz
 c891561479979bc901a4863d2e38c56730b71ee5 7234 
diffoscope_240+deb12u1_amd64.buildinfo
Checksums-Sha256:
 5107c359ec1637d82e8041160b22054123d21fcf500e9358fdcdac904c8fb1b8 5183 
diffoscope_240+deb12u1.dsc
 88c102de0011563bac39f8c8a5b19304e926600fd225aa6d5c108e2b0fc16adc 2442344 
diffoscope_240+deb12u1.tar.xz
 38711632fbf6dd0447c7817000d2bad076fbb48df0ebc167ba38cd92674e0715 7234 
diffoscope_240+deb12u1_amd64.buildinfo
Files:
 468c71271c19c5e272b3b46827e9d743 5183 devel optional diffoscope_240+deb12u1.dsc
 05e75e2b148bfa807f36454b2ec06c24 2442344 devel optional 
diffoscope_240+deb12u1.tar.xz
 cdaf26b8ffe90ba684ae089f881d870e 7234 devel optional 
diffoscope_240+deb12u1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEwv5L0nHBObhsUz5GHpU+J9QxHlgFAmbW1UgACgkQHpU+J9Qx
HliUgxAAhfX9w/UYU4VoZzxtSVxTrP5ZG+rsK+vo9z0aAahQD+dGWbXJniJnl8AM
ahl5D+lshKpkBIDiYiDTXeLY04UjIIBEbQYZKrgjDcmm2L3Kk1/6/PCtYbR3AhrB
jUyH9EKP7PH7w/+aij1BvbvOGmnNXBJzV3MbEQft8w1haE7VvZKRTVaOSoeDE/jr
CKlZzKP6tfZOQyk0Iehur7e/nbxKEx5oE0QDqbu/XkPBS6ztMHzvrWMvsov7i8Jy
HjIeCtvCCYLCeNQXdnKuxc1VLXuimJMJRwrdR/AI+/XN9vCfMsOiXdE0K0joQg8S
1Pn9hXzWeO2bW5uRCN6E9GtFmHUWek9UWdILX0DPGfoiWc5hvZl92pBuHrbLtYn9
lHdqKSut1Eg8szY7skLI1CD6AIriObvEFwXiVJ1fZ088rUf7pQxWHSKPKm3t7btF
sPUPgEVoJ2Y0GygnVxA73/JJIh/9HXVAfEbEWAAo0MzAo62bPTof3zux/6gsRJ22
kD24ilaiRfBL5PssGwl3Qn68sK+95ZvP87pgjnjYsjWEJWFV3xfhlqFEOVtdcp09
eN0oHCXd9CTR996V/qsokvf+5z7uVnpJ6B66vxDu9nzFLEcHbt45yVLGtic2qtkr
rG7HHNEeY2A5vwaHk4+Mcn5edLh11qmlipblbJxYafOTQWZmdHc=
=Ywa4
-----END PGP SIGNATURE-----

Attachment: pgphjc9ICCioh.pgp
Description: PGP signature


--- End Message ---

Reply via email to