This will now allow sysinstall to work properly if a FreeBSD CD/DVD is
already mounted as /cdrom, instead of just crapping out when it tries
to mount as /dist and gets EBUSY.
PR: conf/28081
Tested by: jhb
really doesn't make any sense, what was I smoking) and allow
the more canonical usage of "any" for either side of the comparison
for release name or architecture (meaning you can also set CD_VERSION=any
in a cdrom.inf file to cause sysinstall to always match it and likewise
with the architecture, if specified).
Sensibly suggested by: Makoto MATSUSHITA <matusita@jp.FreeBSD.org>
on CDs and FTP sites.
o Collapse some redundant code.
o Fix typo'd menu.
o Restrict searches properly to packages rather than categories.
o Small tweaks to signal handling.
All RELENG_3 candidates.
at the time, but on further reflection..." bucket with these changes.
1. Checking the media before frobbing the disks was a fine idea, and
I wish it could have worked, but that leads to a rather difficult
situation when you need to mount the media someplace and you're about
to:
a) Chroot away from your present root.
b) Newfs the root to be.
You're basically screwed since there's no place to stick the mount
point where it will be found following the newfs/chroot (and eliminating
the chroot in favor of just using the "root bias" feature would work
great for the distributions but not the pkg_add calls done by the
package installer).
2. Automatic timeout handling. I don't know why, but alarm() frequently
returns no residual even when the alarm didn't go off, which defies
the man page but hey, since when was that so unusual? Take out timeouts
but retain the code which temporarily replaces the SIGINT handler in
favor of a more media-specific handler. This way, at least, if it's hanging
you can at least whap it. I think the timeout code would have been losing
over *really slow* links anyway, so it's probably best that it go.
This should fix NFS, tape & CDROM installs again (serves me right for getting
complacent and using just the FTP installs in my testing).
section was a good thing, since it made it possible to detect media problems
*before* the installation started, but it also caused various things to
be mounted BEFORE the chroot() call, which definitely messes things up.
Fix this by detecting the pre-chroot() case and mounting into a subdir.
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
Use consistent spelling throughout.
Remove unmount in fixit_common() since that's bogus in the CDROM case and
properly "shut down" the media device instead.
if wrong version.
2. Make sure network device is initialized in ftpInit
3. Eliminate bogus size values in the menus. For now, we'll have to admit
that nobody's added it up yet. In the future, these menus should be
build dynamically anyway, not declared static.
4. Add more debugging to networking code to chase the mystery ppp device
problem.
1. Don't use the MSDOSFS code for accessing FreeBSD distribution data.
Use Robert Nordier's stand-alone DOS I/O library for the purpose.
It this works as well as Robert says it does, it should drastically reduce
(or even eliminate) our "I can't install from my DOS partition!" calls.
2. As a result of the above, go to stdio file descriptors for all
media types.
3. Taking advantage of #2, start using libftpio for FTP transfers instead
of maintaining our own parallel version of the FTP transfer code.
Yay! I ripped something out for a change!
#1 Submitted-By: Robert Nordier <rnordier@iafrica.com>
allowing sysinstall to automagically detect, mount and select an
appropriate FreeBSD CDROM as the installation media. Defining "appropriate"
also requires that you check the version numbers since an older FreeBSD
CD could be in the drive, which is the purpose of this patch.
I still have a _very very annoying_ display bug which occurs when a menu
item causes a submenu to be displayed - the screen repaints for the original
menu (which is restored upon return from the submenu) are off by about 4
characters. I've tried restoring the screen, the cursor position, you name
it - same deal. Grrrr! This commit is my first step in trying to get someone
else to help me look into this one since I'm just tearing my hair out at this
point!
1. Revamp package installer to use new dependency lists and also
pkg_add's new `read from stdin' mode to prevent a copy of the package
from hitting the disk unnecessarily.
2. More fixes for running "not as init" - don't get upset if CDROM already
mounted, do the right thing instead.
3. If running as init, assume first-time install and _don't show the
(W)rite option in the fdisk screen.
4. Many other little tweaks, some of which will have to wait for fuller testing
until I can create a boot floppy (testing certain system-destroying
features of sysinstall can be a royal pain). Expect some more commits.
This looks like it was developed offline, and is being spammed over the
top of the existing. "That's fine by me! I dont really care how you do
it, just get it in there..." said Jordan in a conversation a short while
ago...
multi part stuff centralized.
The final check is backwards or something so it always said it failed,
even it it didn't.
Fixed tcpip address check to not be stupid, 10.0.255.1 is legal.