Commit Graph

140 Commits

Author SHA1 Message Date
Anton Berezin
0f02c85ed1 The -s option should not assume -U.
MFC After:	2 weeks
2003-03-19 10:56:34 +00:00
Robert Drehmel
0357726594 - Align the function prototype of the external `crc' function with
how `crc' is actually defined.
 - Remove an unnecessary `extern' variable declaration.
Data type corrections:
 - Define a variable which contains a file byte offset value as type
   off_t as required by the `crc' function.
 - Change the type of a variable carrying a CRC checksum from `u_long'
   to `uint32_t'.
 - Substitute the wrong `extern' variable declaration of `crc_total'
   by putting a correct one in the shared header extern.h.
   `crc_total' is defined as an `uint32_t', thus fixing
   incorrect mtree checksums on big-endian LP64 machines.
2003-03-13 23:35:30 +00:00
Anton Berezin
53bd74b7e9 Fix two minor mismatch reporting output errors.
Reviewed by:	phk
MFC After:		3 weeks
2003-03-13 15:14:56 +00:00
Ruslan Ermilov
8d5d039f80 Uniformly refer to a file system as "file system".
Approved by:	re
2002-12-12 17:26:04 +00:00
Ruslan Ermilov
26ffc9613f mtree(8) wasn't a bootstrap tool since 2000/07/23 (Makefile.inc1,v 1.161). 2002-11-13 12:03:27 +00:00
Garrett Wollman
0d3bcc2e80 Make the threatened fts(3) ABI fix. FTSENT now avoids the use of the struct
hack, thereby allowing future extensions to the structure (e.g., for extended
attributes) without rebreaking the ABI.  FTSENT now contains a pointer to the
parent stream, which fts_compar() can then take advantage of, avoiding the
undefined behavior previously warned about.  As a consequence of this change,
the prototype of the comparison function passed to fts_open() has changed
to reflect the required amount of constness for its use.  All callers in the
tree are updated to use the correct prototype.

Comparison functions can now make use of the new parent pointer to access
the new stream-specific private data pointer, which is intended to assist
creation of reentrant library routines which use fts(3) internally.

Not objected to in spirit by: -arch
2002-09-21 01:28:41 +00:00
Dag-Erling Smørgrav
b3f379f65f Get rid of %qd, and unbreak Alpha build. 2002-07-15 12:17:31 +00:00
Philippe Charnier
490d5836b5 The .Nm utility 2002-07-14 14:47:15 +00:00
Alfred Perlstein
67d357f89b fixup for WARNS=4. 2002-07-11 18:42:53 +00:00
Alfred Perlstein
d89167b4ea de-__P() 2002-07-11 18:31:16 +00:00
Alfred Perlstein
16d8455dcc Assume __STDC__, remove non-__STDC__ code. 2002-05-28 19:23:47 +00:00
Tom Rhodes
67c8020f12 Consistancy check: s/file system/filesystem/g 2002-05-16 02:28:39 +00:00
Masafumi Max NAKANE
0434bdb78c Typo. 2002-05-10 03:53:00 +00:00
Ruslan Ermilov
4c47cadb49 Only compile with strtofflags.c from libc if bootstrapping. 2001-09-24 15:38:38 +00:00
Ruslan Ermilov
3754c38b40 Fix the bootstrapping aid from revision 1.9.
WORLD was renamed to BOOTSTRAPPING.
2001-09-17 11:59:43 +00:00
Ruslan Ermilov
d628d776c4 mdoc(7) police: utilize the new .Ex macro. 2001-08-15 09:09:47 +00:00
Sheldon Hearn
42abf713c9 can not -> cannot 2001-08-08 18:32:06 +00:00
David E. O'Brien
90e655ea4e Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
Dima Dorfman
f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
Kris Kennaway
4567c8651d Mark a static function as __printflike()
MFC After:	1 week
2001-07-05 07:52:56 +00:00
Ruslan Ermilov
345e52e742 - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
Ruslan Ermilov
c73e22c3d4 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
Ben Smithurst
d0d78e1303 Convert to use the <sys/queue.h> macros rather than fiddling with the queue
structure internals.

