Package: diffoscope Version: 83 Severity: wishlist Dear Maintainer,
Several times people on IRC have asked about reprotest reporting file permissions differences when building files. This can be reproduced trivially: $ reprotest 'touch x' x [..] │ │ │ -Access: (0644/-rw-r--r--) Uid: ( 1000/infinity0) Gid: ( 1000/infinity0) │ │ │ +Access: (0664/-rw-rw-r--) Uid: ( 1000/infinity0) Gid: ( 1000/infinity0) [..] │ │ │ -group::r-- │ │ │ +group::rw- [..] exit code 1 This is because diffoscope compares the metadata of its command-line arguments by default (which is actually a property of the parent directory and not the file itself). For reproducibility purposes, this is not usually an issue because one typically does not distribute x plus its current directory metadata, but only the contents of x. This can confuse newbies who might not be confident about what reproducibility means, and assume that "the tool is right". In order to avoid a diff like this, one has to do something like $ reprotest 'umask 022; touch x' x [..] ======================= Reproduction successful ======================= No differences in x e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 x which is needlessly pointless. However, sometimes people using diffoscope might indeed want to compare the metadata of its arguments, e.g. after doing "make install" or similar. Therefore, we could add a --exclude-toplevel-metadata flag to diffoscope, which reprotest users could use via --diffoscope-arg, and this could also be set by default in any relevant "presets". This would cover both use cases. X -- System Information: Debian Release: 9.0 APT prefers testing APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (300, 'unstable'), (200, 'experimental'), (1, 'experimental-debug') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages diffoscope depends on: ii python3 3.5.3-1 ii python3-libarchive-c 2.1-3.1 ii python3-magic 1:5.30-1 ii python3-pkg-resources 33.1.1-1 Versions of packages diffoscope recommends: ii acl 2.2.52-3+b1 ii apktool 2.2.1+dfsg-2 ii binutils-multiarch 2.28-5 ii bzip2 1.0.6-8.1 ii caca-utils 0.99.beta19-2+b2 ii colord 1.3.3-2 ii default-jdk [java-sdk] 2:1.8-58 ii default-jdk-headless 2:1.8-58 ii enjarify 1:1.0.3-3 ii fontforge-extras 0.3-4 ii fp-utils 3.0.0+dfsg-11 ii fp-utils-3.0.0 [fp-utils] 3.0.0+dfsg-11 ii genisoimage 9:1.1.11-3+b2 ii gettext 0.19.8.1-2 ii ghc 8.0.1-17+b1 ii ghostscript 9.20~dfsg-3.2 ii gnupg 2.1.18-6 ii imagemagick 8:6.9.7.4+dfsg-11 ii imagemagick-6.q16 [imagemagick] 8:6.9.7.4+dfsg-11 ii jsbeautifier 1.6.4-6 ii llvm 1:3.8-36 ii mono-utils 4.6.2.7+dfsg-1 ii openjdk-8-jdk [java-sdk] 8u131-b11-2 ii openssh-client 1:7.4p1-10 ii pdftk 2.02-4+b2 ii poppler-utils 0.48.0-2 ii python3-argcomplete 1.8.1-1 ii python3-debian 0.1.30 ii python3-guestfs 1:1.34.6-2 ii python3-progressbar 2.3-4 ii python3-rpm 4.12.0.2+dfsg1-2 ii python3-tlsh 3.4.4+20151206-1+b2 ii rpm2cpio 4.12.0.2+dfsg1-2 ii sng 1.1.0-1+b1 ii sqlite3 3.16.2-5 ii squashfs-tools 1:4.3-3+b1 ii unzip 6.0-21 ii vim-common 2:8.0.0197-4 ii xxd 2:8.0.0197-4 ii xz-utils 5.2.2-1.2+b1 Versions of packages diffoscope suggests: ii libjs-jquery 3.1.1-2 -- no debconf information _______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds