Commit Graph

55 Commits

Author SHA1 Message Date
bde
d0ce9bc4dc Use the correct timestamp for the -C -p case when the comparison fails.
A garbage timestamp was used for at least installing /dev/null with -C -p
when the target doesn't already exist.
2000-10-08 09:17:56 +00:00
joe
8de98cc2fa Switch over to using the new fflagstostr and strtofflags library calls. 2000-06-17 14:19:33 +00:00
charnier
42d5955dc9 Add DIAGNOSTICS section name 2000-03-26 15:06:46 +00:00
sheldonh
49c4458c80 Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.
2000-03-01 12:20:22 +00:00
joe
b57f9be4b7 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
joe
f1a9497df5 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
bde
90aaf7aa83 Actually remove unrequired SRCS. 2000-01-05 19:22:10 +00:00
joe
9dba5b86f4 Added missing DPADD's. Removed unrequired SRCS's.
Obtained from:	bde
2000-01-01 15:44:11 +00:00
joe
a381d987c4 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
obrien
c4d3fc5932 Add "-v" to usage(). 1999-12-06 05:02:32 +00:00
obrien
ef7574daa0 Document the "-v" flag. [It was like that when I got here.. honestly.] 1999-12-06 05:01:14 +00:00
billf
f3e2a0e313 -Wall fixes.
Submitted by:	nrahlstr
1999-09-27 00:36:03 +00:00
peter
3b842d34e8 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
imp
3d6d60242a Free memory from setmode.
Obtained from: OpenBSD
1998-12-16 04:51:27 +00:00
des
3ca80efd3a Calls one or more of malloc(), warn(), err(), syslog(), execlp() or
execvp() in the child branch of a vfork(). Changed to use fork()
instead.

Some of these (mv, find, apply, xargs) might benefit greatly from
being rewritten to use vfork() properly.

PR:		Loosely related to bin/8252
Approved by:	jkh and bde
1998-10-13 14:52:33 +00:00
peter
7a359c2e0c fchflags(8) -> fchflags(2)
Submitted by:  Kenneth Merry <ken@plutotech.com>

Also, while here, mention that other FS's don't do flags.
1998-06-10 07:17:59 +00:00
peter
0a878d2304 Treat an EOPNOTSUPP from fchflags() as a non-fatal case. Only warn about
it if flags were explicitly specified on the command line.  Do not warn
if we were merely trying to preserve flags or remove UF_NODUMP.  NFS does
not support flags.

I'm not sure that this is ideal, but it should do for now.  Installing
a plain file onto a NFS server must work, we used to silently ignore the
attempt.  Doing a binary install looses the flags anyway since cpio
doens't preserve them with the cdrom/network images.
XXX make world should not use flags or chown/chgrp in the obj/tmp area.

This is based on a suggestion from Ken Merry <ken@plutotech.com>.
1998-06-02 12:00:08 +00:00
bde
94f39c6b01 Converted to Lite2 mount interface - don't use numeric filesystem
types.  The NetBSD compatibility cruft was more correct for -current
than FreeBSD's own code.  It just used NetBSD #defines instead of
string literals for the filesystem names.  NetBSD's MOUNT_UFS is
"ffs", so using a literal "ufs" gives wrong results, but this is
unimportant, especially for bootstrapping.

Fixed style bugs in trymmap().

Fixed some disordered declarations.
1998-01-20 13:52:32 +00:00
alex
3d7686dc1c Change MAP_FAILED to type void *.
Typo fix.
1998-01-13 02:12:43 +00:00
peter
85d8c8dd51 Add an option (-M) to install to disable use of mmap(2). This is kinda
handy at the moment with -current's mmap+unlink interactions..  The
problems seem worst when using INSTALL="install -C" in /etc/make.conf.
This could well come in handy in the future too.
1998-01-11 11:43:36 +00:00
jb
1e1816b489 Allow install to build from FreeBSD source using NetBSD tools and
headers during the port of FreeBSD to a NetBSD supported architecture.
FreeBSD needs to be able to install itself from very early on.
1998-01-09 06:05:13 +00:00
ache
2603f3ad79 1) Create intermediate directories with 755, not 777
2) Exit with error diagnostic if file exists but not a directory (-d)
3) Do chmod independently of chown (-d)
1997-10-28 14:20:10 +00:00
ache
5865a758bc 1) Ignore -C with -d, not fail (for $(INSTALL) macro from /etc/make.conf)
2) When uid/gid not specified, not try to set 0:0 owner, just do nothing.
It makes possible to use install -d by users without setting
their uid:gid each time.
3) Be more specific where install_dir fails
1997-10-27 22:53:33 +00:00
peter
7f77a9386b When calling strip, temporarily close the file, call strip and then
reopen it after strip has finished.  This makes it work when
/usr/bin/strip replaces the file rather than doing an in-place edit
(such as the binutils-2.8 strip, which is a variation of objcopy).
This is necessary if install(1) and strip(1) are going to cooperate
on an ELF system.
1997-09-14 08:21:44 +00:00
charnier
510a917b8a Uncomment sccsid string and enclose it inside #if 0/#endif.
Cosmetic in man page.
1997-08-27 06:29:23 +00:00
peter
965d48d149 Bootstrap aid from older releases.. 'make world' can't build xinstall
until the includes are installed, and it doesn't install the includes until
xinstall is built (the previous xinstall binary may not have -C).  As a
bandaid, define MAP_FAILED ourselves if <sys/mman.h> didn't.  Perhaps it
would be safer to simply disable mmap if all the prerequisites are not
there.
1997-05-24 05:39:19 +00:00
imp
141381e1cb compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-29 04:34:07 +00:00
peter
f390c26dd9 Revert $FreeBSD$ to $Id$ 1997-02-22 19:58:13 +00:00
alex
a3118e8c68 Sweep through the tree fixing mmap() usage:
- Use MAP_FAILED instead of the constant -1 to indicate
    failure (required by POSIX).
  - Removed flag arguments of '0' (required by POSIX).
  - Fixed code which expected an error return of 0.
  - Fixed code which thought any address with the high bit set
    was an error.
  - Check for failure where no checks were present.

