1. Fix the CD installation bogon for Novice install I mentioned.

2. Add some code for dealing with a ports collection on the second CD now.
This commit is contained in:
Jordan K. Hubbard 1996-07-16 17:11:45 +00:00
parent d7058c27b9
commit 94dfd13efe
14 changed files with 290 additions and 208 deletions

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: cdrom.c,v 1.19 1996/07/13 05:09:28 jkh Exp $
* $Id: cdrom.c,v 1.20 1996/07/13 05:48:44 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -51,10 +51,6 @@
#include <sys/mount.h>
#undef CD9660
#define CD_UNMOUNTED 0
#define CD_ALREADY_MOUNTED 1
#define CD_WE_MOUNTED_IT 2
/*
* This isn't static, like the others, since it's often useful to know whether
* or not we have a CDROM available in some of the other installation screens.

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: config.c,v 1.44 1996/07/05 08:35:50 jkh Exp $
* $Id: config.c,v 1.45 1996/07/08 08:54:23 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -48,6 +48,8 @@
static Chunk *chunk_list[MAX_CHUNKS];
static int nchunks;
extern int cdromMounted;
/* arg to sort */
static int
chunk_compare(Chunk *c1, Chunk *c2)
@ -507,62 +509,94 @@ int
configPorts(dialogMenuItem *self)
{
char *cp, *dist = NULL; /* Shut up compiler */
int status = DITEM_SUCCESS, tries = 0;
dialog_clear();
if (!variable_get(VAR_PORTS_PATH))
variable_set2(VAR_PORTS_PATH, dist = "/cdrom/ports");
dialog_clear();
while (!directory_exists(dist)) {
dist = variable_get_value(VAR_PORTS_PATH,
"Unable to locate a ports tree on CDROM. Please specify the\n"
"location of the master ports directory you wish to create the\n"
"link tree to.");
if (!dist)
break;
}
if (dist) {
cp = msgGetInput("/usr/ports",
"Where would you like to create the link tree?\n"
"(press [ENTER] for default location). The link tree should\n"
"reside in a directory with as much free space as possible,\n"
"as you'll need space to compile any ports.");
if (!cp || !*cp)
return DITEM_FAILURE;
if (Mkdir(cp))
return DITEM_FAILURE;
else {
if (strcmp(cp, "/usr/ports")) {
unlink("/usr/ports");
if (symlink(cp, "/usr/ports") == -1) {
msgConfirm("Unable to create a symlink from /usr/ports to %s!\n"
"I can't continue, sorry!", cp);
return DITEM_FAILURE;
}
else {
msgConfirm("NOTE: This directory is also now symlinked to /usr/ports\n"
"which, for a variety of reasons, is the directory the ports\n"
"framework expects to find its files in. You should refer to\n"
"/usr/ports instead of %s directly when you're working in the\n"
"ports collection.", cp);
}
}
msgNotify("Making a link tree from %s to %s.", dist, cp);
if (DITEM_STATUS(lndir(dist, cp)) != DITEM_SUCCESS) {
msgConfirm("The lndir function returned an error status and may not have.\n"
"successfully generated the link tree. You may wish to inspect\n"
"the /usr/ports directory carefully for any missing link files.");
}
else {
msgConfirm("The /usr/ports directory is now ready to use. When the system comes\n"
"up fully, you can cd to this directory and type `make' in any sub-\n"
"directory for which you'd like to compile a port. You can also\n"
"cd to /usr/ports and type `make print-index' for a complete list of all\n"
"ports in the hierarchy.");
}
if (++tries > 2) {
msgConfirm("You appear to be having some problems with your CD drive\n"
"or perhaps cannot find the second CD. This step will now\n"
"therefore be skipped.");
status = DITEM_FAILURE;
goto fixup;
}
/* Even if we're running multi-user, unmount it for this case */
cdromMounted = CD_WE_MOUNTED_IT;
mediaDevice->shutdown(mediaDevice);
msgConfirm("The ports collection is now on the second CDROM due to\n"
"space constraints. Please remove the first CD from the\n"
"drive at this time and insert the second CDROM. You will\n"
"also need to have the second CDROM in your drive any time\n"
"you wish to use the ports collection. When you're ready,\n"
"please press [ENTER].");
if (!mediaDevice->init(mediaDevice)) {
msgConfirm("Mount failed - either the CDROM isn't in the drive or\n"
"you did not allow sufficient time for the drive to become\n"
"ready before pressing [ENTER]. Please try again.");
}
}
else
return DITEM_FAILURE;
return DITEM_SUCCESS;
cp = msgGetInput("/usr/ports",
"Where would you like to create the link tree?\n"
"(press [ENTER] for default location). The link tree should\n"
"reside in a directory with as much free space as possible,\n"
"as you'll need space to compile any ports.");
if (!cp || !*cp) {
status = DITEM_FAILURE;
goto fixup;
}
if (Mkdir(cp)) {
status = DITEM_FAILURE;
goto fixup;
}
if (strcmp(cp, "/usr/ports")) {
unlink("/usr/ports");
if (symlink(cp, "/usr/ports") == -1) {
msgConfirm("Unable to create a symlink from /usr/ports to %s!\n"
"I can't continue, sorry!", cp);
status = DITEM_FAILURE;
goto fixup;
}
else {
msgConfirm("NOTE: This directory is also now symlinked to /usr/ports\n"
"which, for a variety of reasons, is the directory the ports\n"
"framework expects to find its files in. You should refer to\n"
"/usr/ports instead of %s directly when you're working in the\n"
"ports collection.", cp);
}
}
msgNotify("Making a link tree from %s to %s.", dist, cp);
if (DITEM_STATUS(lndir(dist, cp)) != DITEM_SUCCESS) {
msgConfirm("The lndir function returned an error status and may not have.\n"
"successfully generated the link tree. You may wish to inspect\n"
"the /usr/ports directory carefully for any missing link files.");
}
else {
msgConfirm("The /usr/ports directory is now ready to use. When the system comes\n"
"up fully, you can cd to this directory and type `make' in any sub-\n"
"directory for which you'd like to compile a port. You can also\n"
"cd to /usr/ports and type `make print-index' for a complete list of all\n"
"ports in the hierarchy.");
}
fixup:
tries = 0;
while (++tries < 3) {
mediaDevice->shutdown(mediaDevice);
msgConfirm("Done with the second CD. Please remove it and reinsert the first\n"
"CDROM now. It may be required for subsequence installation steps.\n\n"
"When you've done so, please press [ENTER].");
if (!mediaDevice->init(mediaDevice)) {
msgConfirm("Mount failed - either the CDROM isn't in the drive or\n"
"you did not allow sufficient time for the drive to become\n"
"ready before pressing [ENTER]. Please try again.");
}
}
return status | DITEM_RESTORE;
}
/* Load gated package */

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: install.c,v 1.113 1996/07/12 11:14:06 jkh Exp $
* $Id: install.c,v 1.114 1996/07/13 05:13:25 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -372,18 +372,9 @@ installNovice(dialogMenuItem *self)
}
if (!mediaDevice) {
dialog_clear();
/* Try to set ourselves up as a CDROM if we can do that first */
if (DITEM_STATUS(mediaSetCDROM(NULL)) == DITEM_SUCCESS) {
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
if (!mediaDevice->init(mediaDevice))
mediaDevice = NULL;
}
if (!mediaDevice) {
msgConfirm("Finally, you must specify an installation medium.");
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
return DITEM_FAILURE | DITEM_RECREATE;
}
msgConfirm("Finally, you must specify an installation medium.");
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
return DITEM_FAILURE | DITEM_RECREATE;
}
if (DITEM_STATUS((i = installCommit(self))) == DITEM_FAILURE) {

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: menus.c,v 1.81 1996/07/10 09:41:09 jkh Exp $
* $Id: menus.c,v 1.82 1996/07/11 18:37:48 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -1007,7 +1007,7 @@ software not provided in the base distributions.",
NULL, optionsEditor },
{ "8 Packages", "Install pre-packaged software for FreeBSD",
NULL, configPackages },
{ "9 Ports", "Link to FreeBSD Ports Collection on CD/NFS",
{ "9 Ports", "Link to FreeBSD Ports Collection on CD",
NULL, configPorts },
{ "A Root Password", "Set the system manager's password",
NULL, dmenuSystemCommand, NULL, "passwd root" },

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: sysinstall.h,v 1.73 1996/07/08 10:08:20 jkh Exp $
* $Id: sysinstall.h,v 1.74 1996/07/09 14:28:22 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -191,6 +191,11 @@ typedef enum {
DEVICE_TYPE_ANY,
} DeviceType;
/* CDROM mount codes */
#define CD_UNMOUNTED 0
#define CD_ALREADY_MOUNTED 1
#define CD_WE_MOUNTED_IT 2
/* A "device" from sysinstall's point of view */
typedef struct _device {
char name[DEV_NAME_MAX];

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: config.c,v 1.44 1996/07/05 08:35:50 jkh Exp $
* $Id: config.c,v 1.45 1996/07/08 08:54:23 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -48,6 +48,8 @@
static Chunk *chunk_list[MAX_CHUNKS];
static int nchunks;
extern int cdromMounted;
/* arg to sort */
static int
chunk_compare(Chunk *c1, Chunk *c2)
@ -507,62 +509,94 @@ int
configPorts(dialogMenuItem *self)
{
char *cp, *dist = NULL; /* Shut up compiler */
int status = DITEM_SUCCESS, tries = 0;
dialog_clear();
if (!variable_get(VAR_PORTS_PATH))
variable_set2(VAR_PORTS_PATH, dist = "/cdrom/ports");
dialog_clear();
while (!directory_exists(dist)) {
dist = variable_get_value(VAR_PORTS_PATH,
"Unable to locate a ports tree on CDROM. Please specify the\n"
"location of the master ports directory you wish to create the\n"
"link tree to.");
if (!dist)
break;
}
if (dist) {
cp = msgGetInput("/usr/ports",
"Where would you like to create the link tree?\n"
"(press [ENTER] for default location). The link tree should\n"
"reside in a directory with as much free space as possible,\n"
"as you'll need space to compile any ports.");
if (!cp || !*cp)
return DITEM_FAILURE;
if (Mkdir(cp))
return DITEM_FAILURE;
else {
if (strcmp(cp, "/usr/ports")) {
unlink("/usr/ports");
if (symlink(cp, "/usr/ports") == -1) {
msgConfirm("Unable to create a symlink from /usr/ports to %s!\n"
"I can't continue, sorry!", cp);
return DITEM_FAILURE;
}
else {
msgConfirm("NOTE: This directory is also now symlinked to /usr/ports\n"
"which, for a variety of reasons, is the directory the ports\n"
"framework expects to find its files in. You should refer to\n"
"/usr/ports instead of %s directly when you're working in the\n"
"ports collection.", cp);
}
}
msgNotify("Making a link tree from %s to %s.", dist, cp);
if (DITEM_STATUS(lndir(dist, cp)) != DITEM_SUCCESS) {
msgConfirm("The lndir function returned an error status and may not have.\n"
"successfully generated the link tree. You may wish to inspect\n"
"the /usr/ports directory carefully for any missing link files.");
}
else {
msgConfirm("The /usr/ports directory is now ready to use. When the system comes\n"
"up fully, you can cd to this directory and type `make' in any sub-\n"
"directory for which you'd like to compile a port. You can also\n"
"cd to /usr/ports and type `make print-index' for a complete list of all\n"
"ports in the hierarchy.");
}
if (++tries > 2) {
msgConfirm("You appear to be having some problems with your CD drive\n"
"or perhaps cannot find the second CD. This step will now\n"
"therefore be skipped.");
status = DITEM_FAILURE;
goto fixup;
}
/* Even if we're running multi-user, unmount it for this case */
cdromMounted = CD_WE_MOUNTED_IT;
mediaDevice->shutdown(mediaDevice);
msgConfirm("The ports collection is now on the second CDROM due to\n"
"space constraints. Please remove the first CD from the\n"
"drive at this time and insert the second CDROM. You will\n"
"also need to have the second CDROM in your drive any time\n"
"you wish to use the ports collection. When you're ready,\n"
"please press [ENTER].");
if (!mediaDevice->init(mediaDevice)) {
msgConfirm("Mount failed - either the CDROM isn't in the drive or\n"
"you did not allow sufficient time for the drive to become\n"
"ready before pressing [ENTER]. Please try again.");
}
}
else
return DITEM_FAILURE;
return DITEM_SUCCESS;
cp = msgGetInput("/usr/ports",
"Where would you like to create the link tree?\n"
"(press [ENTER] for default location). The link tree should\n"
"reside in a directory with as much free space as possible,\n"
"as you'll need space to compile any ports.");
if (!cp || !*cp) {
status = DITEM_FAILURE;
goto fixup;
}
if (Mkdir(cp)) {
status = DITEM_FAILURE;
goto fixup;
}
if (strcmp(cp, "/usr/ports")) {
unlink("/usr/ports");
if (symlink(cp, "/usr/ports") == -1) {
msgConfirm("Unable to create a symlink from /usr/ports to %s!\n"
"I can't continue, sorry!", cp);
status = DITEM_FAILURE;
goto fixup;
}
else {
msgConfirm("NOTE: This directory is also now symlinked to /usr/ports\n"
"which, for a variety of reasons, is the directory the ports\n"
"framework expects to find its files in. You should refer to\n"
"/usr/ports instead of %s directly when you're working in the\n"
"ports collection.", cp);
}
}
msgNotify("Making a link tree from %s to %s.", dist, cp);
if (DITEM_STATUS(lndir(dist, cp)) != DITEM_SUCCESS) {
msgConfirm("The lndir function returned an error status and may not have.\n"
"successfully generated the link tree. You may wish to inspect\n"
"the /usr/ports directory carefully for any missing link files.");
}
else {
msgConfirm("The /usr/ports directory is now ready to use. When the system comes\n"
"up fully, you can cd to this directory and type `make' in any sub-\n"
"directory for which you'd like to compile a port. You can also\n"
"cd to /usr/ports and type `make print-index' for a complete list of all\n"
"ports in the hierarchy.");
}
fixup:
tries = 0;
while (++tries < 3) {
mediaDevice->shutdown(mediaDevice);
msgConfirm("Done with the second CD. Please remove it and reinsert the first\n"
"CDROM now. It may be required for subsequence installation steps.\n\n"
"When you've done so, please press [ENTER].");
if (!mediaDevice->init(mediaDevice)) {
msgConfirm("Mount failed - either the CDROM isn't in the drive or\n"
"you did not allow sufficient time for the drive to become\n"
"ready before pressing [ENTER]. Please try again.");
}
}
return status | DITEM_RESTORE;
}
/* Load gated package */

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: install.c,v 1.113 1996/07/12 11:14:06 jkh Exp $
* $Id: install.c,v 1.114 1996/07/13 05:13:25 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -372,18 +372,9 @@ installNovice(dialogMenuItem *self)
}
if (!mediaDevice) {
dialog_clear();
/* Try to set ourselves up as a CDROM if we can do that first */
if (DITEM_STATUS(mediaSetCDROM(NULL)) == DITEM_SUCCESS) {
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
if (!mediaDevice->init(mediaDevice))
mediaDevice = NULL;
}
if (!mediaDevice) {
msgConfirm("Finally, you must specify an installation medium.");
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
return DITEM_FAILURE | DITEM_RECREATE;
}
msgConfirm("Finally, you must specify an installation medium.");
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
return DITEM_FAILURE | DITEM_RECREATE;
}
if (DITEM_STATUS((i = installCommit(self))) == DITEM_FAILURE) {

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: menus.c,v 1.81 1996/07/10 09:41:09 jkh Exp $
* $Id: menus.c,v 1.82 1996/07/11 18:37:48 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -1007,7 +1007,7 @@ software not provided in the base distributions.",
NULL, optionsEditor },
{ "8 Packages", "Install pre-packaged software for FreeBSD",
NULL, configPackages },
{ "9 Ports", "Link to FreeBSD Ports Collection on CD/NFS",
{ "9 Ports", "Link to FreeBSD Ports Collection on CD",
NULL, configPorts },
{ "A Root Password", "Set the system manager's password",
NULL, dmenuSystemCommand, NULL, "passwd root" },

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: sysinstall.h,v 1.73 1996/07/08 10:08:20 jkh Exp $
* $Id: sysinstall.h,v 1.74 1996/07/09 14:28:22 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -191,6 +191,11 @@ typedef enum {
DEVICE_TYPE_ANY,
} DeviceType;
/* CDROM mount codes */
#define CD_UNMOUNTED 0
#define CD_ALREADY_MOUNTED 1
#define CD_WE_MOUNTED_IT 2
/* A "device" from sysinstall's point of view */
typedef struct _device {
char name[DEV_NAME_MAX];

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: cdrom.c,v 1.19 1996/07/13 05:09:28 jkh Exp $
* $Id: cdrom.c,v 1.20 1996/07/13 05:48:44 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -51,10 +51,6 @@
#include <sys/mount.h>
#undef CD9660
#define CD_UNMOUNTED 0
#define CD_ALREADY_MOUNTED 1
#define CD_WE_MOUNTED_IT 2
/*
* This isn't static, like the others, since it's often useful to know whether
* or not we have a CDROM available in some of the other installation screens.

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: config.c,v 1.44 1996/07/05 08:35:50 jkh Exp $
* $Id: config.c,v 1.45 1996/07/08 08:54:23 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -48,6 +48,8 @@
static Chunk *chunk_list[MAX_CHUNKS];
static int nchunks;
extern int cdromMounted;
/* arg to sort */
static int
chunk_compare(Chunk *c1, Chunk *c2)
@ -507,62 +509,94 @@ int
configPorts(dialogMenuItem *self)
{
char *cp, *dist = NULL; /* Shut up compiler */
int status = DITEM_SUCCESS, tries = 0;
dialog_clear();
if (!variable_get(VAR_PORTS_PATH))
variable_set2(VAR_PORTS_PATH, dist = "/cdrom/ports");
dialog_clear();
while (!directory_exists(dist)) {
dist = variable_get_value(VAR_PORTS_PATH,
"Unable to locate a ports tree on CDROM. Please specify the\n"
"location of the master ports directory you wish to create the\n"
"link tree to.");
if (!dist)
break;
}
if (dist) {
cp = msgGetInput("/usr/ports",
"Where would you like to create the link tree?\n"
"(press [ENTER] for default location). The link tree should\n"
"reside in a directory with as much free space as possible,\n"
"as you'll need space to compile any ports.");
if (!cp || !*cp)
return DITEM_FAILURE;
if (Mkdir(cp))
return DITEM_FAILURE;
else {
if (strcmp(cp, "/usr/ports")) {
unlink("/usr/ports");
if (symlink(cp, "/usr/ports") == -1) {
msgConfirm("Unable to create a symlink from /usr/ports to %s!\n"
"I can't continue, sorry!", cp);
return DITEM_FAILURE;
}
else {
msgConfirm("NOTE: This directory is also now symlinked to /usr/ports\n"
"which, for a variety of reasons, is the directory the ports\n"
"framework expects to find its files in. You should refer to\n"
"/usr/ports instead of %s directly when you're working in the\n"
"ports collection.", cp);
}
}
msgNotify("Making a link tree from %s to %s.", dist, cp);
if (DITEM_STATUS(lndir(dist, cp)) != DITEM_SUCCESS) {
msgConfirm("The lndir function returned an error status and may not have.\n"
"successfully generated the link tree. You may wish to inspect\n"
"the /usr/ports directory carefully for any missing link files.");
}
else {
msgConfirm("The /usr/ports directory is now ready to use. When the system comes\n"
"up fully, you can cd to this directory and type `make' in any sub-\n"
"directory for which you'd like to compile a port. You can also\n"
"cd to /usr/ports and type `make print-index' for a complete list of all\n"
"ports in the hierarchy.");
}
if (++tries > 2) {
msgConfirm("You appear to be having some problems with your CD drive\n"
"or perhaps cannot find the second CD. This step will now\n"
"therefore be skipped.");
status = DITEM_FAILURE;
goto fixup;
}
/* Even if we're running multi-user, unmount it for this case */
cdromMounted = CD_WE_MOUNTED_IT;
mediaDevice->shutdown(mediaDevice);
msgConfirm("The ports collection is now on the second CDROM due to\n"
"space constraints. Please remove the first CD from the\n"
"drive at this time and insert the second CDROM. You will\n"
"also need to have the second CDROM in your drive any time\n"
"you wish to use the ports collection. When you're ready,\n"
"please press [ENTER].");
if (!mediaDevice->init(mediaDevice)) {
msgConfirm("Mount failed - either the CDROM isn't in the drive or\n"
"you did not allow sufficient time for the drive to become\n"
"ready before pressing [ENTER]. Please try again.");
}
}
else
return DITEM_FAILURE;
return DITEM_SUCCESS;
cp = msgGetInput("/usr/ports",
"Where would you like to create the link tree?\n"
"(press [ENTER] for default location). The link tree should\n"
"reside in a directory with as much free space as possible,\n"
"as you'll need space to compile any ports.");
if (!cp || !*cp) {
status = DITEM_FAILURE;
goto fixup;
}
if (Mkdir(cp)) {
status = DITEM_FAILURE;
goto fixup;
}
if (strcmp(cp, "/usr/ports")) {
unlink("/usr/ports");
if (symlink(cp, "/usr/ports") == -1) {
msgConfirm("Unable to create a symlink from /usr/ports to %s!\n"
"I can't continue, sorry!", cp);
status = DITEM_FAILURE;
goto fixup;
}
else {
msgConfirm("NOTE: This directory is also now symlinked to /usr/ports\n"
"which, for a variety of reasons, is the directory the ports\n"
"framework expects to find its files in. You should refer to\n"
"/usr/ports instead of %s directly when you're working in the\n"
"ports collection.", cp);
}
}
msgNotify("Making a link tree from %s to %s.", dist, cp);
if (DITEM_STATUS(lndir(dist, cp)) != DITEM_SUCCESS) {
msgConfirm("The lndir function returned an error status and may not have.\n"
"successfully generated the link tree. You may wish to inspect\n"
"the /usr/ports directory carefully for any missing link files.");
}
else {
msgConfirm("The /usr/ports directory is now ready to use. When the system comes\n"
"up fully, you can cd to this directory and type `make' in any sub-\n"
"directory for which you'd like to compile a port. You can also\n"
"cd to /usr/ports and type `make print-index' for a complete list of all\n"
"ports in the hierarchy.");
}
fixup:
tries = 0;
while (++tries < 3) {
mediaDevice->shutdown(mediaDevice);
msgConfirm("Done with the second CD. Please remove it and reinsert the first\n"
"CDROM now. It may be required for subsequence installation steps.\n\n"
"When you've done so, please press [ENTER].");
if (!mediaDevice->init(mediaDevice)) {
msgConfirm("Mount failed - either the CDROM isn't in the drive or\n"
"you did not allow sufficient time for the drive to become\n"
"ready before pressing [ENTER]. Please try again.");
}
}
return status | DITEM_RESTORE;
}
/* Load gated package */

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: install.c,v 1.113 1996/07/12 11:14:06 jkh Exp $
* $Id: install.c,v 1.114 1996/07/13 05:13:25 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -372,18 +372,9 @@ installNovice(dialogMenuItem *self)
}
if (!mediaDevice) {
dialog_clear();
/* Try to set ourselves up as a CDROM if we can do that first */
if (DITEM_STATUS(mediaSetCDROM(NULL)) == DITEM_SUCCESS) {
/* If we can't initialize it, it's probably not a FreeBSD CDROM so punt on it */
if (!mediaDevice->init(mediaDevice))
mediaDevice = NULL;
}
if (!mediaDevice) {
msgConfirm("Finally, you must specify an installation medium.");
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
return DITEM_FAILURE | DITEM_RECREATE;
}
msgConfirm("Finally, you must specify an installation medium.");
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
return DITEM_FAILURE | DITEM_RECREATE;
}
if (DITEM_STATUS((i = installCommit(self))) == DITEM_FAILURE) {

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: menus.c,v 1.81 1996/07/10 09:41:09 jkh Exp $
* $Id: menus.c,v 1.82 1996/07/11 18:37:48 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -1007,7 +1007,7 @@ software not provided in the base distributions.",
NULL, optionsEditor },
{ "8 Packages", "Install pre-packaged software for FreeBSD",
NULL, configPackages },
{ "9 Ports", "Link to FreeBSD Ports Collection on CD/NFS",
{ "9 Ports", "Link to FreeBSD Ports Collection on CD",
NULL, configPorts },
{ "A Root Password", "Set the system manager's password",
NULL, dmenuSystemCommand, NULL, "passwd root" },

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: sysinstall.h,v 1.73 1996/07/08 10:08:20 jkh Exp $
* $Id: sysinstall.h,v 1.74 1996/07/09 14:28:22 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -191,6 +191,11 @@ typedef enum {
DEVICE_TYPE_ANY,
} DeviceType;
/* CDROM mount codes */
#define CD_UNMOUNTED 0
#define CD_ALREADY_MOUNTED 1
#define CD_WE_MOUNTED_IT 2
/* A "device" from sysinstall's point of view */
typedef struct _device {
char name[DEV_NAME_MAX];