Package: diffoscope Version: 95 Severity: wishlist It would be nice if comparing ZIP files with diffoscope could compare the comments embedded in the CDFH and EOCD structures:
https://en.wikipedia.org/wiki/Zip_(file_format)#Central_directory_file_header This can be done using both zipnote or zipdetails but zipinfo (used by diffoscope) does not print anything about zip file comments. I'm not sure which tool to use but maybe use zipnote first and if that produces no differences then use zipdetails, because the latter also allows for comparing the compression level of individual files. Or maybe just use zipdetails if the zipinfo output only differs by the file size information, since scanning the whole zip may be expensive. I've illustrated this with the command sequence below. $ touch foo $ zip foo.zip foo adding: foo (stored 0%) $ cp foo.zip bar.zip $ zipnote -w bar.zip <(zipnote foo.zip | sed -e '/@ foo/a hello' -e '$a goodbye') $ diffoscope foo.zip bar.zip |#####################################################################################################################################| 100% Time: 0:00:00 --- foo.zip +++ bar.zip ├── zipinfo /dev/stdin │ @@ -1,3 +1,3 @@ │ -Zip file size: 156 bytes, number of entries: 1 │ +Zip file size: 168 bytes, number of entries: 1 │ -rw-r----- 3.0 unx 0 bx stor 18-Jun-18 01:29 foo │ 1 file, 0 bytes uncompressed, 0 bytes compressed: 0.0% $ diff -u <(zipnote foo.zip) <(zipnote bar.zip) --- /dev/fd/63 2018-06-18 09:54:26.288808196 +0800 +++ /dev/fd/62 2018-06-18 09:54:26.288808196 +0800 @@ -1,3 +1,5 @@ @ foo +hello @ (comment above this line) @ (zip file comment below this line) +goodbye $ diff -u <(zipdetails foo.zip) <(zipdetails bar.zip) --- /dev/fd/63 2018-06-18 09:54:42.860925054 +0800 +++ /dev/fd/62 2018-06-18 09:54:42.860925054 +0800 @@ -37,7 +37,7 @@ 0055 Uncompressed Length 00000000 0059 Filename Length 0003 005B Extra Length 0018 -005D Comment Length 0000 +005D Comment Length 0005 005F Disk Start 0000 0061 Int File Attributes 0000 [Bit 0] 0 'Binary Data' @@ -55,13 +55,15 @@ 007D UID 000003E8 0081 GID Size 04 0082 GID 000003E8 +0086 Comment 'hello' -0086 END CENTRAL HEADER 06054B50 -008A Number of this disk 0000 -008C Central Dir Disk no 0000 -008E Entries in this disk 0001 -0090 Total Entries 0001 -0092 Size of Central Dir 00000049 -0096 Offset to Central Dir 0000003D -009A Comment Length 0000 +008B END CENTRAL HEADER 06054B50 +008F Number of this disk 0000 +0091 Central Dir Disk no 0000 +0093 Entries in this disk 0001 +0095 Total Entries 0001 +0097 Size of Central Dir 0000004E +009B Offset to Central Dir 0000003D +009F Comment Length 0007 +00A1 Comment 'goodbye' Done -- System Information: Debian Release: buster/sid APT prefers testing-debug APT policy: (900, 'testing-debug'), (900, 'testing'), (800, 'unstable-debug'), (800, 'unstable'), (790, 'buildd-unstable'), (700, 'experimental-debug'), (700, 'experimental'), (690, 'buildd-experimental') Architecture: amd64 (x86_64) Kernel: Linux 4.16.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en (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~rc1-1 ii python3 3.6.5-3 ii python3-distro 1.0.1-2 ii python3-distutils 3.6.5-4 ii python3-libarchive-c 2.1-3.1 ii python3-magic 2:0.4.15-1 ii python3-pkg-resources 39.1.0-1 Versions of packages diffoscope recommends: ii abootimg 0.6-1+b2 ii acl 2.2.52-3+b1 ii apktool 2.3.3-1 ii binutils-multiarch 2.30-21 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 pn device-tree-compiler <none> pn docx2txt <none> ii e2fsprogs 1.44.2-1 ii enjarify 1:1.0.3-4 ii fontforge-extras 0.3-4 pn fp-utils <none> ii genisoimage 9:1.1.11-3+b2 ii gettext 0.19.8.1-6+b1 ii ghc 8.0.2-11 ii ghostscript 9.22~dfsg-2.1 ii giflib-tools 5.1.4-3 ii gnumeric 1.12.39-1 ii gnupg 2.2.8-1 ii imagemagick 8:6.9.9.39+dfsg-1 ii imagemagick-6.q16 [imagemagick] 8:6.9.9.39+dfsg-1 ii jsbeautifier 1.6.4-7 pn libarchive-tools <none> ii llvm 1:4.0-40 pn mono-utils <none> pn odt2txt <none> pn oggvideotools <none> ii openjdk-10-jdk [java-sdk] 10.0.1+10-4 ii openssh-client 1:7.7p1-2 ii pdftk 2.02-4+b2 ii pgpdump 0.31-0.2 ii poppler-utils 0.63.0-2 pn procyon-decompiler <none> ii python3-argcomplete 1.8.1-1 ii python3-binwalk 2.1.1-16 ii python3-debian 0.1.32 pn python3-defusedxml <none> pn python3-guestfs <none> ii python3-jsondiff 1.1.1-2 ii python3-progressbar 2.3-4 ii python3-pyxattr 0.6.0-2+b1 ii python3-tlsh 3.4.4+20151206-1+b3 pn r-base-core <none> ii rpm2cpio 4.14.1+dfsg1-3 ii sng 1.1.0-1+b1 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.0.1766-1 pn xmlutils <none> ii xxd 2:8.0.1766-1 ii xz-utils 5.2.2-1.3 Versions of packages diffoscope suggests: ii libjs-jquery 3.2.1-1 -- no debconf information -- bye, pabs https://wiki.debian.org/PaulWise
signature.asc
Description: This is a digitally signed message part