On Thu, Oct 24, 2002 at 04:21:09AM +1000, Bruce Evans wrote: > On Wed, 23 Oct 2002, Ruslan Ermilov wrote: > > > On Tue, Oct 22, 2002 at 10:34:25PM -0700, Kris Kennaway wrote: > > > I normally do something like: > > > > > > find /usr/include -ctime +1 -type f -delete > > > > > > To clean out stale includes after a buildworld. Perhaps something > > > like this should be added to the end of the directions. > > > > > Headers are normally installed with ``install -C'', and those > > that did not change recently will not be touched at all. The > > command above will effectively remove these. > > Only if someone "fix"es ``install -C'' to not change ctimes. -C only > causes mtimes to be preserved. ``install -C'' often needs to touch > metadata and it does this unconditionally to simplify things; this has > the somewhat intentional side effect of changing the ctime. > The attached seems to be fixing it, please review.
Cheers, -- Ruslan Ermilov Sysadmin and DBA, [EMAIL PROTECTED] Sunbay Software AG, [EMAIL PROTECTED] FreeBSD committer, +380.652.512.251 Simferopol, Ukraine http://www.FreeBSD.org The Power To Serve http://www.oracle.com Enabling The Information Age
Index: xinstall.c =================================================================== RCS file: /home/ncvs/src/usr.bin/xinstall/xinstall.c,v retrieving revision 1.57 diff -u -p -r1.57 xinstall.c --- xinstall.c 4 Sep 2002 23:29:09 -0000 1.57 +++ xinstall.c 23 Oct 2002 18:48:14 -0000 @@ -451,7 +451,7 @@ install(const char *from_name, const cha */ if ((gid != (gid_t)-1 && gid != to_sb.st_gid) || (uid != (uid_t)-1 && uid != to_sb.st_uid) || - (mode != to_sb.st_mode)) { + (mode != (to_sb.st_mode & ALLPERMS))) { /* Try to turn off the immutable bits. */ if (to_sb.st_flags & NOCHANGEBITS) (void)fchflags(to_fd, to_sb.st_flags & ~NOCHANGEBITS); @@ -466,7 +466,7 @@ install(const char *from_name, const cha err(EX_OSERR,"%s: chown/chgrp", to_name); } - if (mode != to_sb.st_mode) + if (mode != (to_sb.st_mode & ALLPERMS)) if (fchmod(to_fd, mode)) { serrno = errno; (void)unlink(to_name); @@ -481,7 +481,9 @@ install(const char *from_name, const cha * trying to turn off UF_NODUMP. If we're trying to set real flags, * then warn if the the fs doesn't support it, otherwise fail. */ - if (!devnull && fchflags(to_fd, + if (!devnull && (flags & SETFLAGS || + (from_sb.st_flags & ~UF_NODUMP) != to_sb.st_flags) && + fchflags(to_fd, flags & SETFLAGS ? fset : from_sb.st_flags & ~UF_NODUMP)) { if (flags & SETFLAGS) { if (errno == EOPNOTSUPP)
msg44834/pgp00000.pgp
Description: PGP signature