Reviewed by:	markm
2000-12-29 18:04:54 +00:00
Ruslan Ermilov
8b5c4af3ff Prepare for mdoc(7)NG. 2000-12-27 15:30:30 +00:00
Ruslan Ermilov
e97407b4f2 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 20:10:44 +00:00
Ruslan Ermilov
726b61ab5f Avoid use of direct troff requests in mdoc(7) manual pages. 2000-11-10 17:46:15 +00:00
Poul-Henning Kamp
016f1c3e23 Don't try to compare other attributes if the type doesn't match, it's
nothing but trouble, and no use anyway.
2000-10-06 12:48:55 +00:00
Poul-Henning Kamp
25465a047c Don't whine about modes on symlinks. 2000-10-06 12:27:36 +00:00
Poul-Henning Kamp
bd39966d9b Make the output of mtree(8) more systematic and machine readable.
The new format is:

        filename        {changed,missing,extra}
                $field expected $foo found $bar
                ...

Fix various bugs along the way:
        Don't complain about directory sizes differing.
        Correctly check flags.
2000-10-03 13:13:47 +00:00
Andrey A. Chernov
86ab37762e Re-add -P option (for POSIX-like command line interface) 2000-09-25 16:24:22 +00:00
Andrey A. Chernov
837eb85217 Restore standard symlink default, return -L, remove -P, add missing -q to getopt
This is part of whole subsystem fixing

Reviewed by:	imp
2000-09-15 08:05:37 +00:00
Sheldon Hearn
82cb0dd6de Pass a useful pathname to rlink(). Many thanks to the PR originator
for all the debugging work.

PR:		21017
Reported by:	Gerhard Sittig <Gerhard.Sittig@gmx.net>
Submitted by:	Jos Backus <josb@cncdsl.com>,
2000-09-13 12:54:33 +00:00
Warner Losh
c96eb6d2e8 Add -q. this will cause the warning messages about missing
directories to not be printed.  This is from OpenBSD (and I think
NetBSD also) and makes our mtree more compatible with other BSDs.
This makes cross compilation easier than it was before.  Other changes
will be needed to allow NetBSD or OpenBSD to cross build on FreeBSD,
but this is a start.

Reviewed by: andrey
Obtained from: OpenBSD
Concentric Red Circles by: My own stupidity
2000-07-25 19:05:09 +00:00
Marcel Moolenaar
3adc8b3d1d Revert the reversion of the default mtree behaviour. The mtree
command now follows symlinks again.

Requested by: jkh
2000-07-24 02:57:27 +00:00
Warner Losh
11c5444470 First attempt to fix a buildworld from -stable machine. Explicitly
include strtofflags.c from lib/libc/gen when building mtree until the
current dependency mess with mtree is fixed.
2000-07-23 06:15:54 +00:00
Sheldon Hearn
e492a4c41a Correct the usage() message as per rev 1.25 of mtree.8 . 2000-07-17 11:00:55 +00:00
Sheldon Hearn
7cd36f5d04 * Order options in the SYNOPSIS correctly.
*	Re-order the list of options in teh DESCRIPTION as per
	the SYNOPSIS.
   *	Move the description of exit conditions from the
	DESCRIPTION section to a new DIAGNOSTICS section.
   *	Typo fix: "effect" -> "affect" when used as a verb.
   *	Clear the Nm macro as appropriate.
   *	Typo fix: "consider" -> "considers" for a singular subject.
   *	Use Nx instead of NetBSD.
2000-07-17 10:59:38 +00:00
Andrey A. Chernov
25718fe3f0 Fix getopt string I forget 2000-07-16 08:22:38 +00:00
Andrey A. Chernov
1896f37452 Revert back to original mtree default behaviour to not follow symlinks, to be
compatible with other *BSD camp.  Add -L option to follow symlinks, so remove
-P option which is now default. The next step will be to add -L to building
process.

