aboutsummaryrefslogtreecommitdiff
path: root/release
diff options
context:
space:
mode:
authorJordan K. Hubbard <jkh@FreeBSD.org>1999-12-19 06:50:44 +0000
committerJordan K. Hubbard <jkh@FreeBSD.org>1999-12-19 06:50:44 +0000
commit793171c689f36e280a63a4a7427c978ea580c176 (patch)
treee57a784e064b9bc37a90db75f0f5f74b9d732cd2 /release
parentad586591ecbfb068eeddce29635dc0cf87bc5bc5 (diff)
downloadsrc-793171c689f36e280a63a4a7427c978ea580c176.tar.gz
src-793171c689f36e280a63a4a7427c978ea580c176.zip
Notes
Diffstat (limited to 'release')
-rw-r--r--release/sysinstall/install.c43
1 files changed, 29 insertions, 14 deletions
diff --git a/release/sysinstall/install.c b/release/sysinstall/install.c
index 1b8c43e6bc6f..3e4b3b4009b4 100644
--- a/release/sysinstall/install.c
+++ b/release/sysinstall/install.c
@@ -426,6 +426,7 @@ fixit_common(void)
_exit(1);;
}
else {
+ dialog_clear_norefresh();
msgNotify("Waiting for fixit shell to exit. Go to VTY4 now by\n"
"typing ALT-F4. When you are done, type ``exit'' to exit\n"
"the fixit shell and be returned here.");
@@ -729,12 +730,14 @@ installFixupBin(dialogMenuItem *self)
}
/* BOGON #1: Resurrect /dev after bin distribution screws it up */
+ dialog_clear_norefresh();
msgNotify("Remaking all devices.. Please wait!");
if (vsystem("cd /dev; sh MAKEDEV all")) {
msgConfirm("MAKEDEV returned non-zero status");
- return DITEM_FAILURE;
+ return DITEM_FAILURE | DITEM_RESTORE;
}
+ dialog_clear_norefresh();
msgNotify("Resurrecting /dev entries for slices..");
devs = deviceFind(NULL, DEVICE_TYPE_DISK);
if (!devs)
@@ -751,10 +754,11 @@ installFixupBin(dialogMenuItem *self)
msgFatal("No chunk list found for %s!", disk->name);
for (c1 = disk->chunks->part; c1; c1 = c1->next) {
if (c1->type == freebsd) {
+ dialog_clear_norefresh();
msgNotify("Making slice entries for %s", c1->name);
if (vsystem("cd /dev; sh MAKEDEV %sh", c1->name)) {
msgConfirm("Unable to make slice entries for %s!", c1->name);
- return DITEM_FAILURE;
+ return DITEM_FAILURE | DITEM_RESTORE;
}
}
}
@@ -781,7 +785,7 @@ installFixupBin(dialogMenuItem *self)
/* Do all the last ugly work-arounds here */
}
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_RESTORE;
}
/* Fix side-effects from the the XFree86 installation */
@@ -790,17 +794,19 @@ installFixupXFree(dialogMenuItem *self)
{
/* BOGON #1: XFree86 requires various specialized fixups */
if (directory_exists("/usr/X11R6")) {
+ dialog_clear_norefresh();
msgNotify("Fixing permissions in XFree86 tree..");
vsystem("chmod -R a+r /usr/X11R6");
vsystem("find /usr/X11R6 -type d | xargs chmod a+x");
/* Also do bogus minimal package registration so ports don't whine */
if (file_readable("/usr/X11R6/lib/X11/pkgreg.tar.gz")) {
+ dialog_clear_norefresh();
msgNotify("Installing package metainfo..");
vsystem("tar xpzf /usr/X11R6/lib/X11/pkgreg.tar.gz -C / && rm /usr/X11R6/lib/X11/pkgreg.tar.gz");
}
}
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_RESTORE;
}
/* Go newfs and/or mount all the filesystems we've been asked to */
@@ -840,12 +846,15 @@ installFilesystems(dialogMenuItem *self)
}
if (!Fake) {
- if (!swapon(dname))
+ if (!swapon(dname)) {
+ dialog_clear_norefresh();
msgNotify("Added %s as initial swap device", dname);
- else
+ }
+ else {
msgConfirm("WARNING! Unable to swap to %s: %s\n"
"This may cause the installation to fail at some point\n"
"if you don't have a lot of memory.", dname, strerror(errno));
+ }
}
}
@@ -855,7 +864,7 @@ installFilesystems(dialogMenuItem *self)
if (!Fake && (!MakeDevChunk(rootdev, "/dev") || !file_readable(dname))) {
msgConfirm("Unable to make device node for %s in /dev!\n"
"The creation of filesystems will be aborted.", dname);
- return DITEM_FAILURE;
+ return DITEM_FAILURE | DITEM_RESTORE;
}
if (strcmp(root->mountpoint, "/"))
msgConfirm("Warning: %s is marked as a root partition but is mounted on %s", rootdev->name, root->mountpoint);
@@ -863,12 +872,13 @@ installFilesystems(dialogMenuItem *self)
if (root->newfs && (!upgrade || !msgYesNo("You are upgrading - are you SURE you want to newfs the root partition?"))) {
int i;
+ dialog_clear_norefresh();
msgNotify("Making a new root filesystem on %s", dname);
i = vsystem("%s %s", root->newfs_cmd, dname);
if (i) {
msgConfirm("Unable to make new root filesystem on %s!\n"
"Command returned status %d", dname, i);
- return DITEM_FAILURE;
+ return DITEM_FAILURE | DITEM_RESTORE;
}
}
else {
@@ -876,6 +886,7 @@ installFilesystems(dialogMenuItem *self)
msgConfirm("Warning: Using existing root partition. It will be assumed\n"
"that you have the appropriate device entries already in /dev.");
}
+ dialog_clear_norefresh();
msgNotify("Checking integrity of existing %s filesystem.", dname);
i = vsystem("fsck -y %s", dname);
if (i)
@@ -887,7 +898,7 @@ installFilesystems(dialogMenuItem *self)
sprintf(dname, "/dev/%s", rootdev->name);
if (Mount("/mnt", dname)) {
msgConfirm("Unable to mount the root file system on %s! Giving up.", dname);
- return DITEM_FAILURE;
+ return DITEM_FAILURE | DITEM_RESTORE;
}
}
@@ -900,7 +911,7 @@ installFilesystems(dialogMenuItem *self)
disk = (Disk *)devs[i]->private;
if (!disk->chunks) {
msgConfirm("No chunk list found for %s!", disk->name);
- return DITEM_FAILURE;
+ return DITEM_FAILURE | DITEM_RESTORE;
}
if (RunningAsInit && root && (root->newfs || upgrade)) {
Mkdir("/mnt/dev");
@@ -934,10 +945,13 @@ installFilesystems(dialogMenuItem *self)
continue;
sprintf(fname, "%s/dev/%s", RunningAsInit ? "/mnt" : "", c2->name);
i = (Fake || swapon(fname));
- if (!i)
+ if (!i) {
+ dialog_clear_norefresh();
msgNotify("Added %s as an additional swap device", fname);
- else
+ }
+ else {
msgConfirm("Unable to add %s as a swap device: %s", fname, strerror(errno));
+ }
}
}
}
@@ -951,18 +965,19 @@ installFilesystems(dialogMenuItem *self)
}
if (RunningAsInit) {
+ dialog_clear_norefresh();
msgNotify("Copying initial device files..");
/* Copy the boot floppy's dev files */
if ((root->newfs || upgrade) && vsystem("find -x /dev | cpio %s -pdum /mnt", cpioVerbosity())) {
msgConfirm("Couldn't clone the /dev files!");
- return DITEM_FAILURE;
+ return DITEM_FAILURE | DITEM_RESTORE;
}
}
command_sort();
command_execute();
dialog_clear_norefresh();
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_RESTORE;
}
static char *