| Upstream Status: Inappropriate [No upstream maintenance] |
| |
| Signed-off-by: Anne Mulhern <mulhern@yoctoproject.org> |
| |
| --- |
| |
| Index: Bastille/Bastille/API.pm |
| =================================================================== |
| --- Bastille.orig/Bastille/API.pm 2013-08-22 04:32:38.269968002 -0400 |
| +++ Bastille/Bastille/API.pm 2013-08-22 11:29:53.137968002 -0400 |
| @@ -141,7 +141,7 @@ |
| checkProcsForService |
| |
| |
| - $GLOBAL_OS $GLOBAL_ACTUAL_OS $CLI |
| + $CLI |
| $GLOBAL_LOGONLY $GLOBAL_VERBOSE $GLOBAL_DEBUG $GLOBAL_AUDITONLY $GLOBAL_AUDIT_NO_BROWSER $errorFlag |
| %GLOBAL_BIN %GLOBAL_DIR %GLOBAL_FILE |
| %GLOBAL_BDIR %GLOBAL_BFILE |
| @@ -198,7 +198,7 @@ |
| my $err ="ERROR: "; |
| my $spc =" "; |
| my $GLOBAL_OS="None"; |
| -my $GLOBAL_ACTUAL_OS="None"; |
| +my $GLOBAL_INFERRED_OS="None"; |
| my %GLOBAL_SUMS=(); |
| my $CLI=''; |
| |
| @@ -306,7 +306,7 @@ |
| |
| ########################################################################### |
| # |
| -# GetDistro checks to see if the target is a known distribution and reports |
| +# InferDistro checks to see if the target is a known distribution and reports |
| # said distribution. |
| # |
| # This is used throughout the script, but also by ConfigureForDistro. |
| @@ -314,205 +314,194 @@ |
| # |
| ########################################################################### |
| |
| -sub GetDistro() { |
| +sub InferDistro() { |
| |
| my ($release,$distro); |
| |
| - # Only read files for the distro once. |
| - # if the --os option was used then |
| - if ($GLOBAL_OS eq "None") { |
| - if ( -e "/etc/mandrake-release" ) { |
| - open(MANDRAKE_RELEASE,"/etc/mandrake-release"); |
| - $release=<MANDRAKE_RELEASE>; |
| - |
| - if ( ($release =~ /^Mandrake Linux release (\d+\.\d+\w*)/) or ($release =~ /^Linux Mandrake release (\d+\.\d+\w*)/) ) { |
| - $distro="MN$1"; |
| - } |
| - elsif ( $release =~ /^Mandrakelinux release (\d+\.\d+)\b/ ) { |
| - $distro="MN$1"; |
| - } |
| - else { |
| - print STDERR "$err Couldn't determine Mandrake/Mandriva version! Setting to 10.1!\n"; |
| - $distro="MN10.1"; |
| - } |
| - |
| - close(MANDRAKE_RELEASE); |
| - } |
| - elsif ( -e "/etc/immunix-release" ) { |
| - open(IMMUNIX_RELEASE,"/etc/immunix-release"); |
| - $release=<IMMUNIX_RELEASE>; |
| - unless ($release =~ /^Immunix Linux release (\d+\.\d+\w*)/) { |
| - print STDERR "$err Couldn't determine Immunix version! Setting to 6.2!\n"; |
| - $distro="RH6.2"; |
| - } |
| - else { |
| - $distro="RH$1"; |
| - } |
| - close(*IMMUNIX_RELEASE); |
| - } |
| - elsif ( -e '/etc/fedora-release' ) { |
| - open(FEDORA_RELEASE,'/etc/fedora-release'); |
| - $release=<FEDORA_RELEASE>; |
| - close FEDORA_RELEASE; |
| - if ($release =~ /^Fedora Core release (\d+\.?\d*)/) { |
| - $distro = "RHFC$1"; |
| - } |
| - elsif ($release =~ /^Fedora release (\d+\.?\d*)/) { |
| - $distro = "RHFC$1"; |
| - } |
| - else { |
| - print STDERR "$err Could not determine Fedora version! Setting to Fedora Core 8\n"; |
| - $distro='RHFC8'; |
| - } |
| + if ( -e "/etc/mandrake-release" ) { |
| + open(MANDRAKE_RELEASE,"/etc/mandrake-release"); |
| + $release=<MANDRAKE_RELEASE>; |
| + |
| + if ( ($release =~ /^Mandrake Linux release (\d+\.\d+\w*)/) or ($release =~ /^Linux Mandrake release (\d+\.\d+\w*)/) ) { |
| + $distro="MN$1"; |
| + } |
| + elsif ( $release =~ /^Mandrakelinux release (\d+\.\d+)\b/ ) { |
| + $distro="MN$1"; |
| + } |
| + else { |
| + print STDERR "$err Could not infer Mandrake/Mandriva version! Setting to 10.1!\n"; |
| + $distro="MN10.1"; |
| + } |
| + |
| + close(MANDRAKE_RELEASE); |
| + } |
| + elsif ( -e "/etc/immunix-release" ) { |
| + open(IMMUNIX_RELEASE,"/etc/immunix-release"); |
| + $release=<IMMUNIX_RELEASE>; |
| + unless ($release =~ /^Immunix Linux release (\d+\.\d+\w*)/) { |
| + print STDERR "$err Could not infer Immunix version! Setting to 6.2!\n"; |
| + $distro="RH6.2"; |
| + } |
| + else { |
| + $distro="RH$1"; |
| } |
| - elsif ( -e "/etc/redhat-release" ) { |
| - open(*REDHAT_RELEASE,"/etc/redhat-release"); |
| - $release=<REDHAT_RELEASE>; |
| - if ($release =~ /^Red Hat Linux release (\d+\.?\d*\w*)/) { |
| - $distro="RH$1"; |
| - } |
| - elsif ($release =~ /^Red Hat Linux .+ release (\d+)\.?\d*([AEW]S)/) { |
| - $distro="RHEL$1$2"; |
| - } |
| - elsif ($release =~ /^Red Hat Enterprise Linux ([AEW]S) release (\d+)/) { |
| - $distro="RHEL$2$1"; |
| + close(*IMMUNIX_RELEASE); |
| + } |
| + elsif ( -e '/etc/fedora-release' ) { |
| + open(FEDORA_RELEASE,'/etc/fedora-release'); |
| + $release=<FEDORA_RELEASE>; |
| + close FEDORA_RELEASE; |
| + if ($release =~ /^Fedora Core release (\d+\.?\d*)/) { |
| + $distro = "RHFC$1"; |
| + } |
| + elsif ($release =~ /^Fedora release (\d+\.?\d*)/) { |
| + $distro = "RHFC$1"; |
| + } |
| + else { |
| + print STDERR "$err Could not infer Fedora version! Setting to Fedora Core 8\n"; |
| + $distro='RHFC8'; |
| + } |
| + } |
| + elsif ( -e "/etc/redhat-release" ) { |
| + open(*REDHAT_RELEASE,"/etc/redhat-release"); |
| + $release=<REDHAT_RELEASE>; |
| + if ($release =~ /^Red Hat Linux release (\d+\.?\d*\w*)/) { |
| + $distro="RH$1"; |
| + } |
| + elsif ($release =~ /^Red Hat Linux .+ release (\d+)\.?\d*([AEW]S)/) { |
| + $distro="RHEL$1$2"; |
| + } |
| + elsif ($release =~ /^Red Hat Enterprise Linux ([AEW]S) release (\d+)/) { |
| + $distro="RHEL$2$1"; |
| + } |
| + elsif ($release =~ /^CentOS release (\d+\.\d+)/) { |
| + my $version = $1; |
| + if ($version =~ /^4\./) { |
| + $distro='RHEL4AS'; |
| } |
| - elsif ($release =~ /^CentOS release (\d+\.\d+)/) { |
| - my $version = $1; |
| - if ($version =~ /^4\./) { |
| - $distro='RHEL4AS'; |
| - } |
| - elsif ($version =~ /^3\./) { |
| - $distro='RHEL3AS'; |
| - } |
| - else { |
| - print STDERR "$err Could not determine CentOS version! Setting to Red Hat Enterprise 4 AS.\n"; |
| - $distro='RHEL4AS'; |
| - } |
| - } |
| - else { |
| - # JJB/HP - Should this be B_log? |
| - print STDERR "$err Couldn't determine Red Hat version! Setting to 9!\n"; |
| - $distro="RH9"; |
| - } |
| - close(REDHAT_RELEASE); |
| - |
| - } |
| - elsif ( -e "/etc/debian_version" ) { |
| - $stable="3.1"; #Change this when Debian stable changes |
| - open(*DEBIAN_RELEASE,"/etc/debian_version"); |
| - $release=<DEBIAN_RELEASE>; |
| - unless ($release =~ /^(\d+\.\d+\w*)/) { |
| - print STDERR "$err System is not running a stable Debian GNU/Linux version. Setting to $stable.\n"; |
| - $distro="DB$stable"; |
| + elsif ($version =~ /^3\./) { |
| + $distro='RHEL3AS'; |
| } |
| else { |
| - $distro="DB$1"; |
| - } |
| - close(DEBIAN_RELEASE); |
| - } |
| - elsif ( -e "/etc/SuSE-release" ) { |
| - open(*SUSE_RELEASE,"/etc/SuSE-release"); |
| - $release=<SUSE_RELEASE>; |
| - if ($release =~ /^SuSE Linux (\d+\.\d+\w*)/i) { |
| - $distro="SE$1"; |
| - } |
| - elsif ($release =~ /^SUSE LINUX Enterprise Server (\d+\.?\d?\w*)/i) { |
| - $distro="SESLES$1"; |
| - } |
| - elsif ($release =~ /^SUSE Linux Enterprise Server (\d+\.?\d?\w*)/i) { |
| - $distro="SESLES$1"; |
| - } |
| - elsif ($release =~ /^openSuSE (\d+\.\d+\w*)/i) { |
| - $distro="SE$1"; |
| + print STDERR "$err Could not infer CentOS version! Setting to Red Hat Enterprise 4 AS.\n"; |
| + $distro='RHEL4AS'; |
| } |
| - else { |
| - print STDERR "$err Couldn't determine SuSE version! Setting to 10.3!\n"; |
| - $distro="SE10.3"; |
| - } |
| - close(SUSE_RELEASE); |
| - } |
| - elsif ( -e "/etc/turbolinux-release") { |
| - open(*TURBOLINUX_RELEASE,"/etc/turbolinux-release"); |
| - $release=<TURBOLINUX_RELEASE>; |
| - unless ($release =~ /^Turbolinux Workstation (\d+\.\d+\w*)/) { |
| - print STDERR "$err Couldn't determine TurboLinux version! Setting to 7.0!\n"; |
| - $distro="TB7.0"; |
| - } |
| - else { |
| - $distro="TB$1"; |
| - } |
| - close(TURBOLINUX_RELEASE); |
| + } |
| + else { |
| + # JJB/HP - Should this be B_log? |
| + print STDERR "$err Could not infer Red Hat version! Setting to 9!\n"; |
| + $distro="RH9"; |
| + } |
| + close(REDHAT_RELEASE); |
| + |
| + } |
| + elsif ( -e "/etc/debian_version" ) { |
| + $stable="3.1"; #Change this when Debian stable changes |
| + open(*DEBIAN_RELEASE,"/etc/debian_version"); |
| + $release=<DEBIAN_RELEASE>; |
| + unless ($release =~ /^(\d+\.\d+\w*)/) { |
| + print STDERR "$err System is not running a stable Debian GNU/Linux version. Setting to $stable.\n"; |
| + $distro="DB$stable"; |
| + } |
| + else { |
| + $distro="DB$1"; |
| + } |
| + close(DEBIAN_RELEASE); |
| + } |
| + elsif ( -e "/etc/SuSE-release" ) { |
| + open(*SUSE_RELEASE,"/etc/SuSE-release"); |
| + $release=<SUSE_RELEASE>; |
| + if ($release =~ /^SuSE Linux (\d+\.\d+\w*)/i) { |
| + $distro="SE$1"; |
| + } |
| + elsif ($release =~ /^SUSE LINUX Enterprise Server (\d+\.?\d?\w*)/i) { |
| + $distro="SESLES$1"; |
| + } |
| + elsif ($release =~ /^SUSE Linux Enterprise Server (\d+\.?\d?\w*)/i) { |
| + $distro="SESLES$1"; |
| + } |
| + elsif ($release =~ /^openSuSE (\d+\.\d+\w*)/i) { |
| + $distro="SE$1"; |
| + } |
| + else { |
| + print STDERR "$err Could not infer SuSE version! Setting to 10.3!\n"; |
| + $distro="SE10.3"; |
| } |
| + close(SUSE_RELEASE); |
| + } |
| + elsif ( -e "/etc/turbolinux-release") { |
| + open(*TURBOLINUX_RELEASE,"/etc/turbolinux-release"); |
| + $release=<TURBOLINUX_RELEASE>; |
| + unless ($release =~ /^Turbolinux Workstation (\d+\.\d+\w*)/) { |
| + print STDERR "$err Could not infer TurboLinux version! Setting to 7.0!\n"; |
| + $distro="TB7.0"; |
| + } |
| else { |
| - # We're either on Mac OS X, HP-UX or an unsupported O/S. |
| - if ( -x '/usr/bin/uname') { |
| + $distro="TB$1"; |
| + } |
| + close(TURBOLINUX_RELEASE); |
| + } |
| + else { |
| + # We're either on Mac OS X, HP-UX or an unsupported O/S. |
| + if ( -x '/usr/bin/uname') { |
| # uname is in /usr/bin on Mac OS X and HP-UX |
| - $release=`/usr/bin/uname -sr`; |
| - } |
| - else { |
| - print STDERR "$err Could not determine operating system version!\n"; |
| - $distro="unknown" |
| - } |
| - |
| - # Figure out what kind of system we're on. |
| - if ($release ne "") { |
| - if ($release =~ /^Darwin\s+(\d+)\.(\d+)/) { |
| - if ($1 == 6 ) { |
| - $distro = "OSX10.2"; |
| - } |
| - elsif ($1 == 7) { |
| - $distro = "OSX10.3"; |
| - } |
| - elsif ($1 == 8) { |
| - $distro = "OSX10.3"; |
| - } |
| - else { |
| - $distro = "unknown"; |
| - } |
| + $release=`/usr/bin/uname -sr`; |
| + } |
| + else { |
| + print STDERR "$err Could not infer operating system version from filesystem context. Setting inferred distro to 'unknown'.\n"; |
| + $distro="unknown"; |
| + } |
| + |
| + # Figure out what kind of system we're on. |
| + if ($release ne "") { |
| + if ($release =~ /^Darwin\s+(\d+)\.(\d+)/) { |
| + if ($1 == 6 ) { |
| + $distro = "OSX10.2"; |
| } |
| - elsif ( $release =~ /(^HP-UX)\s*B\.(\d+\.\d+)/ ) { |
| - $distro="$1$2"; |
| + elsif ($1 == 7) { |
| + $distro = "OSX10.3"; |
| } |
| + elsif ($1 == 8) { |
| + $distro = "OSX10.3"; |
| + } |
| else { |
| - print STDERR "$err Could not determine operating system version!\n"; |
| - $distro="unknown"; |
| + print STDERR "$err Could not infer operating system version from filesystem context. Setting inferred distro to 'unknown'.\n"; |
| + $distro = "unknown"; |
| } |
| } |
| + elsif ( $release =~ /(^HP-UX)\s*B\.(\d+\.\d+)/ ) { |
| + $distro="$1$2"; |
| + } |
| + else { |
| + print STDERR "$err Could not infer operating system version from filesystem context. Setting inferred distro to 'unknown'.\n"; |
| + $distro="unknown"; |
| + } |
| } |
| - |
| - $GLOBAL_OS=$distro; |
| - } elsif (not (defined $GLOBAL_OS)) { |
| - print "ERROR: GLOBAL OS Scoping Issue\n"; |
| - } else { |
| - $distro = $GLOBAL_OS; |
| } |
| - |
| return $distro; |
| } |
| |
| ################################################################################### |
| -# &getActualDistro; # |
| +# &getInferredDistro; # |
| # # |
| # This subroutine returns the actual os version in which is running on. This # |
| # os version is independent of the --os switch feed to bastille. # |
| # # |
| ################################################################################### |
| -sub getActualDistro { |
| - # set local variable to $GLOBAL_OS |
| +sub getInferredDistro { |
| + if ($GLOBAL_INFERRED_OS eq "None") { |
| + $GLOBAL_INFERRED_OS = &InferDistro; |
| + } |
| + return $GLOBAL_INFERRED_OS; |
| +} |
| |
| - if ($GLOBAL_ACTUAL_OS eq "None") { |
| - my $os = $GLOBAL_OS; |
| - # undef GLOBAL_OS so that the GetDistro routine will return |
| - # the actualDistro, it might otherwise return the distro set |
| - # by the --os switch. |
| - $GLOBAL_OS = "None"; |
| - $GLOBAL_ACTUAL_OS = &GetDistro; |
| - # reset the GLOBAL_OS variable |
| - $GLOBAL_OS = $os; |
| +sub GetDistro { |
| + if ($GLOBAL_OS eq "None") { |
| + return &getInferredDistro; |
| } |
| - return $GLOBAL_ACTUAL_OS; |
| + return $GLOBAL_OS; |
| } |
| + |
| # These are helper routines which used to be included inside GetDistro |
| sub is_OS_supported($) { |
| my $os=$_[0]; |
| @@ -556,7 +545,8 @@ |
| "SE7.2","SE7.3", "SE8.0","SE8.1","SE9.0","SE9.1", |
| "SE9.2","SE9.3","SE10.0","SE10.1","SE10.2","SE10.3", |
| "SESLES8","SESLES9","SESLES10", |
| - "TB7.0" |
| + "TB7.0", |
| + "Yocto" |
| ], |
| |
| "HP-UX" => [ |
| @@ -882,23 +872,19 @@ |
| ########################################################################### |
| sub ConfigureForDistro { |
| |
| - my $retval=1; |
| - |
| - # checking to see if the os version given is in fact supported |
| my $distro = &GetDistro; |
| |
| - # checking to see if the actual os version is in fact supported |
| - my $actualDistro = &getActualDistro; |
| + my $inferredDistro = &getInferredDistro; |
| + |
| + if (! ($inferredDistro eq $distro) ) { |
| + print STDERR "WARNING: Inferred distro $inferredDistro is not the same as specified distro $distro. Using specified distro.\n"; |
| + } |
| + |
| $ENV{'LOCALE'}=''; # So that test cases checking for english results work ok. |
| - if ((! &is_OS_supported($distro)) or (! &is_OS_supported($actualDistro)) ) { |
| - # if either is not supported then print out a list of supported versions |
| - if (! &is_OS_supported($distro)) { |
| - print STDERR "$err '$distro' is not a supported operating system.\n"; |
| - } |
| - else { |
| - print STDERR "$err Bastille is unable to operate correctly on this\n"; |
| - print STDERR "$spc $distro operating system.\n"; |
| - } |
| + |
| + if (! &is_OS_supported($distro)) { |
| + print STDERR "$err '$distro' is not a supported operating system.\n"; |
| + |
| my %supportedOSHash = &getSupportedOSHash; |
| print STDERR "$spc Valid operating system versions are as follows:\n"; |
| |
| @@ -930,7 +916,7 @@ |
| # intend via setting the Perl umask |
| umask(077); |
| |
| - &getFileAndServiceInfo($distro,$actualDistro); |
| + &getFileAndServiceInfo($distro,$distro); |
| |
| # &dumpFileInfo; # great for debuging file location issues |
| # &dumpServiceInfo; # great for debuging service information issues |
| @@ -942,7 +928,7 @@ |
| "$spc You must use Bastille\'s -n flag (for example:\n" . |
| "$spc bastille -f -n) or \'touch $nodisclaim_file \'\n"; |
| |
| - return $retval; |
| + return 1; |
| } |
| |
| |
| Index: Bastille/Bastille/LogAPI.pm |
| =================================================================== |
| --- Bastille.orig/Bastille/LogAPI.pm 2013-08-22 04:32:38.269968002 -0400 |
| +++ Bastille/Bastille/LogAPI.pm 2013-08-22 04:32:47.509968002 -0400 |
| @@ -111,7 +111,7 @@ |
| # do this here to prevent bootstrapping problem, where we need to |
| # write an error that the errorlog location isn't defined. |
| my $logdir="/var/log/Bastille"; |
| - if(&getActualDistro =~ "^HP-UX"){ |
| + if(&getInferredDistro =~ "^HP-UX"){ |
| $logdir = "/var/opt/sec_mgmt/bastille/log/"; |
| } |
| |