Package: libfile-stripnondeterminism-perl Version: 0.023-2 Severity: normal Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
Dear maintainer, Current file handlers is considering file mode, but other file attributes (Ex. user ID, group ID, inode number, link counts, ...) are not considered. It means that a file with same file name before and after normalization could have different file attributes except for file mode. This would cause some problem. Suppose that we have a debian package which is packaged by "debhelper" and that "debian/rule" execute "rdfind -makehardlinks true" in "override_dh_auto_install" target to reduce package size using hard-link of duplicated files in the package [1]. [1] https://wiki.debian.org/dedup.debian.net "dh_strip_nondeterminism" target is executed after "override_dh_auto_install" (hard-linking). In the target, File::StripNondeterminism module create new normalized file which has different inode number from target file and rename() the normalized file to the target file it data has changed. Because inode number has changed after rename(). hard-link status of files by "rdfind" could be changed [2]. This cause duplicated files in final package in spite of "rdfind" invocation in "dh_strip_nondeterminism" target. [2] hard-link status could be changed. $ (umask 0006; convert xc:none /tmp/preserve_file_attributes.v1YRi3/ln_target.png) $ ln /tmp/preserve_file_attributes.v1YRi3/ln_target.png /tmp/preserve_file_attributes.v1YRi3/ln_hardlink.png $ stat /tmp/preserve_file_attributes.v1YRi3/ln_hardlink.png /tmp/preserve_file_attributes.v1YRi3/ln_target.png File: ‘/tmp/preserve_file_attributes.v1YRi3/ln_hardlink.png’ Size: 272 Blocks: 8 IO Block: 4096 regular file Device: fe01h/65025d Inode: 498297 Links: 2 Access: (0660/-rw-rw----) Uid: ( 1000/********) Gid: ( 1000/********) Access: 2016-08-30 21:53:27.562341916 +0900 Modify: 2016-08-30 21:53:27.558341948 +0900 Change: 2016-08-30 21:53:27.558341948 +0900 Birth: - File: ‘/tmp/preserve_file_attributes.v1YRi3/ln_target.png’ Size: 272 Blocks: 8 IO Block: 4096 regular file Device: fe01h/65025d Inode: 498297 Links: 2 Access: (0660/-rw-rw----) Uid: ( 1000/********) Gid: ( 1000/********) Access: 2016-08-30 21:53:27.562341916 +0900 Modify: 2016-08-30 21:53:27.558341948 +0900 Change: 2016-08-30 21:53:27.558341948 +0900 Birth: - $ perl -I lib/ bin/strip-nondeterminism /tmp/preserve_file_attributes.v1YRi3/ln_hardlink.png $ stat /tmp/preserve_file_attributes.v1YRi3/ln_hardlink.png /tmp/preserve_file_attributes.v1YRi3/ln_target.png File: ‘/tmp/preserve_file_attributes.v1YRi3/ln_hardlink.png’ Size: 155 Blocks: 8 IO Block: 4096 regular file Device: fe01h/65025d Inode: 498310 Links: 1 Access: (0660/-rw-rw----) Uid: ( 1000/********) Gid: ( 1000/********) Access: 2016-08-30 21:53:27.850341897 +0900 Modify: 2016-08-30 21:53:27.846341898 +0900 Change: 2016-08-30 21:53:27.846341898 +0900 Birth: - File: ‘/tmp/preserve_file_attributes.v1YRi3/ln_target.png’ Size: 272 Blocks: 8 IO Block: 4096 regular file Device: fe01h/65025d Inode: 498297 Links: 1 Access: (0660/-rw-rw----) Uid: ( 1000/********) Gid: ( 1000/********) Access: 2016-08-30 21:53:27.850341897 +0900 Modify: 2016-08-30 21:53:27.558341948 +0900 Change: 2016-08-30 21:53:27.846341898 +0900 Birth: - To fix this issue and to preserve as much file attribute information of target file as possible, I prepared a patch to "master" branch of official repository [3]. I would like someone to request review the patch and merge it to the branch. [3] https://anonscm.debian.org/git/reproducible/strip-nondeterminism.git/log/?h=master -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/dash Init: unable to detect Versions of packages libfile-stripnondeterminism-perl depends on: ii libarchive-zip-perl 1.59-1 ii perl 5.22.2-3 libfile-stripnondeterminism-perl recommends no packages. libfile-stripnondeterminism-perl suggests no packages. -- no debconf information Sincerely yours, Ryuunosuke Ayanokouzi -- AYANOKOUZI, Ryuunosuke <i38w...@yahoo.co.jp>
0001-Preserve-file-attribute-information-of-target-file.patch
Description: Binary data
pgppFYCSLH8qx.pgp
Description: OpenPGP Digital Signature
_______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds