Change root.flp from a new format CPIO archive to a tar archive.
Unless we're willing to change the main tarballs from tar format to
"newc" (or, even better, "crc") cpio format, we need to use one common
one for all and that's tar for now. Install will now grab "root floppy"
from an ftp site if that's what you've got set.
Fix even more gripes from Poul's list.
P.S. As soon as I get the distfiles copied over to freefall tomorrow
morning, those of you wishing to test minimal installs over ftp should
be able to do so by grabbing the boot floppy and nothing else. Keep
your eyes open for my announcement.
Root floppy (which actually may be able to go completely away at some point
soon!) is now loadable from ftp/nfs/dos as well as CDROM and (of course)
floppy.
Fix more problems on Poul's Gripe List.
Rod, Jordan and David have more or less given me the OK on this
with the understanding that it doesn't change any functionality.
It doesn't: these are bug fixes only. No other part of the system
should be affected. Of course, since I'm the only one working on
NIS, you'll just have to take my word on it. :)
Fixes for the following annoyingly subtle bugs:
- ypbindproc_setdom_2 is supposed to be declared void *, not boot_t *,
and it fails to correctly signal failures back to the ypset(8) command:
we need to call one of the svcerr_*() functions (in this case,
svcerr_noprog() seems a logical choice -- we're really cheating
a bit here because nothing else quite fits) to tell ypset that the
attempt to set the binding for a domain failed. If we don't do this,
failed ypset attempts either appear (incorrectly) to succeed, or
they time out.
- The lock handling for child processes isn't quite right. The
child broadcaster processes have to release all locks on the
binding files and the ypbind.lock file.
- The parent ypbind process will SEGV if you do the following:
-- start ypbind with the -ypset or -ypsetme flag
-- type 'ypwhich -d random_unserved_domain'
-- type 'ypset -d random_unserved_domain anyhost'
-- type 'ypwhich -d random_unserved_domain' again
-- wait about 60 seconds
What happens is this: the ypwhich command causes ypbind to fork a
broadcaster process that searches for a server for random_unserved_domain.
If you then use ypset to force a binding while this process is still alive,
the state flags that tell the ypbind parent process that the child
is running will be cleared. The second ypwhich command then causes
a *second* child process to be forked for random_unserved_domain,
which is verbotten. When the first broadcaster exits and tells the
parent that it wasn't able to find a server for the domain, the parent
clobbers the entry for random_unserved_domain. Then the second broadcaster
exits and the same thing happens, only trying to clobber the entry
twice causes a SEGV.
The fix for this is a slight change in program structure: since we
can't have more than one broadcaster for a given domain at a time,
we save the pipe descriptors and pid for the child broadcaster in members
of the _dom_binding struct for the domain. (As a side effect, we
can get rid of the global child_fds variable.) So when rpc_received()
finds that it's been asked to do a ypset for a domain for which a
broadcaster process exists, it sends a SIGINT to the child to kill it
and closes the pipe to the now-dead child. This keeps everything in sync
and insures that we don't leak file descriptors.
- ping() should be using YPPROC_DOMAIN rather than YPPROC_DOMAIN_NONACK
when it does its clnt_call() to the server.
- Removed the check for client_handle == NULL in ping() and make
client_handle local to ping instead of a member of the _dom_binding
struct. This fixes another potential ypset problem: using ypset to
force a binding to a machine that has an NIS server but which *doesn't*
support the domain we're after can result in permanently bogus bindings.
- the 'server OK' message prints the wrong IP address.
1. Fix a few bugs in the ftp installation code and implement proper
ftp and network shutdown routines.
2. Clean up the menus a fair bit - add a FreeBSD configuration menu.
3. Eliminate the last of the "chaining" - the installation now does
the most obvious thing in the most obvious cases and doesn't present
you with more menus than you were expecting. This makes it necessary to be
a little more explicit in places, but it's still less confusing.
4. Add a few more safety nets for the user. Change a few hard-and-fast
limits to warnings (it now runs as non-root, Bruce).
5. Add descriptions for all the supported ethernet cards.
6. Make the cpio floppy extract put up a menu requesting the drive you wish
to use if you have more than one; don't just always assume drive A.
Add testftp: target
ftp.c:
add more debugging output and fix a few more problems
media_strategy:
make the ftp system actually do something resembling common sense.
it now works after a fashion, although it soon falls over for some
reason.
ftp installation method should now function. We'll know as soon as my
make release builds the floppies. I'm just committing this out of my
release tree now so that it doesn't get clobbered again.
use them yet, but it's close (we're working on the last wrinkles
in the CD install for now).
2. Complete the CDROM installation strategy code.
3. Simplify the distribtuion loading code.
4. General error message cleanup.
5. Write the /etc/fstab file now and split those routines into config.c
6. Clean up the menus a little more.
This is getting ridiculous. I may have to put the clear() back
and take the performance penalty, Poul.
Tweak the TCP/IP setup menu to look a little nicer.
Add lp0 to the list of available network devices (it was found before
but simply not described properly).
Justin can see it.
2. Attempt to fix the redisplay problems in label.c some more. Not clearing
the screen each time is certainly faster, but it's causing all sorts of
problems.
of optimizations. Add a check to make sure that root filesystems
are at least 20MB in size (this is just a thumbnail approximation,
and we can revise it later if necessary).
disks.c: clrtobot() so that deleted stuff disappears.
disks.c: offset is signed (for OnTrack diskmanager)
system.c: don't setbuf(stdout,0), it's too slow.
Add size argument to new_part, so it can come up with a good default for newfs.
Fix (possibly) a dialog botch after label.c's wizard mode.
Make vsystem even smarter abour crunched binaries (what a speedup!)
(You need to recompile crunchgen !)
partition editors (ugh). Fix an utterly bogus message (no arguments :)
in dist.c. This should all make Poul a little happier and slide in
before the next CTM update window.
with the diff/CVS hassles - this represents far too many CVS commit
messages for you folks, and trying to document each and every iteration
of the code is a hassle (and not very useful at that).
Don't notify in vsystem() - it obscures the original message.
Put some debugging code into cpio_extract() so that I can see
why it doesn't work now. :(
crypt salt string begin with a '_', no other crypt's do. If you remove the
initialization of $salt to '_' in sub salt(), everything works as advertised.
Submitted by: Charles Henrich <henrich@crh.cl.msu.edu>
implementation.
2. Totally rework device registration. It's about half the size and
more powerful now.
3. Add DOS discovery.
4. Start filling in some of the strategy routines.
5. Another clean-up pass over the menus.
6. Make wizard code use Disk typedef.
If I can get the first strategy routine finished tonite, we should have a working
install (from ftp, at least) this weekend.
as per Andrey's letter. Make a few modifications for correctness.
2. Add Language menu back to first menu - it was too buried in the
Options menu.
3. Add size information to all distributions.
4. Add a compat20 distribution (we need to make one of these!! Any takers? Please?)
Submitted by: Nickolay N. Dudorov <nnd@gw.itfs.nsk.su> & jkh
syscons (and/or cons25) at all. This code looked just fine running
on an xterm, but on a console the attributes are all wrong. I
now have to sacrifice some screen real-estate to pring cheesy
`-' characters to accomplish the same thing.
broken in syscons, or at least in the cons25 termcap entry! :-( A_BOLD
won't show up on monochrome adapters (I don't think) but they'd be screwed
anyway since I don't have an attribute to use for them now at all.
2. Don't use russian screenmap - apparently not necessary with right font.
3. Dequote bogusly quoted font name in english language setting.
4. Use setterm() and hack around an undesirable side-effect (cbreak is unset).
5. be smarter about setting OnVTY, and use it in cases where it makes sense.
Submitted by: Nickolay N. Dudorov <nnd@gw.itfs.nsk.su>
won't know until Poul wakes up again).
2. Make vsystem() put its output on the debugging fd.
3. DTRT with root filesystem placement - now I see how this has to work
(thanks, Poul).
4. Many miscellaneous spelling errors fixed and general cleanup.