Package: diffoscope Version: 99 Severity: normal How to reproduce: generate two debs with non-compressed control.tar members, e.g. in the diffoscope source directory run:
top=$(pwd) for i in 1 2 ; do t=$(mktemp -d) ( cd $t ar xv $top/tests/data/test$i.deb gunzip control.tar.gz ar rv $top/non-compressed-control$i.deb debian-binary control.tar data.tar.gz ) rm -rf $t done And then $ diffoscope non-compressed-control*.deb Traceback (most recent call last): File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 460, in main sys.exit(run_diffoscope(parsed_args)) File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 432, in run_diffoscope difference = compare_root_paths(path1, path2) File "/usr/lib/python3/dist- packages/diffoscope/comparators/utils/compare.py", line 68, in compare_root_paths difference = compare_files(file1, file2) File "/usr/lib/python3/dist- packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files return file1.compare(file2, source) File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare difference = self._compare_using_details(other, source) File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details other.as_container, no_recurse=no_recurse)) File "/usr/lib/python3/dist- packages/diffoscope/comparators/utils/container.py", line 177, in compare_pair file1, file2, source=None, diff_content_only=no_recurse) File "/usr/lib/python3/dist- packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files return file1.compare(file2, source) File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare difference = self._compare_using_details(other, source) File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details other.as_container, no_recurse=no_recurse)) File "/usr/lib/python3/dist- packages/diffoscope/comparators/utils/container.py", line 177, in compare_pair file1, file2, source=None, diff_content_only=no_recurse) File "/usr/lib/python3/dist- packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files return file1.compare(file2, source) File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare difference = self._compare_using_details(other, source) File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details other.as_container, no_recurse=no_recurse)) File "/usr/lib/python3/dist-packages/diffoscope/comparators/deb.py", line 180, in comparisons my_md5sums = self.source.container.source.container.source.md5sums File "/usr/lib/python3/dist-packages/diffoscope/comparators/deb.py", line 114, in md5sums self._md5sums = md5sums_file.parse() AttributeError: 'TextFile' object has no attribute 'parse' I think the problem is that comparators/deb.py assumes that a "md5sums" file is always two levels "down" in its container (control.tar.gz -> control.tar -> md5sums) which is false when control.tar isn't compressed. Similar problems ensue when data.tar isn't compressed. Probably connected to #879217. Cheers, Roderich -- 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