Diff for /loncom/build/check-rpms between versions 1.3 and 1.6

version 1.3, 2002/04/13 19:13:06 version 1.6, 2002/11/04 02:52:39
Line 3 Line 3
 # check-rpms, version 2.1.1  # check-rpms, version 2.1.1
 # Martin Siegert, SFU, siegert@sfu.ca, Feb 02  # Martin Siegert, SFU, siegert@sfu.ca, Feb 02
 #  #
   # documentation and minor patches,
   # Scott Harrison sharrison@users.sourceforge.net 2002
   
 =pod  =pod
   
 =head1 NAME  =head1 NAME
Line 87  use Getopt::Long; Line 90  use Getopt::Long;
   
 my $retval = &GetOptions("verbose|v","lm|list-missing","lq|list-questionable",  my $retval = &GetOptions("verbose|v","lm|list-missing","lq|list-questionable",
                          "dir|d=s","ftp:s","noftp","download|dl","recheck|r",                           "dir|d=s","ftp:s","noftp","download|dl","recheck|r",
                          "nk|no-kernel","update","c=s");                           "nk|no-kernel","update","c=s","rpmuser=s");
   
 =pod  =pod
   
Line 200  example configuration file is given belo Line 203  example configuration file is given belo
 is omitted, I<check-rpms> will use the default configuration  is omitted, I<check-rpms> will use the default configuration
 file I</usr/local/etc/check-rpms.conf>, if it exists.  file I</usr/local/etc/check-rpms.conf>, if it exists.
   
   =item B<--rpmuser> I<user name>
   
   Specifying $RPMUSER on the command line.
   
 =back  =back
   
 =head1 EXAMPLES  =head1 EXAMPLES
Line 294  Example configuration file: Line 301  Example configuration file:
   
  # $RPMUSER is the user name that check-rpms switches to for most of   # $RPMUSER is the user name that check-rpms switches to for most of
  # the script when run as root   # the script when run as root
  $RPMUSER = "joe";   $RPMUSER = "adminjoe";
   
  # $FTPSERVER and $FTPUPDATES are the hostname of a ftp server and the   # $FTPSERVER and $FTPUPDATES are the hostname of a ftp server and the
  # directory where RPM updates can be found without the <arch> directory.   # directory where RPM updates can be found without the <arch> directory.
Line 315  if ( -f $CONF) { Line 322  if ( -f $CONF) {
    $FTPUPDATES = $DEFFTPUPDATES;     $FTPUPDATES = $DEFFTPUPDATES;
 }  }
   
   if ($opt_rpmuser) {
      $DEFRPMUSER = $opt_rpmuser;
   }
   
 # check whether we are running as root  # check whether we are running as root
 if ($< == 0){  if ($< == 0){
    if (! $RPMUSER) {     if (! $RPMUSER) {
Line 384  if (defined $opt_ftp || $FTP) { Line 395  if (defined $opt_ftp || $FTP) {
    die "Either $RPMDIR does not exist or it does not contain any packages.\n";     die "Either $RPMDIR does not exist or it does not contain any packages.\n";
 }  }
   
   my $FTPSERVER_auth = $FTPSERVER;
   $FTPSERVER_auth =~ s/^(\w+)\:(\w+)\@/-u $1 -p $2 /;
   
 if ($recheck) {  if ($recheck) {
    $questionable=1;     $questionable=1;
 }  }
Line 392  if (defined $opt_update || defined $opt_ Line 406  if (defined $opt_update || defined $opt_
     $no_kernel=1;      $no_kernel=1;
 }  }
   
 $PROC = `grep -i athlon /proc/cpuinfo`;  $PROC = `grep -i "athlon\|amd" /proc/cpuinfo`;
 if ( ! "$PROC" ) {  if ( ! "$PROC" ) {
     $PROC = `uname -m`;      $PROC = `uname -m`;
     chomp($PROC);      chomp($PROC);
Line 553  for (@local_rpm_list) { Line 567  for (@local_rpm_list) {
     }      }
 }  }
   
   
 if ($recheck && @q_updates) {  if ($recheck && @q_updates) {
    if ($ftp) {         if ($ftp) {    
       for (@q_updates) {        for (@q_updates) {
Line 562  if ($recheck && @q_updates) { Line 577  if ($recheck && @q_updates) {
       if ($verbose) {        if ($verbose) {
          print "Getting questionable packages form $FTPSERVER ...\n";           print "Getting questionable packages form $FTPSERVER ...\n";
       }        }
       my $status = system("$FTPGET $FTPSERVER $RPMDIR @ftp_files");        my $status = system("$FTPGET $FTPSERVER_auth $RPMDIR @ftp_files");
       if ($status) {        if ($status) {
          if ($< == 0) {           if ($< == 0) {
             # if we are running as root exit to avoid symlink attacks, etc.              # if we are running as root exit to avoid symlink attacks, etc.
   print("DEBUG DEBUG $FTPGET $FTPSERVER_auth $RPMDIR @ftp_files");
             die "$FTPGET failed with status ", $status/256, ".\n";              die "$FTPGET failed with status ", $status/256, ".\n";
  } else {   } else {
             print STDERR "warning: $FTPGET failed with status ", $status/256, ".\n";              print STDERR "warning: $FTPGET failed with status ", $status/256, ".\n";
Line 607  if (@updates) { Line 623  if (@updates) {
        if ($verbose) {         if ($verbose) {
           print "starting downloads ... \n";            print "starting downloads ... \n";
        }         }
        my $status = system("$FTPGET $FTPSERVER $RPMDIR @ftp_files");         my $status = system("$FTPGET $FTPSERVER_auth $RPMDIR @ftp_files");
        if ($status) {         if ($status) {
           if ($< == 0) {            if ($< == 0) {
              # if we are running as root exit to avoid symlink attacks, etc.               # if we are running as root exit to avoid symlink attacks, etc.
Line 644  if (@q_updates && $questionable) { Line 660  if (@q_updates && $questionable) {
        }         }
        if ($verbose) {         if ($verbose) {
           print "starting downloads ... \n";            print "starting downloads ... \n";
           system("$FTPGET $FTPSERVER $$RPMDIR @ftp_files");            system("$FTPGET $FTPSERVER_auth $$RPMDIR @ftp_files");
           print "... done.\n";            print "... done.\n";
        } else {         } else {
           system("$FTPGET $FTPSERVER $$RPMDIR @ftp_files");            system("$FTPGET $FTPSERVER_auth $$RPMDIR @ftp_files");
        }         }
     }                 }           
 }  }
Line 678  sub ftp_download { Line 694  sub ftp_download {
        my ($arch) = m/[^ ]*-[^-]+-[^-]*\.(\w+)\.rpm$/;         my ($arch) = m/[^ ]*-[^-]+-[^-]*\.(\w+)\.rpm$/;
        push(@ftp_packages,"$FTPDIR/$arch/$_");         push(@ftp_packages,"$FTPDIR/$arch/$_");
     }      }
     my $status = system("$FTPGET $FTPSERVER $downloaddir @ftp_packages");      my $status = system("$FTPGET $FTPSERVER_auth $downloaddir @ftp_packages");
     return $status;      return $status;
 }  }
   

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


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