Asked-by: 	bde
2000-07-16 07:55:07 +00:00
Sheldon Hearn
fe60fb0d3f Fix the NAME section. Order the options which do not take arguments,
add the -P option (introduced in rev 1.22), and use mdoc word keeps
(Bk -words / Ek) for those options which do take arguments.
2000-07-14 10:30:36 +00:00
Josef Karthauser
701cbbb5f6 Use -P instead of -S to specify that no symlinks should be followed.
There's no reason to make it different from cp(1), chmod(1), chown(1)
etc.

Requested by:	sheldonh
2000-07-14 09:37:59 +00:00
Josef Karthauser
94401addc5 Allow symlinks to be created if they appear in the mtree specification.
PR:	bin/14171
2000-07-13 22:28:39 +00:00
Josef Karthauser
0f4a1f9b5c Added a flag (-S) to mtree to specify that symlinks shouldn't be
followed.  This allows type=link matches to work properly and match
the link itself, instead of the file/directory that the link is
pointing to.
2000-07-13 22:13:42 +00:00
Josef Karthauser
141d77b8cb Switch over to using the new fflagstostr and strtofflags library calls. 2000-06-17 14:19:33 +00:00
Philippe Charnier
cd684bdd15 Use .Fx 2000-05-28 15:03:14 +00:00
Jake Burkholder
e39756439c Back out the previous change to the queue(3) interface.
It was not discussed and should probably not happen.

Requested by:		msmith and others
2000-05-26 02:09:24 +00:00
Jake Burkholder
740a1973a6 Change the way that the queue(3) structures are declared; don't assume that
the type argument to *_HEAD and *_ENTRY is a struct.

Suggested by:	phk
Reviewed by:	phk
Approved by:	mdodd
2000-05-23 20:41:01 +00:00
Garrett Wollman
df6c9ee7a2 Punctuation fix. 2000-05-16 16:41:28 +00:00
Garrett Wollman
08221db804 Add used includes. 2000-05-16 16:38:52 +00:00
Garrett Wollman
4bd7627e1d Add excludes.c (missed in previous commit).
PR:		16944
2000-05-13 03:11:45 +00:00
Garrett Wollman
dc785636aa Give mtree the ability to exclude files and directories from its traversal.
PR:		16944
2000-05-12 03:03:00 +00:00
Josef Karthauser
418d67b0d9 Revert part of the last commit, remove {g|s}etflags from the libc
interface, and statically link them to the programs using them.
These functions, upon reflection and discussion, are too generically
named for a library interface with such specific functionality.
Also the api that they use, whilst ok for private use, isn't good
enough for a libc function.

Additionally there were complications with the build/install-world
process.  It depends heavily upon xinstall, which got broken by
the change in api, and caused bootstrap problems and general mayhem.

There is work in progress to address future problems that may be
caused by changes in install-chain tools, and better names for
{g|s}etflags can be derived when some future program requires them.
For now the code has been left in src/lib/libc/gen (it started off
in src/bin/ls).

It's important to provide library functions for manipulating file
flag strings if we ever want this interface to be adopted outside
of the source tree, but now isn't necessarily the right moment
with 4.0-release just around the corner.

Approved:	jkh
2000-02-05 18:42:36 +00:00
Josef Karthauser
18c0eeddf7 Historically file flags (schg, uschg, etc) have been converted from
string to u_long and back using two functions, flags_to_string and
string_to_flags, which co-existed with 'ls'.  As time has progressed
more and more other tools have used these private functions to
manipulate the file flags.

Recently I moved these functions from /usr/src/bin/ls to libutil,
but after some discussion with bde it's been decided that they
really ought to go in libc.

There are two already existing libc functions for manipulating file
modes:  setmode and getmode.  In keeping with these flags_to_string
has been renamed getflags and string_to_flags to setflags.

The manual page could probably be improved upon ;)
2000-01-27 21:17:01 +00:00
Josef Karthauser
cd2a718f1e Added missing DPADD's. Removed unrequired SRCS's.
Obtained from:	bde
2000-01-01 15:44:11 +00:00
Josef Karthauser
edc2844c9f Moved flags_to_string and string_to_flags into libutil. It's used in
many places nowadays.
1999-12-30 13:15:15 +00:00
Josef Karthauser
68bc9a5737 Added support for file flags, mostly merged from the NetBSD version.
The way is now open to schg and sappnd key files and directories in
our tree.  There are recommendations in bin/15229.

