Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/git-tools
authorAdam Dickmeiss <adam@indexdata.dk>
Wed, 27 Jun 2012 09:25:16 +0000 (11:25 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Wed, 27 Jun 2012 09:25:16 +0000 (11:25 +0200)
aptcheck/aptcheck.pl
id-release
id-rpm-build/upload-rpms.sh

index 7801291..3866de9 100755 (executable)
@@ -76,7 +76,7 @@ for my $pline ( split("\n",$restplines) ) {
             print "found $pname, first version $pver\n" if $debug>1;
         } else {
             my $bver = $restrpkgs{$pname};
-            `dpkg --compare-versions $bver lt $pver`;
+            `dpkg --compare-versions "$bver" lt "$pver" `;
             if ( ! $? ) {
                 print "found $pname, better version $pver (better than $bver)\n"
                     if $debug>1;
@@ -91,8 +91,8 @@ for my $pline ( split("\n",$restplines) ) {
     }
 }
 
+print "got " . scalar(keys(%restrpkgs)) . " restricted packages\n" if $debug;
 if ( $debug >1 ) {
-    print "got " . scalar(keys(%restrpkgs)) . " restricted packages\n";
     for $pname ( sort (keys(%restrpkgs)) ) {
         print "  $pname " . $restrpkgs{$pname} . "\n";
     }
@@ -111,6 +111,31 @@ my $sectot = 0;
 my $owntot = 0;
 my $mantot = 0;
 my $normtot = 0;
+my %updlinks;
+
+# Pending modification dates
+my %olddates;  # Read in from the file
+my %newdates;  # To be written in the new version of the file
+my $datefilename = "aptcheck.data";
+my $dateoldfilename = "aptcheck.old";
+my $thisdate = "*"; # indicates really old stuff
+if ( -f $datefilename ) {
+  print "Reading dates from $datefilename\n" if $debug;
+  open F, $datefilename or die "Could not open date file $datefilename: $!";
+  while (<F>) {
+    chop();
+    my ($pkg, $date) = split;
+    next unless $pkg;  # skip empty lines
+    $olddates{$pkg} = $date;
+    print "Date for '$pkg' is '$date' \n" if $debug;
+  }
+  close F;
+  $thisdate = `date +%F`;
+  chomp($thisdate);
+} else {
+  print "No datefile $datefilename found, starting from scratch\n";
+}
+
 
 my $table = "<table>\n";
 
@@ -124,6 +149,7 @@ for my $hline ( split("\n",$hostlist) ) {
     my $cmd1 = "apt-cache -q policy " . join(" ",sort(keys(%restrpkgs)));
     my $cmd2 = "apt-get upgrade -s -o 'Debug::NoLocking=true' ";
     # Note, do not append -qq, we want some output even when nothing to do
+    print "ssh -q $H \"$cmd1 ; $cmd2 \" 2>/dev/null" if ($debug>1);
     my $apt = `ssh -q $H "$cmd1 ; $cmd2 " 2>/dev/null`;
     if ( !$apt ) {
         $table .= "<tr><td colspan='3'>&nbsp;</td></tr>\n";
@@ -151,7 +177,7 @@ for my $hline ( split("\n",$hostlist) ) {
                  ( $restrinst ne $bver ) ) { 
                 # if different, it is a regular apt upgrade, and will be seen
                 # later. AND we want to have a different version in our repo
-                `dpkg --compare-versions $bver lt $restrinst`;
+                `dpkg --compare-versions "$bver" lt "$restrinst" `;
                 if ( $? ) { # It was not a downgrade 
                             # manual packages may be ahead of the repo!
                     $mantot++;
@@ -163,6 +189,13 @@ for my $hline ( split("\n",$hostlist) ) {
                     $det .= "<td>&nbsp;&nbsp;$restrname <b>(M)</b></td>";
                     $det .= "<td>". strdiff($bver,$restrinst)."</td>";
                     $det .= "<td>". strdiff($restrinst,$bver)."</td>";
+                    my $datekey = "$H:$restrname";
+                    if ( $olddates{$datekey} ) {
+                        $newdates{$datekey} = $olddates{$datekey};
+                    } else {
+                        $newdates{$datekey} = $thisdate;
+                    }
+                    $det .= "<td>" . $newdates{$datekey} . "</td>";
                     $det .= "</tr>\n";
                     my $key = "$restrname";
                     if ( !$summary{$key} ) {
@@ -209,7 +242,15 @@ for my $hline ( split("\n",$hostlist) ) {
         $det .= "</td> ";
         $det .= "<td>$cur</td> ";
         $det .= "<td>$new</td> ";
+        my $datekey = "$H:$pkg";
+        if ( $olddates{$datekey} ) {
+            $newdates{$datekey} = $olddates{$datekey};
+        } else {
+            $newdates{$datekey} = $thisdate;
+        }
+        $det .= "<td>" . $newdates{$datekey} . "</td>";
         $det .= "</tr>\n";
+
     }
     $table .= "<tr><td colspan='3'>&nbsp;</td></tr>\n";
     $table .= "<tr><td colspan='3'><a name='$H'><b><u>$H</u></b></a> &nbsp;\n";
@@ -227,6 +268,7 @@ for my $hline ( split("\n",$hostlist) ) {
     # Mostly because the host names would not make proper WikiWords
     $updlink =~ s/Bugzilla3Updates/BugzillaUpdates/; 
     $updlink =~ s/Opencontent-solrUpdates/OpenContentSolrUpdates/; 
+    $updlinks{$H} = $updlink;
     $table .= "&nbsp;<a href='$updlink' >Upd</a>";
     $table .= "</td></tr>\n";
     $table .= "<tr><td>$hostcomments{$H}</td></tr>\n"
@@ -237,6 +279,16 @@ for my $hline ( split("\n",$hostlist) ) {
 }
 $table .= "</table>\n";
 
+# Save the date file
+`mv -f $datefilename $dateoldfilename`;
+open F, ">$datefilename" or die "Could not open date file $datefilename for writing";
+for  my $k (keys(%newdates) ) {
+    print F "$k " . $newdates{$k}. "\n";
+    print "date for '$k' '" . $newdates{$k}. "'\n" if $debug;
+}
+close F
+  or die "Could not close date file $datefilename: $!";
+
 # Page header
 my $outfile = "/tmp/aptcheck.html";
 open F, ">$outfile"
@@ -264,7 +316,8 @@ if ( $sectot ) {
         "&nbsp;/&nbsp;" .  scalar(keys(%secpkgs)) . "&nbsp;/&nbsp;$sectot </td>\n" ;
     print F "<td>";
     for my $HH ( sort(keys(%sechosts)) ) {
-        print F "<a href='#$HH'><b>$HH</b></a> ";
+        my $upd = $updlinks{$HH} || "#" ;
+        print F "<a href='#$HH'><b>$HH</b></a><a href='$upd'>,</a> ";
     }
     print F "</td>";
     print F "<td>";
@@ -279,7 +332,9 @@ if ( $owntot ) {
         "&nbsp;/&nbsp;" .  scalar(keys(%ownpkgs)) . "&nbsp;/&nbsp;$owntot </td>\n" ;
     print F "<td>";
     for my $HH ( sort(keys(%ownhosts)) ) {
-        print F "<a href='#$HH'><b>$HH</b></a> ";
+        my $upd = $updlinks{$HH} || "#" ;
+        print F "<a href='#$HH'><b>$HH</b></a><a href='$upd'>,</a> ";
+        #print F "<a href='#$HH'><b>$HH</b></a> ";
     }
     print F "</td>";
     print F "<td>";
@@ -294,7 +349,9 @@ if ( $mantot ) {
         "&nbsp;/&nbsp;" .  scalar(keys(%manpkgs)) . "&nbsp;/&nbsp;$mantot </td>\n" ;
     print F "<td>";
     for my $HH ( sort(keys(%manhosts)) ) {
-        print F "<a href='#$HH'><b>$HH</b></a> ";
+        my $upd = $updlinks{$HH} || "#" ;
+        print F "<a href='#$HH'><b>$HH</b></a><a href='$upd'>,</a> ";
+        #print F "<a href='#$HH'><b>$HH</b></a> ";
     }
     print F "</td>";
     print F "<td>";
@@ -309,7 +366,9 @@ if ( $normtot ) {
         "&nbsp;/&nbsp;" .  scalar(keys(%normpkgs)) . "&nbsp;/&nbsp;$normtot </td>\n" ;
     print F "<td>";
     for my $HH ( sort(keys(%normhosts)) ) {
-        print F "<a href='#$HH'><b>$HH</b></a> ";
+        my $upd = $updlinks{$HH} || "#" ;
+        print F "<a href='#$HH'><b>$HH</b></a><a href='$upd'>,</a> ";
+        #print F "<a href='#$HH'><b>$HH</b></a> ";
     }
     print F "</td>";
     print F "<td>";
@@ -323,7 +382,10 @@ if ( %skiphosts ) {
     print F "<tr><td>Skipped " . scalar(keys(%skiphosts)) . "</td>\n";
     print F "<td colspan='2'>";
     for my $HH ( sort(keys(%skiphosts)) ) {
-        print F "<a href='#$HH'><b>$HH</b></a> ";
+        my $upd = $updlinks{$HH} ||
+                  $wikilink . ucfirst($HH) . "Updates" . $year;
+        print F "<a href='#$HH'><b>$HH</b></a><a href='$upd'>,</a> ";
+        #print F "<a href='#$HH'><b>$HH</b></a> ";
     }
     print F "</td></tr>\n";
 }
@@ -332,7 +394,9 @@ if ( 1 ) {
     print F "<tr><td>Ok " . scalar(keys(%okhosts)) . "</td>\n";
     print F "<td colspan='2'>";
     for my $HH ( sort(keys(%okhosts)) ) {
-        print F "<a href='#$HH'><b>$HH</b></a> ";
+        my $upd = $updlinks{$HH} || "#" ;
+        print F "<a href='#$HH'><b>$HH</b></a><a href='$upd'>,</a> ";
+        #print F "<a href='#$HH'><b>$HH</b></a> ";
     }
     if ( !%okhosts ) {
         print F "<b>None at all!</b>";
@@ -377,6 +441,8 @@ for my $P ( sort(keys(%summary)) ) {
 }
 print F "</table>\n";
 
+print F "<p/>Packages marked with * are from the time before started to " .
+        "track package dates \n";
 print F "<p/>Produced " . `date`.
         " on " . `hostname` . " by " . `whoami` .
         "<br/>\n";
index 5345e19..bf56550 100755 (executable)
@@ -95,7 +95,7 @@ echo "git pull"
 echo "\$HOME/proj/git-tools/id-deb-build/mkdist.sh"
 echo "sudo cp $package-$version.tar.gz /usr/src/redhat/SOURCES/"
 echo "sudo rpmbuild -ba $spec"
-echo "# if successfully, upload"
+echo "# if successfully, scp the package to ftp.indexdata.dk (kebab)"
 echo "\$HOME/proj/git-tools/id-rpm-build/upload-rpms.sh $spec"
 echo ""
 echo "# on kebab run: sudo su; cd $HOME/proj/git-tools/update-archive; ./update-yum-archive.sh"
@@ -109,7 +109,7 @@ echo "git pull"
 echo "\$HOME/proj/git-tools/id-deb-build/mkdist.sh"
 echo "\$HOME/proj/git-tools/id-deb-build/id-mk-deb-src.sh"
 echo "sudo \$HOME/proj/git-tools/id-deb-build/id-pbuild.sh"
-echo "# if successfully, upload"
+echo "# if successfully, scp the package to ftp.indexdata.dk (kebab)"
 echo "\$HOME/proj/git-tools/id-deb-build/id-pbuild.sh --upload"
 echo ""
 echo "# on kebab run: sudo su; cd $HOME/proj/git-tools/update-archive; ./update-archive.sh"
index 0439825..ee83ce9 100755 (executable)
@@ -1,6 +1,6 @@
 PWD=`pwd`
 UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub}
-UPLOAD_HOST=${UPLOAD_HOST:=kebab.indexdata.com}
+UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk}
 DISTRO=${DISTRO:="centos/5.5"}
 specfile=$1
 if test ! -f ${specfile}; then