Bug#903401: diffoscope fails on deb archives that contain non-compressed data.tar

Roderich Schupp roderich.schupp at gmail.com
Mon Jul 9 14:54:39 BST 2018


Package: diffoscope
Version: 99
Severity: normal

Following up #903391 let's try the same with uncompressed data.tar (using again
modified tests/data/test{1,2}.deb for diffoscope source and dc9ee98bdfce7d1a
from git):

$ diffoscope non-compressed-data*.deb
...
2018-07-09 13:51:51 D: diffoscope.comparators.utils.libarchive: Extracted 4
entries from /tmp/diffoscope_a9dq4e2h/tmppp059aii/0/2.tar to
/tmp/diffoscope_a9dq4e2h/tmpk1so9k_u
2018-07-09 13:51:51 D: diffoscope.comparators.utils.archive: Unpacking
./usr/share/doc/test/copyright from data.tar
2018-07-09 13:51:51 D: diffoscope.comparators.utils.archive: Unpacking
./usr/share/doc/test/README.Debian from data.tar
2018-07-09 13:51:51 D: diffoscope.comparators.utils.archive: Unpacking
./usr/share/doc/test/text from data.tar
2018-07-09 13:51:51 D: diffoscope.comparators.utils.compare: Comparing
./usr/share/doc/test/changelog.gz (LibarchiveMember) and
./usr/share/doc/test/changelog.gz (LibarchiveMember)
2018-07-09 13:51:51 D: diffoscope.comparators.utils.file:
File.has_same_content: <<class
'diffoscope.comparators.utils.libarchive.LibarchiveMember'>
./usr/share/doc/test/changelog.gz> <<class
'diffoscope.comparators.utils.libarchive.LibarchiveMember'>
./usr/share/doc/test/changelog.gz>
2018-07-09 13:51:51 D: diffoscope.comparators.utils.specialize: Using
DebDataTarFile for ./usr/share/doc/test/changelog.gz
2018-07-09 13:51:51 D: diffoscope.comparators.utils.specialize: Using
DebDataTarFile for ./usr/share/doc/test/changelog.gz
2018-07-09 13:51:51 D: diffoscope.diff: Running diff -aU7
/tmp/diffoscope_a9dq4e2h/tmph5lsxwjh/fifo1
/tmp/diffoscope_a9dq4e2h/tmph5lsxwjh/fifo2
2018-07-09 13:51:51 D: diffoscope.diff: diff -aU7
/tmp/diffoscope_a9dq4e2h/tmph5lsxwjh/fifo1
/tmp/diffoscope_a9dq4e2h/tmph5lsxwjh/fifo2: returncode 0, parsed True
Traceback (most recent call last):
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 327, in
diff
    return run_diff(fifo1_path, fifo2_path, fifo1.end_nl_q, fifo2.end_nl_q)
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 220, in
__exit__
    self.join()
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 253, in
join
    raise self._exception
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 244, in
run
    end_nl = self.feeder(fifo)
  File "/build/work/diffoscope/diffoscope-99/diffoscope/feeders.py", line 45,
in feeder
    for buf in in_file:
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/libarchive.py",
line 99, in list_libarchive
    with libarchive.file_reader(path) as archive:
  File "/usr/lib/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/usr/lib/python3/dist-packages/libarchive/read.py", line 73, in
file_reader
    ffi.read_open_filename_w(archive_p, path, block_size)
  File "/usr/lib/python3/dist-packages/libarchive/ffi.py", line 85, in
check_int
    raise archive_error(args[0], retcode)
  File "/usr/lib/python3/dist-packages/libarchive/ffi.py", line 69, in
archive_error
    raise ArchiveError(msg, errno(archive_p), retcode, archive_p)
libarchive.exception.ArchiveError: Unrecognized archive format (errno=84,
retcode=-30, archive_p=139857020076192)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/build/work/diffoscope/diffoscope-99/diffoscope/main.py", line 460, in
main
    sys.exit(run_diffoscope(parsed_args))
  File "/build/work/diffoscope/diffoscope-99/diffoscope/main.py", line 432, in
run_diffoscope
    difference = compare_root_paths(path1, path2)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/compare.py",
line 68, in compare_root_paths
    difference = compare_files(file1, file2)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/compare.py",
line 118, in compare_files
    return file1.compare(file2, source)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/file.py",
line 366, in compare
    difference = self._compare_using_details(other, source)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/file.py",
line 321, in _compare_using_details
    other.as_container, no_recurse=no_recurse))
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/container.py",
line 177, in compare_pair
    file1, file2, source=None, diff_content_only=no_recurse)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/compare.py",
line 118, in compare_files
    return file1.compare(file2, source)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/file.py",
line 366, in compare
    difference = self._compare_using_details(other, source)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/file.py",
line 321, in _compare_using_details
    other.as_container, no_recurse=no_recurse))
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/container.py",
line 177, in compare_pair
    file1, file2, source=None, diff_content_only=no_recurse)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/compare.py",
line 118, in compare_files
    return file1.compare(file2, source)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/file.py",
