Compare commits

...
Author SHA1 Message Date
cvs2svn 95b66175a3 This commit was manufactured by cvs2svn to create tag
'RELENG_2_2_7_RELEASE'.
1998-07-24 04:57:32 +00:00
Jordan K. Hubbard 21a9168142 11th hour fixes to XF86Setup handling and the XF86 dist bit. Gack.
I'll slide the tags forward on these files and update the boot floppy
for 2.2.7.  Nothing catastrophic, but irritating enough to fix floppies
over.
1998-07-23 19:21:41 +00:00
KATO Takenori f79b5d7b4e Sync with sys/i386/i386/userconfig.c revisions 1.63.2.28.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-07-23 10:33:44 +00:00
Jordan K. Hubbard d2ac0794b6 Bump reldate by 1 to denote that it's now past the release.
Suggested by:	asami
1998-07-21 13:56:32 +00:00
Jordan K. Hubbard f679ee58a1 Whoops! Commit the new errata for 2.2.7 - I'll slide the tag forward
for this file.
1998-07-21 13:54:48 +00:00
Jordan K. Hubbard d146ffcd70 Now that the tree is tagged, set to 2.2.7-STABLE 1998-07-21 13:49:50 +00:00
KATO Takenori 50dd249ff2 Sync with sys/i386/i386/userconfig.c and sys/i386/conf/files.i386
revisions 1.63.2.27 and 1.141.2.23, respectively.

Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-07-21 12:12:50 +00:00
Jordan K. Hubbard ce070a231e Get ready for tree tagging in 3 hours (I always forget this, so I'm
doing it now while it's fresh in my mind. :)
1998-07-21 12:06:10 +00:00
Jordan K. Hubbard f08c57b743 Update release notes, XFree86 docs and README in preparation for
2.2.7's release.
1998-07-21 12:00:34 +00:00
Jordan K. Hubbard 806b696bda Spell "adapters" correctly. 1998-07-21 11:50:56 +00:00
Philippe Charnier 88669d7e76 Comment is .\" not .|'. Do not dot terminate .Nd string. Typos. 1998-07-21 06:50:20 +00:00
Joseph Koshy 45a32c826e MFC: {rev 1.14} Fix use of -man macro, correct description of the
behaviour of the `+n' command to match whats there in the source.
1998-07-21 06:48:51 +00:00
Jordan K. Hubbard 1538bd7196 Shorten name of XFree86 contrib sources to be 8.3 compliant. 1998-07-21 06:09:39 +00:00
Jordan K. Hubbard b94c2a8456 Fix several bogus with XF86 distribution handling and display. 1998-07-21 05:42:34 +00:00
Jordan K. Hubbard 24819dfae6 Prevent mislabelled CDs from spitting out more than the necessary
number of "are you sure?" messages.
1998-07-21 05:15:05 +00:00
Jordan K. Hubbard fa82ebeccf Whoops! My mistake - XFree86 is now 3.3.2.3, not 3.3.2.1. 1998-07-21 04:03:25 +00:00
Jordan K. Hubbard bd708d5e35 Update the motd roughly as per PR#6537
Reminded by:	Doug White <[email protected]>
1998-07-21 01:43:36 +00:00
Mike Smith ed58a67988 Patch for the non-PnP case; this killed GENERIC. 1998-07-20 21:00:02 +00:00
Mike Smith 0bad08ed98 MFC: section 4 manpage for 'cs' 1998-07-20 20:13:58 +00:00
Mike Smith 8f97227182 MFC: the 'cs' driver for Crystal Semi CS89x0 adapters. Note that this
is marked as 'disabled' in GENERIC as a safety measure only.

Submitted by:	Maxim Bolotin <[email protected]>
1998-07-20 20:11:11 +00:00
cvs2svn e9073a0a1d This commit was manufactured by cvs2svn to create branch 'RELENG_2_2'. 1998-07-20 20:02:33 +00:00
Andreas Klemm e85bfb7c5d MFC: use full pathname of makemap command, so it's possible to use
"make all install" from cron ...
1998-07-20 17:43:14 +00:00
Mike Smith 2275791a58 MFC: work with PCNet PCI chips that only behave for us in ISA mode.
Submitted by:	Ted Faber <[email protected]>
1998-07-20 17:41:42 +00:00
Jordan K. Hubbard f885fadf09 Back out one small portion of my previous commit until/unless
the proper infrastructure support for it is brought in.
1998-07-20 11:42:47 +00:00
Jordan K. Hubbard 37c577255c Update to indicate that we'll actually be using XFree86 3.3.2.1 1998-07-20 11:33:08 +00:00
Kazutaka YOKOTA 5dab24749c Fix typo in a keymap file name: latin-amer.iso -> latin-amer. 1998-07-20 10:45:53 +00:00
Jordan K. Hubbard fd5392c48d make /usr/libdata/msdosfs for the koi2dos translation properly.
Submitted by:		Hideki Yamamoto <[email protected]>
1998-07-20 03:09:21 +00:00
Joseph Koshy 84b06bc81a MFC: {rev 1.23} Add CAVEAT on minimum permissions for mount point to be
traversable.
1998-07-20 02:33:46 +00:00
Joseph Koshy 5ee29c69ba MFC: {rev 1.16} fix description of the `-C' option. 1998-07-20 02:30:06 +00:00
Stefan Eßer db9a0a9613 Merge from -current: Add US master site for KDE. 1998-07-19 18:02:39 +00:00
Jordan K. Hubbard 6cf72244e5 -Wall cleanup. 1998-07-19 11:02:20 +00:00
Jordan K. Hubbard 5ba0739a24 Whoops - looks like patch flubbed this one; fix. 1998-07-19 10:56:06 +00:00
Jordan K. Hubbard f093f64e1b MFC: import new data and a few bug fixes. 1998-07-19 06:53:21 +00:00
Jordan K. Hubbard 7d26afd360 MFC: doc fixes, enhancements to bootp. 1998-07-19 06:53:05 +00:00
Jordan K. Hubbard fe9ab80f3c MFC: doc fixes, remove old dreck. 1998-07-19 06:52:13 +00:00
Jordan K. Hubbard 24797bfa88 MFC: doc fixes, casts, cosmetic. 1998-07-19 06:51:50 +00:00
Jordan K. Hubbard ee79220c87 Nuke broken LFS code. 1998-07-19 06:20:27 +00:00
Alexander Langer 938f42a690 MFC (rev 1.93): don't log ICMP type and subtype for non-zero offset
packet fragments.
1998-07-18 23:30:51 +00:00
Tim Vanderhoek 4a3e619048 sample qmail entry 1998-07-18 20:01:08 +00:00
Jordan K. Hubbard 911b2b4e6f MFC: finish usr.sbin 1998-07-18 11:38:12 +00:00
Jordan K. Hubbard cfbe635f8e MFC: doc changes, new rate-limiting inetd(8), lots of minor cosmetic tweaks. 1998-07-18 11:12:47 +00:00
Jordan K. Hubbard 71be27409e MFC: nuke an outdated file I missed. 1998-07-18 09:46:09 +00:00
Jordan K. Hubbard b708943b22 - Handle installation using a wfd as a floppy TOO!
- Handle network installs over fpa, sr, en, cc3i devices if available in kernel
- More scripting goodness, including:
	confirmation dialog box from scripts
	load floppy config file (works recursively for config files)
	dump all sysinstall variables to disk for post install
	    state setup
	handle recursive config file loading (config file loads another)
- Fix some interactive issues
- Fix handling of root chunks (didn't include the altroot bits this time)
- Allow fixit floppy on any floppy device, not just fd0 (needed for wfd!)
- Handle unifed root /usr and /var if desired and scripted, otherwise do
  the normal stuff.

Submitted by:	pst
1998-07-18 09:35:29 +00:00
Jordan K. Hubbard 20a7a90213 Nuke tl0 entry which erroneously got in here. 1998-07-17 23:05:21 +00:00
Jordan K. Hubbard b81d7f330a XFRee86 is now version 3.3.2.
PR:		7308
Submitted by:	Sascha Blank <[email protected]>
1998-07-17 21:55:39 +00:00
Jordan K. Hubbard 4fc19a7cc3 MFC: gack. That's the doc fixes merged, many utilities converted over
to err(), and a few assorted buffer overflow fixes.  Also nuked the
now-useless LFS stuff.
1998-07-17 20:13:53 +00:00
Jordan K. Hubbard b0e6f7baa8 MFC: final round of merges for /usr/src/usr.bin 1998-07-17 08:19:45 +00:00
Jordan K. Hubbard 72f777784d MFC: fix. 1998-07-17 08:07:40 +00:00
Jordan K. Hubbard 4aa4038e99 MFC: update talk, tip and telnet. Usual doc merges and whatnot. 1998-07-17 07:26:31 +00:00
Joerg Wunsch de43ac3c73 MFC: fat warning from rev 1.111 1998-07-17 06:46:12 +00:00
Jordan K. Hubbard 3d2b5d3d9b MFC: doc fixes, enhancements to locate & more, new tail functionality. 1998-07-17 04:21:57 +00:00
Joseph Koshy e3c0ee2101 MFC: {rev 1.12} Correct wording on range of addresses examined by
`msync(2)'.
1998-07-17 04:02:33 +00:00
Joseph Koshy 8857668bd3 MFC: {rev 1.22} Document use of lines beginning with a '#' as comments. 1998-07-17 04:00:02 +00:00
Joseph Koshy a5f91f98bd MFC: {rev 1.26 "pkg_add.1", rev 1.18 "pkg_info.1"} Add $Id$. 1998-07-17 03:55:03 +00:00
Joseph Koshy 18b61ffcf4 MFC: {rev 1.15} Fix inconsistent port numbering in man page. 1998-07-17 03:51:00 +00:00
Jordan K. Hubbard 66c958c770 MFC doc fixes, proper printf() casts, bugfixes for fetch, updated file(1)
command.  Remove dreck.
1998-07-16 23:52:19 +00:00
Justin T. Gibbs 483f113534 MFC: Correct checksum calculation in the case where we loop. 1998-07-16 19:34:38 +00:00
Nate Williams d27a27016a MFC: Fix race condition in pw caused by multiple instances of pwd_mkdb
being run at the same time.

PR:             bin/6787
Submitted by:   Craig Spannring <[email protected]>
1998-07-16 17:20:18 +00:00
Dmitrij Tejblum d9188b3909 This file is an ancient junk. Now Makefile will pick up newer version in
contrib/gcc.
1998-07-16 13:32:46 +00:00
Jordan K. Hubbard 4514d3cda2 MFC: Some of these files, like the relnotes, are due for revisiting. 1998-07-16 10:35:29 +00:00
Jordan K. Hubbard b3e2ee6ec4 MFC: New floppy creation stuff. 1998-07-16 10:27:05 +00:00
Jordan K. Hubbard d97fd2c1e7 MFC: Remove moved files. 1998-07-16 10:21:27 +00:00
Jordan K. Hubbard 6d93c26728 MFC: nuke this file. 1998-07-16 10:16:04 +00:00
Jordan K. Hubbard 4ebd34b205 MFC: new rune functions. 1998-07-16 09:57:02 +00:00
Jordan K. Hubbard 8fbfdc72cb MFC: man page fixes, printf args cast to u_long where appropriate, etc. 1998-07-16 09:35:53 +00:00
Jordan K. Hubbard b7d4f10dad MFC: Bring in FAT32 support from -current.
Merged by:      Hideki Yamamoto <[email protected]>
1998-07-16 02:03:43 +00:00
Jordan K. Hubbard 5a8de2aec5 MFC: Bring in FAT32 support from -current.
Merged by:	Hideki Yamamoto <[email protected]>
1998-07-16 02:01:48 +00:00
Jordan K. Hubbard 132278444b Make prototype match implementation.
Submitted by: Graham Wheeler <[email protected]>
1998-07-16 00:09:29 +00:00
Jordan K. Hubbard ee721a09d3 MFC: PR#6528 - CHIOGSTATUS broken. 1998-07-15 23:33:31 +00:00
Dag-Erling Smørgrav 9117dd171b MFC: allow blank lines in /var/yp/securenets. 1998-07-15 12:16:38 +00:00
Jordan K. Hubbard 5f3015c3bd MFC: man page fixes, octal char support for ls, misc fixes to cp, etc.
Sorry Bruce, that's the best description you're going to get considering
the number of merges I still have to make. :)
1998-07-15 02:01:36 +00:00
Jordan K. Hubbard 4bb2b94267 MFC: new directories. 1998-07-15 01:12:53 +00:00
Andrey A. Chernov cf6ead55c8 MFC: errno 1998-07-14 18:29:20 +00:00
Julian Elischer 0ab55dfca2 MFC: fix braino also merged in from current. (the old cut'n'paste error) 1998-07-13 06:37:11 +00:00
Steve Price 604f2003e4 MFC: cosmetic changes to Spanish LC_TIME strings 1998-07-12 22:36:10 +00:00
Brian Somers f60d177fcf MFC: set local ppp phase logging by default. 1998-07-12 17:23:21 +00:00
Alexander Langer 4b94c4d561 MFC (rev 1.22): removed no longer valid comment. 1998-07-10 21:59:53 +00:00
John Polstra 60152fd230 MFC 1.5 -> 1.6: Bug fix for hard links to files marked immutable. 1998-07-10 16:55:34 +00:00
Joseph Koshy bd2b22f9da MFC: {rev 1.8} "/etc/magic" --> "/usr/share/misc/magic".
PR: 7231 (and 4872)
1998-07-10 11:34:14 +00:00
Julian Elischer 88f3f68f0b MFC: match 1.11
Don't calculate the next hop twice.
1998-07-09 02:02:52 +00:00
Alexander Langer d8d9fcb67c MFC (rev 1.25): detect uid 0 correctly. 1998-07-08 22:44:08 +00:00
Jordan K. Hubbard 3eaae8e498 Remove all traces of BINFORMAT here. It is not meaningful in 2.2 nor will
it ever be meaningful in 2.2.
1998-07-08 13:03:06 +00:00
KATO Takenori 49d747cacc asm->__asm
inline->__inline

Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-07-08 09:10:11 +00:00
David Greenman 438c3db78c Brought in changes from rev 1.96: silently discard source routed packets
that aren't for us.
1998-07-08 08:51:38 +00:00
Jordan K. Hubbard 2cb24c3c00 Ack! Don't set ALLLANG in here. The Japanese docs can be built but aren't
installable on a standard system anyway since /usr/share/doc/ja/handbook doesn't
exist.  Found by: Doing a make release on a 2.2-stable system.
1998-07-08 08:50:42 +00:00
John Polstra 3f73857adf Sync with main branch. 1998-07-08 05:33:46 +00:00
John Polstra a91679b9f3 MFC 1.2 -> 1.3: define PT_{LO,HI}PROC. 1998-07-07 23:36:23 +00:00
Jordan K. Hubbard 110bbbb972 MFC: Bruceification. 1998-07-07 22:21:12 +00:00
Jordan K. Hubbard 2b364efe54 MFC: check for non-existant bounds. 1998-07-07 12:09:52 +00:00
Justin T. Gibbs 8be19deb4c asm->__asm
inline->__inline
1998-07-07 05:24:41 +00:00
Joseph Koshy 8a59cbfe07 MFC: {rev 1.17 "pkg_info.1"} fix for PR 7155. 1998-07-07 05:13:36 +00:00
Joseph Koshy 527b07d556 MFC: {rev 1.13 "mount_nfs.8"} fix for PR 6905. 1998-07-07 04:52:54 +00:00
Joseph Koshy e8cc66a626 MFC: {rev 1.5 "atrun.man"} fixes for PR 7109. 1998-07-07 04:49:55 +00:00
Justin T. Gibbs 3874d671e0 MFC: Attempt to read SEEPROM contents in both 93c46 and 93c56/66 modes. 1998-07-06 18:39:56 +00:00
Joseph Koshy adc76b8895 MFC: fixes for PR docs/7064
{rev 1.25 "pkg_add.1"; rev 1.26 "pkg_create.1"; rev 1.16 "pkg_info.1"}
1998-07-06 12:15:22 +00:00
Joseph Koshy 73dc329806 MFC: {rev 1.11} fixes for PR 2850. 1998-07-06 12:01:34 +00:00
Dag-Erling Smørgrav 0e9f19d8aa MFC: force conversion of unit count from string to integer to avoid
endless loop.

PR:		misc/7124
Reviewed by:	Well, bde bickered a little :)
1998-07-06 10:59:17 +00:00
Julian Elischer 472b621990 I now understand one minor detail better, so fix a bad fix. 1998-07-06 09:05:32 +00:00
Julian Elischer 6e2c102ae1 Spotted and fixed a few more bogons not relevant to -current. 1998-07-06 08:48:38 +00:00
Julian Elischer 539c8db0d8 clean up some oversights on the last commits
hopefully catches the corner cases
1998-07-06 08:29:48 +00:00
Brian Somers a97c61f7a2 Version 1.65 -> 1.7 1998-07-06 02:07:29 +00:00
John Polstra 1f8807d283 MFC: Fix spelling error. 1998-07-04 22:13:30 +00:00
Steve Price 53b6bdd138 MFC: remove trigraph (PR#7123) 1998-07-04 19:01:56 +00:00
Alexander Langer 4fa6606d60 MFC (rev 1.12): Permit double digit year values to be used in the next
millenium.
1998-07-04 17:03:36 +00:00
Jordan K. Hubbard ba39198138 Whoops, commit the right version. 1998-07-04 14:12:19 +00:00
Jordan K. Hubbard c073ac0841 Check for null pointer bogosity in PUSHOUT().
Noticed by:	Robert Baron <[email protected]>
1998-07-04 14:10:56 +00:00
Brian Somers b6732eede4 MFC: Make things clearer.
Submitted (some time ago) by: Ted Mittelstaedt <[email protected]>
1998-07-04 12:07:45 +00:00
Brian Somers bf4ee2f0fc MFC: 6668/divert -> 8668/divert. IRC uses 6668. 1998-07-04 01:58:14 +00:00
Brian Somers 618547e832 MFC: Suggest port 8668 rather than 6668 for natd. 1998-07-04 01:54:51 +00:00
Brian Somers a78977ec5d MFC: Fix assorted problems with the history edit functions. 1998-07-03 17:30:30 +00:00
Jordan K. Hubbard 4d01971996 MFC: Check for missing keyboard (PR#7108). 1998-07-03 14:35:25 +00:00
Jordan K. Hubbard f11780d654 MFC: Add ALLLANG 1998-07-03 14:29:09 +00:00
Jordan K. Hubbard fef49ae1b8 MFC: remove ALLLANG 1998-07-03 14:28:32 +00:00
Jordan K. Hubbard fb53305b39 lpd tries to be clever and checks if RM == my_hostname.
However, it doesn't check if the remote printer name it
is sending it to is the same as the local printer name.

Submitted by:	David Malone <[email protected]>
PR:		7081
1998-07-03 14:21:49 +00:00
Jordan K. Hubbard 4f72061603 MFC: entry for Dell. 1998-07-03 14:06:17 +00:00
Jordan K. Hubbard da991c5bb8 MFC: Byte count statistics of multicast vifs are invalid.
PR:	7115
1998-07-03 07:48:14 +00:00
David Greenman 0395b10b55 Brought in changes from rev 1.104: preserve MNT_ASYNC across failed
unmount()s.
1998-07-03 03:50:31 +00:00
Bill Paul 04ac22c254 MFC: add workaround to allow FreeBSD boot block to load and run on
brain-damaged Taiwanese notebook machine.
1998-07-02 15:45:24 +00:00
Julian Elischer 66efb86d51 MFC: merge in some minor cleanups for IP divert 1998-07-01 01:38:38 +00:00
Jun Kuriyama 670f74bf0c MFC: Sync PATH variable with 'dot.login'. 1998-06-30 14:38:05 +00:00
Philippe Charnier 7da55eded9 Various changes obtained from current. 1998-06-30 06:43:23 +00:00
Dmitrij Tejblum 202eb0eeb1 MFC: Provide __error() in libc, to allow linking _THREAD_SAFE objects in
non-threaded programs.
1998-06-29 19:18:17 +00:00
Jordan K. Hubbard ec50325e25 Restore a clobbered tab.
Dedicated to:	bde
1998-06-29 10:15:32 +00:00
Jordan K. Hubbard 3cfee405f8 MFC: crank max disks/slices way down. 1998-06-29 09:28:21 +00:00
Tim Vanderhoek 078c68c47f MFC: .Ar usage, .Xr as appropriate, AUTHOR->AUTHORS 1998-06-29 07:04:36 +00:00
Tim Vanderhoek ec5296f4f0 MFC: a typos and grammer 1998-06-29 06:57:18 +00:00
Tim Vanderhoek 7509804433 CFC: SEE ALSO www.freebsd.org/ports 1998-06-29 06:55:59 +00:00
Tim Vanderhoek 5dd54e5e91 mfc, misc. spelling and grammar gnits. 1998-06-28 21:34:27 +00:00
Brian Somers f7c35593a8 Cosmetic: u_long -> u_int32_t 1998-06-28 10:39:39 +00:00
John Polstra cf572da1fe MFC: Move ftok() from libcompat to libc.
PR:		misc/6763
1998-06-28 05:22:39 +00:00
Justin T. Gibbs 34f937162f MFC: Workaround for aic7880 Rev. B dma hardware bug. 1998-06-28 02:59:53 +00:00
Steve Price c609e0c8df MFC: revision 1.9 1998-06-27 21:30:44 +00:00
Steve Price 8b34ac9cfa MFC: natd support 1998-06-27 21:23:28 +00:00
Steve Price aab4673db2 MFC: revision 1.2 1998-06-27 20:43:02 +00:00
Steve Price 84637f89f2 MFC: typos fixed in revision 1.3 1998-06-27 20:34:11 +00:00
Brian Somers a6446f386b Cosmetic (under FreeBSD):
Even more u_long -> u_int32_t
1998-06-27 16:32:07 +00:00
Brian Somers 42487bdd21 Cosmetic MFC:
OpenBSD struct tunnel_header -> u_int32_t
  Fix ``sizeof(u_long) == 4'' errors.
  Suggested by: theo
1998-06-27 12:05:28 +00:00
Andreas Klemm 491a4a3d96 merged from ­current,
new security warnings (login failures and tcp_wrappers messages)
PR:	closes misc/7050
1998-06-27 11:20:34 +00:00
John Hay 8b4d9bd896 MFC: r 1.18 Hide printf.
PR:		6875
1998-06-27 07:42:00 +00:00
Brian Somers 5c4936cf92 MFC: Don't depend on sizeof(u_long) == 4.
Pointed out by Theo
1998-06-26 19:04:31 +00:00
Brian Somers 89a195026f MFC: Build a des & non-des version of ppp in the same way as
init and ed.
1998-06-26 18:55:07 +00:00
Brian Somers 14fa10a9f7 MFC: DISTRIBUTION=des 1998-06-26 18:52:44 +00:00
Dmitrij Tejblum cc99ed2cf0 Make it setuid root again, as it always has been.
PR:		7070
1998-06-26 14:45:17 +00:00
Pierre Beyssac 69c57b185c MFC: patch rarpd use of the routing socket.
PR: bin/5669
1998-06-26 13:13:53 +00:00
KATO Takenori efcf2affbe Sync with sys/i386/i386/machdep.c revision 1.209.2.24.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-06-26 02:49:25 +00:00
Jordan K. Hubbard 0f5268be8e Reference CVSup documentation URL for those who don't even quite know
what it is.
1998-06-26 01:47:43 +00:00
Jordan K. Hubbard 5584981aa0 Remove completely obsolete sup lines (we don't support sup from freebsd.org)
and better document the CVSup config stuff.
1998-06-26 01:44:08 +00:00
Bill Paul dbe7a5bde1 MFC: don't treat multiple instances of the same IP address in export
access lists as an error. (2.2.x needs this too.)
1998-06-25 21:27:24 +00:00
Peter Wemm 3ffea809b1 Whoops. :-( Update the if_ppp build glue to deal with 2.3.5 from -current.
(All my systems have lkm's disabled for safety, I ususally forget them.)
1998-06-25 09:02:51 +00:00
Jordan K. Hubbard 337dc04a90 MFC: make boot message buffer size configurable.
PR:     6962
1998-06-25 00:47:48 +00:00
Jordan K. Hubbard 4c2f91dcc4 MFC: make boot message buffer size configurable.
PR:	6962
1998-06-25 00:45:59 +00:00
Jordan K. Hubbard 2ceaee9419 irqs are now passed in as linked list. Update this code accordingly.
Found by:	LINT
1998-06-24 09:21:53 +00:00
Jordan K. Hubbard ede95f98ce Make this build again - at_ifawithnet() takes only one arg. 1998-06-24 08:59:36 +00:00
Jordan K. Hubbard 5e9be4258e Don't enable vcfs by default - it prevents LINT from building. 1998-06-24 08:45:20 +00:00
Jordan K. Hubbard 2855e0437a MFC: Don't pull in compat bits we don't need to. 1998-06-24 06:14:01 +00:00
Peter Wemm 87ca7569fb Update chat with changes from ppp 2.2.0 -> 2.3.5 1998-06-23 22:12:41 +00:00
Peter Wemm 5447f18ee2 Update from ppp 2.2.0 -> 2.3.5, from -current. (actually this is 2.3.3,
as in -current.  the only 2.3.3 -> 2.3.5 changes were a couple of new
#ifdefs for GLIBC on linux)
1998-06-23 21:48:50 +00:00
Peter Wemm 80f3543fbf Update pppd from 2.2.0 -> 2.3.5.
NOTE:  There were a lot of hacks done to pppd along the way that were
never submitted back to the pppd folks and many required extensive
reworking to get them to fit into 2.3.x.  If you've made hacks in the
past that are important, please re-check them to make sure they still work.

OK'ed by: jkh
1998-06-23 21:41:51 +00:00
Peter Wemm a9267e9cc5 Update from ppp-2.2.0 -> 2.3.5, from -current.
New features:  deflate/gzip compression, demand dial, bringup/keepup/pass
filtering using bpf, Idle timeout.  (This version uses the correct
protocol number for deflate BTW).

OK'ed by: jkh
1998-06-23 21:33:24 +00:00
KATO Takenori 743780d418 Sync with sys/i386/conf/Makefile.i386 revision 1.89.2.5.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-06-23 16:27:45 +00:00
Tim Vanderhoek 9d63bf5fb8 Merge in the last two Revs of typo-fixes. 1998-06-23 05:31:20 +00:00
Tim Vanderhoek d60b22bb8d Copy From Current 1998-06-23 04:41:04 +00:00
Tim Vanderhoek e4653f2aee Cross-ref login.conf(5). 1998-06-23 04:39:35 +00:00
Jordan K. Hubbard 261b828a18 MFC: use blanktime 1998-06-23 03:09:45 +00:00
Jordan K. Hubbard a3e8860c3f MFC: kernel version number to go with config(8) change. 1998-06-22 02:48:23 +00:00
Jordan K. Hubbard c958734edc MFC: bring in kernel versioning feature, though with a slightly more
informative error message (which I'll bring forward into -current).
1998-06-22 02:47:35 +00:00
Jordan K. Hubbard 2ed0c8b014 MFC: Bye, airport. 1998-06-21 04:47:40 +00:00
Matthew Hunt e1dafa5619 MFC: Punctuation and style fixes. 1998-06-21 04:44:52 +00:00
cvs2svn c67e0c3e21 This commit was manufactured by cvs2svn to create branch 'RELENG_2_2'. 1998-06-20 18:02:17 +00:00
Tim Vanderhoek 3026b81692 MFC: Rev 1.19, always -HUP syslog, etc. (PR: docs/6385) 1998-06-20 14:41:00 +00:00
Andrey A. Chernov 83cb6761a1 MFC: fix ^Z keypad on/off 1998-06-19 16:16:13 +00:00
Andrey A. Chernov 87c7af1eb5 MFC: #pragma weak, NULL check 1998-06-19 16:14:30 +00:00
KATO Takenori c9168f59f0 Sync with sys/i386/isa/isa.c and sio.c revisions 1.74.2.7 and
1.147.2.16, respectively.

Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-06-18 07:55:14 +00:00
KATO Takenori ad3059481c MFC (revision 1.65 and 1.66; Add NEC PC-98 chipsets).
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-06-17 15:29:09 +00:00
Joseph Koshy 8b3fc09d69 MFC: {rev 1.6} Added mention of Intel EE16 to man page. 1998-06-17 08:39:24 +00:00
Bruce Evans 28b17a7357 MFC (sio.c revs.1.203-1.205 and 1.207 and infrastructure: made
tests 3, 5 and 8 non-fatal, etc).  This may fix failing probes for
builtin ports on IWill motherboards.

PR:		6201
1998-06-16 12:51:24 +00:00
Joerg Wunsch e9ed2d9e58 MFC: rev 1.29/1.30, prevent mountd from dumping core for null hostnames
in netgroups.
1998-06-15 15:44:35 +00:00
Justin T. Gibbs afe640f62a MFC - Add support for the Storage Dimensions SDC3222F. 1998-06-14 16:42:29 +00:00
Steve Price 1edf6e57fe MFC: Allow .cpp extension for C++ files.
PR:		6913
Submitted by:	Greg Moncreaff <[email protected]>
1998-06-14 16:10:49 +00:00
Steve Price 303999599a MFC: 'They They' -> 'They' 1998-06-14 16:07:12 +00:00
Bruce Evans bd345a6847 MFC (1.37: various fixes for fdesc_readdir()). 1998-06-14 09:16:28 +00:00
Steve Price 16c46ddeb1 MFC: Add a Swiss-French keymap. 1998-06-13 22:50:10 +00:00
Steve Price 4aa75d8e89 MFC: part of Peter's recent commit that fixed the problem
regarding not being able to use the bnc connector.
1998-06-13 22:43:58 +00:00
Steve Price f9ac6ce951 MFC: add SI_ISJET macro. 1998-06-13 19:37:36 +00:00
Steve Price 1abbc7e638 MFC: mention all device environment variables 1998-06-13 19:30:22 +00:00
Steve Price 06081ff9aa MFC: miserable -> miserably 1998-06-13 19:08:40 +00:00
cvs2svn ffc3058832 This commit was manufactured by cvs2svn to create branch 'RELENG_2_2'. 1998-06-13 18:39:23 +00:00
John Birrell 4e4527d08f MFC. Update file descriptor masks when no file descriptors are ready. 1998-06-12 22:56:49 +00:00
Brian Somers da293e2616 MFC: Correct arg hack
Submitted by: David Leonard <[email protected]>
1998-06-12 17:47:37 +00:00
Julian Elischer ad8ae08198 MFC: 1.29->1.30
There is never a case when a diverted packet shouldn't know about
it's receive interface, so make the supplying of that information
unconditional (unless it's not known).
1998-06-12 03:02:08 +00:00
Guido van Rooij 68381a26cc Install motd mode 644 only (it makes no sens in first installing it
mode 0644 and then 0666)
1998-06-11 20:22:14 +00:00
Peter Hawkins 4a9109434d Submitted by: Peter Hawkins ([email protected])
merge from current: Small man page fix (missing ']' in [:alpha:] example)
1998-06-11 02:18:40 +00:00
Jordan K. Hubbard c86bc6f8f0 Update to Luigi's latest sound driver for -stable (snd980419). 1998-06-10 17:37:02 +00:00
Daniel O'Callaghan d205a6a83f Reviewed by: thepish
MFC: fix grammar, "null" -> "NUL"
1998-06-10 12:39:47 +00:00
Dmitrij Tejblum ba64e486f6 MFC (rev. 1.16): remove stray semicolon. 1998-06-09 14:15:05 +00:00
Julian Elischer e223cc395d MFC:
Don't let ifunit() modify the string passed as an argument.
it may be in the text segment and write protected.
    matches 1.59 -> 1.60
1998-06-08 20:37:30 +00:00
Peter Hawkins 6f34a5269f bin/5730 commit backed out of -stable after advice from Eivind. 1998-06-08 10:55:26 +00:00
Joseph Koshy 3f8ecc006e MFC: {r1.12} Fix typo in printf(). 1998-06-08 06:45:24 +00:00
Joseph Koshy ac2598c6c4 MFC: Spelling fixes from PR 6880. 1998-06-08 06:39:32 +00:00
Joseph Koshy 09a510cb6c MFC: {r1.14} Clarify usage of -c, add example. 1998-06-08 05:44:03 +00:00
Daniel O'Callaghan 48f5fdffe2 MFC: typo: exit -> exist 1998-06-08 02:02:31 +00:00
Brian Somers a6b889c518 Use a width of 0 rather than 32 when HISADDR is 0.0.0.0.
Reported by:      many
Narrowed down by: Lutz Albers <[email protected]>
1998-06-07 17:10:53 +00:00
Brian Somers 4795697b3e MFC: Fix previous commit. bit 1 is the execute bit, not the read bit *blush*
ie, BINMODE=4551 -> BINMODE=4554
     Pointed out by: Bruce Evans <[email protected]>
1998-06-07 17:10:22 +00:00
Peter Hawkins 24527a9225 PR: docs/3636
merge from current
1998-06-07 15:10:27 +00:00
Peter Hawkins 6c1428b383 PR: bin/5730 1998-06-07 14:50:11 +00:00
Peter Hawkins 68d980cbc6 PR: bin/5730
Submitted by:	James Raynard [email protected]
Make config's invalid option warning messages more informative. Corrected by
adding the improved error report from -current. Thanks!
1998-06-07 13:38:16 +00:00
Brian Somers a57994cc66 MFC: Make ppp world-readable so that root can get at it over
NFS when nobody isn't in group network :-)

     Pointed out by: Bruce Evans <[email protected]>
1998-06-07 00:18:30 +00:00
Steve Price 9a19552514 MFC: keymap -> key_map 1998-06-06 17:46:28 +00:00
Peter Hawkins 4beeaece61 PR: docs/5986
Submitted by:	MITSUNAGA Noriaki [email protected]
merge from current
1998-06-06 15:41:11 +00:00
Peter Hawkins a03a3dfac9 PR: docs/5628
Submitted by:	 MITSUNAGA Noriaki [email protected]
Merge from current
1998-06-06 15:19:37 +00:00
Joseph Koshy 058bfe4aa5 MFC: Spelling corrections from PR 6868. 1998-06-06 06:09:26 +00:00
Joseph Koshy 9cb36cbaac MFC: Spelling nits. {r1.14 madvise.2; r1.12 mincore.2} 1998-06-06 05:03:43 +00:00
Bruce Evans 1d33142eed MFC (rev.1.46: don't attempt to copy the whole slices "struct" for
DIOCGSLICEINFO).
1998-06-06 03:13:54 +00:00
Julian Elischer b7c5bc5cb6 MFC: add option to fix divert infinite loop 1998-06-05 21:38:12 +00:00
Joseph Koshy 6b82e09364 MFC: {r1.4} tftpd also uses LOG_FTP. 1998-06-05 11:30:59 +00:00
Joseph Koshy 33c196c2f5 MFC: {r1.5} Mention that logging of messages with -l requires syslog.conf(5) changes. 1998-06-05 11:23:26 +00:00
Andrey A. Chernov 448679fc3a MFC: v1.9 1998-06-05 09:53:52 +00:00
Julian Elischer 3b699a595c Obtained from: NetBSD user David Brownlee <[email protected]>
via the Netatalk lists.
1998-06-05 06:58:59 +00:00
Steve Price d31de57f41 MFC: /nonexistent to /sbin/nologin 1998-06-04 22:38:12 +00:00
Steve Price 4822dd837c MFC: add .error directive. 1998-06-04 22:33:22 +00:00
Steve Price 540077bd30 MFC: allow user in group 0 to su to root. 1998-06-04 22:30:53 +00:00
Steve Price 635c19efb6 MFC: honor default group settings. 1998-06-04 22:28:14 +00:00
Steve Price cde646b3a7 MFC: allow setting idle/realtime priorities per login class. 1998-06-04 22:24:55 +00:00
Steve Price 163ff400ce MFC: set empty login name to '-'. 1998-06-04 22:20:33 +00:00
Steve Price f458046329 MFC: give correct times with old wtmp files. 1998-06-04 21:44:32 +00:00
Steve Price 069bcbca98 #include <errno.h> and avoid whitespce diffs from -current. 1998-06-04 20:47:11 +00:00
Steve Price ecba379d49 MFC: remove obsolete FDSEEKWAIT option.
PR:		6841
Submitted by:	Stefan Eggers <[email protected]>
1998-06-04 20:39:05 +00:00
Bill Paul 452cdb93be MFC: protect errno in signal handlers. 1998-06-04 15:41:45 +00:00
Bill Paul 2295a53329 Protect errno in signal handlers, like in portmap. 1998-06-04 15:11:32 +00:00
Matthew Hunt 552ca95fd8 MFC: Nuke directories in /var/run.
PR:		4138 5619 6793
1998-06-04 00:20:34 +00:00
Joseph Koshy ef99e83ff3 MFC: {r1.4} correct misleading statement on lifetimes of cookies returned
by `telldir()'.
1998-06-03 07:03:28 +00:00
Joseph Koshy 4983422dcd MFC: Spelling typos from Josh Gilliam, PR 6829.
{r1.9 bootpd.8; r1.11 chat.8; r1.2 cvsbug.8; r1.7 dset.8}
1998-06-03 04:35:19 +00:00
Joseph Koshy 9ecccba5c2 MFC: {r1.10} correct description of -crtscts 1998-06-03 04:12:26 +00:00
Joseph Koshy a973ad2c65 MFC: {r1.17} correct typo. 1998-06-03 04:02:20 +00:00
Eivind Eklund 7b861157e5 MFC: Return error when controller time out, and be less chatty during
boot (unless bootverbose).
1998-06-02 23:28:23 +00:00
Daniel O'Callaghan ee7b601efd PR: 6831
Submitted by:	[email protected]
Submitter retracts his PR 6749 which added a '.' after the weekday name.
Weekday name abreviations are supposed to be 3 characters exactly
(some languages pad with <space>)
1998-06-02 22:59:32 +00:00
John Hay a3f35d15db Shuffle the order around a little. This make -stable snaps work again
on our snap building machine. Hopefully also the FreeBSD one.
1998-06-02 18:55:17 +00:00
John Hay a5a00036aa MFC: Don't build perl in build-tools: if NOPERL is defined. 1998-06-02 18:41:21 +00:00
Joseph Koshy e29c1ac30c MFC: {r1.48} correct port# for RADIUS. 1998-06-01 03:58:44 +00:00
Justin T. Gibbs cf59f0d227 Convert to using the bufq macros.
Added sctargattach to initialize the bufq.
1998-06-01 03:42:56 +00:00
Steve Price 6146d4e99b MFC: clarify example 1998-05-31 22:44:52 +00:00
Steve Price 27444a8131 MFC: ${.OBJDIR} and ${.CURDIR} aware 1998-05-31 22:41:43 +00:00
Steve Price 58e0851411 MFC: allow inclusion from C++. 1998-05-31 20:12:58 +00:00
KATO Takenori 0a3be3af1f - Sync with sys/i386/isa/wd.c.
- Cosmetic changes.

Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-05-31 17:33:32 +00:00
KATO Takenori 7bb87ebe36 Sync with sys/i386/isa/syscons.c revision 1.182.2.33.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-05-31 17:32:32 +00:00
KATO Takenori 20fa32b5ea Cosmetic changes.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-05-31 17:31:49 +00:00
KATO Takenori cafb0fd054 Undeleted dpt driver's entry.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-05-31 17:31:07 +00:00
KATO Takenori 7042dffb4a Sync with sys/i386/i386/trap.c revision 1.83.2.8.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-05-31 17:29:53 +00:00
KATO Takenori ac724a2473 Sync with sys/i386/conf/files.i386 revision 1.141.2.22.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-05-31 17:29:13 +00:00
KATO Takenori 15c11a8df4 Sync with sys/i386/conf/GENERIC revision 1.77.2.3.
Submitted by:	Takahashi Yoshihiro <[email protected]>
1998-05-31 17:28:22 +00:00
Jordan K. Hubbard f73a632628 MFC: 1.22 1998-05-31 15:48:19 +00:00
Andreas Klemm 6f500b940f Merge in port numbers for zebra (multithreaded RIP/OSPF/BGP4 router)
from -current.
1998-05-31 09:38:01 +00:00
Peter Hawkins 5464a1398e PR: conf/2284
Submitted by:	[email protected]
Correct arrow keys in termcap entry for ibm3163 in releng_2_2
1998-05-31 06:54:38 +00:00
Peter Hawkins 04aee08aff PR: bin/2133
apply change in -current to 2.2. corrects potential overflow in
netstat -s output.
1998-05-31 06:36:12 +00:00
Peter Hawkins f1e8b33bc8 Reviewed by: Daniel O'Callaghan([email protected])
Submitted by:	Joseph Koshy <[email protected]>

Merge diffs from 1.6 to 1.7 into releng_2_2 - corrects man page based on
feedback from Bruce Evans.
1998-05-31 05:56:11 +00:00
Matthew Hunt f3f5841b4a MFC: Correct spacing error. Also, NetBSD -> .Bx Net. 1998-05-31 04:56:39 +00:00
Peter Wemm 04f2f25097 Back out of a cross device link a little better.
Remove a #ifdef __NetBSD__ that was in the way.
1998-05-31 00:07:29 +00:00
Jordan K. Hubbard 41b11ee998 Back out the bsd.local.mk changes in 2.2 as well.
Reminded by:	max
1998-05-30 22:40:59 +00:00
Steve Price fb07674849 MFC: Tile -> Title 1998-05-30 22:11:22 +00:00
David E. O'Brien 3cb3366ab9 MFC: us.unix.kbd 1998-05-30 19:54:55 +00:00
John Hay 76c86094de MFC: Don't use absolute path. 1998-05-30 16:22:24 +00:00
David E. O'Brien 77ddaa5b36 Turn on opie* 1998-05-29 22:53:33 +00:00
Daniel O'Callaghan e3d9ec204a PR: 6780
Reviewed by:	jkoshy
Submitted by:	Yoshishige Arai <[email protected]>
MFC: Macro fix and HISTORY removal.
1998-05-29 11:20:50 +00:00
Jordan K. Hubbard 9d09e08b3c MFC: ifdef cleanup. 1998-05-29 06:17:00 +00:00
Jordan K. Hubbard 794d65904a MFC: add to build-tools in order to fix new dependency problems. 1998-05-29 06:06:08 +00:00
Joseph Koshy 2d71c76d2c MFC: Add TERMCAP entry for Linux consoles contributed by Christian Weisgerber,
<[email protected]>.
1998-05-28 06:47:08 +00:00
Julian Elischer d5ee4959a7 MFC: rev 1.25
Stash more state into the diversion routing information.
Allow the user agent to specify a "receive" interface by name as well as
by address. Use this in the default case. This is because more than one
interface can have the same address in the case of P2P links. Should be
compatible with old clients.
1998-05-28 06:28:49 +00:00
Julian Elischer 344d037068 MFC: Take the loop avoidance factor from where the user put it and not
from the PCB (though it was sometimes correct).
from rev 1.24
1998-05-28 06:17:57 +00:00
Daniel O'Callaghan b37764d749 Reviewed by: thepish
MFC: add s and w flags.
1998-05-28 01:01:10 +00:00
Daniel O'Callaghan fde09f3999 PR: 6063
Reviewed by:	jkoshy
Submitted by:	Doug <[email protected]>
MFC: activate installation of boot.help during 'make distribution'
1998-05-28 00:04:48 +00:00
Daniel O'Callaghan 18276eff25 PR: 6063
Reviewed by:	 jkoshy
Submitted by:	Doug <[email protected]>
MFC: Install boot.help during 'make distribution'
1998-05-27 23:46:03 +00:00
KATO Takenori aefeaa1173 MFC: revision 1.2 (fixed syntax error).
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-05-27 16:52:10 +00:00
KATO Takenori 539896c96e Sync with sys/i386/isa/isa.c revision 1.74.2.6.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-05-27 16:49:14 +00:00
KATO Takenori 65b3eb750b Sync with sys/i386/conf/files.i386 revision 1.141.2.21.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-05-27 16:48:34 +00:00
David E. O'Brien bf15b94ee6 + Check args to the howman() and roundup() macros to prevent divide by zero
+ MFC rev 1.12 - fix overflow in chkrange()
1998-05-27 05:16:08 +00:00
David E. O'Brien a7b98b79a3 + Check args to the howman() and roundup() macros to prevent divide by zero
+ MFC rev 1.9 - prevent divide by zero
+ MFC rev 1.8 - guard against a block size of 0 in the label
1998-05-27 05:13:16 +00:00
Jonathan M. Bresler 25b046d76e accidently omitted two file declarations.
so i added them.

Submitted by:	Scot Elliott ([email protected])
1998-05-27 01:26:33 +00:00
John Birrell e291a8bf9a Remove the error test from the call to set the file descriptor to
non-blocking. Devices are written inconsistently so it is not practical
to test for specific errors to ignore. The most common case when this
is a problem is with devices which don't block anyway so failing the
open is the wrong thing to do.
1998-05-26 22:11:30 +00:00
John Birrell eb9ca9b92c When doing a blocking write to a pipe, handle the case where the write
or writev syscall needs to be repeated until all the bytes are written.
1998-05-26 22:07:28 +00:00
KATO Takenori 6da37b7c99 MFC: rev. 1.13 (disable local APIC). 1998-05-26 16:05:33 +00:00
David Greenman e2c2af9a8c brought in fix from rev 1.30: fix net.inet.icmp.bmcastecho = 0. 1998-05-26 11:38:48 +00:00
Daniel O'Callaghan f77c73b170 PR: 1904
Abort if username given is > MAXLOGNAME.
1998-05-26 06:28:30 +00:00
Steve Price a7d111f4db Remove style nits introduced with last commit.
Submitted by:	bde
1998-05-26 02:54:54 +00:00
Steve Price 9a646f2063 MFC: shorter file is noted on stderr. 1998-05-26 00:40:10 +00:00
Steve Price 283ffdcfac MFC: don't append a '/' if already there 1998-05-25 22:45:42 +00:00
Steve Price d4d195bb16 Update code example to reflect new usage.
PR:		6753
Submitted by:	Stefan Eggers <[email protected]>
1998-05-25 21:32:47 +00:00
Bill Fenner 241ade09d5 MFC: rev 1.37: use select(), SO_TIMESTAMP and fix IP options generation. 1998-05-25 20:21:34 +00:00
Steve Price 87887d5259 MFC: dot after day of month. 1998-05-25 18:53:03 +00:00
Steve Price caab4d70db Sync manpage updates too.
Submitted by:	Ruslan Ermilov <[email protected]>
1998-05-25 18:06:39 +00:00
Daniel O'Callaghan 2217c68da0 PR: 6117
Reviewed by:	jkoshy
Submitted by:	Mark Mayo <[email protected]>
MFC: add cross-refs, note ``dumpdev'' in rc.conf.
1998-05-25 12:07:25 +00:00
David Greenman f78845da53 Changed type of nd_procnum to unsigned to protect against negative values
causing system crashes.
PR:		6747
1998-05-25 09:16:00 +00:00
Steve Price 4310cfca49 MFC: merge changes from revision 1.17. 1998-05-25 07:30:04 +00:00
Steve Price e2e66a17d2 MFC: be stricter about commandline arguments 1998-05-25 07:21:49 +00:00
Joseph Koshy 7b8db215fb MFC: {r1.13} Fix example in manual page. 1998-05-25 07:18:13 +00:00
Steve Price 958e50a67a MFC: allow spaces in the filename. 1998-05-25 06:28:02 +00:00
David Greenman c359b67cbf Brought in changes from rev 1.84: fix for timestamp processing. 1998-05-25 05:26:43 +00:00
Steve Price ec688f4a08 MFC: don't clobber 'newsyslog.conf' on upgrade. 1998-05-24 19:50:18 +00:00
Steve Price 5ad7146f13 Fix Anders Email address. 1998-05-24 19:48:38 +00:00
Guido van Rooij 342ef5b9c8 MFC: Plug hole reported on Bugtraq: do not allow mmap with WRITE privs for
append-only and immutable files.
Obtained from: NetBSD (partly)
1998-05-24 19:47:02 +00:00
Steve Price 902d99e95f MFC: new Norwegian keycap entry. 1998-05-24 19:39:02 +00:00
Bill Fenner f7eee400b0 Merge rev 1.30: take IP options into account when calculating length 1998-05-24 19:02:31 +00:00
Steve Price 8faa3f1dea MFC: remove debug message 1998-05-24 03:26:32 +00:00
Steve Price 3e4fc7e650 MFC: document the '-s' commandline option. 1998-05-24 03:13:00 +00:00
Daniel O'Callaghan d5586588a8 PR: 6721
Submitted by:	[email protected]
De-capitalise day/month names.
1998-05-23 11:36:55 +00:00
Dag-Erling Smørgrav a2fbc4d7b8 MFC: precise identification of models within the 586 and 686 families. 1998-05-22 22:18:45 +00:00
Joseph Koshy e84e0e513d MFC: {r1.15 find.1; r1.11 locate.1; r1.5 whereis.1; r1.11 which.1} Add
cross references for find(1), locate(1), whereis(1), which(1).
1998-05-22 11:03:39 +00:00
Joseph Koshy 23aed28a31 MFC: {r1.8} Replace reference to obsolete sigvec(2) with sigaction(2). 1998-05-22 10:50:26 +00:00
Joseph Koshy 1f05bcd029 MFC: {r1.17} Remove self-reference to sigaction(2). 1998-05-22 10:47:41 +00:00
Joseph Koshy f794d7b72e MFC: {r1.10} Improve description of absolute modes. 1998-05-22 10:41:45 +00:00
Joseph Koshy a19f80c311 MFC: {r1.5} Remove reference to obsolete file "README.iBCS2". 1998-05-22 10:29:39 +00:00
Joseph Koshy 61dbde6cd1 MFC: Remove `sigmask()' reference from synopsis. {from r1.6} 1998-05-22 10:01:46 +00:00
Joseph Koshy 2abaeea173 MFC: remove claim about login.conf not being used, reference pw(8)
{from r1.19}
1998-05-22 09:46:17 +00:00
Joseph Koshy b610f0484c MFC: use correct login.conf(5) capability (from r1.20) 1998-05-22 09:38:23 +00:00
Joseph Koshy 13bb7b9673 MFC: warn about interaction of S/Key and login(1) for users without
S/Key passwords.
1998-05-22 09:23:31 +00:00
Joseph Koshy 712a73e5eb MFC: allow `w' to treat a corrupted "utmp" as a non-fatal error. 1998-05-22 09:09:29 +00:00
Joseph Koshy b140eb280d .if defined(cleandepend) -> .if target(cleandepend)
Already fixed in -current where "bsd.dep.mk" handles dependencies.

PR: 6132
1998-05-21 12:34:08 +00:00
James Raynard 0d6d26445e Fix typo in prompt. 1998-05-20 22:23:16 +00:00
Justin T. Gibbs de334427d2 Fix bogus test that prevented NFS roots from working.
Submitted by:	Werner Griessl <[email protected]>
1998-05-20 19:32:10 +00:00
Bill Paul 9e4e7b6054 Merge from current: check only for zero-length record sizes. 1998-05-20 16:00:33 +00:00
Peter Wemm a6d2b31c56 MFC: rev 1.61; selectively enforce file owner permissions rather than
always ignore them.
1998-05-20 11:36:37 +00:00
Peter Wemm e819e61bd4 MFC: rev 1.43, 1.60-1.62 - sanity check flags at mount time 1998-05-20 08:12:14 +00:00
Matthew Hunt e67cead019 MFC: Default to USA to prevent syntax errors. Add rcsid. 1998-05-20 05:44:14 +00:00
Matthew Hunt 1a6d720884 MFC: Add bsd.locale.mk to un-break (or at least break differently)
ports-building.
1998-05-20 04:58:08 +00:00
Jordan K. Hubbard 641b786f0a MFC: nuke distfiles before packing ports. 1998-05-20 01:08:41 +00:00
Brian Somers 2d039c6cc8 MFC: Close forgotten descriptor.
PR: 6690
     Submitted by: Ruslan Ermilov <[email protected]>
1998-05-19 21:50:47 +00:00
Peter Hawkins 6bb8f59ee3 PR: misc/6031
Patch applied as per PR - enables preferential fetch from local mirrors
1998-05-19 13:48:39 +00:00
cvs2svn 28585dd79d This commit was manufactured by cvs2svn to create branch 'RELENG_2_2'. 1998-05-19 13:14:12 +00:00
Daniel O'Callaghan 929aae7785 MFC: document -q when zeroing. 1998-05-19 12:56:10 +00:00
David E. O'Brien 6cb66086a5 MFC rev 1.35 1998-05-19 11:16:41 +00:00
Kazutaka YOKOTA 52316cb669 MFC: merge fix from syscons.c 1.258.
PR: bin/5899, bin/5907, i386/6542, kern/6566
1998-05-19 09:30:42 +00:00
Guido van Rooij dcfa7b888e MFC: mental disease correction 1998-05-18 17:12:44 +00:00
Guido van Rooij 33cda32e1c MFH: parenthesis and a bug fix 1998-05-18 17:08:29 +00:00
Bill Paul 2172e2dd1e Merge RPC DoS attack fixes from current. 1998-05-18 16:15:26 +00:00
Andrey A. Chernov e425bd5ea4 MFC: 1) back out UTC fix, 2) fix INTERNAL_LS to sense /etc/localtime 1998-05-18 00:07:15 +00:00
Jonathan M. Bresler 8d59e16612 replaced check_rcpt ruleset with one
recommended by Gary Palmer <[email protected]>
Obtained from: http://www.informatik.uni-kiel.de/%7Eca/email/check.html#check_rcpt
1998-05-17 23:14:05 +00:00
Jonathan M. Bresler 8ba2edb1db replaced check_rcpt ruleset with one
recommended by Gary Palmer <[email protected]>
Obtained from: http://www.informatik.uni-kiel.de/%7Eca/email/check.html#check_rcpt
1998-05-17 22:58:51 +00:00
Justin T. Gibbs db89da9393 MFC - Only include if NEISA > 0. 1998-05-17 21:07:37 +00:00
Bill Fenner a133c12535 MFC: set TCP_NODELAY to improve throughput.
PR:		bin/6646
1998-05-17 06:41:36 +00:00
Andrey A. Chernov c3d9cb0e86 MFC: return back initial tzset() 1998-05-16 21:29:20 +00:00
KATO Takenori 2308e29ba2 MFC: revision 1.106 (reboot mode setting). 1998-05-16 14:47:46 +00:00
Justin T. Gibbs 7672e8959a MFC - convert to new bufq functions. 1998-05-15 22:21:31 +00:00
Andrey A. Chernov 8d3f9906c5 MFC: NULL pointer in vidattr 1998-05-15 21:38:12 +00:00
David E. O'Brien 408c25a375 MFC rev 1.34 1998-05-15 21:18:59 +00:00
Andrey A. Chernov 64374b70af MFC: return vfork back + array range termination 1998-05-15 16:53:45 +00:00
Andrey A. Chernov cb277ac3c8 MFC: use fork vs. vfork 1998-05-15 16:30:46 +00:00
Andrey A. Chernov dafa9879c0 MFC: move TZ="" before exec 1998-05-15 16:09:38 +00:00
Andrey A. Chernov a7e1dce45e MFC:
Do TZ= as first thing, since FTP protocol is unable to tell zone offset in
any case.

It makes no difference for anon account (since chroot already makes it GMT),
but if you do mirror with special non-anon login, in old variant
your mirror will be wholy retransmitted twice in the year due to
time zone changes (/etc/localtime plays bad role here)
1998-05-15 15:08:05 +00:00
Daniel O'Callaghan adeccdae56 PR: 6641
Submitted by:	Andre Albsmeier <[email protected]>
Fix -q flag when zeroing a specific rule.
1998-05-15 12:33:37 +00:00
Bruce Evans 23ebbd6970 MFC (1.176: removed share/info from build-tools).
PR:		6138
Tested by:	Andre Albsmeier <[email protected]>
1998-05-15 10:16:20 +00:00
Justin T. Gibbs 72cd9b52e1 Fix EISA interrupt registration and release. 1998-05-15 03:13:50 +00:00
Julian Elischer 50c7e17a79 Tree repair:
This file was not on the RELENG_2_2 branch because RELENG_2_2
was a REVISION tag and not a branch tag.
This happenned at 1.3 consequently, 2.2.5 and 2.2.6
were both released with shar.sh stuck at 1.3 from the mainline.
1.3 was the HEAD so that was ok I guess.
I've made a RELENG_2_2 branch again
and done a merge from current on it,
so nothing should change, except that
cvs update -rRELENG_2_2 -D"May 1" should now produce the right result again.
This was teh only thing stopping cvs update -rRELENG_2_2 -D"May 1"
from checking out a whole historical freebsd 2.2.x tree as of
some specific date.
1998-05-14 00:37:30 +00:00
Justin T. Gibbs 412643fd6d MFC - Fix bogus "cleanup" of bufq_remove(). 1998-05-13 16:06:09 +00:00
Daniel O'Callaghan 0646dedea9 PR: 6466
Submitted by:	Ruslan Ermilov
MFC: Add SIOIFFLAGS handler.
1998-05-13 11:19:05 +00:00
Thomas Gellekum 645f328369 MFC: Translate some traps to SIGSEGV instead of SIGBUS when running under
Linux emulation.
1998-05-13 07:04:54 +00:00
Peter Wemm d1639eab00 MFC: rev 1.25; re-aquire vnode during sillyrename cleanup since we can
block and something else might malloc the same space.

PR: 6611
Submitted by: Stephen Clawson <[email protected]>
1998-05-13 06:15:36 +00:00
Peter Wemm 6e7ee0c1b0 MFC: rev 1.85; initialize *vpp earlier for -o ro nfs mounts.
PR: 1856
Submitted by: [email protected]
1998-05-13 05:48:45 +00:00
Justin T. Gibbs 35e9f60480 MFC - DPT driver from current. 1998-05-12 19:59:31 +00:00
Justin T. Gibbs cceaff95bb Add entries for dpt_eisa.c. Upgrading to the current version of
the DPT driver gave us EISA support.

dpt_eisa.[ch] have been branch tagged into RELENG_2_2.
1998-05-12 19:59:07 +00:00
Justin T. Gibbs 5a6cc9f5b8 MFC - Upgrade to -current's DPT driver. This seems to clear up the problems
reported with the older driver using the CAM SWI mechanism.

      Tested on a PM3224.

      Remove last vestige of the DPT SWI code.
1998-05-12 19:57:31 +00:00
Guido van Rooij 4f671d7bcd MFC: disables TAO for those services that do not know about T/TCP 1998-05-12 19:33:23 +00:00
Bruce Evans ac1a1af858 Fixed merge error in previous commit. 1998-05-12 16:35:25 +00:00
Wolfram Schneider 96e16e6318 MFC: add NetBSD 1.3.2 1998-05-12 14:34:54 +00:00
Masafumi Max NAKANE aa3eed96a7 MFC: Give default value to xntpd_flags. 1998-05-12 10:53:51 +00:00
Wolfram Schneider df0364737a MFC: Add FreeBSD 2.2.7, FreeBSD 2.2.8, NetBSD-1.3.1. 1998-05-12 08:06:16 +00:00
Justin T. Gibbs 7cbb9e7329 MFC - Fix termination test in CIRCLEQ_FOREACH. 1998-05-12 03:57:26 +00:00
Julian Elischer b35e3fd591 Oops wrong branch 1998-05-11 19:21:47 +00:00
Julian Elischer 966bc22633 Submitted by: Andrzej Bialecki <[email protected]>
Minor fix to support SLICE in MFS..
1998-05-11 19:18:44 +00:00
Jordan K. Hubbard c7e75e4336 MFC: add -u (unlink) flag. 1998-05-11 13:03:28 +00:00
Steve Price 763e66fe44 MFC: spelling error 1998-05-11 03:45:52 +00:00
Steve Price 652358464f MFC: NBPG -> PAGE_SIZE 1998-05-11 03:42:44 +00:00
Jordan K. Hubbard 490ad6c767 MFC: update scd and mcd drivers as well in accordance with PR#6567 1998-05-11 00:50:12 +00:00
Jordan K. Hubbard 2808685fc2 MFC: use `a' device for matcd.
Submitted by:   Dave Marquardt <[email protected]>
1998-05-11 00:45:38 +00:00
Tim Vanderhoek e5afe1bbd6 Remove stray line from the manpage.
Fix usage().
Fix someone's fix to comment typo I just fixed in -current (s/time/trim/).
1998-05-10 19:00:46 +00:00
Steve Price f18e98762e MFC: typo fix 1998-05-10 16:36:47 +00:00
Dag-Erling Smørgrav 78878b5fb8 MFC (small bug in previous fix) 1998-05-09 08:56:41 +00:00
Dag-Erling Smørgrav 5a151dc465 MFC (translate leading / in -c argument to %2f)
PR:		bin/6558
1998-05-09 08:50:03 +00:00
Bill Fenner aefa67d3f6 Merge FTP URL documentation from current. (The code change
was merged a long time ago.)
1998-05-09 07:35:13 +00:00
Justin T. Gibbs 4b1b5f0c80 MFC - Use new buf queue macros. 1998-05-08 15:54:10 +00:00
Masafumi Max NAKANE 6ee19db093 MFC: Typo fix.
Pointed out by:	Brian Reichert <[email protected]>
PR:		6480
1998-05-08 14:49:24 +00:00
John-Mark Gurney 2601736e6d MFC: rev1.9 for log 1998-05-07 23:46:37 +00:00
Justin T. Gibbs 83a78fed8e MFC - Convert to new buf queue macros. 1998-05-07 22:47:08 +00:00
Justin T. Gibbs f33c2f1179 MFS - Convert to using new buf queue functions. 1998-05-07 19:04:15 +00:00
Thomas Gellekum a215beeb4a MFC: clean up in the child, not the parent. 1998-05-07 07:25:43 +00:00
Julian Elischer 3bcff1d67d Reviewed by: phk
Submitted by:	[email protected]
MFC:	bring up to 1.30
1998-05-06 22:46:54 +00:00
Justin T. Gibbs 842e8a5143 MFC - buf queue changes for PC98. 1998-05-06 20:12:33 +00:00
Justin T. Gibbs 68d5aaad30 The dpt driver is now standard equipment. 1998-05-06 20:07:25 +00:00
Justin T. Gibbs 491263fec4 Clean up some compile warnings. The diff looks much worse than what I did.
Some inline function definitions were moved so they would be in scope when
called (so they could be inlined), and some code was rearranged to ensure
that variables where initialized before being used.
1998-05-06 20:07:07 +00:00
Justin T. Gibbs 7dfc9a6c3c MFC - subr_autoconf.c is now mandatory (for config hooks). 1998-05-06 20:05:49 +00:00
Justin T. Gibbs 766e63f64b Add CAM interrupt support. 1998-05-06 19:32:16 +00:00
Justin T. Gibbs d43907184d Small change in DDB function code to deal with new definition of TAILQ_PREV. 1998-05-06 19:16:42 +00:00
Justin T. Gibbs 951224d030 MFC - bufqdisksort replaces tqdisksort. 1998-05-06 19:16:03 +00:00
Justin T. Gibbs acb1b3e7e7 buf.h:
MFC - Add new buf queue routines.

device.h:
kernel.h:
param.h:
systm.h:
	MFC - Interrupt driven config hook support.

disklabel.h
	MFC - bufqdisksort replaces tqdisksort.

queue.h:
	MFC.
1998-05-06 19:15:49 +00:00
Justin T. Gibbs b062f88fb6 Convert to new buf queue routines. 1998-05-06 19:12:45 +00:00
Justin T. Gibbs 2541c81d15 Add support for extracting the bus, device, and function from a pcici_t. 1998-05-06 19:12:28 +00:00
Justin T. Gibbs 0ad1b36eac Remove bogus DPTOPT code. 1998-05-06 19:12:03 +00:00
Justin T. Gibbs 21f0ce2d9e Remove DPT SWI code. unifdef DPTOPT. 1998-05-06 19:11:46 +00:00
Justin T. Gibbs 15c7e8bf52 init_main.c:
kern_shutdown.c:
subr_autoconf.c:
	MFC - Add interrupt driven config hook mechanism and split out
	      mountroot and dumpconf.

vfs_bio.c:
	Cleanup B_ORDERED buffer handling.
1998-05-06 19:10:59 +00:00
Justin T. Gibbs 186af8fda4 MFC - Convert to using new buf queue fucntions. 1998-05-06 19:09:34 +00:00
Justin T. Gibbs 46c8a44a4c MFC
fd.c:
mcd.c:
scd.c:
wcd.c:
wd.c:
wfd.c:
	Convert to using new buf queue fucntions.

icu.s:
isa.c:
isa_device.h:
vector.s:
	Remove DPT SWI code.  Add CAM SWI code.

sio.c:
	Remove bogus DPTOPT code.

pcibus.c:
	Add functions for extracting the bus, device, and function
	from old style pcici_ts.
1998-05-06 19:09:16 +00:00
Justin T. Gibbs c41baf82a2 MFC
cpufunc.h:
	const poisening.

md_var.h:
	Add definitions of busdma_swi() and swi_vm().
	Remove DPT SWI code.

trap.c:
	Add CAM SWI mechanism, remove DPT SWI mechanism.

spl.h:
	Remove DPT SWI mechanism - add cam SWI mechanism.

bus.h:
bus_memeio.h:
bus_pio.h:
	Add bus space and bus dma code.
1998-05-06 19:06:41 +00:00
Justin T. Gibbs 4064fa406c MFC
autoconf.c:
	Add interrupt driven config hook mechanism.
	Split out mountroot and dumpconf code so it occurs after
	config hooks run.

machdep.c:
	Clean out old DPT SWI mechanism.

trap.c:
	Add CAM SWI mechanism, remove DPT SWI mechanism.

userconfig.c:
	Remove DPTOPT.  The dpt driver is now standard.

vm_machdep.c:
	Add the VM SWI with hooks to call the bus dma code.

busdma_machdep.c:
	Add bus dma functionality.

Interrupt specification and attach changed to allow shared interrupts.
Shared EISA interrupts don't work in -stable though because we need the
new interrupt code from current.

Match routines now deal with const strings.
1998-05-06 19:04:14 +00:00
Justin T. Gibbs 2af84c38f6 MFC - Eisaconf interface changes.
Interrupt specification and attach changed to allow shared interrupts.
Shared EISA interrupts don't work in -stable though because we need the
new interrupt code from current.

Match routines now deal with const strings.
1998-05-06 18:58:53 +00:00
Justin T. Gibbs c5f92dcd0b Add busdma interfaces to -stable. 1998-05-06 18:55:52 +00:00
Justin T. Gibbs 014691e9da Switch to using the CAM SWI interface. 1998-05-06 18:55:27 +00:00
Andreas Klemm 4c616886db MFC: xxx_prog -> xxx_program, overlooked this new style of var names.
backout last change "named_prog"
1998-05-06 17:43:01 +00:00
Andreas Klemm 7925bd10e5 MFC: document ntpdate_prog and xntpd_prog
fix: named_program -> named_prog
1998-05-06 17:30:34 +00:00
Dag-Erling Smørgrav 218fcb2a12 MFC (submitter says the patch to current is working fine)
PR:		bin/6522
Submitted by:	Rudolf Cejka
1998-05-06 11:09:54 +00:00
Mike Smith ea685a9504 MFC - updates to handle files outside i386/
Submitted by:	Daniel O'Connor <[email protected]>
1998-05-06 05:46:16 +00:00
cvs2svn c880d1c3fb This commit was manufactured by cvs2svn to create branch 'RELENG_2_2'. 1998-05-06 01:45:56 +00:00
Andreas Klemm cecdd31889 Merged in changes from current
config option to specify the path for ntpdate and xntpd program
1998-05-05 21:39:44 +00:00
Steve Price 11a7f3f908 MFC: make -> ${MAKE}
Ok'd by:	Satoshi
1998-05-04 09:15:06 +00:00
KATO Takenori 05946bf5d1 MFC: Added amd controller. 1998-05-04 08:49:48 +00:00
Martin Cracauer 3a411d362a MFC: When calling a shell function, remember whether exit status is tested.
This is needed for the '-e' option. See the PR for more details.
PR:		6047
1998-05-04 07:25:58 +00:00
Steve Price d6ee2c7ee0 MFC: clarify use of 'if' capability. 1998-05-04 02:41:38 +00:00
KATO Takenori 721471916a Sync with sys/i386/isa/wd.c revision 1.119.2.11.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-05-04 00:59:32 +00:00
KATO Takenori 4dacc0a232 Sync with sys/i386/conf/majors.i386 revision 1.9.2.10.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-05-04 00:58:33 +00:00
Steve Price 5353beeaf1 MFC: be picky about commandline and coverup a compiler warning. 1998-05-03 23:24:09 +00:00
Steve Price 06dd32898a MFC: remove invalid .Xr trsp 8 1998-05-03 21:36:05 +00:00
Jean-Marc Zucconi 7d05e404d9 MFC: restore exit.c 1998-05-03 20:25:07 +00:00
Steve Price 22d60b9d4d MFC: typo fixes. 1998-05-03 17:59:52 +00:00
Steve Price fbb7ff7788 MFC: Support for reading 'if' file from /etc/gettytab.
PR:		6492
Submitted by:	Doug White <[email protected]>
1998-05-03 16:33:34 +00:00
Peter Wemm b879286ad4 Update 2.2 from bind 4.9.6 to 4.9.7-t1b 1998-05-02 15:56:49 +00:00
Peter Wemm 0dfaae48fe Merge 4.9.7-t1b changes from current. 1998-05-02 15:54:12 +00:00
Jordan K. Hubbard 8289d13071 MFC: PR#5704
The logic in tape.c:getfile() doesn't allow for a filesystem
        with a blocksize smaller than the tape block size. The problem
        seems to be most easily fixed by changeing where fssize is set.
1998-05-02 09:19:51 +00:00
KATO Takenori 5850744002 MFC: 1.44MB floppy support. 1998-05-02 02:06:53 +00:00
Alexander Langer d27e66afe9 MFC (rev 1.19): strengthen rules for the 127.0.0.0/8 subnet & guarantee
that the lo0 rules appear first.
1998-05-01 16:28:03 +00:00
Dag-Erling Smørgrav 2f7ed923c1 MFC: don't delete man pages with colons in their name
PR:		bin/5439
Submitted by:	Martin Kammerhofer [email protected]
1998-05-01 13:30:14 +00:00
John Birrell 2d8951a051 MFC: Fix incremental priority increment.
PR: bin/6467 Marino Ladavac <[email protected]>
1998-04-30 22:26:30 +00:00
Peter Wemm 7208f7da58 MFC: euid flip while accessing home directory early to get to .login_cap
and to be able to chdir() on NFS served homes without root read access.
1998-04-30 16:52:31 +00:00
Andrey A. Chernov fa41e8ecbe MFC: LC_MESSAGES 1998-04-30 16:50:34 +00:00
Andrey A. Chernov 2135867696 MFC: LC_MESSAGES, fixes 1998-04-30 16:49:02 +00:00
Thomas Gellekum 64824728db MFC part 5: Fix recursion problem which occurs when a signal is received
during a malloc. The signal handler creates a thread which requires a malloc...
For now, the only thing to do is to block signals.
1998-04-30 07:53:36 +00:00
Thomas Gellekum 52a33963d4 MFC part 4: pthread_yield() was renamed to sched_yield() in the
POSIX thread standard.

sched.h is John's version, needed for the prototype.
1998-04-30 06:59:27 +00:00
Andreas Klemm 562dd54075 MFC: correct spelling of UltraStor and ULTRA SCSI hostadapters
PR:		6447
1998-04-29 22:47:11 +00:00
KATO Takenori 591bb8b4b1 MFC: sync with NetBSD/pc98 based on NetBSD/i386 version 1.3G
patchlevel 117.

Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-04-29 15:39:47 +00:00
Dag-Erling Smørgrav 298ca8e363 Remove keyboard droppings 1998-04-28 17:26:32 +00:00
Daniel O'Callaghan 07aff0ee33 Spelling police. 1998-04-28 13:49:50 +00:00
Dag-Erling Smørgrav 0603e2d515 Fixed erroneous spelling of "fictitious" in diagnostics and comments.
PR:		kern/6429
1998-04-27 11:39:05 +00:00
Jordan K. Hubbard a2bf7e60fb MFC: retire sup just a wee bit more. 1998-04-26 08:40:48 +00:00
Jordan K. Hubbard 922bdb6089 Add the whatis database to catpages too 1998-04-26 08:34:26 +00:00
Brian Somers 9c3bdda794 MFC: Quieten gcc-2.8.1 1998-04-25 09:17:50 +00:00
Brian Somers 27cf02b4cf MFC: Fix diagnostic. 1998-04-25 00:21:52 +00:00
David E. O'Brien b1ce4b344f MFC rev 1.44/45 (MAXPARTITIONS) 1998-04-24 11:52:31 +00:00
David Greenman e321b3e873 MFC: tcp_var.h/1.43 & tcp_timer.c/1.28: bugfix for PR#6068 - connections
timing out too quickly.
1998-04-24 09:32:43 +00:00
John Birrell 53beafafc2 (Almost) MFC: -pthread argument links against libc_r instead of libc. 1998-04-24 07:46:30 +00:00
Thomas Gellekum 6cef80226a MFC part 3: After fork(), only the calling thread survives in the child. 1998-04-24 07:09:57 +00:00
Dag-Erling Smørgrav c5820a69f3 There is no "rwho" service, it's "who"
PR:		bin/6396
Submitted by:	Ruslan Ermilov <[email protected]>
1998-04-23 19:12:41 +00:00
Thomas Gellekum 327f2d0a90 MFC part 2: Static initializers for mutexes and condition variables. 1998-04-23 08:21:56 +00:00
Paul Traina ca455cf9d7 Back out last commit. 1998-04-23 04:43:26 +00:00
Eivind Eklund b3f7f293ee Fix buffer overflow (that was supposedly previously fixed). This
problem is not present in -current.

Submitted by:	Niall Smart <[email protected]>
1998-04-22 23:00:59 +00:00
Thomas Gellekum b5d1606c18 MFC part 1: Safety belts for code written for older drafts of
the POSIX threads standard.
1998-04-22 09:11:53 +00:00
Paul Traina 2a15cb9a8f MFC: Convert cabs/cabsf definitions to proper prototypes.
[make world soon to follow]
1998-04-22 06:27:52 +00:00
Brian Somers d93e123f62 Back out the removal of psignal() and sys_siglist as
it's not appropriate in this branch.
Suggested by:	bde
1998-04-22 01:48:34 +00:00
Eivind Eklund 67028271f1 MFC: Fix flag spec. 1998-04-21 23:26:21 +00:00
John Polstra 871334506e Merge from main branch 1.5 -> 1.6: Fix forward referenced linker sets. 1998-04-21 04:40:44 +00:00
John Birrell 754bfb6067 MFC: Add entry for gnats-supfile. 1998-04-21 01:39:24 +00:00
Brian Somers d7509ec6d4 MFC: Remove psignal & sys_signlist decls. 1998-04-21 01:04:18 +00:00
Dima Ruban b35f2c2f9a MFC: indent 1998-04-20 22:15:19 +00:00
Bruce Evans 03ffc533f0 MFC (1.8 plus conflicting cosmetic changes from Lite2: don't check
multiple slices on the same drive concurrently for `fsck -p', etc.).

PR:		6129
1998-04-20 16:28:07 +00:00
Bruce Evans 477a48941c YAMFC (don't build files at install time). This should finish fixing
installing from readonly object trees in 2.2 and -current.

Submitted by:	Arne Henrik Juul <[email protected]>
PR:		6330
1998-04-20 15:40:58 +00:00
Bruce Evans b4196747f4 Don't build files at install time.
Submitted by:	Arne Henrik Juul <[email protected]>
PR:		6330
1998-04-20 15:38:54 +00:00
Nate Williams 6c35d1f02a MFC:
- gcc -ansi cleanups
- Don't clear registers
- misc. white-space cleanups
- Made the fake interrupt routine into a real routine

The latter shouldn't be necessary, since interrupts are disabled the entire
time the fake interrupt routine is active, but is provided until we can
figure out what's going on.
1998-04-20 15:05:09 +00:00
Bruce Evans 0732efb715 YAMFC (1.10-1.11: don't generate neqn at install time, etc.)
Submitted by:	Arne Henrik Juul <[email protected]>
PR:		6330
1998-04-20 15:04:36 +00:00
Jordan K. Hubbard b3af28516a MFC: using linux plip. 1998-04-20 06:18:47 +00:00
Nate Williams 92d33529c7 - Whoops, my previous fix was incomplete. Finish up the 'looping' bug.
Obtained from:	PAO
1998-04-20 05:41:30 +00:00
John Polstra 2e167ceaa6 Eliminate compiler warnings. I modified the submitted patch a
little, primarily by changing the white space.  This aligns the
fix with changes that have already been made in -current, and will
simplify future merges from the main branch.

PR:		bin/6328
Reviewed by:	jdp
Submitted by:	[email protected] (Chia-liang Kao)
1998-04-19 23:01:27 +00:00
Nate Williams ad14096ab5 MFC: Don't spin forever with invalid/unexpected tuples. 1998-04-19 18:42:44 +00:00
Bruce Evans 3baeebae3c MFC (1.55: don't generate osreldate.h at install time).
Submitted by:	Arne Henrik Juul <[email protected]>
PR:		6330
1998-04-19 13:34:48 +00:00
Bruce Evans 26f8db6806 YAMFC (1.15: don't generate files at install time, etc.).
Submitted by:	Arne Henrik Juul <[email protected]>
PR:		6330
1998-04-19 13:06:43 +00:00
David E. O'Brien 1b1c081827 NO_LIBC_R --> NOLIBC_R to match -CURRENT. 1998-04-19 09:11:23 +00:00
David E. O'Brien 1bee748688 MFC rev 1.6
(everything but the -pthreads option applies, and I hope that will be fixed
RSN)
1998-04-19 09:04:18 +00:00
David E. O'Brien f25ab3f571 [2nd's a charm]
MFC (reduce diff w/-CUR, with hopes of getting DMA support into -STABLE)
1.128   (FUNCTIONAL: better sleep handling)
1.131   (STYLE: labels w/o stmt)
1.132   (STYLE: remove unused #includes)
1.141   (FUNCTIONAL: devfs bug, 2nd controler not showing)
1.144   (STYLE: dont shadow other vars)
1.150   (FUNCTIONAL: fix search bug)
1998-04-19 08:47:42 +00:00
Nate Williams a0683e0cdd MFC: rdattr function added. 1998-04-18 23:35:32 +00:00
Nate Williams d2c864a65a MFC:
- pccard/card.h -> pccard/cardinfo.h
- Addition of rdattr to pccardc
- cleanups
- Breakout cardd.c into pccardd.c and cardd.c
1998-04-18 23:28:52 +00:00
Nate Williams 6d742d26b6 [ Whoops, forgot about non-x86 stuff]
MFC: pccard/card.h -> pccard/cardinfo.h
1998-04-18 23:27:06 +00:00
Nate Williams 7408e84fc6 MFC: pccard/card.h -> pccard/cardinfo.h 1998-04-18 23:25:14 +00:00
KATO Takenori c97edb527a Sync with sys/i386/isa/syscons.c revision 1.182.2.32.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-04-18 15:46:25 +00:00
KATO Takenori e30252b5ca Sync with sys/i386/i386/userconfig.c revision 1.48.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-04-18 15:45:27 +00:00
Gene Stark 55e902f9e2 PR: misc/4679
Submitted by:	Glen Foster ([email protected])
Merge from -current.
1998-04-18 13:43:09 +00:00
David E. O'Brien 20aea8afdc Add mktemp(1) from current. 1998-04-18 10:56:48 +00:00
David E. O'Brien 4a3285b44e Make bulding libc_r the default. This is useful for ports like mysql. 1998-04-18 09:34:05 +00:00
Julian Elischer 6e340edf00 hold a number (that matches -current) for ALTQ
remove duplicate DPT entry
1998-04-17 20:30:58 +00:00
Thomas Gellekum eb69720b0c MFC: when in PS_SIGWAIT state, still call signal handlers
and set errno to EINTR.
1998-04-17 11:22:26 +00:00
Dag-Erling Smørgrav 428c4cf8bf Merged in changes from current (comments about LC_ALL) 1998-04-17 10:54:04 +00:00
Andrey A. Chernov 3932765b29 MFC: add ftp4.ru 1998-04-16 13:58:18 +00:00
Andrey A. Chernov 736908cd90 MFC: XSI macros including attr_get 1998-04-15 23:14:35 +00:00
cvs2svn cd4cc56df0 This commit was manufactured by cvs2svn to create branch 'RELENG_2_2'. 1998-04-15 17:47:41 +00:00
Dag-Erling Smørgrav 6af47c09ec Swapped "should we just return" and "should we stop the screensaver"
in scrn_timer() to prevent deadlock when screensaver sets UNKNOWN_MODE.
1998-04-15 12:00:14 +00:00
Peter Wemm cdd7c9a25d MFC: don't generate potential shell or interpreter metacharacters when
doing character rotation while searching for unique names.
1998-04-15 03:11:37 +00:00
Jonathan M. Bresler 014865a885 rotate sendmail statistics file weekly.
keep the last ten weeks of data.
Submitted by:	jmb
1998-04-14 23:08:29 +00:00
Daniel O'Callaghan bf3ac0df12 PR: 4866
Submitted by:	fenner
Make manpage reflect reality.
1998-04-14 22:10:40 +00:00
KATO Takenori e736e9c249 MFC: Fix panic by probing NE2000 compatible PCI card. 1998-04-14 13:52:28 +00:00
Jonathan M. Bresler 3d7caa8c6a use extended error codes as noted in rfc1893.
retain additional message in check_relay ruleset,
	the message is written into the maillog.
	this is useful to a site's postmaster.
PR:		conf/6226
Reviewed by:	jmb
Submitted by:	Ruslan Ermilov [email protected]
1998-04-14 02:12:20 +00:00
Steve Price 8df3b5fcbf MFC: document use of sendmail options. 1998-04-14 01:00:35 +00:00
Steve Price 622a6a4113 MFC: don't let secs variable wrap. 1998-04-14 00:25:32 +00:00
Steve Price 21a695e665 Add MLINK for mkdtemp.3.
PR:		6291
Submitted by:	Niall Smart <rotel.indigo.ie>
1998-04-13 23:20:52 +00:00
Mike Smith ca35880b03 MFC - don't use INTR mixed with ACCEL.
Submitted by:	Satoh Junichi <[email protected]>
1998-04-13 17:49:30 +00:00
Bruce Evans 013feb26d2 Backed out previous commit. 07.lpd should be in 2.2, at least until
someone merges lpr/SMM.doc.
1998-04-13 14:57:40 +00:00
Bruce Evans 2c449f0911 Backed out previous commit again. 07.lpd should be in 2.2, at least
until someone merges lpr/SMM.doc.
1998-04-13 14:12:37 +00:00
Doug Rabson 4d1c414403 MFC: Fixes for using amd with non-NFSv3 servers and for choosing the right
address for a multihomed server.

PR:		bin/6231, bin/4678
1998-04-13 12:13:17 +00:00
Jordan K. Hubbard 1f3e0bf4cb remove bogus bugs section.
Submitted by:	Niall Smart <[email protected]>
1998-04-13 05:43:45 +00:00
John Polstra d7729627d4 Merge from main branch 1.8 -> 1.9: Add "fildll" and "fistpll" mnemonics. 1998-04-12 18:12:38 +00:00
Jordan K. Hubbard 5ac4756cd7 MFC: fix dependent loading by URL 1998-04-12 16:01:28 +00:00
KATO Takenori 75c4c34b81 Sync with sys/i386/conf/GENERIC revision 1.77.2.22.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-04-12 15:06:06 +00:00
KATO Takenori 28d3934047 Sync with sys/i386/conf/files.i386 revision 1.141.2.20.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-04-12 15:05:28 +00:00
KATO Takenori 920282a631 Sync with sys/i386/i386/machdep.c revision 1.209.2.22.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-04-12 15:04:45 +00:00
KATO Takenori 701ac83834 Sync with sys/i386/conf/GENERIC revision 1.77.2.21.
Submitted by:	NOKUBI Hirotaka <[email protected]>
1998-04-12 15:04:03 +00:00
Jordan K. Hubbard 162d7e2418 Just totally nuke 07.lpd - it shouldn't even be here.
Shown-the-error-of-my-ways-by:	bde
1998-04-12 06:24:38 +00:00
KATO Takenori 313b05c498 MFC (fix the problem when SCSI ID is not contiguous). 1998-04-12 04:49:12 +00:00
Peter Wemm 01b75c0024 Merge from HEAD; 'cvs update -j' cleanup mistake that probably caused the
stray /tmp files.
1998-04-11 16:15:12 +00:00
Peter Wemm 727ebe49ba YIKES!!!! I accidently committed experimental patches with the 2.2 cvs
update!  I don't think this would cause the stray /tmp file problem, but
this is not meant to be here yet.
1998-04-11 16:03:38 +00:00
Jordan K. Hubbard 1466d87eda Reenable lpd docs - they seem to build fine.
Prodded into action by:	Ruslan Ermilov <[email protected]>
1998-04-11 15:10:08 +00:00
Nate Williams 0b2b15452a - Whoops, better have the structure created before trying to use it in
the patch I just submitted.

Noticed by:	phk
1998-04-09 14:00:36 +00:00
Nate Williams b74bc82a00 MFC: Correctly unregister the interrupt from the system when probes fail. 1998-04-08 15:01:08 +00:00
Peter Wemm ce3cf99c46 Merge cvs from HEAD. 1998-04-05 03:29:11 +00:00
Peter Wemm 3aa7c0b523 Merge cvs from HEAD (contrib/cvs is in a seperate commit) 1998-04-05 03:22:30 +00:00
Daniel O'Callaghan f4061e06a4 Spelling police 1998-04-02 09:30:11 +00:00
Daniel O'Callaghan 6480260e65 PR: bin/6193
Submitted by:	Max Euston <[email protected]>
MFC: Make times 000-0059 and 1200-1259 display as 12:xx instead of 0:xx
1998-04-01 21:38:57 +00:00
Dima Ruban 065d7a1c62 MFC: new variable NOSUIDPERL 1998-04-01 21:09:31 +00:00
Dima Ruban 3b1dc8dc11 MFC: don't compile sperl in NOSUIDPERL defined 1998-04-01 21:08:11 +00:00
Jordan K. Hubbard 97a8168533 Set NOSHARED - if we do a make install from here, we want the
version in /stand to be static.
1998-04-01 15:18:24 +00:00
Mike Smith 63ea0e74a4 Fix misleading "changing root device to" typo. 'st' becomes 'sd' 1998-03-31 02:09:29 +00:00
Jordan K. Hubbard 2e9e189c7c PR#6135 1998-03-30 08:28:48 +00:00
David E. O'Brien f05810df70 MFC rev 1.20 1998-03-29 23:42:23 +00:00
Alexander Langer 6601a957c2 MFC (rev 1.79): Allow ICMP unreachable messages to be sent in response
to ICMP query packets.
1998-03-29 15:01:13 +00:00
Mark Murray 01269919af MFC: fix nasty typo/bug 1998-03-29 08:16:48 +00:00
Jordan K. Hubbard 734c0c19ef Adjust to note that we're back on the branch. 1998-03-28 03:00:50 +00:00
Kazutaka YOKOTA beb00ced8e - The PS/2 mouse driver, psm, is not disabled in the GENERIC
kernel anymore.  Oh, well, I thought I had updated all relevant
  docs regarding this point; I was wrong, apparently ;-<
- While I am here, brush up the description on the mse driver as well.
1998-03-27 03:10:20 +00:00
Stefan Eßer 6cb9e33bbb Add support for Compaq ProLiant 1200 host to PCI bridge 1998-03-26 22:28:42 +00:00
Peter Wemm a320c4932b Sigh. Restore additions spammed in previous commit. :-( Thanks guys! 1998-03-26 15:24:52 +00:00
Jordan K. Hubbard 0aac22672f Tree is now tagged so change branch to STABLE 1998-03-24 18:07:21 +00:00
1292 changed files with 85646 additions and 40436 deletions

No files matched your search

+30 -12
View File
@@ -1,15 +1,13 @@
#
# $Id: Makefile,v 1.109.2.24 1998/03/09 14:18:02 jkh Exp $
# $Id: Makefile,v 1.109.2.32 1998/06/29 10:15:32 jkh Exp $
#
# Make command line options:
# -DCLOBBER will remove /usr/include
# -DMAKE_KERBEROS4 to build KerberosIV
# -DALLLANG to build documentation for all languages
# (where available -- see share/doc/Makefile)
#
# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
# -DNOCLEAN do not clean at all
# -DNOTOOLS do not rebuild any tools first
# -DNOTOOLS do not rebuild any tools first
# -DNOCRYPT will prevent building of crypt versions
# -DNOLKM do not build loadable kernel modules
# -DNOOBJDIR do not run ``${MAKE} obj''
@@ -18,6 +16,7 @@
# -DNOGAMES do not go into games subdir
# -DNOSHARE do not go into share subdir
# -DNOINFO do not make or install info files
# -DNOLIBC_R do not build libc_r.
# -DNOPERL do not make or install perl
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
@@ -126,8 +125,8 @@ CLEANDIR= cleandir
.endif
.endif
SUP?= sup
SUPFLAGS?= -v
SUP?= cvsup
SUPFLAGS?= -g -L 2 -P -
#
# While building tools for bootstrapping, we dont need to waste time on
@@ -345,7 +344,7 @@ reinstall:
update:
.if defined(SUP_UPDATE)
@echo "--------------------------------------------------------------"
@echo "Running sup"
@echo "Running ${SUP}"
@echo "--------------------------------------------------------------"
@${SUP} ${SUPFLAGS} ${SUPFILE}
.if defined(SUPFILE1)
@@ -526,14 +525,14 @@ lib-tools:
usr.bin/tsort \
gnu/usr.bin/as \
gnu/usr.bin/bison \
gnu/usr.bin/cc \
usr.bin/ar \
usr.bin/compile_et \
usr.bin/lex/lib \
usr.bin/mk_cmds \
usr.bin/nm \
usr.bin/ranlib \
usr.bin/uudecode
usr.bin/uudecode \
gnu/usr.bin/cc
cd ${.CURDIR}/$d && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
@@ -553,6 +552,16 @@ libraries:
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib/libc)
cd ${.CURDIR}/lib/libc && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib/libmytinfo)
cd ${.CURDIR}/lib/libmytinfo && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib/libncurses)
cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
@@ -594,6 +603,13 @@ libraries:
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
# Exclude perl from the build-tools if NOPERL is defined.
.if defined(NOPERL)
_perl=
.else
_perl= gnu/usr.bin/perl/perl
.endif
#
# build-tools - build and install any other tools needed to complete the
# compile and install.
@@ -619,7 +635,6 @@ build-tools:
bin/mkdir \
bin/mv \
bin/rm \
bin/sh \
bin/test \
gnu/usr.bin/awk \
gnu/usr.bin/bc \
@@ -627,9 +642,10 @@ build-tools:
gnu/usr.bin/groff \
gnu/usr.bin/gzip \
gnu/usr.bin/man/makewhatis \
gnu/usr.bin/patch \
${_perl} \
gnu/usr.bin/sort \
gnu/usr.bin/texinfo \
share/info \
usr.bin/basename \
usr.bin/cap_mkdb \
usr.bin/chflags \
@@ -640,6 +656,7 @@ build-tools:
usr.bin/file2c \
usr.bin/find \
usr.bin/gencat \
usr.bin/id \
usr.bin/lorder \
usr.bin/m4 \
usr.bin/mkdep \
@@ -660,7 +677,8 @@ build-tools:
usr.bin/yacc \
usr.sbin/chown \
usr.sbin/mtree \
usr.sbin/zic
usr.sbin/zic \
bin/sh
cd ${.CURDIR}/$d && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
+4 -2
View File
@@ -1,5 +1,5 @@
This is the top level of the FreeBSD source directory. This file
was last revised on: $Id: README,v 1.7.2.1 1997/08/13 19:49:35 jkh Exp $
was last revised on: $Id: README,v 1.7.2.2 1998/02/15 10:47:57 jkh Exp $
For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
@@ -34,7 +34,7 @@ bin System/User commands.
contrib Packages contributed by 3rd parties.
eBones Kerberos package - NOT FOR EXPORT!
crypto Export controlled stuff (see crypto/README).
etc Template files for /etc
@@ -45,6 +45,8 @@ gnu Various commands and libraries under the GNU Public License.
include System include files.
kerberosIV Kerberos package - also export controlled.
lib System libraries.
libexec System daemons.
+16 -18
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)cat.1 8.3 (Berkeley) 5/2/95
.\" $Id: cat.1,v 1.6 1997/02/22 14:01:26 peter Exp $
.\" $Id: cat.1,v 1.3.2.2 1998/06/30 06:42:19 charnier Exp $
.\"
.Dd May 2, 1995
.Dt CAT 1
@@ -48,7 +48,7 @@
.Op Ar
.Sh DESCRIPTION
The
.Nm cat
.Nm
utility reads files sequentially, writing them to the standard output.
The
.Ar file
@@ -56,47 +56,44 @@ operands are processed in command line order.
A single dash represents the standard input.
.Pp
The options are as follows:
.Bl -tag -width Ds
.Bl -tag -width indent
.It Fl b
Implies the
.Fl n
option but doesn't number blank lines.
Number the non-blank output lines, starting at 1.
.It Fl e
Implies the
Display non-printing characters (see the
.Fl v
option, and displays a dollar sign
option), and display a dollar sign
.Pq Ql \&$
at the end of each line
as well.
at the end of each line.
.It Fl n
Number the output lines, starting at 1.
.It Fl s
Squeeze multiple adjacent empty lines, causing the output to be
single spaced.
.It Fl t
Implies the
Display non-printing characters (see the
.Fl v
option, and displays tab characters as
.Ql ^I
as well.
option), and display tab characters as
.Ql ^I .
.It Fl u
The
.Fl u
option guarantees that the output is unbuffered.
.It Fl v
Displays non-printing characters so they are visible.
Display non-printing characters so they are visible.
Control characters print as
.Ql ^X
for control-X; the delete
character (octal 0177) prints as
.Ql ^?
Non-ascii characters (with the high bit set) are printed as
.Pf Non- Tn ASCII
characters (with the high bit set) are printed as
.Ql M-
(for meta) followed by the character for the low 7 bits.
.El
.Pp
The
.Nm cat
.Nm
utility exits 0 on success, and >0 if an error occurs.
.Sh BUGS
Because of the shell language mechanism used to perform output
@@ -119,7 +116,8 @@ will cause the original data in file1 to be destroyed!
A
.Nm
command appeared in Version 1 AT&T UNIX.
Dennis Ritchie designed and wrote the first man page.
.An Dennis Ritchie
designed and wrote the first man page.
It appears to have been
.Xr cat 1 .
+55 -53
View File
@@ -30,6 +30,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $Id$
.\"
.Dd April 2, 1996
.Dt CHIO 1
.Os
@@ -61,49 +63,53 @@ rather than the default device
.El
.Pp
The default changer may be overridden by setting the environment variable
.Nm CHANGER
.Ev CHANGER
to the desired changer device.
.Pp
A medium changer apparatus is made up of
.Pa elements .
.Em elements .
There are four element types:
.Pa picker
.Em picker
(medium transport),
.Pa slot
.Em slot
(storage),
.Pa portal
.Em portal
(import/export), and
.Pa drive
.Em drive
(data transfer). In this command description, the shorthand
.Nm ET
.Em ET
will be used to represent an element type, and
.Nm EU
.Em EU
will be used to represent an element unit. For example, to represent
the first robotic arm in the changer, the ET would be
the first robotic arm in the changer, the
.Em ET
would be
.Dq picker
and the EU would be
and the
.Em EU
would be
.Dq 0 .
.Pp
.Sh SUPPORTED COMMANDS
.Nm chio move
.Bl -tag -width indent
.It Xo Nm chio move
.Ar <from ET> <from EU> <to ET> <to EU>
.Op Ar inv
.Pp
Moves the media unit from
.Xc
Move the media unit from
.Pa <from ET/EU>
to
.Pa <to ET/EU> .
If the optional modifier
.Pa inv
is specified, the media unit will be inverted before insertion.
.Pp
.Nm chio exchange
.It Xo Nm chio exchange
.Ar <src ET> <src EU> <dst1 ET> <dst1 EU>
.Op Ar <dst2 ET> <dst2 ET>
.Op Ar inv1
.Op Ar inv2
.Pp
Performs a media unit exchange operation. The media unit in
.Xc
Perform a media unit exchange operation. The media unit in
.Pa <src ET/EU>
is moved to
.Pa <dst1 ET/EU>
@@ -130,11 +136,10 @@ Note that not all medium changers support the
.Nm exchange
operation; The changer must have multiple free pickers or emulate
multiple free pickers with transient storage.
.Pp
.Nm chio position
.It Xo Nm chio position
.Ar <to ET> <to EU>
.Op Ar inv
.Pp
.Xc
Position the picker in front of the element described by
.Pa <to ET/EU> .
If the optional modifier
@@ -142,62 +147,59 @@ If the optional modifier
is specified, the media unit will be inverted before insertion.
.Pp
Note that not all changers behave as expected when issued this command.
.Pp
.Nm chio params
.Pp
.It Nm chio params
Report the number of slots, drives, pickers, and portals in the changer,
and which picker unit the changer is currently configured to use.
.Pp
.Nm chio getpicker
.Pp
.It Nm chio getpicker
Report which picker unit the changer is currently configured to use.
.Pp
.Nm chio setpicker
.It Xo Nm chio setpicker
.Ar <unit>
.Pp
.Xc
Configure the changer to use picker
.Pa <unit> .
.Pp
.Nm chio status
.It Xo Nm chio status
.Op Ar <type>
.Pp
.Xc
Report the status of all elements in the changer. If
.Pa <type>
is specified, report the status of all elements of type
.Pa <type> .
.El
.Pp
The status bits are defined as follows:
.Bl -tag -width indent
.It Nm FULL
.It FULL
Element contains a media unit.
.It Nm IMPEXP
.It IMPEXP
Media was deposited into element by an outside human operator.
.It Nm EXCEPT
.It EXCEPT
Element is in an abnormal state.
.It Nm ACCESS
.It ACCESS
Media in this element is accessible by a picker.
.It Nm EXENAB
Element supports passing media (exporting) to an outsite human operator.
.It Nm INENAB
.It EXENAB
Element supports passing media (exporting) to an outside human operator.
.It INENAB
Element supports receiving media (importing) from an outside human operator.
.El
.Pp
.Sh EXAMPLES
.Nm chio move slot 3 drive 0
.Pp
Moves the media in slot 3 (fourth slot) to drive 0 (first drive).
.Pp
.Nm chio setpicker 2
Configures the changer to use picker 2 (third picker) for operations.
.Pp
.Bl -tag -width indent
.It Nm chio move slot 3 drive 0
Move the media in slot 3 (fourth slot) to drive 0 (first drive).
.It Nm chio setpicker 2
Configure the changer to use picker 2 (third picker) for operations.
.El
.Sh FILES
/dev/ch0 - default changer device
.Bl -tag -width /dev/ch0 -compact
.It Pa /dev/ch0
default changer device
.El
.Sh SEE ALSO
.Xr mt 1 ,
.Xr ch 4 ,
.Xr mount 8 .
.Sh AUTHOR
.Xr mount 8
.Sh AUTHORS
The
.Nm chio
program and SCSI changer driver were written by Jason R. Thorpe
<[email protected]> for And Communications, http://www.and.com/
.Nm
program and SCSI changer driver were written by
.An Jason R. Thorpe Aq [email protected]
for And Communications, http://www.and.com/
+50 -24
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)chmod.1 8.4 (Berkeley) 3/31/94
.\" $Id: chmod.1,v 1.4.2.1 1997/02/28 07:54:25 mpp Exp $
.\" $Id: chmod.1,v 1.4.2.3 1998/05/22 10:41:45 jkoshy Exp $
.\"
.Dd March 31, 1994
.Dt CHMOD 1
@@ -51,7 +51,7 @@
.Ar file ...
.Sh DESCRIPTION
The
.Nm chmod
.Nm
utility modifies the file mode bits of the listed files
as specified by the
.Ar mode
@@ -82,7 +82,7 @@ Symbolic links do not have modes, so unless the
or
.Fl L
option is set,
.Nm chmod
.Nm
on a symbolic link always succeeds and has no effect.
The
.Fl H ,
@@ -99,39 +99,63 @@ Only the owner of a file or the super-user is permitted to change
the mode of a file.
.Pp
The
.Nm chmod
.Nm
utility exits 0 on success, and >0 if an error occurs.
.Sh MODES
Modes may be absolute or symbolic.
An absolute mode is an octal number constructed by
.Ar or-ing
the following values:
An absolute mode is an octal number constructed from the sum of
one or more of the following values:
.Pp
.Bl -tag -width 6n -compact -offset indent
.It Li 4000
set-user-ID-on-execution
( see
(the set-user-ID-on-execution bit) Executable files with this bit set
will run with effective uid set to the uid of the file owner.
Directories with the set-user-id bit set will force all files and
sub-directories created in them to be owned by the directory owner
and not by the uid of the creating process, if the underlying file
system supports this feature: see
.Xr chmod 2
for directories )
and the
.Ar suiddir
option to
.Xr mount 1 .
.It Li 2000
set-group-ID-on-execution
(the set-group-ID-on-execution bit) Executable files with this bit set
will run with effective gid set to the gid of the file owner.
.It Li 1000
sticky bit, see
.Xr chmod 2
(the sticky bit)
When set on a directory, unprivileged users can delete and rename
only those files in the directory that are owned by them, regardless of
the permissions on the directory. Under FreeBSD, the sticky bit is
ignored for executable files and may only be set for directories (see
.Xr sticky 8 ).
.It Li 0400
read by owner
Allow read by owner.
.It Li 0200
write by owner
Allow write by owner.
.It Li 0100
execute (or search for directories) by owner
.It Li 0070
read, write, execute/search by group
.It Li 0007
read, write, execute/search by others
For files, allow execution by owner. For directories, allow the owner to
search in the directory.
.It Li 0040
Allow read by group members.
.It Li 0020
Allow write by group members.
.It Li 0010
For files, allow execution by group members. For directories, allow
group members to search in the directory.
.It Li 0004
Allow read by others.
.It Li 0002
Allow write by others.
.It Li 0001
For files, allow execution by others. For directories allow others to
search in the directory.
.El
.Pp
The read, write, and execute/search values for group and others
are encoded as described for owner.
For example, the absolute mode that permits read, write and execute by
the owner, read and execute by group members, read and execute by
others, and no set-uid or set-gid behaviour is 755
(400+200+100+040+010+004+001).
.Pp
The symbolic mode is described by the following grammar:
.Bd -literal -offset indent
@@ -280,16 +304,18 @@ option for the naughty bits.
.Sh SEE ALSO
.Xr chflags 1 ,
.Xr install 1 ,
.Xr mount 1 ,
.Xr chmod 2 ,
.Xr stat 2 ,
.Xr umask 2 ,
.Xr fts 3 ,
.Xr setmode 3 ,
.Xr symlink 7 ,
.Xr chown 8
.Xr chown 8 ,
.Xr sticky 8
.Sh STANDARDS
The
.Nm chmod
.Nm
utility is expected to be
.St -p1003.2
compatible with the exception of the
+11 -11
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)cp.1 8.3 (Berkeley) 4/18/94
.\" $Id: cp.1,v 1.9 1997/02/22 14:01:32 peter Exp $
.\" $Id: cp.1,v 1.6.2.1 1997/02/28 07:54:27 mpp Exp $
.\"
.Dd April 18, 1994
.Dt CP 1
@@ -60,7 +60,7 @@
.Ar source_file ... target_directory
.Sh DESCRIPTION
In the first synopsis form, the
.Nm cp
.Nm
utility copies the contents of the
.Ar source_file
to the
@@ -72,7 +72,7 @@ is copied to the destination
.Ar target_directory .
The names of the files themselves are not changed.
If
.Nm cp
.Nm
detects an attempt to copy a file to itself, the copy will fail.
.Pp
The following options are available:
@@ -94,11 +94,11 @@ option is specified, no symbolic links are followed.
If
.Ar source_file
designates a directory,
.Nm cp
.Nm
copies the directory and the entire subtree connected at that point.
This option also causes symbolic links to be copied, rather than
indirected through, and for
.Nm cp
.Nm
to create special files rather than copying them as normal files.
Created directories have the same mode as the corresponding source
directory, unmodified by the process' umask.
@@ -112,8 +112,8 @@ option overrides any previous
.Fl i
options.)
.It Fl i
Causes
.Nm cp
Cause
.Nm
to write a prompt to the standard error output before copying a file
that would overwrite an existing file.
If the response from the standard input begins with the character
@@ -127,8 +127,8 @@ option overrides any previous
.Fl f
options.)
.It Fl p
Causes
.Nm cp
Cause
.Nm
to preserve in the copy as many of the modification time, access time,
file flags, file mode, user ID, and group ID as allowed by permissions.
.Pp
@@ -200,7 +200,7 @@ command's actions are determined by the last one specified.
exits 0 on success, >0 if an error occurred.
.Sh COMPATIBILITY
Historic versions of the
.Nm cp
.Nm
utility had a
.Fl r
option.
@@ -215,7 +215,7 @@ or fifo's.
.Xr symlink 7
.Sh STANDARDS
The
.Nm cp
.Nm
command is expected to be
.St -p1003.2
compatible.
+2 -1
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: cp.c,v 1.10 1996/03/08 06:58:06 wosch Exp $
* $Id: cp.c,v 1.10.2.1 1997/08/24 10:34:45 jkh Exp $
*/
#ifndef lint
@@ -261,6 +261,7 @@ copy(argv, type, fts_options)
for (rval = 0; (curr = fts_read(ftsp)) != NULL;) {
switch (curr->fts_info) {
case FTS_NS:
case FTS_DNR:
case FTS_ERR:
warnx("%s: %s",
curr->fts_path, strerror(curr->fts_errno));
+30 -16
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: utils.c,v 1.9.2.1 1997/08/24 10:34:49 jkh Exp $
* $Id: utils.c,v 1.9.2.2 1998/02/15 10:53:17 jkh Exp $
*/
#ifndef lint
@@ -207,7 +207,7 @@ copy_link(p, exists)
int len;
char link[MAXPATHLEN];
if ((len = readlink(p->fts_path, link, sizeof(link))) == -1) {
if ((len = readlink(p->fts_path, link, sizeof(link) - 1)) == -1) {
warn("readlink: %s", p->fts_path);
return (1);
}
@@ -262,7 +262,9 @@ setfile(fs, fd)
int fd;
{
static struct timeval tv[2];
struct stat ts;
int rval;
int gotstat;
rval = 0;
fs->st_mode &= S_ISUID | S_ISGID | S_ISVTX |
@@ -274,30 +276,42 @@ setfile(fs, fd)
warn("utimes: %s", to.p_path);
rval = 1;
}
if (fd ? fstat(fd, &ts) : stat(to.p_path, &ts))
gotstat = 0;
else {
gotstat = 1;
ts.st_mode &= S_ISUID | S_ISGID | S_ISVTX |
S_IRWXU | S_IRWXG | S_IRWXO;
}
/*
* Changing the ownership probably won't succeed, unless we're root
* or POSIX_CHOWN_RESTRICTED is not set. Set uid/gid before setting
* the mode; current BSD behavior is to remove all setuid bits on
* chown. If chown fails, lose setuid/setgid bits.
*/
if (fd ? fchown(fd, fs->st_uid, fs->st_gid) :
chown(to.p_path, fs->st_uid, fs->st_gid)) {
if (errno != EPERM) {
if (!gotstat || fs->st_uid != ts.st_uid || fs->st_gid != ts.st_gid)
if (fd ? fchown(fd, fs->st_uid, fs->st_gid) :
chown(to.p_path, fs->st_uid, fs->st_gid)) {
if (errno != EPERM) {
warn("chown: %s", to.p_path);
rval = 1;
}
fs->st_mode &= ~(S_ISUID | S_ISGID);
}
if (!gotstat || fs->st_mode != ts.st_mode)
if (fd ? fchmod(fd, fs->st_mode) : chmod(to.p_path, fs->st_mode)) {
warn("chown: %s", to.p_path);
rval = 1;
}
fs->st_mode &= ~(S_ISUID | S_ISGID);
}
if (fd ? fchmod(fd, fs->st_mode) : chmod(to.p_path, fs->st_mode)) {
warn("chown: %s", to.p_path);
rval = 1;
}
if (fd ?
fchflags(fd, fs->st_flags) : chflags(to.p_path, fs->st_flags)) {
warn("chflags: %s", to.p_path);
rval = 1;
}
if (!gotstat || fs->st_flags != ts.st_flags)
if (fd ?
fchflags(fd, fs->st_flags) : chflags(to.p_path, fs->st_flags)) {
warn("chflags: %s", to.p_path);
rval = 1;
}
return (rval);
}
+85 -76
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)csh.1 8.2 (Berkeley) 1/21/94
.\" $Id: csh.1,v 1.8 1997/02/22 14:01:40 peter Exp $
.\" $Id: csh.1,v 1.5.2.2 1998/06/30 06:42:24 charnier Exp $
.\"
.Dd January 21, 1994
.Dt CSH 1
@@ -46,15 +46,15 @@
.Op Fl l
.Sh DESCRIPTION
The
.Nm csh
.Nm
is a command language interpreter
incorporating a history mechanism (see
.Nm History Substitutions ) ,
.Sx History Substitutions ) ,
job control facilities (see
.Nm Jobs ) ,
.Sx Jobs ) ,
interactive file name
and user name completion (see
.Nm File Name Completion ) ,
.Sx File Name Completion ) ,
and a C-like syntax. It is used both as an interactive
login shell and a shell script command processor.
.Ss Argument list processing
@@ -100,7 +100,7 @@ is the only flag specified).
The shell loads
.Pa .cshrc
even if it does not belong to the effective user.
.Xr su 1
.Xr Su 1
can pass
.Fl m
to the shell.
@@ -116,16 +116,16 @@ A
may be used to escape the newline at the end of this
line and continue onto another line.
.It Fl v
Causes the
Cause the
.Ar verbose
variable to be set, with the effect
that command input is echoed after history substitution.
.It Fl x
Causes the
Cause the
.Ar echo
variable to be set, so that commands are echoed immediately before execution.
.It Fl V
Causes the
Cause the
.Ar verbose
variable to be set even before
.Pa .cshrc
@@ -157,7 +157,7 @@ Remaining arguments initialize the variable
.Ar argv .
.Pp
An instance of
.Nm csh
.Nm
begins by executing commands from the file
.Pa /etc/csh.cshrc
and,
@@ -256,7 +256,7 @@ showing that the job which was started asynchronously was job number
1 and had one (top-level) process, whose process id was 1234.
.Pp
If you are running a job and wish to do something else you may hit the key
.Nm ^Z
.Em ^Z
(control-Z) which sends a STOP signal to the current job.
The shell will then normally show that the job has been `Stopped',
and print another prompt. You can then manipulate the state of this job,
@@ -271,11 +271,11 @@ the
command
.Ar fg .
A
.Nm ^Z
.Em ^Z
takes effect immediately and
is like an interrupt in that pending output and unread input are discarded
when it is typed. There is another special key
.Nm ^Y
.Em ^Y
that does not generate a STOP signal until a program attempts to
.Xr read 2
it.
@@ -353,7 +353,7 @@ the shell variable
.Ar filec
(see
.Ic set ) ,
.Nm csh
.Nm
will
interactively complete file names and user names from unique
prefixes, when they are input from the terminal followed by
@@ -370,7 +370,7 @@ and the input is
.Pp
.Dl % vi ch<escape>
.Pp
.Nm csh
.Nm
will complete the prefix ``ch''
to the only matching file name ``chaosnet'', changing the input
line to
@@ -381,7 +381,7 @@ However, given
.Pp
.Dl % vi D<escape>
.Pp
.Nm csh
.Nm
will only expand the input to
.Pp
.Dl % vi DSC.
@@ -391,7 +391,7 @@ incomplete, since there are two file names matching the prefix ``D''.
.Pp
If a partial file name is followed by the end-of-file character
(usually control-D), then, instead of completing the name,
.Nm csh
.Nm
will list all file names matching the prefix. For example,
the input
.Pp
@@ -455,7 +455,7 @@ in the previous command with little typing and a high degree of confidence.
History substitutions begin with the character `!' and may begin
.Ar anywhere
in the input stream (with the proviso that they
.Nm "do not"
.Em "do not"
nest.)
This `!' may be preceded by a `\e' to prevent its special meaning; for
convenience, an `!' is passed unchanged when it is followed by a blank,
@@ -631,7 +631,7 @@ Strings enclosed in `"' may be expanded as described below.
.Pp
In both cases the resulting text becomes (all or part of) a single word;
only in one special case (see
.Em Command Substitution
.Sx Command Substitution
below) does a `"' quoted string yield parts of more than one word;
`\'' quoted strings never do.
.Ss Alias substitution
@@ -708,7 +708,7 @@ occurs, and within `\''s where it
.Em never
occurs.
Strings quoted by `\*(ga' are interpreted later (see
.Nm "Command substitution"
.Sx "Command substitution"
below) so `$' substitution does not occur there until later, if at all.
A `$' is passed unchanged if followed by a blank, tab, or end-of-line.
.Pp
@@ -764,11 +764,11 @@ It is not an error for a range to be empty if the second argument is omitted
or in range.
.It $#name
.It ${#name}
Gives the number of words in the variable.
Give the number of words in the variable.
This is useful for later use in a
`$argv[selector]'.
.It $0
Substitutes the name of the file from which command input is being read.
Substitute the name of the file from which command input is being read.
An error occurs if the name is not known.
.It $number
.It ${number}
@@ -788,16 +788,16 @@ The following substitutions may not be modified with `:' modifiers.
.Bl -tag -width Ds -compact -offset indent
.It $?name
.It ${?name}
Substitutes the string `1' if name is set, `0' if it is not.
Substitute the string `1' if name is set, `0' if it is not.
.It $?0
Substitutes `1' if the current input filename is known, `0' if it is not.
Substitute `1' if the current input filename is known, `0' if it is not.
.It \&$\&$\&
Substitute the (decimal) process number of the (parent) shell.
.It $!
Substitute the (decimal) process number of the last background process
started by this shell.
.It $<
Substitutes a line from the standard
Substitute a line from the standard
input, with no further interpretation.
It can be used to read from the keyboard in a shell script.
.El
@@ -922,7 +922,7 @@ is expanded in the same way as `<' input filenames are.
.It >>& name
.It >>! name
.It >>&! name
Uses file
Use file
.Ar name
as the standard output;
like `>' but places output at the end of the file.
@@ -961,11 +961,11 @@ Several of the builtin commands (to be described later)
take expressions, in which the operators are similar to those of C, with
the same precedence.
These expressions appear in the
.Nm @,
.Ar exit ,
.Ar if ,
.Em @ ,
.Em exit ,
.Em if ,
and
.Ar while
.Em while
commands.
The following operators are available:
.Bd -ragged -offset indent
@@ -1076,7 +1076,7 @@ or
.Ar unalias .
.Pp
.It Ic alloc
Shows the amount of dynamic memory acquired, broken down into used and
Show the amount of dynamic memory acquired, broken down into used and
free memory.
With an argument shows the number of free and used blocks in each size
category. The categories start at size 8 and double at each step.
@@ -1085,11 +1085,11 @@ systems other than the VAX may use a different memory allocator.
.Pp
.It Ic bg
.It Ic bg \&% Ns Ar job ...
Puts the current or specified jobs into the background, continuing them
Put the current or specified jobs into the background, continuing them
if they were stopped.
.Pp
.It Ic break
Causes execution to resume after the
Cause execution to resume after the
.Ic end
of the nearest enclosing
.Ic foreach
@@ -1099,7 +1099,7 @@ The remaining commands on the current line are executed.
Multi-level breaks are thus possible by writing them all on one line.
.Pp
.It Ic breaksw
Causes a break from a
Cause a break from a
.Ic switch ,
resuming after the
.Ic endsw .
@@ -1137,7 +1137,7 @@ or
The rest of the commands on the current line are executed.
.Pp
.It Ic default :
Labels the default case in a
Label the default case in a
.Ic switch
statement.
The default should come after all
@@ -1145,7 +1145,7 @@ The default should come after all
labels.
.Pp
.It Ic dirs
Prints the directory stack; the top of the stack is at the left,
Print the directory stack; the top of the stack is at the left,
the first directory in the stack being the current directory.
.Pp
.It Ic echo Ar wordlist
@@ -1192,7 +1192,7 @@ variable (first form) or with the value of the specified
.Pp
.It Ic fg
.It Ic fg % Ns Ar job ...
Brings the current or specified jobs into the foreground, continuing them if
Bring the current or specified jobs into the foreground, continuing them if
they were stopped.
.Pp
.It Ic foreach Ar name (wordlist)
@@ -1252,7 +1252,7 @@ that does not begin with a `/'.
.It Ic history Ar n
.It Ic history Fl r Ar n
.It Ic history Fl h Ar n
Displays the history event list; if
Display the history event list; if
.Ar n
is given only the
.Ar n
@@ -1324,7 +1324,7 @@ must appear alone on its input line or after an
.Pp
.It Ic jobs
.It Ic jobs Fl l
Lists the active jobs; the
List the active jobs; the
.Fl l
option lists process id's in addition to the normal information.
.Pp
@@ -1332,10 +1332,10 @@ option lists process id's in addition to the normal information.
.It Ic kill Ar pid
.It Ic kill Fl sig Ar pid ...
.It Ic kill Fl l
Sends either the TERM (terminate) signal or the
Send either the TERM (terminate) signal or the
specified signal to the specified jobs or processes.
Signals are either given by number or by names (as given in
.Pa /usr/include/signal.h,
.Pa /usr/include/signal.h ,
stripped of the prefix ``SIG'').
The signal names are listed by ``kill \-l''.
There is no default, just saying `kill' does not
@@ -1349,7 +1349,7 @@ then the job or process will be sent a CONT (continue) signal as well.
.It Ic limit Fl h
.It Ic limit Fl h Ar resource
.It Ic limit Fl h Ar resource maximum-use
Limits the consumption by the current process and each process
Limit the consumption by the current process and each process
it creates to not individually exceed
.Ar maximum-use
on the
@@ -1405,7 +1405,7 @@ of the names suffice.
.Pp
.It Ic login
Terminate a login shell, replacing it with an instance of
.Pa /usr/bin/login.
.Pa /usr/bin/login .
This is one way to log off, included for compatibility with
.Xr sh 1 .
.Pp
@@ -1448,7 +1448,7 @@ All processes detached with `&' are effectively
.Pp
.It Ic notify
.It Ic notify % Ns Ar job ...
Causes the shell to notify the user asynchronously when the status of the
Cause the shell to notify the user asynchronously when the status of the
current or specified jobs change; normally notification is presented
before a prompt. This is automatic if the shell variable
.Ic notify
@@ -1478,7 +1478,7 @@ are disabled (/etc/csh.cshrc, /etc/csh.login).
.Pp
.It Ic popd
.It Ic popd Ar +n
Pops the directory stack, returning to the new top directory.
Pop the directory stack, returning to the new top directory.
With an argument
.Ns \`+ Ar n Ns \'
discards the
@@ -1511,7 +1511,7 @@ stack around to be the top element and changes to it. The members
of the directory stack are numbered from the top starting at 0.
.Pp
.It Ic rehash
Causes the internal hash table of the contents of the directories in
Cause the internal hash table of the contents of the directories in
the
.Ic path
variable to be recomputed. This is needed if new commands are added
@@ -1589,7 +1589,7 @@ The most commonly used environment variables
and
.Ev PATH
are automatically imported to and exported from the
.Nm csh
.Nm
variables
.Ar user ,
.Ar term ,
@@ -1625,19 +1625,21 @@ commands.
Normally input during
.Ic source
commands is not placed on the history list;
the \-h option causes the commands to be placed on the
the
.Fl h
option causes the commands to be placed on the
history list without being executed.
.Pp
.It Ic stop
.It Ic stop % Ns Ar job ...
Stops the current or specified jobs that are executing in the background.
Stop the current or specified jobs that are executing in the background.
.Pp
.It Ic suspend
Causes the shell to stop in its tracks, much as if it had been sent a stop
Cause the shell to stop in its tracks, much as if it had been sent a stop
signal with
.Ic ^Z .
.Em ^Z .
This is most often used to stop shells started by
.Xr su 1 .
.Xr su 1 .
.Pp
.It Ic switch Ar (string)
.It Ic case Ar str1 :
@@ -1699,7 +1701,7 @@ is disabled.
.It Ic unlimit Ar resource
.It Ic unlimit Fl h
.It Ic unlimit Fl h Ar resource
Removes the limitation on
Remove the limitation on
.Ar resource .
If no
.Ar resource
@@ -1718,7 +1720,7 @@ It is not an error for nothing to be
.Ic unset .
.Pp
.It Ic unsetenv Ar pattern
Removes all variables whose name match the specified pattern from the
Remove all variables whose name match the specified pattern from the
environment. See also the
.Ic setenv
command above and
@@ -1730,7 +1732,7 @@ If the shell is interactive, then an interrupt can disrupt the wait.
After the interrupt, the shell prints names and job numbers of all jobs
known to be outstanding.
.It Ic which Ar command
Displays the resolved command that will be executed by the shell.
Display the resolved command that will be executed by the shell.
.Pp
.It Ic while Ar (expr)
.It \&...
@@ -1755,10 +1757,10 @@ Prompting occurs here the first time through the loop as for the
statement if the input is a terminal.
.Pp
.It Ic % Ns Ar job
Brings the specified job into the foreground.
Bring the specified job into the foreground.
.Pp
.It Ic % Ns Ar job Ic &
Continues the specified job in the background.
Continue the specified job in the background.
.Pp
.It Ic @
.It Ic @ Ar name Ns = Ns expr
@@ -1831,7 +1833,7 @@ is likewise handled; it is not
necessary to worry about its setting other than in the file
.Ar \&.cshrc
as inferior
.Nm csh
.Nm
processes will import the definition of
.Ar path
from the environment, and re-export it if you then change it.
@@ -1842,7 +1844,7 @@ positional parameters are substituted, i.e., `$1' is replaced by
`$argv[1]',
etc.
.It Ic cdpath
Gives a list of alternate directories searched to find subdirectories
Give a list of alternate directories searched to find subdirectories
in
.Ar chdir
commands.
@@ -1910,10 +1912,9 @@ files are not accidentally destroyed, and that `>>' redirections
refer to existing files.
.It Ic noglob
If set, filename expansion is inhibited.
This inhibition is most useful in shell scripts that
are not dealing with filenames,
or after a list of filenames has been obtained and further expansions
are not desirable.
This inhibition is most useful in shell scripts that are not dealing with
filenames, or after a list of filenames has been obtained and further
expansions are not desirable.
.It Ic nonomatch
If set, it is not an error for a filename expansion to not match any
existing files; instead the primitive pattern is returned.
@@ -1981,7 +1982,7 @@ If it terminated abnormally, then 0200 is added to the status.
Builtin commands that fail return exit status `1',
all other builtin commands set status to `0'.
.It Ic time
Controls automatic timing of commands.
Control automatic timing of commands.
If set, then any command that takes more than this many cpu seconds
will cause a line giving user, system, and real times and a utilization
percentage which is the ratio of user plus system times to real time
@@ -2080,27 +2081,35 @@ signal; otherwise this signal is passed on to children from the state in the
shell's parent.
Interrupts are not allowed when a login shell is reading the file
.Pa \&.logout .
.Sh AUTHOR
William Joy.
Job control and directory stack features first implemented by J.E. Kulp of
IIASA, Laxenburg, Austria,
.Sh AUTHORS
.An William Joy .
.Pp
Job control and directory stack features first implemented by
.An J.E. Kulp
of IIASA, Laxenburg, Austria,
with different syntax than that used now.
File name completion code written by Ken Greer, HP Labs.
Eight-bit implementation Christos S. Zoulas, Cornell University.
.Pp
File name completion code written by
.An Ken Greer ,
HP Labs.
.Pp
Eight-bit implementation
.An Christos S. Zoulas ,
Cornell University.
.Sh FILES
.Bl -tag -width /etc/passwd -compact
.It Pa ~/.cshrc
Read at beginning of execution by each shell.
read at beginning of execution by each shell.
.It Pa ~/.login
Read by login shell, after `.cshrc' at login.
read by login shell, after `.cshrc' at login.
.It Pa ~/.logout
Read by login shell, at logout.
read by login shell, at logout.
.It Pa /bin/sh
Standard shell, for shell scripts not starting with a `#'.
standard shell, for shell scripts not starting with a `#'.
.It Pa /tmp/sh*
Temporary file for `<<'.
temporary file for `<<'.
.It Pa /etc/passwd
Source of home directories for `~name'.
source of home directories for `~name'.
.El
.Sh LIMITATIONS
Word lengths \-
+6 -6
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: csh.c,v 1.6.2.1 1997/08/24 21:41:29 jkh Exp $
* $Id: csh.c,v 1.6.2.2 1998/01/31 17:06:13 joerg Exp $
*/
#ifndef lint
@@ -525,7 +525,7 @@ notty:
{
int osetintr = setintr;
sig_t oparintr = parintr;
sigset_t omask = sigblock(sigmask(SIGINT));
int omask = sigblock(sigmask(SIGINT));
setintr = 0;
parintr = SIG_IGN; /* Disable onintr */
@@ -696,7 +696,7 @@ srcunit(unit, onlyown, hflg)
bool otell = cantell;
struct Bin saveB;
volatile sigset_t omask;
volatile int omask;
jmp_buf oldexit;
/* The (few) real local variables */
@@ -932,9 +932,9 @@ pintr1(wantnl)
bool wantnl;
{
Char **v;
sigset_t omask;
int omask;
omask = sigblock((sigset_t) 0);
omask = sigblock(0);
if (setintr) {
(void) sigsetmask(omask & ~sigmask(SIGINT));
if (pjobs) {
@@ -1004,7 +1004,7 @@ process(catch)
* Interruptible during interactive reads
*/
if (setintr)
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
/*
* For the sake of reset()
+3 -5
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: dir.c,v 1.4 1995/06/18 14:34:48 ache Exp $
* $Id: dir.c,v 1.4.2.1 1997/08/24 21:41:30 jkh Exp $
*/
#ifndef lint
@@ -702,8 +702,7 @@ dcanon(cp, p)
*/
*--sp = 0; /* form the pathname for readlink */
if (sp != cp && !adrof(STRignore_symlinks) &&
(cc = readlink(short2str(cp), tlink,
sizeof tlink)) >= 0) {
(cc = readlink(short2str(cp), tlink, sizeof(tlink) - 1)) >= 0) {
(void) Strcpy(link, str2short(tlink));
link[cc] = '\0';
@@ -787,8 +786,7 @@ dcanon(cp, p)
if (sp != cp && adrof(STRchase_symlinks) &&
!adrof(STRignore_symlinks) &&
(cc = readlink(short2str(cp), tlink,
sizeof tlink)) >= 0) {
(cc = readlink(short2str(cp), tlink, sizeof(tlink) - 1)) >= 0) {
(void) Strcpy(link, str2short(tlink));
link[cc] = '\0';
+2 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: exec.c,v 1.4 1995/06/18 14:20:16 ache Exp $
* $Id: exec.c,v 1.4.2.1 1997/08/24 21:41:31 jkh Exp $
*/
#ifndef lint
@@ -193,7 +193,7 @@ doexec(v, t)
* We must do this AFTER any possible forking (like `foo` in glob) so that
* this shell can still do subprocesses.
*/
(void) sigsetmask((sigset_t) 0);
(void) sigsetmask(0);
/*
* If no path, no words in path, or a / in the filename then restrict the
* command search.
+5 -5
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: func.c,v 1.5 1996/08/11 23:10:38 ache Exp $
* $Id: func.c,v 1.5.2.1 1997/08/24 21:41:33 jkh Exp $
*/
#ifndef lint
@@ -507,7 +507,7 @@ preread()
{
whyles->w_end.type = I_SEEK;
if (setintr)
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
search(T_BREAK, 0, NULL); /* read the expression in */
if (setintr)
@@ -565,7 +565,7 @@ dorepeat(v, kp)
struct command *kp;
{
int i;
sigset_t omask = 0;
int omask = 0;
i = getn(v[1]);
if (setintr)
@@ -907,7 +907,7 @@ xecho(sep, v)
int nonl = 0;
if (setintr)
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
v++;
if (*v == 0)
return;
@@ -955,7 +955,7 @@ dosetenv(v, t)
Char **ep;
if (setintr)
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
for (ep = STR_environ; *ep; ep++)
(void) fprintf(cshout, "%s\n", vis_str(*ep));
return;
+2 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: hist.c,v 1.2 1994/09/24 02:54:06 davidg Exp $
* $Id: hist.c,v 1.2.8.1 1997/08/24 21:41:34 jkh Exp $
*/
#ifndef lint
@@ -127,7 +127,7 @@ dohist(v, t)
if (getn(value(STRhistory)) == 0)
return;
if (setintr)
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
while (*++v && **v == '-') {
Char *vp = *v;
+10 -10
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: proc.c,v 1.2.8.1 1997/08/24 21:41:37 jkh Exp $
* $Id: proc.c,v 1.2.8.2 1998/01/31 17:06:15 joerg Exp $
*/
#ifndef lint
@@ -205,7 +205,7 @@ pnote()
{
struct process *pp;
int flags;
sigset_t omask;
int omask;
neednote = 0;
for (pp = proclist.p_next; pp != NULL; pp = pp->p_next) {
@@ -228,7 +228,7 @@ void
pwait()
{
struct process *fp, *pp;
sigset_t omask;
int omask;
/*
* Here's where dead procs get flushed.
@@ -259,7 +259,7 @@ pjwait(pp)
{
struct process *fp;
int jobflags, reason;
sigset_t omask;
int omask;
while (pp->p_pid != pp->p_jobid)
pp = pp->p_friends;
@@ -348,7 +348,7 @@ dowait(v, t)
struct command *t;
{
struct process *pp;
sigset_t omask;
int omask;
pjobs++;
omask = sigblock(sigmask(SIGCHLD));
@@ -356,7 +356,7 @@ loop:
for (pp = proclist.p_next; pp; pp = pp->p_next)
if (pp->p_pid && /* pp->p_pid == pp->p_jobid && */
pp->p_flags & PRUNNING) {
(void) sigpause((sigset_t) 0);
(void) sigpause(0);
goto loop;
}
(void) sigsetmask(omask);
@@ -1003,7 +1003,7 @@ pkill(v, signum)
struct process *pp, *np;
int jobflags = 0;
int pid, err1 = 0;
sigset_t omask;
int omask;
Char *cp;
omask = sigmask(SIGCHLD);
@@ -1087,7 +1087,7 @@ pstart(pp, foregnd)
int foregnd;
{
struct process *np;
sigset_t omask;
int omask;
long jobflags = 0;
omask = sigblock(sigmask(SIGCHLD));
@@ -1233,7 +1233,7 @@ pfork(t, wanttty)
int pid;
bool ignint = 0;
int pgrp;
sigset_t omask;
int omask;
/*
* A child will be uninterruptible only under very special conditions.
@@ -1330,7 +1330,7 @@ void
pgetty(wanttty, pgrp)
int wanttty, pgrp;
{
sigset_t omask = 0;
int omask = 0;
/*
* christos: I am blocking the tty signals till I've set things
+4 -4
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: sem.c,v 1.3 1995/05/30 00:06:37 rgrimes Exp $
* $Id: sem.c,v 1.3.6.1 1997/08/24 21:41:38 jkh Exp $
*/
#ifndef lint
@@ -70,9 +70,9 @@ execute(t, wanttty, pipein, pipeout)
int pid = 0;
int pv[2];
static sigset_t csigmask;
static int csigmask;
static sigset_t ocsigmask;
static int ocsigmask;
static int onosigchld = 0;
static int nosigchld = 0;
@@ -226,7 +226,7 @@ execute(t, wanttty, pipein, pipeout)
else {
int ochild, osetintr, ohaderr, odidfds;
int oSHIN, oSHOUT, oSHERR, oOLDSTD, otpgrp;
sigset_t omask;
int omask;
/*
* Prepare for the vfork by saving everything that the child
+2 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: set.c,v 1.4 1995/07/07 23:13:11 ache Exp $
* $Id: set.c,v 1.4.2.1 1997/08/24 21:41:38 jkh Exp $
*/
#ifndef lint
@@ -819,7 +819,7 @@ plist(p)
int len;
if (setintr)
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
for (;;) {
while (p->v_left)
+15 -15
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)date.1 8.3 (Berkeley) 4/28/95
.\" $Id: date.1,v 1.8.2.6 1997/10/03 12:54:28 danny Exp $
.\" $Id: date.1,v 1.8.2.8 1998/06/30 06:42:44 charnier Exp $
.\"
.Dd November 17, 1993
.Dt DATE 1
@@ -52,7 +52,7 @@
.Op Fl f Ar fmt Ar date | [[[[yy]mm]dd]HH]MM[\&.ss]
.Op Cm + Ns Ar format
.Sh DESCRIPTION
.Nm
.Nm Date
displays the current date and time when invoked without arguments.
Providing arguments will format the date and time in a user-defined
way or set the date.
@@ -84,12 +84,12 @@ is used to synchronize the clocks on groups of machines.
By default, if
.Xr timed
is running,
.Nm date
.Nm
will set the time on all of the machines in the local group.
The
.Fl n
option stops
.Nm date
.Nm
from setting the time for other than the current machine.
.It Fl r
Print out the date and time in
@@ -112,14 +112,14 @@ Adjust the minute, hour, month day, week day, month or year according to
.Ar val .
If
.Ar val
is preceeded with a plus or minus sign, the date is adjusted forwards
is preceded with a plus or minus sign, the date is adjusted forwards
or backwards according to the remaining string, otherwise the relevant
part of the date is set. The date can be adjusted as many times as
required using these flags. Flags are processed in the order given.
.Pp
Minutes are in the range 0-59, hours are in the range 1-12, month days
are in the range 1-31, week days are in the range 0-6 (sun-sat), months
are in the range 1-12 (jan-dec) and years are in the range 80-38 or
are in the range 1-31, week days are in the range 0-6 (Sun-Sat), months
are in the range 1-12 (Jan-Dec) and years are in the range 80-38 or
1980-2038.
.Pp
If
@@ -219,7 +219,7 @@ The command:
date -v1d -v+1m -v-1d -v-fri
.Ed
.Pp
will display the last friday of the month:
will display the last Friday of the month:
.Bd -literal -offset indent
Fri Aug 29 04:31:11 BST 1997
.Ed
@@ -242,7 +242,7 @@ date 1432
sets the time to
.Li "2:32 PM" ,
without modifying the date.
.Sh ENVIRONMENT VARIABLES
.Sh ENVIRONMENT
The execution of
.Nm
is affected by the following environment variables:
@@ -250,7 +250,7 @@ is affected by the following environment variables:
.It Ev TZ
The timezone to use when displaying dates.
The normal format is a pathname relative to
.Dq Pa /usr/share/zoneinfo .
.Pa /usr/share/zoneinfo .
For example, the command
.Dq TZ=America/Los_Angeles date
displays the current time in California.
@@ -261,9 +261,9 @@ for more information.
.Sh FILES
.Bl -tag -width /var/log/messages -compact
.It Pa /var/log/wtmp
A record of date resets and time changes.
a record of date resets and time changes
.It Pa /var/log/messages
A record of the user setting the time.
a record of the user setting the time
.El
.Sh SEE ALSO
.Xr gettimeofday 2 ,
@@ -285,14 +285,14 @@ Occasionally, when
synchronizes the time on many hosts, the setting of a new time value may
require more than a few seconds.
On these occasions,
.Nm date
.Nm
prints:
.Ql Network time being set .
The message
.Ql Communication error with timed
occurs when the communication
between
.Nm date
.Nm
and
.Xr timed
fails.
@@ -313,7 +313,7 @@ will be running on
.Tn GMT .
.Sh STANDARDS
The
.Nm date
.Nm
command is expected to be compatible with
.St -p1003.2 .
.Sh HISTORY
+9 -9
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)dd.1 8.2 (Berkeley) 1/13/94
.\" $Id: dd.1,v 1.2.8.2 1997/08/24 21:45:30 jkh Exp $
.\" $Id: dd.1,v 1.2.8.3 1998/02/15 11:04:28 jkh Exp $
.\"
.Dd January 13, 1994
.Dt DD 1
@@ -52,7 +52,7 @@ Input data is read and written in 512-byte blocks.
If input reads are short, input from multiple reads are aggregated
to form the output block.
When finished,
.Nm dd
.Nm
displays the number of complete and partial input and output blocks
and truncated input records to the standard error output.
.Pp
@@ -237,7 +237,7 @@ will be positioned past the block in which the error occurred using
Do not truncate the output file.
This will preserve any blocks in the output file not explicitly written
by
.Nm dd .
.Nm Ns .
The
.Cm notrunc
value is not supported for tapes.
@@ -287,7 +287,7 @@ in an integer, respectively.
Two or more numbers may be separated by an ``x'' to indicate a product.
.Pp
When finished,
.Nm dd
.Nm
displays the number of complete and partial input and output blocks,
truncated input records and odd-length byte-swapping blocks to the
standard error output.
@@ -310,7 +310,7 @@ This means that the final output block may be shorter than the output
block size.
.Pp
If
.Nm dd
.Nm
receives a
.Dv SIGINFO
(see the ``status'' argument for
@@ -319,17 +319,17 @@ signal, the current input and output block counts will
be written to the standard error output
in the same format as the standard completion message.
If
.Nm dd
.Nm
receives a
.Dv SIGINT
signal, the current input and output block counts will
be written to the standard error output
in the same format as the standard completion message and
.Nm dd
.Nm
will exit.
.Pp
The
.Nm dd
.Nm
utility exits 0 on success and >0 if an error occurred.
.Sh SEE ALSO
.Xr cp 1 ,
@@ -337,7 +337,7 @@ utility exits 0 on success and >0 if an error occurred.
.Xr tr 1
.Sh STANDARDS
The
.Nm dd
.Nm
utility is expected to be a superset of the
.St -p1003.2
standard.
+5 -4
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: misc.c,v 1.2.8.3 1998/02/11 02:24:41 asami Exp $
* $Id: misc.c,v 1.2.8.4 1998/02/15 11:04:30 jkh Exp $
*/
#ifndef lint
@@ -100,9 +100,10 @@ summaryx(notused)
/* ARGSUSED */
void
terminate(notused)
int notused;
terminate(sig)
int sig;
{
exit(0);
/* XXX exit() shouldn't call exit() from a signal handler. */
exit(sig == 0 ? 0 : 1);
}
+32 -25
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)df.1 8.2 (Berkeley) 1/13/94
.\" $Id: df.1,v 1.4.2.2 1997/09/19 06:18:10 charnier Exp $
.\" $Id: df.1,v 1.4.2.3 1998/02/15 11:06:23 jkh Exp $
.\"
.Dd January 13, 1994
.Dt DF 1
@@ -40,7 +40,7 @@
.Nd display free disk space
.Sh SYNOPSIS
.Nm df
.Op Fl ink
.Op Fl ikn
.Op Fl t Ar type
.Op Ar file | Ar filesystem ...
.Sh DESCRIPTION
@@ -72,31 +72,37 @@ This option should be used if it is possible that one or more
filesystems are in a state such that they will not be able to provide
statistics without a long delay.
When this option is specified,
.Nm df
.Nm
will not request new statistics from the filesystems, but will respond
with the possibly stale statistics that were previously obtained.
.It Fl t
Only print out statistics for filesystems of the specified types.
The recognized types are:
ufs, nfs, mfs, lfs, msdos, fdesc, portal, kernfs, procfs, afs, isofs,
iso9660fs, cdfs, and cd9660,
along with the aggregates:
all (the default),
local (ufs, mfs, lfs, msdos, cd9660),
and misc (fdesc, portal, kernfs, procfs).
The names isofs, iso9660fs, cdfs, and cd9660 are aliases to each other
all of them refering to the same type of file system.
The string ``no'' may be prepending to a type to get its complement
(e.g. ``nonfs'' to get non-NFS filesystems). The first
.Fl t
option overrides the default, additional such options will add to
(or subtract from) the current set of types; e.g. either
``df -t ufs -t lfs''
or
``df -t local -t nomfs''
will display statistics for UFS and LFS filesystems.
More than one type may be specified in a comma separated list.
The list of filesystem types can be prefixed with
.Dq no
to specify the filesystem types for which action should
.Em not
be taken.
For example, the
.Nm
command:
.Bd -literal -offset indent
df -t nonfs,mfs
.Ed
.Pp
lists all filesystems except those of type
.Tn NFS
and
.Tn MFS .
The
.Xr sysctl 8
command can be used to find out the types of filesystems
that are available on the system:
.Bd -literal -offset indent
sysctl vfs
.Ed
.El
.Sh ENVIRONMENT VARIABLES
.Sh ENVIRONMENT
.Bl -tag -width BLOCKSIZE
.It Ev BLOCKSIZE
If the environment variable
@@ -111,15 +117,16 @@ and
flags are ignored if a file or filesystem is specified.
.Sh SEE ALSO
.Xr quota 1 ,
.Xr statfs 2 ,
.Xr fstatfs 2 ,
.Xr getfsstat 2 ,
.Xr statfs 2 ,
.Xr getmntinfo 3 ,
.Xr fstab 5 ,
.Xr mount 8 ,
.Xr quot 8
.Xr quot 8 ,
.Xr sysctl 8
.Sh HISTORY
A
.Nm df
.Nm
command appeared in
.At v1 .
+2 -2
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)hostname.1 8.1 (Berkeley) 5/31/93
.\" $Id: domainname.1,v 1.2 1995/01/14 17:02:33 ats Exp $
.\" $Id: domainname.1,v 1.2.6.1 1997/08/24 21:48:26 jkh Exp $
.\"
.Dd September 18, 1994
.Dt DOMAINNAME 1
@@ -42,7 +42,7 @@
.Nm domainname
.Op Ar ypdomain
.Sh DESCRIPTION
.Nm domainname
.Nm Domainname
prints the name of the current YP/NIS domain. The super-user can
set the domain name by supplying an argument; this is usually done in the
network initialization script
+4 -4
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)echo.1 8.1 (Berkeley) 7/22/93
.\" $Id: echo.1,v 1.2 1994/09/24 02:55:17 davidg Exp $
.\" $Id: echo.1,v 1.3 1995/08/31 17:25:54 jkh Exp $
.\"
.Dd July 22, 1993
.Dt ECHO 1
@@ -47,7 +47,7 @@
.Op "string ..."
.Sh DESCRIPTION
The
.Nm echo
.Nm
utility writes any specified operands, separated by single blank (`` '')
characters and followed by a newline (``\en'') character, to the standard
output.
@@ -61,13 +61,13 @@ by iBCS2 compatible systems.
.El
.Pp
The
.Nm echo
.Nm
utility exits 0 on success, and >0 if an error occurs.
.Sh SEE ALSO
.Xr printf 1
.Sh STANDARDS
The
.Nm echo
.Nm
utility is expected to be
.St -p1003.2
compatible.
+4 -4
View File
@@ -1,11 +1,11 @@
# $Id: Makefile,v 1.12 1995/10/03 15:44:50 markm Exp $
# $Id: Makefile,v 1.13 1995/10/22 20:14:13 ache Exp $
PROG= ed
SRCS= buf.c cbc.c glbl.c io.c main.c re.c sub.c undo.c
LINKS= ${BINDIR}/ed ${BINDIR}/red
MLINKS= ed.1 red.1
LINKS= ${BINDIR}/ed ${BINDIR}/red
MLINKS= ed.1 red.1
.if exists(../../secure) && !defined(NOCRYPT) && !defined(NOSECURE)
.if exists(${.CURDIR}/../../secure) && !defined(NOCRYPT) && !defined(NOSECURE)
DISTRIBUTION=des
CFLAGS+=-DDES
LDADD+= -L${CIPHEROBJDIR} -lcipher
+439 -547
View File
File diff suppressed because it is too large. Load diff
+4 -10
View File
@@ -1,13 +1,7 @@
# /b/source/CVS/src/bin/expr/Makefile,v 1.5 1993/06/14 19:56:06 jtc Exp
# $Id: Makefile,v 1.8 1996/05/07 23:14:17 wosch Exp $
# $Id: Makefile,v 1.10 1996/06/02 17:05:48 phk Exp $
PROG= expr
SRCS= expr.c
CLEANFILES+= expr.c y.tab.h
expr.c:
${YACC} -d ${.IMPSRC}
mv -f y.tab.c expr.c
PROG= expr
SRCS= expr.y
YFLAGS=
.include <bsd.prog.mk>
+11 -11
View File
@@ -28,7 +28,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $Id: expr.1,v 1.3 1994/04/24 01:18:46 jkh Exp $
.\" $Id: expr.1,v 1.4 1996/01/29 22:53:24 mpp Exp $
.\"
.Dd July 3, 1993
.Dt EXPR 1
@@ -41,13 +41,13 @@
.Ar expression
.Sh DESCRIPTION
The
.Nm expr
.Nm
utility evaluates
.Ar expression
and writes the result on standard output.
.Pp
All operators are separate arguments to the
.Nm expr
.Nm
utility.
Characters special to the command interpreter must be escaped.
.Pp
@@ -55,26 +55,26 @@ Operators are listed below in order of increasing precedence.
Operators with equal precedence are grouped within { } symbols.
.Bl -tag -width indent
.It Ar expr1 Li | Ar expr2
Returns the evaluation of
Return the evaluation of
.Ar expr1
if it is neither an empty string nor zero;
otherwise, returns the evaluation of
.Ar expr2 .
.It Ar expr1 Li & Ar expr2
Returns the evaluation of
Return the evaluation of
.Ar expr1
if neither expression evaluates to an empty string or zero;
otherwise, returns zero.
.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2
Returns the results of integer comparison if both arguments are integers;
Return the results of integer comparison if both arguments are integers;
otherwise, returns the results of string comparison using the locale-specific
collation sequence.
The result of each comparison is 1 if the specified relation is true,
or 0 if the relation is false.
.It Ar expr1 Li "{+, -}" Ar expr2
Returns the results of addition or subtraction of integer-valued arguments.
Return the results of addition or subtraction of integer-valued arguments.
.It Ar expr1 Li "{*, /, %}" Ar expr2
Returns the results of multiplication, integer division, or remainder of integer-valued arguments.
Return the results of multiplication, integer division, or remainder of integer-valued arguments.
.It Ar expr1 Li : Ar expr2
The
.Dq \:
@@ -115,9 +115,9 @@ The following example returns the number of characters in variable a.
.El
.Sh DIAGNOSTICS
The
.Nm expr
.Nm
utility exits with one of the following values:
.Bl -tag -width Ds -compact
.Bl -tag -width indent -compact
.It 0
the expression is neither an empty string nor 0.
.It 1
@@ -127,6 +127,6 @@ the expression is invalid.
.El
.Sh STANDARDS
The
.Nm expr
.Nm
utility conforms to
.St -p1003.2 .
+4 -4
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)hostname.1 8.2 (Berkeley) 4/28/95
.\" $Id: hostname.1,v 1.3.2.1 1997/02/28 07:54:36 mpp Exp $
.\" $Id: hostname.1,v 1.3.2.3 1998/06/30 06:43:13 charnier Exp $
.\"
.Dd April 28, 1995
.Dt HOSTNAME 1
@@ -43,7 +43,7 @@
.Op Fl s
.Op Ar name-of-host
.Sh DESCRIPTION
.Nm
.Nm Hostname
prints the name of the current host. The super-user can
set the hostname by supplying an argument; this is usually done in the
network initialization script
@@ -54,13 +54,13 @@ time.
Options:
.Bl -tag -width flag
.It Fl s
Trims off any domain information from the printed
Trim off any domain information from the printed
name.
.El
.Sh SEE ALSO
.Xr gethostname 3
.Sh HISTORY
The
.Nm hostname
.Nm
command appeared in
.Bx 4.2 .
+6 -6
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)kill.1 8.2 (Berkeley) 4/28/95
.\" $Id$
.\" $Id: kill.1,v 1.3.2.2 1998/05/22 10:50:26 jkoshy Exp $
.\"
.Dd April 28, 1995
.Dt KILL 1
@@ -110,22 +110,22 @@ ALRM (alarm clock)
TERM (software termination signal)
.El
.Pp
.Nm
.Nm Kill
is a built-in to
.Xr csh 1 ;
it allows job specifiers of the form ``%...'' as arguments
so process id's are not as often used as
.Nm kill
.Nm
arguments.
See
.Xr csh 1
.Xr csh 1
for details.
.Sh SEE ALSO
.Xr csh 1 ,
.Xr killall 1 ,
.Xr ps 1 ,
.Xr kill 2 ,
.Xr sigvec 2
.Xr sigaction 2
.Sh STANDARDS
The
.Nm
@@ -134,7 +134,7 @@ function is expected to be
compatible.
.Sh HISTORY
A
.Nm kill
.Nm
command appeared in
.At v6 .
.Sh BUGS
+6 -6
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ln.1 8.2 (Berkeley) 12/30/93
.\" $Id: ln.1,v 1.2 1994/09/24 02:55:47 davidg Exp $
.\" $Id: ln.1,v 1.3 1996/08/29 18:05:55 wosch Exp $
.\"
.Dd December 30, 1993
.Dt LN 1
@@ -52,7 +52,7 @@
.Op target_dir
.Sh DESCRIPTION
The
.Nm ln
.Nm
utility creates a new directory entry (linked file) which has the
same modes as the original file.
It is useful for maintaining multiple copies of a file in many places
@@ -75,7 +75,7 @@ Create a symbolic link.
.El
.Pp
By default
.Nm ln
.Nm
makes
.Em hard
links.
@@ -99,7 +99,7 @@ call may be used to read the contents of a symbolic link.
Symbolic links may span file systems and may refer to directories.
.Pp
Given one or two arguments,
.Nm ln
.Nm
creates a link to an existing file
.Ar source_file .
If
@@ -113,7 +113,7 @@ to the last component of
.Ar source_file .
.Pp
Given more than two arguments,
.Nm ln
.Nm
makes links in
.Ar target_dir
to all the named source files.
@@ -127,6 +127,6 @@ The links made will have the same name as the files being linked to.
.Xr symlink 7
.Sh HISTORY
A
.Nm ln
.Nm
command appeared in
.At v1 .
+15 -20
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)symlink.7 8.3 (Berkeley) 3/31/94
.\" $Id: symlink.7,v 1.2.8.1 1997/06/14 18:47:31 jdp Exp $
.\" $Id: symlink.7,v 1.2.8.2 1997/06/19 01:09:09 jdp Exp $
.\"
.Dd March 31, 1994
.Dt SYMLINK 7
@@ -200,6 +200,8 @@ option is not specified),
the
.Nm ls
command follows symbolic links named as arguments if the
.Fl H
or
.Fl L
option is specified,
or if the
@@ -207,16 +209,13 @@ or if the
.Fl d
or
.Fl l
options are not specified.
(If the
.Fl L
option is specified,
options are not specified. (The
.Nm ls
always follows symbolic links.
.Nm Ls
is the only command where the
command is the only command where the
.Fl H
and
.Fl L
option affects its behavior even though it is not doing a walk of
options affect its behavior even though it is not doing a walk of
a file tree.)
.Pp
The
@@ -394,23 +393,19 @@ options.
To maintain compatibility with historic systems,
the
.Nm ls
command never follows symbolic links unless the
.Fl L
flag is specified.
If the
command acts a little differently. If you do not specify the
.Fl F ,
.Fl d or
.Fl l
options,
.Nm ls
will follow symbolic links specified on the command line. If the
.Fl L
flag is specified,
.Nm ls
follows all symbolic links,
regardless of their type,
whether specified on the command line or encountered in the tree walk.
The
.Nm ls
command does not support the
.Fl H
or
.Fl P
options.
.Sh SEE ALSO
.Xr chflags 1 ,
.Xr chgrp 1 ,
+3 -1
View File
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)extern.h 8.1 (Berkeley) 5/31/93
* $Id$
* $Id: extern.h,v 1.2 1994/09/24 02:55:52 davidg Exp $
*/
int acccmp __P((const FTSENT *, const FTSENT *));
@@ -49,3 +49,5 @@ void printcol __P((DISPLAY *));
void printlong __P((DISPLAY *));
void printscol __P((DISPLAY *));
void usage __P((void));
int len_octal __P((char *, int));
int prn_octal __P((char *));
+76 -21
View File
@@ -13,7 +13,7 @@
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" must display the following acknowledgment:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ls.1 8.6 (Berkeley) 4/18/94
.\" $Id: ls.1,v 1.5.2.4 1997/09/19 06:18:11 charnier Exp $
.\" $Id: ls.1,v 1.5.2.5 1997/12/25 09:35:55 hoek Exp $
.\"
.Dd April 18, 1994
.Dt LS 1
@@ -43,20 +43,20 @@
.Nd list directory contents
.Sh SYNOPSIS
.Nm ls
.Op Fl ACFLRTacdfgikloqrstu1
.Op Fl ABCFHLPRTWabcdfgikloqrstu1
.Op Ar file ...
.Sh DESCRIPTION
For each operand that names a
.Ar file
of a type other than
directory,
.Nm ls
.Nm
displays its name as well as any requested,
associated information.
For each operand that names a
.Ar file
of type directory,
.Nm ls
.Nm
displays the names of files contained
within that directory, as well as any requested, associated
information.
@@ -76,6 +76,9 @@ List all entries except for
and
.Ql \&.. .
Always set for the super-user.
.It Fl B
Force printing of non-graphic characters in file names as \\xxx,
where xxx is the numeric value of the character in octal.
.It Fl C
Force multi-column output; this is the default when output is to a terminal.
.It Fl F
@@ -84,24 +87,47 @@ that is a directory, an asterisk (*) after each that is
executable,
an at sign (@) after each symbolic link,
an equals sign (=) after each socket,
a percent sign (%) after each whiteout,
and a vertical bar (|) after each that is a
.Tn FIFO .
.Tn FIFO .
.It Fl H
Symbolic links on the command line are followed. This option is assumed if
none of the
.Fl F ,
.Fl d ,
or
.Fl l
options are specified.
.It Fl L
If argument is a symbolic link, list the file or directory the link references
rather than the link itself.
rather than the link itself. This option cancels the
.Fl P
option.
.It Fl P
If argument is a symbolic link, list the link itself rather than the
object the link references. This option cancels the
.Fl H
and
.Fl L
options.
.It Fl R
Recursively list subdirectories encountered.
.It Fl T
Display complete time information for the file, including
month, day, hour, minute, second, and year.
.It Fl W
Display whiteouts when scanning directories.
.It Fl a
Include directory entries whose names begin with a
dot (.).
.It Fl b
As
.Fl B ,
but use C escape codes whenever possible.
.It Fl c
Use time when file status was last changed for sorting or printing.
.It Fl d
Directories are listed as plain files (not searched recursively) and
symbolic links in the argument list are not indirected through.
Directories are listed as plain files (not searched recursively).
.It Fl f
Output is not sorted.
.It Fl g
@@ -114,8 +140,10 @@ format output.
.It Fl i
For each file, print the file's file serial number (inode number).
.It Fl k
If the 's' option is specified, print the file size allocation in kilobytes,
not blocks.
If the
.Fl s
option is specified, print the file size allocation in kilobytes,
not blocks. This option overrides the environment variable BLOCKSIZE.
.It Fl l
(The lowercase letter ``ell.'') List in long format. (See below.)
If the output is to a terminal, a total sum for all the file
@@ -134,7 +162,8 @@ lexicographical order or the oldest entries first.
Display the number of file system blocks actually used by each file, in units
of 512 bytes, where partial units are rounded up to the next integer value.
If the output is to a terminal, a total sum for all the file
sizes is output on a line before the listing.
sizes is output on a line before the listing. The environment variable
BLOCKSIZE overrides the unit size of 512 bytes.
.It Fl t
Sort by time modified (most recently modified
first) before sorting the operands by lexicographical
@@ -162,14 +191,30 @@ options all override each other; the last one specified determines
the format used.
.Pp
The
.Fl c ,
.Fl c
and
.Fl u
options override each other; the last one specified determines
the file time used.
.Pp
The
.Fl B ,
.Fl b
and
.Fl q
options all override each other; the last one specified determines
the format used for non-printable characters.
.Pp
The
.Fl H,
.Fl L
and
.Fl P
options all override each other (either partially or fully); they
are applied in the order specified.
.Pp
By default,
.Nm ls
.Nm
lists one entry per line to standard
output; the exceptions are to terminals or when the
.Fl C
@@ -198,6 +243,10 @@ number of 512-byte blocks used by the files in the directory is displayed
on a line by itself immediately before the information for the files in the
directory.
.Pp
If the modification time of the file is more than 6 months
in the past or future, then the year of the last modification
is displayed in place of the hour and minute fields.
.Pp
If the owner or group names are not a known user or group name
the numeric ID's are displayed.
.Pp
@@ -207,7 +256,9 @@ in the size field. If the file is a symbolic link the pathname of the
linked-to file is preceded by
.Dq \-> .
.Pp
The file mode printed under the -l option consists of the
The file mode printed under the
.Fl l
option consists of the
entry type, owner permissions, and group permissions.
The entry type character describes the type of file, as
follows:
@@ -292,11 +343,11 @@ or
.El
.Pp
The
.Nm ls
.Nm
utility exits 0 on success, and >0 if an error occurs.
.Sh ENVIRONMENT VARIABLES
.Sh ENVIRONMENT
The following environment variables affect the execution of
.Nm ls :
.Nm Ns :
.Bl -tag -width BLOCKSIZE
.It Ev BLOCKSIZE
If the environment variable
@@ -311,7 +362,7 @@ decimal integer, it is used as the
column position width for displaying
multiple-text-column output.
The
.Nm ls
.Nm
utility calculates how
many pathname text columns to display
based on the width provided.
@@ -334,12 +385,16 @@ specification.
.Xr sticky 8
.Sh HISTORY
An
.Nm ls
.Nm
command appeared in
.At v1 .
.Sh STANDARDS
The
.Nm ls
.Nm
function is expected to be a superset of the
.St -p1003.2
specification.
.Sh BUGS
To maintain backward compatibility, the relationships between the many
options is quite complex.
+33 -13
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ls.c,v 1.10 1996/08/27 21:51:48 adam Exp $
* $Id: ls.c,v 1.10.2.1 1997/12/03 05:40:06 imp Exp $
*/
#ifndef lint
@@ -82,16 +82,16 @@ int f_kblocks; /* print size in kilobytes */
int f_listdir; /* list actual directory, not contents */
int f_listdot; /* list files beginning with . */
int f_longform; /* long listing format */
int f_newline; /* if precede with newline */
int f_nonprint; /* show unprintables as ? */
int f_nosort; /* don't sort output */
int f_octal; /* show unprintables as \xxx */
int f_octal_escape; /* like f_octal but use C escapes if possible */
int f_recursive; /* ls subdirectories also */
int f_reversesort; /* reverse whatever sort is used */
int f_sectime; /* print the real time for all files */
int f_singlecol; /* use single column output */
int f_size; /* list size in short listing */
int f_statustime; /* use time of last mode change */
int f_dirname; /* if precede with directory name */
int f_timesort; /* sort by time vice name */
int f_type; /* add type character for non-regular files */
@@ -131,7 +131,7 @@ main(argc, argv)
f_listdot = 1;
fts_options = FTS_PHYSICAL;
while ((ch = getopt(argc, argv, "1ACFLRTacdfgikloqrstu")) != -1) {
while ((ch = getopt(argc, argv, "1ABCFHLPRTWabcdfgikloqrstu")) != -1) {
switch (ch) {
/*
* The -1, -C and -l options all override each other so shell
@@ -141,6 +141,11 @@ main(argc, argv)
f_singlecol = 1;
f_column = f_longform = 0;
break;
case 'B':
f_nonprint = 0;
f_octal = 1;
f_octal_escape = 0;
break;
case 'C':
f_column = 1;
f_longform = f_singlecol = 0;
@@ -161,10 +166,18 @@ main(argc, argv)
case 'F':
f_type = 1;
break;
case 'H':
fts_options |= FTS_COMFOLLOW;
break;
case 'L':
fts_options &= ~FTS_PHYSICAL;
fts_options |= FTS_LOGICAL;
break;
case 'P':
fts_options &= ~FTS_COMFOLLOW;
fts_options &= ~FTS_LOGICAL;
fts_options |= FTS_PHYSICAL;
break;
case 'R':
f_recursive = 1;
break;
@@ -195,6 +208,8 @@ main(argc, argv)
break;
case 'q':
f_nonprint = 1;
f_octal = 0;
f_octal_escape = 0;
break;
case 'r':
f_reversesort = 1;
@@ -208,6 +223,11 @@ main(argc, argv)
case 't':
f_timesort = 1;
break;
case 'b':
f_nonprint = 0;
f_octal = 0;
f_octal_escape = 1;
break;
default:
case '?':
usage();
@@ -411,6 +431,10 @@ display(p, list)
prcopy(cur->fts_name, cur->fts_name, cur->fts_namelen);
if (cur->fts_namelen > maxlen)
maxlen = cur->fts_namelen;
if (f_octal || f_octal_escape) {
int t = len_octal(cur->fts_name, cur->fts_namelen);
if (t > maxlen) maxlen = t;
}
if (needstats) {
sp = cur->fts_statp;
if (sp->st_blocks > maxblock)
@@ -513,16 +537,12 @@ mastercmp(a, b)
if (a_info == FTS_NS || b_info == FTS_NS)
return (namecmp(*a, *b));
if (a_info == b_info)
return (sortfcn(*a, *b));
if ((*a)->fts_level == FTS_ROOTLEVEL)
if (a_info != b_info &&
(*a)->fts_level == FTS_ROOTLEVEL && !f_listdir) {
if (a_info == FTS_D)
return (1);
else if (b_info == FTS_D)
if (b_info == FTS_D)
return (-1);
else
return (sortfcn(*a, *b));
else
return (sortfcn(*a, *b));
}
return (sortfcn(*a, *b));
}
+4 -1
View File
@@ -1,3 +1,4 @@
/*
* Copyright (c) 1989, 1993
* The Regents of the University of California. All rights reserved.
@@ -34,7 +35,7 @@
* SUCH DAMAGE.
*
* @(#)ls.h 8.1 (Berkeley) 5/31/93
* $Id$
* $Id: ls.h,v 1.2 1994/09/24 02:55:55 davidg Exp $
*/
#define NO_PRINT 1
@@ -45,6 +46,8 @@ extern int f_accesstime; /* use time of last access */
extern int f_flags; /* show flags associated with a file */
extern int f_inode; /* print inode */
extern int f_longform; /* long listing format */
extern int f_octal; /* print unprintables in octal */
extern int f_octal_escape; /* like f_octal but use C escapes if possible */
extern int f_sectime; /* print the real time for all files */
extern int f_size; /* list size in short listing */
extern int f_statustime; /* use time of last mode change */
+17 -7
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: print.c,v 1.7 1995/12/30 18:15:30 joerg Exp $
* $Id: print.c,v 1.8 1996/01/20 10:31:14 mpp Exp $
*/
#ifndef lint
@@ -95,7 +95,7 @@ printlong(dp)
continue;
sp = p->fts_statp;
if (f_inode)
(void)printf("%*lu ", dp->s_inode, sp->st_ino);
(void)printf("%*lu ", dp->s_inode, (u_long)sp->st_ino);
if (f_size)
(void)printf("%*qd ",
dp->s_block, howmany(sp->st_blocks, blocksize));
@@ -124,7 +124,8 @@ printlong(dp)
printtime(sp->st_ctime);
else
printtime(sp->st_mtime);
(void)printf("%s", p->fts_name);
if (f_octal || f_octal_escape) (void)prn_octal(p->fts_name);
else (void)printf("%s", p->fts_name);
if (f_type)
(void)printtype(sp->st_mode);
if (S_ISLNK(sp->st_mode))
@@ -215,11 +216,12 @@ printaname(p, inodefield, sizefield)
sp = p->fts_statp;
chcnt = 0;
if (f_inode)
chcnt += printf("%*lu ", (int)inodefield, sp->st_ino);
chcnt += printf("%*lu ", (int)inodefield, (u_long)sp->st_ino);
if (f_size)
chcnt += printf("%*qd ",
(int)sizefield, howmany(sp->st_blocks, blocksize));
chcnt += printf("%s", p->fts_name);
chcnt += (f_octal || f_octal_escape) ? prn_octal(p->fts_name)
: printf("%s", p->fts_name);
if (f_type)
chcnt += printtype(sp->st_mode);
return (chcnt);
@@ -231,6 +233,10 @@ printtime(ftime)
{
int i;
char longstring[80];
static time_t now;
if (now == 0)
now = time(NULL);
strftime(longstring, sizeof(longstring), "%c", localtime(&ftime));
for (i = 4; i < 11; ++i)
@@ -240,7 +246,7 @@ printtime(ftime)
if (f_sectime)
for (i = 11; i < 24; i++)
(void)putchar(longstring[i]);
else if (ftime + SIXMONTHS > time(NULL))
else if (ftime + SIXMONTHS > now && ftime < now + SIXMONTHS)
for (i = 11; i < 16; ++i)
(void)putchar(longstring[i]);
else {
@@ -293,5 +299,9 @@ printlink(p)
return;
}
path[lnklen] = '\0';
(void)printf(" -> %s", path);
if (f_octal || f_octal_escape) {
(void)printf(" -> ");
(void)prn_octal(path);
}
else (void)printf(" -> %s", path);
}
+89 -2
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: util.c,v 1.5 1996/03/31 16:14:11 ache Exp $
* $Id: util.c,v 1.5.2.1 1997/03/26 17:55:19 obrien Exp $
*/
#ifndef lint
@@ -65,9 +65,96 @@ prcopy(src, dest, len)
}
}
/*
* The fts system makes it difficult to replace fts_name with a different-
* sized string, so we just calculate the real length here and do the
* conversion in prn_octal()
*
* XXX when using f_octal_escape (-b) rather than f_octal (-B), the
* length computed by len_octal may be too big. I just can't be buggered
* to fix this as an efficient fix would involve a lookup table. Same goes
* for the rather inelegant code in prn_octal.
*
* DES 1998/04/23
*/
int
len_octal(s, len)
char *s;
int len;
{
int r = 0;
while (len--)
if (isprint((unsigned char)*s++)) r++; else r += 4;
return r;
}
int
prn_octal(s)
char *s;
{
unsigned char ch;
int len = 0;
while ((ch = *s++))
{
if (isprint(ch) && (ch != '\"') && (ch != '\\'))
putchar(ch), len++;
else if (f_octal_escape) {
putchar('\\');
switch (ch) {
case '\\':
putchar('\\');
break;
case '\"':
putchar('"');
break;
case '\a':
putchar('a');
break;
case '\b':
putchar('b');
break;
case '\f':
putchar('f');
break;
case '\n':
putchar('n');
break;
case '\r':
putchar('r');
break;
case '\t':
putchar('t');
break;
case '\v':
putchar('v');
break;
default:
putchar('0' + (ch >> 6));
putchar('0' + ((ch >> 3) & 3));
putchar('0' + (ch & 3));
len += 2;
break;
}
len += 2;
}
else {
putchar('\\');
putchar('0' + (ch >> 6));
putchar('0' + ((ch >> 3) & 3));
putchar('0' + (ch & 3));
len += 4;
}
}
return len;
}
void
usage()
{
(void)fprintf(stderr, "usage: ls [-1ACFLRTacdfikloqrstu] [file ...]\n");
(void)fprintf(stderr, "usage: ls [-ACFHLPRTWacdfgikloqrstu1]"
" [file ...]\n");
exit(1);
}
+4 -4
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94
.\" $Id: mkdir.1,v 1.6 1997/02/22 14:04:08 peter Exp $
.\" $Id: mkdir.1,v 1.3.2.2 1998/06/30 06:42:30 charnier Exp $
.\"
.Dd January 25, 1994
.Dt MKDIR 1
@@ -47,7 +47,7 @@
.Op Fl m Ar mode
.Ar directory_name ...
.Sh DESCRIPTION
.Nm
.Nm Mkdir
creates the directories named as operands, in the order specified,
using mode
.Li rwxrwxrwx (\&0777)
@@ -81,13 +81,13 @@ permission for the owner.
.Pp
The user must have write permission in the parent directory.
.Pp
.Nm
.Nm Mkdir
exits 0 if successful, and >0 if an error occurred.
.Sh SEE ALSO
.Xr rmdir 1
.Sh STANDARDS
The
.Nm mkdir
.Nm
utility is expected to be
.St -p1003.2
compatible.
+9 -10
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)mv.1 8.1 (Berkeley) 5/31/93
.\" $Id: mv.1,v 1.7 1996/08/29 18:06:04 wosch Exp $
.\" $Id: mv.1,v 1.7.2.1 1998/02/15 11:16:27 jkh Exp $
.\"
.Dd May 31, 1993
.Dt MV 1
@@ -49,9 +49,8 @@
.Op Fl f | Fl i
.Ar source ... directory
.Sh DESCRIPTION
.Pp
In its first form, the
.Nm mv
.Nm
utility renames the file named by the
.Ar source
operand to the destination path named by the
@@ -61,7 +60,7 @@ This form is assumed when the last operand does not name an already
existing directory.
.Pp
In its second form,
.Nm mv
.Nm
moves each file named by a
.Ar source
operand to a destination file in the existing directory named by the
@@ -82,8 +81,8 @@ option overrides any previous
.Fl i
options.)
.It Fl i
Causes
.Nm mv
Cause
.Nm
to write a prompt to standard error before moving a file that would
overwrite an existing file.
If the response from the standard input begins with the character
@@ -103,7 +102,7 @@ It is an error for either the
operand or the destination path to specify a directory unless both do.
.Pp
If the destination path does not have a mode which permits writing,
.Nm mv
.Nm
prompts the user for confirmation as specified for the
.Fl i
option.
@@ -111,7 +110,7 @@ option.
As the
.Xr rename 2
call does not work across file systems,
.Nm mv
.Nm
uses
.Xr cp 1
and
@@ -125,7 +124,7 @@ rm -f destination_path && \e
.Ed
.Pp
The
.Nm mv
.Nm
utility exits 0 on success, and >0 if an error occurs.
.Sh SEE ALSO
.Xr cp 1 ,
@@ -133,7 +132,7 @@ utility exits 0 on success, and >0 if an error occurs.
.Xr symlink 7
.Sh STANDARDS
The
.Nm mv
.Nm
utility is expected to be
.St -p1003.2
compatible.
+10 -6
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: mv.c,v 1.8.2.1 1997/08/25 08:33:11 jkh Exp $
* $Id: mv.c,v 1.8.2.3 1998/05/25 22:45:42 steve Exp $
*/
#ifndef lint
@@ -78,7 +78,7 @@ main(argc, argv)
register char *p, *endp;
struct stat sb;
int ch;
char path[MAXPATHLEN + 1];
char path[MAXPATHLEN];
while ((ch = getopt(argc, argv, "fi")) != -1)
switch (ch) {
@@ -110,11 +110,15 @@ main(argc, argv)
}
/* It's a directory, move each file into it. */
if (strlen(argv[argc - 1]) > sizeof(path) - 1)
errx(1, "%s: destination pathname too long", *argv);
(void)strcpy(path, argv[argc - 1]);
baselen = strlen(path);
endp = &path[baselen];
*endp++ = '/';
++baselen;
if (!baselen || *(endp - 1) != '/') {
*endp++ = '/';
++baselen;
}
for (rval = 0; --argc; ++argv) {
/*
* Find the last component of the source pathname. It
@@ -266,8 +270,8 @@ err: if (unlink(to))
oldmode = sbp->st_mode & ALLPERMS;
if (fchown(to_fd, sbp->st_uid, sbp->st_gid)) {
warn("%s: set owner/group (was: %u/%u)", to, sbp->st_uid,
sbp->st_gid);
warn("%s: set owner/group (was: %lu/%lu)", to,
(u_long)sbp->st_uid, (u_long)sbp->st_gid);
if (oldmode & (S_ISUID | S_ISGID)) {
warnx(
"%s: owner/group changed; clearing suid/sgid (mode was 0%03o)",
+3 -3
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ftree.c,v 1.4.2.2 1997/09/14 13:07:23 jkh Exp $
* $Id: ftree.c,v 1.4.2.3 1998/02/15 11:18:19 jkh Exp $
*/
#ifndef lint
@@ -506,14 +506,14 @@ next_file(arcn)
* have to read the symlink path from the file
*/
if ((cnt = readlink(ftent->fts_path, arcn->ln_name,
PAXPATHLEN)) < 0) {
PAXPATHLEN - 1)) < 0) {
sys_warn(1, errno, "Unable to read symlink %s",
ftent->fts_path);
continue;
}
/*
* set link name length, watch out readlink does not
* allways null terminate the link path
* allways NUL terminate the link path
*/
arcn->ln_name[cnt] = '\0';
arcn->ln_nlen = cnt;
+40 -39
View File
@@ -34,7 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)pax.1 8.4 (Berkeley) 4/18/94
.\" $Id: pax.1,v 1.2 1994/09/24 02:56:26 davidg Exp $
.\" $Id: pax.1,v 1.3.2.2 1998/06/30 06:42:49 charnier Exp $
.\"
.Dd April 18, 1994
.Dt PAX 1
@@ -194,7 +194,7 @@ The presence of the
and the
.Fl w
options specifies which of the following functional modes
.Nm pax
.Nm
will operate under:
.Em list , read , write ,
and
@@ -284,7 +284,7 @@ While processing a damaged archive during a
or
.Em list
operation,
.Nm pax
.Nm
will attempt to recover from media defects and will search through the archive
to locate and process the largest number of archive members possible (see the
.Fl E
@@ -298,7 +298,7 @@ If the
.Ar directory
operand does not exist, or it is not writable by the user,
or it is not of type directory,
.Nm Pax
.Nm
will exit with a non-zero exit status.
.Pp
The
@@ -317,7 +317,7 @@ be selected.
When a
.Ar pattern
operand does not select at least one archive member,
.Nm pax
.Nm
will write these
.Ar pattern
operands in a diagnostic message to
@@ -330,7 +330,7 @@ operand specifies the pathname of a file to be copied or archived.
When a
.Ar file
operand does not select at least one archive member,
.Nm pax
.Nm
will write these
.Ar file
operand pathnames in a diagnostic message to
@@ -357,7 +357,7 @@ and
as the mode argument.
When the selected archive format supports the specification of linked
files and these files cannot be linked while the archive is being extracted,
.Nm pax
.Nm
will write a diagnostic message to
.Dv standard error
and exit with a non-zero exit status at the completion of operation.
@@ -381,7 +381,7 @@ If an archive format is not specified with a
option, the format currently being used in the archive will be selected.
Any attempt to append to an archive in a format different from the
format already used in the archive will cause
.Nm pax
.Nm
to exit immediately
with a non-zero exit status.
The blocking size used in the archive volume where writing starts
@@ -450,7 +450,7 @@ or
.Em write ) .
A single archive may span multiple files and different archive devices.
When required,
.Nm pax
.Nm
will prompt for the pathname of the file or device of the next volume in the
archive.
.It Fl i
@@ -460,7 +460,7 @@ For each archive member matching a
operand or each file matching a
.Ar file
operand,
.Nm pax
.Nm
will prompt to
.Pa /dev/tty
giving the name of the file, its file mode and its modification time.
@@ -569,7 +569,7 @@ nor the
.Cm o
specification character is specified, or the user ID and group ID are not
preserved for any reason,
.Nm pax
.Nm
will not set the
.Dv S_ISUID
.Em ( setuid )
@@ -578,7 +578,7 @@ and
.Em ( setgid )
bits of the file mode.
If the preservation of any of these items fails for any reason,
.Nm pax
.Nm
will write a diagnostic message to
.Dv standard error .
Failure to preserve these items will affect the final exit status,
@@ -636,9 +636,9 @@ File or archive member names that substitute to the empty string
are not selected and will be skipped.
.It Fl t
Reset the access times of any file or directory read or accessed by
.Nm pax
.Nm
to be the same as they were before being read or accessed by
.Nm pax .
.Nm Ns .
.It Fl u
Ignore files that are older (having a less recent file modification time)
than a pre-existing file or archive member with the same name.
@@ -699,7 +699,7 @@ standard.
The default blocksize for this format is 5120 bytes.
Inode and device information about a file (used for detecting file hard links
by this format) which may be truncated by this format is detected by
.Nm pax
.Nm
and is repaired.
.It Ar bcpio
The old binary cpio format.
@@ -708,21 +708,21 @@ This format is not very portable and should not be used when other formats
are available.
Inode and device information about a file (used for detecting file hard links
by this format) which may be truncated by this format is detected by
.Nm pax
.Nm
and is repaired.
.It Ar sv4cpio
The System V release 4 cpio.
The default blocksize for this format is 5120 bytes.
Inode and device information about a file (used for detecting file hard links
by this format) which may be truncated by this format is detected by
.Nm pax
.Nm
and is repaired.
.It Ar sv4crc
The System V release 4 cpio with file crc checksums.
The default blocksize for this format is 5120 bytes.
Inode and device information about a file (used for detecting file hard links
by this format) which may be truncated by this format is detected by
.Nm pax
.Nm
and is repaired.
.It Ar tar
The old BSD tar format as found in BSD4.3.
@@ -790,20 +790,20 @@ archives to
.Ar limit .
With a positive
.Ar limit ,
.Nm pax
.Nm
will attempt to recover from an archive read error and will
continue processing starting with the next file stored in the archive.
A
.Ar limit
of 0 will cause
.Nm pax
.Nm
to stop operation after the first read error is detected on an archive volume.
A
.Ar limit
of
.Li NONE
will cause
.Nm pax
.Nm
to attempt to recover from read errors forever.
The default
.Ar limit
@@ -813,7 +813,7 @@ is a small positive number of retries.
Using this option with
.Li NONE
should be used with extreme caution as
.Nm pax
.Nm
may get stuck in an infinite loop on a very badly flawed archive.
.It Fl G Ar group
Select a file based on its
@@ -857,7 +857,7 @@ only files with a modification or inode change time of exactly that
time will be selected.
.Pp
When
.Nm pax
.Nm
is in the
.Em write
or
@@ -887,7 +887,7 @@ created and had their modification time reset to an older time (as what
happens when a file is extracted from an archive and the modification time
is preserved).
Time comparisons using both file times is useful when
.Nm pax
.Nm
is used to create a time based incremental archive (only files that were
changed during a specified time range will be archived).
.Pp
@@ -1053,13 +1053,13 @@ gives the verbose table of contents for an archive stored in
.Pa filename .
.Pp
The following commands:
.Dl mkdir newdir
.Dl cd olddir
.Dl pax -rw .\ newdir
.Dl mkdir /tmp/foo
.Dl cd /tmp/bar
.Dl pax -rw .\ /tmp/foo
will copy the entire
.Pa olddir
.Pa /tmp/bar
directory hierarchy to
.Pa newdir .
.Pa /tmp/foo .
.Pp
The command:
.Dl pax -r -s ',^//*usr//*,,' -f a.pax
@@ -1093,7 +1093,7 @@ files with the same name found in the source file tree
.Pa home .
.Sh STANDARDS
The
.Nm pax
.Nm
utility is a superset of the
.St -p1003.2
standard.
@@ -1121,10 +1121,11 @@ and
operations are extensions to the
.Tn POSIX
standard.
.Sh AUTHOR
Keith Muller at the University of California, San Diego
.Sh AUTHORS
.An Keith Muller
at the University of California, San Diego
.Sh ERRORS
.Nm pax
.Nm Pax
will exit with one of the following values:
.Bl -tag -width 2n
.It 0
@@ -1134,7 +1135,7 @@ An error occurred.
.El
.Pp
Whenever
.Nm pax
.Nm
cannot create a file or a link when reading an archive or cannot
find a file when writing an archive, or cannot preserve the user ID,
group ID, or file mode when the
@@ -1143,28 +1144,28 @@ option is specified, a diagnostic message is written to
.Dv standard error
and a non-zero exit status will be returned, but processing will continue.
In the case where pax cannot create a link to a file,
.Nm pax
.Nm
will not create a second copy of the file.
.Pp
If the extraction of a file from an archive is prematurely terminated by
a signal or error,
.Nm pax
.Nm
may have only partially extracted a file the user wanted.
Additionally, the file modes of extracted files and directories
may have incorrect file bits, and the modification and access times may be
wrong.
.Pp
If the creation of an archive is prematurely terminated by a signal or error,
.Nm pax
.Nm
may have only partially created the archive which may violate the specific
archive format specification.
.Pp
If while doing a
.Em copy ,
.Nm pax
.Nm
detects a file is about to overwrite itself, the file is not copied,
a diagnostic message is written to
.Dv standard error
and when
.Nm pax
.Nm
completes it will exit with a non-zero exit status.
+2 -1
View File
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)extern.h 8.3 (Berkeley) 4/2/94
* $Id: extern.h,v 1.2 1994/09/24 02:56:42 davidg Exp $
* $Id: extern.h,v 1.3 1996/10/21 07:30:23 peter Exp $
*/
struct kinfo;
@@ -64,6 +64,7 @@ void parsefmt __P((char *));
void pcpu __P((KINFO *, VARENT *));
void pmem __P((KINFO *, VARENT *));
void pri __P((KINFO *, VARENT *));
void rtprior __P((KINFO *, VARENT *));
void printheader __P((void));
void pvar __P((KINFO *, VARENT *));
void rssize __P((KINFO *, VARENT *));
+11 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: fmt.c,v 1.6 1995/10/23 21:03:40 ache Exp $
* $Id: fmt.c,v 1.6.2.1 1997/03/10 19:10:52 guido Exp $
*/
#ifndef lint
@@ -44,6 +44,7 @@ static char sccsid[] = "@(#)fmt.c 8.4 (Berkeley) 4/15/94";
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <vis.h>
#include "ps.h"
@@ -58,8 +59,16 @@ static char *
shquote(argv)
char **argv;
{
long arg_max;
char **p, *dst, *src;
static char buf[4*ARG_MAX]; /* XXX */
static char *buf = NULL;
if (buf == NULL) {
if ((arg_max = sysconf(_SC_ARG_MAX)) == -1)
errx(1, "sysconf _SC_ARG_MAX failed");
if ((buf = malloc((4 * arg_max) + 1)) == NULL)
errx(1, "malloc failed");
}
if (*argv == 0) {
buf[0] = 0;
+2 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: keyword.c,v 1.8 1995/10/28 20:11:15 phk Exp $
* $Id: keyword.c,v 1.9 1996/07/31 09:27:23 davidg Exp $
*/
#ifndef lint
@@ -139,7 +139,7 @@ VAR var[] = {
{"rss", "RSS", NULL, 0, p_rssize, 4},
{"rssize", "", "rsz"},
{"rsz", "RSZ", NULL, 0, rssize, 4},
{"rtprio", "RTPRIO", NULL, 0, pvar, 7, POFF(p_rtprio), LONG, "d"},
{"rtprio", "RTPRIO", NULL, 0, rtprior, 7, POFF(p_rtprio)},
{"ruid", "RUID", NULL, 0, evar, UIDLEN, EOFF(e_pcred.p_ruid),
ULONG, UIDFMT},
{"ruser", "RUSER", NULL, LJUST, runame, USERLEN},
+34 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: print.c,v 1.16.2.1 1997/04/16 16:10:48 jdp Exp $
* $Id: print.c,v 1.16.2.2 1997/08/03 08:33:17 peter Exp $
*/
#ifndef lint
@@ -164,12 +164,13 @@ logname(k, ve)
VARENT *ve;
{
VAR *v;
char *s;
v = ve->var;
#ifndef NEWVM
(void)printf("%-*s", v->width, KI_PROC(k)->p_logname);
#else
(void)printf("%-*s", v->width, KI_EPROC(k)->e_login);
(void)printf("%-*s", v->width, (s = KI_EPROC(k)->e_login, *s) ? s : "-");
#endif
}
@@ -657,6 +658,37 @@ trss(k, ve)
}
#endif
void
rtprior(k, ve)
KINFO *k;
VARENT *ve;
{
VAR *v;
struct rtprio *prtp;
char str[8];
unsigned type, prio;
v = ve->var;
prtp = (struct rtprio *) ((char *)KI_PROC(k) + v->off);
prio = prtp->prio;
switch (type = prtp->type) {
case RTP_PRIO_REALTIME:
snprintf(str, sizeof(str), "real:%u", prio);
break;
case RTP_PRIO_NORMAL:
strncpy(str, "normal", sizeof(str));
break;
case RTP_PRIO_IDLE:
snprintf(str, sizeof(str), "idle:%u", prio);
break;
default:
snprintf(str, sizeof(str), "%u:%u", type, prio);
break;
}
str[sizeof(str)-1] = '\0';
(void)printf("%*s", v->width, str);
}
/*
* Generic output routines. Print fields from various prototype
* structures.
+3 -3
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)pwd.1 8.2 (Berkeley) 4/28/95
.\" $Id: pwd.1,v 1.5 1997/02/22 14:05:15 peter Exp $
.\" $Id: pwd.1,v 1.2.8.2 1998/06/30 06:43:02 charnier Exp $
.\"
.Dd April 28, 1995
.Dt PWD 1
@@ -44,14 +44,14 @@
.Sh SYNOPSIS
.Nm pwd
.Sh DESCRIPTION
.Nm
.Nm Pwd
writes the absolute pathname of the current working directory to
the standard output.
.Pp
The pwd utility exits 0 on success, and >0 if an error occurs.
.Sh STANDARDS
The
.Nm pwd
.Nm
command is expected to be
.St -p1003.2
compatible.
+3 -1
View File
@@ -31,10 +31,12 @@
* SUCH DAMAGE.
*
* @(#)pathnames.h 8.1 (Berkeley) 5/31/93
* $Id$
* $Id: pathnames.h,v 1.2 1994/09/24 02:56:55 davidg Exp $
*/
#include <paths.h>
#define _PATH_CP "/bin/cp"
#define _PATH_RCP "/bin/rcp"
#define _PATH_RLOGIN "/usr/bin/rlogin"
#define _PATH_RSH "/usr/bin/rsh"
+14 -21
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)rcp.1 8.1 (Berkeley) 5/31/93
.\" $Id: rcp.1,v 1.5 1997/02/22 14:05:21 peter Exp $
.\" $Id: rcp.1,v 1.2.8.1 1997/02/28 07:54:41 mpp Exp $
.\"
.Dd May 31, 1993
.Dt RCP 1
@@ -58,26 +58,21 @@ argument is either a remote file name of the
form ``rname@rhost:path'', or a local file name (containing no `:' characters,
or a `/' before any `:'s).
.Pp
.Bl -tag -width flag
The following options are available:
.Bl -tag -width indent
.It Fl K
The
.Fl K
option turns off all Kerberos authentication.
Turn off all Kerberos authentication.
.It Fl k
The
.Fl k
option requests
.Nm rcp
Request
.Nm
to obtain tickets
for the remote host in realm
.Ar realm
instead of the remote host's realm as determined by
.Xr krb_realmofhost 3 .
.It Fl p
The
.Fl p
option causes
.Nm rcp
Cause
.Nm
to attempt to preserve (duplicate) in its copies the modification
times and modes of the source files, ignoring the
.Ar umask .
@@ -89,16 +84,14 @@ modified by the
on the destination host is used.
.It Fl r
If any of the source files are directories,
.Nm rcp
.Nm
copies each subtree rooted at that name; in this case
the destination must be a directory.
.It Fl x
The
.Fl x
option turns on
Turn on
.Tn DES
encryption for all data passed by
.Nm rcp .
.Nm Ns .
This may impact response time and
.Tn CPU
utilization, but provides
@@ -134,11 +127,11 @@ are on the current machine.
.Xr rsh 1
.Sh HISTORY
The
.Nm rcp
.Nm
command appeared in
.Bx 4.2 .
The version of
.Nm rcp
.Nm
described here
has been reimplemented with Kerberos in
.Bx 4.3 Reno .
@@ -157,4 +150,4 @@ The destination user and hostname may have to be specified as
``rhost.rname'' when the destination machine is running the
.Bx 4.2
version of
.Nm rcp .
.Nm Ns .
+24 -11
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
* $Id: rcp.c,v 1.8.2.4 1998/02/18 11:38:37 markm Exp $
*/
#ifndef lint
@@ -72,8 +72,6 @@ static char const sccsid[] = "@(#)rcp.c 8.2 (Berkeley) 4/2/94";
#include <des.h>
#include <krb.h>
/* #include "../../usr.bin/rlogin/krb.h" */
char dst_realm_buf[REALM_SZ];
char *dest_realm = NULL;
int use_kerberos = 1;
@@ -96,6 +94,9 @@ uid_t userid;
int errs, rem;
int pflag, iamremote, iamrecursive, targetshouldbedirectory;
static int argc_copy;
static char **argv_copy;
#define CMDNEEDS 64
char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */
@@ -119,6 +120,24 @@ main(argc, argv)
struct servent *sp;
int ch, fflag, tflag;
char *targ, *shell;
int i;
/*
* Prepare for execing ourselves.
*/
argc_copy = argc + 1;
argv_copy = malloc((argc_copy + 1) * sizeof(*argv_copy));
if (argv_copy == NULL)
err(1, "malloc");
argv_copy[0] = argv[0];
argv_copy[1] = "-K";
for(i = 1; i < argc; ++i) {
argv_copy[i + 1] = strdup(argv[i]);
if (argv_copy[i + 1] == NULL)
errx(1, "strdup: out of memory");
}
argv_copy[argc + 1] = NULL;
fflag = tflag = 0;
while ((ch = getopt(argc, argv, OPTIONS)) != -1)
@@ -774,10 +793,8 @@ int
kerberos(host, bp, locuser, user)
char **host, *bp, *locuser, *user;
{
struct servent *sp;
again:
if (use_kerberos) {
setuid(getuid());
rem = KSUCCESS;
errno = 0;
if (dest_realm == NULL)
@@ -791,15 +808,11 @@ again:
krcmd(host, port, user, bp, 0, dest_realm);
if (rem < 0) {
use_kerberos = 0;
if ((sp = getservbyname("shell", "tcp")) == NULL)
errx(1, "unknown service shell/tcp");
if (errno == ECONNREFUSED)
oldw("remote host doesn't support Kerberos");
else if (errno == ENOENT)
oldw("can't provide Kerberos authentication data");
port = sp->s_port;
goto again;
execv(_PATH_RCP, argv_copy);
}
} else {
#ifdef CRYPT
+13 -8
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)rm.1 8.2 (Berkeley) 4/18/94
.\" $Id: rm.1,v 1.4.2.1 1997/04/08 20:43:37 mpp Exp $
.\" $Id: rm.1,v 1.4.2.2 1997/04/09 05:05:46 mpp Exp $
.\"
.Dd April 18, 1994
.Dt RM 1
@@ -44,11 +44,11 @@
.Sh SYNOPSIS
.Nm rm
.Op Fl f | Fl i
.Op Fl dPRr
.Op Fl dPRrW
.Ar file ...
.Sh DESCRIPTION
The
.Nm rm
.Nm
utility attempts to remove the non-directory type files specified on the
command line.
If the permissions of the file do not permit writing, and the standard
@@ -100,23 +100,27 @@ that directory is skipped.
.It Fl r
Equivalent to
.Fl R .
.It Fl W
Attempt to undelete the named files.
Currently, this option can only be used to recover
files covered by whiteouts.
.El
.Pp
The
.Nm rm
.Nm
utility removes symbolic links, not the files referenced by the links.
.Pp
It is an error to attempt to remove the files ``.'' and ``..''.
.Pp
The
.Nm rm
.Nm
utility exits 0 if all of the named files or file hierarchies were removed,
or if the
.Fl f
option was specified and all of the existing files or file hierarchies were
removed.
If an error occurs,
.Nm rm
.Nm
exits with a value >0.
.Sh NOTE
The
@@ -141,6 +145,7 @@ This is useful for commands that do not use
to parse the command line arguments.
.Sh SEE ALSO
.Xr rmdir 1 ,
.Xr undelete 2 ,
.Xr unlink 2 ,
.Xr fts 3 ,
.Xr getopt 3 ,
@@ -155,7 +160,7 @@ In addition, only regular files are overwritten, other types of files
are not.
.Sh COMPATIBILITY
The
.Nm rm
.Nm
utility differs from historical implementations in that the
.Fl f
option only masks attempts to remove non-existent files instead of
@@ -167,7 +172,7 @@ implementations prompted on the standard output,
not the standard error output.
.Sh STANDARDS
The
.Nm rm
.Nm
command is expected to be
.St -p1003.2
compatible.
+22 -18
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: rm.c,v 1.11 1996/03/07 23:26:59 wosch Exp $
* $Id: rm.c,v 1.11.2.1 1997/12/03 05:40:08 imp Exp $
*/
#ifndef lint
@@ -81,7 +81,7 @@ main(argc, argv)
{
int ch, rflag;
rflag = 0;
Pflag = rflag = 0;
while ((ch = getopt(argc, argv, "dfiPRr")) != -1)
switch(ch) {
case 'd':
@@ -112,16 +112,17 @@ main(argc, argv)
usage();
checkdot(argv);
if (!*argv)
exit (eval);
stdin_ok = isatty(STDIN_FILENO);
uid = geteuid();
if (rflag)
rm_tree(argv);
else
rm_file(argv);
if (*argv) {
stdin_ok = isatty(STDIN_FILENO);
if (rflag)
rm_tree(argv);
else
rm_file(argv);
}
exit (eval);
}
@@ -132,13 +133,14 @@ rm_tree(argv)
FTS *fts;
FTSENT *p;
int needstat;
int flags;
int rval;
/*
* Remove a file hierarchy. If forcing removal (-f), or interactive
* (-i) or can't ask anyway (stdin_ok), don't stat the file.
*/
needstat = !uid || !fflag && !iflag && stdin_ok;
needstat = !uid || (!fflag && !iflag && stdin_ok);
/*
* If the -i option is specified, the user can skip on the pre-order
@@ -176,7 +178,7 @@ rm_tree(argv)
continue;
case FTS_D:
/* Pre-order: give user chance to skip. */
if (iflag && !check(p->fts_path, p->fts_accpath,
if (!fflag && !check(p->fts_path, p->fts_accpath,
p->fts_statp)) {
(void)fts_set(fts, p, FTS_SKIP);
p->fts_number = SKIPPED;
@@ -193,10 +195,11 @@ rm_tree(argv)
if (p->fts_number == SKIPPED)
continue;
break;
default:
if (!fflag &&
!check(p->fts_path, p->fts_accpath, p->fts_statp))
continue;
}
if (!fflag &&
!check(p->fts_path, p->fts_accpath, p->fts_statp))
continue;
rval = 0;
if (!uid &&
@@ -357,9 +360,9 @@ check(path, name, sp)
* first because we may not have stat'ed the file.
*/
if (!stdin_ok || S_ISLNK(sp->st_mode) ||
!access(name, W_OK) &&
(!access(name, W_OK) &&
!(sp->st_flags & (SF_APPEND|SF_IMMUTABLE)) &&
(!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid))
(!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid)))
return (1);
strmode(sp->st_mode, modep);
strcpy(flagsp, flags_to_string(sp->st_flags, NULL));
@@ -398,7 +401,8 @@ checkdot(argv)
if (!complained++)
warnx("\".\" and \"..\" may not be removed");
eval = 1;
for (save = t; (t[0] = t[1]) != NULL; ++t);
for (save = t; (t[0] = t[1]) != NULL; ++t)
continue;
t = save;
} else
++t;
+6 -6
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)rmail.8 6.10 (Berkeley) 4/29/93
.\" $Id: rmail.8,v 1.5 1997/02/22 14:05:30 peter Exp $
.\" $Id: rmail.8,v 1.2.8.2 1998/06/30 06:43:18 charnier Exp $
.\"
.Dd April 29, 1993
.Dt RMAIL 8
@@ -42,7 +42,7 @@
.Nm rmail
.Ar user ...
.Sh DESCRIPTION
.Nm
.Nm Rmail
interprets incoming mail received via
.Xr uucp 1 ,
collapsing ``From'' lines in the form generated
@@ -52,18 +52,18 @@ into a single line of the form ``return-path!sender'',
and passing the processed mail on to
.Xr sendmail 8 .
.Pp
.Nm
.Nm Rmail
is explicitly designed for use with
.Xr uucp
.Xr uucp 1
and
.Xr sendmail .
.Xr sendmail 8 .
.Sh SEE ALSO
.Xr uucp 1 ,
.Xr mail.local 8 ,
.Xr sendmail 8
.Sh HISTORY
The
.Nm rmail
.Nm
program appeared in
.Bx 4.2 .
.Sh BUGS
+8 -6
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93
.\" $Id: rmdir.1,v 1.3 1996/08/29 18:06:08 wosch Exp $
.\" $Id: rmdir.1,v 1.3.2.2 1998/06/30 06:42:35 charnier Exp $
.\"
.Dd May 31, 1993
.Dt RMDIR 1
@@ -46,7 +46,9 @@
.Op Fl p
.Ar directory ...
.Sh DESCRIPTION
The rmdir utility removes the directory entry specified by
The
.Nm
utility removes the directory entry specified by
each
.Ar directory
argument, provided it is empty.
@@ -56,11 +58,11 @@ In order to remove both a parent directory and a subdirectory
of that parent, the subdirectory
must be specified first so the parent directory
is empty when
.Nm rmdir
.Nm
tries to remove it.
.Pp
The following option is available:
.Bl -tag -width Ds
.Bl -tag -width indent
.It Fl p
Each
.Ar directory
@@ -73,7 +75,7 @@ for fully non-discriminant recursive removal.)
.El
.Pp
The
.Nm rmdir
.Nm
utility exits with one of the following values:
.Bl -tag -width Ds
.It Li \&0
@@ -87,7 +89,7 @@ An error occurred.
.Xr rm 1
.Sh STANDARDS
The
.Nm rmdir
.Nm
command is expected to be
.St -p1003.2
compatible.
+6 -10
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: rmdir.c,v 1.2 1994/09/24 02:57:13 davidg Exp $
* $Id: rmdir.c,v 1.2.8.1 1997/08/25 08:43:06 jkh Exp $
*/
#ifndef lint
@@ -40,7 +40,11 @@ static char const copyright[] =
#endif /* not lint */
#ifndef lint
static char const sccsid[] = "@(#)rmdir.c 8.3 (Berkeley) 4/2/94";
#if 0
static char sccsid[] = "@(#)rmdir.c 8.3 (Berkeley) 4/2/94";
#endif
static const char rcsid[] =
"$Id$";
#endif /* not lint */
#include <err.h>
@@ -78,14 +82,6 @@ main(argc, argv)
usage();
for (errors = 0; *argv; argv++) {
char *p;
/* Delete trailing slashes, per POSIX. */
p = *argv + strlen(*argv);
while (--p > *argv && *p == '/')
;
*++p = '\0';
if (rmdir(*argv) < 0) {
warn("%s", *argv);
errors = 1;
+5 -2
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: eval.c,v 1.7.2.2 1997/05/13 19:18:56 steve Exp $
* $Id: eval.c,v 1.7.2.3 1997/08/25 09:09:42 jkh Exp $
*/
#ifndef lint
@@ -764,7 +764,10 @@ evalcommand(cmd, flags, backcmd)
for (sp = varlist.list ; sp ; sp = sp->next)
mklocal(sp->text);
funcnest++;
evaltree(cmdentry.u.func, 0);
if (flags & EV_TESTED)
evaltree(cmdentry.u.func, EV_TESTED);
else
evaltree(cmdentry.u.func, 0);
funcnest--;
INTOFF;
poplocalvars();
+3 -3
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
.\" $Id: sh.1,v 1.9.2.7 1998/02/12 01:25:29 jdp Exp $
.\" $Id: sh.1,v 1.9.2.8 1998/02/15 11:32:26 jkh Exp $
.\"
.Dd May 5, 1995
.Dt SH 1
@@ -48,7 +48,7 @@
.Op Fl c Ar string
.Op Ar arg ...
.Sh DESCRIPTION
.Nm sh
.Nm Sh
is the standard command interpreter for the system.
The current version of
.Nm
@@ -1092,7 +1092,7 @@ The following environment variables affect the execution of fc:
.It Va FCEDIT
Name of the editor to use.
.It Va HISTSIZE
The number of previous commands that are accessable.
The number of previous commands that are accessible.
.El
.It fg [ job ]
Move the specified job or the current job to the
+5 -5
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)sleep.1 8.3 (Berkeley) 4/18/94
.\" $Id: sleep.1,v 1.2.8.1 1997/02/28 07:54:48 mpp Exp $
.\" $Id: sleep.1,v 1.2.8.3 1998/06/30 06:43:08 charnier Exp $
.\"
.Dd April 18, 1994
.Dt SLEEP 1
@@ -46,17 +46,17 @@
.Ar seconds
.Sh DESCRIPTION
The
.Nm sleep
.Nm
command
suspends execution for a minimum of
.Ar seconds .
.Nm
.Nm Sleep
is used to schedule the execution of other commands (see
.Sx EXAMPLES
below).
.Pp
If the
.Nm sleep
.Nm
command
receives a SIGALRM signal, it terminates normally with a zero exit status,
for any other signal it takes the standard action.
@@ -117,7 +117,7 @@ awk job.
.Xr sleep 3
.Sh STANDARDS
The
.Nm sleep
.Nm
command is expected to be
.St -p1003.2
compatible.
+5 -3
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: gfmt.c,v 1.4 1995/05/30 00:07:26 rgrimes Exp $
* $Id: gfmt.c,v 1.4.6.1 1997/08/25 09:24:02 jkh Exp $
*/
#ifndef lint
@@ -65,10 +65,12 @@ gprint(tp, wp, ldisc)
struct cchar *cp;
(void)printf("gfmt1:cflag=%lx:iflag=%lx:lflag=%lx:oflag=%lx:",
tp->c_cflag, tp->c_iflag, tp->c_lflag, tp->c_oflag);
(u_long)tp->c_cflag, (u_long)tp->c_iflag, (u_long)tp->c_lflag,
(u_long)tp->c_oflag);
for (cp = cchars1; cp->name; ++cp)
(void)printf("%s=%x:", cp->name, tp->c_cc[cp->sub]);
(void)printf("ispeed=%ld:ospeed=%ld\n", cfgetispeed(tp), cfgetospeed(tp));
(void)printf("ispeed=%lu:ospeed=%lu\n",
(u_long)cfgetispeed(tp), (u_long)cfgetospeed(tp));
}
void
+2 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: key.c,v 1.4.6.1 1996/12/10 16:40:37 joerg Exp $
* $Id: key.c,v 1.4.6.2 1997/08/25 09:24:04 jkh Exp $
*/
#ifndef lint
@@ -286,7 +286,7 @@ f_speed(ip)
struct info *ip;
{
(void)printf("%ld\n", cfgetospeed(&ip->t));
(void)printf("%lu\n", (u_long)cfgetospeed(&ip->t));
}
void
+10 -8
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)stty.1 8.4 (Berkeley) 4/18/94
.\" $Id: stty.1,v 1.4.2.1 1997/03/12 16:00:05 mpp Exp $
.\" $Id: stty.1,v 1.4.2.4 1998/06/30 06:43:23 charnier Exp $
.\"
.Dd April 18, 1994
.Dt STTY 1
@@ -48,7 +48,7 @@
.Op operands
.Sh DESCRIPTION
The
.Nm stty
.Nm
utility sets or reports on terminal
characteristics for the device that is its standard input.
If no options or operands are specified, it reports the settings of a subset
@@ -60,7 +60,7 @@ Some combinations of arguments are mutually
exclusive on some terminal types.
.Pp
The following options are available:
.Bl -tag -width Ds
.Bl -tag -width indent
.It Fl a
Display all the current settings for the terminal to standard output
as per
@@ -84,7 +84,7 @@ block on the open.
.It Fl g
Display all the current settings for the terminal to standard output
in a form that may be used as an argument to a subsequent invocation of
.Nm stty
.Nm
to restore the current terminal state as per
.St -p1003.2 .
.El
@@ -146,7 +146,7 @@ Enable (disable) the receiver.
Assume a line without (with) modem
control.
.It Cm crtscts Pq Fl crtscts
Enable RTS/CTS flow control.
Enable (disable) RTS/CTS flow control.
.El
.Ss Input Modes:
This corresponds to the c_iflag in the termios structure.
@@ -493,7 +493,9 @@ first rows, then columns.
.Ss Compatibility Modes:
.Pp
These modes remain for compatibility with the previous version of
the stty command.
the
.Nm
command.
.Bl -tag -width Fl
.It Cm all
Reports all the terminal modes as with
@@ -564,13 +566,13 @@ Same as the control character
.El
.Pp
The
.Nm stty
.Nm
utility exits with a value of 0 if successful, and >0 if an error occurs.
.Sh SEE ALSO
.Xr termios 4
.Sh STANDARDS
The
.Nm stty
.Nm
function is expected to be
.St -p1003.2
compatible. The flags
+5 -5
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)sync.8 8.1 (Berkeley) 5/31/93
.\" $Id: sync.8,v 1.3 1996/02/12 00:45:47 mpp Exp $
.\" $Id: sync.8,v 1.3.2.2 1998/06/30 06:42:40 charnier Exp $
.\"
.Dd May 31, 1993
.Dt SYNC 8
@@ -48,14 +48,14 @@ processor is halted in a way not suitably done by
or
.Xr halt 8 .
Generally, it is preferable to use
.Xr reboot
.Xr reboot 8
or
.Xr halt
.Xr halt 8
to shut down the system,
as they may perform additional actions
such as resynchronizing the hardware clock
and flushing internal caches before performing a final
.Nm sync .
.Nm Ns .
.Pp
.Nm Sync
utilizes the
@@ -69,6 +69,6 @@ function call.
.Xr reboot 8
.Sh HISTORY
A
.Nm sync
.Nm
command appeared in
.At v6 .
+7 -7
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)test.1 8.1 (Berkeley) 5/31/93
.\" $Id: test.1,v 1.2 1994/09/24 02:59:14 davidg Exp $
.\" $Id: test.1,v 1.2.8.1 1997/06/02 06:40:08 charnier Exp $
.\"
.Dd May 31, 1993
.Dt TEST 1
@@ -46,7 +46,7 @@
.Ar expression
.Sh DESCRIPTION
The
.Nm test
.Nm
utility evaluates the expression and, if it evaluates
to true, returns a zero (true) exit status; otherwise
it returns 1 (false).
@@ -54,11 +54,11 @@ If there is no expression, test also
returns 1 (false).
.Pp
All operators and flags are separate arguments to the
.Nm test
.Nm
utility.
.Pp
The following primaries are used to construct expression:
.Bl -tag -width Ar
.Bl -tag -width indent
.It Fl b Ar file
True if
.Ar file
@@ -228,7 +228,7 @@ operator has higher precedence than the
operator.
.Sh GRAMMAR AMBIGUITY
The
.Nm test
.Nm
grammar is inherently ambiguous. In order to assure a degree of consistency,
the cases described in the
.St -p1003.2 ,
@@ -238,7 +238,7 @@ standards document. All other cases are subject to the ambiguity in the
command semantics.
.Sh RETURN VALUES
The
.Nm test
.Nm
utility exits with one of the following values:
.Bl -tag -width Ds
.It 0
@@ -251,7 +251,7 @@ An error occurred.
.El
.Sh STANDARDS
The
.Nm test
.Nm
function is expected to be
.St -p1003.2
compatible.
+13 -1
View File
@@ -1,4 +1,16 @@
$Id: CHANGES,v 8.53 1997/06/01 20:34:25 vixie Exp vixie $
$Id: CHANGES,v 8.56 1998/04/07 04:59:42 vixie Exp $
--- 4.9.7-T1A released ---
808. [security] A number of routines did insufficient bounds checking which
could cause crashes by reading from an invalid memory
location. (From BIND-8).
807. [bug] The server sometimes leaked the flushset (ns_resp.c).
(From BIND-8).
806. [bug] add_related_additional() leaked memory if the name
was already in the related array. (From BIND-8).
--- 4.9.6 released ---
+1 -1
View File
@@ -1,4 +1,4 @@
$Id: INSTALL,v 8.8 1997/06/01 20:34:25 vixie Exp vixie $
$Id: INSTALL,v 8.9 1997/06/24 06:43:50 vixie Exp $
THE FILES:
----------
+2 -2
View File
@@ -1,7 +1,7 @@
# Makefile for BIND>=4.9 top level
# vixie@decwrl December, 1992 [original]
#
# $Id: Makefile,v 8.49 1997/06/01 20:34:25 vixie Exp vixie $
# $Id: Makefile,v 8.52 1998/04/07 04:59:42 vixie Exp $
## Copyright (c) 1989
## The Regents of the University of California. All rights reserved.
@@ -52,7 +52,7 @@
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
## SOFTWARE.
VER = 4.9.6-REL
VER = 4.9.7-T1B
SHELL = /bin/sh
MAKE = make
DESTDIR =
+16 -10
View File
@@ -1,18 +1,24 @@
The official version of BIND is now 8.1.1. This is 4.9.6, the last of 4.*
which we are releasing since it has some important security bugs fixed.
Internet Software Consortium
BIND Release 4.9.7 README
$Date: 1998/04/07 04:24:01 $
The official version of ISC BIND is now 8.1.1. This is ISC BIND 4.9.7,
hoped to be the last of 4.*, which we are releasing since it has an important
security bug (plus some memory leaks) fixed.
The official place to get BIND is <URL:ftp://ftp.isc.org/isc/bind/src>.
The official mailing lists are: [email protected] - users/admins
(use *-request@* for admin mail) [email protected] - developers
The official mailing lists are: <[email protected]> - users/admins
(use *-request@* for admin mail) <[email protected]> - developers
The official Usenet newsgroups are: comp.protocols.tcp-ip.domains
comp.protocols.dns.bind
comp.protocols.dns.ops
comp.protocols.dns.std
The official Usenet newsgroups are: <URL:news:comp.protocols.dns.bind>
<URL:news:comp.protocols.dns.ops>
<URL:news:comp.protocols.dns.std>
BIND is currently maintained by: The Internet Software Consortium
(see <URL:http://www.isc.org/isc>.)
BIND is maintained by: The Internet Software Consortium
(see <URL:http://www.isc.org/>)
Bug reports should be sent to: <[email protected]>
Read the top of CHANGES for interesting stuff.
+52 -10
View File
@@ -92,7 +92,7 @@ char copyright[] =
#if !defined(lint) && !defined(SABER)
static char sccsid[] = "@(#)named-xfer.c 4.18 (Berkeley) 3/7/91";
static char rcsid[] = "$Id: named-xfer.c,v 8.23 1997/06/01 20:34:34 vixie Exp $";
static char rcsid[] = "$Id: named-xfer.c,v 8.24 1998/04/07 04:59:45 vixie Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -740,6 +740,10 @@ getzone(zp, serial_no, port)
goto badsoa;
}
tmp += n;
if (tmp + 2 * INT16SZ > eom) {
badsoa_msg = "query error";
goto badsoa;
}
GETSHORT(type, tmp);
GETSHORT(class, tmp);
if (class != curclass || type != T_SOA ||
@@ -778,6 +782,10 @@ getzone(zp, serial_no, port)
GETSHORT(class, cp4);
GETLONG(ttl, cp4);
GETSHORT(dlen, cp4);
if (cp4 + dlen > eom) {
badsoa_msg = "zinfo dlen too big";
goto badsoa;
}
if (type == T_SOA)
break;
/* Skip to next record, if any. */
@@ -1155,6 +1163,8 @@ soa_zinfo(zp, cp, eom)
register int n;
int type, class;
u_long ttl;
u_int dlen;
u_char *rdatap;
/* Are type, class, and ttl OK? */
if (eom - cp < 3 * INT16SZ + INT32SZ)
@@ -1162,7 +1172,8 @@ soa_zinfo(zp, cp, eom)
GETSHORT(type, cp);
GETSHORT(class, cp);
GETLONG(ttl, cp);
cp += INT16SZ; /* dlen */
GETSHORT(dlen, cp);
rdatap = cp;
if (type != T_SOA || class != curclass)
return ("zinfo wrong typ/cla/ttl");
/* Skip master name and contact name, we can't validate them. */
@@ -1180,9 +1191,19 @@ soa_zinfo(zp, cp, eom)
GETLONG(zp->z_retry, cp);
GETLONG(zp->z_expire, cp);
GETLONG(zp->z_minimum, cp);
if (cp != rdatap + dlen)
return ("bad soa dlen");
return (NULL);
}
#define BOUNDS_CHECK(ptr, count) \
do { \
if ((ptr) + (count) > eom) { \
hp->rcode = FORMERR; \
return (-1); \
} \
} while (0)
/*
* Parse the message, determine if it should be printed, and if so, print it
* in .db file form.
@@ -1202,7 +1223,7 @@ print_output(zp, serial_no, msg, msglen, rrp)
int i, j, tab, result, class, type, dlen, n1, n;
char data[BUFSIZ];
u_char *cp1, *cp2, *temp_ptr, *eom, *rr_type_ptr;
u_char *cdata;
u_char *cdata, *rdatap;
char *origin, *proto, dname[MAXDNAME];
char *ignore = "";
const char *badsoa_msg;
@@ -1216,10 +1237,13 @@ print_output(zp, serial_no, msg, msglen, rrp)
}
cp += n;
rr_type_ptr = cp;
BOUNDS_CHECK(cp, 3 * INT16SZ + INT32SZ);
GETSHORT(type, cp);
GETSHORT(class, cp);
GETLONG(ttl, cp);
GETSHORT(dlen, cp);
BOUNDS_CHECK(cp, dlen);
rdatap = cp;
origin = strchr(dname, '.');
if (origin == NULL)
@@ -1294,10 +1318,7 @@ print_output(zp, serial_no, msg, msglen, rrp)
cp += n;
cp1 += strlen((char *) cp1) + 1;
if (type == T_SOA) {
if ((eom - cp) < (5 * INT32SZ)) {
hp->rcode = FORMERR;
return (-1);
}
BOUNDS_CHECK(cp, 5 * INT32SZ);
temp_ptr = cp + 4 * INT32SZ;
GETLONG(minimum_ttl, temp_ptr);
n = 5 * INT32SZ;
@@ -1311,24 +1332,31 @@ print_output(zp, serial_no, msg, msglen, rrp)
case T_NAPTR:
/* Grab weight and port. */
BOUNDS_CHECK(cp, INT16SZ*2);
bcopy(cp, data, INT16SZ*2);
cp1 = (u_char *) (data + INT16SZ*2);
cp += INT16SZ*2;
/* Flags */
BOUNDS_CHECK(cp, 1);
n = *cp++;
BOUNDS_CHECK(cp, n);
*cp1++ = n;
bcopy(cp, cp1, n);
cp += n; cp1 += n;
/* Service */
n = *cp++;
BOUNDS_CHECK(cp, 1);
n = *cp++;
BOUNDS_CHECK(cp, n);
*cp1++ = n;
bcopy(cp, cp1, n);
cp += n; cp1 += n;
/* Regexp */
n = *cp++;
BOUNDS_CHECK(cp, 1);
n = *cp++;
BOUNDS_CHECK(cp, n);
*cp1++ = n;
bcopy(cp, cp1, n);
cp += n; cp1 += n;
@@ -1352,11 +1380,13 @@ print_output(zp, serial_no, msg, msglen, rrp)
case T_RT:
case T_SRV:
/* grab preference */
BOUNDS_CHECK(cp, INT16SZ);
bcopy((char *)cp, data, INT16SZ);
cp1 = (u_char *)data + INT16SZ;
cp += INT16SZ;
if (type == T_SRV) {
BOUNDS_CHECK(cp, INT16SZ);
bcopy((char *)cp, cp1, INT16SZ*2);
cp1 += INT16SZ*2;
cp += INT16SZ*2;
@@ -1378,6 +1408,7 @@ print_output(zp, serial_no, msg, msglen, rrp)
case T_PX:
/* grab preference */
BOUNDS_CHECK(cp, INT16SZ);
bcopy((char *)cp, data, INT16SZ);
cp1 = (u_char *)data + INT16SZ;
cp += INT16SZ;
@@ -1408,6 +1439,7 @@ print_output(zp, serial_no, msg, msglen, rrp)
/* first just copy over the type_covered, algorithm, */
/* labels, orig ttl, two timestamps, and the footprint */
BOUNDS_CHECK(cp, 18);
bcopy( cp, cp1, 18 );
cp += 18;
cp1 += 18;
@@ -1423,8 +1455,10 @@ print_output(zp, serial_no, msg, msglen, rrp)
/* finally, we copy over the variable-length signature.
Its size is the total data length, minus what we copied. */
n = dlen - (18 + n);
if (n > (sizeof data) - (cp1 - (u_char *)data))
if (n > (int)((sizeof data) - (int)(cp1 - (u_char *)data))) {
hp->rcode = FORMERR;
return (-1); /* out of room! */
}
bcopy(cp, cp1, n);
cp += n;
cp1 += n;
@@ -1448,6 +1482,14 @@ print_output(zp, serial_no, msg, msglen, rrp)
hp->rcode = FORMERR;
return (-1);
}
if (cp != rdatap + dlen) {
dprintf(1, (ddt,
"encoded rdata length is %u, but actual length was %u\n",
dlen, (u_int)(cp - rdatap)));
hp->rcode = FORMERR;
return (-1);
}
cdata = cp1;
result = cp - rrp;
+27 -7
View File
@@ -21,6 +21,13 @@
#ifdef NCACHE
#define BOUNDS_CHECK(ptr, count) \
do { \
if ((ptr) + (count) > eom) { \
return; \
} \
} while (0)
void
cache_n_resp(msg, msglen)
u_char *msg;
@@ -28,7 +35,7 @@ cache_n_resp(msg, msglen)
{
register struct databuf *dp;
HEADER *hp;
u_char *cp;
u_char *cp, *eom, *rdatap;
char dname[MAXDNAME];
int n;
int type, class;
@@ -36,19 +43,22 @@ cache_n_resp(msg, msglen)
int Vcode;
#endif
int flags;
u_int dlen;
nameserIncr(from_addr.sin_addr, nssRcvdNXD);
hp = (HEADER *)msg;
cp = msg+HFIXEDSZ;
eom = msg + msglen;
n = dn_expand(msg, msg + msglen, cp, dname, sizeof dname);
n = dn_expand(msg, eom, cp, dname, sizeof dname);
if (n < 0) {
dprintf(1, (ddt, "Query expand name failed:cache_n_resp\n"));
hp->rcode = FORMERR;
return;
}
cp += n;
BOUNDS_CHECK(cp, 2 * INT16SZ);
GETSHORT(type, cp);
GETSHORT(class, cp);
dprintf(1, (ddt,
@@ -76,13 +86,14 @@ cache_n_resp(msg, msglen)
if (hp->rcode == NXDOMAIN)
type = T_SOA;
/* store ther SOA record */
n = dn_skipname(tp, msg + msglen);
/* store their SOA record */
n = dn_skipname(tp, eom);
if (n < 0) {
dprintf(3, (ddt, "ncache: form error\n"));
return;
}
tp += n;
BOUNDS_CHECK(tp, 3 * INT16SZ + INT32SZ);
GETSHORT(atype, tp); /* type */
if (atype != T_SOA) {
dprintf(3, (ddt,
@@ -91,10 +102,12 @@ cache_n_resp(msg, msglen)
}
tp += INT16SZ; /* class */
GETLONG(ttl, tp); /* ttl */
tp += INT16SZ; /* dlen */
GETSHORT(dlen, tp); /* dlen */
BOUNDS_CHECK(tp, dlen);
rdatap = tp;
/* origin */
n = dn_expand(msg, msg + msglen, tp, (char*)data, len);
n = dn_expand(msg, eom, tp, (char*)data, len);
if (n < 0) {
dprintf(3, (ddt, "ncache: form error 2\n"));
return;
@@ -113,10 +126,17 @@ cache_n_resp(msg, msglen)
n = strlen((char*)cp1) + 1;
cp1 += n;
len -= n;
bcopy(tp, cp1, n = 5 * INT32SZ);
n = 5 * INT32SZ;
BOUNDS_CHECK(tp, n);
bcopy(tp, cp1, n);
/* serial, refresh, retry, expire, min */
cp1 += n;
len -= n;
tp += n;
if (tp != rdatap + dlen) {
dprintf(3, (ddt, "ncache: form error 2\n"));
return;
}
/* store the zone of the soa record */
n = dn_expand(msg, msg + msglen, cp, (char*)cp1, len);
if (n < 0) {
+47 -9
View File
@@ -1,6 +1,6 @@
#if !defined(lint) && !defined(SABER)
static char sccsid[] = "@(#)ns_req.c 4.47 (Berkeley) 7/1/91";
static char rcsid[] = "$Id: ns_req.c,v 8.28 1997/06/01 20:34:34 vixie Exp $";
static char rcsid[] = "$Id: ns_req.c,v 8.29 1998/04/07 04:59:45 vixie Exp $";
#endif /* not lint */
/*
@@ -328,6 +328,11 @@ req_notify(hp, cpp, eom, msg, from)
hp->rcode = FORMERR;
return (Finish);
}
if (*cpp + 2 * INT16SZ > eom) {
dprintf(1, (ddt, "FORMERR notify too short"));
hp->rcode = FORMERR;
return (Finish);
}
*cpp += n;
GETSHORT(type, *cpp);
GETSHORT(class, *cpp);
@@ -461,13 +466,13 @@ req_query(hp, cpp, eom, qsp, buflenp, msglenp, msg, dfd, from)
return (Finish);
}
*cpp += n;
GETSHORT(type, *cpp);
GETSHORT(class, *cpp);
if (*cpp > eom) {
if (*cpp + 2 * INT16SZ > eom) {
dprintf(1, (ddt, "FORMERR Query message length short\n"));
hp->rcode = FORMERR;
return (Finish);
}
GETSHORT(type, *cpp);
GETSHORT(class, *cpp);
if (*cpp < eom) {
dprintf(6, (ddt,"message length > received message\n"));
*msglenp = *cpp - msg;
@@ -990,6 +995,11 @@ req_iquery(hp, cpp, eom, buflenp, msg, from)
return (Finish);
}
*cpp += n;
if (*cpp + 3 * INT16SZ + INT32SZ > eom) {
dprintf(1, (ddt, "FORMERR IQuery message too short"));
hp->rcode = FORMERR;
return (Finish);
}
GETSHORT(type, *cpp);
GETSHORT(class, *cpp);
*cpp += INT32SZ; /* ttl */
@@ -1007,7 +1017,7 @@ req_iquery(hp, cpp, eom, buflenp, msg, from)
switch (type) {
case T_A:
#ifndef INVQ
if (!fake_iquery)
if (!fake_iquery || dlen != INT32SZ)
return (Refuse);
#endif
#ifdef INVQ
@@ -1021,7 +1031,10 @@ req_iquery(hp, cpp, eom, buflenp, msg, from)
dprintf(1, (ddt, "req: IQuery class %d type %d\n", class, type));
fname = (char *)msg + HFIXEDSZ;
bcopy(fname, anbuf, alen = (char *)*cpp - fname);
alen = (char *)*cpp - fname;
if ((size_t)alen > sizeof anbuf)
return (Refuse);
bcopy(fname, anbuf, alen);
data = anbuf + alen - dlen;
*cpp = (u_char *)fname;
*buflenp -= HFIXEDSZ;
@@ -1068,6 +1081,10 @@ req_iquery(hp, cpp, eom, buflenp, msg, from)
return (Finish);
}
*cpp += n;
if (*cpp + 2 * INT16SZ > dnbuf + *buflenp) {
hp->tc = 1;
return (Finish);
}
PUTSHORT((u_int16_t)dp->d_type, *cpp);
PUTSHORT((u_int16_t)dp->d_class, *cpp);
*buflenp -= n;
@@ -1256,6 +1273,8 @@ make_rr(name, dp, buf, buflen, doadd)
}
buflen -= RRFIXEDSZ;
if (buflen < 0)
return (-1);
#if defined(RETURNSOA) && defined(NCACHE)
if (dp->d_rcode) {
name = (char *)dp->d_data;
@@ -1269,6 +1288,8 @@ make_rr(name, dp, buf, buflen, doadd)
return (-1);
cp = buf + n;
buflen -= n;
if (buflen < 0)
return (-1);
PUTSHORT((u_int16_t)type, cp);
PUTSHORT((u_int16_t)dp->d_class, cp);
PUTLONG(ttl, cp);
@@ -1308,6 +1329,8 @@ make_rr(name, dp, buf, buflen, doadd)
return (-1);
cp += n;
buflen -= type == T_SOA ? n + 5 * INT32SZ : n;
if (buflen < 0)
return (-1);
cp1 += strlen((char *)cp1) + 1;
n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
if (n < 0)
@@ -1326,10 +1349,10 @@ make_rr(name, dp, buf, buflen, doadd)
/* cp1 == our data/ cp == data of RR */
cp1 = dp->d_data;
if ((buflen -= INT16SZ) < 0)
return (-1);
/* copy order */
buflen -= INT16SZ;
if (buflen < 0)
return (-1);
bcopy(cp1, cp, INT16SZ);
cp += INT16SZ;
cp1 += INT16SZ;
@@ -1337,6 +1360,9 @@ make_rr(name, dp, buf, buflen, doadd)
dprintf(1, (ddt, "current size n = %u\n", n));
/* copy preference */
buflen -= INT16SZ;
if (buflen < 0)
return (-1);
bcopy(cp1, cp, INT16SZ);
cp += INT16SZ;
cp1 += INT16SZ;
@@ -1345,6 +1371,9 @@ make_rr(name, dp, buf, buflen, doadd)
/* Flags */
n = *cp1++;
buflen -= n + 1;
if (buflen < 0)
return (-1);
dprintf(1, (ddt, "size of n at flags = %d\n", n));
*cp++ = n;
bcopy(cp1,cp,n);
@@ -1355,6 +1384,9 @@ make_rr(name, dp, buf, buflen, doadd)
/* Service */
n = *cp1++;
buflen -= n + 1;
if (buflen < 0)
return (-1);
*cp++ = n;
bcopy(cp1,cp,n);
cp += n;
@@ -1364,6 +1396,9 @@ make_rr(name, dp, buf, buflen, doadd)
/* Regexp */
n = *cp1++;
buflen -= n + 1;
if (buflen < 0)
return (-1);
*cp++ = n;
bcopy(cp1,cp,n);
cp += n;
@@ -1402,6 +1437,9 @@ make_rr(name, dp, buf, buflen, doadd)
cp1 += INT16SZ;
if (type == T_SRV) {
buflen -= INT16SZ*2;
if (buflen < 0)
return (-1);
bcopy(cp1, cp, INT16SZ*2);
cp += INT16SZ*2;
cp1 += INT16SZ*2;
+117 -43
View File
@@ -1,6 +1,6 @@
#if !defined(lint) && !defined(SABER)
static char sccsid[] = "@(#)ns_resp.c 4.65 (Berkeley) 3/3/91";
static char rcsid[] = "$Id: ns_resp.c,v 8.38 1997/06/01 20:34:34 vixie Exp vixie $";
static char rcsid[] = "$Id: ns_resp.c,v 8.41 1998/04/07 04:59:45 vixie Exp $";
#endif /* not lint */
/*
@@ -132,7 +132,8 @@ struct flush_set {
static void rrsetadd __P((struct flush_set *, char *,
struct databuf *)),
rrsetupdate __P((struct flush_set *, int flags)),
flushrrset __P((struct flush_set *));
flushrrset __P((struct flush_set *)),
free_flushset __P((struct flush_set *));
static int rrsetcmp __P((char *, struct db_list *)),
check_root __P((void)),
check_ns __P((void)),
@@ -239,7 +240,7 @@ ns_resp(msg, msglen)
register struct databuf *ns, *ns2;
register u_char *cp;
u_char *eom = msg + msglen;
struct flush_set *flushset;
struct flush_set *flushset = NULL;
struct sockaddr_in *nsa;
struct databuf *nsp[NSMAX];
int i, c, n, qdcount, ancount, aucount, nscount, arcount, arfirst;
@@ -264,8 +265,6 @@ ns_resp(msg, msglen)
struct fwdinfo *fwd;
char *tname = NULL;
free_related_additional();
nameserIncr(from_addr.sin_addr, nssRcvdR);
nsp[0] = NULL;
hp = (HEADER *) msg;
@@ -302,6 +301,10 @@ ns_resp(msg, msglen)
goto formerr;
}
cp += n;
if (cp + 2 * INT16SZ > eom) {
formerrmsg = outofDataQuery;
goto formerr;
}
GETSHORT(qtype, cp);
GETSHORT(qclass, cp);
if (!ns_nameok(qname, qclass, response_trans,
@@ -581,16 +584,12 @@ ns_resp(msg, msglen)
goto formerr;
}
tp += n;
if (tp + 2 * INT16SZ > eom) {
formerrmsg = outofDataAuth;
goto formerr;
}
GETSHORT(type, tp);
if (tp >= eom) {
formerrmsg = outofDataAuth;
goto formerr;
}
GETSHORT(class, tp);
if (tp >= eom) {
formerrmsg = outofDataAuth;
goto formerr;
}
if (!ns_nameok(name, class, response_trans,
ns_ownercontext(type, response_trans),
name, from_addr.sin_addr)) {
@@ -645,6 +644,7 @@ ns_resp(msg, msglen)
u_int16_t type, class, dlen;
u_int32_t serial;
u_char *tp = cp;
u_char *rdatap;
n = dn_expand(msg, eom, tp, name, sizeof name);
if (n < 0) {
@@ -652,14 +652,15 @@ ns_resp(msg, msglen)
goto formerr;
}
tp += n; /* name */
if (tp + 3 * INT16SZ + INT32SZ > eom) {
formerrmsg = outofDataAnswer;
goto formerr;
}
GETSHORT(type, tp); /* type */
GETSHORT(class, tp); /* class */
tp += INT32SZ; /* ttl */
GETSHORT(dlen, tp); /* dlen */
if (tp >= eom) {
formerrmsg = outofDataAnswer;
goto formerr;
}
rdatap = tp; /* start of rdata */
if (!ns_nameok(name, class, response_trans,
ns_ownercontext(type, response_trans),
name, from_addr.sin_addr)) {
@@ -675,10 +676,6 @@ ns_resp(msg, msglen)
formerrmsg = msgbuf;
goto formerr;
}
if ((u_int)dlen < (5 * INT32SZ)) {
formerrmsg = dlenUnderrunAnswer;
goto formerr;
}
if (0 >= (n = dn_skipname(tp, eom))) {
formerrmsg = skipnameFailedAnswer;
@@ -690,7 +687,16 @@ ns_resp(msg, msglen)
goto formerr;
}
tp += n; /* rname */
if (tp + 5 * INT32SZ > eom) {
formerrmsg = dlenUnderrunAnswer;
goto formerr;
}
GETLONG(serial, tp);
tp += 4 * INT32SZ; /* Skip rest of SOA. */
if ((u_int)(tp - rdatap) != dlen) {
formerrmsg = dlenOverrunAnswer;
goto formerr;
}
qserial_answer(qp, serial);
qremove(qp);
@@ -786,12 +792,18 @@ ns_resp(msg, msglen)
maybe_free(&tname);
if (cp >= eom) {
free_related_additional();
if (flushset != NULL)
free_flushset(flushset);
formerrmsg = outofDataFinal;
goto formerr;
}
n = rrextract(msg, msglen, cp, &dp, name, sizeof name, &tname);
if (n < 0) {
free_related_additional();
maybe_free(&tname);
if (flushset != NULL)
free_flushset(flushset);
formerrmsg = outofDataFinal;
goto formerr;
}
@@ -921,13 +933,11 @@ ns_resp(msg, msglen)
}
rrsetadd(flushset, name, dp);
}
free_related_additional();
maybe_free(&tname);
if (flushset) {
rrsetupdate(flushset, dbflags);
for (i = 0; i < count; i++)
if (flushset[i].fs_name)
free(flushset[i].fs_name);
free((char*)flushset);
free_flushset(flushset);
}
if (lastwascname && !externalcname)
syslog(LOG_DEBUG, "%s (%s)", danglingCname, aname);
@@ -1365,6 +1375,14 @@ ns_resp(msg, msglen)
return;
}
#define BOUNDS_CHECK(ptr, count) \
do { \
if ((ptr) + (count) > eom) { \
hp->rcode = FORMERR; \
return (-1); \
} \
} while (0)
static int
rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
u_char *msg;
@@ -1375,7 +1393,7 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
int namelen;
char **tnamep;
{
register u_char *cp;
register u_char *cp, *eom, *rdatap;
register int n;
int class, type, dlen, n1;
u_int32_t ttl;
@@ -1389,15 +1407,19 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
*dpp = NULL;
cp = rrp;
if ((n = dn_expand(msg, msg + msglen, cp, dname, namelen)) < 0) {
eom = msg + msglen;
if ((n = dn_expand(msg, eom, cp, dname, namelen)) < 0) {
hp->rcode = FORMERR;
return (-1);
}
cp += n;
BOUNDS_CHECK(cp, 2*INT16SZ + INT32SZ + INT16SZ);
GETSHORT(type, cp);
GETSHORT(class, cp);
GETLONG(ttl, cp);
GETSHORT(dlen, cp);
BOUNDS_CHECK(cp, dlen);
rdatap = cp;
if (!ns_nameok(dname, class, response_trans,
ns_ownercontext(type, response_trans),
dname, from_addr.sin_addr)) {
@@ -1456,8 +1478,7 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
case T_MR:
case T_NS:
case T_PTR:
n = dn_expand(msg, msg + msglen, cp,
(char *)data, sizeof data);
n = dn_expand(msg, eom, cp, (char *)data, sizeof data);
if (n < 0) {
hp->rcode = FORMERR;
return (-1);
@@ -1483,8 +1504,7 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
context = mailname_ctx;
/* FALLTHROUGH */
soa_rp_minfo:
n = dn_expand(msg, msg + msglen, cp,
(char *)data, sizeof data);
n = dn_expand(msg, eom, cp, (char *)data, sizeof data);
if (n < 0) {
hp->rcode = FORMERR;
return (-1);
@@ -1495,11 +1515,15 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
return (-1);
}
cp += n;
/*
* The next use of 'cp' is dn_expand(), so we don't have
* to BOUNDS_CHECK() here.
*/
cp1 = data + (n = strlen((char *)data) + 1);
n1 = sizeof(data) - n;
if (type == T_SOA)
n1 -= 5 * INT32SZ;
n = dn_expand(msg, msg + msglen, cp, (char *)cp1, n1);
n = dn_expand(msg, eom, cp, (char *)cp1, n1);
if (n < 0) {
hp->rcode = FORMERR;
return (-1);
@@ -1516,7 +1540,9 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
cp += n;
cp1 += strlen((char *)cp1) + 1;
if (type == T_SOA) {
bcopy(cp, cp1, n = 5 * INT32SZ);
n = 5 * INT32SZ;
BOUNDS_CHECK(cp, n);
bcopy(cp, cp1, n);
cp += n;
cp1 += n;
}
@@ -1526,30 +1552,37 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
case T_NAPTR:
/* Grab weight and port. */
BOUNDS_CHECK(cp, INT16SZ*2);
bcopy(cp, data, INT16SZ*2);
cp1 = data + INT16SZ*2;
cp += INT16SZ*2;
/* Flags */
BOUNDS_CHECK(cp, 1);
n = *cp++;
BOUNDS_CHECK(cp, n);
*cp1++ = n;
bcopy(cp, cp1, n);
cp += n; cp1 += n;
/* Service */
BOUNDS_CHECK(cp, 1);
n = *cp++;
BOUNDS_CHECK(cp, n);
*cp1++ = n;
bcopy(cp, cp1, n);
cp += n; cp1 += n;
/* Regexp */
BOUNDS_CHECK(cp, 1);
n = *cp++;
BOUNDS_CHECK(cp, n);
*cp1++ = n;
bcopy(cp, cp1, n);
cp += n; cp1 += n;
/* Replacement */
n = dn_expand(msg, msg + msglen, cp, (char *)cp1,
n = dn_expand(msg, eom, cp, (char *)cp1,
sizeof data - (cp1 - data));
if (n < 0) {
hp->rcode = FORMERR;
@@ -1574,19 +1607,21 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
case T_RT:
case T_SRV:
/* grab preference */
BOUNDS_CHECK(cp, INT16SZ);
bcopy(cp, data, INT16SZ);
cp1 = data + INT16SZ;
cp += INT16SZ;
if (type == T_SRV) {
/* Grab weight and port. */
BOUNDS_CHECK(cp, INT16SZ*2);
bcopy(cp, cp1, INT16SZ*2);
cp1 += INT16SZ*2;
cp += INT16SZ*2;
}
/* get name */
n = dn_expand(msg, msg + msglen, cp, (char *)cp1,
n = dn_expand(msg, eom, cp, (char *)cp1,
sizeof data - (cp1 - data));
if (n < 0) {
hp->rcode = FORMERR;
@@ -1611,13 +1646,14 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
case T_PX:
/* grab preference */
BOUNDS_CHECK(cp, INT16SZ);
bcopy(cp, data, INT16SZ);
cp1 = data + INT16SZ;
cp += INT16SZ;
/* get MAP822 name */
n = dn_expand(msg, msg + msglen, cp, (char *)cp1,
sizeof data - INT16SZ);
n = dn_expand(msg, eom, cp, (char *)cp1,
sizeof data - INT16SZ);
if (n < 0) {
hp->rcode = FORMERR;
return (-1);
@@ -1628,9 +1664,13 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
return (-1);
}
cp += n;
/*
* The next use of 'cp' is dn_expand(), so we don't have
* to BOUNDS_CHECK() here.
*/
cp1 += (n = strlen((char *)cp1) + 1);
n1 = sizeof(data) - n;
n = dn_expand(msg, msg + msglen, cp, (char *)cp1, n1);
n = dn_expand(msg, eom, cp, (char *)cp1, n1);
if (n < 0) {
hp->rcode = FORMERR;
return (-1);
@@ -1653,6 +1693,7 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
/* This code is similar to that in db_load.c. */
/* Skip coveredType, alg, labels */
BOUNDS_CHECK(cp, INT16SZ + 1 + 1 + 3*INT32SZ);
cp1 = cp + INT16SZ + 1 + 1;
GETLONG(origTTL, cp1);
GETLONG(exptime, cp1);
@@ -1697,23 +1738,31 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
/* first just copy over the type_covered, algorithm, */
/* labels, orig ttl, two timestamps, and the footprint */
BOUNDS_CHECK(cp, 18);
bcopy(cp, cp1, 18);
cp += 18;
cp1 += 18;
/* then the signer's name */
n = dn_expand(msg, msg + msglen, cp,
(char *)cp1, (sizeof data) - 18);
if (n < 0)
n = dn_expand(msg, eom, cp, (char *)cp1, (sizeof data) - 18);
if (n < 0) {
hp->rcode = FORMERR;
return (-1);
}
cp += n;
cp1 += strlen((char*)cp1)+1;
/* finally, we copy over the variable-length signature.
Its size is the total data length, minus what we copied. */
if (18 + (u_int)n > dlen) {
hp->rcode = FORMERR;
return (-1);
}
n = dlen - (18 + n);
if (n > (sizeof data) - (cp1 - (u_char *)data))
if (n > ((int)(sizeof data) - (int)(cp1 - (u_char *)data))) {
hp->rcode = FORMERR;
return (-1); /* out of room! */
}
bcopy(cp, cp1, n);
cp += n;
cp1 += n;
@@ -1728,6 +1777,18 @@ rrextract(msg, msglen, rrp, dpp, dname, namelen, tnamep)
dprintf(3, (ddt, "unknown type %d\n", type));
return ((cp - rrp) + dlen);
}
if (cp > eom) {
hp->rcode = FORMERR;
return (-1);
}
if ((u_int)(cp - rdatap) != dlen) {
dprintf(3, (ddt,
"encoded rdata length is %u, but actual length was %u",
dlen, (u_int)(cp - rdatap)));
hp->rcode = FORMERR;
return (-1);
}
if (n > MAXDATA) {
dprintf(1, (ddt,
"update type %d: %d bytes is too much data\n",
@@ -3063,6 +3124,17 @@ flushrrset(fs)
db_free(dp);
}
static void
free_flushset(flushset)
struct flush_set *flushset;
{
struct flush_set *fs;
for (fs = flushset; fs->fs_name != NULL; fs++)
free(fs->fs_name);
free((char *)flushset);
}
/*
* This is best thought of as a "cache invalidate" function.
* It is called whenever a piece of data is determined to have
@@ -3125,8 +3197,10 @@ add_related_additional(name)
if (num_related >= MAX_RELATED - 1)
return;
for (i = 0; i < num_related; i++)
if (strcasecmp(name, related[i]) == 0)
if (strcasecmp(name, related[i]) == 0) {
free(name);
return;
}
related[num_related++] = name;
}
+41 -4
View File
@@ -55,7 +55,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)gethostnamadr.c 8.1 (Berkeley) 6/4/93";
static char rcsid[] = "$Id: gethnamaddr.c,v 8.21 1997/06/01 20:34:37 vixie Exp $";
static char rcsid[] = "$Id: gethnamaddr.c,v 8.23 1998/04/07 04:59:46 vixie Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/types.h>
@@ -152,6 +152,23 @@ dprintf(msg, num)
# define dprintf(msg, num) /*nada*/
#endif
#define BOUNDED_INCR(x) \
do { \
cp += x; \
if (cp > eom) { \
h_errno = NO_RECOVERY; \
return (NULL); \
} \
} while (0)
#define BOUNDS_CHECK(ptr, count) \
do { \
if ((ptr) + (count) > eom) { \
h_errno = NO_RECOVERY; \
return (NULL); \
} \
} while (0)
static struct hostent *
getanswer(answer, anslen, qname, qtype)
const querybuf *answer;
@@ -162,7 +179,7 @@ getanswer(answer, anslen, qname, qtype)
register const HEADER *hp;
register const u_char *cp;
register int n;
const u_char *eom;
const u_char *eom, *erdata;
char *bp, **ap, **hap;
int type, class, buflen, ancount, qdcount;
int haveanswer, had_error;
@@ -193,7 +210,8 @@ getanswer(answer, anslen, qname, qtype)
qdcount = ntohs(hp->qdcount);
bp = hostbuf;
buflen = sizeof hostbuf;
cp = answer->buf + HFIXEDSZ;
cp = answer->buf;
BOUNDED_INCR(HFIXEDSZ);
if (qdcount != 1) {
h_errno = NO_RECOVERY;
return (NULL);
@@ -203,7 +221,7 @@ getanswer(answer, anslen, qname, qtype)
h_errno = NO_RECOVERY;
return (NULL);
}
cp += n + QFIXEDSZ;
BOUNDED_INCR(n + QFIXEDSZ);
if (qtype == T_A || qtype == T_AAAA) {
/* res_send() has already verified that the query name is the
* same as the one we sent; this just gets the expanded name
@@ -235,12 +253,15 @@ getanswer(answer, anslen, qname, qtype)
continue;
}
cp += n; /* name */
BOUNDS_CHECK(cp, 3 * INT16SZ + INT32SZ);
type = _getshort(cp);
cp += INT16SZ; /* type */
class = _getshort(cp);
cp += INT16SZ + INT32SZ; /* class, TTL */
n = _getshort(cp);
cp += INT16SZ; /* len */
BOUNDS_CHECK(cp, n);
erdata = cp + n;
if (class != C_IN) {
/* XXX - debug? syslog? */
cp += n;
@@ -255,6 +276,10 @@ getanswer(answer, anslen, qname, qtype)
continue;
}
cp += n;
if (cp != erdata) {
h_errno = NO_RECOVERY;
return (NULL);
}
/* Store alias. */
*ap++ = bp;
n = strlen(bp) + 1; /* for the \0 */
@@ -283,6 +308,10 @@ getanswer(answer, anslen, qname, qtype)
continue;
}
cp += n;
if (cp != erdata) {
h_errno = NO_RECOVERY;
return (NULL);
}
/* Get canonical name. */
n = strlen(tbuf) + 1; /* for the \0 */
if (n > buflen || n >= MAXHOSTNAMELEN) {
@@ -318,6 +347,10 @@ getanswer(answer, anslen, qname, qtype)
}
#if MULTI_PTRS_ARE_ALIASES
cp += n;
if (cp != erdata) {
h_errno = NO_RECOVERY;
return (NULL);
}
if (!haveanswer)
host.h_name = bp;
else if (ap < &host_aliases[MAXALIASES-1])
@@ -388,6 +421,10 @@ getanswer(answer, anslen, qname, qtype)
bp += n;
buflen -= n;
cp += n;
if (cp != erdata) {
h_errno = NO_RECOVERY;
return (NULL);
}
break;
default:
abort();
+668 -242
View File
@@ -55,7 +55,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)res_comp.c 8.1 (Berkeley) 6/4/93";
static char rcsid[] = "$Id: res_comp.c,v 8.12 1997/06/01 20:34:37 vixie Exp $";
static char rcsid[] = "$Id: res_comp.c,v 8.13 1998/04/07 04:24:06 vixie Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/types.h>
@@ -63,9 +63,10 @@ static char rcsid[] = "$Id: res_comp.c,v 8.12 1997/06/01 20:34:37 vixie Exp $";
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <stdio.h>
#include <resolv.h>
#include <ctype.h>
#include <errno.h>
#include <resolv.h>
#include <stdio.h>
#if defined(BSD) && (BSD >= 199103)
# include <unistd.h>
@@ -74,8 +75,17 @@ static char rcsid[] = "$Id: res_comp.c,v 8.12 1997/06/01 20:34:37 vixie Exp $";
# include "../conf/portability.h"
#endif
static int dn_find __P((u_char *exp_dn, u_char *msg,
u_char **dnptrs, u_char **lastdnptr));
static int ns_name_ntop __P((const u_char *, char *, size_t));
static int ns_name_pton __P((const char *, u_char *, size_t));
static int ns_name_unpack __P((const u_char *, const u_char *,
const u_char *, u_char *, size_t));
static int ns_name_pack __P((const u_char *, u_char *, int,
const u_char **, const u_char **));
static int ns_name_uncompress __P((const u_char *, const u_char *,
const u_char *, char *, size_t));
static int ns_name_compress __P((const char *, u_char *, size_t,
const u_char **, const u_char **));
static int ns_name_skip __P((const u_char **, const u_char *));
/*
* Expand compressed domain name 'comp_dn' to full domain name.
@@ -85,261 +95,40 @@ static int dn_find __P((u_char *exp_dn, u_char *msg,
* Return size of compressed name or -1 if there was an error.
*/
int
dn_expand(msg, eomorig, comp_dn, exp_dn, length)
const u_char *msg, *eomorig, *comp_dn;
char *exp_dn;
int length;
dn_expand(const u_char *msg, const u_char *eom, const u_char *src,
char *dst, int dstsiz)
{
register const u_char *cp;
register char *dn;
register int n, c;
char *eom;
int len = -1, checked = 0, octets = 0;
int n = ns_name_uncompress(msg, eom, src, dst, (size_t)dstsiz);
dn = exp_dn;
cp = comp_dn;
eom = exp_dn + length;
/*
* fetch next label in domain name
*/
while (n = *cp++) {
/*
* Check for indirection
*/
switch (n & INDIR_MASK) {
case 0:
octets += (n + 1);
if (octets > MAXCDNAME)
return (-1);
if (dn != exp_dn) {
if (dn >= eom)
return (-1);
*dn++ = '.';
}
if (dn+n >= eom)
return (-1);
checked += n + 1;
while (--n >= 0) {
if (((c = *cp++) == '.') || (c == '\\')) {
if (dn + n + 2 >= eom)
return (-1);
*dn++ = '\\';
}
*dn++ = c;
if (cp >= eomorig) /* out of range */
return (-1);
}
break;
case INDIR_MASK:
if (len < 0)
len = cp - comp_dn + 1;
cp = msg + (((n & 0x3f) << 8) | (*cp & 0xff));
if (cp < msg || cp >= eomorig) /* out of range */
return (-1);
checked += 2;
/*
* Check for loops in the compressed name;
* if we've looked at the whole message,
* there must be a loop.
*/
if (checked >= eomorig - msg)
return (-1);
break;
default:
return (-1); /* flag error */
}
}
*dn = '\0';
if (len < 0)
len = cp - comp_dn;
return (len);
if (n > 0 && dst[0] == '.')
dst[0] = '\0';
return (n);
}
/*
* Compress domain name 'exp_dn' into 'comp_dn'.
* Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
* Return the size of the compressed name or -1.
* 'length' is the size of the array pointed to by 'comp_dn'.
* 'dnptrs' is a list of pointers to previous compressed names. dnptrs[0]
* is a pointer to the beginning of the message. The list ends with NULL.
* 'lastdnptr' is a pointer to the end of the arrary pointed to
* by 'dnptrs'. Side effect is to update the list of pointers for
* labels inserted into the message as we compress the name.
* If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
* is NULL, we don't update the list.
*/
int
dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr)
const char *exp_dn;
u_char *comp_dn, **dnptrs, **lastdnptr;
int length;
dn_comp(const char *src, u_char *dst, int dstsiz,
u_char **dnptrs, u_char **lastdnptr)
{
register u_char *cp, *dn;
register int c, l;
u_char **cpp, **lpp, *sp, *eob;
u_char *msg;
dn = (u_char *)exp_dn;
cp = comp_dn;
if (length > MAXCDNAME)
length = MAXCDNAME;
eob = cp + length;
lpp = cpp = NULL;
if (dnptrs != NULL) {
if ((msg = *dnptrs++) != NULL) {
for (cpp = dnptrs; *cpp != NULL; cpp++)
;
lpp = cpp; /* end of list to search */
}
} else
msg = NULL;
for (c = *dn++; c != '\0'; ) {
/* look to see if we can use pointers */
if (msg != NULL) {
if ((l = dn_find(dn-1, msg, dnptrs, lpp)) >= 0) {
if (cp+1 >= eob)
return (-1);
*cp++ = (l >> 8) | INDIR_MASK;
*cp++ = l % 256;
return (cp - comp_dn);
}
/* not found, save it */
if (lastdnptr != NULL && cpp < lastdnptr-1) {
*cpp++ = cp;
*cpp = NULL;
}
}
sp = cp++; /* save ptr to length byte */
do {
if (c == '.') {
c = *dn++;
break;
}
if (c == '\\') {
if ((c = *dn++) == '\0')
break;
}
if (cp >= eob) {
if (msg != NULL)
*lpp = NULL;
return (-1);
}
*cp++ = c;
} while ((c = *dn++) != '\0');
/* catch trailing '.'s but not '..' */
if ((l = cp - sp - 1) == 0 && c == '\0') {
cp--;
break;
}
if (l <= 0 || l > MAXLABEL) {
if (msg != NULL)
*lpp = NULL;
return (-1);
}
*sp = l;
}
if (cp >= eob) {
if (msg != NULL)
*lpp = NULL;
return (-1);
}
*cp++ = '\0';
return (cp - comp_dn);
return (ns_name_compress(src, dst, (size_t)dstsiz,
(const u_char **)dnptrs,
(const u_char **)lastdnptr));
}
/*
* Skip over a compressed domain name. Return the size or -1.
*/
int
__dn_skipname(comp_dn, eom)
const u_char *comp_dn, *eom;
{
register const u_char *cp;
register int n;
__dn_skipname(const u_char *ptr, const u_char *eom) {
const u_char *saveptr = ptr;
cp = comp_dn;
while (cp < eom && (n = *cp++)) {
/*
* check for indirection
*/
switch (n & INDIR_MASK) {
case 0: /* normal case, n == len */
cp += n;
continue;
case INDIR_MASK: /* indirection */
cp++;
break;
default: /* illegal type */
return (-1);
}
break;
}
if (cp > eom)
if (ns_name_skip(&ptr, eom) == -1)
return (-1);
return (cp - comp_dn);
}
static int
mklower(ch)
register int ch;
{
if (isascii(ch) && isupper(ch))
return (tolower(ch));
return (ch);
}
/*
* Search for expanded name from a list of previously compressed names.
* Return the offset from msg if found or -1.
* dnptrs is the pointer to the first name on the list,
* not the pointer to the start of the message.
*/
static int
dn_find(exp_dn, msg, dnptrs, lastdnptr)
u_char *exp_dn, *msg;
u_char **dnptrs, **lastdnptr;
{
register u_char *dn, *cp, **cpp;
register int n;
u_char *sp;
for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
dn = exp_dn;
sp = cp = *cpp;
while (n = *cp++) {
/*
* check for indirection
*/
switch (n & INDIR_MASK) {
case 0: /* normal case, n == len */
while (--n >= 0) {
if (*dn == '.')
goto next;
if (*dn == '\\')
dn++;
if (mklower(*dn++) != mklower(*cp++))
goto next;
}
if ((n = *dn++) == '\0' && *cp == '\0')
return (sp - msg);
if (n == '.')
continue;
goto next;
case INDIR_MASK: /* indirection */
cp = msg + (((n & 0x3f) << 8) | *cp);
break;
default: /* illegal type */
return (-1);
}
}
if (*dn == '\0')
return (sp - msg);
next: ;
}
return (-1);
return (ptr - saveptr);
}
/*
@@ -509,3 +298,640 @@ __putlong(l, msgp)
{
PUTLONG(l, msgp);
}
/* ++ From BIND 8.1.1. ++ */
/*
* Copyright (c) 1996 by Internet Software Consortium.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
/*"Id: ns_name.c,v 1.1 1997/12/13 02:41:13 vixie Exp vixie"*/
/*#include "port_before.h"*/
/*#include <sys/types.h>*/
/*#include <netinet/in.h>*/
/*#include <arpa/nameser.h>*/
/*#include <errno.h>*/
/*#include <resolv.h>*/
/*#include <string.h>*/
/*#include "port_after.h"*/
#define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */
#define NS_MAXCDNAME 255 /* maximum compressed domain name */
/* Data. */
static char digits[] = "0123456789";
/* Forward. */
static int special(int);
static int printable(int);
static int dn_find(const u_char *, const u_char *,
const u_char * const *,
const u_char * const *);
/* Public. */
/*
* ns_name_ntop(src, dst, dstsiz)
* Convert an encoded domain name to printable ascii as per RFC1035.
* return:
* Number of bytes written to buffer, or -1 (with errno set)
* notes:
* The root is returned as "."
* All other domains are returned in non absolute form
*/
static int
ns_name_ntop(src, dst, dstsiz)
const u_char *src;
char *dst;
size_t dstsiz;
{
const u_char *cp;
char *dn, *eom;
u_char c;
u_int n;
cp = src;
dn = dst;
eom = dst + dstsiz;
while ((n = *cp++) != 0) {
if ((n & NS_CMPRSFLGS) != 0) {
/* Some kind of compression pointer. */
errno = EMSGSIZE;
return (-1);
}
if (dn != dst) {
if (dn >= eom) {
errno = EMSGSIZE;
return (-1);
}
*dn++ = '.';
}
if (dn + n >= eom) {
errno = EMSGSIZE;
return (-1);
}
for ((void)NULL; n > 0; n--) {
c = *cp++;
if (special(c)) {
if (dn + 1 >= eom) {
errno = EMSGSIZE;
return (-1);
}
*dn++ = '\\';
*dn++ = (char)c;
} else if (!printable(c)) {
if (dn + 3 >= eom) {
errno = EMSGSIZE;
return (-1);
}
*dn++ = '\\';
*dn++ = digits[c / 100];
*dn++ = digits[(c % 100) / 10];
*dn++ = digits[c % 10];
} else {
if (dn >= eom) {
errno = EMSGSIZE;
return (-1);
}
*dn++ = (char)c;
}
}
}
if (dn == dst) {
if (dn >= eom) {
errno = EMSGSIZE;
return (-1);
}
*dn++ = '.';
}
if (dn >= eom) {
errno = EMSGSIZE;
return (-1);
}
*dn++ = '\0';
return (dn - dst);
}
/*
* ns_name_pton(src, dst, dstsiz)
* Convert a ascii string into an encoded domain name as per RFC1035.
* return:
* -1 if it fails
* 1 if string was fully qualified
* 0 is string was not fully qualified
* notes:
* Enforces label and domain length limits.
*/
static int
ns_name_pton(src, dst, dstsiz)
const char *src;
u_char *dst;
size_t dstsiz;
{
u_char *label, *bp, *eom;
int c, n, escaped;
char *cp;
escaped = 0;
bp = dst;
eom = dst + dstsiz;
label = bp++;
while ((c = *src++) != 0) {
if (escaped) {
if ((cp = strchr(digits, c)) != NULL) {
n = (cp - digits) * 100;
if ((c = *src++) == 0 ||
(cp = strchr(digits, c)) == NULL) {
errno = EMSGSIZE;
return (-1);
}
n += (cp - digits) * 10;
if ((c = *src++) == 0 ||
(cp = strchr(digits, c)) == NULL) {
errno = EMSGSIZE;
return (-1);
}
n += (cp - digits);
if (n > 255) {
errno = EMSGSIZE;
return (-1);
}
c = n;
}
escaped = 0;
} else if (c == '\\') {
escaped = 1;
continue;
} else if (c == '.') {
c = (bp - label - 1);
if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
errno = EMSGSIZE;
return (-1);
}
if (label >= eom) {
errno = EMSGSIZE;
return (-1);
}
*label = c;
/* Fully qualified ? */
if (*src == '\0') {
if (c != 0) {
if (bp >= eom) {
errno = EMSGSIZE;
return (-1);
}
*bp++ = '\0';
}
if ((bp - dst) > MAXCDNAME) {
errno = EMSGSIZE;
return (-1);
}
return (1);
}
if (c == 0) {
errno = EMSGSIZE;
return (-1);
}
label = bp++;
continue;
}
if (bp >= eom) {
errno = EMSGSIZE;
return (-1);
}
*bp++ = (u_char)c;
}
c = (bp - label - 1);
if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
errno = EMSGSIZE;
return (-1);
}
if (label >= eom) {
errno = EMSGSIZE;
return (-1);
}
*label = c;
if (c != 0) {
if (bp >= eom) {
errno = EMSGSIZE;
return (-1);
}
*bp++ = 0;
}
if ((bp - dst) > MAXCDNAME) { /* src too big */
errno = EMSGSIZE;
return (-1);
}
return (0);
}
/*
* ns_name_unpack(msg, eom, src, dst, dstsiz)
* Unpack a domain name from a message, source may be compressed.
* return:
* -1 if it fails, or consumed octets if it succeeds.
*/
static int
ns_name_unpack(msg, eom, src, dst, dstsiz)
const u_char *msg;
const u_char *eom;
const u_char *src;
u_char *dst;
size_t dstsiz;
{
const u_char *srcp, *dstlim;
u_char *dstp;
int n, c, len, checked;
len = -1;
checked = 0;
dstp = dst;
srcp = src;
dstlim = dst + dstsiz;
if (srcp < msg || srcp >= eom) {
errno = EMSGSIZE;
return (-1);
}
/* Fetch next label in domain name. */
while ((n = *srcp++) != 0) {
/* Check for indirection. */
switch (n & NS_CMPRSFLGS) {
case 0:
/* Limit checks. */
if (dstp + n + 1 >= dstlim || srcp + n >= eom) {
errno = EMSGSIZE;
return (-1);
}
checked += n + 1;
*dstp++ = n;
memcpy(dstp, srcp, n);
dstp += n;
srcp += n;
break;
case NS_CMPRSFLGS:
if (srcp >= eom) {
errno = EMSGSIZE;
return (-1);
}
if (len < 0)
len = srcp - src + 1;
srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff));
if (srcp < msg || srcp >= eom) { /* Out of range. */
errno = EMSGSIZE;
return (-1);
}
checked += 2;
/*
* Check for loops in the compressed name;
* if we've looked at the whole message,
* there must be a loop.
*/
if (checked >= eom - msg) {
errno = EMSGSIZE;
return (-1);
}
break;
default:
errno = EMSGSIZE;
return (-1); /* flag error */
}
}
*dstp = '\0';
if (len < 0)
len = srcp - src;
return (len);
}
/*
* ns_name_pack(src, dst, dstsiz, dnptrs, lastdnptr)
* Pack domain name 'domain' into 'comp_dn'.
* return:
* Size of the compressed name, or -1.
* notes:
* 'dnptrs' is an array of pointers to previous compressed names.
* dnptrs[0] is a pointer to the beginning of the message. The array
* ends with NULL.
* 'lastdnptr' is a pointer to the end of the array pointed to
* by 'dnptrs'.
* Side effects:
* The list of pointers in dnptrs is updated for labels inserted into
* the message as we compress the name. If 'dnptr' is NULL, we don't
* try to compress names. If 'lastdnptr' is NULL, we don't update the
* list.
*/
static int
ns_name_pack(src, dst, dstsiz, dnptrs, lastdnptr)
const u_char *src;
u_char *dst;
int dstsiz;
const u_char **dnptrs;
const u_char **lastdnptr;
{
u_char *dstp;
const u_char **cpp, **lpp, *eob, *msg;
const u_char *srcp;
int n, l;
srcp = src;
dstp = dst;
eob = dstp + dstsiz;
lpp = cpp = NULL;
if (dnptrs != NULL) {
if ((msg = *dnptrs++) != NULL) {
for (cpp = dnptrs; *cpp != NULL; cpp++)
(void)NULL;
lpp = cpp; /* end of list to search */
}
} else
msg = NULL;
/* make sure the domain we are about to add is legal */
l = 0;
do {
n = *srcp;
if ((n & NS_CMPRSFLGS) != 0) {
errno = EMSGSIZE;
return (-1);
}
l += n + 1;
if (l > MAXCDNAME) {
errno = EMSGSIZE;
return (-1);
}
srcp += n + 1;
} while (n != 0);
srcp = src;
do {
/* Look to see if we can use pointers. */
n = *srcp;
if (n != 0 && msg != NULL) {
l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
(const u_char * const *)lpp);
if (l >= 0) {
if (dstp + 1 >= eob) {
errno = EMSGSIZE;
return (-1);
}
*dstp++ = (l >> 8) | NS_CMPRSFLGS;
*dstp++ = l % 256;
return (dstp - dst);
}
/* Not found, save it. */
if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
(dstp - msg) < 0x4000) {
*cpp++ = dstp;
*cpp = NULL;
}
}
/* copy label to buffer */
if (n & NS_CMPRSFLGS) { /* Should not happen. */
errno = EMSGSIZE;
return (-1);
}
if (dstp + 1 + n >= eob) {
errno = EMSGSIZE;
return (-1);
}
memcpy(dstp, srcp, n + 1);
srcp += n + 1;
dstp += n + 1;
} while (n != 0);
if (dstp > eob) {
if (msg != NULL)
*lpp = NULL;
errno = EMSGSIZE;
return (-1);
}
return (dstp - dst);
}
/*
* ns_name_uncompress(msg, eom, src, dst, dstsiz)
* Expand compressed domain name to presentation format.
* return:
* Number of bytes read out of `src', or -1 (with errno set).
* note:
* Root domain returns as "." not "".
*/
static int
ns_name_uncompress(msg, eom, src, dst, dstsiz)
const u_char *msg;
const u_char *eom;
const u_char *src;
char *dst;
size_t dstsiz;
{
u_char tmp[NS_MAXCDNAME];
int n;
if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
return (-1);
if (ns_name_ntop(tmp, dst, dstsiz) == -1)
return (-1);
return (n);
}
/*
* ns_name_compress(src, dst, dstsiz, dnptrs, lastdnptr)
* Compress a domain name into wire format, using compression pointers.
* return:
* Number of bytes consumed in `dst' or -1 (with errno set).
* notes:
* 'dnptrs' is an array of pointers to previous compressed names.
* dnptrs[0] is a pointer to the beginning of the message.
* The list ends with NULL. 'lastdnptr' is a pointer to the end of the
* array pointed to by 'dnptrs'. Side effect is to update the list of
* pointers for labels inserted into the message as we compress the name.
* If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
* is NULL, we don't update the list.
*/
static int
ns_name_compress(src, dst, dstsiz, dnptrs, lastdnptr)
const char *src;
u_char *dst;
size_t dstsiz;
const u_char **dnptrs;
const u_char **lastdnptr;
{
u_char tmp[NS_MAXCDNAME];
if (ns_name_pton(src, tmp, sizeof tmp) == -1)
return (-1);
return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
}
/*
* ns_name_skip(ptrptr, eom)
* Advance *ptrptr to skip over the compressed name it points at.
* return:
* 0 on success, -1 (with errno set) on failure.
*/
static int
ns_name_skip(ptrptr, eom)
const u_char **ptrptr;
const u_char *eom;
{
const u_char *cp;
u_int n;
cp = *ptrptr;
while (cp < eom && (n = *cp++) != 0) {
/* Check for indirection. */
switch (n & NS_CMPRSFLGS) {
case 0: /* normal case, n == len */
cp += n;
continue;
case NS_CMPRSFLGS: /* indirection */
cp++;
break;
default: /* illegal type */
errno = EMSGSIZE;
return (-1);
}
break;
}
if (cp > eom) {
errno = EMSGSIZE;
return (-1);
}
*ptrptr = cp;
return (0);
}
/* Private. */
/*
* special(ch)
* Thinking in noninternationalized USASCII (per the DNS spec),
* is this characted special ("in need of quoting") ?
* return:
* boolean.
*/
static int
special(ch)
int ch;
{
switch (ch) {
case 0x22: /* '"' */
case 0x2E: /* '.' */
case 0x3B: /* ';' */
case 0x5C: /* '\\' */
/* Special modifiers in zone files. */
case 0x40: /* '@' */
case 0x24: /* '$' */
return (1);
default:
return (0);
}
}
/*
* printable(ch)
* Thinking in noninternationalized USASCII (per the DNS spec),
* is this character visible and not a space when printed ?
* return:
* boolean.
*/
static int
printable(ch)
int ch;
{
return (ch > 0x20 && ch < 0x7f);
}
/*
* Thinking in noninternationalized USASCII (per the DNS spec),
* convert this character to lower case if it's upper case.
*/
static int
mklower(ch)
int ch;
{
if (ch >= 0x41 && ch <= 0x5A)
return (ch + 0x20);
return (ch);
}
/*
* dn_find(domain, msg, dnptrs, lastdnptr)
* Search for the counted-label name in an array of compressed names.
* return:
* offset from msg if found, or -1.
* notes:
* dnptrs is the pointer to the first name on the list,
* not the pointer to the start of the message.
*/
static int
dn_find(domain, msg, dnptrs, lastdnptr)
const u_char *domain;
const u_char *msg;
const u_char * const *dnptrs;
const u_char * const *lastdnptr;
{
const u_char *dn, *cp, *sp;
const u_char * const *cpp;
u_int n;
for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
dn = domain;
sp = cp = *cpp;
while ((n = *cp++) != 0) {
/*
* check for indirection
*/
switch (n & NS_CMPRSFLGS) {
case 0: /* normal case, n == len */
if (n != *dn++)
goto next;
for ((void)NULL; n > 0; n--)
if (mklower(*dn++) != mklower(*cp++))
goto next;
/* Is next root for both ? */
if (*dn == '\0' && *cp == '\0')
return (sp - msg);
if (*dn)
continue;
goto next;
case NS_CMPRSFLGS: /* indirection */
cp = msg + (((n & 0x3f) << 8) | *cp);
break;
default: /* illegal type */
errno = EMSGSIZE;
return (-1);
}
}
next: ;
}
errno = ENOENT;
return (-1);
}
/* -- From BIND 8.1.1. -- */
+40 -4
View File
@@ -55,7 +55,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)res_send.c 8.1 (Berkeley) 6/4/93";
static char rcsid[] = "$Id: res_send.c,v 8.13 1997/06/01 20:34:37 vixie Exp $";
static char rcsid[] = "$Id: res_send.c,v 8.14 1998/04/07 04:59:46 vixie Exp $";
#endif /* LIBC_SCCS and not lint */
/* change this to "0"
@@ -214,6 +214,8 @@ res_isourserver(inp)
/* int
* res_nameinquery(name, type, class, buf, eom)
* look for (name,type,class) in the query section of packet (buf,eom)
* requires:
* buf + HFIXESDZ <= eom
* returns:
* -1 : format error
* 0 : not found
@@ -238,6 +240,8 @@ res_nameinquery(name, type, class, buf, eom)
if (n < 0)
return (-1);
cp += n;
if (cp + 2 * INT16SZ > eom)
return (-1);
ttype = _getshort(cp); cp += INT16SZ;
tclass = _getshort(cp); cp += INT16SZ;
if (ttype == type &&
@@ -267,6 +271,9 @@ res_queriesmatch(buf1, eom1, buf2, eom2)
register const u_char *cp = buf1 + HFIXEDSZ;
int qdcount = ntohs(((HEADER*)buf1)->qdcount);
if (buf1 + HFIXEDSZ > eom1 || buf2 + HFIXEDSZ > eom2)
return (-1);
if (qdcount != ntohs(((HEADER*)buf2)->qdcount))
return (0);
while (qdcount-- > 0) {
@@ -277,6 +284,8 @@ res_queriesmatch(buf1, eom1, buf2, eom2)
if (n < 0)
return (-1);
cp += n;
if (cp + 2 * INT16SZ > eom1)
return (-1);
ttype = _getshort(cp); cp += INT16SZ;
tclass = _getshort(cp); cp += INT16SZ;
if (!res_nameinquery(tname, ttype, tclass, buf2, eom2))
@@ -302,6 +311,10 @@ res_send(buf, buflen, ans, anssiz)
/* errno should have been set by res_init() in this case. */
return (-1);
}
if (anssiz < HFIXEDSZ) {
errno = EINVAL;
return (-1);
}
DprintQ((_res.options & RES_DEBUG) || (_res.pfcode & RES_PRF_QUERY),
(stdout, ";; res_send()\n"), buf, buflen);
v_circuit = (_res.options & RES_USEVC) || buflen > PACKETSZ;
@@ -446,6 +459,17 @@ read_len:
len = anssiz;
} else
len = resplen;
if (len < HFIXEDSZ) {
/*
* Undersized message.
*/
Dprint(_res.options & RES_DEBUG,
(stdout, ";; undersized: %d\n", len));
terrno = EMSGSIZE;
badns |= (1 << ns);
res_close();
goto next_ns;
}
cp = ans;
while (len != 0 &&
(n = read(s, (char *)cp, (int)len)) > 0) {
@@ -601,12 +625,12 @@ read_len:
if ((long) timeout.tv_sec <= 0)
timeout.tv_sec = 1;
timeout.tv_usec = 0;
if (s+1 > FD_SETSIZE) {
Perror(stderr, "s+1 > FD_SETSIZE", EMFILE);
wait:
if (s < 0 || s >= FD_SETSIZE) {
Perror(stderr, "s out-of-bounds", EMFILE);
res_close();
goto next_ns;
}
wait:
FD_ZERO(&dsmask);
FD_SET(s, &dsmask);
n = select(s+1, &dsmask, (fd_set *)NULL,
@@ -638,6 +662,18 @@ read_len:
goto next_ns;
}
gotsomewhere = 1;
if (resplen < HFIXEDSZ) {
/*
* Undersized message.
*/
Dprint(_res.options & RES_DEBUG,
(stdout, ";; undersized: %d\n",
resplen));
terrno = EMSGSIZE;
badns |= (1 << ns);
res_close();
goto next_ns;
}
if (hp->id != anhp->id) {
/*
* response from old query, ignore it.
+39 -24
View File
@@ -1,12 +1,12 @@
See the README file for information on how to report bugs (and what
will happen to your bug reports if you do).
See the Cederqvist manual (cvs.texinfo) for information on how to
report bugs (and what will happen to your bug reports if you do).
The following is a list of some of the known bugs. It may or may not
be comprehensive. We would dearly love for people to volunteer to
help us keep it up to date (for starters, if you notice any
inaccuracies, please let bug-cvs know as described in README). There
are some other reported bugs in MINOR-BUGS; the difference, at least
in theory, is that those bugs are less serious.
inaccuracies, please let bug-cvs know as described in the Cederqvist
manual). There are some other reported bugs in MINOR-BUGS; the
difference, at least in theory, is that those bugs are less serious.
* For platform-specific information (in some cases including known
@@ -15,25 +15,45 @@ similar file for the unix-like operating systems (not yet, at least).
This file also might contain some platform-specific bugs.
* Exporting binary files on non-unix clients with "cvs export" does
not work. The workaround is to use "cvs checkout" instead. If you
are thinking of fixing this, check out the comment "For cvs export,
assume it is a text file." in client.c.
* One cannot specify some files as binary in a "cvs import" using
CVSROOT/cvswrappers (for why, note that client_process_import_file has
no way of knowing about CVSROOT/cvswrappers which is off on the
server).
* Wrappers do not work client/server, and there are a variety of other
* I don't think that "cvs add" honors any of the -k wrappers, at least
not in client/server mode. I would think it should. Getting
CVSROOT/cvswrappers to work would presumably best be done by keeping a
copy of it in the CVS directory on the client, as has also been
discussed for CVS/Template, &c. Getting a client-side .cvswrappers to
work is a separate issue.
* Need more work on the procedure for fixing it if a binary file is
accidentally added in text mode (sanity.sh test cases, better
documentation, probably update and/or admin -kb should update
the -k setting in CVS/Entries).
* Wrappers (-t/-f) do not work client/server, and there are a variety of other
bugs and annoyances with wrappers.
* Some people have reported seeing the message "dying gasps from %s
unexpected" (where %s is the name of your server) when using
client/server CVS. One person reported that this had to do with using
pserver and trying to run a program not in the PATH (which is set up
by inetd, I think) from one of the *info scripts. But noone has
carefully tracked this down (is it caused by something in the server
writing to stdout or stderr when it shouldn't? But then wouldn't the
"dying gasps" message be preceded by "warning: unrecognized response
`%s' from cvs server"?).
* If your login name contains a space or various other characters
(particularly an issue on Windows), CVS will have trouble (it will
write invalid RCS files, probably). The fix would be to have CVS
change such characters to underscores before writing them to the RCS
file. Furthermore, the LOGNAME or USER environment variables usually
won't override the system login name, so this can be hard to work
around.
* If you specify the -w global option to client/server CVS, it only
overrides a CVSREAD environment variable set on the client, not a
CVSREAD variable which was set on the server (for example, in .bashrc
when the server was run via rsh). The fix of course will be to
provide a "Option-read-write" request which sends -w, in addition to
"Global_option -r" which sends -r.
* "make remotecheck" sometimes fails on test 187a3 with
@@ -57,11 +77,6 @@ file's description.
(and from the repository)?
* `cvs checkout -d nested/dir/path <module>' just doesn't work. The
simpler version -- `cvs checkout -d single-dir <module>' works,
however.
* The following bug was reported against CVS 1.9:
Create a module named test with a file named test in it.
+523
View File
@@ -1,3 +1,526 @@
1998-03-04 Jim Kingdon <[email protected]>
* acconfig.h, configure.in: Add PRESERVE_PERMISSIONS_SUPPORT and
always define it.
* configure, config.h.in: Regenerated.
Tue Feb 17 18:32:36 1998 Ian Lance Taylor <[email protected]>
* configure.in: Add memmove back to AC_REPLACE_FUNCS list.
* configure: Rebuild.
1998-02-16 Jim Kingdon <[email protected]>
* TODO (190): Remove "failed to check out" from commit.c from
lists of error messages suppressed by -q; it no longer is.
4 Feb 1998 Jim Kingdon
* cvsnt.mak: The usual "because Visual C++ feels like it"
changes. These ones seem to have to do with reordering
files and release versus debug configurations, mainly.
Fri Jan 30 10:37:40 1998 Jim Kingdon <[email protected]>
* INSTALL: Update which version of CVS was tested with EMX.
15 Jan 1998 W. L. Estes <[email protected]>
and Jim Kingdon <[email protected]>
* cvs.spec, Makefile.in: Fix some problems with the spec file
distributed with cvs. RPM chokes on a build root of slash, so
that is gone now. CVS is relocatable (as far as I know) so I
added a prefix tag. The source location was incorrect and in
fixing that I had to add a `g' flag to one of the sed commands in
the Makefile.in so the spec file gets generated correctly.
13 Jan 1998 Jim Kingdon
* cvsnt.mak: Add lib/fncase.c. Plus of course the usual
"because Visual C++ feels like it" changes.
Tue Jan 13 16:49:38 1998 Ian Lance Taylor <[email protected]>
* acconfig.h (USE_SETMODE_STDOUT): Add undef line.
(HAVE_SETMODE): Likewise.
* configure.in: If cygwin32, define USE_SETMODE_STDOUT and
HAVE_SETMODE.
* configure, config.h.in: Regenerate.
* acconfig.h (UTIME_EXPECTS_WRITABLE): Add undef line.
* configure.in: If cygwin32, define UTIME_EXPECTS_WRITABLE.
* configure, config.h.in: Regenerate.
* configure.in: Add test for cygwin32, and set LIBOBJS and LIBS
accordingly.
* configure: Regenerate.
Sun Jan 11 11:43:55 1998 Jim Kingdon <[email protected]>
* HACKING: Add example of indentation for switch statement. I
always have to look this one up, and it seems worthwhile to
specify it here rather than be unsure which switch statement in
CVS to use as an example.
Wed Jan 7 09:41:08 1998 Jim Kingdon <[email protected]>
* TODO: Revise item 149 (concerning changing CVS/Root and such).
"This whole area is a rather bad pile of individual decisions which
accumulated over time, some of them probably bad decisions with
hindsight."
Wed Dec 31 09:25:20 1997 Jim Kingdon <[email protected]>
* FAQ: Re-import from FAQ-O-Matic. Features a change regarding
removing directories.
Tue Dec 23 08:28:44 1997 Jim Kingdon <[email protected]>
* README.VMS, INSTALL, HACKING, BUGS, README: Change bug-cvs
address from prep.ai.mit.edu to gnu.org per email from Martin
Hamilton. When referring to bug-reporting procedure refer to
Cederqvist not README.
Tue Dec 16 13:13:53 1997 Jim Kingdon <[email protected]>
* FAQ: Re-import from FAQ-O-Matic. The content is the same, but
instead of being from Mosaic, it is from "lynx -dump -nolist".
This output is somewhat better (for example, it is formatted for
80 columns or so, rather than Mosaic which is rather
inconsistent), and also lynx is free and still maintained whereas
NCSA Mosaic is proprietary and no longer maintained.
* FAQ: Re-import from FAQ-O-Matic. Features an update to the
Sablime question.
* NEWS: Add item about GSSAPI.
Fri Dec 12 14:00:57 1997 Ian Lance Taylor <[email protected]>
* configure.in: Add --with-gssapi option, and look for gssapi.h
and GSSAPI Kerberos v5 libraries.
* acconfig.h: Add HAVE_GSSAPI.
* configure, config.h.in: Regenerate.
Thu Dec 11 15:58:06 1997 Eric Mumpower <[email protected]>
* configure.in: Let --with-krb4 override the system Kerberos
header files and libraries, if any.
* configure: Regenerate.
Thu Dec 4 20:01:02 1997 Jim Kingdon <[email protected]>
* configure.in (AC_CHECK_FUNCS): Remove mempcpy per change to
src/rcs.c.
* configure: Regenerated (never was regenerated after getwd change).
1997-12-04 Jim Meyering <[email protected]>
* configure.in (AC_CHECK_FUNCS): Add mempcpy.
Thu Dec 4 10:42:32 1997 Jim Kingdon <[email protected]>
* BUGS: Update for kfogel .cvswrappers fix.
Tue Dec 2 22:14:03 1997 Jim Kingdon <[email protected]>
* MINOR-BUGS: Update per info-cvs mail from Steve Cameron.
1997-11-29 Jim Kingdon
* cvsnt.mak: Remove lib/getwd.c (see lib/ChangeLog for rationale).
* cvsnt.mak: The usual "because Developer Studio feels like
it" changes.
Sat Nov 29 22:10:32 1997 Jim Kingdon <[email protected]>
* configure.in (AC_REPLACE_FUNCS): Remove getwd (see lib/ChangeLog
for rationale).
Mon Nov 24 10:36:39 1997 Jim Kingdon <[email protected]>
* INSTALL: Update QNX information per email from Michael Hunter of
QNX.
Wed Nov 19 17:44:21 1997 Jim Kingdon <[email protected]>
* INSTALL: Add Sequent entry per bug-cvs report.
1997-11-17 Karl Fogel <[email protected]>
* BUGS: Remove item about exporting binary files to non-unix
clients; this is fixed.
Mon Nov 17 09:07:44 1997 Jim Kingdon <[email protected]>
* BUGS: Add yet another binary files problem.
1997-11-14 Karl Fogel <[email protected]>
* cvsnt.mak: updated for diff/ subdir.
Fri Nov 14 12:25:10 1997 Jim Kingdon <[email protected]>
* BUGS: Remove item about dying gasps message. At least one known
cause has been fixed.
Wed Nov 12 20:24:49 1997 Jim Kingdon <[email protected]>
* FAQ: Re-import from FAQ-O-Matic. Features a wording fix to
"What do I do first? How do I create a Repository?" and a
formatting fix (makes it clear which bullets are under what)
to "What is a module?"
* NEWS: Add item about RCS library. Remove item about RCSBIN in
CVSROOT/config.
* INSTALL: Simplify instructions to reflect the fact that one need
not any longer install RCS and GNU diff.
* PROJECTS: Remove item about RCS library; it is done.
Mon, 10 Nov 1997 Jim Kingdon
* cvsnt.dsp: For diff/diff.c, also look for include files in
diff directory. This means we get diff/system.h not lib/system.h.
Sun Nov 9 16:16:56 1997 Jim Kingdon <[email protected]>
* TODO (#195): New item, about rsync and such issues.
Thu Nov 6 14:29:14 1997 Jim Kingdon <[email protected]>
* TODO (#194): New item, about separated metadata.
* TODO (#186): Rewrite paragraph on CVSclusters to be clearer
about what this can do and why I think it is a cool idea.
Sun Nov 2 19:34:30 1997 Jim Kingdon <[email protected]>
* DEVEL-CVS: Wording fix: want to specify that new developers are
granted checkin access and the ability to send to devel-cvs, not
specify whether this is implemented via an "account" (whatever
that is) (editorial change, not run by devel-cvs).
Fri Oct 31 16:30:57 1997 Jim Kingdon <[email protected]>
* NEWS: Mention admin -o rev1::rev2.
Wed Oct 29 08:40:05 1997 Jim Kingdon <[email protected]>
* TODO: Add item 193, about alternatives to timestamps in CVS/Entries.
Tue Oct 28 19:59:48 1997 Jim Kingdon <[email protected]>
* TODO (190): "rcs failed" message is no longer affected by global
-q option.
1997-10-28 Jim Kingdon
* .cvsignore: Add Visual C++ files du jour, namely
{diff,vc50}.{pdb,idb,pch}.
* cvsnt.dsp: Add files for diff library. The custom build
stuff for diff/version.c and diff/diff.c was to deal with
there also being a src/version.c and src/diff.c. There
might be an easier way.
Mon Oct 27 11:21:15 1997 Jim Kingdon <[email protected]>
* FAQ: Re-import from FAQ-O-Matic. Features an edit from Larry
Jones regarding CVS on Windows.
Mon Oct 20 15:23:17 1997 Jim Kingdon <[email protected]>
* BUGS: Add item about spaces in login names.
Mon Oct 20 10:25:42 1997 Hannes R. Boehm <[email protected]>
* INSTALL (Tested platforms): Add Red Hat Linux 4.2.
Wed Oct 15 10:55:20 1997 Jim Kingdon <[email protected]>
* TODO (#192): Also mention issue with opening connections to new
servers if CVSROOT changes.
* TODO (#191): Add thoughts on external difference programs.
1997-10-11 Noel Cragg <[email protected]>
* BUGS: remove note about the `-d' flag bug that was just fixed.
* TODO: new item 192.
Thu Oct 9 12:59:28 1997 Jim Kingdon <[email protected]>
* TODO: Revise item #182 to be clearer and to point to the
unofficial patch.
Thu Sep 25 14:48:26 1997 Jim Kingdon <[email protected]>
* build.com: Also recurse into diff directory.
Wed Sep 24 10:35:50 1997 Jim Kingdon <[email protected]>
* configure.in: Don't check for system-supplied regex matcher; see
comment for rationale.
* configure: Regenerated.
Tue Sep 23 16:00:25 1997 Jim Kingdon <[email protected]>
* BUGS: Add item about cvs add and -k wrappers.
Mon Sep 22 11:21:11 1997 Jim Kingdon <[email protected]>
* TODO: Revise item #191 in response to xdelta 1.10 release and a
few other random thoughts.
Sun Sep 21 17:56:28 1997 Jim Kingdon <[email protected]>
* configure.in: Instead of checking for memchr, just define
HAVE_MEMCHR and HAVE_STRCHR.
Add comment about AC_FUNC_VFORK and vfork in general.
* acconfig.h: Add HAVE_MEMCHR and HAVE_STRCHR.
* configure, config.h.in: Regenerated.
* config.h.in: Regenerate using autoheader from autoconf 2.10.
Sat Sep 20 01:17:10 1997 Tim Pierce <[email protected]>
[notes: (1) includes the patches to config.h.in which he sent
(presumably generated), (2) I have omitted a change, which was
sent without a ChangeLog entry, to change re_exec to
re_compile_pattern in configure.in, (3) Also adds diff/Makefile in
AC_OUTPUT -kingdon]
* Makefile.in (USOURCE_SUBDIRS, check, remotecheck, installcheck):
Add diff.
Note that AC_CHECK_FUNCS(vfork)
has been replaced by AC_FUNC_VFORK... libdiff wants the more
specific test, and it seems unlikely to break CVS.
* configure.in: Add AC_FUNC_CLOSEDIR_VOID, AC_FUNC_VFORK,
AC_STRUCT_ST_BLKSIZE.
(AC_CHECK_HEADERS): Add limits.h and sys/file.h.
(AC_REPLACE_FUNCS): Add memchr.
(AC_CHECK_FUNCS): Remove vfork.
Fri Sep 19 09:59:33 1997 Jim Kingdon <[email protected]>
* TODO: Add item #191, concerning how to store binary files.
Wed Sep 17 16:13:49 1997 Jim Kingdon <[email protected]>
* TESTS: Add ideas about ability to pass spaces in arguments, and
stdin, to the program under test, as something to consider for the
different test frameworks.
Tue Sep 16 00:14:55 1997 Jim Kingdon <[email protected]>
* BUGS: Add item about importing binary files.
* TODO: Adjust item #150 to reflect the fact that the client is
not quite so mean about tossing the log message as it was.
Fri Sep 12 13:04:31 1997 Jim Kingdon <[email protected]>
* INSTALL: Update Windows entries per email from Greg Strockbine
<[email protected]>.
Thu Sep 11 15:03:21 1997 Jim Kingdon <[email protected]>
* TODO: New item #190, about meaning of -q and -Q global options.
Wed Sep 10 18:48:41 1997 Jim Kingdon <[email protected]>
* TODO: A few more thoughts on "cvs message" (item 150).
Tue Sep 9 22:20:15 1997 Jim Kingdon <[email protected]>
* README.VMS (Notes regarding compiling on VAX/VMS): Add item
about mode_t and pid_t.
Sun Sep 7 17:34:03 1997 Jim Kingdon <[email protected]>
* FAQ: Re-import from FAQ-O-Matic. The metavariables are back.
* FAQ: Re-import from FAQ-O-Matic. Features comment from
julian@whistle about update -r branch:date. It also clobbered the
metavariables (confusion about "<" as data vs. HTML tag I would
guess), which I plan on fixing in a moment.
* configure.in: Add comment about re_exec and regexp syntax.
* configure.in (AC_REPLACE_FUNCS): Remove strdup; CVS was long
ago converted to use its own routine xstrdup.
* configure: Regenerated.
Sat Sep 6 00:08:20 1997 Jim Kingdon <[email protected]>
* FAQ: Re-import from FAQ-O-Matic. In particular: GIC info
updated, binary files updated (e.g. -kb not -ko), rename database
and rCVS info updated (refer to TODO), tweaks to section on
contributing (HACKING, DEVEL-CVS, &c), Cyclic info updated
(e.g. remove Indiana address), usenet info updated
(e.g. comp.software.config-mgmt not gnu.*).
Fri Sep 5 20:46:26 1997 Jim Kingdon <[email protected]>
* FAQ: Add another introductory paragraph which talks about out of
date material from 1995 FAQ.
* FAQ: Re-import from FAQ-O-Matic. This was mainly as a proof of
concept that I could edit the Cygnus question and have the diffs
come out looking right (which worked), but I also discovered that
the previous checkin was truncated partway through.
* FAQ: Replace file with an introductory paragraph plus a
downloaded copy of Molli's FAQ-O-Matic. I believe the content
closely matches the 1995 Grubbs FAQ but because everything is
re-ordered it would be painstaking work to verify this.
Thu Sep 4 17:33:53 1997 Jim Kingdon <[email protected]>
* BUGS: Add item about -w global option and client/server.
Wed Sep 3 23:03:34 1997 Noel Cragg <[email protected]>
* TODO: Verbosify verbiage in item #189.
Wed Sep 3 14:14:54 1997 Jim Kingdon <[email protected]>
* TODO: Add item #189, concerning renames.
Sat Aug 30 03:26:57 1997 Jim Kingdon <[email protected]>
* TODO: Fix typo in Noel's change.
Sat Aug 30 03:17:36 1997 Noel Cragg <[email protected]>
* TODO: Add a header so emacs chooses the correct editing mode.
Made several entries more verbose (expanded some of the less
well-known acronyms and/or added pointers to further
documentation).
Wed Aug 20 09:51:52 1997 Jim Kingdon <[email protected]>
* INSTALL: Remove "SparcClassing" typo that has been there for
a while.
Wed Aug 20 09:51:52 1997 Jim Kingdon <[email protected]>
and Loren James Rittle <[email protected]>
* INSTALL: Update information for SunOS4, Solaris, Digital Unix,
and HPUX.
Fri Aug 15 16:42:12 1997 Jim Kingdon <[email protected]>
* INSTALL: Remove the "CVS 1.6" crud; it really isn't needed. Add
paragraph about the meaning of the last three arguments to cvs
import.
Thu Aug 14 14:42:53 1997 Jim Kingdon <[email protected]>
and Loren James Rittle <[email protected]>
* INSTALL: Update information for SunOS4 and Solaris.
Mon Aug 4 00:02:24 1997 Jim Kingdon <[email protected]>
* BUGS: Be specific about wrappers not working client/server.
Sat Aug 2 09:23:50 1997 Jim Kingdon <[email protected]>
* INSTALL: In step 4, be more generic (the CVS sources are just an
example, and people might not have them handy).
Fri Jul 25 17:02:30 1997 Jim Kingdon <[email protected]>
* INSTALL: Refer to cvs.texinfo as the Cederqvist manual; that
seems to be the description which best applies no matter how it
was obtained. Be a little more explicit about the "$" prompt
convention and setting environment variables. Use double quotes
because they work on both DOS and Unix.
Thu Jul 24 12:22:49 1997 Jim Kingdon <[email protected]>
* NEWS: Also mention SystemAuth.
* INSTALL (MIPS): Add more detailed report concerning Irix 6.2,
as reported by [email protected] (Larry Jones).
Tue Jul 22 17:35:31 1997 Jim Kingdon <[email protected]>
* INSTALL (PowerPC): Add item for Lynx 2.5.
21 Jul 1997 Jim Kingdon
* Makefile.in (DISTFILES): Add cvsnt.dsp.
Mon Jul 21 09:40:10 1997 Jim Kingdon <[email protected]>
* configure.in: Adjust comment regarding version of autoconf which
introduced --bindir.
Fri Jul 18 09:47:12 1997 Jim Kingdon <[email protected]>
* TODO: Remove item 161 (the comments in cvs.texinfo have a much
more complete discussion of date format issues). In item 30,
change "patch" to "rdiff" and expand discussion slightly. Remove
item 64 (the performance issues in initial checkout have probably
changed quite a bit since that was written and in any event it
isn't particularly useful without specifics of what is slow and
ideas for speeding it up).
* INSTALL: Reorganize to separate out building/installing CVS
executables from what to do once you have them. Adjust Visual C++
instructions to deal with Visual C++ 5.x. Add brief mentions of
platforms other than unix and Windows.
Thu Jul 17 21:13:16 1997 Jim Kingdon <[email protected]>
* TODO: In item 39, talk about how PRCS 1.2 as a possible model.
Sat Jul 12 15:43:01 1997 Jim Kingdon <[email protected]>
* HACKING: Rewrite paragraph on arbitrary limits to reflect the
fact that the known arbitrary limits are gone.
8 Jul 1997 Jim Kingdon
* cvsnt.dsp: Turn on browse information.
Thu Jul 3 10:07:01 1997 Jim Kingdon <[email protected]>
* INSTALL: Sending exact suggested text is almost as good as a diff.
* INSTALL (i386 family): Add lines about Watcom and EMX on OS/2.
* TODO: Add notes about popt and option parsing in general.
Wed Jul 2 13:11:03 1997 Jim Kingdon <[email protected]>
* TODO: Update item 149 to reflect CVS/Root.
* TODO: Add item 187, about usage errors vs. help messages.
Mon Jun 23 18:24:13 1997 Jim Kingdon <[email protected]>
* NEWS: Adjust mention of read-only access in the light of
changes to cvs.texinfo.
* TODO: Add item 186, concerning multisite.
Sun, 22 Jun 1997 Jim Kingdon
* cvsnt.dsp: New file. This apparently is what Visual C++ 5.0
uses in lieu of a .mak file (or so it seems).
* .cvsignore: Add cvsnt.opt cvsnt.dsw cvsnt.plg. These seem to
be the generated files du jour for Visual C++ 5.0.
Thu Jun 19 17:16:39 1997 Jim Kingdon <[email protected]>
* NEWS: Add item about CVSROOT/config.
Wed Jun 18 00:00:02 1997 Jim Kingdon <[email protected]>
* NEWS: Mention pserver --allow-root.
+1 -1
View File
@@ -50,7 +50,7 @@ interest), then one of the developers can ask the devel-cvs mailing
list whether it is OK to make this person a developer (after first
sending the prospective developer a copy of this file and then having
the prospective developer say they want to be a developer). If there
are no objections, an account will be created.
are no objections, the person will be made a developer.
----------------------------------------------------------------------
Policy regarding checkout-only access:
+8585 -11
View File
File diff suppressed because it is too large. Load diff
+2 -1
View File
@@ -13,11 +13,12 @@ lib/getdate.c
tools/pcl-cvs/*.ps
tools/pcl-cvs/*.aux
tools/pcl-cvs/texinfo.tex
cvsnt.mak
cvsnt.*
cvs.spec
build.com
src/build_src.com
lib/build_lib.com
diff/build_diff.com
README.VMS
The following non-freebsd-specific directories were deleted:
+15 -8
View File
@@ -28,6 +28,12 @@ foo (arg)
bar (arg);
baz (arg);
}
switch (c)
{
case 'A':
aflag = 1;
break;
}
}
The file cvs-format.el contains settings for emacs and the NEWS file
@@ -64,12 +70,13 @@ but we want to fix that code. Of course, bad input data, a corrupt
repository, bad options, etc., should always print a real error
message instead.
We realize that CVS contains many arbitrary limits (such as PATH_MAX).
Do not do this in new code; we are trying to *fix* those arbitrary
limits. In particular, it should be possible to pass very long
arguments (e.g. from a WWW cgi script) to CVS without having it
overrun any buffers (which might create a security hole in the WWW
example).
Do not use arbitrary limits (such as PATH_MAX) except perhaps when the
operating system or some external interface requires it. We spent a
lot of time getting rid of them, and we don't want to put them back.
If you find any that we missed, please report it as with other bugs.
In most cases such code will create security holes (for example, for
anonymous readonly access via the CVS protocol, or if a WWW cgi script
passes client-supplied arguments to CVS).
Although this is a long-term goal, it also would be nice to move CVS
in the direction of reentrancy. This reduces the size of the data
@@ -145,7 +152,7 @@ context diffs or unidiffs for patches.
Note that all submitted changes may be distributed under the terms of
the GNU Public License, so if you don't like this, don't submit them.
Submit changes to bug-cvs@prep.ai.mit.edu.
Submit changes to bug-cvs@gnu.org.
Generally speaking if you follow the guidelines in this file you can
expect a yes or no answer about whether your patch is accepted. But
@@ -185,7 +192,7 @@ test-results.
One other list related to CVS development is bug-cvs. This is the
list which users are requested to send bug reports to. Anyone can
subscribe; to do so send mail to bug-cvs-request@prep.ai.mit.edu.
subscribe; to do so send mail to bug-cvs-request@gnu.org.
Other CVS discussions take place on the info-cvs mailing list
(send mail to [email protected] to subscribe) or on
+150 -98
View File
@@ -1,13 +1,106 @@
First, read the README file. If you're still happy...
First you need to obtain and install the CVS executables. If you got
a distribution which contains executables, consult the installation
instructions for that distribution. If you got source code, do not
panic. On many platforms building CVS from source code is a
straightforward process requiring no programming knowledge. See the
section BUILDING FROM SOURCE CODE at the end of this file, which
includes a list of platforms which have been tested.
-------------------------------------------------------------------------------
1) Take a look at the CVS documentation, if desired. For most
purposes you want doc/cvs.texinfo, also known as _Version Management
with CVS_ by Per Cederqvist et al. Looking at it might be as simple
as "info cvs" but this will depend on your installation; see README
for more details.
See what CVS can do for you, and if it fits your environment (or can
possibly be made to fit your environment). If things look good,
continue on. Alternately, just give CVS a try first then figure out
what it is good for.
2) Set the CVSROOT environment variable to where you want to put your
source repository. See the "Setting up the repository" section of
the Cederqvist manual for details, but the quick summary is just to
pick some directory. We'll use /src/master as an example. For
users of a POSIX shell (sh/bash/ksh) on unix, the following
commands can be placed in user's ~/.profile, ~/.bash_profile file;
or in the site-wide /etc/profile:
CVSROOT=/src/master; export CVSROOT
For C shell users on unix place the following commands in the
user's ~/.cshrc, ~/.login, or /etc/chsrc file:
setenv CVSROOT /src/master
For Windows users, supposing the repository will be in
d:\src\master, place the following line in c:\autoexec.bat. On
Windows 95, autoexec.bat might not already exist. In that case,
just create a new file containing the following line.
set CVSROOT=:local:d:\src\master
If these environment variables are not already set in your current
shell, set them now by typing the above line at the command prompt
(or source the login script you just edited).
The instructions for the remaining steps assume that you have set
the CVSROOT environment variable.
3) Create the master source repository. Again, the details are in
the "Setting up the repository" section of cvs.texinfo; the
one-line summary is:
$ cvs init
In this and subsequent examples we use "$" to indicate the command
prompt; do not type the "$".
4) It might be a good idea to jump right in and put some sources or
documents directly under CVS control. From within the top-level
directory of your source tree, run the following commands:
$ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
(Those last three items are, respectively, a repository location, a
"vendor tag", and a "release tag". You don't need to understand
them yet, but read the section "Starting new projects" in the
Cederqvist manual for details).
5) Having done step 4, one should be able to checkout a fresh copy of the
sources you just imported and hack away at the sources with the
following command:
$ cd
$ cvs checkout ccvs
This will make the directory "ccvs" in your current directory and
populate it with the appropriate files and directories.
6) You may wish to customize the various administrative files, in particular
modules. See the Cederqvist manual for details.
7) Read the NEWS file to see what's new.
8) Hack away.
-------------------------------------------------------------------------------
BUILDING FROM SOURCE CODE
Tested platforms
CVS has been tested on the following platforms. The most recent
version of CVS reported to have been tested is indicated, but more
recent versions of CVS probably will work too. Please send updates to
this list to bug-cvs@prep.ai.mit.edu (doing so in the form of a diff
to this file is encouraged). "tested" means, at a minimum, that CVS
compiles and appears to work on simple (manual) testing. In many
cases it also means "make check" and/or "make remotecheck" passes, but
we don't try to list the platforms for which that is true.
this list to bug-cvs@gnu.org (doing so in the form of a diff
to this file, or at least exact suggested text, is encouraged).
"tested" means, at a minimum, that CVS compiles and appears to work on
simple (manual) testing. In many cases it also means "make check"
and/or "make remotecheck" passes, but we don't try to list the
platforms for which that is true.
Alpha:
DEC Alpha running OSF/1 version 1.3 using cc (about 1.4A2)
@@ -15,6 +108,7 @@ Alpha:
DEC Alpha running OSF/1 version 2.1 (about 1.4A2)
DEC Alpha running OSF/1 version 3.0 (1.5.95) (footnote 7)
DEC Alpha running OSF/1 version 3.2 (1.9)
DEC Alpha running Digital UNIX v4.0C using gcc 2.7.2.2 (1.9.14)
DEC Alpha running VMS 6.2 (1.8.85 client-only)
Cray:
J90 (CVS 970215 snapshot)
@@ -22,10 +116,11 @@ Cray:
HPPA:
HP 9000/710 running HP-UX 8.07A using gcc (about 1.4A2)
HPPA running HP-UX 9 (1.8)
HPPA running HP-UX 10.01 (1.7)
HPPA 1.1 running HP-UX A.09.03 (1.5.95) (footnote 8)
HPPA 1.1 running HP-UX A.09.04 (1.7.1)
HPPA 9000/735 running HP-UX A.09.05 (1.8.87)
HPPA running HP-UX 10.01 (1.7)
HPPA running HP-UX 10.20 using gcc 2.7.2.2 (1.9.14)
NextSTEP 3.3 (1.7)
i386 family:
Solaris 2.4 using gcc (about 1.4A2)
@@ -33,17 +128,23 @@ i386 family:
Unixware 2.1 (1.8.86)
ISC 4.0.1 (1.8.87)
Linux (kernel 1.2.x) (1.8.86)
Linux (kernel 2.0.x, RedHat 4.2) (1.9)
BSDI 2.0 (1.4.93) (footnote 5)
FreeBSD 2.1.5-stable (1.8.87)
NextSTEP 3.3 (1.7)
SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
SCO OpenServer 5 (1.8.86)
Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
Lynx 2.3.0 080695 (1.6.86) (footnote 9)
Windows NT 3.51 (1.8.86 client; 1.8.3 local)
Windows NT 3.51 service pack 4 (1.9)
Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
Windows NT 4.0 (1.9 client and local)
Windows 95 (1.8.86 client and local)
QNX 4 (1.7 + obvious patches)
Windows 95 (1.9 client and local)
QNX (1.9.1 + patches for strippath() and va_list)
OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
OS/2 Version 3 using EMX 0.9c (1.9.22, client)
OS/2 Version 3 using Watcom version ? (? - has this been tested?)
m68k:
Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
NextSTEP 3.3p1 (1.8.87)
@@ -57,6 +158,7 @@ MIPS:
DECstation running Ultrix 4.3 (1.8.85)
SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
SGI running Irix 5.3 using gcc 2.7.2 (1.8.87)
SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
SGI running Irix-6.2 (1.9.8)
Siemens-Nixdorf RM600 running SINIX-Y (1.6)
PowerPC or RS/6000:
@@ -64,13 +166,15 @@ PowerPC or RS/6000:
IBM RS/6000 running AIX 3.2.5 (1.8)
IBM RS/6000 running AIX 4.1 using gcc and cc (about 1.4A2) (footnote 1)
Lynx 2.3.1 120495 (1.6.86) (footnote 9)
Lynx 2.5 (1.9) (footnote 10)
SPARC:
Sun SPARC running SunOS 4.1.x (1.8.87)
Sun SPARC running SunOS 4.1.x using gcc 2.7.2.1 (1.9.14)
Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
Sun SPARC running Solaris 2.5 (1.8.87)
Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
NextSTEP 3.3 (1.7)
Sun SparcClassing running Linux 2.0.17, gcc 2.7.2 (1.8.87)
Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
VAX:
VAX running VMS 6.2 (1.9+patches, client-only)
(see README.VMS for information on necessary hacks).
@@ -117,11 +221,19 @@ VAX:
So after running configure I had to undef HAVE_DIRENT_H and
define HAVE_SYS_DIR_H.
(footnote 10)
Had to compile with "make LIBS=-lbsd" (to get gethostbyname
and getservbyname).
(footnote 11)
when I do a `cvs init' I get this message:
ci: 'RCS/loginfo,v' is not a regular file
ci: RCS/loginfo,v: Invalid argument
cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
-------------------------------------------------------------------------------
Installation under Unix (if you got a binary distribution from
somewhere, install it according to procedure for that binary
distribution, then skip to step 5):
Building from source code under Unix:
1) Run "configure":
@@ -148,23 +260,8 @@ distribution, then skip to step 5):
Typically this can reduce the size of the executable by around 30%.
If you are using server or local CVS, RCS needs to be installed in
the user's PATH (or a path you have configured in src/options.h,
or a path specified with the -b option). If you don't have RCS,
you will need to get it from GNU as well. It is best to get the
version 5.7 (or later) version of RCS, available from
prep.ai.mit.edu in the file pub/gnu/rcs-5.7.tar.gz. If you do not
have RCS version 5.x (for example, if you are using the old RCS
shipped with some versions of HPUX), CVS will probably fail to work
entirely. To find out what version of RCS you have, invoke "co -V".
If it fails to print a version number, it is an old version.
If you want version control of files with binary data, make sure
that the RCS configure script finds GNU diff 1.15 or later and
notices that diff supports the -a option. CVS itself is much less
picky about which version of diff it uses, and you shouldn't need
to worry about that. If you are using GNU diff 2.6 or 2.7, you may
want to know about a (subtle) bug described in doc/DIFFUTILS-2.7-BUG.
Unlike previous versions of CVS, you do not need to install RCS
or GNU diff.
NOTE: The configure program will cache the results of the previous
configure execution. If you need to re-run configure from scratch, you
@@ -221,11 +318,8 @@ distribution, then skip to step 5):
END OF NOTE FOR NDBM GUNK.
2) Edit src/options.h. Appropriate things to look at may be the
invocation locations of programs like DIFF.
Also glance at the default values for the environment variables
that CVS uses, in particular, the RCSBIN variable, which holds the
path to where the RCS programs live on your system.
2) Edit src/options.h. The defaults should be reasonable, and in fact
if you are lazy you can safely skip this step.
3) Try to build it:
@@ -257,65 +351,6 @@ distribution, then skip to step 5):
Depending on your installation's configuration, you may need to be
root to do this.
5) Take a look at the CVS documentation.
$ man cvs
and
$ info cvs
See what it can do for you, and if it fits your environment (or can
possibly be made to fit your environment). If things look good,
continue on...
6) Set up the master source repository. See the "Setting up the repository"
section of cvs.texinfo for details; the one-line summary is (if you
are putting the repository in /src/master):
$ cvs -d /src/master init
7) Have all users of the CVS system set the CVSROOT environment
variable appropriately to reflect the placement of your source
repository. If the above example is used, the following commands
can be placed in user's ~/.profile, ~/.bash_profile file; or in the
site-wide /etc/profile:
CVSROOT=/src/master; export CVSROOT
for sh/bash/ksh users, or place the following commands in the user's
~/.cshrc, ~/.login, or /etc/chsrc file:
setenv CVSROOT /src/master
for csh/tcsh users. If these environment variables are not already set
in your current shell, set them now (or source the login script you
just edited). You will need to have the CVSROOT environment variable
set to continue on to the next step.
8) It might be a good idea to jump right in and put the CVS distribution
directly under CVS control. From within the top-level directory of the
CVS distribution (the one that contains this README file) do the
following commands:
$ make distclean
$ cvs import -m 'CVS 1.6 distribution' cvs CVS_DIST CVS-1_6
9) Having done step 8, one should be able to checkout a fresh copy of the
CVS distribution and hack away at the sources with the following command:
$ cd
$ cvs checkout cvs
This will make the directory "cvs" in your current directory and
populate it with the appropriate CVS files and directories.
10) You may wish to customize the various administrative files, in particular
modules. See cvs.texinfo for details.
11) Read the NEWS file to see what's new.
12) Hack away.
-------------------------------------------------------------------------------
Detailed information about your interaction with "configure":
@@ -351,13 +386,30 @@ behaviour:
appear to be.
-------------------------------------------------------------------------------
Installation under Windows NT:
Building from source code under Windows NT/95:
You may find interesting information in windows-NT/README.
1) Using Microsoft Visual C++ version 2.1, open the project `cvsnt.mak',
in the top directory of the CVS distribution.
1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsp',
in the top directory of the CVS distribution. If you have an older
version of Visual C++, take a look at windows-NT/README.
2) Choose "Build cvs.exe" from the "Project" menu.
3) MSVC will place the executable file cvs.exe in WinDebug, or whatever
3) MSVC will place the executable file cvs.exe in WinRel, or whatever
your target directory is.
-------------------------------------------------------------------------------
Building from source code under other platforms:
For OS/2, see os2/README and emx/README.
For VMS, see README.VMS
For Macintosh, see macintosh/README.MacCVS
For a Java client, see jCVS (which is a separate package from CVS
itself, but which might be preferable to the Macintosh port mentioned
above, for example).
-------------------------------------------------------------------------------
+2 -2
View File
@@ -45,8 +45,8 @@ particular reason to think the bug is fixed -kingdon, Sep 96).
...
I claim that CVS dirs should be ignored.
(I don't *think* this always happens; is "-I !" getting picked up somewhere
something like that? -kingdon, Sep 96)
(This reportedly happens if "cvs add CVS" (or "cvs add *")
is followed by "cvs status", in client/server mode - CVS 1.9).
* On remote checkout, files don't have the right time/date stamps in
the CVS/Entries files. Doesn't look like the C/S protocol has any
+6 -3
View File
@@ -89,12 +89,12 @@ DISTFILES = \
ChangeLog NEWS ChangeLog.zoo \
configure configure.in stamp-h.in config.h.in Makefile.in acconfig.h \
cvs-format.el mkinstalldirs install-sh \
cvsnt.mak \
cvsnt.mak cvsnt.dsp \
.cvsignore cvs.spec
### Subdirectories to run make in for the primary targets.
# Unix source subdirs, where we'll want to run lint and etags:
USOURCE_SUBDIRS = lib zlib src
USOURCE_SUBDIRS = lib zlib diff src
# All other subdirs:
SUBDIRS = ${USOURCE_SUBDIRS} man doc contrib tools \
windows-NT os2 emx macintosh vms
@@ -188,18 +188,21 @@ saber:
check:
cd lib ; $(MAKE) $(FLAGS_TO_PASS)
cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
cd diff ; $(MAKE) $(FLAGS_TO_PASS)
cd src ; $(MAKE) $(FLAGS_TO_PASS) check
.PHONY: remotecheck
remotecheck:
cd lib ; $(MAKE) $(FLAGS_TO_PASS)
cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
cd diff ; $(MAKE) $(FLAGS_TO_PASS)
cd src ; $(MAKE) $(FLAGS_TO_PASS) remotecheck
.PHONY: installcheck
installcheck:
cd lib ; $(MAKE) $(FLAGS_TO_PASS)
cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
cd diff ; $(MAKE) $(FLAGS_TO_PASS)
cd src ; $(MAKE) $(FLAGS_TO_PASS) installcheck
.PHONY: lint
@@ -239,7 +242,7 @@ spec:
echo > .fname cvs-`cat .version`
rm -f `cat .fname`.spec
sed < $(top_srcdir)/cvs.spec \
-e 's/@VERSION@/'`cat .version`'/' \
-e 's/@VERSION@/'`cat .version`'/g' \
> `cat .fname`.spec
+28 -4
View File
@@ -1,5 +1,30 @@
Changes since 1.9:
* One can now authenticate and encrypt using the GSSAPI network
security interface. For details see the description of :gserver: in
CVSROOT, and the -a global option.
* All access to RCS files is now implemented internally rather than by
calling RCS programs. The main user-visible consequence of this is
that there is no need to worry about making sure that CVS finds the
correct version of RCS. The -b global option and the RCSBIN setting
in CVSROOT/config are still accepted but don't do anything. The
$RCSBIN internal variable in administrative files is no longer
accepted.
* There is a new syntax, "cvs admin -orev1::rev2", which collapses the
revisions between rev1 and rev2 without deleting rev1 or rev2
themselves.
* There is a new administrative file CVSROOT/config which allows one
to specify miscellaneous aspects of CVS configuration. Currently
supported here:
- SystemAuth, allows you to prevent pserver from checking for system
usernames/passwords.
For more information see the "config" section of cvs.texinfo.
* When setting up the pserver server, one now must specify the
allowable CVSROOT directories in inetd.conf. See the Password
authentication server section of cvs.texinfo for details. Note that
@@ -21,10 +46,9 @@ repository from the cvspass file.
password-authenticated server (other access methods are just governed
by Unix file permissions, since they require login access to the
repository machine anyway). See the "Repository" section of
cvs.texinfo for details. Note that the security cautions in
cvs.texinfo ("Password authentication security"), and the requirement
that read-only users be able to create locks and write the history
file, both apply.
cvs.texinfo for details, including a discussion of security issues.
Note that the requirement that read-only users be able to create locks
and write the history file still applies.
* The "checkout" command now creates a CVS directory at the top level
of the new working directory, in addition to CVS directories created
-7
View File
@@ -46,13 +46,6 @@ are actually more appropriate for this list.
(and modify) indexes. This becomes very apparent with files
with several hundred revisions.
* A RCS "library", so CVS could operate on RCS files directly.
CVS parses RCS files in order to determine if work needs to be done,
and then RCS parses the files again when it is performing the work.
This would be much faster if CVS could do whatever is necessary
by itself. (see comment at start of rcscmds.c for a few notes on this).
1. Improved testsuite/sanity check script
* Need to use a code coverage tool to determine how much the sanity
+1 -1
View File
@@ -164,7 +164,7 @@ ChangeLog files in each directory for a more complete idea.
In addition to the above contributors, the following Beta testers
deserve special mention for their support. This is only a partial
list; if you have helped in this way and would like to be listed, let
bug-cvs know (as described elsewhere in this file).
bug-cvs know (as described in the Cederqvist manual).
Mark D. Baushke <[email protected]>
Per Cederqvist <[email protected]>
+9
View File
@@ -134,3 +134,12 @@ unnecessary baggage. The only dependency would be on tcl (that is,
wish).
* perl or python or <any other serious contenders here?>
It is worth thinking about how to:
a. include spaces in arguments which we pass to the program under
test (sanity.sh dotest cannot do this; see test rcs-9 for a
workaround).
b. pass stdin to the program under test (sanity.sh, again, handles
this by bypassing dotest).
+409 -41
View File
@@ -1,10 +1,14 @@
The "TODO" file! -*-Indented-Text-*-
22. Catch signals for cleanup when "add"ing files.
24. Insist on a log message.
(If done, this should be configurable via commitinfo or some new
config file -kingdon, Jun 1995).
30. Add "patch" program option to the modules database.
30. Add "rdiff" program option to the modules database (and "diff"
too?). (perhaps should think a little harder about what this is
trying to accomplish and what the best way is -kingdon, Jul 1997).
31. Think hard about ^C recovery.
@@ -16,7 +20,9 @@
that other branch is already merged. This has pitfalls--it could
easily lead to invisible state which could confuse users very
rapidly--but having to create a tag or some such mechanism to keep
track of what has been merged is a pain.
track of what has been merged is a pain. Take a look at PRCS 1.2.
PRCS 1.0 was particularly bad the way it handled the "invisible
state", but 1.2 is significantly better.
45. Consider enhancing the "rdiff" and "tag" (rtag??) command support in
the module database -- they seem hard to use since these commands
@@ -45,9 +51,6 @@
63. The "import" and vendor support commands (co -j) need to be documented
better.
64. Need to greatly increase the performance of an initial checkout.
[[ it got better, then we added functionality, making it worse again ]]
66. Length of the CVS temporary files must be limited to 14 characters for
System-V stupid support. As well as the length on the CVS.adm files.
@@ -57,8 +60,8 @@
73. Consider an option (in .cvsrc?) to automatically add files that are new
and specified to commit.
79. Might be nice to have some sort of interface to TFS and tagged
revisions.
79. Might be nice to have some sort of interface to Sun's Translucent
(?) File System and tagged revisions.
82. Maybe the import stuff should allow an arbitrary revision to be
specified.
@@ -66,8 +69,10 @@
84. Improve the documentation about administration of the repository and
how to add/remove files and the use of symbolic links.
85. Add revision controlled symbolic links to CVS using one of the tag
fields in the RCS file.
85. Make symbolic links a valid thing to put under version control.
Perhaps use one of the tag fields in the RCS file? Note that we
can only support symlinks that are relative and within the scope of
the sources being controlled.
92. Look into this:
After a bit of soul searching via dbx, I realized my sin was that I'd
@@ -130,11 +135,12 @@
113. The "cvs update" command should tee its output to a log file in ".".
(why? What is wrong with piping stdout to "tee"? -kingdon, Jun 1995)
119. Consider an option to have import checkout the RCS or SCCS files
if necessary. (this is if someone want to import something which is
in RCS or SCCS without preserving the history, but making sure they
do get the latest versions. It isn't clear to me how useful that is
-kingdon, June 1996).
119. When importing a directory tree that is under SCCS/RCS control,
consider an option to have import checkout the SCCS/RCS files if
necessary. (This is if someone wants to import something which
is in RCS or SCCS without preserving the history, but makes sure
they do get the latest versions. It isn't clear to me how useful
that is -kingdon, June 1996).
122. If Name_Repository fails, it currently causes CVS to die completely. It
should instead return NULL and have the caller do something reasonable
@@ -142,6 +148,7 @@
-kingdon, June 1996).
123. Add a flag to import to not build vendor branches for local code.
(See `importb' tests in src/sanity.sh for more details).
124. Anyway, I thought you might want to add something like the following
to the cvs man pages:
@@ -157,8 +164,6 @@
127. Look at *info files; they should all be quiet if the files are not
there. Should be able to point at a RCS directory and go.
128. When I tag a file, the message tells me that I'm tagging a directory.
130. cvs diff with no -r arguments does not need to look up the current RCS
version number since it only cares about what's in the Entries file.
This should make it much faster.
@@ -184,10 +189,14 @@
variable to limit the amount of sources that need to be duplicated for
sites with giant source trees and no disk space.
141. Import should accept modules as its directory argument.
141. Import should accept modules as its directory argument. If we're
going to implement this, we should think hard about how modules
might be expanded and how to handle those cases.
143. Update the documentation to show that the source repository is
something far away from the files that you work on.
something far away from the files that you work on. (People who
come from an RCS background are used to their `repository' being
_very_ close to their working directory.)
144. Have cvs checkout look for the environment variable CVSPREFIX
(or CVSMODPREFIX or some such). If it's set, then when looking
@@ -227,14 +236,42 @@
.#foo.c.1.5 or whatever), so they can do the interactive part at
that point -kingdon, June 1996).
149. On Sun, 2 Feb 92 22:01:38 EST, [email protected] (John P. Rouillard)
said:
Maybe there should be an option to cvs admin that allows a user to
change the Repository file with some degree of error checking?
149. Maybe there should be an option to cvs admin that allows a user to
change the Repository/Root file with some degree of error checking?
Something like "cvs admin reposmv /old/path /new/pretty/path". Before
it does the replace it check to see that the files
/new/pretty/path/<dir>/<files> exist.
The obvious cases are where one moves the repository to another
machine or directory. But there are other cases, like where the
user might want to change from :pserver: to :ext:, use a different
server (if there are two server machines which share the
repository using a networked file system), etc.
The status quo is a bit of a mess (as of, say, CVS 1.9). It is
that the -d global option has two moderately different uses. One
is to use a totally different repository (in which case we'd
probably want to give an error if it disagreed with CVS/Root, as
CVS 1.8 and earlier did). The other is the "reposmv"
functionality above (in which the two repositories really are the
same, and we want to update the CVS/Root files). A related issue
is that the fact that CVS only sets and looks at the CVS/Root
file in the directory where CVS is run; it doesn't do anything
about CVS/Root files in subdirectories.
Note also RELATIVE_REPOS in options.h; it needs to be set for
changing CVS/Root (not CVS/Repository) to be sufficient in the
case where the directory has changed.
This whole area is a rather bad pile of individual decisions which
accumulated over time, some of them probably bad decisions with
hindsight. But we didn't get into this mess overnight, and we're
not going to get out of it overnight (that is, we need to come up
with a replacement behavior, document what parts of the status
quo are deprecated, probably circulate some unofficial patches, &c).
(this item originally added 2 Feb 1992 but revised since).
150. I have a customer request for a way to specify log message per
file, non-interactively before the commit, such that a single, fully
recursive commit prompts for one commit message, and concatenates the
@@ -256,8 +293,9 @@
message specified at commit time. Easy enough. (having cvs
commit be non-interactive takes care of various issues like
whether to connect to the server before or after prompting for a
message (see comment in commit.c at call to start_server)
-kingdon, June 1996)
message (see comment in commit.c at call to start_server). Also
would clean up the kludge for what to do with the message from
do_editor if the up-to-date check fails (see commit.c client code).
I'm not sure about the part above about having commit prompt
for an overall message--part of the point is having commit
@@ -270,30 +308,41 @@
incompatibility between client/server (per-tree) and
non-client/server (per-directory).
A few interesting issues with this: (1) if you do a cvs update or
some other operation which changes the working directory, do you
need to run "cvs message" again (it would, of course, bring up
the old message which you could accept)? Probably yes, after all
merging in some conflicts might change the situation. (2) How do
you change the stored messages if you change your mind before the
commit (probably run "cvs message" again, as hinted in (1))?
151. Also, is there a flag I am missing that allows replacing Ulrtx_Build
by Ultrix_build? I.E. I would like a tag replacement to be a one step
operation rather than a two step "cvs rtag -r Ulrtx_Build Ultrix_Build"
followed by "cvs trag -d Ulrtx_Build"
followed by "cvs rtag -d Ulrtx_Build"
152. The "cvs -n" option does not work as one would expect for all the
commands. In particular, for "commit" and "import", where one would
also like to see what it would do, without actually doing anything.
153. There should be some command (maybe I just haven't figured
out which one...) to import a source directory which is already
RCS-administered without losing all prior RCS gathered data. Thus, it
would have to examine the RCS files and choose a starting version and
branch higher than previous ones used.
153. There should be some command (maybe I just haven't figured out
which one...) to import a source directory which is already
RCS-administered without losing all prior RCS gathered data.
Thus, it would have to examine the RCS files and choose a
starting version and branch higher than previous ones used.
(Check out rcs-to-cvs and see if it addresses this issue.)
154. When committing the modules file, a pre-commit check should be done to
verify the validity of the new modules file before allowing it to be
committed.
155. The options for "cvs history" are mutually exclusive, even though
useful queries can be done if they are not, as in specifying both a
module and a tag. A workaround is to specify the module, then run the
output through grep to only display lines that begin with T, which are
tag lines.
useful queries can be done if they are not, as in specifying both
a module and a tag. A workaround is to specify the module, then
run the output through grep to only display lines that begin with
T, which are tag lines. (Better perhaps if we redesign the whole
"history" business -- check out doc/cvs.texinfo for the entire
rant.)
156. Also, how hard would it be to allow continuation lines in the
{commit,rcs,log}info files? It would probably be useful with all of
@@ -313,9 +362,6 @@
revision was already locked by the user as well, thus moving the lock
forward after the commit.
161. The date parser included with CVS (lib/getdate.y) does not support
such RCS-supported dates as "1992/03/07". It probably should.
163. The rtag/tag commands should have an option that removes the specified
tag from any file that is in the attic. This allows one to re-use a
tag (like "Mon", "Tue", ...) all the time and still have it tag the
@@ -385,10 +431,12 @@
is down!).
182. There should be a way to show log entries corresponding to
changes from tag "foo" to tag "bar". "cvs log -rfoo -rbar" doesn't
cut it, because it is inclusive on the bar end. I'm not sure that is
ever a useful or logical behavior ("cvs diff -r foo -r bar" is not
similarly inclusive), but is compatibility an issue?
changes from tag "foo" to tag "bar". "cvs log -rfoo:bar" doesn't cut
it, because it erroneously shows the changes associated with the
change from the revision before foo to foo. I'm not sure that is ever
a useful or logical behavior ("cvs diff -r foo -r bar" gets this
right), but is compatibility an issue? See
http://www.cyclic.com/cvs/unoff-log.txt for an unofficial patch.
183. "cvs status" should report on Entries.Static flag and CVS/Tag (how?
maybe a "cvs status -d" to give directory status?). There should also
@@ -420,3 +468,323 @@ modifying it), but even as to the general idea, I don't have a clear
idea about whether it would be good (see what I mean about the need
for better documentation? I work on CVS full-time, and even I don't
understand the state of the art on this subject).
186. There is a frequent discussion of multisite features.
* There may be some overlap with the client/server CVS, which is good
especially when there is a single developer at each location. But by
"multisite" I mean something in which each site is more autonomous, to
one extent or another.
* Vendor branches are the closest thing that CVS currently has for
multisite features. They have fixable drawbacks (such as poor
handling of added and removed files), and more fundamental drawbacks
(when you import a vendor branch, you are importing a set of files,
not importing any knowledge of their version history outside the
current repository).
* One approach would be to require checkins (or other modifications to
the repository) to succeed at a write quorum of sites (51%) before
they are allowed to complete. To work well, the network should be
reliable enough that one can typically get to that many sites. When a
server which has been out of touch reconnects, it would want to update
its data before doing anything else. Any of the servers can service
all requests locally, except perhaps for a check that they are
up-to-date. The way this differs from a run-of-the-mill distributed
database is that if one only allows reversible operations via this
mechanism (exclude "cvs admin -o", "cvs tag -d", &c), then each site
can back up the others, such that failures at one site, including
something like deleting all the sources, can be recovered from. Thus
the sites need not trust each other as much as for many shared
databases, and the system may be resilient to many types of
organizational failures. Sometimes I call this design the
"CVScluster" design.
* Another approach is a master/slave one. Checkins happen at the
master site, and slave sites need to check whether their local
repository is up to date before relying on its information.
* Another approach is to have each site own a particular branch. This
one is the most tolerant of flaky networks; if checkins happen at each
site independently there is no particular problem. The big question
is whether merges happen only manually, as with existing CVS branches,
or whether there is a feature whereby there are circumstances in which
merges from one branch to the other happen automatically (for example,
the case in which the branches have not diverged). This might be a
legitimate question to ask even quite aside from multisite features.
One additional random tidbit is to note that Eric Raymond has some
interest in this sort of thing. The item "Cooperative distributed
freeware development" on http://www.ccil.org/~esr/ has a very brief
introduction to what he is thinking about.
187. Might want to separate out usage error messages and help
messages. The problem now is that if you specify an invalid option,
for example, the error message is lost among all the help text. In
the new regime, the error message would be followed by a one-line
message directing people to the appropriate help option ("cvs -H
<command>" or "cvs --help-commands" or whatever, according to the
situation). I'm not sure whether this change would be controversial
(as defined in HACKING), so there might be a need for further
discussion or other actions other than just coding.
188. Option parsing and .cvsrc has at least one notable limitation.
If you want to set a global option only for some CVS commands, there
is no way to do it (for example, if one wants to set -q only for
"rdiff"). I am told that the "popt" package from RPM
(http://www.rpm.org) could solve this and other problems (for example,
if the syntax of option stuff in .cvsrc is similar to RPM, that would
be great from a user point of view). It would at least be worth a
look (it also provides a cleaner API than getopt_long).
Another issue which may or may not be related is the issue of
overriding .cvsrc from the command line. The cleanest solution might
be to have options in mutually exclusive sets (-l/-R being a current
example, but --foo/--no-foo is a better way to name such options). Or
perhaps there is some better solution.
189. Renaming files and directories is a frequently discussed topic.
Some of the problems with the status quo:
a. "cvs annotate" cannot operate on both the old and new files in a
single run. You need to run it twice, once for the new name and once
for the old name.
b. "cvs diff" (or "cvs diff -N") shows a rename as a removal of the
old file and an addition of the new one. Some people would like to
see the differences between the file contents (but then how would we
indicate the fact that the file has been renamed? Certainly the
notion that "patch(1)" has of renames is as a removal and addition).
c. "cvs log" should be able to show the changes between two
tags/dates, even in the presence of adds/removes/renames (I'm not sure
what the status quo is on this; see also item #182).
d. Renaming directories is way too hard.
Implementations:
It is perhaps premature to try to design implementation details
without answering some of the above questions about desired behaviors
but several general implementations get mentioned.
i. No fundamental changes (for example, a "cvs rename" command which
operated on directories could still implement the current recommended
practice for renaming directories, which is to rename each of the
files contained therein via an add and a remove). One thing to note
that the status quo gets right is proper merges, even with adds and
removals (Well, mostly right at least. There are a *LOT* of different
cases; see the testsuite for some of them).
ii. Rename database. In this scheme the files in the repository
would have some arbitrary name, and then a separate rename database
would indicate the current correspondence between the filename in the
working directory and the actual storage. As far as I know this has
never been designed in detail for CVS.
iii. A modest change in which the RCS files would contain some
information such as "renamed from X" or "renamed to Y". That is, this
would be generally similar to the log messages which are suggested
when one renames via an add and a removal, but would be
computer-parseable. I don't think anyone has tried to flesh out any
details here either.
It is interesting to note that in solution ii. version numbers in the
"new file" start where the "old file" left off, while in solutions
i. and iii., version numbers restart from 1.1 each time a file is
renamed. Except perhaps in the case where we rename a file from foo
to bar and then back to foo. I'll shut up now.
Regardless of the method we choose, we need to address how renames
affect existing CVS behaviors. For example, what happens when you
rename a file on a branch but not the trunk and then try to merge the
two? What happens when you rename a file on one branch and delete it
on another and try to merge the two?
Ideally, we'd come up with a way to parameterize the problem and
simply write up a lookup table to determine the correct behavior.
190. The meaning of the -q and -Q global options is very ad hoc;
there is no clear definition of which messages are suppressed by them
and which are not. Here is a classification of the current meanings
of -q; I don't know whether anyone has done a similar investigation of
-Q:
a. The "warm fuzzies" printed upon entering each directory (for
example, "cvs update: Updating sdir"). The need for these messages
may be decreased now that most of CVS uses ->fullname instead of
->file in messages (a project which is *still* not 100% complete,
alas). However, the issue of whether CVS can offer status as it
runs is an important one. Of course from the command line it is
hard to do this well and one ends up with options like -q. But
think about emacs, jCVS, or other environments which could flash you
the latest status line so you can see whether the system is working
or stuck.
b. Other cases where the message just offers information (rather
than an error) and might be considered unnecessarily verbose. These
have a certain point to them, although it isn't really clear whether
it should be the same option as the warm fuzzies or whether it is
worth the conceptual hair:
add.c: scheduling %s `%s' for addition (may be an issue)
modules.c: %s %s: Executing '%s' (I can see how that might be noise,
but...)
remove.c: scheduling `%s' for removal (analogous to the add.c one)
update.c: Checking out %s (hmm, that message is a bit on the noisy side...)
(but the similar message in annotate is not affected by -q).
c. Suppressing various error messages. This is almost surely
bogus.
commit.c: failed to remove tag `%s' from `%s' (Questionable.
Rationale might be that we already printed another message
elsewhere but why would it be necessary to avoid
the extra message in such an uncommon case?)
commit.c: failed to commit dead revision for `%s' (likewise)
remove.c: file `%s' still in working directory (see below about rm
-f analogy)
remove.c: nothing known about `%s' (looks dubious to me, especially in
the case where the user specified it explicitly).
remove.c: removed `%s' (seems like an obscure enough case that I fail
to see the appeal of being cryptically concise here).
remove.c: file `%s' already scheduled for removal (now it is starting
to look analogous to the infamous rm -f option).
rtag.c: cannot find tag `%s' in `%s' (more rm -f like behavior)
rtag.c: failed to remove tag `%s' from `%s' (ditto)
tag.c: failed to remove tag %s from %s (see above about whether RCS_*
has already printed an error message).
tag.c: couldn't tag added but un-commited file `%s' (more rm -f
like behavior)
tag.c: skipping removed but un-commited file `%s' (ditto)
tag.c: cannot find revision control file for `%s' (ditto, but at first
glance seems even worse, as this would seem to be a "can't happen"
condition)
191. Storing RCS files, especially binary files, takes rather more
space than it could, typically.
- The virtue of the status quo is that it is simple to implement.
Of course it is also simplest in terms of dealing with compatibility.
- Just storing the revisions as separate gzipped files is a common
technique. It also is pretty simple (no new algorithms, CVS
already has zlib around). Of course for some files (such as files
which are already compressed) the gzip step won't help, but
something which can at least sometimes avoid rewriting the entire
RCS file for each new revision would, I would think, be a big
speedup for large files.
- Josh MacDonald has written a tool called xdelta which produces
differences (that is, sufficient information to transform the old
to the new) which looks for common sequences of bytes, like RCS
currently does, but which is not based on lines. This seems to do
quite well for some kinds of files (e.g. FrameMaker documents,
text files), and not as well for others (anything which is already
compressed, executables). xdelta 1.10 also is faster than GNU diff.
- Karl Fogel has thought some about using a difference technique
analogous to fractal compression (see the comp.compression FAQ for
more on fractal compression, including at least one patent to
watch for; I don't know how analogous Karl's ideas are to the
techniques described there).
- Quite possibly want some documented interface by which a site can
plug in their choice of external difference programs (with the
ability to choose the program based on filename, magic numbers,
or some such).
192. "cvs update" using an absolute pathname does not work if the
working directory is not a CVS-controlled directory with the correct
CVSROOT. For example, the following will fail:
cd /tmp
cvs -d /repos co foo
cd /
cvs update /tmp/foo
It is possible to read the CVSROOT from the administrative files in
the directory specified by the absolute pathname argument to update.
In that case, the last command above would be equivalent to:
cd /tmp/foo
cvs update .
This can be problematic, however, if we ask CVS to update two
directories with different CVSROOTs. Currently, CVS has no way of
changing CVSROOT mid-stream. Consider the following:
cd /tmp
cvs -d /repos1 co foo
cvs -d /repos2 co bar
cd /
cvs update /tmp/foo /tmp/bar
To make that example work, we need to think hard about:
- where and when CVSROOT-related variables get set
- who caches said variables for later use
- how the remote protocol should be extended to handle sending a new
repository mid-stream
- how the client should maintain connections to a variety of servers
in a single invocation.
Because those issues are hairy, I suspect that having a change in
CVSROOT be an error would be a better move.
193. The client relies on timestamps to figure out whether a file is
(maybe) modified. If something goes awry, then it ends up sending
entire files to the server to be checked, and this can be quite slow
especially over a slow network. A couple of things that can happen:
(a) other programs, like make, use timestamps, so one ends up needing
to do "touch foo" and otherwise messing with timestamps, (b) changing
the timezone offset (e.g. summer vs. winter or moving a machine)
should work on unix, but there may be problems with non-unix.
Possible solutions:
a. Store a checksum for each file in CVS/Entries or some such
place. What to do about hash collisions is interesting: using a
checksum, like MD5, large enough to "never" have collisions
probably works in practice (of course, if there is a collision then
all hell breaks loose because that code path was not tested, but
given the tiny, tiny probability of that I suppose this is only an
aesthetic issue).
b. I'm not thinking of others, except storing the whole file in
CVS/Base, and I'm sure using twice the disk space would be
unpopular.
194. CVS does not separate the "metadata" from the actual revision
history; it stores them both in the RCS files. Metadata means tags
and header information such as the number of the head revision.
Storing the metadata separately could speed up "cvs tag" enormously,
which is a big problem for large repositories. It could also probably
make CVS's locking much less in the way (see comment in do_recursion
about "two-pass design").
195. Many people using CVS over a slow link are interested in whether
the remote protocol could be any more efficient with network
bandwidth. This item is about one aspect of that--how the server
sends a new version of a file the client has a different version of,
or vice versa.
a. Cases in which the status quo already sends a diff. For most text
files, this is probably already close to optimal. For binary files,
and anomalous text files, it might be worth looking into other
difference algorithms (see item #191).
b. Cases in which the status quo does not send a diff (e.g. "cvs
commit").
b1. With some frequency, people suggest rsync or a similar algorithm
(see ftp://samba.anu.edu.au/pub/rsync/). This could speed things up,
and in some ways involves the most minimal changes to the default CVS
paradigm. There are some downsides though: (1) there is an extra
network turnaround, (2) the algorithm is not as efficient with network
bandwidth as difference type programs (it transmits a fair bit of data
to discover what a difference program discovers locally).
b2. If one is willing to require that users use "cvs edit" before
editing a file on the client side (in some cases, a development
environment like emacs can make this fairly easy), then the Modified
request in the protocol could be extended to allow the client to just
send differences instead of entire files. In the degenerate case
(e.g. "cvs diff" without arguments) the required network traffic is
reduced to zero, and the client need not even contact the server.
+23
View File
@@ -1,6 +1,9 @@
/* Define if you have MIT Kerberos version 4 available. */
#undef HAVE_KERBEROS
/* Define if you have GSSAPI with MIT Kerberos version 5 available. */
#undef HAVE_GSSAPI
/* Define if you want CVS to be able to be a remote repository client. */
#undef CLIENT_SUPPORT
@@ -16,3 +19,23 @@
/* Define if you have the connect function. */
#undef HAVE_CONNECT
/* Define if this system supports chown(), link(), and friends. */
#undef PRESERVE_PERMISSIONS_SUPPORT
/* Define if you have memchr (always for CVS). */
#undef HAVE_MEMCHR
/* Define if you have strchr (always for CVS). */
#undef HAVE_STRCHR
/* Define if utime requires write access to the file (true on Windows,
but not Unix). */
#undef UTIME_EXPECTS_WRITABLE
/* Define if setmode is required when writing binary data to stdout. */
#undef USE_SETMODE_STDOUT
/* Define if the diff library should use setmode for binary files.
FIXME: Why two different macros for setmode? */
#undef HAVE_SETMODE
+44 -3
View File
@@ -7,6 +7,9 @@
#undef _ALL_SOURCE
#endif
/* Define if the closedir function returns void instead of int. */
#undef CLOSEDIR_VOID
/* Define to empty if the keyword does not work. */
#undef const
@@ -16,12 +19,18 @@
/* Define if you support file names longer than 14 characters. */
#undef HAVE_LONG_FILE_NAMES
/* Define if your struct stat has st_blksize. */
#undef HAVE_ST_BLKSIZE
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* Define if utime(file, NULL) sets file's timestamp to the present. */
#undef HAVE_UTIME_NULL
/* Define if you have <vfork.h>. */
#undef HAVE_VFORK_H
/* Define if on MINIX. */
#undef _MINIX
@@ -56,9 +65,15 @@
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
/* Define vfork as fork if vfork does not work. */
#undef vfork
/* Define if you have MIT Kerberos version 4 available. */
#undef HAVE_KERBEROS
/* Define if you have GSSAPI with MIT Kerberos version 5 available. */
#undef HAVE_GSSAPI
/* Define if you want CVS to be able to be a remote repository client. */
#undef CLIENT_SUPPORT
@@ -75,6 +90,26 @@
/* Define if you have the connect function. */
#undef HAVE_CONNECT
/* Define if this system supports chown(), link(), and friends. */
#undef PRESERVE_PERMISSIONS_SUPPORT
/* Define if you have memchr (always for CVS). */
#undef HAVE_MEMCHR
/* Define if you have strchr (always for CVS). */
#undef HAVE_STRCHR
/* Define if utime requires write access to the file (true on Windows,
but not Unix). */
#undef UTIME_EXPECTS_WRITABLE
/* Define if setmode is required when writing binary data to stdout. */
#undef USE_SETMODE_STDOUT
/* Define if the diff library should use setmode for binary files.
FIXME: Why two different macros for setmode? */
#undef HAVE_SETMODE
/* Define if you have the crypt function. */
#undef HAVE_CRYPT
@@ -138,9 +173,6 @@
/* Define if you have the tzset function. */
#undef HAVE_TZSET
/* Define if you have the vfork function. */
#undef HAVE_VFORK
/* Define if you have the vprintf function. */
#undef HAVE_VPRINTF
@@ -162,6 +194,9 @@
/* Define if you have the <io.h> header file. */
#undef HAVE_IO_H
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
@@ -180,6 +215,9 @@
/* Define if you have the <sys/dir.h> header file. */
#undef HAVE_SYS_DIR_H
/* Define if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H
@@ -207,6 +245,9 @@
/* Define if you have the crypt library (-lcrypt). */
#undef HAVE_LIBCRYPT
/* Define if you have the gen library (-lgen). */
#undef HAVE_LIBGEN
/* Define if you have the inet library (-linet). */
#undef HAVE_LIBINET
+635 -161
View File
File diff suppressed because it is too large. Load diff
+134 -20
View File
@@ -10,8 +10,8 @@ dnl It is possible that we should just change the above required version
dnl to 2.10; it seems like everyone is using 2.10 anyway, and there is
dnl at least some sentiment that we should be using a version which has
dnl --bindir (and correspondingly, using @bindir@ and friends in our
dnl Makefile.in files. I'm not sure exactly what version of autoconf
dnl introduced --bindir but I know 2.10 has it.
dnl Makefile.in files. Rumor has it that autoconf 2.7
dnl introduced --bindir but the point is that 2.10 has it.
AC_CONFIG_HEADER(config.h src/options.h)
AC_PROG_CC
@@ -50,6 +50,7 @@ fi
AC_HEADER_STDC
AC_CHECK_HEADERS(errno.h unistd.h string.h memory.h utime.h fcntl.h ndbm.h \
limits.h sys/file.h \
sys/param.h sys/select.h sys/time.h sys/timeb.h \
io.h direct.h sys/bsdtypes.h sys/resource.h)
AC_HEADER_SYS_WAIT
@@ -61,8 +62,33 @@ AC_TYPE_UID_T
AC_TYPE_MODE_T
AC_TYPE_SIZE_T
AC_TYPE_PID_T
AC_REPLACE_FUNCS(getwd mkdir rename strdup strstr dup2 strerror valloc waitpid vasprintf strtoul)
AC_CHECK_FUNCS(fchmod fsync ftime mktemp putenv vfork vprintf ftruncate timezone getpagesize initgroups fchdir sigaction sigprocmask sigvec sigsetmask sigblock tempnam tzset readlink wait3)
AC_STRUCT_ST_BLKSIZE
AC_REPLACE_FUNCS(mkdir rename strstr dup2 strerror valloc waitpid memmove vasprintf strtoul)
AC_CHECK_FUNCS(fchmod fsync ftime mktemp putenv vprintf ftruncate timezone getpagesize initgroups fchdir sigaction sigprocmask sigvec sigsetmask sigblock tempnam tzset readlink wait3)
dnl
dnl The CVS coding standard (as specified in HACKING) is that if it exists
dnl in SunOS4 and ANSI, we use it. CVS itself, of course, therefore doesn't
dnl need HAVE_* defines for such functions, but diff wants them.
dnl
AC_DEFINE(HAVE_STRCHR)
AC_DEFINE(HAVE_MEMCHR)
dnl
dnl AC_FUNC_VFORK is rather baroque. It seems to be rather more picky
dnl than, say, the Single Unix Specification (version 2), which simplifies
dnl a lot of cases by saying that the child process can't set any variables
dnl (thus avoiding problems with register allocation) or call any functions
dnl (thus avoiding problems with whether file descriptors are shared).
dnl It would be nice if we could just write to the Single Unix Specification.
dnl I think the only way to do redirection this way is by doing it in the
dnl parent, and then undoing it afterwards (analogous to windows-NT/run.c).
dnl That would appear to have a race condition if the user hits ^C (or
dnl some other signal) at the wrong time, as main_cleanup will try to use
dnl stdout/stderr. So maybe we are stuck with AC_FUNC_VFORK.
dnl
AC_FUNC_VFORK
AC_FUNC_CLOSEDIR_VOID
dnl
dnl Look for shadow password files before we go ahead and set getspnam.
@@ -84,7 +110,24 @@ else
fi
AC_MSG_RESULT([$found])
AC_CHECK_FUNC(re_exec, :, LIBOBJS="$LIBOBJS regex.o")
dnl We always use CVS's regular expression matcher.
dnl This is because:
dnl (1) If memory serves, the syntax of the regular expressions
dnl handled by re_exec is not consistent from system to system, which
dnl is a Bad Thing because CVS passes this syntax out to the user.
dnl We might have better luck with the POSIX interface, if we really
dnl want to look for a system-supplied matcher.
dnl (2) It is necessary to make _sure_ that we get a regex.h and regex.c
dnl that match each other. In particular, rx and the CVS/emacs
dnl regex.c have a different "struct re_pattern_buffer" and so using
dnl the system regex.h and our regex.c, or vice versa, will tend to
dnl cause a core dump.
dnl (3) Just as a random data point, CVS uses re_exec (a BSD interface);
dnl libdiff uses re_compile_pattern (a GNU interface, I think). Diff
dnl should probably be fixed to have the caller (CVS) supply the regexp
dnl matching.
dnl
dnl AC_CHECK_FUNC(re_exec, :, LIBOBJS="$LIBOBJS regex.o")
AC_FUNC_UTIME_NULL
AC_SYS_LONG_FILE_NAMES
@@ -139,6 +182,10 @@ fi])
dnl
dnl set $(KRB4) from --with-krb4=value -- WITH_KRB4
dnl
dnl If you change this, keep in mind that some systems have a bogus
dnl libkrb in the system libraries, so --with-krb4=value needs to
dnl override the system -lkrb.
dnl
KRB4=/usr/kerberos
define(WITH_KRB4,[
AC_ARG_WITH([krb4],
@@ -151,15 +198,19 @@ WITH_KRB4
krb_h=
AC_MSG_CHECKING([for krb.h])
AC_TRY_LINK([#include <krb.h>],[int i;],
[krb_h=yes krb_incdir=],
[if test "$cross_compiling" != yes && test -r $KRB4/include/krb.h; then
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -I$KRB4/include"
AC_TRY_LINK([#include <krb.h>],[int i;],
[krb_h=yes krb_incdir=$KRB4/include])
CFLAGS=$hold_cflags
fi])
if test "$cross_compiling" != yes && test -r $KRB4/include/krb.h; then
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -I$KRB4/include"
AC_TRY_LINK([#include <krb.h>],[int i;],
[krb_h=yes krb_incdir=$KRB4/include],
[CFLAGS=$hold_cflags
AC_TRY_LINK([#include <krb.h>],[int i;],
[krb_h=yes krb_incdir=])])
CFLAGS=$hold_cflags
else
AC_TRY_LINK([#include <krb.h>],[int i;],
[krb_h=yes krb_incdir=])
fi
if test -z "$krb_h"; then
AC_TRY_LINK([#include <krb.h>],[int i;],
[krb_h=yes krb_incdir=],
@@ -173,12 +224,22 @@ if test -z "$krb_h"; then
fi
AC_MSG_RESULT($krb_h)
includeopt=
AC_SUBST(includeopt)
if test -n "$krb_h"; then
krb_lib=
AC_CHECK_LIB(krb,printf,[krb_lib=yes krb_libdir=],
[if test "$cross_compiling" != yes && test -r $KRB4/lib/libkrb.a; then
krb_lib=yes krb_libdir=$KRB4/lib
fi])
if test "$cross_compiling" != yes && test -r $KRB4/lib/libkrb.a; then
hold_ldflags=$LDFLAGS
LDFLAGS="-L${KRB4}/lib $LDFLAGS"
AC_CHECK_LIB(krb,printf,[krb_lib=yes krb_libdir=${KRB4}/lib],
[LDFLAGS=$hold_ldflags
# Using open here instead of printf so we don't
# get confused by the cached value for printf from above.
AC_CHECK_LIB(krb,open,[krb_lib=yes krb_libdir=])])
LDFLAGS=$hold_ldflags
else
AC_CHECK_LIB(krb,printf,[krb_lib=yes krb_libdir=])
fi
if test -n "$krb_lib"; then
AC_DEFINE(HAVE_KERBEROS)
test -n "${krb_libdir}" && LIBS="${LIBS} -L${krb_libdir}"
@@ -192,12 +253,36 @@ if test -n "$krb_h"; then
LDFLAGS=$hold_ldflags
if test -n "$krb_incdir"; then
includeopt="${includeopt} -I$krb_incdir"
AC_SUBST(includeopt)
fi
fi
fi
AC_CHECK_FUNCS(krb_get_err_text)
dnl
dnl Use --with-gssapi=DIR to enable GSSAPI support.
dnl
GSSAPI=/usr/cygnus/kerbnet
define(WITH_GSSAPI,[
AC_ARG_WITH([gssapi],
[ --with-gssapi=value GSSAPI directory],
[GSSAPI=$withval],
)dnl
echo "default place for GSSAPI is $GSSAPI"
AC_SUBST(GSSAPI)])dnl
WITH_GSSAPI
AC_MSG_CHECKING([for gssapi.h])
hold_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS -I$GSSAPI/include "
AC_CHECK_HEADER(gssapi/gssapi.h,
[AC_DEFINE(HAVE_GSSAPI)
LIBS="$LIBS -L$GSSAPI/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
includeopt="${includeopt} -I$GSSAPI/include"
# This is necessary on Irix 5.3, in order to link against libkrb5 --
# there, an_to_ln.o refers to things defined only in -lgen.
AC_CHECK_LIB(gen, compile)])
CPPFLAGS=$hold_cppflags
dnl
dnl Use --with-encryption to turn on encryption support
dnl
@@ -255,6 +340,35 @@ if test "$ac_cv_func_crypt" = yes; then
fi
fi # enable_server
dnl For the moment we will assume that all systems which have
dnl the unixyness to run configure are unixy enough to do the
dnl PreservePermissions stuff. I have this sinking feeling that
dnl things won't be that simple, before long.
AC_DEFINE(PRESERVE_PERMISSIONS_SUPPORT)
dnl On cygwin32, we configure like a Unix system, but we use the
dnl Windows support code in lib/fncase.c to handle the case
dnl insensitive file system. We also need some support libraries. We
dnl do this at the end so that the new libraries are added at the end
dnl of LIBS.
AC_CACHE_CHECK(for cygwin32, ccvs_cv_sys_cygwin32,
[AC_TRY_COMPILE([], [return __CYGWIN32__;],
ccvs_cv_sys_cygwin32=yes, ccvs_cv_sys_cygwin32=no)])
if test $ccvs_cv_sys_cygwin32 = yes; then
LIBOBJS="$LIBOBJS fncase.o"
LIBS="$LIBS -ladvapi32"
dnl On Windows you can only change file times if you can write to
dnl the file. cygwin32 should really handle this for us, but as of
dnl January 1998 it doesn't.
AC_DEFINE(UTIME_EXPECTS_WRITABLE)
dnl On Windows we must use setmode to change between binary and text
dnl mode.
AC_DEFINE(USE_SETMODE_STDOUT)
AC_DEFINE(HAVE_SETMODE)
fi
test -f src/options.h && (
AC_MSG_WARN(saving ./src/options.h in ./src/options.h-SAVED)
AC_MSG_WARN(You may wish to check that local options have not been lost.)
@@ -262,7 +376,7 @@ test -f src/options.h && (
cp ./src/options.h ./src/options.h-SAVED
)
AC_OUTPUT(Makefile lib/Makefile src/Makefile zlib/Makefile doc/Makefile \
AC_OUTPUT(Makefile lib/Makefile src/Makefile zlib/Makefile diff/Makefile doc/Makefile \
man/Makefile tools/Makefile tools/pcl-cvs/Makefile \
contrib/Makefile contrib/elib/Makefile \
windows-NT/Makefile windows-NT/SCC/Makefile \
+40
View File
@@ -1,3 +1,43 @@
Sat Feb 21 21:59:45 1998 Ian Lance Taylor <[email protected]>
* Makefile.in (clean): Change "/bin/rm" to "rm".
Thu Aug 7 22:42:23 1997 Jim Kingdon <[email protected]>
* pvcs_to_rcs: Remove RCS keywords. Remove $Log and move the data
to this ChangeLog (below). Add paragraph that David Martin
emailed along with the script.
Revision 1.6 1997/03/07 16:21:28 divad
Need to explicitly state archive name in PVCS get command for
those cases where the case of the workfile and the case of the
archive file are different (OS/2)
Revision 1.5 1997/03/07 00:31:04 divad
Added capitalized extensions and framemaker files as binaries;
also overriding any path specification for workfiles at PVCS
checkout (most annoying).
Revision 1.4 1997/03/06 21:04:55 divad
Added \n to the end of each comment line to prevent multi-line
comments for a single revision from "merging"
Revision 1.3 1997/03/06 19:50:25 divad
Corrected bug in binary extensions; correcting processing
comment strings with double quotes
Revision 1.2 1997/03/06 17:29:10 divad
Provided list of extensions (rather than using Unix file
command) to determine which files are binary; also printing
version label as they are applied
Revision 1.1 1997/02/26 00:04:29 divad
Perl script to convert pvcs archives to rcs archives
* README: mention pvcs_to_rcs.
* pvcs_to_rcs: New file. This is the file as I got it from David
Martin. Will be checking in the tweaks shortly.
17 May 1997 Jim Kingdon
* listen2.c: Failed attempt at making this do what it was
+1 -1
View File
@@ -106,7 +106,7 @@ ls:
.PHONY: ls
clean:
/bin/rm -f *.o core
rm -f *.o core
.PHONY: clean
distclean: clean
+4
View File
@@ -86,6 +86,10 @@ An attempt at a table of Contents for this directory:
into RCS files, retaining the info contained in the
SCCS file (like dates, author, and log message).
Contributed by Ken Cox <[email protected]>.
pvcs_to_rcs A perl script that can convert (some) PVCS histories
into RCS files, retaining the info contained in the
PVCS history. See the comments at the start of the
file for more details.
intro.doc A user's view of what you need to know to get
started with CVS.
Contributed by <[email protected]>.
+755
View File
@@ -1,5 +1,760 @@
1998-03-04 Jim Kingdon <[email protected]>
* cvs.texinfo (Special Files): Add notes about client/server CVS
and hard links across directories.
1998-03-01 Jim Kingdon <[email protected]>
* cvs.texinfo (Keeping a checked out copy): The magic loginfo
incantation isn't too likely to work except on unix.
1998-02-23 Jim Kingdon <[email protected]>
* cvs.texinfo (user-defined logging): Double "@" literal.
1998-02-18 Jim Kingdon <[email protected]>
* cvs.texinfo (user-defined logging): Add taginfo example.
1998-02-04 Tim Pierce <[email protected]>
* cvs.texinfo (config): PreservePermissions variable.
(Special Files): New.
(Editing files): Add note about PreservePermissions.
Tue Feb 10 18:07:35 1998 Jim Kingdon <[email protected]>
* cvs.texinfo (Connection): New node.
* cvsclient.texi (Protocol): Fix typo (lots -> lost).
Sun Feb 8 21:39:22 1998 Jim Kingdon <[email protected]>
* cvs.texinfo (Invoking CVS): For admin -b, point to the section
where we talk about reverting to vendor branch.
* cvs.texinfo (Invoking CVS, rdiff options): Document rdiff -V
option as obsolete, since it was made a fatal error some time ago.
* cvs.texinfo (Invoking CVS): Add global options, keywords, and
keyword substitution modes. Wording fix in reference to --help
and Index.
Wed Jan 28 23:09:39 1998 Jim Kingdon <[email protected]>
* cvs.texinfo (Excluding directories): Add index entry for "!".
28 Jan 1998 Karl Fogel and Jim Kingdon
* cvsclient.texi (Requests, Responses): document
"wrapper-sendme-rcsOptions" and "Wrapper-rcsOption".
Tue Jan 27 18:37:37 1998 Ian Lance Taylor <[email protected]>
* cvs.texinfo (Excluding directories): New node, documenting how
to exclude directories using ! in an alias module.
Sun Jan 18 18:23:02 1998 Jim Kingdon <[email protected]>
* cvsclient.texi (Requests): Add Kopt request.
Thu Jan 1 17:36:42 1998 Jim Kingdon <[email protected]>
* cvs.texinfo (BUGS, Credits): Change @unnumbered to @appendix now
that these are moved from the start to the end.
Sat Dec 27 10:06:56 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Add "Too many arguments!".
Fri Dec 26 18:30:26 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (What is CVS?): Just point to the two canonical web
sites (Pascal Molli and Cyclic) concerning CVS downloads. The GNU
URL was out of date and GNU only has source distributions anyway.
* cvs.texinfo: Change bug-cvs address to gnu.org per email from
Martin Hamilton.
Tue Dec 23 18:04:09 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Sticky tags): Further cleanups. Fix thinko
(s/subsequent cvs update/& commands/). Remove "vi driver.c" and
commit from example (totally vestigial). Reword start of
paragraph on non-branch sticky tags, so that it better alludes
to branch sticky tags. When introducing sticky tags, make it
clear that even people who aren't trying to use sticky tags
may need to know how to avoid them. Restore comment about
CVS/Tag files.
(Accessing branches): Don't xref to merging here; that is a much
more advanced topic and the "but see" wording didn't tell us what
to see the xref about.
Tue Dec 23 14:39:08 1997 Karl Fogel <[email protected]>
and Jim Kingdon
* cvs.texinfo (Creating a branch): Rewritten. Introduce with
`tag', then discuss `rtag' and `-r'.
Tue Dec 23 10:03:37 1997 Karl Fogel <[email protected]>
and Jim Kingdon
* cvs.texinfo: Changes to dehairify the "Sticky tags" situation:
(Revisions): "Sticky tags" moved here, description in menu changed
to be a little more informative.
(Sticky tags): Moved from "Branching and merging" to "Revisions".
(Accessing branches): New node in "Branching and merging",
explains how to use checkout vs update to retrieve a branch.
Text and example inherited from "Sticky tags", but text mostly
rewritten.
(Sticky tags): Moved under "Revisions", rewritten somewhat (more
rewrites to follow).
Don't use "-v" in "cvs status" example.
Mon Dec 22 11:46:05 1997 Karl Fogel <[email protected]>
and Jim Kingdon
Cleanups related to recent separation of revisions from
branching/merging:
* cvs.texinfo (Revisions): Take paragraph introducing branches,
rewrite it and move it to "Branching and merging".
(Branching and merging): Also rewrite merging intro.
(Revision numbers): Don't go into detail about branch revision
numbers here, just mention that they happen and refer to new
node "Branches and revisions".
(Branches and revisions): New node under "Branching and merging",
inherits text from "Revision numbers".
(Creating a branch): Refer to "Branches and revisions" now, not
"Revision numbers".
(Binary why): Rewrite sentence which refers to merging, so that
it isn't specific to branch merging.
(Branches motivation): Fix typo (select -> elect). Add comment
about what this node is accomplishing, in general.
Sun Dec 21 20:57:24 1997 Karl Fogel <[email protected]>
and Jim Kingdon
This is just moving text; related cleanups to follow.
* cvs.texinfo: Changes to put branching and merging together, and
keep it all separate from revisions:
(Revisions): Renamed from "Revisions and branches".
(Branching and merging): Renamed from "Merging".
(Branches motivation, Creating a branch, Sticky tags, Magic branch
numbers): these subnodes moved to "Branching and merging" from
"Revisions".
everywhere: Adjusted cross-references to cope with above.
Sun Dec 21 20:36:39 1997 Karl Fogel <[email protected]>
and Jim Kingdon
Note that this is just moving text, not changing it:
* cvs.texinfo: divide top-level menu into sections.
(Multiple developers, Builds, Tracking sources, Keyword
substitution): moved to be in "CVS and the Real World" section.
(Compatibility): moved to be in "References" section.
Mon Dec 22 08:54:31 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Example): In comment, in citing the BNF style
used in many RFCs, cite RFC2234 not RFC822 (now that the former is
out).
Sun Dec 21 17:42:22 1997 Karl Fogel <[email protected]>
* cvs.texinfo (Overview): New node.
(What is CVS?, A sample session): Put under Overview.
(What is CVS not?): New node under Overview.
[text previously was part of "What is CVS?" -kingdon]
(Preface): Removed this node and its contents.
(Checklist): Removed this node and its contents.
(Credits): Now toward end of top-level menu (was under Preface).
(BUGS): Now toward end of top-level menu (was under Preface).
Sun Dec 14 10:14:25 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Responses): Add MT response.
(Text tags): New node.
* cvs.texinfo (loginfo): Add comment about which commands run
loginfo.
Sat Dec 13 08:41:13 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Connection and Authentication): State that
GSSAPI is preferred to kserver. Try to be clearer about what
the term "pserver" means. Introduce GSSAPI and cite the relevant
RFCs. Discuss the limitations of the existing features in
preventing hijacking.
* cvs.texinfo (GSSAPI authenticated, Kerberos authenticated):
Briefly introduce what GSSAPI and Kerberos are. Be slightly more
emphatic about protecting against downgrade attacks.
Fri Dec 12 17:36:46 1997 Ian Lance Taylor <[email protected]>
* cvs.texinfo (GSSAPI authenticated): New node.
(Global options): Document -a. Mention GSSAPI in -x
documentation.
* cvsclient.texi (Connection and Authentication): Document GSSAPI
authentication.
(Requests): Add Gssapi-encrypt and Gssapi-authenticate.
Fri Dec 12 09:27:38 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (cvsignore): Add note about comments and the
space-separated nature of the syntax.
Sun Dec 7 09:33:11 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (checkout): Clarify issues regarding updating
existing working directories.
Sun Nov 30 20:38:17 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Wrappers): Add comment: we don't document %s.
Mon Nov 24 23:00:09 1997 Karl Fogel <[email protected]>
and Jim Kingdon <[email protected]>
* cvsclient.texi: Move Protocol Notes node to the end.
* cvsclient.texi (Request intro): new node/section.
(Protocol): added some introductory material.
Rearranged menu into General Conventions, Protocol specification,
and Example etc sections.
(File Modes): replaces Modes, for consistency.
Sat Nov 22 12:29:58 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Entries Lines): Clarify options in entries line.
Tue Nov 18 09:23:15 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Requests): Be more explicit about "export" and
entries lines.
* Makefile.in (DISTFILES): Remove DIFFUTILS-2.7-BUG.
Mon Nov 17 18:20:47 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (tag options): Expand comment with reference to FAQ.
Fri Nov 14 11:02:37 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Update discussion of "dying gasps".
* cvs.texinfo (tag options): Add FIXME comment about renaming tags.
Thu Nov 13 10:20:39 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Common options): Remove also has a -f option with a
different meaning than most.
Wed Nov 12 21:57:40 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (File permissions, Connecting via rsh, Environment
variables): When putting an environment variable in the index, say
it is an environment variable. Don't index the same name twice.
* cvs.texinfo: Many edits to reflect the fact that CVS no longer
invokes external RCS programs.
Tue Nov 11 15:15:49 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Locks, CVS in repository): New nodes, document the
locking scheme and briefly outline CVS and CVS/fileattr.
Sun Nov 9 17:39:41 1997 Jim Kingdon <[email protected]>
* DIFFUTILS-2.7-BUG: Removed; the bug is fixed and the testcases
are incorporated into sanity.sh.
Sat Nov 8 09:49:38 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Binary why): Try to be a little clearer about how
merges fit into CVS. Say it may be error prone to have developers
doing merges manually.
Tue Nov 4 13:02:22 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (admin options): Add discussion of what happens if
there are tags.
Fri Oct 31 00:04:09 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (admin options): Rewrite discussion of -o to
hopefully be clearer and to also document the new :: syntax.
(admin examples): Removed; incorporated into admin options.
(Invoking CVS): Wording fix for admin -o.
* cvs.texinfo (Binary why): New node, talks about diff and merge.
(Binary howto): Renamed from Binary files.
(Binary files): Now just contains an introduction.
* cvs.texinfo (Error messages): Add "could not merge" message. In
discussion of "Binary files . . . differ" message, mention that
this is only an issue with old verisons of CVS.
Thu Oct 30 15:55:21 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Add "authorization failed" message.
Wed Oct 29 11:52:05 1997 Jim Kingdon <[email protected]>
* cvs.texinfo: Remove fake RCSid; we decided to remove rcsid's a
while ago. Cleanups suggested by Stephen Gildea (CVSROOT/passwd
has 2 or 3 fields; /user -> /usr; noone -> no one; in used -> in
use). Add comment about making compilers happy about rcsids.
Sat Oct 25 00:58:24 1997 Jim Kingdon <[email protected]>
* RCSFILES: rcsfile.5 is correct about {num} after next being
optional.
Wed Oct 22 10:08:27 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Add message about unrecognized
response from cvs server.
1997-10-11 Noel Cragg <[email protected]>
* cvs.texinfo (checkout options): describe how the `-d' and `-N'
flags really work. Give examples.
(export options): refer the reader to the descriptions for `-d'
and `-N' in checkout options, since the behavior is the same.
Thu Oct 9 12:01:35 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (log options): Add comment about "cvs log -r".
Wed Oct 8 10:24:19 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (rtag options): Add comment about how this is
confusing.
Tue Sep 30 12:31:25 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Working directory storage): Add comment about
Entries.Static.
Thu Sep 25 23:52:57 1997 Noel Cragg <[email protected]>
* cvsclient.texi (Responses): description of Module-expansion was
missing a carriage return after the @item clause.
Wed Sep 24 12:04:42 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Remote repositories): Add comment about pserver
vs. having users create their own repositories.
Sat Sep 20 00:59:53 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Keyword list): Change title from "RCS Keywords" to
"Keyword list" as it is CVS that expands them.
(Avoiding substitution): Change "rcs" to "cvs", in the context of
the program which expands keywords.
Fri Sep 19 22:57:24 1997 Jim Kingdon <[email protected]>
* RCSFILES: Grammar fix in first paragraph. Re-word section on
dead newphrase. Add item about what it means if "expand" is omitted.
* cvs.texinfo (Magic branch numbers): Change example branch number
from 1.2.3 to 1.2.4; CVS assigns even branch numbers and I don't
think vendor branches are very relevant to this example.
Wed Sep 17 17:21:33 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (admin options): Add comment about "cvs admin -b"
(with no argument to the -b).
* RCSFILES: "next" is optional, not required.
Tue Sep 16 15:13:22 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Binary files): Add comment about another possible
way to auto-detect binary files.
Sun Sep 14 12:38:56 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Conflicts example): Adjust text and comments
regarding conflict markers to reflect change in CVS.
Wed Sep 10 12:44:04 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Server requirements): Add comment about server
disk usage in /tmp.
* cvs.texinfo (Common options): More comments about date formats:
"now", "yesterday", and the "3 weeks ago" family.
Tue Sep 9 13:09:58 1997 Jim Kingdon <[email protected]>
* DIFFUTILS-2.7-BUG: Eggert patch is preferred to Rittle one.
Sun Sep 7 18:38:23 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (history options): Revise -e to say that it includes
future record types (and remove out of date list of what record
types it implies).
* cvs.texinfo (Environment variables): Expand/correct discussion
of HOME, HOMEDRIVE, and HOMEPATH.
(Error messages): Add "could not find out home directory".
* cvs.texinfo (update options): Reword -r doc to hopefully be
clearer that it takes either numeric or symbolic revision.
* cvs.texinfo (syntax): Add comment about how regexp syntax may
be, er, creatively altered, by configure.in.
Sat Sep 6 11:29:15 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Working directory storage): Document Baserev and
Baserev.tmp.
(Working directory storage): Adjust comment regarding CVS/* being
text files.
Fri Sep 5 14:42:39 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (BUGS): Remove mention of unsupported resources page
on http://www.cyclic.com, as it might go away in a future
reorganization.
* DIFFUTILS-2.7-BUG: Further info from Eggert.
1997-09-05 Paul Eggert <[email protected]>
* DIFFUTILS-2.7-BUG: Explain how this bug will probably be
fixed in the next diffutils release.
Thu Sep 4 17:09:57 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Binary files): Reword the section on what you need
to do with cvs admin -kb to hopefully be a bit clearer. Still not
ideal (see comment).
* cvs.texinfo (modules): Break node into separate nodes for alias
modules, regular modules, ampersand modules, and options. Expand
text with more examples and explanations. Add index entries.
Wed Sep 3 14:49:43 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Multiple developers): Add idea about cvs editors
and reserved checkouts.
Sun Aug 31 19:36:21 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Requests): Rewrite paragraph on cvs add on a
filename containing '/'.
Thu Aug 28 14:13:50 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (diff options): Add comment about "cvs diff"
vs. "cvs diff -r HEAD".
* cvs.texinfo (Global options): Add comment about -w not
overriding cvs watch on.
Wed Aug 27 08:09:31 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Password authentication server): Grammar fix ("under
as the username" -> "as the username").
* cvs.texinfo: Fix doubled 'the the' typos. Reported by
[email protected].
Tue Aug 26 12:25:42 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Checklist): Reword xref to point to Binary files
rather than Keyword expansion. Credit goes to [email protected]
(Jeff Breidenbach) for reporting the problem.
Mon Aug 18 17:23:18 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (modules): Suggest taginfo instead of -t. Add
comment with some of the reasons. Add comment about -u and -i
problems.
Sat Aug 16 10:19:06 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Add note about how "could not
check out foo.c" seems to also have been observed on Irix.
Fri Aug 15 17:28:01 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Add "could not check out foo.c".
Thu Aug 14 23:57:53 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Wrappers): Document new -m 'COPY' behavior.
Tue Aug 12 20:56:40 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Sticky tags): Add comment about how we should be
documenting sticky tags.
Fri Aug 8 10:01:03 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (File status): Add comment about "working revision"
in cvs status for a locally removed file.
Thu Aug 7 22:53:45 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (From other version control systems): Mention
pvcs_to_rcs alongside sccs2rcs.
Tue Aug 5 17:22:50 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Compatibility): Add comment about how CVS probably
could be detecting the case of dead files killed by CVS 1.3.
* cvs.texinfo (From other version control systems): Add paragraph
about converting from systems which don't export RCS files.
Sun Aug 3 21:03:14 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Responses): Cite RFC1321 for MD5.
* cvs.texinfo (A sample session): Nuke index entry for "A sample
session". The fact that this isn't "sample session" is totally
bogus, but in general the table of contents is probably better for
this entry.
* cvs.texinfo (Error messages): Add comment about wording of error
concerning unknown -x option.
* cvs.texinfo (Wrappers): Add comment about absolute filter pathname.
Thu Jul 31 14:40:15 1997 Jim Kingdon <[email protected]>
* cvs.texinfo: Use @ref not @xref when reference is not at the
start of a sentence. Avoids capitalizing "See" when we shouldn't.
Fixes to other similar xref problems.
Wed Jul 30 19:30:31 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Connection and Authentication): Don't use @samp
on BEGIN AUTH REQUEST and friends. Avoids overfull hbox.
Fri Jul 25 10:40:22 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Requests): Remove obsolete sentence regarding
using Directory instead of Repository enabling alternate response
syntax.
* cvsclient.texi (Response intro): Add discussing of file updating
responses and file update modifying responses.
(Responses): Refer to this description rather than trying to
describe it in each place. The descriptions in each place were
somewhat incomplete and didn't get updated when new file updating
responses were added.
* cvsclient.texi: Split node Responses into Response intro,
Response pathnames, and Responses.
Thu Jul 24 23:13:24 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (config): Document SystemAuth.
(Password authentication server): Mention SystemAuth.
Mon Jul 21 08:57:04 1997 Jim Kingdon <[email protected]>
* Makefile.in (DISTFILES): Add DIFFUTILS-2.7-BUG.
Sun Jul 20 17:55:52 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (admin options): For options with optional
arguments, specify that there can be no space between the option
and its argument. For -N, add xref to Magic branch numbers. For
-t, talk about reading from stdin. Comment changes.
Sat Jul 19 22:28:47 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Preface): Make section titles more verbose.
Likewise for the menu.
Fri Jul 18 08:41:11 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): No need for an external patch if
server and client are current. Add comment with more thoughts
about messages specific to old versions of CVS.
* cvs.texinfo (Error messages): Add "cannot start server via rcmd".
* cvs.texinfo (Error messages): Add "cannot open CVS/Root" for cvs
init.
* cvs.texinfo (Error messages): Add "missing author".
Tue Jul 15 16:47:08 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Keyword list): Fix documentation of $Log to reflect
the fact that we no longer use the comment leader.
(admin options): Fix documentation of $Log.
(admin examples): Remove example concerning comment leader, since
the example no longer does what it claims to.
(admin, admin options): Fix various parts of the documentation to
not refer to this being implemented via RCS. Say nastier things
about -I and -x. Add comments about options to "rcs" which we
don't document.
Mon Jul 14 00:04:32 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): The "cannot change permissions on
temporary directory" error has been happening in various test cases.
Sat Jul 12 11:12:18 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Repository files): Further comments about leading
"-" in filenames.
Fri Jul 11 21:30:11 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Repository files): Add comment about legal
filenames.
Wed Jul 9 18:05:26 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Responses): Add Mbinary response.
Mon Jul 7 12:04:01 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Goals): Add previously unwritten goal about only
one way to do each operation.
* cvs.texinfo (File permissions): Rewrite paragraph on setuid to
be more verbose and less unix-specific.
Sat Jul 5 03:16:38 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Connection and Authentication): When we said to
"ignore" an unrecogized code we mean to treat it as nonspecific,
not to ignore the response.
* cvsclient.texi (Example): Refer to RFC2119 when referring to
terminology of MUST, SHALL, &c.
* cvs.texinfo (Windows permissions): New node.
Fri Jul 4 15:27:43 1997 Ian Lance Taylor <[email protected]>
* cvs.texinfo (Common options): Fix typo (avaliable for
available).
Tue Jul 1 09:19:02 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Server requirements): Discuss memory used by diff.
* cvs.texinfo (Substitution modes): Add comment about -A resetting
both sticky tags/dates and sticky options.
* cvs.texinfo (File permissions): Add paragraph concerning
ownership of the RCS files.
* cvs.texinfo (Working directory storage): Relative repositories
in CVS/Repository are legal.
Mon Jun 30 10:48:21 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Top): Add menu item for Password scrambling.
* cvs.texinfo (Committing your changes): Add comment concerning
documentation of message prompting.
Fri Jun 27 11:20:34 1997 Jim Kingdon <[email protected]>
* cvsclient.texi (Password scrambling): New node.
(Connection and Authentication): Adjust accordingly.
(Protocol Notes): Add long discussion of character sets and
password scrambling.
* cvs.texinfo (Repository files): Also mention doc/RCSFILES in
documenting RCS file format.
(CVSROOT, storage of files): New node.
Thu Jun 26 09:18:15 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (File permissions): xref to the pserver thing about
permissions in CVSROOT.
(Kerberos authenticated): Explicitly mention kerberos rsh.
Add various index entries for "security, <foo>".
Wed Jun 25 13:39:16 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Common options): Rewrite comments concerning HEAD
and testcases and solution. Changing HEAD might be too big a
change; might be better to phase it out.
(Common options, Tags): Add index entries for HEAD and BASE.
Tue Jun 24 09:37:26 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Add assertion failed.
* cvsclient.texi (Connection and Authentication): Add "E" and
"error" as responses in authentication protocol. The server
already was in the (formerly bad) habit of sending them, and we
might as well implement this in the client and document it.
* cvs.texinfo (Password authentication security): Note about
permissions on $CVSROOT also applies to its parent and so on up to
/.
Mon Jun 23 18:28:18 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Creating a repository): xref to Server requirements
for more details on memory, CPU.
(Server requirements): Add xref to Creating a repository regarding
disk space.
* cvs.texinfo (Read-only access, Password authentication
security): The known holes which let a read-only user execute
arbitrary programs on the server are gone.
* cvsclient.texi (Protocol Notes): Remove multisite item; it is
replaced by item 186 in TODO. Add a general reference to TODO.
Rewrite accordingly the sentence about multisite in the item
concerning sending modified files in "cvs update".
Fri Jun 20 17:00:20 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Error messages): Add "binary files differ" when
trying to check in a binary file.
Fri Jun 20 14:01:23 1997 David J MacKenzie <[email protected]>
and Jim Kingdon <[email protected]>
* cvs.texinfo: Fix various formatting, spelling, stylistic, and
factual errors.
Thu Jun 19 07:11:33 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (config): New node.
(Password authentication server): Talk about RCSBIN in config as
an alternative to -b global option.
* cvsclient.texi (Requests): Specify when Root can/must be used.
* cvs.texinfo (Error messages): Add
"*PANIC* administration files missing".
* cvs.texinfo (Password authentication server): Mention
permissions on $CVSROOT and $CVSROOT/CVSROOT as part of the
installation process.
(Password authentication security): Clarify that permissions issue
applies to $CVSROOT as well as $CVSROOT/CVSROOT.
Wed Jun 18 00:03:25 1997 Jim Kingdon <[email protected]>
* cvs.texinfo (Password authentication security): Add paragraph
on write permissions of $CVSROOT/CVSROOT.
* cvs.texinfo (Adding and removing): New node. Move Adding files,
Removing files, Removing directories, Moving files, and Moving
directories under it.
* cvs.texinfo (Removing directories): Add sentence about how
one doesn't remove the directory itself.
* cvs.texinfo (Password authentication server): Document
--allow-root.
+11 -3
View File
@@ -1,4 +1,4 @@
It would be nice for the RCS file format (which is implemented by a
It would be nice if the RCS file format (which is implemented by a
great many tools, both free and non-free, both by calling GNU RCS and
by reimplementing access to RCS files) were documented in some
standard separate from any one tool. But as far as I know no such
@@ -31,6 +31,10 @@ rcsfile.5 also showed the order of the revisions (and the "next" and
"branch" fields and anything else where it would be useful to have an
example of how a revision tree is represented in an RCS file).
The rcsfile.5 grammar shows the {num} after "next" as optional; if it
is omitted then there is no next delta node (for example 1.1 or the
head of a branch will typically have no next).
There is one case where CVS uses CVS-specific, non-compatible changes
to the RCS file format, and this is magic branches. See cvs.texinfo
for more information on them. CVS also sets the RCS state to "dead"
@@ -54,8 +58,9 @@ rules.
namespace RCS library done at Silicon Graphics Inc. (SGI) in 1996
(a modified RCS 5.7--not sure it has any other name).
dead A set of RCS patches developed by Rich Pixley at
Cygnus. These were for CVS, and predated the current
CVS death support, which does not require RCS changes.
Cygnus about 1992. These were for CVS, and predated
the current CVS death support, which uses a state "dead"
rather than a "dead" newphrase.
The rules regarding keyword expansion are not documented along with
the rest of the RCS file format; they are documented in the co(1)
@@ -66,6 +71,9 @@ RCS 5.7 produces a warning whenever it behaves that way, and current
versions of CVS do not handle this case in a special way (CVS 1.9 and
earlier invoke RCS to perform keyword expansion).
Note that if the "expand" keyword is omitted from the RCS file, the
default is "kv".
Note that the "comment {string};" syntax from rcsfile.5 specifies a
comment leader, which affects expansion of the $Log keyword for old
versions of RCS. The comment leader is not used by RCS 5.7 or current
+4349 -2921
View File
File diff suppressed because it is too large. Load diff
+524 -134
View File
@@ -15,9 +15,10 @@ means.
@menu
* Introduction:: What is CVS and what is the client/server protocol for?
* Goals:: Basic design decisions, requirements, scope, etc.
* Protocol Notes:: Possible enhancements, limitations, etc. of the protocol
* Connection and Authentication:: Various ways to connect to the server
* Password scrambling:: Scrambling used by pserver
* Protocol:: Complete description of the protocol
* Protocol Notes:: Possible enhancements, limitations, etc. of the protocol
@end menu
@node Introduction
@@ -111,80 +112,19 @@ current @sc{cvs} server) will make sure that it does not have any such
locks in place whenever it is waiting for communication with the client;
this prevents one client on a slow or flaky network from interfering
with the work of others.
@end itemize
@node Protocol Notes
@chapter Notes on the Protocol
A number of enhancements are possible:
@itemize @bullet
@item
The @code{Modified} request could be speeded up by sending diffs rather
than entire files. The client would need some way to keep the version
of the file which was originally checked out; probably requiring the use
of "cvs edit" in this case is the most sensible course (the "cvs edit"
could be handled by a package like VC for emacs). This would also allow
local operation of @code{cvs diff} without arguments.
@item
Have the client keep a copy of some part of the repository. This allows
all of @code{cvs diff} and large parts of @code{cvs update} and
@code{cvs ci} to be local. The local copy could be made consistent with
the master copy at night (but if the master copy has been updated since
the latest nightly re-sync, then it would read what it needs to from the
master).
It isn't clear exactly how this should relate to a more general
multisite feature (in which one can modify the local copy even if the
network is down between the local and the master, and then they get
reconciled by a potentially manual process). Another variant of a
multisite feature would be where version history is cached to speed up
operations such as @code{cvs diff}, but in which checkins still must be
checked in to all sites, or to a master site.
@item
The current procedure for @code{cvs update} is highly sub-optimal if
there are many modified files. One possible alternative would be to
have the client send a first request without the contents of every
modified file, then have the server tell it what files it needs. Note
the server needs to do the what-needs-to-be-updated check twice (or
more, if changes in the repository mean it has to ask the client for
more files), because it can't keep locks open while waiting for the
network. Perhaps this whole thing is irrelevant if client-side
repositories are implemented, and the rcsmerge is done by the client.
@item
The fact that @code{pserver} requires an extra network turnaround in
order to perform authentication would be nice to avoid. This relates to
the issue of reporting errors; probably the clean solution is to defer
the error until the client has issued a request which expects a
response. To some extent this might relate to the next item (in terms
of how easy it is to skip a whole bunch of requests until we get to one
that expects a response). I know that the kerberos code doesn't wait in
this fashion, but that probably can cause network deadlocks and perhaps
future problems running over a transport which is more transaction
oriented than TCP. On the other hand I'm not sure it is wise to make
the client conduct a lengthy upload only to find there is an
authentication failure.
@item
The protocol uses an extra network turnaround for protocol negotiation
(@code{valid-requests}). It might be nice to avoid this by having the
client be able to send requests and tell the server to ignore them if
they are unrecognized (different requests could produce a fatal error if
unrecognized). To do this there should be a standard syntax for
requests. For example, perhaps all future requests should be a single
line, with mechanisms analogous to @code{Argumentx}, or several requests
working together, to provide greater amounts of information. Or there
might be a standard mechanism for counted data (analogous to that used
by @code{Modified}) or continuation lines (like a generalized
@code{Argumentx}). It would be useful to compare what HTTP is planning
in this area; last I looked they were contemplating something called
Protocol Extension Protocol but I haven't looked at the relevant IETF
documents in any detail. Obviously, we want something as simple as
possible (but no simpler).
It is a general design goal to provide only one way to do a given
operation (where possible). For example, implementations have no choice
about whether to terminate lines with linefeeds or some other
character(s), and request and response names are case-sensitive. This
is to enhance interoperability. If a protocol allows more than one way
to do something, it is all too easy for some implementations to support
only some of them (perhaps accidentally).
@c I vaguely remember reading, probably in an RFC, about the problems
@c that were caused when some people decided that SMTP should accept
@c other line termination (in the message ("DATA")?) than CRLF. However, I
@c can't seem to track down the reference.
@end itemize
@node Connection and Authentication
@@ -209,60 +149,191 @@ by having inetd call "cvs kserver") which defaults to 1999. The client
connects, sends the usual kerberos authentication information, and then
starts the cvs protocol. Note: port 1999 is officially registered for
another use, and in any event one cannot register more than one port for
CVS, so the kerberized client and server should be changed to use port
2401 (see below), and send a different string in place of @samp{BEGIN
AUTH REQUEST} to identify the authentication method in use. However,
noone has yet gotten around to implementing this.
CVS, so GSS-API (see below) is recommended instead of kserver as a way
to support kerberos.
@item pserver
The password authenticated server listens on a port (in the current
The name @dfn{pserver} is somewhat confusing. It refers to both a
generic framework which allows the CVS protocol to support several
authentication mechanisms, and a name for a specific mechanism which
transfers a username and a cleartext password. Servers need not support
all mechanisms, and in fact servers will typically want to support only
those mechanisms which meet the relevant security needs.
The pserver server listens on a port (in the current
implementation, by having inetd call "cvs pserver") which defaults to
2401 (this port is officially registered). The client
connects, sends the string @samp{BEGIN AUTH REQUEST}, a linefeed, the
cvs root, a linefeed, the username, a linefeed, the password trivially
encoded (see scramble.c in the cvs sources), a linefeed, the string
@samp{END AUTH REQUEST}, and a linefeed. The client must send the
connects, and sends the following:
@itemize @bullet
@item
the string @samp{BEGIN AUTH REQUEST}, a linefeed,
@item
the cvs root, a linefeed,
@item
the username, a linefeed,
@item
the password trivially encoded (see @ref{Password scrambling}), a
linefeed,
@item
the string @samp{END AUTH REQUEST}, and a linefeed.
@end itemize
The client must send the
identical string for cvs root both here and later in the
@code{Root} request of the cvs
protocol itself. Servers are encouraged to enforce this restriction.
The server responds with
@samp{I LOVE YOU} and a linefeed if the authentication is successful or
@samp{I HATE YOU} and a linefeed if the authentication fails. After
receiving @samp{I LOVE YOU}, the client proceeds with the cvs protocol.
The possible server responses (each of which is followed by a linefeed)
are the following. Note that although there is a small similarity
between this authentication protocol and the cvs protocol, they are
separate.
@table @code
@item I LOVE YOU
The authentication is successful. The client proceeds with the cvs
protocol itself.
@item I HATE YOU
The authentication fails. After sending this response, the server may
close the connection. It is up to the server to decide whether to give
this response, which is generic, or a more specific response using
@samp{E} and/or @samp{error}.
@item E @var{text}
Provide a message for the user. After this reponse, the authentication
protocol continues with another response. Typically the server will
provide a series of @samp{E} responses followed by @samp{error}.
Compatibility note: @sc{cvs} 1.9.10 and older clients will print
@code{unrecognized auth response} and @var{text}, and then exit, upon
receiving this response.
@item error @var{code} @var{text}
The authentication fails. After sending this response, the server may
close the connection. The @var{code} is a code describing why it
failed, intended for computer consumption. The only code currently
defined is @samp{0} which is nonspecific, but clients must silently
treat any unrecognized codes as nonspecific.
The @var{text} should be supplied to the
user. Compatibility note: @sc{cvs} 1.9.10 and older clients will print
@code{unrecognized auth response} and @var{text}, and then exit, upon
receiving this response.
@end table
@c If you are thinking of putting samp or code around BEGIN AUTH REQUEST
@c and friends, watch for overfull hboxes.
If the client wishes to merely authenticate without starting the cvs
protocol, the procedure is the same, except @samp{BEGIN AUTH REQUEST} is
replaced with @samp{BEGIN VERIFICATION REQUEST}, @samp{END AUTH REQUEST}
is replaced with @samp{END VERIFICATION REQUEST}, and upon receipt of
@samp{I LOVE YOU} the connection is closed rather than continuing.
protocol, the procedure is the same, except BEGIN AUTH REQUEST is
replaced with BEGIN VERIFICATION REQUEST, END AUTH REQUEST
is replaced with END VERIFICATION REQUEST, and upon receipt of
I LOVE YOU the connection is closed rather than continuing.
Another mechanism is GSSAPI authentication. GSSAPI is a
generic interface to security services such as kerberos. GSSAPI is
specified in RFC2078 (GSSAPI version 2) and RFC1508 (GSSAPI version 1);
we are not aware of differences between the two which affect the
protocol in incompatible ways, so we make no attempt to specify one
version or the other.
The procedure here is to start with @samp{BEGIN
GSSAPI REQUEST}. GSSAPI authentication information is then exchanged
between the client and the server. Each packet of information consists
of a two byte big endian length, followed by that many bytes of data.
After the GSSAPI authentication is complete, the server continues with
the responses described above (@samp{I LOVE YOU}, etc.).
@item future possibilities
There are a nearly unlimited number of ways to connect and authenticate.
One might want to allow access based on IP address (similar to the usual
rsh protocol but with different/no restrictions on ports < 1024), to
adopt mechanisms such as the General Security Service (GSS) API or
Pluggable Authentication Modules (PAM), to allow users to run their own
servers under their own usernames without root access, or any number of
other possibilities. The way to add future mechanisms, for the most
part, should be to continue to use port 2401, but to use different
strings in place of @samp{BEGIN AUTH REQUEST}.
adopt mechanisms such as Pluggable Authentication Modules (PAM), to
allow users to run their own servers under their own usernames without
root access, or any number of other possibilities. The way to add
future mechanisms, for the most part, should be to continue to use port
2401, but to use different strings in place of @samp{BEGIN AUTH
REQUEST}.
@end table
@node Password scrambling
@chapter Password scrambling algorithm
The pserver authentication protocol, as described in @ref{Connection and
Authentication}, trivially encodes the passwords. This is only to
prevent inadvertent compromise; it provides no protection against even a
relatively unsophisticated attacker. For comparison, HTTP Basic
Authentication (as described in RFC2068) uses BASE64 for a similar
purpose. CVS uses its own algorithm, described here.
The scrambled password starts with @samp{A}, which serves to identify
the scrambling algorithm in use. After that follows a single octet for
each character in the password, according to a fixed encoding. The
values are shown here, with the encoded values in decimal. Control
characters, space, and characters outside the invariant ISO 646
character set are not shown; such characters are not recommended for use
in passwords. There is a long discussion of character set issues in
@ref{Protocol Notes}.
@example
0 111 P 125 p 58
! 120 1 52 A 57 Q 55 a 121 q 113
" 53 2 75 B 83 R 54 b 117 r 32
3 119 C 43 S 66 c 104 s 90
4 49 D 46 T 124 d 101 t 44
% 109 5 34 E 102 U 126 e 100 u 98
& 72 6 82 F 40 V 59 f 69 v 60
' 108 7 81 G 89 W 47 g 73 w 51
( 70 8 95 H 38 X 92 h 99 x 33
) 64 9 65 I 103 Y 71 i 63 y 97
* 76 : 112 J 45 Z 115 j 94 z 62
+ 67 ; 86 K 50 k 93
, 116 < 118 L 42 l 39
- 74 = 110 M 123 m 37
. 68 > 122 N 91 n 61
/ 87 ? 105 O 35 _ 56 o 48
@end example
@node Protocol
@chapter The CVS client/server protocol
In the following, @samp{\n} refers to a linefeed and @samp{\t} refers
to a horizontal tab.
In the following, @samp{\n} refers to a linefeed and @samp{\t} refers to
a horizontal tab; @dfn{requests} are what the client sends and
@dfn{responses} are what the server sends. In general, the connection is
governed by the client---the server does not send responses without
first receiving requests to do so; see @ref{Response intro} for more
details of this convention.
It is typical, early in the connection, for the client to transmit a
@code{Valid-responses} request, containing all the responses it
supports, followed by a @code{valid-requests} request, which elicits
from the server a @code{Valid-requests} response containing all the
requests it understands. In this way, the client and server each find
out what the other supports before exchanging large amounts of data
(such as file contents).
@c Hmm, having 3 sections in this menu makes a certain amount of sense
@c but that structure gets lost in the printed manual (not sure about
@c HTML). Perhaps there is a better way.
@menu
* Entries Lines::
* Modes::
General protocol conventions:
* Entries Lines:: Transmitting RCS data
* File Modes:: Read, write, execute, and possibly more...
* Filenames:: Conventions regarding filenames
* File transmissions:: How file contents are transmitted
* Strings:: Strings in various requests and responses
* Requests::
* Responses::
* Example::
* Requirements::
The protocol itself:
* Request intro:: General conventions relating to requests
* Requests:: List of requests
* Response intro:: General conventions relating to responses
* Response pathnames:: The "pathname" in responses
* Responses:: List of responses
* Text tags:: More details about the MT response
An example session, and some further observations:
* Example:: A conversation between client and server
* Requirements:: Things not to omit from an implementation
* Obsolete:: Former protocol features
@end menu
@@ -290,8 +361,16 @@ conflicts in it. The rest of @var{conflict} is @samp{=} if the
timestamp matches the file, or anything else if it doesn't. If
@var{conflict} does not start with a @samp{+}, it is silently ignored.
@node Modes
@section Modes
@var{options} signifies the keyword expansion options (for example
@samp{-ko}). In an @code{Entry} request, this indicates the options
that were specified with the file from the previous file updating
response (@pxref{Response intro}, for a list of file updating
responses); if the client is specifying the @samp{-k} or @samp{-A}
option to @code{update}, then it is the server which figures out what
overrides what.
@node File Modes
@section File Modes
A mode is any number of repetitions of
@@ -389,8 +468,8 @@ existing practice is probably to just transmit whatever the user
specifies, and hope that everyone involved agrees which character set is
in use, or sticks to a common subset.
@node Requests
@section Requests
@node Request intro
@section Request intro
By convention, requests which begin with a capital letter do not elicit
a response from the server, while all others do -- save one. The
@@ -398,6 +477,11 @@ exception is @samp{gzip-file-contents}. Unrecognized requests will
always elicit a response from the server, even if that request begins
with a capital letter.
@node Requests
@section Requests
Here are the requests:
@table @code
@item Root @var{pathname} \n
Response expected: no. Tell the server which @code{CVSROOT} to use.
@@ -408,6 +492,10 @@ already exist; if creating a new root, use the @code{init} request, not
server, how to access the server, etc.; by the time the CVS protocol is
in use, connection, authentication, etc., are already taken care of.
The @code{Root} request must be sent only once, and it must be sent
before any requests other than @code{Valid-responses},
@code{valid-requests}, @code{UseUnchanged}, or @code{init}.
@item Valid-responses @var{request-list} \n
Response expected: no.
Tell the server what responses the client will accept.
@@ -426,8 +514,7 @@ also for @code{ci} and the other commands; normal usage is to send
@code{Directory} for each directory in which there will be an
@code{Entry} or @code{Modified}, and then a final @code{Directory}
for the original directory, then the command.
If the client uses this request, it affects the way the server returns
pathnames; see @ref{Responses}. @var{local-directory} is relative to
The @var{local-directory} is relative to
the top level at which the command is occurring (i.e. the last
@code{Directory} which is sent before the command);
to indicate that top level, @samp{.} should be send for
@@ -549,6 +636,15 @@ sent for the same file, @code{Entry} must be sent first. For a
given file, one can send @code{Modified}, @code{Is-modified}, or
@code{Unchanged}, but not more than one of these three.
@item Kopt @var{option} \n
This indicates to the server which keyword expansion options to use for
the file specified by the next @code{Modified} or @code{Is-modified}
request (for example @samp{-kb} for a binary file). This is similar to
@code{Entry}, but is used for a file for which there is no entries line.
Typically this will be a file being added via an @code{add} or
@code{import} request. The client may not send both @code{Kopt} and
@code{Entry} for the same file.
@item Modified @var{filename} \n
Response expected: no. Additional data: mode, \n, file transmission.
Send the server a copy of one locally modified file. @var{filename} is
@@ -703,6 +799,38 @@ the client and server encrypt the compressed data, as opposed to
compressing the encrypted data. Encrypted data is generally
incompressible.
Note that this request does not fully prevent an attacker from hijacking
the connection, in the sense that it does not prevent hijacking the
connection between the initial authentication and the
@code{Kerberos-encrypt} request.
@item Gssapi-encrypt \n
Response expected: no.
Use GSSAPI encryption to encrypt all further communication between the
client and the server. This will only work if the connection was made
over GSSAPI in the first place. See @code{Kerberos-encrypt}, above, for
the relation between @code{Gssapi-encrypt} and @code{Gzip-stream}.
Note that this request does not fully prevent an attacker from hijacking
the connection, in the sense that it does not prevent hijacking the
connection between the initial authentication and the
@code{Gssapi-encrypt} request.
@item Gssapi-authenticate \n
Response expected: no.
Use GSSAPI authentication to authenticate all further communication
between the client and the server. This will only work if the
connection was made over GSSAPI in the first place. Encrypted data is
automatically authenticated, so using both @code{Gssapi-authenticate}
and @code{Gssapi-encrypt} has no effect beyond that of
@code{Gssapi-encrypt}. Unlike encrypted data, it is reasonable to
compress authenticated data.
Note that this request does not fully prevent an attacker from hijacking
the connection, in the sense that it does not prevent hijacking the
connection between the initial authentication and the
@code{Gssapi-authenticate} request.
@item Set @var{variable}=@var{value} \n
Response expected: no.
Set a user variable @var{variable} to @var{value}.
@@ -766,7 +894,6 @@ directory.
@itemx log \n
@itemx remove \n
@itemx admin \n
@itemx export \n
@itemx history \n
@itemx watchers \n
@itemx editors \n
@@ -788,6 +915,19 @@ correspond to except by (1) just sending the @code{co} request, and then
seeing what directory names the server sends back in its responses, and
(2) the @code{expand-modules} request.
@item export \n
Response expected: yes. Get files from the repository. This uses any
previous @code{Argument}, @code{Directory}, @code{Entry}, or
@code{Modified} requests, if they have been sent. Arguments to this
command are module names, as described for the @code{co} request. The
intention behind this command is that a client can get sources from a
server without storing CVS information about those sources. That is, a
client probably should not count on being able to take the entries line
returned in the @code{Created} response from an @code{export} request
and send it in a future @code{Entry} request. Note that the entries
line in the @code{Created} response must indicate whether the file is
binary or text, so the client can create it correctly.
@item rdiff \n
@itemx rtag \n
Response expected: yes. Actually do a cvs command. This uses any
@@ -882,17 +1022,17 @@ to perform a few more checks.
The client sends a subsequent @code{ci} to actually add the file to the
repository.
Another quirk of the @code{add} request is that a pathname specified in
Another quirk of the @code{add} request is that with CVS 1.9 and older,
a pathname specified in
an @code{Argument} request cannot contain @samp{/}. There is no good
reason for this restriction, and it could be eliminated if someone took
the effort to rewrite the @code{add} code in the CVS server to not have
it. But in the meantime, the way to comply with it is to ensure that
reason for this restriction, and in fact more recent CVS servers don't
have it.
But the way to interoperate with the older servers is to ensure that
all @code{Directory} requests for @code{add} (except those used to add
directories, as described above), use @samp{.} for
@var{local-directory}. Specifying another string for
@var{local-directory} may not get an error, but it will get you strange
@code{Checked-in} responses, until servers are fixed to send the correct
responses.
@code{Checked-in} responses from the buggy servers.
@item watch-on \n
@itemx watch-off \n
@@ -941,6 +1081,11 @@ Availability of this request in the server indicates to the client that
it may compress files sent to the server, regardless of whether the
client actually uses this request.
@item wrapper-sendme-rcsOptions \n
Response expected: yes.
Request that the server transmit mappings from filenames to keyword
expansion modes in @code{Wrapper-rcsOption} responses.
@item @var{other-request} @var{text} \n
Response expected: yes.
Any unrecognized request expects a response, and does not
@@ -951,8 +1096,8 @@ a previous command which doesn't expect a response produced an error.
When the client is done, it drops the connection.
@node Responses
@section Responses
@node Response intro
@section Introduction to Responses
After a command which expects a response, the server sends however many
of the following responses are appropriate. The server should not send
@@ -960,9 +1105,31 @@ data at other times (the current implementation may violate this
principle in a few minor places, where the server is printing an error
message and exiting---this should be investigated further).
Any set of responses always ends with @samp{error} or @samp{ok}. This
indicates that the response is over.
@c "file updating response" and "file update modifying response" are
@c lame terms (mostly because they are so awkward). Any better ideas?
The responses @code{Checked-in}, @code{New-entry}, @code{Updated},
@code{Created}, @code{Update-existing}, @code{Merged}, and
@code{Patched} are refered to as @dfn{file updating} responses, because
they change the status of a file in the working directory in some way.
The responses @code{Mode}, @code{Mod-time}, and @code{Checksum} are
referred to as @dfn{file update modifying} responses because they modify
the next file updating response. In no case shall a file update
modifying response apply to a file updating response other than the next
one. Nor can the same file update modifying response occur twice for
a given file updating response (if servers diagnose this problem, it may
aid in detecting the case where clients send an update modifying
response without following it by a file updating response).
@node Response pathnames
@section The "pathname" in responses
Many of the responses contain something called @var{pathname}.
@c FIXME: should better document when the specified repository needs to
@c end in "/.".
In the following, @var{pathname} actually indicates a pair of
The name is somewhat misleading; it actually indicates a pair of
pathnames. First, a local directory name
relative to the directory in which the command was given (i.e. the last
@code{Directory} before the command). Then a linefeed and a repository
@@ -1001,8 +1168,10 @@ greatly by only telling the client to create directories if the
directory in question should exist, but until servers do this, clients
will need to offer the @samp{-P} behavior described above.
Any response always ends with @samp{error} or @samp{ok}. This indicates
that the response is over.
@node Responses
@section Responses
Here are the responses:
@table @code
@item Valid-requests @var{request-list} \n
@@ -1096,13 +1265,14 @@ only support @code{Patched}.
@item Mode @var{mode} \n
This @var{mode} applies to the next file mentioned in
@code{Checked-in}. It does not apply to any request which follows a
@code{Checked-in}, @code{New-entry}, @code{Updated}, @code{Merged}, or
@code{Patched} response.
@code{Checked-in}. @code{Mode} is a file update modifying response
as described in @ref{Response intro}.
@item Mod-time @var{time} \n
Set the modification time of the next file sent to @var{time}. Next
file sent means sent by @code{Checked-in}, @code{Created}, etc. The
Set the modification time of the next file sent to @var{time}.
@code{Mod-time} is a file update modifying response
as described in @ref{Response intro}.
The
@var{time} is in the format specified by RFC822 as modified by RFC1123.
The server may specify any timezone it chooses; clients will want to
convert that to their own timezone as appropriate. An example of this
@@ -1118,13 +1288,16 @@ synchronized. The server just sends its recommendation for a timestamp
it (this means that the time might be in the future, for example).
@item Checksum @var{checksum}\n
The @var{checksum} applies to the next file sent over via
@code{Updated}, @code{Merged}, or @code{Patched}. In the case of
The @var{checksum} applies to the next file sent (that is,
@code{Checksum} is a file update modifying response
as described in @ref{Response intro}).
In the case of
@code{Patched}, the checksum applies to the file after being patched,
not to the patch itself. The client should compute the checksum itself,
after receiving the file or patch, and signal an error if the checksums
do not match. The checksum is the 128 bit MD5 checksum represented as
32 hex digits. This response is optional, and is only used if the
32 hex digits (MD5 is described in RFC1321).
This response is optional, and is only used if the
client supports it (as judged by the @code{Valid-responses} request).
@item Copy-file @var{pathname} \n
@@ -1194,7 +1367,8 @@ request; if there are several @code{Notify} requests for a single file,
the requests should be processed in order; the first @code{Notified}
response pertains to the first @code{Notify} request, etc.
@item Module-expansion @var{pathname} \n Return a file or directory
@item Module-expansion @var{pathname} \n
Return a file or directory
which is included in a particular module. @var{pathname} is relative
to cvsroot, unlike most pathnames in responses. @var{pathname} should
be used to look and see whether some or all of the module exists on
@@ -1203,9 +1377,27 @@ argument to a @code{co} request (for example, if the modules file
contains the @samp{-d} option, it will be the directory specified with
@samp{-d}, not the name of the module).
@item Wrapper-rcsOption @var{pattern} -k '@var{option}' \n
Transmit to the client a filename pattern which implies a certain
keyword expansion mode. The @var{pattern} is a wildcard pattern (for
example, @samp{*.exe}. The @var{option} is @samp{b} for binary, and so
on. Note that although the syntax happens to resemble the syntax in
certain CVS configuration files, it is more constrained; there must be
exactly one space between @var{pattern} and @samp{-k} and exactly one
space between @samp{-k} and @samp{'}, and no string is permitted in
place of @samp{-k} (extensions should be done with new responses, not by
extending this one, for graceful handling of @code{Valid-responses}).
@item M @var{text} \n
A one-line message for the user.
@item Mbinary \n
Additional data: file transmission (note: compressed file transmissions
are not supported). This is like @samp{M}, except the contents of the
file transmission are binary and should be copied to standard output
without translation to local text file conventions. To transmit a text
file to standard output, servers should use a series of @samp{M} requests.
@item E @var{text} \n
Same as @code{M} but send to stderr not stdout.
@@ -1217,6 +1409,77 @@ Flush stderr. That is, make it possible for the user to see what has
been written to stderr (it is up to the implementation to decide exactly
how far it should go to ensure this).
@item MT @var{tagname} @var{data} \n
This response provides for tagged text. It is similar to
SGML/HTML/XML in that the data is structured and a naive application
can also make some sense of it without understanding the structure.
The syntax is not SGML-like, however, in order to fit into the CVS
protocol better and (more importantly) to make it easier to parse,
especially in a language like perl or awk.
The @var{tagname} can have several forms. If it starts with @samp{a}
to @samp{z} or @samp{A} to @samp{Z}, then it represents tagged text.
If the implementation recognizes @var{tagname}, then it may interpret
@var{data} in some particular fashion. If the implementation does not
recognize @var{tagname}, then it should simply treat @var{data} as
text to be sent to the user (similar to an @samp{M} response). There
are two tags which are general purpose. The @samp{text} tag is
similar to an unrecognized tag in that it provides text which will
ordinarily be sent to the user. The @samp{newline} tag is used
without @var{data} and indicates that a newline will ordinarily be
sent to the user (there is no provision for embedding newlines in the
@var{data} of other tagged text responses).
If @var{tagname} starts with @samp{+} it indicates a start tag and if
it starts with @samp{-} it indicates an end tag. The remainder of
@var{tagname} should be the same for matching start and end tags, and
tags should be nested (for example one could have tags in the
following order @code{+bold} @code{+italic} @code{text} @code{-italic}
@code{-bold} but not @code{+bold} @code{+italic} @code{text}
@code{-bold} @code{-italic}). A particular start and end tag may be
documented to constrain the tagged text responses which are valid
between them.
Note that if @var{data} is present there will always be exactly one
space between @var{tagname} and @var{data}; if there is more than one
space, then the spaces beyond the first are part of @var{data}.
Here is an example of some tagged text responses. Note that there is
a trailing space after @samp{Checking in} and @samp{initial revision:}
and there are two trailing spaces after @samp{<--}. Such trailing
spaces are, of course, part of @var{data}.
@example
MT +checking-in
MT text Checking in
MT fname gz.tst
MT text ;
MT newline
MT rcsfile /home/kingdon/zwork/cvsroot/foo/gz.tst,v
MT text <--
MT fname gz.tst
MT newline
MT text initial revision:
MT init-rev 1.1
MT newline
MT text done
MT newline
MT -checking-in
@end example
If the client does not support the @samp{MT} response, the same
responses might be sent as:
@example
M Checking in gz.tst;
M /home/kingdon/zwork/cvsroot/foo/gz.tst,v <-- gz.tst
M initial revision: 1.1
M done
@end example
For a list of specific tags, see @ref{Text tags}.
@item error @var{errno-code} @samp{ } @var{text} \n
The command completed with an error. @var{errno-code} is a symbolic
error code (e.g. @code{ENOENT}); if the server doesn't support this
@@ -1229,6 +1492,35 @@ strerror(), or any other message the server wants to use.
The command completed successfully.
@end table
@node Text tags
@section Tags for the MT tagged text response
The @code{MT} response, as described in @ref{Responses}, offers a
way for the server to send tagged text to the client. This section
describes specific tags. The intention is to update this section as
servers add new tags.
In the following descriptions, @code{text} and @code{newline} tags are
omitted. Such tags contain information which is intended for users (or
to be discarded), and are subject to change at the whim of the server.
To avoid being vulnerable to such whim, clients should look for the tags
listed here, not @code{text}, @code{newline}, or other tags.
The following tag means to indicate to the user that a file has been
updated. It is more or less redundant with the @code{Created} and
@code{Update-existing} responses, but we don't try to specify here
whether it occurs in exactly the same circumstances as @code{Created}
and @code{Update-existing}. The @var{name} is the pathname of the file
being updated relative to the directory in which the command is
occurring (that is, the last @code{Directory} request which is sent
before the command).
@example
MT +updated
MT fname @var{name}
MT -updated
@end example
@node Example
@section Example
@@ -1236,9 +1528,9 @@ The command completed successfully.
@c other RFC's). In other formatting concerns, we might want to think
@c about whether there is an easy way to provide RFC1543 formatting
@c (without negating the advantages of texinfo), and whether we should
@c use RFC822-style BNF (I fear that would be less clear than
@c what we do now, however). Plus what about IETF terminology (SHOULD,
@c MUST, etc.) or ISO terminology (shall, should, or whatever they are)?
@c use RFC2234 BNF (I fear that would be less clear than
@c what we do now, however). Plus what about RFC2119 terminology (MUST,
@c SHOULD, &c) or ISO terminology (shall, should, or whatever they are)?
Here is an example; lines are prefixed by @samp{C: } to indicate the
client sends them or @samp{S: } to indicate the server sends them.
@@ -1410,4 +1702,102 @@ working directory, and the meaning of sending @code{Entries} without
@code{Lost} or @code{Modified} was different. All current clients (CVS
1.5 and later) will send @code{UseUnchanged} if it is supported.
@node Protocol Notes
@chapter Notes on the Protocol
A number of enhancements are possible. Also see the file @sc{todo} in
the @sc{cvs} source distribution, which has further ideas concerning
various aspects of @sc{cvs}, some of which impact the protocol.
@itemize @bullet
@item
The @code{Modified} request could be speeded up by sending diffs rather
than entire files. The client would need some way to keep the version
of the file which was originally checked out; probably requiring the use
of "cvs edit" in this case is the most sensible course (the "cvs edit"
could be handled by a package like VC for emacs). This would also allow
local operation of @code{cvs diff} without arguments.
@item
The current procedure for @code{cvs update} is highly sub-optimal if
there are many modified files. One possible alternative would be to
have the client send a first request without the contents of every
modified file, then have the server tell it what files it needs. Note
the server needs to do the what-needs-to-be-updated check twice (or
more, if changes in the repository mean it has to ask the client for
more files), because it can't keep locks open while waiting for the
network. Perhaps this whole thing is irrelevant if there is a multisite
capability (as noted in @sc{todo}), and therefore the rcsmerge can be
done with a repository which is connected via a fast connection.
@item
The fact that @code{pserver} requires an extra network turnaround in
order to perform authentication would be nice to avoid. This relates to
the issue of reporting errors; probably the clean solution is to defer
the error until the client has issued a request which expects a
response. To some extent this might relate to the next item (in terms
of how easy it is to skip a whole bunch of requests until we get to one
that expects a response). I know that the kerberos code doesn't wait in
this fashion, but that probably can cause network deadlocks and perhaps
future problems running over a transport which is more transaction
oriented than TCP. On the other hand I'm not sure it is wise to make
the client conduct a lengthy upload only to find there is an
authentication failure.
@item
The protocol uses an extra network turnaround for protocol negotiation
(@code{valid-requests}). It might be nice to avoid this by having the
client be able to send requests and tell the server to ignore them if
they are unrecognized (different requests could produce a fatal error if
unrecognized). To do this there should be a standard syntax for
requests. For example, perhaps all future requests should be a single
line, with mechanisms analogous to @code{Argumentx}, or several requests
working together, to provide greater amounts of information. Or there
might be a standard mechanism for counted data (analogous to that used
by @code{Modified}) or continuation lines (like a generalized
@code{Argumentx}). It would be useful to compare what HTTP is planning
in this area; last I looked they were contemplating something called
Protocol Extension Protocol but I haven't looked at the relevant IETF
documents in any detail. Obviously, we want something as simple as
possible (but no simpler).
@item
The scrambling algorithm in the CVS client and server actually support
more characters than those documented in @ref{Password scrambling}.
Someday we are going to either have to document them all (but this is
not as easy as it may look, see below), or (gradually and with adequate
process) phase out the support for other characters in the CVS
implementation. This business of having the feature partly undocumented
isn't a desirable state long-term.
The problem with documenting other characters is that unless we know
what character set is in use, there is no way to make a password
portable from one system to another. For example, a with a circle on
top might have different encodings in different character sets.
It @emph{almost} works to say that the client picks an arbitrary,
unknown character set (indeed, having the CVS client know what character
set the user has in mind is a hard problem otherwise), and scrambles
according to a certain octet<->octet mapping. There are two problems
with this. One is that the protocol has no way to transmit character 10
decimal (linefeed), and the current server and clients have no way to
handle 0 decimal (NUL). This may cause problems with certain multibyte
character sets, in which octets 10 and 0 will appear in the middle of
other characters. The other problem, which is more minor and possibly
not worth worrying about, is that someone can type a password on one
system and then go to another system which uses a different encoding for
the same characters, and have their password not work.
The restriction to the ISO646 invariant subset is the best approach for
strings which are not particularly significant to users. Passwords are
visible enough that this is somewhat doubtful as applied here. ISO646
does, however, have the virtue (!?) of offending everyone. It is easy
to say "But the $ is right on people's keyboards! Surely we can't
forbid that". From a human factors point of view, that makes quite a
bit of sense. The contrary argument, of course, is that a with a circle
on top, or some of the characters poorly handled by Unicode, are on
@emph{someone}'s keyboard.
@end itemize
@bye
+96
View File
@@ -1,3 +1,99 @@
1998-02-20 Jim Kingdon <[email protected]>
* regex.c: Partial merge with version from emacs 20.2. Brings
over some trivial changes (whitespace and so on) (most such
changes I didn't bother with, for this time). Don't cast to int
before comparing old_regend[r] to regstart[r] (this is the point
of bothering; the old code was broken for 64 bit machines.
Reported by Paul Vixie).
Tue Feb 17 18:33:26 1998 Ian Lance Taylor <[email protected]>
* memmove.c: New file, resurrecting the old one.
* Makefile.in (SOURCES): Add memmove.c.
1998-02-03 Tim Pierce <[email protected]>
* system.h (CVS_LSTAT): New macro.
Sat Feb 7 17:33:39 1998 Ian Lance Taylor <[email protected]>
* getline.h (getstr): Declare.
13 Jan 1998 Jim Kingdon
* fncase.c: Include config.h before system.h.
* system.h: Just include string.h unconditionally. We already
include it unconditionally elsewhere.
Tue Jan 13 16:51:59 1998 Ian Lance Taylor <[email protected]>
* fncase.c: New file, taken from windows-NT/filesubr.c.
* system.h: If __CYGWIN32__ or WIN32 are defined, define
FOLD_FN_CHAR, FILENAMES_CASE_INSENSITIVE, and ISDIRSEP, and
declare fncmp and fnfold. Taken from windows-NT/config.h.
* Makefile.in (SOURCES): Add fncase.c.
Sat Jan 10 10:51:26 1998 Jim Kingdon <[email protected]>
* getline.c (getstr): Make sure to set errno when appropriate. I
didn't test the error case for the new code but inspection shows
the old code was rather broken.
Sat Nov 29 22:03:39 1997 Jim Kingdon <[email protected]>
getwd and getcwd were a big big mess. Although Jim's fix might
indeed be fixing a typo, the code is so tangled that I would guess
it probably breaks some system. So clean this up:
* xgetwd.c: Always assume we have getcwd (we had been anyway,
before Jim's change).
* getwd.c: Removed.
* Makefile.in: Remove getwd.c
* system.h: Remove declarations of getwd and getcwd. Move getcwd
declaration to the !HAVE_UNISTD_H section.
1997-11-29 Jim Meyering <[email protected]>
* xgetwd.c: Fix typo s/ifndef/ifdef/ in test of HAVE_GETWD.
Wed Nov 26 10:12:33 1997 Jim Kingdon <[email protected]>
* system.h: Always use "rb" and "wb". Check for O_BINARY with an
#ifdef, not the error-prone LINES_CRLF_TERMINATED.
Thu Sep 25 10:57:39 1997 Jim Kingdon <[email protected]>
* getdate.y (get_date): If gmtime returns NULL, try to cope.
* getdate.c: Regenerated using byacc.
* getdate.y: Remove comment about sending email concerning this file
to Rich Salz.
* getdate.c: Regenerated using byacc.
Wed Sep 24 10:35:38 1997 Jim Kingdon <[email protected]>
* Makefile.in (OBJECTS): Add regex.o.
Wed Sep 17 16:37:17 1997 Jim Kingdon <[email protected]>
* getdate.y (ToSeconds): For am or pm, a hour of "12" really means 0.
* getdate.c: Regenerated using byacc (not bison per comment).
Tue Sep 9 20:51:45 1997 Jim Kingdon <[email protected]>
* build_lib.com: Add vasprintf.c and vasprintf.obj.
* build_lib.com: Remove strippath.obj from library/create command.
Sun Sep 7 17:35:27 1997 Jim Kingdon <[email protected]>
* system.h: Replace comment referring to ChangeLog with a
comment based on the ChangeLog entries.
* strdup.c: Removed, per change to ../configure.in
* Makefile.in (SOURCES): Remove strdup.c.
Mon Jun 16 18:59:50 1997 Jim Kingdon <[email protected]>
* system.h: Add CVS_FNMATCH.
Loaded 100 of 1292 files, more files were not shown because too many files have changed in this diff. Show more