[LON-CAPA-cvs] cvs: loncom /build CHECKRPMS

raeburn raeburn at source.lon-capa.org
Sun Apr 9 10:54:02 EDT 2017


raeburn		Sun Apr  9 14:54:02 2017 EDT

  Modified files:              
    /loncom/build	CHECKRPMS 
  Log:
  - Fedora 22 and later use dnf instead of yum.
  
  
Index: loncom/build/CHECKRPMS
diff -u loncom/build/CHECKRPMS:1.16 loncom/build/CHECKRPMS:1.17
--- loncom/build/CHECKRPMS:1.16	Thu Dec  8 17:22:37 2011
+++ loncom/build/CHECKRPMS	Sun Apr  9 14:54:02 2017
@@ -3,7 +3,7 @@
 # The LearningOnline Network with CAPA
 # Checks status of RPM packages on system.
 #
-# $Id: CHECKRPMS,v 1.16 2011/12/08 17:22:37 raeburn Exp $
+# $Id: CHECKRPMS,v 1.17 2017/04/09 14:54:02 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -43,6 +43,7 @@
 The utility which is used to complete the check depends on the distro:
 
 fedora, rhel >= 5, centos, scientific - yum
+fedora >= 22 - dnf
 suse 9.X and sles9 - you
 suse 10.2,10.3,11.1,11.2,11.3,11.4,sles11 - zypper 
 sles10,suse10.1 - rug
@@ -92,10 +93,17 @@
 }
 
 my ($cmd,$send,$addsubj);
-if ($distro =~ /^fedora\d+$/) {
-    $cmd = 'yum update';
-    &prepare_msg($tmpfile,$cmd);
-    ($send,$addsubj) = &check_with_yum($tmpfile);
+if ($distro =~ /^fedora(\d+)$/) {
+    my $version =$1;
+    if ($version > 21) {
+        $cmd = 'dnf update';
+        &prepare_msg($tmpfile,$cmd);
+        ($send,$addsubj) = &check_with_dnf($tmpfile);
+    } else {
+        $cmd = 'yum update';
+        &prepare_msg($tmpfile,$cmd);
+        ($send,$addsubj) = &check_with_yum($tmpfile);
+    }
 } elsif ($distro =~ /^(suse|sles)9\.?\d?$/) {
     $cmd = 'you';
     &prepare_msg($tmpfile,$cmd);
@@ -245,6 +253,33 @@
     return ($sendflag,$append_to_subj);
 }
 
+sub check_with_dnf {
+    my ($tmpfile) = @_;
+    my $dnf = '/usr/bin/dnf';
+    my $sendflag = 0;
+    my $append_to_subj;
+
+    #
+    # Execute dnf command
+    my $command = $dnf.' check-update '.'>>'.$tmpfile;
+    system($command);
+
+    my $returnvalue = $?>>8;
+
+    #
+    # Determine status of dnf run
+    if (100 == $returnvalue) {
+        $sendflag = 1;
+        $append_to_subj = ' RPMS to upgrade';
+    } elsif (0 != $returnvalue) {
+        $sendflag = 1;
+        $append_to_subj = ' Error running RPM update script';
+    } else {
+        # dnf returned 0, so everything is up to date.
+    }
+    return ($sendflag,$append_to_subj);
+}
+
 sub check_with_up2date {
     my ($tmpfile) = @_;
     my $up2date = '/usr/bin/up2date-nox';




More information about the LON-CAPA-cvs mailing list