line 366, in compare
    difference = self._compare_using_details(other, source)
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/file.py",
line 304, in _compare_using_details
    details.extend(self.compare_details(other, source))
  File "/build/work/diffoscope/diffoscope-99/diffoscope/comparators/deb.py",
line 217, in compare_details
    self.path, other.path, source="file list")]
  File "/build/work/diffoscope/diffoscope-99/diffoscope/difference.py", line
228, in from_text_readers
    **kwargs
  File "/build/work/diffoscope/diffoscope-99/diffoscope/difference.py", line
186, in from_feeder
    unified_diff = diff(feeder1, feeder2)
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 327, in
diff
    return run_diff(fifo1_path, fifo2_path, fifo1.end_nl_q, fifo2.end_nl_q)
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 220, in
__exit__
    self.join()
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 253, in
join
    raise self._exception
  File "/build/work/diffoscope/diffoscope-99/diffoscope/diff.py", line 244, in
run
    end_nl = self.feeder(fifo)
  File "/build/work/diffoscope/diffoscope-99/diffoscope/feeders.py", line 45,
in feeder
    for buf in in_file:
  File
"/build/work/diffoscope/diffoscope-99/diffoscope/comparators/utils/libarchive.py",
line 99, in list_libarchive
    with libarchive.file_reader(path) as archive:
  File "/usr/lib/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/usr/lib/python3/dist-packages/libarchive/read.py", line 73, in
file_reader
    ffi.read_open_filename_w(archive_p, path, block_size)
  File "/usr/lib/python3/dist-packages/libarchive/ffi.py", line 85, in
check_int
    raise archive_error(args[0], retcode)
  File "/usr/lib/python3/dist-packages/libarchive/ffi.py", line 69, in
archive_error
    raise ArchiveError(msg, errno(archive_p), retcode, archive_p)
libarchive.exception.ArchiveError: Unrecognized archive format (errno=84,
retcode=-30, archive_p=139856885857072)



-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.17.4 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages diffoscope depends on:
ii  libpython3.6-stdlib    3.6.6-1
ii  python3                3.6.6-1
ii  python3-distro         1.0.1-2
ii  python3-distutils      3.6.6-1
ii  python3-libarchive-c   2.1-3.1
ii  python3-magic          2:0.4.15-1
ii  python3-pkg-resources  39.2.0-1

Versions of packages diffoscope recommends:
pn  abootimg                         <none>
ii  acl                              2.2.52-3+b1
pn  apktool                          <none>
pn  binutils-multiarch               <none>
ii  bzip2                            1.0.6-8.1
ii  caca-utils                       0.99.beta19-2+b3
ii  colord                           1.3.3-2
ii  db-util                          5.3.1
ii  default-jdk [java-sdk]           2:1.10-67
ii  default-jdk-headless             2:1.10-67
ii  device-tree-compiler             1.4.6-1
pn  docx2txt                         <none>
ii  e2fsprogs                        1.44.3~rc2-1
pn  enjarify                         <none>
pn  fontforge-extras                 <none>
pn  fp-utils                         <none>
ii  genisoimage                      9:1.1.11-3+b2
ii  gettext                          0.19.8.1-6+b1
ii  ghc                              8.2.2-4
ii  ghostscript                      9.22~dfsg-2.1
ii  giflib-tools                     5.1.4-3
pn  gnumeric                         <none>
ii  gnupg                            2.2.8-3
ii  imagemagick                      8:6.9.10.2+dfsg-2
ii  imagemagick-6.q16 [imagemagick]  8:6.9.10.2+dfsg-2
pn  jsbeautifier                     <none>
ii  libarchive-tools                 3.2.2-4
pn  llvm                             <none>
ii  lz4                              1.8.2-1
ii  mono-utils                       4.6.2.7+dfsg-2
pn  odt2txt                          <none>
pn  oggvideotools                    <none>
ii  openjdk-10-jdk [java-sdk]        10.0.1+10-4
ii  openjdk-11-jdk [java-sdk]        11~21-2
ii  openssh-client                   1:7.7p1-2
pn  pgpdump                          <none>
ii  poppler-utils                    0.63.0-2
pn  procyon-decompiler               <none>
ii  python3-argcomplete              1.8.1-1
pn  python3-binwalk                  <none>
ii  python3-debian                   0.1.32
ii  python3-defusedxml               0.5.0-1
pn  python3-guestfs                  <none>
pn  python3-jsondiff                 <none>
pn  python3-progressbar              <none>
pn  python3-pyxattr                  <none>
ii  python3-tlsh                     3.4.4+20151206-1+b4
pn  r-base-core                      <none>
ii  rpm2cpio                         4.14.1+dfsg1-3
pn  sng                              <none>
ii  sqlite3                          3.24.0-1
ii  squashfs-tools                   1:4.3-6
ii  tcpdump                          4.9.2-3
ii  unzip                            6.0-21
ii  vim-common                       2:8.1.0089-1
ii  xmlbeans                         2.6.0+dfsg-3
ii  xxd                              2:8.1.0089-1
ii  xz-utils                         5.2.2-1.3

Versions of packages diffoscope suggests:
ii  libjs-jquery  3.2.1-1

-- no debconf information



More information about the Reproducible-builds mailing list