Bug#1139000: destroys symlinks
Rene Engelhard
rene at debian.org
Sat Jun 6 12:12:41 BST 2026
Package: strip-nondeterminism
Version: 1.14.1-2
Severity: important
X-Debbugs-Cc: rene at debian.org
Hi,
While working on https://people.debian.org/~rene/manual-strip-nondeterminism.diff
(without the -f...) I noticed this:
$ ls empty.zip
empty.zip
$ ls -l empty.zip
-rw-r--r-- 1 rene rene 22 10. Aug 2023 empty.zip
$ ln -sf empty.zip test.zip
$ ls -l *.zip
-rw-r--r-- 1 rene rene 22 10. Aug 2023 empty.zip
lrwxrwxrwx 1 rene rene 9 6. Jun 13:05 test.zip -> empty.zip
$ for i in `find . -name "*.zip"`; do strip-nondeterminism -t zip $i; done
Normalized ./empty.zip
Normalized ./test.zip
(so simulate how it'd be ran automatically for all .zips anywhere)
$ ls -l *.zip
-rw-r--r-- 1 rene rene 22 6. Jun 13:07 empty.zip
-rw-r--r-- 1 rene rene 22 6. Jun 13:07 test.zip
Now the symlink is gone and we have two identical files.
This is bad.
There are symlinks for a reason :) (e.g. /usr/lib/something to
/usr/share/something for policy for arch-indep files.)
Still happens on sid where i noticed.
I think it should either ignore symlinks or follow them (in the above
case either would have worked, if following the second call then would have
nothing to normalize)
Regards,
Rene
More information about the Reproducible-builds
mailing list