PR:		bin/15229
Reviewed by:	imp, brian
1999-12-09 20:38:36 +00:00
Bill Fumerola
a590ad80ac -Wall fixes.
Submitted by:	nrahlstr
1999-09-27 00:36:03 +00:00
Peter Wemm
97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
Garrett Wollman
6914087115 When bootstrapping mtree, don't depend on there being a libmd at all. 1999-03-01 02:43:42 +00:00
Jordan K. Hubbard
f5deec42fb mtree is a "bootstrap tool", don't use the fancy new world-breaking features
if we're building it as part of the bootstrap toolset.
1999-02-27 03:16:28 +00:00
Garrett Wollman
2c2bc092fa Add support for SHA-1 and RIPEMD160, now that libmd includes them. Make
all of the hashes (including MD5) conditionalized in case we want
to turn one of them off later.
1999-02-26 18:44:56 +00:00
Joseph Koshy
60adf819d2 Move to a uniform '\ooo' (VIS_OCTAL) encoding for special characters.
The previous commit broke mtree(8) when file names using certain 8-bit
characters ended up being encoded with '/', '*', and other shell
metacharacters.

PR:			bin/9538
Submitted by:		"Eugene M. Kim" <astralblue@usa.net>
Reviewed by:		jkoshy
Bug-missed-last-time-by: jkoshy
1999-01-18 06:58:25 +00:00
Joseph Koshy
610481bce5 Teach mtree(8) to handle whitespace in filenames. Uses strvis(3).
PR:		bin/3246
Submitted by:	Eugene M. Kim <astralblue@usa.net>
Reviewed by:	jkoshy, wollman
1999-01-12 02:58:23 +00:00
Warner Losh
0915a68e90 Free memory from getmode.
Obtained from: OpenBSD
1998-12-16 04:54:08 +00:00
Bruce Evans
92f896a9cc Fixed printf format errors. 1998-08-02 14:41:34 +00:00
Peter Wemm
573761ee0e There is no need to make nochange imply ignore as well.
Suggested by: bde
1998-06-10 06:45:08 +00:00
Warner Losh
d944ccabfc Use correct size for readlink buffer. This is the size of the
buffer -1 since readlink adds its own NUL to the end.

Inspired by: Similar changes in OpenBSD
1998-06-09 05:02:29 +00:00
Peter Wemm
7840cfdd8b Create a new flag, "nochange", which will specify that a directory is
to be created if it's missing, otherwise completely ignore it's modes and
owners.  Primary intended targets:  /usr/src and /usr/obj.

Adjust the 'not created: File exists' message to mention that it's a
directory that's the problem, otherwise it doesn't make sense.

I had created chown-style  -L and -P flag to control logical/physical mode
(ie: whether symlinks were followed), but the nochange flag is enough to
get the blasted thing out of my hair so I took them back out.
1998-06-05 14:43:42 +00:00
Philippe Charnier
de1ef5eb94 Use err(3) instead of local redefinition. 1997-10-01 06:30:02 +00:00
Andrey A. Chernov
7e03040bc0 Change FTS_PHYSICAL (not follow symlinks but return them)
to FTS_LOGICAL (follow symlinks and return their targets)

Because
1) In the real system there is a lot of symlinks nowdays over
/var, /spool, etc. Mtree can't do anything for them, i.e. change
permissions/owner. I.e. if you have /var/mail -> /somewhere
it will never be changed to group "mail" 775 like -current does now,
symlink totally confuses mtree.

2) Mtree can't deal with symlinks properly in any case (they are created
separately in other places now), so we lost no functionality by making
them invisible for mtree.
1997-05-15 08:46:57 +00:00
Warner Losh
6c3f552a31 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-31 05:11:47 +00:00
Peter Wemm
476602a9d0 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
Wolfram Schneider
bfd34a4a60 Sort cross references. 1997-01-20 00:03:00 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Nate Williams
2514dd6975 ts_sec -> tv_sec
ts_nsec -> tv_nsec

