From owner-svn-src-projects@FreeBSD.ORG Tue Jan 8 23:43:46 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 324255F6; Tue, 8 Jan 2013 23:43:46 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 24D7C35A; Tue, 8 Jan 2013 23:43:46 +0000 (UTC) Received: from svn.freebsd.org (svn.FreeBSD.org [8.8.178.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r08Nhk3p051063; Tue, 8 Jan 2013 23:43:46 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r08Nhk6s051062; Tue, 8 Jan 2013 23:43:46 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201301082343.r08Nhk6s051062@svn.freebsd.org> From: Brooks Davis Date: Tue, 8 Jan 2013 23:43:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245195 - projects/mtree/usr.bin/xinstall X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jan 2013 23:43:46 -0000 Author: brooks Date: Tue Jan 8 23:43:45 2013 New Revision: 245195 URL: http://svnweb.freebsd.org/changeset/base/245195 Log: Actually enable metadata logging for links. Modified: projects/mtree/usr.bin/xinstall/xinstall.c Modified: projects/mtree/usr.bin/xinstall/xinstall.c ============================================================================== --- projects/mtree/usr.bin/xinstall/xinstall.c Tue Jan 8 23:32:28 2013 (r245194) +++ projects/mtree/usr.bin/xinstall/xinstall.c Tue Jan 8 23:43:45 2013 (r245195) @@ -101,6 +101,7 @@ static gid_t gid; static uid_t uid; static int dobackup, docompare, dodir, dolink, dopreserve, dostrip, dounpriv, safecopy, verbose; +static int haveopt_f, haveopt_g, haveopt_m, haveopt_o; static mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; static FILE *metafp; static const char *group, *owner; @@ -173,9 +174,11 @@ main(int argc, char *argv[]) dodir = 1; break; case 'f': + haveopt_f = 1; fflags = optarg; break; case 'g': + haveopt_g = 1; group = optarg; break; case 'h': @@ -213,6 +216,7 @@ main(int argc, char *argv[]) metafile = optarg; break; case 'm': + haveopt_m = 1; if (!(set = setmode(optarg))) errx(EX_USAGE, "invalid file mode: %s", optarg); @@ -225,6 +229,7 @@ main(int argc, char *argv[]) "databases in `%s'", optarg); break; case 'o': + haveopt_o = 1; owner = optarg; break; case 'p': @@ -571,9 +576,7 @@ makelink(const char *from_name, const ch const struct stat *target_sb) { char src[MAXPATHLEN], dst[MAXPATHLEN], lnk[MAXPATHLEN]; -#ifdef NOTYET struct stat to_sb; -#endif /* Try hard links first */ if (dolink & (LN_HARD|LN_MIXED)) { @@ -581,7 +584,6 @@ makelink(const char *from_name, const ch if ((dolink & LN_HARD) || errno != EXDEV) err(1, "link %s -> %s", from_name, to_name); } else { -#ifdef NOTYET if (stat(to_name, &to_sb)) err(1, "%s: stat", to_name); if (S_ISREG(to_sb.st_mode)) { @@ -590,7 +592,8 @@ makelink(const char *from_name, const ch * metalogged */ int omode; - char *oowner, *ogroup, *offlags; + const char *oowner, *ogroup; + char *offlags; char *dres; /* XXX: use underlying perms, @@ -617,7 +620,6 @@ makelink(const char *from_name, const ch group = ogroup; fflags = offlags; } -#endif return; } } @@ -628,10 +630,8 @@ makelink(const char *from_name, const ch if (realpath(from_name, src) == NULL) err(1, "%s: realpath", from_name); do_symlink(src, to_name, target_sb); -#ifdef NOTYET /* XXX: src may point outside of destdir */ metadata_log(to_name, "link", NULL, src, NULL, 0); -#endif return; } @@ -672,10 +672,8 @@ makelink(const char *from_name, const ch (void)strlcat(lnk, ++s, sizeof(lnk)); do_symlink(lnk, to_name, target_sb); -#ifdef NOTYET - /* XXX: lnk may point outside of destdir */ + /* XXX: lnk may point outside of destdir */ metadata_log(to_name, "link", NULL, lnk, NULL, 0); -#endif return; } @@ -684,10 +682,8 @@ makelink(const char *from_name, const ch * try the names the user provided */ do_symlink(from_name, to_name, target_sb); -#ifdef NOTYET - /* XXX: from_name may point outside of destdir */ + /* XXX: from_name may point outside of destdir */ metadata_log(to_name, "link", NULL, from_name, NULL, 0); -#endif } /*