Diff for /doc/install/linux/install.pl between versions 1.6 and 1.10

version 1.6, 2011/03/28 13:27:56 version 1.10, 2011/04/24 22:44:50
Line 293  sub check_prerequisites { Line 293  sub check_prerequisites {
             } else {              } else {
                 my $line = <PIPE>;                  my $line = <PIPE>;
                 chomp($line);                  chomp($line);
                 if ($line =~ /^LONCAPA-prerequisites\-([\d\-]+)\.(\w+)$/) {                  if ($line =~ /^LONCAPA\-prerequisites\-([\d\-]+)\.(?:[.\w]+)$/) {
                     $gotprereqs = $1;                      $gotprereqs = $1;
                 }                  }
             }              }
Line 307  sub check_prerequisites { Line 307  sub check_prerequisites {
   
 sub check_locale {  sub check_locale {
     my ($distro) = @_;      my ($distro) = @_;
     my ($fh,$command);      my ($fh,$langvar,$command);
       $langvar = 'LANG';
     if ($distro =~ /^(ubuntu|debian)/) {      if ($distro =~ /^(ubuntu|debian)/) {
         if (!open($fh,"</etc/default/locale")) {          if (!open($fh,"</etc/default/locale")) {
             print &mt('Failed to open: [_1], default locale not checked.',              print &mt('Failed to open: [_1], default locale not checked.',
                       '/etc/default/locale');                        '/etc/default/locale');
         }          }
       } elsif ($distro =~ /^(suse|sles)/) {
           if (!open($fh,"</etc/sysconfig/language")) {
               print &mt('Failed to open: [_1], default locale not checked.',
                         '/etc/sysconfig/language');
           }
           $langvar = 'RC_LANG';
     } else {      } else {
         if (!open($fh,"</etc/sysconfig/i18n")) {          if (!open($fh,"</etc/sysconfig/i18n")) {
             print &mt('Failed to open: [_1], default locale not checked.',              print &mt('Failed to open: [_1], default locale not checked.',
Line 322  sub check_locale { Line 329  sub check_locale {
     my @data = <$fh>;      my @data = <$fh>;
     chomp(@data);      chomp(@data);
     foreach my $item (@data) {      foreach my $item (@data) {
         if ($item =~ /^LANG=\"([^\"]*)\"/) {          if ($item =~ /^\Q$langvar\E=\"([^\"]*)\"/) {
             my $default = $1;              my $default = $1;
             if ($default ne 'en_US.UTF-8') {              if ($default ne 'en_US.UTF-8') {
                 if ($distro =~ /^debian/) {                  if ($distro =~ /^debian/) {
                     $command = 'dpkg-reconfigure locales';                      $command = 'dpkg-reconfigure locales';
                 } elsif ($distro =~ /^ubuntu/) {                  } elsif ($distro =~ /^ubuntu/) {
                     $command = 'sudo set-language-env -E';                       $command = 'sudo set-language-env -E'; 
                   } elsif ($distro =~ /^(suse|sles)/) {
                       $command = 'yast language'; 
                 } else {                  } else {
                     $command = 'system-config-language';                      $command = 'system-config-language';
                 }                  }
Line 384  sub check_required { Line 393  sub check_required {
         }          }
     }      }
     ($recommended{'firewall'},$apachefw) = &chkfirewall($distro);      ($recommended{'firewall'},$apachefw) = &chkfirewall($distro);
     ($recommended{'runlevels'},$tostop) = &chkconfig($distro);      ($recommended{'runlevels'},$tostop) = &chkconfig($distro,$instdir);
     $recommended{'apache'} = &chkapache($distro,$instdir);      $recommended{'apache'} = &chkapache($distro,$instdir);
     $recommended{'stopsrvcs'} = &chksrvcs($distro,$tostop);      $recommended{'stopsrvcs'} = &chksrvcs($distro,$tostop);
     ($recommended{'download'},$downloadstatus,$filetouse,$production,$testing)       ($recommended{'download'},$downloadstatus,$filetouse,$production,$testing) 
Line 440  sub check_mysql_running { Line 449  sub check_mysql_running {
 }  }
   
 sub chkconfig {  sub chkconfig {
     my ($distro) = @_;      my ($distro,$instdir) = @_;
     my (%needfix,%tostop);      my (%needfix,%tostop);
     my $checker_bin = '/sbin/chkconfig';      my $checker_bin = '/sbin/chkconfig';
     my %daemon = (      my %daemon = (
Line 457  sub chkconfig { Line 466  sub chkconfig {
         @norunlevels = qw/0 2 1 6/;          @norunlevels = qw/0 2 1 6/;
         $daemon{'mysql'} = 'mysql';          $daemon{'mysql'} = 'mysql';
         $daemon{'apache'} = 'apache2';          $daemon{'apache'} = 'apache2';
           $daemon{'ntp'}    = 'ntp';
         if ($distro =~ /^(suse|sles)9/) {          if ($distro =~ /^(suse|sles)9/) {
             $daemon{'apache'} = 'apache';              $daemon{'apache'} = 'apache';
         }          }
Line 532  sub chkconfig { Line 542  sub chkconfig {
             $major = $version;              $major = $version;
         }          }
         if ($major > 10) {          if ($major > 10) {
             $needfix{'insserv'} = &check_SuSEfirewall2_setup();              if (&check_SuSEfirewall2_setup($instdir)) {
                   $needfix{'insserv'} = 1;
               }
         }          }
     }      }
     return (\%needfix,\%tostop);      return (\%needfix,\%tostop);
Line 578  sub chkapache { Line 590  sub chkapache {
     my ($distro,$instdir) = @_;      my ($distro,$instdir) = @_;
     my $fixapache = 1;      my $fixapache = 1;
     if ($distro =~ /^(debian|ubuntu)/) {      if ($distro =~ /^(debian|ubuntu)/) {
         if (!-e "$instdir/apache2.conf") {          if (!-e "$instdir/debian-ubuntu/apache2.conf") {
             $fixapache = 0;              $fixapache = 0;
             print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";               print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n"; 
         } elsif ((-e "/etc/apache2/sites-available/loncapa") && (-e "$instdir/apache2.conf")) {          } elsif ((-e "/etc/apache2/sites-available/loncapa") && (-e "$instdir/debian-ubuntu/apache2.conf")) {
             if (open(PIPE, "diff --brief $instdir/apache2.conf /etc/apache2/sites-available/loncapa |")) {              if (open(PIPE, "diff --brief $instdir/debian-ubuntu/apache2.conf /etc/apache2/sites-available/loncapa |")) {
                 my $diffres = <PIPE>;                  my $diffres = <PIPE>;
                 close(PIPE);                  close(PIPE);
                 chomp($diffres);                  chomp($diffres);
Line 601  sub chkapache { Line 613  sub chkapache {
     } elsif ($distro =~ /^(?:suse|sles)([\d\.]+)$/) {      } elsif ($distro =~ /^(?:suse|sles)([\d\.]+)$/) {
         my $apache = 'apache';          my $apache = 'apache';
         if ($1 >= 10) {          if ($1 >= 10) {
             my $apache = 'apache2';              $apache = 'apache2';
           }
           if (!-e "$instdir/sles-suse/default-server.conf") {
               $fixapache = 0;
               print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";
           } elsif ((-e "/etc/$apache/default-server.conf") && (-e "$instdir/sles-suse/default-server.conf")) {
               if (open(PIPE, "diff --brief $instdir/sles-suse/default-server.conf /etc/$apache/default-server.conf |")) {
                   my $diffres = <PIPE>;
                   close(PIPE);
                   chomp($diffres);
                   unless ($diffres) {
                       $fixapache = 0;
                   }
               }
         }          }
         if (!-e "$instdir/default-server.conf") {      } elsif ($distro eq 'rhes4') {
           if (!-e "$instdir/rhes4/httpd.conf") {
             $fixapache = 0;              $fixapache = 0;
             print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";              print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";
         } elsif ((-e "/etc/$apache/default-server.conf") && (-e "$instdir/default-server.conf")) {          } elsif ((-e "/etc/httpd/conf/httpd.conf") && (-e "$instdir/rhes4/httpd.conf")) {
             if (open(PIPE, "diff --brief $instdir/default-server.conf /etc/$apache/default-server.conf |")) {              if (open(PIPE, "diff --brief $instdir/rhes4/httpd.conf /etc/httpd/conf/httpd.conf |")) {
                 my $diffres = <PIPE>;                  my $diffres = <PIPE>;
                 close(PIPE);                  close(PIPE);
                 chomp($diffres);                  chomp($diffres);
Line 617  sub chkapache { Line 643  sub chkapache {
             }              }
         }          }
     } else {      } else {
         if (!-e "$instdir/httpd.conf") {          if (!-e "$instdir/centos-rhes-fedora-sl/httpd.conf") {
             $fixapache = 0;              $fixapache = 0;
             print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";              print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";
         } elsif ((-e "/etc/httpd/conf/httpd.conf") && (-e "$instdir/httpd.conf")) {          } elsif ((-e "/etc/httpd/conf/httpd.conf") && (-e "$instdir/centos-rhes-fedora-sl/httpd.conf")) {
             if (open(PIPE, "diff --brief $instdir/httpd.conf /etc/httpd/conf/httpd.conf |")) {              if (open(PIPE, "diff --brief $instdir/centos-rhes-fedora-sl/httpd.conf /etc/httpd/conf/httpd.conf |")) {
                 my $diffres = <PIPE>;                  my $diffres = <PIPE>;
                 close(PIPE);                  close(PIPE);
                 chomp($diffres);                  chomp($diffres);
Line 652  sub chksrvcs { Line 678  sub chksrvcs {
             chomp($daemonrunning);              chomp($daemonrunning);
             close(PIPE);              close(PIPE);
             if ($daemonrunning) {              if ($daemonrunning) {
                 $stopsrvcs{$service} = 1;                  if ($service eq 'memcached') { 
                       unless ($daemonrunning =~ m{^www[^/]+\Q/usr/sbin/memcached -m 400 -v\E$}) {
                           $stopsrvcs{$service} = 1;
                       }
                   } else {
                       $stopsrvcs{$service} = 1;
                   }
             }              }
         }          }
     }       }
     return \%stopsrvcs;      return \%stopsrvcs;
 }  }
   
Line 928  sub get_mysql_password { Line 960  sub get_mysql_password {
 sub check_SuSEfirewall2_setup {  sub check_SuSEfirewall2_setup {
     my ($instdir) = @_;      my ($instdir) = @_;
     my $need_override = 1;      my $need_override = 1;
     if ((-e "/etc/insserv/overrides/SuSEfirewall2_setup") && (-e "$instdir/SuSEfirewall2_setup")) {      if ((-e "/etc/insserv/overrides/SuSEfirewall2_setup") && (-e "$instdir/sles-suse/SuSEfirewall2_setup")) {
         if (open(PIPE, "diff --brief $instdir/SuSEfirewall2_setup /etc/insserv/overrides/SuSEfirewall2_setup  |")) {          if (open(PIPE, "diff --brief $instdir/sles-suse/SuSEfirewall2_setup /etc/insserv/overrides/SuSEfirewall2_setup  |")) {
             my $diffres = <PIPE>;              my $diffres = <PIPE>;
             close(PIPE);              close(PIPE);
             chomp($diffres);              chomp($diffres);
Line 1270  if ($callsub{'firewall'}) { Line 1302  if ($callsub{'firewall'}) {
 if ($callsub{'stopsrvcs'}) {  if ($callsub{'stopsrvcs'}) {
     &kill_extra_services($distro,$recommended->{'stopsrvcs'});      &kill_extra_services($distro,$recommended->{'stopsrvcs'});
 } else {  } else {
     &print_and_log(&mt('Skipping stopping unnecessary service ([_1] daemon).',"'cups'")."\n");      &print_and_log(&mt('Skipping stopping unnecessary service ([_1] daemons).',"'cups','memcached'")."\n");
 }  }
   
 my ($have_tarball,$updateshown);  my ($have_tarball,$updateshown);
Line 1472  sub kill_extra_services { Line 1504  sub kill_extra_services {
                             if (($distro =~ /^ubuntu/) && ($version <= 8)) {                              if (($distro =~ /^ubuntu/) && ($version <= 8)) {
                                 $daemon = 'cupsys';                                  $daemon = 'cupsys';
                             }                              }
                           } elsif ($distro =~ /^(?:suse|sles)/) {
                               $daemon = 'cups';
                         }                          }
                     }                      }
             &print_and_log(`/etc/init.d/$daemon stop`);              &print_and_log(`/etc/init.d/$daemon stop`);
Line 1653  sub copy_apache2_debconf { Line 1687  sub copy_apache2_debconf {
     if (-e "$apache2_sites_available_dir/loncapa") {      if (-e "$apache2_sites_available_dir/loncapa") {
         copy("$apache2_sites_available_dir/loncapa","$apache2_sites_available_dir/loncapa.original");          copy("$apache2_sites_available_dir/loncapa","$apache2_sites_available_dir/loncapa.original");
     }      }
     copy("$instdir/apache2.conf","$apache2_sites_available_dir/loncapa");      copy("$instdir/debian-ubuntu/apache2.conf","$apache2_sites_available_dir/loncapa");
     chmod(0444,"$apache2_sites_available_dir/loncapa");      chmod(0444,"$apache2_sites_available_dir/loncapa");
     symlink("$apache2_sites_available_dir/loncapa","$apache2_sites_enabled_dir/000-default");      symlink("$apache2_sites_available_dir/loncapa","$apache2_sites_enabled_dir/000-default");
     my $apache2_mods_enabled_dir = '/etc/apache2/mods-enabled';      my $apache2_mods_enabled_dir = '/etc/apache2/mods-enabled';
Line 1683  sub copy_apache2_suseconf { Line 1717  sub copy_apache2_suseconf {
     if (!-e "/etc/apache2/default-server.conf.original") {      if (!-e "/etc/apache2/default-server.conf.original") {
         copy "/etc/apache2/default-server.conf","/etc/apache2/default-server.conf.original";          copy "/etc/apache2/default-server.conf","/etc/apache2/default-server.conf.original";
     }      }
     copy "$instdir/default-server.conf","/etc/apache2/default-server.conf";      copy "$instdir/sles-suse/default-server.conf","/etc/apache2/default-server.conf";
     chmod(0444,"/etc/apache2/default-server.conf");      chmod(0444,"/etc/apache2/default-server.conf");
     # Make symlink for conf directory (included in loncapa_apache.conf)      # Make symlink for conf directory (included in loncapa_apache.conf)
     my $can_symlink = (eval { symlink('/etc/apache2','/srv/www/conf'); }, $@ eq '');      my $can_symlink = (eval { symlink('/etc/apache2','/srv/www/conf'); }, $@ eq '');
Line 1710  sub copy_apache2_conf_files { Line 1744  sub copy_apache2_conf_files {
     if (!-e "/etc/apache2/uid.conf.original") {      if (!-e "/etc/apache2/uid.conf.original") {
         copy "/etc/apache2/uid.conf","/etc/apache2/uid.conf.original";          copy "/etc/apache2/uid.conf","/etc/apache2/uid.conf.original";
     }      }
     copy "$instdir/uid.conf","/etc/apache2/uid.conf";      copy "$instdir/sles-suse/uid.conf","/etc/apache2/uid.conf";
     chmod(0444,"/etc/apache2/uid.conf");      chmod(0444,"/etc/apache2/uid.conf");
 }  }
   
Line 1725  sub copy_sysconfig_apache2_file { Line 1759  sub copy_sysconfig_apache2_file {
     if (!-e "/etc/sysconfig/apache2.original") {      if (!-e "/etc/sysconfig/apache2.original") {
         copy "/etc/sysconfig/apache2","/etc/sysconfig/apache2.original";          copy "/etc/sysconfig/apache2","/etc/sysconfig/apache2.original";
     }      }
     copy "$instdir/sysconfig_apache2","/etc/sysconfig/apache2";      copy "$instdir/sles-suse/sysconfig_apache2","/etc/sysconfig/apache2";
     chmod(0444,"/etc/sysconfig/apache2");      chmod(0444,"/etc/sysconfig/apache2");
 }  }
   
Line 1748  sub update_SuSEfirewall2_setup { Line 1782  sub update_SuSEfirewall2_setup {
     } elsif (!-e  "/etc/insserv/overrides/SuSEfirewall2_setup.original") {      } elsif (!-e  "/etc/insserv/overrides/SuSEfirewall2_setup.original") {
         copy "/etc/insserv/overrides/SuSEfirewall2_setup","/etc/insserv/overrides/SuSEfirewall2_setup.original"          copy "/etc/insserv/overrides/SuSEfirewall2_setup","/etc/insserv/overrides/SuSEfirewall2_setup.original"
     }      }
     copy "$instdir/SuSEfirewall2_setup","/etc/insserv/overrides/SuSEfirewall2_setup";      copy "$instdir/sles-suse/SuSEfirewall2_setup","/etc/insserv/overrides/SuSEfirewall2_setup";
     chmod(0444,"/etc/insserv/overrides/SuSEfirewall2_setup");      chmod(0444,"/etc/insserv/overrides/SuSEfirewall2_setup");
 }  }
   
Line 1775  sub get_iptables_rules { Line 1809  sub get_iptables_rules {
     }      }
     my $ask_to_enable;      my $ask_to_enable;
     if (-e "/etc/iptables.loncapa.rules") {      if (-e "/etc/iptables.loncapa.rules") {
         if (open(PIPE, "diff --brief $instdir/debian/iptables.loncapa.rules /etc/iptables.loncapa.rules |")) {          if (open(PIPE, "diff --brief $instdir/debian-ubuntu/iptables.loncapa.rules /etc/iptables.loncapa.rules |")) {
             my $diffres = <PIPE>;              my $diffres = <PIPE>;
             close(PIPE);              close(PIPE);
             chomp($diffres);              chomp($diffres);
Line 1786  sub get_iptables_rules { Line 1820  sub get_iptables_rules {
             print &mt('Error: unable to open [_1] to compare contents with LON-CAPA supplied file.','/etc/iptables.loncapa.rules')."\n";              print &mt('Error: unable to open [_1] to compare contents with LON-CAPA supplied file.','/etc/iptables.loncapa.rules')."\n";
         }          }
     } else {      } else {
         if (-e "$instdir/debian/iptables.loncapa.rules") {          if (-e "$instdir/debian-ubuntu/iptables.loncapa.rules") {
             copy "$instdir/debian/iptables.loncapa.rules","/etc/iptables.loncapa.rules";              copy "$instdir/debian-ubuntu/iptables.loncapa.rules","/etc/iptables.loncapa.rules";
             chmod(0600,"/etc/iptables.loncapa.rules");              chmod(0600,"/etc/iptables.loncapa.rules");
         }          }
     }      }
     if (-e "/etc/iptables.loncapa.rules") {      if (-e "/etc/iptables.loncapa.rules") {
         if (-e "/etc/network/if-pre-up.d/iptables") {          if (-e "/etc/network/if-pre-up.d/iptables") {
             if (open(PIPE, "diff --brief $instdir/debian/iptables /etc/network/if-pre-up/iptables |")) {              if (open(PIPE, "diff --brief $instdir/debian-ubuntu/iptables /etc/network/if-pre-up/iptables |")) {
                 my $diffres = <PIPE>;                  my $diffres = <PIPE>;
                 close(PIPE);                  close(PIPE);
                 chomp($diffres);                  chomp($diffres);
Line 1804  sub get_iptables_rules { Line 1838  sub get_iptables_rules {
                 print &mt('Error: unable to open [_1] to compare contents with LON-CAPA supplied file.','/etc/network/if-pre-up.d/iptables')."\n";                  print &mt('Error: unable to open [_1] to compare contents with LON-CAPA supplied file.','/etc/network/if-pre-up.d/iptables')."\n";
             }              }
         } else {          } else {
             copy "$instdir/debian/iptables","/etc/network/if-pre-up.d/iptables";              copy "$instdir/debian-ubuntu/iptables","/etc/network/if-pre-up.d/iptables";
             chmod(0755,"/etc/network/if-pre-up.d/iptables");              chmod(0755,"/etc/network/if-pre-up.d/iptables");
             print_and_log(&mt('Installed script "[_1]" to add iptables rules to block all ports except 22, 80, and 443 when network is enabled during boot.','/etc/network/if-pre-up.d/iptables'));              print_and_log(&mt('Installed script "[_1]" to add iptables rules to block all ports except 22, 80, and 443 when network is enabled during boot.','/etc/network/if-pre-up.d/iptables'));
             $ask_to_enable = 1;              $ask_to_enable = 1;

Removed from v.1.6  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>