Pointed out by:	bde
1996-09-20 04:13:44 +00:00
Mike Pritchard
78b0b234eb Correct a bunch of man page cross references and generally
try and silence "manck".

ncurses, rpc, and some of the gnu stuff are still a big mess, however.
1996-02-11 22:38:05 +00:00
Mike Pritchard
4a8d02835c Fix a bunch of spelling errors in a bunch of man pages. 1996-01-30 13:52:50 +00:00
Torsten Blum
10e1798df5 st_size in struct stat has type off_t (long long) and not unsigned long
change strtoul() to strtoq()
1995-10-06 16:25:10 +00:00
Bruce Evans
6f4640cac6 Use p->fts_level instead of unsuccessfully trying to keep track of the
level ourself.  We failed for unreadable directories.  E.g.,
`mtree -d -f /etc/mtree/BSD.usr.dist -p /usr' run by `nobody' was
confused after it couldn't descend into /usr/games/hide.  It looked
for /usr/include and subsequent directories in /usr/games.

Don't search for `extra' files when the spec depth is less than the
fts level.  The spec depth isn't incremented for leaf nodes because
that would give a NULL level pointer and make it inconvenient to go
back to the parent level.  Leaf nodes are built for directories that
are empty in the spec.  Since they are empty in the spec, all files
in them are extra.  The search looked for files one spec level
too high, so for `mtree -d -f /etc/mtree/BSD.usr.dist -p /usr',
obj/sbin matched ./sbin and wasn't considered extra, so it was
descended into and lots of bogus extra things in it were found.
This was harmful for `mtree -U' (as reported in pr623) and worse
for `mtree -r'.

Use rmdir(), not unlink(), to remove `extra' directories.  unlink()
succeeds for root but unlinking directories normally damages the
file system.

Report `fts_errno' instead of `errno' when the former applies.
1995-07-24 02:52:42 +00:00
Bruce Evans
03aec1f65b Report fts_errno' instead of errno' when the former applies. 1995-07-24 02:50:50 +00:00
Poul-Henning Kamp
9010366de8 Fix to match new MD5 api, faster. 1995-07-12 09:15:15 +00:00
Rodney W. Grimes
709e8f9ae1 Remove trailing whitespace. 1995-05-30 03:57:47 +00:00
Garrett Wollman
8075d17ee2 mtree * MD5 = better security
Idea from: Dr. John T. Wroclawski
1995-02-10 03:12:42 +00:00
Rodney W. Grimes
4ac2ef542b Add -U option which does the same things as -u except exits with 0
instead of 2 on MISMATCH.
1994-10-09 20:28:31 +00:00
David Greenman
89f81043d0 Fixed bug caused by missing set of paranthesis when checking the modification
time. This caused differences in the nanosecond portion of the time to
screwup the logic and made mtree think it should compare  the modtime even
though "time" wasn't specified. The end result is that mtree couldn't deal
with procfs because procfs sets the mtime with high accuracy via microtime().
1994-09-24 16:52:42 +00:00
Rodney W. Grimes
5104ed9c4a My optimization to eliminate /set records was a little too aggressive, it
optimized away the first one :-(.
1994-09-19 01:32:57 +00:00
Rodney W. Grimes
10c4c64eb7 1. Remove commented out CFLAGS+=-DDEBUG from Makefile
2.  Clean up code so it compiles -Wall (except for sccsid's and copyright).
    This included fixing several printf formats that where not correct,
    and changing the data types of a few things.

3.  Implement new option -i that produces indented mtree output files.

4.  Implement new option -n that turns off directory comments.

5.  Only emit /set records if something has changed since the last one.
1994-09-18 21:17:40 +00:00
Adam David
c4f265d4e6 fixed typos
Reviewed by:
Submitted by:
1994-09-03 13:20:05 +00:00
Garrett Wollman
84e59eb50d Get rid of update. Make man page installation work with our scheme
(and rename a few in the process).
1994-08-05 16:31:05 +00:00
Rodney W. Grimes
dea673e932 BSD 4.4 Lite usr.sbin Sources 1994-05-26 05:23:31 +00:00