Some cleanup done.
Include bteasy, bootsd, sdboot and termcap entries using file2.c Remove all traces of "termcap.small". The policy in this program regarding termcap is: | If $TERM is set | do nothing special, rely on usual termcap. | else | use compiled in (via file2c) termcap entries
This commit is contained in:
parent
22ab556ffc
commit
c593483b57
@ -12,12 +12,33 @@ CFLAGS += -Wall -g -static
|
|||||||
LDADD = -ldialog -lncurses -lmytinfo
|
LDADD = -ldialog -lncurses -lmytinfo
|
||||||
DPADD = ${LIBDIALOG} ${LIBNCURSES} ${LIBMYTINFO}
|
DPADD = ${LIBDIALOG} ${LIBNCURSES} ${LIBMYTINFO}
|
||||||
|
|
||||||
makedevs.c: dev2c.sh
|
makedevs.c: dev2c.sh Makefile
|
||||||
mkdir -p dev
|
mkdir -p dev
|
||||||
cp ${.CURDIR}/../../etc/etc.i386/MAKEDEV dev
|
cp ${.CURDIR}/../../etc/etc.i386/MAKEDEV dev
|
||||||
( cd dev; sh ./MAKEDEV all )
|
( cd dev; sh ./MAKEDEV all )
|
||||||
sh ${.CURDIR}/dev2c.sh dev > makedevs.c
|
sh ${.CURDIR}/dev2c.sh dev > makedevs.tmp
|
||||||
rm -rf dev
|
rm -rf dev
|
||||||
|
uudecode < ${.CURDIR}/bteasy17.uu
|
||||||
|
file2c 'const char boot0[] = {' '};' < \
|
||||||
|
bteasy17 \
|
||||||
|
>> makedevs.tmp
|
||||||
|
rm -rf bteasy17
|
||||||
|
file2c 'const char boot1[] = {' '};' < \
|
||||||
|
../../sys/i386/boot/biosboot/boot1 \
|
||||||
|
>> makedevs.tmp
|
||||||
|
file2c 'const char boot2[] = {' '};' < \
|
||||||
|
../../sys/i386/boot/biosboot/boot2 \
|
||||||
|
>> makedevs.tmp
|
||||||
|
tset -Q -S cons25 | sed 's/^.* //' | \
|
||||||
|
file2c 'const char termcap_cons25[] = {' ',0};' \
|
||||||
|
>> makedevs.tmp
|
||||||
|
tset -Q -S cons25-m | sed 's/^.* //' | \
|
||||||
|
file2c 'const char termcap_cons25_m[] = {' ',0};' \
|
||||||
|
>> makedevs.tmp
|
||||||
|
tset -Q -S vt100 | sed 's/^.* //' | \
|
||||||
|
file2c 'const char termcap_vt100[] = {' ',0};' \
|
||||||
|
>> makedevs.tmp
|
||||||
|
mv makedevs.tmp makedevs.c
|
||||||
|
|
||||||
.include <bsd.prog.mk>
|
.include <bsd.prog.mk>
|
||||||
|
|
||||||
|
15
sbin/sysinstall/bteasy17.uu
Normal file
15
sbin/sysinstall/bteasy17.uu
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
begin 664 bteasy17
|
||||||
|
M,\".P([8CM"\`'S\B_2_``:Y``'RI>I@!@``B]58HD@'/#5T'+00]N0%K@26
|
||||||
|
M]D0$_W0^Q@2`Z-H`BG0!BTP"ZPCHSP"Y`0`RT;L`?+@!`LT3<AZ!O_X!5:IU
|
||||||
|
M%NH`?```@/J!=`*R@(OJ0H#RLX@6.@>_O@>Y!`#&!BT',3+VB"V*100\`'0C
|
||||||
|
M/`5T'_[&OBH'Z'$`OD@'1D:+'`K_=`4R?01U\XVW<@?H6@"#QQ#^!BT'XLN`
|
||||||
|
M/G4$`G0+OCL'"O9U"LT8ZZR^*@?H.0#H-@`RY,T:B]J#PV"T`<T6M`!U"\T:
|
||||||
|
M.]-R\J!(!^L*S1:*Q#P<=/,$]CPQ<M8\-7?24+XH![L;!E/\K%`D?[0.S1!8
|
||||||
|
MJ(!T\L-6N`$#NP`&N0$`,O;-$U[&!D@'/\,-B@T*1C`@+B`N("Z@9&ES:R`Q
|
||||||
|
M#0H*1&5F875L=#H@1C^@``$`!``&`P<'"@IC#F0.912`%($9@AZ3)*4GGRMU
|
||||||
|
M+U(OVS)`-_(]`&1O\TA01M-/<[)5;FGX3F]V96SL36EN:?A,:6YU^$%M;V5B
|
||||||
|
MX4)3Q$)31.E00TG80U#-5F5N:?A$;W-S9>,_OP``````````````````````
|
||||||
|
M````````````````````````````````````````````````````````````
|
||||||
|
1````````````````````5:H`
|
||||||
|
`
|
||||||
|
end
|
@ -6,7 +6,7 @@
|
|||||||
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* $Id: main.c,v 1.17.2.1 1994/11/21 03:12:06 phk Exp $
|
* $Id: main.c,v 1.18 1994/12/27 23:26:51 jkh Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -61,6 +61,9 @@ main(int argc, char **argv)
|
|||||||
ioctl(0,TIOCSCTTY,(char *)NULL);
|
ioctl(0,TIOCSCTTY,(char *)NULL);
|
||||||
setlogin("root");
|
setlogin("root");
|
||||||
debug_fd = open("/dev/ttyv1",O_WRONLY);
|
debug_fd = open("/dev/ttyv1",O_WRONLY);
|
||||||
|
setbuf(stdin,0);
|
||||||
|
setbuf(stdout,0);
|
||||||
|
setbuf(stderr,0);
|
||||||
} else {
|
} else {
|
||||||
debug_fd = open("sysinstall.debug",
|
debug_fd = open("sysinstall.debug",
|
||||||
O_WRONLY|O_CREAT|O_TRUNC,0644);
|
O_WRONLY|O_CREAT|O_TRUNC,0644);
|
||||||
|
@ -17,11 +17,6 @@
|
|||||||
#include <dialog.h>
|
#include <dialog.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
#ifdef __i386__ /* temp measure delete nov 15 1994 */
|
|
||||||
#define i386 1
|
|
||||||
#else
|
|
||||||
#warning FOO
|
|
||||||
#endif
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/disklabel.h>
|
#include <sys/disklabel.h>
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
@ -33,36 +28,6 @@ extern struct mbr *mbr;
|
|||||||
extern int inst_part;
|
extern int inst_part;
|
||||||
extern int whole_disk;
|
extern int whole_disk;
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Guess what ? This is bteasy-1.7... didn't used to look this way, did it ?
|
|
||||||
* Written by Serge Vakulenko, <vak@kiae.su>
|
|
||||||
*/
|
|
||||||
static unsigned char bootcode[] = {
|
|
||||||
51,192,142,192,142,216,142,208,188,0,124,252,139,244,191,0,6,185,0,1,242,
|
|
||||||
165,234,96,6,0,0,139,213,88,162,72,7,60,53,116,28,180,16,246,228,5,174,4,
|
|
||||||
150,246,68,4,255,116,62,198,4,128,232,218,0,138,116,1,139,76,2,235,8,232,
|
|
||||||
207,0,185,1,0,50,209,187,0,124,184,1,2,205,19,114,30,129,191,254,1,85,170,
|
|
||||||
117,22,234,0,124,0,0,128,250,129,116,2,178,128,139,234,66,128,242,179,136,
|
|
||||||
22,58,7,191,190,7,185,4,0,198,6,45,7,49,50,246,136,45,138,69,4,60,0,116,
|
|
||||||
35,60,5,116,31,254,198,190,42,7,232,113,0,190,72,7,70,70,139,28,10,255,
|
|
||||||
116,5,50,125,4,117,243,141,183,114,7,232,90,0,131,199,16,254,6,45,7,226,
|
|
||||||
203,128,62,117,4,2,116,11,190,59,7,10,246,117,10,205,24,235,172,190,42,
|
|
||||||
7,232,57,0,232,54,0,50,228,205,26,139,218,131,195,96,180,1,205,22,180,0,
|
|
||||||
117,11,205,26,59,211,114,242,160,72,7,235,10,205,22,138,196,60,28,116,243,
|
|
||||||
4,246,60,49,114,214,60,53,119,210,80,190,40,7,187,27,6,83,252,172,80,36,
|
|
||||||
127,180,14,205,16,88,168,128,116,242,195,86,184,1,3,187,0,6,185,1,0,50,
|
|
||||||
246,205,19,94,198,6,72,7,63,195,13,138,13,10,70,48,32,46,32,46,32,46,160,
|
|
||||||
100,105,115,107,32,49,13,10,10,68,101,102,97,117,108,116,58,32,70,63,160,
|
|
||||||
0,1,0,4,0,6,3,7,7,10,10,99,14,100,14,101,20,128,20,129,25,130,30,147,36,
|
|
||||||
165,39,159,43,117,47,82,47,219,50,64,55,242,61,0,100,111,243,72,80,70,211,
|
|
||||||
79,115,178,85,110,105,248,78,111,118,101,108,236,77,105,110,105,248,76,
|
|
||||||
105,110,117,248,65,109,111,101,98,225,66,83,196,66,83,68,233,80,67,73,
|
|
||||||
216,67,80,205,86,101,110,105,248,68,111,115,115,101,227,63,191,0,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
||||||
0,85,170 };
|
|
||||||
|
|
||||||
struct part_type part_types[] = PARTITION_TYPES
|
struct part_type part_types[] = PARTITION_TYPES
|
||||||
|
|
||||||
char *
|
char *
|
||||||
@ -118,13 +83,14 @@ void
|
|||||||
write_bootcode(int fd)
|
write_bootcode(int fd)
|
||||||
{
|
{
|
||||||
u_char buf[512];
|
u_char buf[512];
|
||||||
|
extern const char boot0[];
|
||||||
|
|
||||||
if (lseek(fd, 0, SEEK_SET) == -1)
|
if (lseek(fd, 0, SEEK_SET) == -1)
|
||||||
AskAbort("Couldn't seek for master boot record read\n");
|
AskAbort("Couldn't seek for master boot record read\n");
|
||||||
if (read(fd, buf, 512) != 512) {
|
if (read(fd, buf, 512) != 512) {
|
||||||
AskAbort("Failed to read master boot record\n");
|
AskAbort("Failed to read master boot record\n");
|
||||||
}
|
}
|
||||||
memcpy(buf, bootcode, DOSPARTOFF);
|
memcpy(buf, boot0, DOSPARTOFF);
|
||||||
buf[510] = 0x55;
|
buf[510] = 0x55;
|
||||||
buf[511] = 0xaa;
|
buf[511] = 0xaa;
|
||||||
if (lseek(fd, 0, SEEK_SET) == -1)
|
if (lseek(fd, 0, SEEK_SET) == -1)
|
||||||
@ -138,33 +104,14 @@ write_bootcode(int fd)
|
|||||||
int
|
int
|
||||||
WriteBootblock(int dfd,struct disklabel *label,struct dos_partition *dospart)
|
WriteBootblock(int dfd,struct disklabel *label,struct dos_partition *dospart)
|
||||||
{
|
{
|
||||||
int fd;
|
|
||||||
off_t of = label->d_partitions[OURPART].p_offset;
|
off_t of = label->d_partitions[OURPART].p_offset;
|
||||||
u_char bootblocks[BBSIZE];
|
u_char bootblocks[BBSIZE];
|
||||||
|
extern const char boot1[];
|
||||||
|
extern const char boot2[];
|
||||||
|
|
||||||
Debug("Loading boot code from %s", BOOT1);
|
memcpy(bootblocks, boot1, MBRSIZE);
|
||||||
|
|
||||||
fd = open(BOOT1, O_RDONLY);
|
memcpy(&bootblocks[MBRSIZE], boot2, (int)(label->d_bbsize - MBRSIZE));
|
||||||
if (fd < 0)
|
|
||||||
Fatal("Couldn't open boot file %s\n", BOOT1);
|
|
||||||
|
|
||||||
if (read(fd, bootblocks, MBRSIZE) < 0)
|
|
||||||
Fatal("Couldn't read from boot file %s\n", BOOT1);
|
|
||||||
|
|
||||||
if (close(fd) == -1)
|
|
||||||
Fatal("Couldn't close boot file %s\n", BOOT1);
|
|
||||||
|
|
||||||
Debug("Loading boot code from %s", BOOT2);
|
|
||||||
|
|
||||||
fd = open(BOOT2, O_RDONLY);
|
|
||||||
if (fd < 0)
|
|
||||||
Fatal("Couldn't open boot file %s", BOOT2);
|
|
||||||
|
|
||||||
if (read(fd, &bootblocks[MBRSIZE], (int)(label->d_bbsize - MBRSIZE)) < 0)
|
|
||||||
Fatal("Couldn't read from boot file %s\n", BOOT2);
|
|
||||||
|
|
||||||
if (close(fd) == -1)
|
|
||||||
Fatal("Couldn't close boot file %s", BOOT2);
|
|
||||||
|
|
||||||
bcopy(dospart, &bootblocks[DOSPARTOFF],
|
bcopy(dospart, &bootblocks[DOSPARTOFF],
|
||||||
sizeof(struct dos_partition) * NDOSPART);
|
sizeof(struct dos_partition) * NDOSPART);
|
||||||
|
@ -14,9 +14,6 @@
|
|||||||
|
|
||||||
#define TITLE "FreeBSD 2.0-950128-SNAP Install"
|
#define TITLE "FreeBSD 2.0-950128-SNAP Install"
|
||||||
|
|
||||||
#define BOOT1 "/stand/sdboot"
|
|
||||||
#define BOOT2 "/stand/bootsd"
|
|
||||||
|
|
||||||
#define MAX_NO_DISKS 10
|
#define MAX_NO_DISKS 10
|
||||||
#define MAX_NO_FS 30
|
#define MAX_NO_FS 30
|
||||||
#define MAXFS MAX_NO_FS
|
#define MAXFS MAX_NO_FS
|
||||||
|
@ -21,87 +21,36 @@
|
|||||||
|
|
||||||
#include "sysinstall.h"
|
#include "sysinstall.h"
|
||||||
|
|
||||||
static char color_termcap[] = "\
|
|
||||||
:pa#64:Co#8:Sf=\\E[3%dm:Sb=\\E[4%dm:op=\\E[37;40m:md=\\E[1m:mh=\\E[30;1m:";
|
|
||||||
static char color_entry[] = "\
|
|
||||||
cons25|ansis|ansi80x25:";
|
|
||||||
|
|
||||||
static char mono_termcap[] = "\
|
|
||||||
:us=\E[4m:ue=\E[m:";
|
|
||||||
static char mono_entry[] = "\
|
|
||||||
cons25-m|ansis-mono|ansi80x25-mono:";
|
|
||||||
|
|
||||||
static char common_termcap[] = "\
|
|
||||||
:ac=l\\332m\\300k\\277j\\331u\\264t\\303v\\301w\\302q\\304x\\263n\\305`^Da\\260f\\370g\\361~\\371.^Y-^Xh\\261I^U0\\333y\\363z\\362:\
|
|
||||||
:al=\\E[L:am:bs:NP:cd=\\E[J:ce=\\E[K:cl=\\E[H\\E[J:cm=\\E[%i%d;%dH:co#80:\
|
|
||||||
:dc=\\E[P:dl=\\E[M:do=\\E[B:bt=\\E[Z:ho=\\E[H:ic=\\E[@:li#25:cb=\\E[1K:\
|
|
||||||
:ms:nd=\\E[C:pt:rs=\\E[x\\E[m\\Ec:so=\\E[7m:se=\\E[m:up=\\E[A:\
|
|
||||||
:k1=\\E[M:k2=\\E[N:k3=\\E[O:k4=\\E[P:k5=\\E[Q:k6=\\E[R:k7=\\E[S:k8=\\E[T:\
|
|
||||||
:k9=\\E[U:k;=\\E[V:F1=\\E[W:F2=\\E[X:K2=\\E[E:nw=\\E[E:ec=\\E[%dX:\
|
|
||||||
:kb=^H:kh=\\E[H:ku=\\E[A:kd=\\E[B:kl=\\E[D:kr=\\E[C:\
|
|
||||||
:le=^H:eo:sf=\\E[S:sr=\\E[T:\
|
|
||||||
:kN=\\E[G:kP=\\E[I:@7=\\E[F:kI=\\E[L:kD=\\E[K:kB=\\E[Z:\
|
|
||||||
:IC=\\E[%d@:DC=\\E[%dP:SF=\\E[%dS:SR=\\E[%dT:AL=\\E[%dL:DL=\\E[%dM:\
|
|
||||||
:DO=\\E[%dB:LE=\\E[%dD:RI=\\E[%dC:UP=\\E[%dA:cv=\\E[%i%dd:ch=\\E[%i%d`:bw:\
|
|
||||||
:mb=\\E[5m:mr=\\E[7m:me=\\E[m:bl=^G:ut:it#8:";
|
|
||||||
|
|
||||||
static int
|
|
||||||
emergency(int color)
|
|
||||||
{
|
|
||||||
char tempbuf[sizeof(common_termcap)+sizeof(color_termcap)+sizeof(mono_entry)];
|
|
||||||
|
|
||||||
strcpy(tempbuf, color ? color_entry : mono_entry);
|
|
||||||
strcat(tempbuf, common_termcap);
|
|
||||||
strcat(tempbuf, color ? color_termcap : mono_termcap);
|
|
||||||
if (setenv("TERMCAP", tempbuf, 1) < 0)
|
|
||||||
return -1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
set_termcap()
|
set_termcap()
|
||||||
{
|
{
|
||||||
char *term;
|
char *term;
|
||||||
|
extern const char termcap_vt100[];
|
||||||
|
extern const char termcap_cons25[];
|
||||||
|
extern const char termcap_cons25_m[];
|
||||||
|
|
||||||
term = getenv("TERM");
|
term = getenv("TERM");
|
||||||
if (term == NULL) {
|
if (term == NULL) {
|
||||||
int color_display, no_termcap = 0;
|
int color_display;
|
||||||
|
|
||||||
if (access("/etc/termcap.small",R_OK)) {
|
|
||||||
no_termcap = 1;
|
|
||||||
} else if (setenv("TERMCAP", "/etc/termcap.small", 1) < 0)
|
|
||||||
no_termcap = 1;
|
|
||||||
|
|
||||||
if (ioctl(STDERR_FILENO, GIO_COLOR, &color_display) < 0) {
|
if (ioctl(STDERR_FILENO, GIO_COLOR, &color_display) < 0) {
|
||||||
char buf[64];
|
if (setenv("TERM", "vt100", 1) < 0)
|
||||||
int len;
|
|
||||||
|
|
||||||
/* serial console */
|
|
||||||
if (no_termcap)
|
|
||||||
return -1;
|
return -1;
|
||||||
fprintf(stderr, "Enter your terminal type (must be present in /etc/termcap.small): ");
|
if (setenv("TERMCAP", termcap_vt100, 1) < 0)
|
||||||
if (fgets(buf, sizeof(buf), stdin) == NULL)
|
|
||||||
return -1;
|
|
||||||
len = strlen(buf);
|
|
||||||
if (len > 0 && buf[len - 1] == '\n')
|
|
||||||
buf[len - 1] = '\0';
|
|
||||||
if (setenv("TERM", buf, 1) < 0)
|
|
||||||
return -1;
|
return -1;
|
||||||
} else if (color_display) {
|
} else if (color_display) {
|
||||||
|
|
||||||
/* color console */
|
|
||||||
if (setenv("TERM", "cons25", 1) < 0)
|
if (setenv("TERM", "cons25", 1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
if (setenv("TERMCAP", termcap_cons25, 1) < 0)
|
||||||
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* mono console */
|
|
||||||
if (setenv("TERM", "cons25-m", 1) < 0)
|
if (setenv("TERM", "cons25-m", 1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
if (setenv("TERMCAP", termcap_cons25_m, 1) < 0)
|
||||||
if (no_termcap) {
|
|
||||||
if (emergency(color_display) < 0)
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
printf("TERM=%s\n",getenv("TERM"));
|
||||||
|
printf("TERMCAP=%s\n",getenv("TERMCAP"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user