716 Commits

Author SHA1 Message Date
Jordan K. Hubbard
2283d8e502 Use mtree -U instead of -u and put back error check. Thanks Rod! 1995-04-28 04:16:30 +00:00
Jordan K. Hubbard
d0d3dac501 This will be the module that handles all media detection. 1995-04-27 18:05:10 +00:00
Jordan K. Hubbard
ef42570d65 Latest raft of changes.
Added another couple of menu item types.

Reshuffled the menus and added a few more.  Sure wish I could figure out
how to initialize a menu with _one_ initializer rather than two! :(
1995-04-27 18:03:55 +00:00
Jordan K. Hubbard
4e278bdb76 Here is my first "framework" commit of the new sysinstall. There is a LOT
more to come in the next 24 hours, this is just the first stable result of
8 hours of hacking so far.  The specification format for menus is pretty
much hammered out and the beginnings (very humble) of the doc hierarchy
are present for an example.  It should be quite easy to add a lot more
menus quickly to this since I did go somewhat out of my way to make the
framework easy to work with.  This is NOT the glorious semi-graphical
sysinstall (or whatever its name will be) that the install-geeks are working
on, this is simply the "son of sysinstall" I've been promising to write in
the interim for 2.0.5 and 2.1R (super install doesn't come until 2.2R).
1995-04-27 12:50:35 +00:00
Jordan K. Hubbard
278ea7ecee Don't bother checking the return status of the mtree command - it returns
non-zero stats when it changes things, too.
1995-04-27 11:33:08 +00:00
Jordan K. Hubbard
9d69574dbc Close PR:
>Number:         368
>Category:       bin
>Synopsis:       Lpd doesn't log errors after failed exec
>Description:

If an exec done by lpd fails, nothing is sent to the system log
indicating what went wrong.  This is because lpd closes all of
the file descriptors before doing the exec, thus closing the syslog
file descriptor in the process.
[Fix applied]
Submitted by:	pritc003@maroon.tc.umn.edu
1995-04-27 04:56:10 +00:00
Bill Paul
456ebbf8f5 ypbind.c: Major overhaul.
- Moved to a more client-driven model. We aggressively attempt to keep
the default domain bound (as before) but we give up on non-default
domains if we lose contact with a server and fail to get a response
after one round of broadcasting. This helps drastically reduce the
amount of network bandwitdh that ypbind consumes: if a client references
the secondary domain at some later point, this will prod ypbind into
establishing a new binding anyway, so continuously broadcasting without
need is pointless.

Note that we still actively seek out a binding for our default domain
even if no client program has queried us yet. I'm not exactly sure if
this matches SunOS's behavior or not, but I decided to do it this way
since we can get into all sorts of trouble if our default domain comes
unbound. Even so, we're still much quieter than we used to be.

- Removed a bunch of no-longer pertinent comments and a couple of
chunks of #ifdef 0'ed code that no longer fit in to the new layout.

- Theo deRaadt must have become frustrated with the callback mechanism
in clnt_broadcast(), because he shamelessly stole the clnt_broadcast()
code right out of the RPC library and hacked it up to suit his needs.
(Comments and all! :)

I can understand why: clnt_broadcast() blocks while awaiting replies.
Changing this behavior requires surgery. However, you can work around
this: fork the broadcast into a child process and relay the results
back to the parent via a pipe. (Careful obervation has shown that the
SunOS ypbind forks children for broadcasting too, though I can only
guess what sort of interprocess communication it uses. pipe() seems to
do the job well enough.)

This may seem like the long way around, but it's not really that
hard to implement, and I'd prefer to use documented RPC library functions
wherever possible. We're careful to limit the number of simultaneous
broadcasters to avoid swamping the system (the current limit is 5).
Each clnt_broadcast() call only sends out a small number of packets
at increasing intervals. We're also careful not to spawn more than one
bradcaster for a given domain.

- Used clntudp_bufcreate() and clnt_call() to implement a ping()
function for directly querying a particular server so that we can
check if it's still alive. This lets me completely remove the old
bradcasting code and use actual RPC library calls instead, at the
cost of more than a few handfulls of torn-out hair. (Make no mistake
folks: I *HATE* RPC.) Currently, the ping interval is one minute.

- Fixed another potential 'nfds too big for select()' bug: use
_rpc_dtablesize() instead of getdtablesize().

- Quieted gcc -Wall a bit.

- Probably a bunch of other stuff that I've forgotten.

ypbind.8:

- Updated man page to reflect modifications.

ypwhich.c:

- Small mind-o fix from last time: decode error results from
ypbind correctly (*groan*)

yplib.c:

- same as above

- Change behavior of _yp_dobind() a little: if we get back a 'Domain
not bound' error for a given domain, retry a few times before giving
up and passing the error back to the caller. We have to sleep for a
few seconds between tries since the 'Domain not bound' error comes
back immediately (by repeatedly looping, we end up pounding on ypbind).
We retry at most 20 times at 5 second intervals. This gives us a full
minute to get a response. This seems to deviate a bit from SunOS
behavior -- it appears to wait forever -- but I don't like the idea
of perpetually hanging inside a library call.

Note that this should fix the problems some people have with bindings
not being established fast enough at boot time; sometimes amd is started
in /etc/rc after ypbind has run but before it gets a binding set up. The
automounter gets annoyed at this and tends to exit. By pausing ther YP
calls until a binding is ready, we avoid this situation.

- Another _yp_dobind() change: if we determine that our binding files
are unlocked or nonexistent, jump directly to code that pokes ypbind
into restablishing the binding. Again, if it fails, we'll time out
eventually and return.
1995-04-26 19:03:16 +00:00
Jordan K. Hubbard
f465ace952 Add code for dealing with URLs. 1995-04-26 15:08:23 +00:00
Jordan K. Hubbard
a0a72d6933 Make pkg_info URL aware (and also make it use the PKG_PATH properly, like
everyone else).  Try this:
	pkg_info ftp://freebsd.org/pub/FreeBSD/packages/all/gmake-3.73.tgz
1995-04-26 15:08:02 +00:00
Jordan K. Hubbard
34f907903d Add depend on libftp since this is now in lib. 1995-04-26 15:07:14 +00:00
Jordan K. Hubbard
18a7c7704f Add a great deal more error checking to various things. 1995-04-26 15:06:58 +00:00
Jordan K. Hubbard
7113d27114 Further work on making all this more robust in the face of failure.
Also allow URL specification for a package.  This works for things the
package may depend on, too.

Allow PKG_PATH to be used anywhere a package is being searched for.
1995-04-26 15:06:26 +00:00
Jordan K. Hubbard
80206f052f Yikes! How did that typo slip past! I'd swear I compiled it. Oh well,
thanks, Satoshi!

Embarrassed by:	asami
1995-04-26 12:37:46 +00:00
Jordan K. Hubbard
d14afa6dd2 As per Bruce's advice, use sysconf to get the max argument size and
dynamically allocate that much space, also using snprintf() and strncat()
to do proper bounds checking.
1995-04-26 11:43:20 +00:00
Jordan K. Hubbard
8d006a838c Check dependencies BEFORE doing final extraction of package.
Fix a bug where direct-extract mode would have still invoked the
packing list reordering commands.
1995-04-26 07:43:35 +00:00
Jordan K. Hubbard
0170dd7dec My handling of the missing dependency but !Verbose was wrong. Make
the right message come out.
1995-04-26 06:56:05 +00:00
Jordan K. Hubbard
1c491c8eb8 Use ARG_MAX instead of _POSIX_ARG_MAX: 4K is too small!
This should stop the SIGBUS errors in pkg_create for some packages.
1995-04-24 21:50:11 +00:00
Garrett Wollman
d259f40530 Grand new all-singing, dialog-wielding tzsetup(8). Still needs a man page. 1995-04-24 21:04:35 +00:00
Jordan K. Hubbard
cc472f1367 Commit the latest version of this. This version appears to handle package
failure much more gracefully, as well as implement a few new needed features.
Check it out!
Submitted by:	Marc van Kempen <wmbfmk@urc.tue.nl>
1995-04-24 13:01:04 +00:00
Jordan K. Hubbard
2a20a9edde Stage almost nothing through the playpen now - this should speed pkg_creates
up by a couple of factors, as well as decrease the amount of temporary space
required to build a package down to almost nothing.
1995-04-22 14:55:07 +00:00
Jordan K. Hubbard
3e1a18606d Export the min_free() function. 1995-04-22 13:58:44 +00:00
Jordan K. Hubbard
cbf098db0e Second round:
1. Make paths work correctly.
2. Make pkg_add generally more robust in the face of failure.
3. Make the depend messages come out on stderr or stdout, but not both
   interspersed! :-)
1995-04-22 13:58:24 +00:00
Jordan K. Hubbard
3ec12cb0ce Set a default PKG_PATH. 1995-04-22 10:58:23 +00:00
Jordan K. Hubbard
e692e3aa52 1. Add an new @option directive. You'll understand it better in a moment.
2. Fix a long-standing bug in pkg_add where the failure of one package in
   a multipackage installation (pkg_add *.tgz) would blow you right out of
   the water.  Ick.
1995-04-22 07:41:02 +00:00
Jordan K. Hubbard
adbcdd9cce Argh - missed a printf! That should be the last of plist-spewers. 1995-04-22 01:20:13 +00:00
Jordan K. Hubbard
922a707e02 Don't spew garbage into the packing list when PlistOnly and verbose are
both on.  Whoops!
1995-04-22 00:59:33 +00:00
Jordan K. Hubbard
cca32e93aa Some patches to make deletions of non-existent files and directories slightly
less fatal (so that the database entry is subsequently removed anyway).
Submitted by:	Edward Wang <edward@edcom.com>
1995-04-22 00:14:20 +00:00
Jordan K. Hubbard
3a5e372a3d 1. Add proper dependencies to the library in my Makefiles. This was pointed
out by Bruce.
2. Add a "feature" to pkg_create (OK, OK, it's a miserable hack!) to get
   it to dump its internal packing list out so that the `fake-pkg' rule in
   bsd.port.mk can generate a more meaningful packing list.
1995-04-22 00:03:18 +00:00
Bill Paul
644161688b small NIS binding fixes:
ypbind.c: if a client program asks ypbind for the name of the server
for a particular domain, and there isn't a binding for that domain
available yet, ypbind needs to supply a status value along with its
failure message. Set yprespbody.ypbind_error before returning from
a ypbindproc_domain request.

yplib.c: properly handle the error status messages ypbind now has the
ability to send us. Add a ypbinderr_string() function to decode the
error values.

ypwhich.c: handle ypbind errors correctly: yperr_string() can't handle
ypbind_status messages -- use ypbinderr_string instead.
1995-04-21 18:04:36 +00:00
Jordan K. Hubbard
7332aa0b69 Clean up this manpage a bit. I didn't try to seriously rearrange any
of the descriptions, I simply fixed some of the english and made his
file selector example show up.
1995-04-21 10:38:21 +00:00
Jordan K. Hubbard
88d7c6751c Whoops - I committed the test environment Makefile by mistake! This
one should have all the proper relative paths.
1995-04-21 10:23:23 +00:00
Jordan K. Hubbard
e722380a68 Bring this up to date with Marc van Kempen's latest version (1.0) now
that the libdialog changes have gone in to support it.
Submitted by:	Marc van Kempen <wmbfmk@urc.tue.nl>
1995-04-21 10:05:46 +00:00
Jordan K. Hubbard
36034afc79 Correct a bogusly formatted printf(). 1995-04-21 06:30:41 +00:00
Poul-Henning Kamp
d337216dd8 Add -f to all gunzip's. 1995-04-21 03:47:23 +00:00
Jordan K. Hubbard
8c4e15334e Greatly simplify the calling of mtree - the error handling wasn't working
anyway, at least not with FreeBSD's mtree, and the arguments were being
built incorrectly.
1995-04-19 14:54:25 +00:00
Jordan K. Hubbard
e804f03a5d Add support for the ${PKG_DBDIR} environment variable. /var/db/pkg is the
default, and probably not something you'd ever change, but now it's
possible to do so for local/custom installations.
1995-04-19 14:02:01 +00:00
Gary Palmer
a07c2891bf Bugfixes :
- in mount_portal.c: included catching of SIGHUP to get portald to
  re-read the config file.

  - in mount_portal.c: in SIGCHLD handler the return values checked from
  waitpid were wrong. Note. this routine was written correclty according
  to the manual page for 4.4BSD, but waitpid does not exhibit this
  behaviour. It is not returning 0 when WNOHANG is specified. I havent
  checked this properly.

  - in mount_portal.c: initialized the fdset for the select properly.

  - in mount_portal.c: corrected poor casting in the select.

  - in mount_portal.c: changed a break; to exit (0); so that the
  children die after doing the hard work, this stops the select: bad
  file descriptor messages.

  - in pt_file.c: the kernel passes kernel style open flags to the
  portal code which aren't compatible with "normal" O_ flags. I have
  adjusted these in pt_file.c. In general I think the portal fs code
  and portal_cred structure need changing to pass to the portald
  the right style of flags _and_ the permissions.

  - in pt_tcp.c: a few mistakes in typing of the socket structures,
  getservbyname returns the port number as an int but sockaddr wants
  the port number as an u_short.

  - in pt_tcp.c: someone wrote this on a VAX/Sun whatever and forget
  about byte ordering!! I've included a few htons about the place.

  - in all the above I have sprinkled a few more debugging printf's.

Submitted by:	"Duncan McL Barclay" <dmlb@ohm.york.ac.uk
1995-04-19 12:24:08 +00:00
Jordan K. Hubbard
4b96fa37b0 Use a more nicely formatted message when we run out of space. 1995-04-18 13:04:34 +00:00
Jordan K. Hubbard
9a6f00fd39 Extensive updates to this package.
Moved Install.notes -> README, as ratified at the core meeting of
April 13th.

Submitted by:   Gene Stark <gene@starkhome.cs.sunysb.edu>
1995-04-18 01:57:50 +00:00
Rodney W. Grimes
0a8cb0c4a5 Missing ${DESTDIR} added 4 places, pcvt's Makefiles are a crock! 1995-04-17 19:28:45 +00:00
Rodney W. Grimes
0682236f7e Add 4 missing ${DESTDIR}'s, this is another Makefile that needs rewritten. 1995-04-17 19:24:50 +00:00
Atsushi Murai
4fb5c16406 Loglevel is a bitmask everywhere except in lqr.c.
Reviewed by:	Atsushi Murai <amurai@spec.co.jp>
Submitted by:	John Capo <jc@irbs.com>
1995-04-17 04:21:35 +00:00
Bruce Evans
9e6dc28ab3 Check for i/o errors in fclose() so that a full disk doesn't almost
guarantee truncation of the file being edited.
1995-04-16 22:40:49 +00:00
Atsushi Murai
38c50f39a0 Fixing follows and John's fruent explnation than my English....
The first problem I found was that descriptor 0 was being closed.
This happens because the modem variable is set to 0 to indicate
that it is not valid but there are not enough tests for the modem
variable being 0.  You can see where I have done this in the patch.
Code in OpenModem() dups the modem descriptor if it is < 3.  Once
this happened the modem was always open and an incomming call would
have getty and ppp reading the modem.

Descriptor 1 is closed when the quit command was executed from a
telnet connection.  The next modem open returns descriptor 1
and this gets duped leaving the modem always open again.

The modem was not being closed when the connection dropped or was
closed from the other end.  The UUCP lock was also not removed if
the modem could not be opened.

Reviewed by:	Atsushi Murai <amurai@spec.co.jp>
Submitted by:	John Capo <jc@irbs.com>
1995-04-16 13:38:39 +00:00
Atsushi Murai
10b748971b Fix for handling a HDLC's escape characters as properly.
Reviewed by:	Atsushi Murai <amurai@spec.co.jp>
Submitted by:	NIIMI Satoshi <sa2c@st.rim.or.jp>
1995-04-16 12:06:39 +00:00
Bruce Evans
5c1bcbae24 Do what the previous log message claimed to do and don't enable DES if
the user doesn't have the secure sources.
1995-04-16 01:40:24 +00:00
Bill Paul
a00f731551 In environments with multiple NIS servers (a master and several slaves)
one ypbind broadcast can yield several responses. This can lead to
some confusion: the syslog message from ypbind will indicate a rebinding
to the first server that responds, but we may subsequently change our
binding to another server when the other responses arrive. This results
in ypbind reporting 'server OK' to one address and ypwhich reporting a
binding to another.

The behavior of the rpc_received() function has been changed to prevent
this: subsequent responses received after a binding has already been
established are ignored. Rebinding gratuitously each time we get a
new response is silly anyway.

Also backed out the non-fix I made in my last ypbind commit. (Pass
me the extra large conical hat, please.)

(At some point I'm going to seriously re-work ypbind and the _yp_dobind()
library function to bring them in line with SunOS's documented behavior:
binding requests are supposed to be 'client-driven.' The _yp_dobind()
function should be responsible for retrying connections in response to
calls from client programs rather than having ypbind broadcasting
continously until a server responds. The current setup works okay in
normal operation, but we broadcast far too often than we should.)
1995-04-15 23:35:46 +00:00
Bruce Evans
e007f8483b - Don't write the label if the (undocumented) nflag is set.
- Don't write the label directly - use DIOCWDINFO.
- Avoid overflow in calculation of lseek() offsets.
- Fix format args in strings some more.  %ld and %lu were often reversed and
  #ifdefed out strings weren't fixed.
- Don't hard code the raw partition letter or DKBAD*.
- Write the qsort() comparision function in `C'.
- Fix all remaining warnings from `cc -Wall -Walmost-really-all'.
1995-04-15 21:59:26 +00:00
Andreas Schulz
892dbf3c38 Add mixer to the clean/cleandir targets to get it also cleaned up. 1995-04-15 21:45:49 +00:00
Andrey A. Chernov
c5dda01527 Fix MAILTO hole by passing -t to sendmail
Submitted by: Mike Pritchard <pritc003@maroon.tc.umn.edu>
1995-04-14 21:54:18 +00:00