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