Pádraig Brady wrote: > Pádraig Brady wrote: >> Jim Meyering wrote: >>> AFAIK, I am the only one who has built the latest snapshot: >>> >>> http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17604 >>> >>> Though it's been only two days. >>> >>> Unless I hear of new bug reports or portability problems soon, >>> expect coreutils-7.5 to be released in the next few days. >> >> checks pass on Fedora 11 and Ubuntu 7.10 >> 2 failures on Fedora Core 5 due to copy::utimensat_if_possible() failing >> with: >> >> $ (cd tests && make check TESTS=cp/abuse VERBOSE=yes) >> cp: preserving times for `c/1': No such file or directory >> >> $ (cd tests && make check TESTS=mv/part-symlink VERBOSE=yes) >> mv: preserving times for `loc_reg': Too many levels of symbolic links > > These highlighted a couple of issue I think on systems without utimensat(). > > 1. The symlink _target_ gets its time updated > 2. If 1 fails then the process returns a failure > > I've fixed both in the attached patch hopefully > by only doing the explicit utimensat() on symlinks, > and only giving a warning if errno==ENOTSUP.
Thanks for working on that. Previously, copying with cp -a, symlink times would not be preserved (silently, since cp made no attempt). It sounds like with this change, on systems without utimensat, cp would print a warning for each and every symlink. > Note it might be cleaner to add a O_NOFOLLOW flag to > utimens() in gnulib, but that would be more invasive. I think changing only copy.c is ok, for now.