--- ./lib/utimens.h.orig 2007-05-31 08:26:00.000000000 +0200 +++ ./lib/utimens.h 2007-05-31 08:26:16.000000000 +0200 @@ -1,3 +1,3 @@ #include -int futimens (int, char const *, struct timespec const [2]); +int futimens_local (int, char const *, struct timespec const [2]); int utimens (char const *, struct timespec const [2]); --- ./lib/utimens.c.orig 2007-05-31 08:26:00.000000000 +0200 +++ ./lib/utimens.c 2007-05-31 08:26:23.000000000 +0200 @@ -75,7 +75,7 @@ Return 0 on success, -1 (setting errno) on failure. */ int -futimens (int fd ATTRIBUTE_UNUSED, +futimens_local (int fd ATTRIBUTE_UNUSED, char const *file, struct timespec const timespec[2]) { /* Some Linux-based NFS clients are buggy, and mishandle time stamps @@ -185,5 +185,5 @@ int utimens (char const *file, struct timespec const timespec[2]) { - return futimens (-1, file, timespec); + return futimens_local (-1, file, timespec); } --- ./src/touch.c.orig 2007-05-31 08:26:00.000000000 +0200 +++ ./src/touch.c 2007-05-31 08:26:29.000000000 +0200 @@ -167,7 +167,7 @@ if (amtime_now) { - /* Pass NULL to futimens so it will not fail if we have + /* Pass NULL to futimens_local so it will not fail if we have write access to the file, but don't own it. */ t = NULL; } @@ -182,7 +182,7 @@ t = timespec; } - ok = (futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); + ok = (futimens_local (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); if (fd == STDIN_FILENO) { --- ./src/copy.c.orig 2007-05-31 08:26:00.000000000 +0200 +++ ./src/copy.c 2007-05-31 08:26:36.000000000 +0200 @@ -518,7 +518,7 @@ timespec[0] = get_stat_atime (src_sb); timespec[1] = get_stat_mtime (src_sb); - if (futimens (dest_desc, dst_name, timespec) != 0) + if (futimens_local (dest_desc, dst_name, timespec) != 0) { error (0, errno, _("preserving times for %s"), quote (dst_name)); if (x->require_preserve)