Discussed with:	bde
1997-01-16 21:58:40 +00:00
jkh
808a36ef65 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
imp
ffedaf5fae Sync usage line to man page, per style(9).
Pointed out by: Bruce Evans <bde@zeta.org.au>
1996-10-01 03:59:57 +00:00
imp
d4e55ffaf3 Submitted by: Bruce Evans
Remove -S for the install usage message
Make the install usage message < 80 columns wide
Place the dodir declaration in order.
1996-09-29 23:09:51 +00:00
imp
7cb3462826 Implement -d in install. Update the man page to reflect this change. 1996-09-29 06:29:54 +00:00
imp
f558febd81 Use EX_* exit values, from NetBSD 1996-09-28 02:53:45 +00:00
bde
a0082297a8 Changed 'd' to 'D' in getopt arg too. 1996-09-24 17:29:42 +00:00
imp
eea77f0b8b Per discussions in -current
- Change the debug flag from -d to -D to avoid conflict with other
	  install programs.
	- Update man page to reflect this
	- Update usage string
-d meaning creat directory is specifically not implemented by these changes.
1996-09-24 04:15:02 +00:00
peter
ff7e508bb9 Be more careful with mmap. If it fails, fall back to a plain compare or
copy.

Dont leave stray INS@xxxx temp files around, especially when installing
something less than 8MB and the destination runs out of space, etc.

It still doesn't clean up the temp files on SEGV or other signals etc.
1996-09-05 07:54:08 +00:00
peter
f30b313a63 accidently removed the "dont compare > 8MB files hack".
didn't rewind the files after the read()s in the non-mmap compare.
1996-09-05 07:33:24 +00:00
peter
46847c4cdf Only attempt to mmap() files from a ufs or cd9660 fs for comparing or
installing.  mmap'ing stuff over a nfs mount took out my machine during
a 'make world' last night while I was asleep.  I started out with a list
of fs's to avoid, when I realised that I really didn't know which ones
were safe with mmap, so I went for the ones I knew and implemented a
fallback compare.
1996-09-05 07:27:43 +00:00
peter
4485ba1557 Add a simple -v (verbose) option that allows you to see when -C actually
installs something.  This is not 100% right, since it has a false hit
when install -C snaps hard links.

Also, run strip(1) from the $PATH, otherwise you need a special version
of install to install (say) elf binaries which have a different strip.
With JDP's elfkit, the layout of the path determines which binary format
you are generating.
1996-08-12 17:03:30 +00:00
bde
54d26451a2 Made strip failures fatal. This fixes PR 1328. 1996-06-23 12:59:18 +00:00
joerg
f6c45bb517 Don't reference NULL pointers if owner and/or group are omitted.
Pointed out by:  somebody on the mailing list who's name i forgot
1996-04-08 10:59:36 +00:00
julian
df817724e4 Submitted by: archie@tribe.com
allow the user to install using a Numeric GID or UID.
this brings it in to line with chgrp and chown, ans is required
by some people using FreeBSD in a product.
1996-04-06 01:50:40 +00:00
mpp
7b57b8465d Fix a couple of typos.
Submitted by:	Philippe Charnier <charnier@limrr.fr>
1996-03-11 03:31:51 +00:00
pst
dd9709123a Kludge-fix for a specific instance of bin/517.
The real fix requires changes to getpwent(3) and friends and getgrent(3)
and friends.

Submitted by:	Tim Wilkinson
1996-02-08 06:17:50 +00:00
mpp
511d4f82b2 Fix a bunch of spelling errors in a bunch of man pages. 1996-01-30 13:52:50 +00:00
bde
3d363c44cc Add options -C (same as -c except for preserving the modification
time of the target if the target file is the same as the source),
-d (debug), and -p (same as -C except for preserving the modification
time of the source if the target doesn't exists or is different from
the source.

Use library err() functions instead of our own and pass them better
exit codes.

Submitted by:	wollman (and changed a lot by me)
1995-10-09 07:21:00 +00:00
dg
32d5877021 Backed out change in rev 1.2. 1995-08-27 02:02:19 +00:00
joerg
98a78b7aa4 Make install not remove the target file if -s has been specified but
stripping failed (since the file has been a shell script, for
example).

Closes PR # bin/645: "install -c -s" can't inst...

Submitted by:	hohmuth@inf.tu-dresden.de (Michael Hohmuth)
1995-08-04 17:13:36 +00:00
bde
f5284ed86d Change install' to ${INSTALL}' so that default install flags can be
specified in the top level Makefiles.
1995-07-25 00:37:58 +00:00