From owner-freebsd-bugs@FreeBSD.ORG Sun Jun 8 10:50:07 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EF66237B401 for ; Sun, 8 Jun 2003 10:50:06 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id D467743FE5 for ; Sun, 8 Jun 2003 10:50:05 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h58Ho5Up099408 for ; Sun, 8 Jun 2003 10:50:05 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h58Ho5JS099405; Sun, 8 Jun 2003 10:50:05 -0700 (PDT) Resent-Date: Sun, 8 Jun 2003 10:50:05 -0700 (PDT) Resent-Message-Id: <200306081750.h58Ho5JS099405@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Dan Nelson Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3D60E37B401 for ; Sun, 8 Jun 2003 10:44:50 -0700 (PDT) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id A5F6443F85 for ; Sun, 8 Jun 2003 10:44:49 -0700 (PDT) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.12.9/8.12.9) id h58HinCU027477; Sun, 8 Jun 2003 12:44:49 -0500 (CDT) (envelope-from dan) Message-Id: <200306081744.h58HinCU027477@dan.emsphone.com> Date: Sun, 8 Jun 2003 12:44:49 -0500 (CDT) From: Dan Nelson To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/53063: [PATCH] Let mtree -U update mtime X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2003 17:50:07 -0000 >Number: 53063 >Category: bin >Synopsis: [PATCH] Let mtree -U update mtime >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Jun 08 10:50:05 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Dan Nelson >Release: FreeBSD 5.1-BETA i386 >Organization: The Allant Group >Environment: System: FreeBSD dan.emsphone.com 5.1-BETA FreeBSD 5.1-BETA #271: Thu May 29 16:33:28 CDT 2003 dan@dan.emsphone.com:/usr/src/sys/i386/compile/DANSMP i386 >Description: mtree will not update timestamps when run with -U. If you have duplicated a directory tree with cp -R instead of cp -pR, this patch lets you use mtree to correct the missing ownership/modes/timestamps. >How-To-Repeat: >Fix: Index: compare.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/mtree/compare.c,v retrieving revision 1.26 diff -u -p -r1.26 compare.c --- compare.c 3 May 2003 21:06:37 -0000 1.26 +++ compare.c 8 Jun 2003 17:35:05 -0000 @@ -190,8 +190,21 @@ typeerr: LABEL; LABEL; (void)printf("%smodification time expected %.24s ", tab, ctime(&s->st_mtimespec.tv_sec)); - (void)printf("found %.24s\n", + (void)printf("found %.24s", ctime(&p->fts_statp->st_mtimespec.tv_sec)); + if (uflag) { + struct timeval tv[2]; + tv[0].tv_sec = s->st_mtimespec.tv_sec; + tv[0].tv_usec = s->st_mtimespec.tv_nsec / 1000; + tv[1] = tv[0]; + if (utimes(p->fts_accpath, tv)) + (void)printf(" not modified: %s\n", + strerror(errno)); + else + (void)printf(" modified\n"); + } + else + (void)printf("\n"); tab = "\t"; } if (s->flags & F_CKSUM) { @@ -364,7 +377,11 @@ rlink(name) register int len; if ((len = readlink(name, lbuf, sizeof(lbuf) - 1)) == -1) - err(1, "line %d: %s", lineno, name); + { + strcpy(lbuf, "Unknown!"); + return lbuf; + } + /* err(1, "line %d: %s", lineno, name); */ lbuf[len] = '\0'; return (lbuf); } Index: mtree.8 =================================================================== RCS file: /home/ncvs/src/usr.sbin/mtree/mtree.8,v retrieving revision 1.39 diff -u -p -r1.39 mtree.8 --- mtree.8 12 Dec 2002 17:26:02 -0000 1.39 +++ mtree.8 8 Jun 2003 17:42:00 -0000 @@ -76,8 +76,9 @@ Follow all symbolic links in the file hi Don't follow symbolic links in the file hierarchy, instead consider the symbolic link itself in any comparisons. This is the default. .It Fl U -Modify the owner, group and permissions of existing files to match -the specification and create any missing directories or symbolic links. +Modify the owner, group, permissions, and modification time of existing +files to match the specification and create any missing directories or +symbolic links. User, group and permissions must all be specified for missing directories to be created. Corrected mismatches are not considered errors. >Release-Note: >Audit-Trail: >Unformatted: