Fold in all my recent changes.

Do another clean-up pass over this, making the generic menu handler much
more powerful (now handles multiple dispatch).  A few more menus fleshed
out and the beginnings of the distribution handler committed.  Should
be transfering full distributions over in the next commit.
This commit is contained in:
Jordan K. Hubbard 1995-05-10 07:45:00 +00:00
parent 59618a8666
commit 351669d743
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=8405
17 changed files with 1543 additions and 704 deletions

View File

@ -8,7 +8,7 @@ SRCS= globals.c main.c dmenu.c menus.c \
misc.c msg.c system.c install.c \
termcap.c makedevs.c media.c variable.c \
devices.c dist.c lang.c wizard.c \
disks.c command.c
disks.c command.c decode.c
CFLAGS += -Wall -g -I${.CURDIR}/../libdisk

148
release/sysinstall/decode.c Normal file
View File

@ -0,0 +1,148 @@
/*
* The new sysinstall program.
*
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: install.c,v 1.13 1995/05/08 21:39:37 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer,
* verbatim and that no modifications are made prior to this
* point in the file.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Jordan Hubbard
* for the FreeBSD Project.
* 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
* endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
#include "sysinstall.h"
DMenuItem *
decode(DMenu *menu, char *name)
{
DMenuItem *tmp;
for (tmp = menu->items; tmp->title; tmp++)
if (!strcmp(name, (*tmp->title == '*') ? tmp->title + 1 : tmp->title))
break;
if (!tmp->title)
return NULL;
return tmp;
}
Boolean
dispatch(DMenuItem *tmp, char *name)
{
Boolean failed = FALSE;
int choice, scroll, curr, max;
choice = scroll = curr = max = 0;
switch (tmp->type) {
/* User whapped ESC twice and wants a sub-shell */
case DMENU_SHELL_ESCAPE:
systemShellEscape();
break;
/* We want to simply display a file */
case DMENU_DISPLAY_FILE:
systemDisplayFile((char *)tmp->ptr);
break;
/* It's a sub-menu; recurse on it */
case DMENU_SUBMENU:
dmenuOpen((DMenu *)tmp->ptr, &choice, &scroll, &curr, &max);
break;
/* Execute it as a system command */
case DMENU_SYSTEM_COMMAND:
(void)systemExecute((char *)tmp->ptr);
break;
/* Same as above, but execute it in a prgbox */
case DMENU_SYSTEM_COMMAND_BOX:
use_helpfile(NULL);
use_helpline("Select OK to dismiss this dialog");
dialog_prgbox(tmp->title, (char *)tmp->ptr, 22, 76, 1, 1);
dialog_clear();
break;
case DMENU_CALL:
failed = (((int (*)())tmp->ptr)(name));
break;
case DMENU_CANCEL:
return FALSE;
case DMENU_SET_VARIABLE:
variable_set((char *)tmp->ptr);
msgInfo("Setting option %s", tmp->ptr);
break;
case DMENU_SET_FLAG:
*((unsigned int *)tmp->ptr) |= tmp->parm;
break;
case DMENU_NOP:
break;
default:
msgFatal("Don't know how to deal with menu type %d", tmp->type);
}
return failed;
}
Boolean
decode_and_dispatch_multiple(DMenu *menu, char *names)
{
DMenuItem *tmp;
int errors = 0;
string_prune(names);
names = string_skipwhite(names);
while (names) {
char *cp;
cp = index(names, '\n');
if (cp)
*cp++ = 0;
/* Were no options actually selected? */
if (!*names)
return FALSE;
if ((tmp = decode(menu, names)) != NULL) {
if (dispatch(tmp, names))
++errors;
}
else
msgFatal("Couldn't find a handler for item `%s' in menu `%s'!",
names, menu->title);
names = cp;
}
return errors ? TRUE : FALSE;
}

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: dist.c,v 1.1 1995/05/04 19:48:10 jkh Exp $
* $Id: dist.c,v 1.2 1995/05/08 21:39:34 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -45,6 +45,11 @@
unsigned int Dists;
unsigned int SrcDists;
unsigned int XF86Dists;
unsigned int XF86ServerDists;
unsigned int XF86FontDists;
static int distSetXF86(char *str);
int
distSetDeveloper(char *str)
@ -59,6 +64,7 @@ distSetXDeveloper(char *str)
{
Dists = _DIST_XDEVELOPER;
SrcDists = DIST_SRC_ALL;
distSetXF86(NULL);
return 0;
}
@ -73,6 +79,7 @@ int
distSetXUser(char *str)
{
Dists = _DIST_XUSER;
distSetXF86(NULL);
return 0;
}
@ -88,37 +95,121 @@ distSetEverything(char *str)
{
Dists = DIST_ALL;
SrcDists = DIST_SRC_ALL;
distSetXF86(NULL);
return 0;
}
struct {
int
distSetSrc(char *str)
{
extern DMenu MenuSrcDistributions;
int choice, scroll, curr, max;
choice = scroll = curr = max;
dmenuOpen(&MenuSrcDistributions, &choice, &scroll, &curr, &max);
if (SrcDists)
Dists |= DIST_SRC;
return 0;
}
static int
distSetXF86(char *str)
{
extern DMenu MenuXF86;
int choice, scroll, curr, max;
choice = scroll = curr = max;
dmenuOpen(&MenuXF86, &choice, &scroll, &curr, &max);
return 0;
}
static struct _dist {
char *my_name;
unsigned int my_bit;
} DistTable[] = {
{ "bin", DIST_BIN },
{ "games", DIST_GAMES },
{ "manpages", DIST_MANPAGES },
{ "proflibs", DIST_PROFLIBS },
{ "dict", DIST_DICT },
{ "src", DIST_SRC },
{ "des", DIST_DES },
{ "compat1x", DIST_COMPAT1X },
{ "xf86311l", DIST_XFREE86 },
{ NULL, 0 },
{ "bin", DIST_BIN },
{ "games", DIST_GAMES },
{ "manpages", DIST_MANPAGES },
{ "proflibs", DIST_PROFLIBS },
{ "dict", DIST_DICT },
{ "src", DIST_SRC },
{ "des", DIST_DES },
{ "compat1x", DIST_COMPAT1X },
{ "xf86311", DIST_XF86 },
{ NULL, 0 },
};
Boolean
static struct _dist SrcDistTable[] = {
{ "base", DIST_SRC_BASE },
{ "gnu", DIST_SRC_GNU },
{ "etc", DIST_SRC_ETC },
{ "games", DIST_SRC_GAMES },
{ "include", DIST_SRC_INCLUDE},
{ "lib", DIST_SRC_LIB },
{ "libexec", DIST_SRC_LIBEXEC},
{ "lkm", DIST_SRC_LKM },
{ "release", DIST_SRC_RELEASE},
{ "sbin", DIST_SRC_SBIN },
{ "share", DIST_SRC_SHARE },
{ "sys", DIST_SRC_SYS },
{ "ubin", DIST_SRC_UBIN },
{ "usbin", DIST_SRC_USBIN },
{ NULL, 0 },
};
static struct _dist XFree86DistTable[] = {
{ "bin", DIST_XF86_BIN },
{ "lib", DIST_XF86_LIB },
{ "doc", DIST_XF86_DOC },
{ "man", DIST_XF86_MAN },
{ "prog", DIST_XF86_PROG },
{ "link", DIST_XF86_LINK },
{ "pex", DIST_XF86_PEX },
{ "lbx", DIST_XF86_LBX },
{ "xicf", DIST_XF86_XINIT },
{ "xdmcf", DIST_XF86_XDMCF },
{ NULL, 0 },
};
static struct _dist XFree86ServerDistTable[] = {
{ "8514", DIST_XF86_SERVER_8514 },
{ "AGX", DIST_XF86_SERVER_AGX },
{ "Mch3", DIST_XF86_SERVER_MACH32 },
{ "Mch8", DIST_XF86_SERVER_MACH8 },
{ "Mono", DIST_XF86_SERVER_MONO },
{ "P9K", DIST_XF86_SERVER_P9000 },
{ "S3", DIST_XF86_SERVER_S3 },
{ "SVGA", DIST_XF86_SERVER_SVGA },
{ "VGA16", DIST_XF86_SERVER_VGA16 },
{ "W32", DIST_XF86_SERVER_W32 },
{ "nest", DIST_XF86_SERVER_NEST },
{ NULL, 0 },
};
static struct _dist XFree86FontDistTable[] = {
{ "fnts", DIST_XF86_FONTS_MISC },
{ "f100", DIST_XF86_FONTS_100 },
{ "fscl", DIST_XF86_FONTS_SCALE },
{ "fnon", DIST_XF86_FONTS_NON },
{ "fsrv", DIST_XF86_FONTS_SERVER },
};
static Boolean
dist_extract(char *name)
{
int fd;
if (!strcmp(name, "src")) {
}
else if (!strcmp(name, "xf86311l")) {
}
else {
}
return FALSE;
}
void
distExtractAll(void)
{
int i, fd;
int i;
while (Dists) {
for (i = 0; DistTable[i].my_name; i++) {

82
release/sysinstall/dist.h Normal file
View File

@ -0,0 +1,82 @@
#ifndef _DIST_H_INCLUDE
#define _DIST_H_INCLUDE
/* Bitfields for distributions - hope we never have more than 32! :-) */
#define DIST_BIN 0x0001
#define DIST_GAMES 0x0002
#define DIST_MANPAGES 0x0004
#define DIST_PROFLIBS 0x0008
#define DIST_DICT 0x0010
#define DIST_SRC 0x0020
#define DIST_DES 0x0040
#define DIST_INFO 0x0080
#define DIST_COMPAT1X 0x0100
#define DIST_XF86 0x0200
#define DIST_COMMERCIAL 0x0400
#define DIST_ALL 0x0FFF
/* Canned distribution sets */
#define _DIST_DEVELOPER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_SRC)
#define _DIST_XDEVELOPER \
(_DIST_DEVELOPER | DIST_XF86)
#define _DIST_USER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X)
#define _DIST_XUSER \
(_DIST_USER | DIST_XF86)
/* Subtypes for SRC distribution */
#define DIST_SRC_BASE 0x0001
#define DIST_SRC_GNU 0x0002
#define DIST_SRC_ETC 0x0004
#define DIST_SRC_GAMES 0x0008
#define DIST_SRC_INCLUDE 0x0010
#define DIST_SRC_LIB 0x0020
#define DIST_SRC_LIBEXEC 0x0040
#define DIST_SRC_LKM 0x0080
#define DIST_SRC_RELEASE 0x0100
#define DIST_SRC_SBIN 0x0200
#define DIST_SRC_SHARE 0x0400
#define DIST_SRC_SYS 0x0800
#define DIST_SRC_UBIN 0x1000
#define DIST_SRC_USBIN 0x2000
#define DIST_SRC_XF86 0x4000
#define DIST_SRC_ALL 0xFFFF
/* Subtypes for XFree86 distribution */
#define DIST_XF86_BIN 0x0001
#define DIST_XF86_LIB 0x0004
#define DIST_XF86_DOC 0x0008
#define DIST_XF86_MAN 0x0010
#define DIST_XF86_PROG 0x0020
#define DIST_XF86_LINK 0x0040
#define DIST_XF86_PEX 0x0080
#define DIST_XF86_LBX 0x0100
#define DIST_XF86_SERVER 0x0200
#define DIST_XF86_SERVER_8514 0x0001
#define DIST_XF86_SERVER_AGX 0x0002
#define DIST_XF86_SERVER_MACH32 0x0004
#define DIST_XF86_SERVER_MACH8 0x0008
#define DIST_XF86_SERVER_MONO 0x0010
#define DIST_XF86_SERVER_P9000 0x0020
#define DIST_XF86_SERVER_S3 0x0040
#define DIST_XF86_SERVER_SVGA 0x0080
#define DIST_XF86_SERVER_VGA16 0x0100
#define DIST_XF86_SERVER_W32 0x0200
#define DIST_XF86_SERVER_NEST 0x0400
#define DIST_XF86_XINIT 0x0400
#define DIST_XF86_XDMCF 0x0800
#define DIST_XF86_FONTS 0x1000
#define DIST_XF86_FONTS_MISC 0x0001
#define DIST_XF86_FONTS_100 0x0002
#define DIST_XF86_FONTS_SCALE 0x0004
#define DIST_XF86_FONTS_NON 0x0008
#define DIST_XF86_FONTS_SERVER 0x0010
#define DIST_XF86_ALL 0xFFFF
#endif
/* _DIST_H_INCLUDE */

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: dmenu.c,v 1.3 1995/04/29 19:33:00 jkh Exp $
* $Id: dmenu.c,v 1.4 1995/05/01 21:56:20 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -117,15 +117,19 @@ dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max)
}
dialog_clear();
if (!rval) {
if (menu->options & DMENU_MULTIPLE_TYPE)
tmp = &(menu->items[0]);
if (menu->options & DMENU_MULTIPLE_TYPE) {
if (menu->options & DMENU_CALL_FIRST)
tmp = &(menu->items[0]);
else {
if (decode_and_dispatch_multiple(menu, result) ||
menu->options & DMENU_SELECTION_RETURNS) {
items_free(nitems, curr, max);
return;
}
}
}
else {
for (tmp = menu->items; tmp->title; tmp++)
if (!strcmp(result,
(*tmp->title == '*') ? tmp->title + 1 :
tmp->title))
break;
if (!tmp->title)
if ((tmp = decode(menu, result)) == NULL)
msgFatal("Menu item `%s' not found??", result);
}
}
@ -135,61 +139,7 @@ dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max)
items_free(nitems, curr, max);
return;
}
switch (tmp->type) {
/* User whapped ESC twice and wants a sub-shell */
case DMENU_SHELL_ESCAPE:
systemShellEscape();
break;
/* We want to simply display a file */
case DMENU_DISPLAY_FILE:
systemDisplayFile((char *)tmp->ptr);
break;
/* It's a sub-menu; recurse on it */
case DMENU_SUBMENU: {
int choice, scroll, curr, max;
choice = scroll = curr = max = 0;
dmenuOpen((DMenu *)tmp->ptr, &choice, &scroll, &curr, &max);
break;
}
/* Execute it as a system command */
case DMENU_SYSTEM_COMMAND:
(void)systemExecute((char *)tmp->ptr);
break;
/* Same as above, but execute it in a prgbox */
case DMENU_SYSTEM_COMMAND_BOX:
use_helpfile(NULL);
use_helpline("Select OK to dismiss this dialog");
dialog_prgbox(tmp->title, (char *)tmp->ptr, 22, 76, 1, 1);
dialog_clear();
break;
case DMENU_CALL:
if (((int (*)())tmp->ptr)(result)) {
items_free(nitems, curr, max);
return;
}
break;
case DMENU_CANCEL:
items_free(nitems, curr, max);
return;
case DMENU_SET_VARIABLE:
variable_set((char *)tmp->ptr);
msgInfo("Setting option %s", tmp->ptr);
break;
default:
msgFatal("Don't know how to deal with menu type %d", tmp->type);
}
/* Did the user want to make this a single-selection menu? */
if (menu->options & DMENU_SELECTION_RETURNS) {
if (dispatch(tmp) || menu->options & DMENU_SELECTION_RETURNS) {
items_free(nitems, curr, max);
return;
}

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.8 1995/05/05 23:47:43 jkh Exp $
* $Id: menus.c,v 1.9 1995/05/08 10:20:54 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -57,6 +57,12 @@ extern DMenu MenuMedia;
extern DMenu MenuInstallType;
extern DMenu MenuInstallOptions;
extern DMenu MenuDistributions;
extern DMenu MenuXF86Select;
extern DMenu MenuXF86SelectCore;
extern DMenu MenuXF86SelectServer;
extern DMenu MenuXF86SelectFonts;
extern DMenu MenuXF86;
extern DMenu MenuInstallFtpOptions;
/* The initial installation menu */
DMenu MenuInitial = {
@ -69,13 +75,13 @@ option by pressing enter. If you'd like a shell, press ESC", /* prompt */
"Press F1 for usage instructions", /* help line */
"usage.hlp", /* help file */
{ { "Usage", "Quick start - How to use this menu system.", /* U */
DMENU_DISPLAY_FILE, (void *)"usage.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"usage.hlp", 0, 0 },
{ "Doc", "More detailed documentation on FreeBSD.", /* D */
DMENU_SUBMENU, (void *)&MenuDocumentation, 0 },
DMENU_SUBMENU, (void *)&MenuDocumentation, 0, 0 },
{ "Lang", "Select natural language options.", /* L */
DMENU_SUBMENU, (void *)&MenuLanguage, 0 },
DMENU_SUBMENU, (void *)&MenuLanguage, 0, 0 },
{ "Install", "Begin installation", /* I */
DMENU_CALL, (void *)installCustom, 0 },
DMENU_CALL, (void *)installCustom, 0, 0 },
{ NULL } },
};
@ -92,18 +98,19 @@ answers in the FAQ.",
"Confused? Press F1 for help.",
"usage.hlp", /* help file */
{ { "README", "Read this for a general description of FreeBSD", /* R */
DMENU_DISPLAY_FILE, (void *)"readme.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"readme.hlp", 0, 0 },
{ "Hardware", "The FreeBSD survival guide for PC hardware.", /* H */
DMENU_DISPLAY_FILE, (void *)"hardware.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"hardware.hlp", 0, 0 },
{ "Install", "A step-by-step guide to installing FreeBSD.", /* I */
DMENU_DISPLAY_FILE, (void *)"install.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"install.hlp", 0, 0 },
{ "FAQ", "Frequently Asked Questions about FreeBSD.", /* F */
DMENU_DISPLAY_FILE, (void *)"faq.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"faq.hlp", 0, 0 },
{ NULL } },
};
/* The language selection menu */
/*
* The language selection menu.
*
* Note: The RADIO menus use a slightly different syntax. If an item
* name starts with `*', it's considered to be "ON" by default,
* otherwise off.
@ -116,31 +123,32 @@ While almost all of the system's documentation is still written\n\
in english (and may never be translated), there are a few guides\n\
and types of system documentation that may be written in your\n\
preferred language. When such are found, they will be used instead\n\
of the english versions.", /* prompt */
of the english versions. This feature is nonetheless considered\n\
to be in experimental status at this time.", /* prompt */
"Press F1 for more information", /* help line */
"language.hlp", /* help file */
{ { "Danish", "Danish language and character set (ISO-8859-1)", /* D */
DMENU_CALL, (void *)lang_set_Danish, 0 },
DMENU_CALL, (void *)lang_set_Danish, 0, 0 },
{ "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */
DMENU_CALL, (void *)lang_set_Dutch, 0 },
DMENU_CALL, (void *)lang_set_Dutch, 0, 0 },
{ "English", "English language (system default)", /* E */
DMENU_CALL, (void *)lang_set_English, 0 },
DMENU_CALL, (void *)lang_set_English, 0, 0 },
{ "French", "French language and character set (ISO-8859-1)", /* F */
DMENU_CALL, (void *)lang_set_French, 0 },
DMENU_CALL, (void *)lang_set_French, 0, 0 },
{ "German", "German language and character set (ISO-8859-1)", /* G */
DMENU_CALL, (void *)lang_set_German, 0 },
DMENU_CALL, (void *)lang_set_German, 0, 0 },
{ "Italian", "Italian language and character set (ISO-8859-1)", /* I */
DMENU_CALL, (void *)lang_set_Italian, 0 },
DMENU_CALL, (void *)lang_set_Italian, 0, 0 },
{ "Japanese", "Japanese language and default character set (romaji)",/* J */
DMENU_CALL, (void *)lang_set_Japanese, 0 },
DMENU_CALL, (void *)lang_set_Japanese, 0, 0 },
{ "Norwegian", "Norwegian language and character set (ISO-8859-1)", /* N */
DMENU_CALL, (void *)lang_set_Norwegian, 0 },
DMENU_CALL, (void *)lang_set_Norwegian, 0, 0 },
{ "Russian", "Russian language and character set (cp866-8x14)", /* R */
DMENU_CALL, (void *)lang_set_Russian, 0 },
DMENU_CALL, (void *)lang_set_Russian, 0, 0 },
{ "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, (void *)lang_set_Spanish, 0 },
DMENU_CALL, (void *)lang_set_Spanish, 0, 0 },
{ "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, (void *)lang_set_Swedish, 0 },
DMENU_CALL, (void *)lang_set_Swedish, 0, 0 },
{ NULL } },
};
@ -150,20 +158,20 @@ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"FreeBSD can be installed directly from a CDROM containing a valid\n\
FreeBSD 2.0.5 distribution. If you're seeing this menu, it's because\n\
your CDROM drive was not properly auto-detected, or you did not launch\n\
this installation from the CD under DOS or Windows. If you think you're\n\
this installation from the CD under DOS or Windows. If you think you are\n
seeing this dialog in error, you may wish to reboot FreeBSD with the\n\
-c boot flag (.. boot: /kernel -c) and check that your hardware and\n
the kernel agree on reasonable values.",
-c boot flag (.. boot: /kernel -c) and check that your hardware and\n\
the kernel agree on reasonable values.",
"Press F1 for more information on CDROM support",
"media_cdrom.hlp",
{ { "Matsushita", "Panasonic \"Sound Blaster\" CDROM.",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/matcd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/matcd0a", 0, 0 },
{ "Mitsumi", "Mitsumi FX-001 series drive (not IDE)",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/mcd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/mcd0a", 0, 0 },
{ "SCSI", "SCSI CDROM drive attached to supported SCSI controller",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/cd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/cd0a", 0, 0 },
{ "Sony", "Sony CDU31/33A or compatible CDROM drive",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/scd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/scd0a", 0, 0 },
{ NULL } },
};
@ -179,59 +187,59 @@ If the first site selected doesn't respond, try one of the alternates.",
"Select a site that's close!",
"media_ftp.hlp",
{ { "Primary", "ftp.freebsd.org",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Secondary", "freefall.cdrom.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Australia", "ftp.physics.usyd.edu.au",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Finland", "nic.funet.fi",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "France", "ftp.ibp.fr",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Germany", "ftp.uni-duisburg.de",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Israel", "orgchem.weizmann.ac.il",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Japan", "ftp.sra.co.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.sra.co.jp/pub/os/FreeBSD/distribution/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.sra.co.jp/pub/os/FreeBSD/distribution/2.0.5-ALPHA", 0, 0 },
{ "Japan-2", "ftp.mei.co.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-3", "ftp.waseda.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-4", "ftp.pu-toyama.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-5", "ftpsv1.u-aizu.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-6", "tutserver.tutcc.tut.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://tutserver.tutcc.tut.ac.jp/FreeBSD/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://tutserver.tutcc.tut.ac.jp/FreeBSD/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Japan-7", "ftp.ee.uec.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ee.uec.ac.jp/pub/os/FreeBSD.other/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ee.uec.ac.jp/pub/os/FreeBSD.other/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Korea", "ftp.cau.ac.kr",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Netherlands", "ftp.nl.net",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Russia", "ftp.kiae.su",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.kiae.su/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.kiae.su/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Sweden", "ftp.luth.se",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Taiwan", "netbsd.csie.nctu.edu.tw",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Thailand", "ftp.nectec.or.th",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK", "ftp.demon.co.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK-2", "src.doc.ic.ac.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK-3", "unix.hensa.ac.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA", "ref.tfs.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-2", "ftp.dataplex.net",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-3", "kryten.atinc.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-4", "ftp.neosoft.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ NULL } }
};
@ -243,22 +251,21 @@ DMENU_NORMAL_TYPE,
media, ranging from floppies to the Internet. If you're installing\n\
FreeBSD from a supported CDROM drive then this is generally the best\n\
method to use unless you have some overriding reason for using another\n\
method. Please also note that the DES distribution is NOT available on \n\
CDROM due to U.S. export restrictions.",
method.",
"Press F1 for more information on the various media types",
"media.hlp",
{ { "CDROM", "Install from a FreeBSD CDROM",
DMENU_CALL, (void *)mediaSetCDROM, 0 },
{ "FLOPPY", "Install from a floppy disk set",
DMENU_CALL, (void *)mediaSetFloppy, 0 },
DMENU_CALL, (void *)mediaSetCDROM, 0, 0 },
{ "Floppy", "Install from a floppy disk set",
DMENU_CALL, (void *)mediaSetFloppy, 0, 0 },
{ "DOS", "Install from a DOS partition",
DMENU_CALL, (void *)mediaSetDOS, 0 },
{ "TAPE", "Install from SCSI or QIC tape",
DMENU_CALL, (void *)mediaSetTape, 0 },
DMENU_CALL, (void *)mediaSetDOS, 0, 0 },
{ "Tape", "Install from SCSI or QIC tape",
DMENU_CALL, (void *)mediaSetTape, 0, 0 },
{ "FTP", "Install from an Internet FTP server",
DMENU_CALL, (void *)mediaSetFTP, 0 },
{ "FILESYSTEM", "Install from a UFS or NFS mounted distribution",
DMENU_CALL, (void *)mediaSetFS, 0 },
DMENU_CALL, (void *)mediaSetFTP, 0, 0 },
{ "File System", "Install from a UFS or NFS mounted distribution",
DMENU_CALL, (void *)mediaSetFS, 0, 0 },
{ NULL } },
};
@ -266,26 +273,26 @@ CDROM due to U.S. export restrictions.",
DMenu MenuInstallType = {
DMENU_NORMAL_TYPE,
"Choose Installation Type",
"As a convenience, we provide several `canned' installation types. \
These pick what we consider to be the most reasonable defaults for the \
type of system in question. If you would prefer to pick and choose \
"As a convenience, we provide several `canned' installation types.\n\
These pick what we consider to be the most reasonable defaults for the\n\
type of system in question. If you would prefer to pick and choose\n\
the list of distributions yourself, simply select `custom'.",
"Press F1 for more information on the various distributions",
"dist_types.hlp",
{ { "Developer", "Includes full sources, binaries and doc but no games.",
DMENU_CALL, (void *)distSetDeveloper, 0 },
DMENU_CALL, (void *)distSetDeveloper, 0, 0 },
{ "X-Developer", "Same as above, but includes XFree86.",
DMENU_CALL, (void *)distSetXDeveloper, 0 },
DMENU_CALL, (void *)distSetXDeveloper, 0, 0 },
{ "User", "General user. Binaries and doc but no sources.",
DMENU_CALL, (void *)distSetUser, 0 },
DMENU_CALL, (void *)distSetUser, 0, 0 },
{ "X-User", "Same as above, but includes XFree86.",
DMENU_CALL, (void *)distSetXUser, 0 },
DMENU_CALL, (void *)distSetXUser, 0, 0 },
{ "Minimal", "The smallest configuration possible.",
DMENU_CALL, (void *)distSetMinimum, 0 },
DMENU_CALL, (void *)distSetMinimum, 0, 0 },
{ "Everything", "The entire source and binary distribution.",
DMENU_CALL, (void *)distSetEverything, 0 },
DMENU_CALL, (void *)distSetEverything, 0, 0 },
{ "Custom", "Specify your own distribution set",
DMENU_SUBMENU, (void *)&MenuDistributions, 0 },
DMENU_SUBMENU, (void *)&MenuDistributions, 0, 0 },
{ NULL } },
};
@ -296,27 +303,188 @@ DMENU_MULTIPLE_TYPE,
"Press F1 for a more complete description of these distributions.",
"distribution_types.hlp",
{ { "*bin", "Binary base distribution (required)",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_BIN, 0 },
{ "commercial", "Commercial demos and shareware",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_COMMERCIAL, 0 },
{ "compat1x", "FreeBSD 1.x binary compatability package",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_COMPAT1X, 0 },
{ "DES", "DES encryption code and sources",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_DES, 0 },
{ "dict", "Spelling checker disctionary files",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_DICT, 0 },
{ "games", "Games and other amusements (non-commercial)",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_GAMES, 0 },
{ "info", "GNU info files",
DMENU_NOP, NULL, 0 },
{ "man", "System manual pages - strongly recommended",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_INFO, 0 },
{ "*man", "System manual pages - strongly recommended",
DMENU_SET_FLAG, (void *)&Dists, DIST_MANPAGES, 0 },
{ "proflibs", "Profiled versions of the libraries",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_PROFLIBS, 0 },
{ "src", "Sources for everything but DES",
DMENU_NOP, NULL, 0 },
{ "XFree86", "The XFree86 3.1.1 distribution",
DMENU_NOP, NULL, 0 },
DMENU_CALL, (void *)distSetSrc, 0 },
{ "XFree86", "The XFree86 3.1.1L distribution",
DMENU_SUBMENU, (void *)&MenuXF86, 0 },
{ NULL } },
};
DMenu MenuSrcDistributions = {
DMENU_MULTIPLE_TYPE,
"Select the sub-components of src you wish to install.",
"Please check off those portions of the FreeBSD source tree\n\
you wish to install. A brief description of each source\n\
hierarchy is contained in parenthesis below.",
"Press F1 for a more complete description of distributions.",
"distribution_types.hlp",
{ { "base", "Base src directory (top-level files in /usr/src)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_BASE, 0 },
{ "gnu", "/usr/src/gnu (user software from the GNU Project)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_GNU, 0 },
{ "etc", "/usr/src/etc (miscellaneous system files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_ETC, 0 },
{ "games", "/usr/src/games (games)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_GAMES, 0 },
{ "include", "/usr/src/include (header files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_INCLUDE, 0 },
{ "lib", "/usr/src/lib (system libraries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LIB, 0 },
{ "libexec", "/usr/src/libexec (various system programs)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LIBEXEC, 0 },
{ "lkm", "/usr/src/lkm (Loadable Kernel Modules)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LKM, 0 },
{ "release", "/usr/src/release (release-generation tools)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_RELEASE, 0 },
{ "sbin", "/usr/src/sbin (system binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SBIN, 0 },
{ "share", "/usr/src/share (documents and shared files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SHARE, 0 },
{ "sys", "/usr/src/sys (FreeBSD kernel)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SYS, 0 },
{ "ubin", "/usr/src/usr.bin (user binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_UBIN, 0 },
{ "usbin", "/usr/src/usr.sbin (aux system binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_USBIN, 0 },
{ "XFree86", "XFree86 3.1.1L source + contrib distribution",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_XF86, 0 },
{ NULL } },
};
DMenu MenuXF86 = {
DMENU_NORMAL_TYPE,
"XFree86 3.1.1u1 Distribution",
"Welcome to the XFree86 3.1.1u1 distribution from\n\
The XFree86 Project, Inc. Recommended sequence: Select\n\
desired release components, configure, start it up (optional!)",
"Press F1 to read the XFree86 release notes for FreeBSD",
"XFree86.hlp",
{ { "Select", "Select and load components of the XFree86 distribution",
DMENU_SUBMENU, &MenuXF86Select, 0, 0 },
{ "Configure", "Configure an installed XFree86 distribution",
DMENU_SYSTEM_COMMAND, "PATH=/usr/bin:/bin:/usr/X11R6/bin xf86config",
0, 0 },
{ "Start", "Try to start the server up",
DMENU_SYSTEM_COMMAND, "PATH=/usr/bin:/bin:/usr/X11R6/bin startx",
0, 0 },
{ NULL } }
};
DMenu MenuXF86Select = {
DMENU_NORMAL_TYPE,
"XFree86 3.1.1 \"Late\" Distribution",
"Please select the components you need from the XFree86 3.1.1\n\
distribution. Select what you need from the basic components set\n\
and at least one entry from the Server menu and the Font set menu\n",
"Press F1 for a sample sequence",
"XF86Select.hlp",
{ { "Core", "Basic component menu (required)",
DMENU_SUBMENU, &MenuXF86SelectCore, 0, 0 },
{ "Server", "X server menu",
DMENU_SUBMENU, &MenuXF86SelectServer, 0, 0 },
{ "Fonts", "Font set menu",
DMENU_SUBMENU, &MenuXF86SelectFonts, 0, 0 },
{ NULL } },
};
DMenu MenuXF86SelectCore = {
DMENU_MULTIPLE_TYPE,
"XFree86 3.1.1 base distribution types",
"Please check off the primary XFree86 components you wish.\n\
Those deemed most generally useful are already checked.",
NULL,
NULL,
{ { "*bin", "X client applications and shared libs [4MB].",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_BIN, 0 },
{ "*lib", "Data files needed at runtime [0.6MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_LIB, 0 },
{ "xicf", "Customizable xinit runtime configuration file [0.1MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_XINIT, 0 },
{ "xdcf", "Customizable xdm runtime configuration file [0.1MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_XDMCF, 0 },
{ "doc", "READMEs and XFree86 specific man pages [0.5MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_DOC, 0 },
{ "*man", "Man pages (except XFree86 specific ones in etc) [1.2MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_MAN, 0 },
{ "prog", "Programmer's header and library files [4MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_PROG, 0 },
{ "link", "X Server reconfiguration kit [7.8MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_LINK, 0 },
{ "pex", "PEX fonts and shared libs needed by PEX applications [0.5MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_PEX, 0 },
{ NULL } },
};
DMenu MenuXF86SelectFonts = {
DMENU_MULTIPLE_TYPE,
"Font distribution selection.",
"Please check off the individual font distributions you wish to\n\
install. At the minimum, you should certainly install the standard\n\
75 DPI and misc fonts if you're also installing a server.",
NULL,
NULL,
{ { "*fnts", "Standard 75 DPI and miscellaneous fonts [3.6MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_MISC, 0 },
{ "f100", "100 DPI fonts [1.8MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_100, 0 },
{ "fscl", "Speedo and Type scalable fonts [1.6MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_SCALE, 0 },
{ "non", "Japanese, Chinese and other non-english fonts [3.3MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_NON, 0 },
{ "server", "Font server [0.3MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_SERVER, 0 },
{ NULL } },
};
DMenu MenuXF86SelectServer = {
DMENU_MULTIPLE_TYPE,
"X Server selection.",
"Please check off the types of X servers you wish to\n\
install. If you are unsure as which server will work\n\
for your graphics card, it is recommended that try the\n\
SVGA or VGA16 servers (the VGA16 and Mono servers are also\n\
particularly well-suited to most LCD displays).",
"xservers.hlp",
"Press F1 for more information on the various X server types",
{ { "*SVGA", "Standard VGA or Super VGA display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_SVGA, 0 },
{ "VGA16", "Standard 16 color VGA display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_VGA16, 0 },
{ "Mono", "Standard Monochrome display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MONO, 0 },
{ "8514", "8-bit (256 color) IBM 8514 or compatible card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_8514, 0 },
{ "AGX", "8-bit AGX card",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_AGX, 0 },
{ "Mch3", "8 and 16-bit (65K color) for ATI Mach32 card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MACH32, 0 },
{ "Mch8", "8-bit ATI Mach8 card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MACH8, 0 },
{ "P9K", "8, 16, and 24-bit color for Weitek P9000 based boards",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_P9000, 0 },
{ "S3", "8, 16 and 24-bit color for S3 based boards",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_S3, 0 },
{ "W32", "8-bit Color for ET4000/W32, /W32i and /W32p cards.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_W32, 0 },
{ "nest", "A nested server for testing purposes",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_NEST, 0 },
{ NULL } },
};
@ -339,10 +507,38 @@ manager later.",
DMenu MenuInstallOptions = {
DMENU_NORMAL_TYPE,
"Choose Installation Options",
"blah blah",
"This menu controls how the FreeBSD installation will deal with various\n\
error conditions, should they arise, and the degree to which you, the\n\
user, will be prompted for options.",
NULL,
NULL,
{ { NULL } },
{ { "Ftp Options", "Ftp options menu",
DMENU_SUBMENU, (void *)&MenuInstallFtpOptions, 0, 0 },
{ "NFS Secure", "NFS server talks only on a secure port",
DMENU_SET_VARIABLE, (void *)"nfsServerSecure=yes", 0, 0 },
{ "NFS Slow", "User is using a slow PC or ethernet card",
DMENU_SET_VARIABLE, (void *)"nfsSlowPC=yes", 0, 0 },
{ "Extra Debugging", "Toggle the extra debugging flag",
DMENU_SET_VARIABLE, (void *)"debug=yes", 0, 0 },
{ "No Debugging", "Turn the extra debugging flag off",
DMENU_SET_VARIABLE, (void *)"debug=no", 0, 0 },
{ NULL } },
};
DMenu MenuInstallFtpOptions = {
DMENU_RADIO_TYPE,
"Choose Ftp Options",
"In case of ftp failure, how would you like this installation\n\
to deal with it? You have one of several choices:",
NULL,
NULL,
{ { "*Ftp Retry", "On transfer failure, retry same host",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=loop", 0, 0 },
{ "Ftp Reselect", "On transfer failure, ask for another host",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=reselect", 0, 0 },
{ "Ftp Abort", "On transfer failure, abort installation",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=abort", 0, 0 },
{ NULL } },
};
/* The main installation menu */
@ -350,20 +546,21 @@ DMenu MenuInstall = {
DMENU_NORMAL_TYPE,
"Choose Installation Options", /* title */
"Before installation can continue, you need to specify a few items\n\
of information regarding the location of the distribution and the kind\n\
of installation you want to have (and where). There are also a number\n\
of options you can specify in the Options menu. If you do not wish to\n\
install FreeBSD at this time, you may select Cancel to leave this menu",
of information regarding the type of distribution you wish to have\n\
and from where you wish to install it. There are also a number\n\
of options you can specify in the Options menu which will determine\n\
how . If you do not wish to install FreeBSD at this time, you may\n\
select Cancel to leave this menu.",
"You may also wish to read the install guide - press F1 to do so",
"install.hlp",
{ { "Media", "Choose Installation media type", /* M */
DMENU_SUBMENU, (void *)&MenuMedia, 0 },
DMENU_SUBMENU, (void *)&MenuMedia, 0, 0 },
{ "Type", "Choose the type of installation you want", /* T */
DMENU_SUBMENU, (void *)&MenuInstallType, 0 },
DMENU_SUBMENU, (void *)&MenuInstallType, 0, 0 },
{ "Options", "Specify installation options", /* O */
DMENU_SUBMENU, (void *)&MenuInstallOptions, 0 },
{ "Proceed", "Proceed with installation", /* P */
DMENU_CANCEL, (void *)NULL, 0 },
DMENU_SUBMENU, (void *)&MenuInstallOptions, 0, 0},
{ "Proceed", "Proceed with installation", /* P */
DMENU_CANCEL, (void *)NULL, 0, 0 },
{ NULL } },
};

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.13 1995/05/08 10:20:56 jkh Exp $
* $Id: sysinstall.h,v 1.14 1995/05/08 21:39:40 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -50,6 +50,7 @@
#include <unistd.h>
#include <dialog.h>
#include "libdisk.h"
#include "dist.h"
/*** Defines ***/
@ -58,49 +59,7 @@
#define DMENU_RADIO_TYPE 0x2 /* Radio dialog menu */
#define DMENU_MULTIPLE_TYPE 0x4 /* Multiple choice menu */
#define DMENU_SELECTION_RETURNS 0x8 /* Select item then exit */
/* Bitfields for distributions - hope we never have more than 32! :-) */
#define DIST_BIN 0x1
#define DIST_GAMES 0x2
#define DIST_MANPAGES 0x4
#define DIST_PROFLIBS 0x8
#define DIST_DICT 0x10
#define DIST_SRC 0x20
#define DIST_DES 0x40
#define DIST_COMPAT1X 0x80
#define DIST_XFREE86 0x100
#define DIST_ALL 0xFFF
/* Canned distribution sets */
#define _DIST_DEVELOPER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_SRC)
#define _DIST_XDEVELOPER \
(_DIST_DEVELOPER | DIST_XFREE86)
#define _DIST_USER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X)
#define _DIST_XUSER \
(_DIST_USER | DIST_XFREE86)
/* Subtypes for SRC distribution */
#define DIST_SRC_BASE 0x1
#define DIST_SRC_GNU 0x2
#define DIST_SRC_ETC 0x4
#define DIST_SRC_GAMES 0x8
#define DIST_SRC_INCLUDE 0x10
#define DIST_SRC_LIB 0x20
#define DIST_SRC_LIBEXEC 0x40
#define DIST_SRC_LKM 0x80
#define DIST_SRC_RELEASE 0x100
#define DIST_SRC_SBIN 0x200
#define DIST_SRC_SHARE 0x400
#define DIST_SRC_SYS 0x800
#define DIST_SRC_UBIN 0x1000
#define DIST_SRC_USBIN 0x2000
#define DIST_SRC_ALL 0xFFFF
#define DMENU_CALL_FIRST 0x10 /* In multiple, use one handler */
/* variable limits */
#define VAR_NAME_MAX 128
@ -109,9 +68,6 @@
/* device limits */
#define DEV_NAME_MAX 128
/* handy */
#define ONE_MEG 1048576
/*** Types ***/
typedef unsigned int Boolean;
@ -123,6 +79,7 @@ typedef enum {
DMENU_SYSTEM_COMMAND, /* Run shell commmand */
DMENU_SYSTEM_COMMAND_BOX, /* Same as above, but in prgbox */
DMENU_SET_VARIABLE, /* Set an environment/system var */
DMENU_SET_FLAG, /* Set flag in an unsigned int */
DMENU_CALL, /* Call back a C function */
DMENU_CANCEL, /* Cancel out of this menu */
DMENU_NOP, /* Do nothing special for item */
@ -133,6 +90,7 @@ typedef struct _dmenuItem {
char *prompt; /* Our prompt */
DMenuItemType type; /* What type of item we are */
void *ptr; /* Generic data ptr */
u_long parm; /* Parameter for above */
Boolean disabled; /* Are we temporarily disabled? */
} DMenuItem;
@ -200,6 +158,9 @@ extern Boolean OnVTY; /* On a syscons VTY? */
extern Variable *VarHead; /* The head of the variable chain */
extern unsigned int Dists; /* Which distributions we want */
extern unsigned int SrcDists; /* Which src distributions we want */
extern unsigned int XF86Dists;/* Which XFree86 dists we want */
extern unsigned int XF86ServerDists; /* The XFree86 servers we want */
extern unsigned int XF86FontDists; /* The XFree86 fonts we want */
extern struct disk *Disks[]; /* The disks we're working on */
/*** Prototypes ***/
@ -210,6 +171,11 @@ extern void command_sort(void);
extern void command_execute(void);
extern void command_add(char *key, char *fmt, ...);
/* decode.c */
extern DMenuItem *decode(DMenu *menu, char *name);
extern Boolean dispatch(DMenuItem *tmp, char *name);
extern Boolean decode_and_dispatch_multiple(DMenu *menu, char *names);
/* devices.c */
extern struct disk *device_slice_disk(struct disk *d);
extern DMenu *device_create_disk_menu(DMenu *menu, Device **rdevs, int (*hook)());
@ -230,6 +196,8 @@ extern int distSetUser(char *str);
extern int distSetXUser(char *str);
extern int distSetMinimum(char *str);
extern int distSetEverything(char *str);
extern int distSetSrc(char *str);
extern void distExtractAll(void);
/* dmenu.c */
extern void dmenuOpen(DMenu *menu, int *choice, int *scroll,
@ -257,17 +225,17 @@ extern void lang_set_Spanish(char *str);
extern void lang_set_Swedish(char *str);
/* makedevs.c (auto-generated) */
extern const char termcap_vt100[];
extern const char termcap_cons25[];
extern const char termcap_cons25_m[];
extern const char termcap_cons25r[];
extern const char termcap_cons25r_m[];
extern const char termcap_cons25l1[];
extern const char termcap_cons25l1_m[];
extern const u_char font_iso_8x14[];
extern const u_char font_cp850_8x14[];
extern const u_char font_koi8_r_8x14[];
extern const u_char koi8_r2cp866[];
extern const char termcap_vt100[];
extern const char termcap_cons25[];
extern const char termcap_cons25_m[];
extern const char termcap_cons25r[];
extern const char termcap_cons25r_m[];
extern const char termcap_cons25l1[];
extern const char termcap_cons25l1_m[];
extern const u_char font_iso_8x14[];
extern const u_char font_cp850_8x14[];
extern const u_char font_koi8_r_8x14[];
extern const u_char koi8_r2cp866[];
/* media.c */
extern int mediaSetCDROM(char *str);

View File

@ -8,7 +8,7 @@ SRCS= globals.c main.c dmenu.c menus.c \
misc.c msg.c system.c install.c \
termcap.c makedevs.c media.c variable.c \
devices.c dist.c lang.c wizard.c \
disks.c command.c
disks.c command.c decode.c
CFLAGS += -Wall -g -I${.CURDIR}/../libdisk

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: dmenu.c,v 1.3 1995/04/29 19:33:00 jkh Exp $
* $Id: dmenu.c,v 1.4 1995/05/01 21:56:20 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -117,15 +117,19 @@ dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max)
}
dialog_clear();
if (!rval) {
if (menu->options & DMENU_MULTIPLE_TYPE)
tmp = &(menu->items[0]);
if (menu->options & DMENU_MULTIPLE_TYPE) {
if (menu->options & DMENU_CALL_FIRST)
tmp = &(menu->items[0]);
else {
if (decode_and_dispatch_multiple(menu, result) ||
menu->options & DMENU_SELECTION_RETURNS) {
items_free(nitems, curr, max);
return;
}
}
}
else {
for (tmp = menu->items; tmp->title; tmp++)
if (!strcmp(result,
(*tmp->title == '*') ? tmp->title + 1 :
tmp->title))
break;
if (!tmp->title)
if ((tmp = decode(menu, result)) == NULL)
msgFatal("Menu item `%s' not found??", result);
}
}
@ -135,61 +139,7 @@ dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max)
items_free(nitems, curr, max);
return;
}
switch (tmp->type) {
/* User whapped ESC twice and wants a sub-shell */
case DMENU_SHELL_ESCAPE:
systemShellEscape();
break;
/* We want to simply display a file */
case DMENU_DISPLAY_FILE:
systemDisplayFile((char *)tmp->ptr);
break;
/* It's a sub-menu; recurse on it */
case DMENU_SUBMENU: {
int choice, scroll, curr, max;
choice = scroll = curr = max = 0;
dmenuOpen((DMenu *)tmp->ptr, &choice, &scroll, &curr, &max);
break;
}
/* Execute it as a system command */
case DMENU_SYSTEM_COMMAND:
(void)systemExecute((char *)tmp->ptr);
break;
/* Same as above, but execute it in a prgbox */
case DMENU_SYSTEM_COMMAND_BOX:
use_helpfile(NULL);
use_helpline("Select OK to dismiss this dialog");
dialog_prgbox(tmp->title, (char *)tmp->ptr, 22, 76, 1, 1);
dialog_clear();
break;
case DMENU_CALL:
if (((int (*)())tmp->ptr)(result)) {
items_free(nitems, curr, max);
return;
}
break;
case DMENU_CANCEL:
items_free(nitems, curr, max);
return;
case DMENU_SET_VARIABLE:
variable_set((char *)tmp->ptr);
msgInfo("Setting option %s", tmp->ptr);
break;
default:
msgFatal("Don't know how to deal with menu type %d", tmp->type);
}
/* Did the user want to make this a single-selection menu? */
if (menu->options & DMENU_SELECTION_RETURNS) {
if (dispatch(tmp) || menu->options & DMENU_SELECTION_RETURNS) {
items_free(nitems, curr, max);
return;
}

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.8 1995/05/05 23:47:43 jkh Exp $
* $Id: menus.c,v 1.9 1995/05/08 10:20:54 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -57,6 +57,12 @@ extern DMenu MenuMedia;
extern DMenu MenuInstallType;
extern DMenu MenuInstallOptions;
extern DMenu MenuDistributions;
extern DMenu MenuXF86Select;
extern DMenu MenuXF86SelectCore;
extern DMenu MenuXF86SelectServer;
extern DMenu MenuXF86SelectFonts;
extern DMenu MenuXF86;
extern DMenu MenuInstallFtpOptions;
/* The initial installation menu */
DMenu MenuInitial = {
@ -69,13 +75,13 @@ option by pressing enter. If you'd like a shell, press ESC", /* prompt */
"Press F1 for usage instructions", /* help line */
"usage.hlp", /* help file */
{ { "Usage", "Quick start - How to use this menu system.", /* U */
DMENU_DISPLAY_FILE, (void *)"usage.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"usage.hlp", 0, 0 },
{ "Doc", "More detailed documentation on FreeBSD.", /* D */
DMENU_SUBMENU, (void *)&MenuDocumentation, 0 },
DMENU_SUBMENU, (void *)&MenuDocumentation, 0, 0 },
{ "Lang", "Select natural language options.", /* L */
DMENU_SUBMENU, (void *)&MenuLanguage, 0 },
DMENU_SUBMENU, (void *)&MenuLanguage, 0, 0 },
{ "Install", "Begin installation", /* I */
DMENU_CALL, (void *)installCustom, 0 },
DMENU_CALL, (void *)installCustom, 0, 0 },
{ NULL } },
};
@ -92,18 +98,19 @@ answers in the FAQ.",
"Confused? Press F1 for help.",
"usage.hlp", /* help file */
{ { "README", "Read this for a general description of FreeBSD", /* R */
DMENU_DISPLAY_FILE, (void *)"readme.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"readme.hlp", 0, 0 },
{ "Hardware", "The FreeBSD survival guide for PC hardware.", /* H */
DMENU_DISPLAY_FILE, (void *)"hardware.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"hardware.hlp", 0, 0 },
{ "Install", "A step-by-step guide to installing FreeBSD.", /* I */
DMENU_DISPLAY_FILE, (void *)"install.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"install.hlp", 0, 0 },
{ "FAQ", "Frequently Asked Questions about FreeBSD.", /* F */
DMENU_DISPLAY_FILE, (void *)"faq.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"faq.hlp", 0, 0 },
{ NULL } },
};
/* The language selection menu */
/*
* The language selection menu.
*
* Note: The RADIO menus use a slightly different syntax. If an item
* name starts with `*', it's considered to be "ON" by default,
* otherwise off.
@ -116,31 +123,32 @@ While almost all of the system's documentation is still written\n\
in english (and may never be translated), there are a few guides\n\
and types of system documentation that may be written in your\n\
preferred language. When such are found, they will be used instead\n\
of the english versions.", /* prompt */
of the english versions. This feature is nonetheless considered\n\
to be in experimental status at this time.", /* prompt */
"Press F1 for more information", /* help line */
"language.hlp", /* help file */
{ { "Danish", "Danish language and character set (ISO-8859-1)", /* D */
DMENU_CALL, (void *)lang_set_Danish, 0 },
DMENU_CALL, (void *)lang_set_Danish, 0, 0 },
{ "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */
DMENU_CALL, (void *)lang_set_Dutch, 0 },
DMENU_CALL, (void *)lang_set_Dutch, 0, 0 },
{ "English", "English language (system default)", /* E */
DMENU_CALL, (void *)lang_set_English, 0 },
DMENU_CALL, (void *)lang_set_English, 0, 0 },
{ "French", "French language and character set (ISO-8859-1)", /* F */
DMENU_CALL, (void *)lang_set_French, 0 },
DMENU_CALL, (void *)lang_set_French, 0, 0 },
{ "German", "German language and character set (ISO-8859-1)", /* G */
DMENU_CALL, (void *)lang_set_German, 0 },
DMENU_CALL, (void *)lang_set_German, 0, 0 },
{ "Italian", "Italian language and character set (ISO-8859-1)", /* I */
DMENU_CALL, (void *)lang_set_Italian, 0 },
DMENU_CALL, (void *)lang_set_Italian, 0, 0 },
{ "Japanese", "Japanese language and default character set (romaji)",/* J */
DMENU_CALL, (void *)lang_set_Japanese, 0 },
DMENU_CALL, (void *)lang_set_Japanese, 0, 0 },
{ "Norwegian", "Norwegian language and character set (ISO-8859-1)", /* N */
DMENU_CALL, (void *)lang_set_Norwegian, 0 },
DMENU_CALL, (void *)lang_set_Norwegian, 0, 0 },
{ "Russian", "Russian language and character set (cp866-8x14)", /* R */
DMENU_CALL, (void *)lang_set_Russian, 0 },
DMENU_CALL, (void *)lang_set_Russian, 0, 0 },
{ "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, (void *)lang_set_Spanish, 0 },
DMENU_CALL, (void *)lang_set_Spanish, 0, 0 },
{ "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, (void *)lang_set_Swedish, 0 },
DMENU_CALL, (void *)lang_set_Swedish, 0, 0 },
{ NULL } },
};
@ -150,20 +158,20 @@ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"FreeBSD can be installed directly from a CDROM containing a valid\n\
FreeBSD 2.0.5 distribution. If you're seeing this menu, it's because\n\
your CDROM drive was not properly auto-detected, or you did not launch\n\
this installation from the CD under DOS or Windows. If you think you're\n\
this installation from the CD under DOS or Windows. If you think you are\n
seeing this dialog in error, you may wish to reboot FreeBSD with the\n\
-c boot flag (.. boot: /kernel -c) and check that your hardware and\n
the kernel agree on reasonable values.",
-c boot flag (.. boot: /kernel -c) and check that your hardware and\n\
the kernel agree on reasonable values.",
"Press F1 for more information on CDROM support",
"media_cdrom.hlp",
{ { "Matsushita", "Panasonic \"Sound Blaster\" CDROM.",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/matcd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/matcd0a", 0, 0 },
{ "Mitsumi", "Mitsumi FX-001 series drive (not IDE)",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/mcd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/mcd0a", 0, 0 },
{ "SCSI", "SCSI CDROM drive attached to supported SCSI controller",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/cd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/cd0a", 0, 0 },
{ "Sony", "Sony CDU31/33A or compatible CDROM drive",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/scd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/scd0a", 0, 0 },
{ NULL } },
};
@ -179,59 +187,59 @@ If the first site selected doesn't respond, try one of the alternates.",
"Select a site that's close!",
"media_ftp.hlp",
{ { "Primary", "ftp.freebsd.org",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Secondary", "freefall.cdrom.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Australia", "ftp.physics.usyd.edu.au",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Finland", "nic.funet.fi",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "France", "ftp.ibp.fr",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Germany", "ftp.uni-duisburg.de",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Israel", "orgchem.weizmann.ac.il",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Japan", "ftp.sra.co.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.sra.co.jp/pub/os/FreeBSD/distribution/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.sra.co.jp/pub/os/FreeBSD/distribution/2.0.5-ALPHA", 0, 0 },
{ "Japan-2", "ftp.mei.co.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-3", "ftp.waseda.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-4", "ftp.pu-toyama.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-5", "ftpsv1.u-aizu.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-6", "tutserver.tutcc.tut.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://tutserver.tutcc.tut.ac.jp/FreeBSD/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://tutserver.tutcc.tut.ac.jp/FreeBSD/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Japan-7", "ftp.ee.uec.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ee.uec.ac.jp/pub/os/FreeBSD.other/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ee.uec.ac.jp/pub/os/FreeBSD.other/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Korea", "ftp.cau.ac.kr",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Netherlands", "ftp.nl.net",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Russia", "ftp.kiae.su",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.kiae.su/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.kiae.su/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Sweden", "ftp.luth.se",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Taiwan", "netbsd.csie.nctu.edu.tw",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Thailand", "ftp.nectec.or.th",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK", "ftp.demon.co.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK-2", "src.doc.ic.ac.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK-3", "unix.hensa.ac.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA", "ref.tfs.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-2", "ftp.dataplex.net",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-3", "kryten.atinc.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-4", "ftp.neosoft.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ NULL } }
};
@ -243,22 +251,21 @@ DMENU_NORMAL_TYPE,
media, ranging from floppies to the Internet. If you're installing\n\
FreeBSD from a supported CDROM drive then this is generally the best\n\
method to use unless you have some overriding reason for using another\n\
method. Please also note that the DES distribution is NOT available on \n\
CDROM due to U.S. export restrictions.",
method.",
"Press F1 for more information on the various media types",
"media.hlp",
{ { "CDROM", "Install from a FreeBSD CDROM",
DMENU_CALL, (void *)mediaSetCDROM, 0 },
{ "FLOPPY", "Install from a floppy disk set",
DMENU_CALL, (void *)mediaSetFloppy, 0 },
DMENU_CALL, (void *)mediaSetCDROM, 0, 0 },
{ "Floppy", "Install from a floppy disk set",
DMENU_CALL, (void *)mediaSetFloppy, 0, 0 },
{ "DOS", "Install from a DOS partition",
DMENU_CALL, (void *)mediaSetDOS, 0 },
{ "TAPE", "Install from SCSI or QIC tape",
DMENU_CALL, (void *)mediaSetTape, 0 },
DMENU_CALL, (void *)mediaSetDOS, 0, 0 },
{ "Tape", "Install from SCSI or QIC tape",
DMENU_CALL, (void *)mediaSetTape, 0, 0 },
{ "FTP", "Install from an Internet FTP server",
DMENU_CALL, (void *)mediaSetFTP, 0 },
{ "FILESYSTEM", "Install from a UFS or NFS mounted distribution",
DMENU_CALL, (void *)mediaSetFS, 0 },
DMENU_CALL, (void *)mediaSetFTP, 0, 0 },
{ "File System", "Install from a UFS or NFS mounted distribution",
DMENU_CALL, (void *)mediaSetFS, 0, 0 },
{ NULL } },
};
@ -266,26 +273,26 @@ CDROM due to U.S. export restrictions.",
DMenu MenuInstallType = {
DMENU_NORMAL_TYPE,
"Choose Installation Type",
"As a convenience, we provide several `canned' installation types. \
These pick what we consider to be the most reasonable defaults for the \
type of system in question. If you would prefer to pick and choose \
"As a convenience, we provide several `canned' installation types.\n\
These pick what we consider to be the most reasonable defaults for the\n\
type of system in question. If you would prefer to pick and choose\n\
the list of distributions yourself, simply select `custom'.",
"Press F1 for more information on the various distributions",
"dist_types.hlp",
{ { "Developer", "Includes full sources, binaries and doc but no games.",
DMENU_CALL, (void *)distSetDeveloper, 0 },
DMENU_CALL, (void *)distSetDeveloper, 0, 0 },
{ "X-Developer", "Same as above, but includes XFree86.",
DMENU_CALL, (void *)distSetXDeveloper, 0 },
DMENU_CALL, (void *)distSetXDeveloper, 0, 0 },
{ "User", "General user. Binaries and doc but no sources.",
DMENU_CALL, (void *)distSetUser, 0 },
DMENU_CALL, (void *)distSetUser, 0, 0 },
{ "X-User", "Same as above, but includes XFree86.",
DMENU_CALL, (void *)distSetXUser, 0 },
DMENU_CALL, (void *)distSetXUser, 0, 0 },
{ "Minimal", "The smallest configuration possible.",
DMENU_CALL, (void *)distSetMinimum, 0 },
DMENU_CALL, (void *)distSetMinimum, 0, 0 },
{ "Everything", "The entire source and binary distribution.",
DMENU_CALL, (void *)distSetEverything, 0 },
DMENU_CALL, (void *)distSetEverything, 0, 0 },
{ "Custom", "Specify your own distribution set",
DMENU_SUBMENU, (void *)&MenuDistributions, 0 },
DMENU_SUBMENU, (void *)&MenuDistributions, 0, 0 },
{ NULL } },
};
@ -296,27 +303,188 @@ DMENU_MULTIPLE_TYPE,
"Press F1 for a more complete description of these distributions.",
"distribution_types.hlp",
{ { "*bin", "Binary base distribution (required)",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_BIN, 0 },
{ "commercial", "Commercial demos and shareware",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_COMMERCIAL, 0 },
{ "compat1x", "FreeBSD 1.x binary compatability package",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_COMPAT1X, 0 },
{ "DES", "DES encryption code and sources",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_DES, 0 },
{ "dict", "Spelling checker disctionary files",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_DICT, 0 },
{ "games", "Games and other amusements (non-commercial)",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_GAMES, 0 },
{ "info", "GNU info files",
DMENU_NOP, NULL, 0 },
{ "man", "System manual pages - strongly recommended",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_INFO, 0 },
{ "*man", "System manual pages - strongly recommended",
DMENU_SET_FLAG, (void *)&Dists, DIST_MANPAGES, 0 },
{ "proflibs", "Profiled versions of the libraries",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_PROFLIBS, 0 },
{ "src", "Sources for everything but DES",
DMENU_NOP, NULL, 0 },
{ "XFree86", "The XFree86 3.1.1 distribution",
DMENU_NOP, NULL, 0 },
DMENU_CALL, (void *)distSetSrc, 0 },
{ "XFree86", "The XFree86 3.1.1L distribution",
DMENU_SUBMENU, (void *)&MenuXF86, 0 },
{ NULL } },
};
DMenu MenuSrcDistributions = {
DMENU_MULTIPLE_TYPE,
"Select the sub-components of src you wish to install.",
"Please check off those portions of the FreeBSD source tree\n\
you wish to install. A brief description of each source\n\
hierarchy is contained in parenthesis below.",
"Press F1 for a more complete description of distributions.",
"distribution_types.hlp",
{ { "base", "Base src directory (top-level files in /usr/src)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_BASE, 0 },
{ "gnu", "/usr/src/gnu (user software from the GNU Project)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_GNU, 0 },
{ "etc", "/usr/src/etc (miscellaneous system files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_ETC, 0 },
{ "games", "/usr/src/games (games)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_GAMES, 0 },
{ "include", "/usr/src/include (header files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_INCLUDE, 0 },
{ "lib", "/usr/src/lib (system libraries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LIB, 0 },
{ "libexec", "/usr/src/libexec (various system programs)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LIBEXEC, 0 },
{ "lkm", "/usr/src/lkm (Loadable Kernel Modules)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LKM, 0 },
{ "release", "/usr/src/release (release-generation tools)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_RELEASE, 0 },
{ "sbin", "/usr/src/sbin (system binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SBIN, 0 },
{ "share", "/usr/src/share (documents and shared files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SHARE, 0 },
{ "sys", "/usr/src/sys (FreeBSD kernel)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SYS, 0 },
{ "ubin", "/usr/src/usr.bin (user binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_UBIN, 0 },
{ "usbin", "/usr/src/usr.sbin (aux system binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_USBIN, 0 },
{ "XFree86", "XFree86 3.1.1L source + contrib distribution",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_XF86, 0 },
{ NULL } },
};
DMenu MenuXF86 = {
DMENU_NORMAL_TYPE,
"XFree86 3.1.1u1 Distribution",
"Welcome to the XFree86 3.1.1u1 distribution from\n\
The XFree86 Project, Inc. Recommended sequence: Select\n\
desired release components, configure, start it up (optional!)",
"Press F1 to read the XFree86 release notes for FreeBSD",
"XFree86.hlp",
{ { "Select", "Select and load components of the XFree86 distribution",
DMENU_SUBMENU, &MenuXF86Select, 0, 0 },
{ "Configure", "Configure an installed XFree86 distribution",
DMENU_SYSTEM_COMMAND, "PATH=/usr/bin:/bin:/usr/X11R6/bin xf86config",
0, 0 },
{ "Start", "Try to start the server up",
DMENU_SYSTEM_COMMAND, "PATH=/usr/bin:/bin:/usr/X11R6/bin startx",
0, 0 },
{ NULL } }
};
DMenu MenuXF86Select = {
DMENU_NORMAL_TYPE,
"XFree86 3.1.1 \"Late\" Distribution",
"Please select the components you need from the XFree86 3.1.1\n\
distribution. Select what you need from the basic components set\n\
and at least one entry from the Server menu and the Font set menu\n",
"Press F1 for a sample sequence",
"XF86Select.hlp",
{ { "Core", "Basic component menu (required)",
DMENU_SUBMENU, &MenuXF86SelectCore, 0, 0 },
{ "Server", "X server menu",
DMENU_SUBMENU, &MenuXF86SelectServer, 0, 0 },
{ "Fonts", "Font set menu",
DMENU_SUBMENU, &MenuXF86SelectFonts, 0, 0 },
{ NULL } },
};
DMenu MenuXF86SelectCore = {
DMENU_MULTIPLE_TYPE,
"XFree86 3.1.1 base distribution types",
"Please check off the primary XFree86 components you wish.\n\
Those deemed most generally useful are already checked.",
NULL,
NULL,
{ { "*bin", "X client applications and shared libs [4MB].",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_BIN, 0 },
{ "*lib", "Data files needed at runtime [0.6MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_LIB, 0 },
{ "xicf", "Customizable xinit runtime configuration file [0.1MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_XINIT, 0 },
{ "xdcf", "Customizable xdm runtime configuration file [0.1MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_XDMCF, 0 },
{ "doc", "READMEs and XFree86 specific man pages [0.5MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_DOC, 0 },
{ "*man", "Man pages (except XFree86 specific ones in etc) [1.2MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_MAN, 0 },
{ "prog", "Programmer's header and library files [4MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_PROG, 0 },
{ "link", "X Server reconfiguration kit [7.8MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_LINK, 0 },
{ "pex", "PEX fonts and shared libs needed by PEX applications [0.5MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_PEX, 0 },
{ NULL } },
};
DMenu MenuXF86SelectFonts = {
DMENU_MULTIPLE_TYPE,
"Font distribution selection.",
"Please check off the individual font distributions you wish to\n\
install. At the minimum, you should certainly install the standard\n\
75 DPI and misc fonts if you're also installing a server.",
NULL,
NULL,
{ { "*fnts", "Standard 75 DPI and miscellaneous fonts [3.6MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_MISC, 0 },
{ "f100", "100 DPI fonts [1.8MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_100, 0 },
{ "fscl", "Speedo and Type scalable fonts [1.6MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_SCALE, 0 },
{ "non", "Japanese, Chinese and other non-english fonts [3.3MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_NON, 0 },
{ "server", "Font server [0.3MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_SERVER, 0 },
{ NULL } },
};
DMenu MenuXF86SelectServer = {
DMENU_MULTIPLE_TYPE,
"X Server selection.",
"Please check off the types of X servers you wish to\n\
install. If you are unsure as which server will work\n\
for your graphics card, it is recommended that try the\n\
SVGA or VGA16 servers (the VGA16 and Mono servers are also\n\
particularly well-suited to most LCD displays).",
"xservers.hlp",
"Press F1 for more information on the various X server types",
{ { "*SVGA", "Standard VGA or Super VGA display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_SVGA, 0 },
{ "VGA16", "Standard 16 color VGA display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_VGA16, 0 },
{ "Mono", "Standard Monochrome display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MONO, 0 },
{ "8514", "8-bit (256 color) IBM 8514 or compatible card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_8514, 0 },
{ "AGX", "8-bit AGX card",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_AGX, 0 },
{ "Mch3", "8 and 16-bit (65K color) for ATI Mach32 card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MACH32, 0 },
{ "Mch8", "8-bit ATI Mach8 card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MACH8, 0 },
{ "P9K", "8, 16, and 24-bit color for Weitek P9000 based boards",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_P9000, 0 },
{ "S3", "8, 16 and 24-bit color for S3 based boards",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_S3, 0 },
{ "W32", "8-bit Color for ET4000/W32, /W32i and /W32p cards.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_W32, 0 },
{ "nest", "A nested server for testing purposes",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_NEST, 0 },
{ NULL } },
};
@ -339,10 +507,38 @@ manager later.",
DMenu MenuInstallOptions = {
DMENU_NORMAL_TYPE,
"Choose Installation Options",
"blah blah",
"This menu controls how the FreeBSD installation will deal with various\n\
error conditions, should they arise, and the degree to which you, the\n\
user, will be prompted for options.",
NULL,
NULL,
{ { NULL } },
{ { "Ftp Options", "Ftp options menu",
DMENU_SUBMENU, (void *)&MenuInstallFtpOptions, 0, 0 },
{ "NFS Secure", "NFS server talks only on a secure port",
DMENU_SET_VARIABLE, (void *)"nfsServerSecure=yes", 0, 0 },
{ "NFS Slow", "User is using a slow PC or ethernet card",
DMENU_SET_VARIABLE, (void *)"nfsSlowPC=yes", 0, 0 },
{ "Extra Debugging", "Toggle the extra debugging flag",
DMENU_SET_VARIABLE, (void *)"debug=yes", 0, 0 },
{ "No Debugging", "Turn the extra debugging flag off",
DMENU_SET_VARIABLE, (void *)"debug=no", 0, 0 },
{ NULL } },
};
DMenu MenuInstallFtpOptions = {
DMENU_RADIO_TYPE,
"Choose Ftp Options",
"In case of ftp failure, how would you like this installation\n\
to deal with it? You have one of several choices:",
NULL,
NULL,
{ { "*Ftp Retry", "On transfer failure, retry same host",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=loop", 0, 0 },
{ "Ftp Reselect", "On transfer failure, ask for another host",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=reselect", 0, 0 },
{ "Ftp Abort", "On transfer failure, abort installation",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=abort", 0, 0 },
{ NULL } },
};
/* The main installation menu */
@ -350,20 +546,21 @@ DMenu MenuInstall = {
DMENU_NORMAL_TYPE,
"Choose Installation Options", /* title */
"Before installation can continue, you need to specify a few items\n\
of information regarding the location of the distribution and the kind\n\
of installation you want to have (and where). There are also a number\n\
of options you can specify in the Options menu. If you do not wish to\n\
install FreeBSD at this time, you may select Cancel to leave this menu",
of information regarding the type of distribution you wish to have\n\
and from where you wish to install it. There are also a number\n\
of options you can specify in the Options menu which will determine\n\
how . If you do not wish to install FreeBSD at this time, you may\n\
select Cancel to leave this menu.",
"You may also wish to read the install guide - press F1 to do so",
"install.hlp",
{ { "Media", "Choose Installation media type", /* M */
DMENU_SUBMENU, (void *)&MenuMedia, 0 },
DMENU_SUBMENU, (void *)&MenuMedia, 0, 0 },
{ "Type", "Choose the type of installation you want", /* T */
DMENU_SUBMENU, (void *)&MenuInstallType, 0 },
DMENU_SUBMENU, (void *)&MenuInstallType, 0, 0 },
{ "Options", "Specify installation options", /* O */
DMENU_SUBMENU, (void *)&MenuInstallOptions, 0 },
{ "Proceed", "Proceed with installation", /* P */
DMENU_CANCEL, (void *)NULL, 0 },
DMENU_SUBMENU, (void *)&MenuInstallOptions, 0, 0},
{ "Proceed", "Proceed with installation", /* P */
DMENU_CANCEL, (void *)NULL, 0, 0 },
{ NULL } },
};

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.13 1995/05/08 10:20:56 jkh Exp $
* $Id: sysinstall.h,v 1.14 1995/05/08 21:39:40 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -50,6 +50,7 @@
#include <unistd.h>
#include <dialog.h>
#include "libdisk.h"
#include "dist.h"
/*** Defines ***/
@ -58,49 +59,7 @@
#define DMENU_RADIO_TYPE 0x2 /* Radio dialog menu */
#define DMENU_MULTIPLE_TYPE 0x4 /* Multiple choice menu */
#define DMENU_SELECTION_RETURNS 0x8 /* Select item then exit */
/* Bitfields for distributions - hope we never have more than 32! :-) */
#define DIST_BIN 0x1
#define DIST_GAMES 0x2
#define DIST_MANPAGES 0x4
#define DIST_PROFLIBS 0x8
#define DIST_DICT 0x10
#define DIST_SRC 0x20
#define DIST_DES 0x40
#define DIST_COMPAT1X 0x80
#define DIST_XFREE86 0x100
#define DIST_ALL 0xFFF
/* Canned distribution sets */
#define _DIST_DEVELOPER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_SRC)
#define _DIST_XDEVELOPER \
(_DIST_DEVELOPER | DIST_XFREE86)
#define _DIST_USER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X)
#define _DIST_XUSER \
(_DIST_USER | DIST_XFREE86)
/* Subtypes for SRC distribution */
#define DIST_SRC_BASE 0x1
#define DIST_SRC_GNU 0x2
#define DIST_SRC_ETC 0x4
#define DIST_SRC_GAMES 0x8
#define DIST_SRC_INCLUDE 0x10
#define DIST_SRC_LIB 0x20
#define DIST_SRC_LIBEXEC 0x40
#define DIST_SRC_LKM 0x80
#define DIST_SRC_RELEASE 0x100
#define DIST_SRC_SBIN 0x200
#define DIST_SRC_SHARE 0x400
#define DIST_SRC_SYS 0x800
#define DIST_SRC_UBIN 0x1000
#define DIST_SRC_USBIN 0x2000
#define DIST_SRC_ALL 0xFFFF
#define DMENU_CALL_FIRST 0x10 /* In multiple, use one handler */
/* variable limits */
#define VAR_NAME_MAX 128
@ -109,9 +68,6 @@
/* device limits */
#define DEV_NAME_MAX 128
/* handy */
#define ONE_MEG 1048576
/*** Types ***/
typedef unsigned int Boolean;
@ -123,6 +79,7 @@ typedef enum {
DMENU_SYSTEM_COMMAND, /* Run shell commmand */
DMENU_SYSTEM_COMMAND_BOX, /* Same as above, but in prgbox */
DMENU_SET_VARIABLE, /* Set an environment/system var */
DMENU_SET_FLAG, /* Set flag in an unsigned int */
DMENU_CALL, /* Call back a C function */
DMENU_CANCEL, /* Cancel out of this menu */
DMENU_NOP, /* Do nothing special for item */
@ -133,6 +90,7 @@ typedef struct _dmenuItem {
char *prompt; /* Our prompt */
DMenuItemType type; /* What type of item we are */
void *ptr; /* Generic data ptr */
u_long parm; /* Parameter for above */
Boolean disabled; /* Are we temporarily disabled? */
} DMenuItem;
@ -200,6 +158,9 @@ extern Boolean OnVTY; /* On a syscons VTY? */
extern Variable *VarHead; /* The head of the variable chain */
extern unsigned int Dists; /* Which distributions we want */
extern unsigned int SrcDists; /* Which src distributions we want */
extern unsigned int XF86Dists;/* Which XFree86 dists we want */
extern unsigned int XF86ServerDists; /* The XFree86 servers we want */
extern unsigned int XF86FontDists; /* The XFree86 fonts we want */
extern struct disk *Disks[]; /* The disks we're working on */
/*** Prototypes ***/
@ -210,6 +171,11 @@ extern void command_sort(void);
extern void command_execute(void);
extern void command_add(char *key, char *fmt, ...);
/* decode.c */
extern DMenuItem *decode(DMenu *menu, char *name);
extern Boolean dispatch(DMenuItem *tmp, char *name);
extern Boolean decode_and_dispatch_multiple(DMenu *menu, char *names);
/* devices.c */
extern struct disk *device_slice_disk(struct disk *d);
extern DMenu *device_create_disk_menu(DMenu *menu, Device **rdevs, int (*hook)());
@ -230,6 +196,8 @@ extern int distSetUser(char *str);
extern int distSetXUser(char *str);
extern int distSetMinimum(char *str);
extern int distSetEverything(char *str);
extern int distSetSrc(char *str);
extern void distExtractAll(void);
/* dmenu.c */
extern void dmenuOpen(DMenu *menu, int *choice, int *scroll,
@ -257,17 +225,17 @@ extern void lang_set_Spanish(char *str);
extern void lang_set_Swedish(char *str);
/* makedevs.c (auto-generated) */
extern const char termcap_vt100[];
extern const char termcap_cons25[];
extern const char termcap_cons25_m[];
extern const char termcap_cons25r[];
extern const char termcap_cons25r_m[];
extern const char termcap_cons25l1[];
extern const char termcap_cons25l1_m[];
extern const u_char font_iso_8x14[];
extern const u_char font_cp850_8x14[];
extern const u_char font_koi8_r_8x14[];
extern const u_char koi8_r2cp866[];
extern const char termcap_vt100[];
extern const char termcap_cons25[];
extern const char termcap_cons25_m[];
extern const char termcap_cons25r[];
extern const char termcap_cons25r_m[];
extern const char termcap_cons25l1[];
extern const char termcap_cons25l1_m[];
extern const u_char font_iso_8x14[];
extern const u_char font_cp850_8x14[];
extern const u_char font_koi8_r_8x14[];
extern const u_char koi8_r2cp866[];
/* media.c */
extern int mediaSetCDROM(char *str);

View File

@ -8,7 +8,7 @@ SRCS= globals.c main.c dmenu.c menus.c \
misc.c msg.c system.c install.c \
termcap.c makedevs.c media.c variable.c \
devices.c dist.c lang.c wizard.c \
disks.c command.c
disks.c command.c decode.c
CFLAGS += -Wall -g -I${.CURDIR}/../libdisk

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: dist.c,v 1.1 1995/05/04 19:48:10 jkh Exp $
* $Id: dist.c,v 1.2 1995/05/08 21:39:34 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -45,6 +45,11 @@
unsigned int Dists;
unsigned int SrcDists;
unsigned int XF86Dists;
unsigned int XF86ServerDists;
unsigned int XF86FontDists;
static int distSetXF86(char *str);
int
distSetDeveloper(char *str)
@ -59,6 +64,7 @@ distSetXDeveloper(char *str)
{
Dists = _DIST_XDEVELOPER;
SrcDists = DIST_SRC_ALL;
distSetXF86(NULL);
return 0;
}
@ -73,6 +79,7 @@ int
distSetXUser(char *str)
{
Dists = _DIST_XUSER;
distSetXF86(NULL);
return 0;
}
@ -88,37 +95,121 @@ distSetEverything(char *str)
{
Dists = DIST_ALL;
SrcDists = DIST_SRC_ALL;
distSetXF86(NULL);
return 0;
}
struct {
int
distSetSrc(char *str)
{
extern DMenu MenuSrcDistributions;
int choice, scroll, curr, max;
choice = scroll = curr = max;
dmenuOpen(&MenuSrcDistributions, &choice, &scroll, &curr, &max);
if (SrcDists)
Dists |= DIST_SRC;
return 0;
}
static int
distSetXF86(char *str)
{
extern DMenu MenuXF86;
int choice, scroll, curr, max;
choice = scroll = curr = max;
dmenuOpen(&MenuXF86, &choice, &scroll, &curr, &max);
return 0;
}
static struct _dist {
char *my_name;
unsigned int my_bit;
} DistTable[] = {
{ "bin", DIST_BIN },
{ "games", DIST_GAMES },
{ "manpages", DIST_MANPAGES },
{ "proflibs", DIST_PROFLIBS },
{ "dict", DIST_DICT },
{ "src", DIST_SRC },
{ "des", DIST_DES },
{ "compat1x", DIST_COMPAT1X },
{ "xf86311l", DIST_XFREE86 },
{ NULL, 0 },
{ "bin", DIST_BIN },
{ "games", DIST_GAMES },
{ "manpages", DIST_MANPAGES },
{ "proflibs", DIST_PROFLIBS },
{ "dict", DIST_DICT },
{ "src", DIST_SRC },
{ "des", DIST_DES },
{ "compat1x", DIST_COMPAT1X },
{ "xf86311", DIST_XF86 },
{ NULL, 0 },
};
Boolean
static struct _dist SrcDistTable[] = {
{ "base", DIST_SRC_BASE },
{ "gnu", DIST_SRC_GNU },
{ "etc", DIST_SRC_ETC },
{ "games", DIST_SRC_GAMES },
{ "include", DIST_SRC_INCLUDE},
{ "lib", DIST_SRC_LIB },
{ "libexec", DIST_SRC_LIBEXEC},
{ "lkm", DIST_SRC_LKM },
{ "release", DIST_SRC_RELEASE},
{ "sbin", DIST_SRC_SBIN },
{ "share", DIST_SRC_SHARE },
{ "sys", DIST_SRC_SYS },
{ "ubin", DIST_SRC_UBIN },
{ "usbin", DIST_SRC_USBIN },
{ NULL, 0 },
};
static struct _dist XFree86DistTable[] = {
{ "bin", DIST_XF86_BIN },
{ "lib", DIST_XF86_LIB },
{ "doc", DIST_XF86_DOC },
{ "man", DIST_XF86_MAN },
{ "prog", DIST_XF86_PROG },
{ "link", DIST_XF86_LINK },
{ "pex", DIST_XF86_PEX },
{ "lbx", DIST_XF86_LBX },
{ "xicf", DIST_XF86_XINIT },
{ "xdmcf", DIST_XF86_XDMCF },
{ NULL, 0 },
};
static struct _dist XFree86ServerDistTable[] = {
{ "8514", DIST_XF86_SERVER_8514 },
{ "AGX", DIST_XF86_SERVER_AGX },
{ "Mch3", DIST_XF86_SERVER_MACH32 },
{ "Mch8", DIST_XF86_SERVER_MACH8 },
{ "Mono", DIST_XF86_SERVER_MONO },
{ "P9K", DIST_XF86_SERVER_P9000 },
{ "S3", DIST_XF86_SERVER_S3 },
{ "SVGA", DIST_XF86_SERVER_SVGA },
{ "VGA16", DIST_XF86_SERVER_VGA16 },
{ "W32", DIST_XF86_SERVER_W32 },
{ "nest", DIST_XF86_SERVER_NEST },
{ NULL, 0 },
};
static struct _dist XFree86FontDistTable[] = {
{ "fnts", DIST_XF86_FONTS_MISC },
{ "f100", DIST_XF86_FONTS_100 },
{ "fscl", DIST_XF86_FONTS_SCALE },
{ "fnon", DIST_XF86_FONTS_NON },
{ "fsrv", DIST_XF86_FONTS_SERVER },
};
static Boolean
dist_extract(char *name)
{
int fd;
if (!strcmp(name, "src")) {
}
else if (!strcmp(name, "xf86311l")) {
}
else {
}
return FALSE;
}
void
distExtractAll(void)
{
int i, fd;
int i;
while (Dists) {
for (i = 0; DistTable[i].my_name; i++) {

View File

@ -0,0 +1,82 @@
#ifndef _DIST_H_INCLUDE
#define _DIST_H_INCLUDE
/* Bitfields for distributions - hope we never have more than 32! :-) */
#define DIST_BIN 0x0001
#define DIST_GAMES 0x0002
#define DIST_MANPAGES 0x0004
#define DIST_PROFLIBS 0x0008
#define DIST_DICT 0x0010
#define DIST_SRC 0x0020
#define DIST_DES 0x0040
#define DIST_INFO 0x0080
#define DIST_COMPAT1X 0x0100
#define DIST_XF86 0x0200
#define DIST_COMMERCIAL 0x0400
#define DIST_ALL 0x0FFF
/* Canned distribution sets */
#define _DIST_DEVELOPER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_SRC)
#define _DIST_XDEVELOPER \
(_DIST_DEVELOPER | DIST_XF86)
#define _DIST_USER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X)
#define _DIST_XUSER \
(_DIST_USER | DIST_XF86)
/* Subtypes for SRC distribution */
#define DIST_SRC_BASE 0x0001
#define DIST_SRC_GNU 0x0002
#define DIST_SRC_ETC 0x0004
#define DIST_SRC_GAMES 0x0008
#define DIST_SRC_INCLUDE 0x0010
#define DIST_SRC_LIB 0x0020
#define DIST_SRC_LIBEXEC 0x0040
#define DIST_SRC_LKM 0x0080
#define DIST_SRC_RELEASE 0x0100
#define DIST_SRC_SBIN 0x0200
#define DIST_SRC_SHARE 0x0400
#define DIST_SRC_SYS 0x0800
#define DIST_SRC_UBIN 0x1000
#define DIST_SRC_USBIN 0x2000
#define DIST_SRC_XF86 0x4000
#define DIST_SRC_ALL 0xFFFF
/* Subtypes for XFree86 distribution */
#define DIST_XF86_BIN 0x0001
#define DIST_XF86_LIB 0x0004
#define DIST_XF86_DOC 0x0008
#define DIST_XF86_MAN 0x0010
#define DIST_XF86_PROG 0x0020
#define DIST_XF86_LINK 0x0040
#define DIST_XF86_PEX 0x0080
#define DIST_XF86_LBX 0x0100
#define DIST_XF86_SERVER 0x0200
#define DIST_XF86_SERVER_8514 0x0001
#define DIST_XF86_SERVER_AGX 0x0002
#define DIST_XF86_SERVER_MACH32 0x0004
#define DIST_XF86_SERVER_MACH8 0x0008
#define DIST_XF86_SERVER_MONO 0x0010
#define DIST_XF86_SERVER_P9000 0x0020
#define DIST_XF86_SERVER_S3 0x0040
#define DIST_XF86_SERVER_SVGA 0x0080
#define DIST_XF86_SERVER_VGA16 0x0100
#define DIST_XF86_SERVER_W32 0x0200
#define DIST_XF86_SERVER_NEST 0x0400
#define DIST_XF86_XINIT 0x0400
#define DIST_XF86_XDMCF 0x0800
#define DIST_XF86_FONTS 0x1000
#define DIST_XF86_FONTS_MISC 0x0001
#define DIST_XF86_FONTS_100 0x0002
#define DIST_XF86_FONTS_SCALE 0x0004
#define DIST_XF86_FONTS_NON 0x0008
#define DIST_XF86_FONTS_SERVER 0x0010
#define DIST_XF86_ALL 0xFFFF
#endif
/* _DIST_H_INCLUDE */

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: dmenu.c,v 1.3 1995/04/29 19:33:00 jkh Exp $
* $Id: dmenu.c,v 1.4 1995/05/01 21:56:20 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -117,15 +117,19 @@ dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max)
}
dialog_clear();
if (!rval) {
if (menu->options & DMENU_MULTIPLE_TYPE)
tmp = &(menu->items[0]);
if (menu->options & DMENU_MULTIPLE_TYPE) {
if (menu->options & DMENU_CALL_FIRST)
tmp = &(menu->items[0]);
else {
if (decode_and_dispatch_multiple(menu, result) ||
menu->options & DMENU_SELECTION_RETURNS) {
items_free(nitems, curr, max);
return;
}
}
}
else {
for (tmp = menu->items; tmp->title; tmp++)
if (!strcmp(result,
(*tmp->title == '*') ? tmp->title + 1 :
tmp->title))
break;
if (!tmp->title)
if ((tmp = decode(menu, result)) == NULL)
msgFatal("Menu item `%s' not found??", result);
}
}
@ -135,61 +139,7 @@ dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max)
items_free(nitems, curr, max);
return;
}
switch (tmp->type) {
/* User whapped ESC twice and wants a sub-shell */
case DMENU_SHELL_ESCAPE:
systemShellEscape();
break;
/* We want to simply display a file */
case DMENU_DISPLAY_FILE:
systemDisplayFile((char *)tmp->ptr);
break;
/* It's a sub-menu; recurse on it */
case DMENU_SUBMENU: {
int choice, scroll, curr, max;
choice = scroll = curr = max = 0;
dmenuOpen((DMenu *)tmp->ptr, &choice, &scroll, &curr, &max);
break;
}
/* Execute it as a system command */
case DMENU_SYSTEM_COMMAND:
(void)systemExecute((char *)tmp->ptr);
break;
/* Same as above, but execute it in a prgbox */
case DMENU_SYSTEM_COMMAND_BOX:
use_helpfile(NULL);
use_helpline("Select OK to dismiss this dialog");
dialog_prgbox(tmp->title, (char *)tmp->ptr, 22, 76, 1, 1);
dialog_clear();
break;
case DMENU_CALL:
if (((int (*)())tmp->ptr)(result)) {
items_free(nitems, curr, max);
return;
}
break;
case DMENU_CANCEL:
items_free(nitems, curr, max);
return;
case DMENU_SET_VARIABLE:
variable_set((char *)tmp->ptr);
msgInfo("Setting option %s", tmp->ptr);
break;
default:
msgFatal("Don't know how to deal with menu type %d", tmp->type);
}
/* Did the user want to make this a single-selection menu? */
if (menu->options & DMENU_SELECTION_RETURNS) {
if (dispatch(tmp) || menu->options & DMENU_SELECTION_RETURNS) {
items_free(nitems, curr, max);
return;
}

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.8 1995/05/05 23:47:43 jkh Exp $
* $Id: menus.c,v 1.9 1995/05/08 10:20:54 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -57,6 +57,12 @@ extern DMenu MenuMedia;
extern DMenu MenuInstallType;
extern DMenu MenuInstallOptions;
extern DMenu MenuDistributions;
extern DMenu MenuXF86Select;
extern DMenu MenuXF86SelectCore;
extern DMenu MenuXF86SelectServer;
extern DMenu MenuXF86SelectFonts;
extern DMenu MenuXF86;
extern DMenu MenuInstallFtpOptions;
/* The initial installation menu */
DMenu MenuInitial = {
@ -69,13 +75,13 @@ option by pressing enter. If you'd like a shell, press ESC", /* prompt */
"Press F1 for usage instructions", /* help line */
"usage.hlp", /* help file */
{ { "Usage", "Quick start - How to use this menu system.", /* U */
DMENU_DISPLAY_FILE, (void *)"usage.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"usage.hlp", 0, 0 },
{ "Doc", "More detailed documentation on FreeBSD.", /* D */
DMENU_SUBMENU, (void *)&MenuDocumentation, 0 },
DMENU_SUBMENU, (void *)&MenuDocumentation, 0, 0 },
{ "Lang", "Select natural language options.", /* L */
DMENU_SUBMENU, (void *)&MenuLanguage, 0 },
DMENU_SUBMENU, (void *)&MenuLanguage, 0, 0 },
{ "Install", "Begin installation", /* I */
DMENU_CALL, (void *)installCustom, 0 },
DMENU_CALL, (void *)installCustom, 0, 0 },
{ NULL } },
};
@ -92,18 +98,19 @@ answers in the FAQ.",
"Confused? Press F1 for help.",
"usage.hlp", /* help file */
{ { "README", "Read this for a general description of FreeBSD", /* R */
DMENU_DISPLAY_FILE, (void *)"readme.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"readme.hlp", 0, 0 },
{ "Hardware", "The FreeBSD survival guide for PC hardware.", /* H */
DMENU_DISPLAY_FILE, (void *)"hardware.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"hardware.hlp", 0, 0 },
{ "Install", "A step-by-step guide to installing FreeBSD.", /* I */
DMENU_DISPLAY_FILE, (void *)"install.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"install.hlp", 0, 0 },
{ "FAQ", "Frequently Asked Questions about FreeBSD.", /* F */
DMENU_DISPLAY_FILE, (void *)"faq.hlp", 0 },
DMENU_DISPLAY_FILE, (void *)"faq.hlp", 0, 0 },
{ NULL } },
};
/* The language selection menu */
/*
* The language selection menu.
*
* Note: The RADIO menus use a slightly different syntax. If an item
* name starts with `*', it's considered to be "ON" by default,
* otherwise off.
@ -116,31 +123,32 @@ While almost all of the system's documentation is still written\n\
in english (and may never be translated), there are a few guides\n\
and types of system documentation that may be written in your\n\
preferred language. When such are found, they will be used instead\n\
of the english versions.", /* prompt */
of the english versions. This feature is nonetheless considered\n\
to be in experimental status at this time.", /* prompt */
"Press F1 for more information", /* help line */
"language.hlp", /* help file */
{ { "Danish", "Danish language and character set (ISO-8859-1)", /* D */
DMENU_CALL, (void *)lang_set_Danish, 0 },
DMENU_CALL, (void *)lang_set_Danish, 0, 0 },
{ "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */
DMENU_CALL, (void *)lang_set_Dutch, 0 },
DMENU_CALL, (void *)lang_set_Dutch, 0, 0 },
{ "English", "English language (system default)", /* E */
DMENU_CALL, (void *)lang_set_English, 0 },
DMENU_CALL, (void *)lang_set_English, 0, 0 },
{ "French", "French language and character set (ISO-8859-1)", /* F */
DMENU_CALL, (void *)lang_set_French, 0 },
DMENU_CALL, (void *)lang_set_French, 0, 0 },
{ "German", "German language and character set (ISO-8859-1)", /* G */
DMENU_CALL, (void *)lang_set_German, 0 },
DMENU_CALL, (void *)lang_set_German, 0, 0 },
{ "Italian", "Italian language and character set (ISO-8859-1)", /* I */
DMENU_CALL, (void *)lang_set_Italian, 0 },
DMENU_CALL, (void *)lang_set_Italian, 0, 0 },
{ "Japanese", "Japanese language and default character set (romaji)",/* J */
DMENU_CALL, (void *)lang_set_Japanese, 0 },
DMENU_CALL, (void *)lang_set_Japanese, 0, 0 },
{ "Norwegian", "Norwegian language and character set (ISO-8859-1)", /* N */
DMENU_CALL, (void *)lang_set_Norwegian, 0 },
DMENU_CALL, (void *)lang_set_Norwegian, 0, 0 },
{ "Russian", "Russian language and character set (cp866-8x14)", /* R */
DMENU_CALL, (void *)lang_set_Russian, 0 },
DMENU_CALL, (void *)lang_set_Russian, 0, 0 },
{ "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, (void *)lang_set_Spanish, 0 },
DMENU_CALL, (void *)lang_set_Spanish, 0, 0 },
{ "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, (void *)lang_set_Swedish, 0 },
DMENU_CALL, (void *)lang_set_Swedish, 0, 0 },
{ NULL } },
};
@ -150,20 +158,20 @@ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"FreeBSD can be installed directly from a CDROM containing a valid\n\
FreeBSD 2.0.5 distribution. If you're seeing this menu, it's because\n\
your CDROM drive was not properly auto-detected, or you did not launch\n\
this installation from the CD under DOS or Windows. If you think you're\n\
this installation from the CD under DOS or Windows. If you think you are\n
seeing this dialog in error, you may wish to reboot FreeBSD with the\n\
-c boot flag (.. boot: /kernel -c) and check that your hardware and\n
the kernel agree on reasonable values.",
-c boot flag (.. boot: /kernel -c) and check that your hardware and\n\
the kernel agree on reasonable values.",
"Press F1 for more information on CDROM support",
"media_cdrom.hlp",
{ { "Matsushita", "Panasonic \"Sound Blaster\" CDROM.",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/matcd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/matcd0a", 0, 0 },
{ "Mitsumi", "Mitsumi FX-001 series drive (not IDE)",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/mcd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/mcd0a", 0, 0 },
{ "SCSI", "SCSI CDROM drive attached to supported SCSI controller",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/cd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/cd0a", 0, 0 },
{ "Sony", "Sony CDU31/33A or compatible CDROM drive",
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/scd0a", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=/dev/scd0a", 0, 0 },
{ NULL } },
};
@ -179,59 +187,59 @@ If the first site selected doesn't respond, try one of the alternates.",
"Select a site that's close!",
"media_ftp.hlp",
{ { "Primary", "ftp.freebsd.org",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Secondary", "freefall.cdrom.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Australia", "ftp.physics.usyd.edu.au",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Finland", "nic.funet.fi",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "France", "ftp.ibp.fr",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Germany", "ftp.uni-duisburg.de",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Israel", "orgchem.weizmann.ac.il",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Japan", "ftp.sra.co.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.sra.co.jp/pub/os/FreeBSD/distribution/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.sra.co.jp/pub/os/FreeBSD/distribution/2.0.5-ALPHA", 0, 0 },
{ "Japan-2", "ftp.mei.co.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-3", "ftp.waseda.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-4", "ftp.pu-toyama.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-5", "ftpsv1.u-aizu.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Japan-6", "tutserver.tutcc.tut.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://tutserver.tutcc.tut.ac.jp/FreeBSD/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://tutserver.tutcc.tut.ac.jp/FreeBSD/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Japan-7", "ftp.ee.uec.ac.jp",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ee.uec.ac.jp/pub/os/FreeBSD.other/FreeBSD-2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.ee.uec.ac.jp/pub/os/FreeBSD.other/FreeBSD-2.0.5-ALPHA", 0, 0 },
{ "Korea", "ftp.cau.ac.kr",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Netherlands", "ftp.nl.net",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Russia", "ftp.kiae.su",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.kiae.su/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.kiae.su/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Sweden", "ftp.luth.se",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Taiwan", "netbsd.csie.nctu.edu.tw",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "Thailand", "ftp.nectec.or.th",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK", "ftp.demon.co.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK-2", "src.doc.ic.ac.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "UK-3", "unix.hensa.ac.uk",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA", "ref.tfs.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-2", "ftp.dataplex.net",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-3", "kryten.atinc.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ "USA-4", "ftp.neosoft.com",
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-ALPHA", 0 },
DMENU_SET_VARIABLE, (void *)"mediaDevice=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-ALPHA", 0, 0 },
{ NULL } }
};
@ -243,22 +251,21 @@ DMENU_NORMAL_TYPE,
media, ranging from floppies to the Internet. If you're installing\n\
FreeBSD from a supported CDROM drive then this is generally the best\n\
method to use unless you have some overriding reason for using another\n\
method. Please also note that the DES distribution is NOT available on \n\
CDROM due to U.S. export restrictions.",
method.",
"Press F1 for more information on the various media types",
"media.hlp",
{ { "CDROM", "Install from a FreeBSD CDROM",
DMENU_CALL, (void *)mediaSetCDROM, 0 },
{ "FLOPPY", "Install from a floppy disk set",
DMENU_CALL, (void *)mediaSetFloppy, 0 },
DMENU_CALL, (void *)mediaSetCDROM, 0, 0 },
{ "Floppy", "Install from a floppy disk set",
DMENU_CALL, (void *)mediaSetFloppy, 0, 0 },
{ "DOS", "Install from a DOS partition",
DMENU_CALL, (void *)mediaSetDOS, 0 },
{ "TAPE", "Install from SCSI or QIC tape",
DMENU_CALL, (void *)mediaSetTape, 0 },
DMENU_CALL, (void *)mediaSetDOS, 0, 0 },
{ "Tape", "Install from SCSI or QIC tape",
DMENU_CALL, (void *)mediaSetTape, 0, 0 },
{ "FTP", "Install from an Internet FTP server",
DMENU_CALL, (void *)mediaSetFTP, 0 },
{ "FILESYSTEM", "Install from a UFS or NFS mounted distribution",
DMENU_CALL, (void *)mediaSetFS, 0 },
DMENU_CALL, (void *)mediaSetFTP, 0, 0 },
{ "File System", "Install from a UFS or NFS mounted distribution",
DMENU_CALL, (void *)mediaSetFS, 0, 0 },
{ NULL } },
};
@ -266,26 +273,26 @@ CDROM due to U.S. export restrictions.",
DMenu MenuInstallType = {
DMENU_NORMAL_TYPE,
"Choose Installation Type",
"As a convenience, we provide several `canned' installation types. \
These pick what we consider to be the most reasonable defaults for the \
type of system in question. If you would prefer to pick and choose \
"As a convenience, we provide several `canned' installation types.\n\
These pick what we consider to be the most reasonable defaults for the\n\
type of system in question. If you would prefer to pick and choose\n\
the list of distributions yourself, simply select `custom'.",
"Press F1 for more information on the various distributions",
"dist_types.hlp",
{ { "Developer", "Includes full sources, binaries and doc but no games.",
DMENU_CALL, (void *)distSetDeveloper, 0 },
DMENU_CALL, (void *)distSetDeveloper, 0, 0 },
{ "X-Developer", "Same as above, but includes XFree86.",
DMENU_CALL, (void *)distSetXDeveloper, 0 },
DMENU_CALL, (void *)distSetXDeveloper, 0, 0 },
{ "User", "General user. Binaries and doc but no sources.",
DMENU_CALL, (void *)distSetUser, 0 },
DMENU_CALL, (void *)distSetUser, 0, 0 },
{ "X-User", "Same as above, but includes XFree86.",
DMENU_CALL, (void *)distSetXUser, 0 },
DMENU_CALL, (void *)distSetXUser, 0, 0 },
{ "Minimal", "The smallest configuration possible.",
DMENU_CALL, (void *)distSetMinimum, 0 },
DMENU_CALL, (void *)distSetMinimum, 0, 0 },
{ "Everything", "The entire source and binary distribution.",
DMENU_CALL, (void *)distSetEverything, 0 },
DMENU_CALL, (void *)distSetEverything, 0, 0 },
{ "Custom", "Specify your own distribution set",
DMENU_SUBMENU, (void *)&MenuDistributions, 0 },
DMENU_SUBMENU, (void *)&MenuDistributions, 0, 0 },
{ NULL } },
};
@ -296,27 +303,188 @@ DMENU_MULTIPLE_TYPE,
"Press F1 for a more complete description of these distributions.",
"distribution_types.hlp",
{ { "*bin", "Binary base distribution (required)",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_BIN, 0 },
{ "commercial", "Commercial demos and shareware",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_COMMERCIAL, 0 },
{ "compat1x", "FreeBSD 1.x binary compatability package",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_COMPAT1X, 0 },
{ "DES", "DES encryption code and sources",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_DES, 0 },
{ "dict", "Spelling checker disctionary files",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_DICT, 0 },
{ "games", "Games and other amusements (non-commercial)",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_GAMES, 0 },
{ "info", "GNU info files",
DMENU_NOP, NULL, 0 },
{ "man", "System manual pages - strongly recommended",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_INFO, 0 },
{ "*man", "System manual pages - strongly recommended",
DMENU_SET_FLAG, (void *)&Dists, DIST_MANPAGES, 0 },
{ "proflibs", "Profiled versions of the libraries",
DMENU_NOP, NULL, 0 },
DMENU_SET_FLAG, (void *)&Dists, DIST_PROFLIBS, 0 },
{ "src", "Sources for everything but DES",
DMENU_NOP, NULL, 0 },
{ "XFree86", "The XFree86 3.1.1 distribution",
DMENU_NOP, NULL, 0 },
DMENU_CALL, (void *)distSetSrc, 0 },
{ "XFree86", "The XFree86 3.1.1L distribution",
DMENU_SUBMENU, (void *)&MenuXF86, 0 },
{ NULL } },
};
DMenu MenuSrcDistributions = {
DMENU_MULTIPLE_TYPE,
"Select the sub-components of src you wish to install.",
"Please check off those portions of the FreeBSD source tree\n\
you wish to install. A brief description of each source\n\
hierarchy is contained in parenthesis below.",
"Press F1 for a more complete description of distributions.",
"distribution_types.hlp",
{ { "base", "Base src directory (top-level files in /usr/src)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_BASE, 0 },
{ "gnu", "/usr/src/gnu (user software from the GNU Project)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_GNU, 0 },
{ "etc", "/usr/src/etc (miscellaneous system files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_ETC, 0 },
{ "games", "/usr/src/games (games)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_GAMES, 0 },
{ "include", "/usr/src/include (header files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_INCLUDE, 0 },
{ "lib", "/usr/src/lib (system libraries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LIB, 0 },
{ "libexec", "/usr/src/libexec (various system programs)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LIBEXEC, 0 },
{ "lkm", "/usr/src/lkm (Loadable Kernel Modules)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_LKM, 0 },
{ "release", "/usr/src/release (release-generation tools)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_RELEASE, 0 },
{ "sbin", "/usr/src/sbin (system binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SBIN, 0 },
{ "share", "/usr/src/share (documents and shared files)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SHARE, 0 },
{ "sys", "/usr/src/sys (FreeBSD kernel)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_SYS, 0 },
{ "ubin", "/usr/src/usr.bin (user binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_UBIN, 0 },
{ "usbin", "/usr/src/usr.sbin (aux system binaries)",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_USBIN, 0 },
{ "XFree86", "XFree86 3.1.1L source + contrib distribution",
DMENU_SET_FLAG, (void *)&SrcDists, DIST_SRC_XF86, 0 },
{ NULL } },
};
DMenu MenuXF86 = {
DMENU_NORMAL_TYPE,
"XFree86 3.1.1u1 Distribution",
"Welcome to the XFree86 3.1.1u1 distribution from\n\
The XFree86 Project, Inc. Recommended sequence: Select\n\
desired release components, configure, start it up (optional!)",
"Press F1 to read the XFree86 release notes for FreeBSD",
"XFree86.hlp",
{ { "Select", "Select and load components of the XFree86 distribution",
DMENU_SUBMENU, &MenuXF86Select, 0, 0 },
{ "Configure", "Configure an installed XFree86 distribution",
DMENU_SYSTEM_COMMAND, "PATH=/usr/bin:/bin:/usr/X11R6/bin xf86config",
0, 0 },
{ "Start", "Try to start the server up",
DMENU_SYSTEM_COMMAND, "PATH=/usr/bin:/bin:/usr/X11R6/bin startx",
0, 0 },
{ NULL } }
};
DMenu MenuXF86Select = {
DMENU_NORMAL_TYPE,
"XFree86 3.1.1 \"Late\" Distribution",
"Please select the components you need from the XFree86 3.1.1\n\
distribution. Select what you need from the basic components set\n\
and at least one entry from the Server menu and the Font set menu\n",
"Press F1 for a sample sequence",
"XF86Select.hlp",
{ { "Core", "Basic component menu (required)",
DMENU_SUBMENU, &MenuXF86SelectCore, 0, 0 },
{ "Server", "X server menu",
DMENU_SUBMENU, &MenuXF86SelectServer, 0, 0 },
{ "Fonts", "Font set menu",
DMENU_SUBMENU, &MenuXF86SelectFonts, 0, 0 },
{ NULL } },
};
DMenu MenuXF86SelectCore = {
DMENU_MULTIPLE_TYPE,
"XFree86 3.1.1 base distribution types",
"Please check off the primary XFree86 components you wish.\n\
Those deemed most generally useful are already checked.",
NULL,
NULL,
{ { "*bin", "X client applications and shared libs [4MB].",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_BIN, 0 },
{ "*lib", "Data files needed at runtime [0.6MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_LIB, 0 },
{ "xicf", "Customizable xinit runtime configuration file [0.1MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_XINIT, 0 },
{ "xdcf", "Customizable xdm runtime configuration file [0.1MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_XDMCF, 0 },
{ "doc", "READMEs and XFree86 specific man pages [0.5MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_DOC, 0 },
{ "*man", "Man pages (except XFree86 specific ones in etc) [1.2MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_MAN, 0 },
{ "prog", "Programmer's header and library files [4MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_PROG, 0 },
{ "link", "X Server reconfiguration kit [7.8MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_LINK, 0 },
{ "pex", "PEX fonts and shared libs needed by PEX applications [0.5MB]",
DMENU_SET_FLAG, (void *)&XF86Dists, DIST_XF86_PEX, 0 },
{ NULL } },
};
DMenu MenuXF86SelectFonts = {
DMENU_MULTIPLE_TYPE,
"Font distribution selection.",
"Please check off the individual font distributions you wish to\n\
install. At the minimum, you should certainly install the standard\n\
75 DPI and misc fonts if you're also installing a server.",
NULL,
NULL,
{ { "*fnts", "Standard 75 DPI and miscellaneous fonts [3.6MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_MISC, 0 },
{ "f100", "100 DPI fonts [1.8MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_100, 0 },
{ "fscl", "Speedo and Type scalable fonts [1.6MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_SCALE, 0 },
{ "non", "Japanese, Chinese and other non-english fonts [3.3MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_NON, 0 },
{ "server", "Font server [0.3MB]",
DMENU_SET_FLAG, (void *)&XF86FontDists, DIST_XF86_FONTS_SERVER, 0 },
{ NULL } },
};
DMenu MenuXF86SelectServer = {
DMENU_MULTIPLE_TYPE,
"X Server selection.",
"Please check off the types of X servers you wish to\n\
install. If you are unsure as which server will work\n\
for your graphics card, it is recommended that try the\n\
SVGA or VGA16 servers (the VGA16 and Mono servers are also\n\
particularly well-suited to most LCD displays).",
"xservers.hlp",
"Press F1 for more information on the various X server types",
{ { "*SVGA", "Standard VGA or Super VGA display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_SVGA, 0 },
{ "VGA16", "Standard 16 color VGA display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_VGA16, 0 },
{ "Mono", "Standard Monochrome display",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MONO, 0 },
{ "8514", "8-bit (256 color) IBM 8514 or compatible card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_8514, 0 },
{ "AGX", "8-bit AGX card",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_AGX, 0 },
{ "Mch3", "8 and 16-bit (65K color) for ATI Mach32 card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MACH32, 0 },
{ "Mch8", "8-bit ATI Mach8 card.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_MACH8, 0 },
{ "P9K", "8, 16, and 24-bit color for Weitek P9000 based boards",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_P9000, 0 },
{ "S3", "8, 16 and 24-bit color for S3 based boards",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_S3, 0 },
{ "W32", "8-bit Color for ET4000/W32, /W32i and /W32p cards.",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_W32, 0 },
{ "nest", "A nested server for testing purposes",
DMENU_SET_FLAG, (void *)&XF86ServerDists, DIST_XF86_SERVER_NEST, 0 },
{ NULL } },
};
@ -339,10 +507,38 @@ manager later.",
DMenu MenuInstallOptions = {
DMENU_NORMAL_TYPE,
"Choose Installation Options",
"blah blah",
"This menu controls how the FreeBSD installation will deal with various\n\
error conditions, should they arise, and the degree to which you, the\n\
user, will be prompted for options.",
NULL,
NULL,
{ { NULL } },
{ { "Ftp Options", "Ftp options menu",
DMENU_SUBMENU, (void *)&MenuInstallFtpOptions, 0, 0 },
{ "NFS Secure", "NFS server talks only on a secure port",
DMENU_SET_VARIABLE, (void *)"nfsServerSecure=yes", 0, 0 },
{ "NFS Slow", "User is using a slow PC or ethernet card",
DMENU_SET_VARIABLE, (void *)"nfsSlowPC=yes", 0, 0 },
{ "Extra Debugging", "Toggle the extra debugging flag",
DMENU_SET_VARIABLE, (void *)"debug=yes", 0, 0 },
{ "No Debugging", "Turn the extra debugging flag off",
DMENU_SET_VARIABLE, (void *)"debug=no", 0, 0 },
{ NULL } },
};
DMenu MenuInstallFtpOptions = {
DMENU_RADIO_TYPE,
"Choose Ftp Options",
"In case of ftp failure, how would you like this installation\n\
to deal with it? You have one of several choices:",
NULL,
NULL,
{ { "*Ftp Retry", "On transfer failure, retry same host",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=loop", 0, 0 },
{ "Ftp Reselect", "On transfer failure, ask for another host",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=reselect", 0, 0 },
{ "Ftp Abort", "On transfer failure, abort installation",
DMENU_SET_VARIABLE, (void *)"ftpRetryType=abort", 0, 0 },
{ NULL } },
};
/* The main installation menu */
@ -350,20 +546,21 @@ DMenu MenuInstall = {
DMENU_NORMAL_TYPE,
"Choose Installation Options", /* title */
"Before installation can continue, you need to specify a few items\n\
of information regarding the location of the distribution and the kind\n\
of installation you want to have (and where). There are also a number\n\
of options you can specify in the Options menu. If you do not wish to\n\
install FreeBSD at this time, you may select Cancel to leave this menu",
of information regarding the type of distribution you wish to have\n\
and from where you wish to install it. There are also a number\n\
of options you can specify in the Options menu which will determine\n\
how . If you do not wish to install FreeBSD at this time, you may\n\
select Cancel to leave this menu.",
"You may also wish to read the install guide - press F1 to do so",
"install.hlp",
{ { "Media", "Choose Installation media type", /* M */
DMENU_SUBMENU, (void *)&MenuMedia, 0 },
DMENU_SUBMENU, (void *)&MenuMedia, 0, 0 },
{ "Type", "Choose the type of installation you want", /* T */
DMENU_SUBMENU, (void *)&MenuInstallType, 0 },
DMENU_SUBMENU, (void *)&MenuInstallType, 0, 0 },
{ "Options", "Specify installation options", /* O */
DMENU_SUBMENU, (void *)&MenuInstallOptions, 0 },
{ "Proceed", "Proceed with installation", /* P */
DMENU_CANCEL, (void *)NULL, 0 },
DMENU_SUBMENU, (void *)&MenuInstallOptions, 0, 0},
{ "Proceed", "Proceed with installation", /* P */
DMENU_CANCEL, (void *)NULL, 0, 0 },
{ NULL } },
};

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.13 1995/05/08 10:20:56 jkh Exp $
* $Id: sysinstall.h,v 1.14 1995/05/08 21:39:40 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -50,6 +50,7 @@
#include <unistd.h>
#include <dialog.h>
#include "libdisk.h"
#include "dist.h"
/*** Defines ***/
@ -58,49 +59,7 @@
#define DMENU_RADIO_TYPE 0x2 /* Radio dialog menu */
#define DMENU_MULTIPLE_TYPE 0x4 /* Multiple choice menu */
#define DMENU_SELECTION_RETURNS 0x8 /* Select item then exit */
/* Bitfields for distributions - hope we never have more than 32! :-) */
#define DIST_BIN 0x1
#define DIST_GAMES 0x2
#define DIST_MANPAGES 0x4
#define DIST_PROFLIBS 0x8
#define DIST_DICT 0x10
#define DIST_SRC 0x20
#define DIST_DES 0x40
#define DIST_COMPAT1X 0x80
#define DIST_XFREE86 0x100
#define DIST_ALL 0xFFF
/* Canned distribution sets */
#define _DIST_DEVELOPER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_SRC)
#define _DIST_XDEVELOPER \
(_DIST_DEVELOPER | DIST_XFREE86)
#define _DIST_USER \
(DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X)
#define _DIST_XUSER \
(_DIST_USER | DIST_XFREE86)
/* Subtypes for SRC distribution */
#define DIST_SRC_BASE 0x1
#define DIST_SRC_GNU 0x2
#define DIST_SRC_ETC 0x4
#define DIST_SRC_GAMES 0x8
#define DIST_SRC_INCLUDE 0x10
#define DIST_SRC_LIB 0x20
#define DIST_SRC_LIBEXEC 0x40
#define DIST_SRC_LKM 0x80
#define DIST_SRC_RELEASE 0x100
#define DIST_SRC_SBIN 0x200
#define DIST_SRC_SHARE 0x400
#define DIST_SRC_SYS 0x800
#define DIST_SRC_UBIN 0x1000
#define DIST_SRC_USBIN 0x2000
#define DIST_SRC_ALL 0xFFFF
#define DMENU_CALL_FIRST 0x10 /* In multiple, use one handler */
/* variable limits */
#define VAR_NAME_MAX 128
@ -109,9 +68,6 @@
/* device limits */
#define DEV_NAME_MAX 128
/* handy */
#define ONE_MEG 1048576
/*** Types ***/
typedef unsigned int Boolean;
@ -123,6 +79,7 @@ typedef enum {
DMENU_SYSTEM_COMMAND, /* Run shell commmand */
DMENU_SYSTEM_COMMAND_BOX, /* Same as above, but in prgbox */
DMENU_SET_VARIABLE, /* Set an environment/system var */
DMENU_SET_FLAG, /* Set flag in an unsigned int */
DMENU_CALL, /* Call back a C function */
DMENU_CANCEL, /* Cancel out of this menu */
DMENU_NOP, /* Do nothing special for item */
@ -133,6 +90,7 @@ typedef struct _dmenuItem {
char *prompt; /* Our prompt */
DMenuItemType type; /* What type of item we are */
void *ptr; /* Generic data ptr */
u_long parm; /* Parameter for above */
Boolean disabled; /* Are we temporarily disabled? */
} DMenuItem;
@ -200,6 +158,9 @@ extern Boolean OnVTY; /* On a syscons VTY? */
extern Variable *VarHead; /* The head of the variable chain */
extern unsigned int Dists; /* Which distributions we want */
extern unsigned int SrcDists; /* Which src distributions we want */
extern unsigned int XF86Dists;/* Which XFree86 dists we want */
extern unsigned int XF86ServerDists; /* The XFree86 servers we want */
extern unsigned int XF86FontDists; /* The XFree86 fonts we want */
extern struct disk *Disks[]; /* The disks we're working on */
/*** Prototypes ***/
@ -210,6 +171,11 @@ extern void command_sort(void);
extern void command_execute(void);
extern void command_add(char *key, char *fmt, ...);
/* decode.c */
extern DMenuItem *decode(DMenu *menu, char *name);
extern Boolean dispatch(DMenuItem *tmp, char *name);
extern Boolean decode_and_dispatch_multiple(DMenu *menu, char *names);
/* devices.c */
extern struct disk *device_slice_disk(struct disk *d);
extern DMenu *device_create_disk_menu(DMenu *menu, Device **rdevs, int (*hook)());
@ -230,6 +196,8 @@ extern int distSetUser(char *str);
extern int distSetXUser(char *str);
extern int distSetMinimum(char *str);
extern int distSetEverything(char *str);
extern int distSetSrc(char *str);
extern void distExtractAll(void);
/* dmenu.c */
extern void dmenuOpen(DMenu *menu, int *choice, int *scroll,
@ -257,17 +225,17 @@ extern void lang_set_Spanish(char *str);
extern void lang_set_Swedish(char *str);
/* makedevs.c (auto-generated) */
extern const char termcap_vt100[];
extern const char termcap_cons25[];
extern const char termcap_cons25_m[];
extern const char termcap_cons25r[];
extern const char termcap_cons25r_m[];
extern const char termcap_cons25l1[];
extern const char termcap_cons25l1_m[];
extern const u_char font_iso_8x14[];
extern const u_char font_cp850_8x14[];
extern const u_char font_koi8_r_8x14[];
extern const u_char koi8_r2cp866[];
extern const char termcap_vt100[];
extern const char termcap_cons25[];
extern const char termcap_cons25_m[];
extern const char termcap_cons25r[];
extern const char termcap_cons25r_m[];
extern const char termcap_cons25l1[];
extern const char termcap_cons25l1_m[];
extern const u_char font_iso_8x14[];
extern const u_char font_cp850_8x14[];
extern const u_char font_koi8_r_8x14[];
extern const u_char koi8_r2cp866[];
/* media.c */
extern int mediaSetCDROM(char *str);