From 58e7a202da6a72c637ee610d4382db521df8a462 Mon Sep 17 00:00:00 2001 From: freesource Date: Sat, 8 Dec 2001 04:16:13 +0000 Subject: [PATCH] Made the termcap check just a warning if terminfo or termcap don't exist, If a terminfo directory is found, linux will need to exist or the test will return error. This is better because the root filesystem can still work if this information doesn't exist. A minority of gettys will fail if they use termcap or terminfo, but this check was removed from the chrooted tests several months ago for the reason just cited. Note: check_getty_type_call was removed from Yard.pm, but exists in chrooted tests without the termcap check. Also, added a close which was missing. --- BootRoot/Yard.pm | 48 +++++++++++++++--------------------------------- Changes | 16 ++++++++++++---- 2 files changed, 27 insertions(+), 37 deletions(-) diff --git a/BootRoot/Yard.pm b/BootRoot/Yard.pm index bbef9fa..d8e9360 100644 --- a/BootRoot/Yard.pm +++ b/BootRoot/Yard.pm @@ -2246,12 +2246,19 @@ sub which_tests { ## from distribution to distribution, and more than likely this is the ## "login" used in the mounted version, too. ## Once PATH is complete, there will be a separate check just to look at - ## the non-local $mount_point PATH. + ## the non-local $mount_point PATH. --freesource $login_binary = "$mount_point" . find_file_in_path("login"); # This goes first so we define %Termcap for use in children - ## This now checks for ncurse setups, too. + ## This now checks for ncurse setups, too. + ## This is a nice auto test to have, but issuing warning + ## is more appropriate, and this function isn't used by + ## the chrooted tests anymore, before it was used by + ## check_getty_type_call from withing test_inittab, but this + ## is mostly an agetty issue .. ususually a root_fs can + ## run quite nicely with a getty without a termcap or + ## terminfo. --freesource if ( $fs_type ne "genext2fs" ) { return "ERROR" if errm(mount_device($device,$mount_point)) == 2; check_termcap(); @@ -2630,33 +2637,6 @@ sub check_scripts { find(\&check_interpreter, "/"); } -sub check_getty_type_call { - my($prog, @args) = @_; - - if ($prog eq 'getty') { - my($tty, $speed, $type) = @args; - - if (!-e "$mount_point/dev/$tty") { - warning_test "\tLine $.: $prog for $tty, but /dev/$tty doesn't exist.\n"; - } - if (!defined($Termcap{$type})) { - warning_test "\tLine $.: Type $type not defined in termcap\n"; - } - } - ## If getty or getty_ps, look for /etc/gettydefs, /etc/issue - ## Check that term type matches one in termcap db. - - if ($prog =~ /^getty/) { - if (!$checked_for_getty_files) { - warning_test "\tLine $.: $prog expects /etc/gettydefs, which is missing.\n" - unless -e "$mount_point/etc/gettydefs"; - warning_test "\tLine $.: $prog expects /etc/issue, which is missing.\n" - unless -e "$mount_point/etc/issue"; - $checked_for_getty_files = 1; - } - } -} - ### ### NB. This is *not* run under chroot ### @@ -2760,7 +2740,7 @@ sub check_termcap { # There should at least be a linux entry, and infocmp needs to exist. my $infocmp = "infocmp -A $mount_point/etc/terminfo -C linux|"; - open(TERMCAP, "$infocmp") or + open(TERMCAP, "$infocmp") or ( $error = error("No file $mount_point/etc/terminfo/l/linux")); return if $error && $error eq "ERROR"; @@ -2784,12 +2764,13 @@ sub check_termcap { @Termcap{@terms} = (1) x ($#terms + 1); } + close(TERMCAP); } # termcap next elsif (-e "$mount_point/etc/termcap") { - open(TERMCAP, "<$mount_point/etc/termcap") or + open(TERMCAP, "<$mount_point/etc/termcap") or ( $error = error("No file $mount_point/etc/termcap")); return if $error && $error eq "ERROR"; @@ -2815,8 +2796,9 @@ sub check_termcap { close(TERMCAP); } else { - $error = error("No termcap file or terminfo directory."); - return if $error && $error eq "ERROR"; + + return warning_test("Warning: No file $mount_point/etc/terminfo/l/linux" + . " or $mount_point/etc/termcap"); } } # end sub check_termcap diff --git a/Changes b/Changes index 0b513a5..5536167 100644 --- a/Changes +++ b/Changes @@ -1,9 +1,17 @@ 1.3.0 - 12/07/2001 ------------------ -Removed an unecessary check from the fstab test, and improved a regexp which -was failing if tabs were used in the fstab. Also, added a close for the -background termcap test. +Made the termcap check just a warning if terminfo or termcap don't exist, +If a terminfo directory is found, linux will need to exist or the test will +return error. This is better because the root filesystem can still work +if this information doesn't exist. A minority of gettys will fail if they +use termcap or terminfo, but this check was removed from the chrooted tests +several months ago for the reason just cited. Note: check_getty_type_call +was removed from Yard.pm, but exists in chrooted tests without the termcap +check. Also, added a close which was missing. + +Removed an unnecessary check from the fstab test, and improved a regexp which +was failing if tabs were used in the fstab. State is saved for all check buttons when the yard box is opened and closed. Deciding whether to save state between invocations of gbootroot @@ -114,7 +122,7 @@ device hadn't been umounted yet, this was observed with genext2fs but was certainly a global bug. This has been fixed. The majority of add-on replacements except for passwd*, shadow, and -ld.so.conf have $Id: Changes,v 1.1 2001/12/07 07:02:04 freesource Exp $ and "make_debian replacement". +ld.so.conf have $Id: Changes,v 1.2 2001/12/08 03:20:22 freesource Exp $ and "make_debian replacement". Original CVS information is now preserved so that non-root users and root can't edit global replacements, the basic idea