Sync changes from franck
authorJoerg Jaspert <joerg@debian.org>
Sun, 30 Oct 2016 11:50:13 +0000 (12:50 +0100)
committerJoerg Jaspert <joerg@debian.org>
Sun, 30 Oct 2016 11:50:13 +0000 (12:50 +0100)
.dotfiles/net:debian.org/host:fasolo/bin/do-removals
.dotfiles/net:debian.org/host:fasolo/lib/data.rb
.dotfiles/net:debian.org/host:fasolo/lib/input.rb
.dotfiles/net:debian.org/host:fasolo/lib/output.rb

index a3bf9ed..11d33ec 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/ruby
+#!/usr/bin/ruby2.1
 
 # Extract ftp-master todo lists from the ftp.debian.org buglist
 # Copyright (C) 2007 Joerg Jaspert <joerg@ganneff.de>
@@ -35,6 +35,7 @@ require "data.rb"
 $LOG = Logger.new(STDERR)
 #$LOG.level = Logger::DEBUG
 #$LOG.level = Logger::INFO
+#$LOG.level = Logger::WARN
 $LOG.level = Logger::ERROR
 
 # The following option lets it produce lines like
@@ -92,6 +93,7 @@ File.open("#{WWW}/removals.html", "w") do |f|
   end # if PROJECTB
 
   bugs.each do |bug|
+    $LOG.debug("=========================================================")
     # easy handle
     bugnum   = bug["bugnr"]
     p        = bug["package"]
@@ -106,7 +108,8 @@ File.open("#{WWW}/removals.html", "w") do |f|
 
     html.set_tags(tags)
 
-    $LOG.debug("Bug #{bugnum}")
+    $LOG.debug("Bug #{bugnum}, package #{p}")
+    known = true
 
     if PROJECTB
       # first we have to find out the data about the package
@@ -115,7 +118,7 @@ File.open("#{WWW}/removals.html", "w") do |f|
       # first find out the id for the suite the bug is against
       suite = db.suite(dist)
 
-      if  suite == 0
+      if suite == 0
         $LOG.warn("Broken suite #{suite} for package #{p}: #{dist}")
         next
       end
@@ -123,17 +126,26 @@ File.open("#{WWW}/removals.html", "w") do |f|
       # We should find out if we have a source or a binary package at this point
       helper = Array.new
 
+      if p.nil?
+        $LOG.warn("No package data found for bug #{bugnum} (#{reason})")
+        next
+      end # if p.nil?
+
       data = Pdata.new(db)
       p.each do |pa|
         data.add_package(pa, suite)
       end
-
       data.check_source_binaries(suite)
-
       data.check_source(suite)
-
       data.check_binaries(suite)
 
+      if not data.include?(p)
+        known = false
+      end
+    else # if PROJECTB
+      if not suitedata[dist].include?(p)
+        known = false
+      end # if suitedata[dist].include?(p)
     end # if PROJECTB
 
     # we have the data, lets print the info.
@@ -148,30 +160,12 @@ File.open("#{WWW}/removals.html", "w") do |f|
 
     f.puts html.originator(origin)
 
-    f.puts html.infolinks(bugnum, tags, p)
+    f.puts html.infolinks(bugnum, tags.join(" "), p.join)
 
     f.puts html.info_end
 
     f.puts html.subject(reason, dist, data.get_package_names(","), bugnum)
-
-    known = true
-    # do we know anything about the package?
-    if PROJECTB
-      if not data.include?(p)
-        known = false
-        # we dont know about the package
-        $LOG.info("No data found, possibly unparseable bug title for #{p} in #{bugnum}")
-        f.puts "No data found for this package, possibly unparseable bug title or package name misspelt."
-      end # if suitedata[dist].include?(p)
-    else # PROJECTB
-      if not suitedata[dist].include?(p)
-        known = false
-        # we dont know about the package
-        $LOG.info("No data found, possibly unparseable bug title for #{p} in #{bugnum}")
-        f.puts "No data found for this package, possibly unparseable bug title or package name misspelt."
-      end # if suitedata[dist].include?(p)
-    end # if PROJECTB
-
+    
     if known
       f.puts html.start_table
 
@@ -187,14 +181,15 @@ File.open("#{WWW}/removals.html", "w") do |f|
       f.puts " </table>"
       f.puts "</div>"
       f.puts html.dak_cmd(bugnum, arch, reason, data.get_package_names(" "), data.nosource?, dist, data.binarylist(p))
-    else
+    else # if known
+      # we don't know about the package
+      $LOG.info("No data found, possibly unparseable bug title for #{p} in #{bugnum}")
+      f.puts "No data found for this package, possibly unparseable bug title or package name misspelt."
       f.puts "Miau"
     end # if known
 
-    f.puts html.uploader(data.get_uploader)
+    f.puts html.uploader(data.get_uploader.join)
     f.puts " </div>"
-
-
     row_number += 1
   end # bugs.each
   f.puts "</div>"
index d6af91d..1a82f7f 100644 (file)
@@ -113,7 +113,7 @@ class Pdata
     $LOG.debug("Looking up information about the source")
     @data.each do |name, entry|
       next if name == "fakejj"
-      @db.query("SELECT s.source, s.version, \'source\', su.suite_name, c.name, m.name FROM source s, suite su, src_associations sa, files f, location l, component c, maintainer m WHERE s.source = ? AND su.id = sa.suite AND s.id = sa.source AND s.file = f.id AND f.location = l.id AND l.component = c.id AND s.maintainer = m.id AND su.id IN (?)", name, suite) do |row|
+      @db.query("SELECT s.source, s.version, \'source\', su.suite_name, c.name, m.name FROM source s, suite su, src_associations sa, files f, files_archive_map fm, component c, maintainer m WHERE s.source = ? AND su.id = sa.suite AND s.id = sa.source AND s.file = f.id AND f.id = fm.file_id AND fm.component_id = c.id AND s.maintainer = m.id AND su.id IN (?)", name, suite) do |row|
         @data["#{name}"]["binary"]["#{name}"] = Hash.new if @data["#{name}"]["binary"]["#{name}"].nil?
         @data["#{name}"]["binary"]["#{name}"]["versions"] = Array.new if @data["#{name}"]["binary"]["#{name}"]["versions"].nil?
         @data["#{name}"]["binary"]["#{name}"]["versions"] << row["version"] unless @data["#{name}"]["binary"]["#{name}"]["versions"].include?(row["version"])
@@ -134,7 +134,7 @@ class Pdata
     @data.each do |name, entry|
       if name == "fakejj"
         @faked.each do |pack|
-          @db.query("SELECT b.package, b.version, a.arch_string, su.suite_name, c.name, m.name FROM binaries b, architecture a, suite su, bin_associations ba, files f, location l, component c, maintainer m WHERE b.package = ? AND a.id = b.architecture AND su.id = ba.suite AND b.id = ba.bin AND b.file = f.id AND f.location = l.id AND l.component = c.id AND b.maintainer = m.id AND su.id IN (?)", pack, suite) do |row|
+          @db.query("SELECT b.package, b.version, a.arch_string, su.suite_name, c.name, m.name FROM binaries b, architecture a, suite su, bin_associations ba, files f, files_archive_map fm, component c, maintainer m WHERE b.package = ? AND a.id = b.architecture AND su.id = ba.suite AND b.id = ba.bin AND b.file = f.id AND f.id = fm.file_id AND fm.component_id = c.id AND b.maintainer = m.id AND su.id IN (?)", pack, suite) do |row|
             @data["#{name}"]["binary"]["#{row["package"]}"] = Hash.new if @data["#{name}"]["binary"]["#{row["package"]}"].nil?
             @data["#{name}"]["binary"]["#{row["package"]}"]["versions"] = Array.new if @data["#{name}"]["binary"]["#{row["package"]}"]["versions"].nil?
             @data["#{name}"]["binary"]["#{row["package"]}"]["versions"] << row["version"] unless @data["#{name}"]["binary"]["#{row["package"]}"]["versions"].include?(row["version"])
@@ -145,7 +145,7 @@ class Pdata
         end
       else
         @helper.each do |p|
-          @db.query("SELECT b.package, b.version, a.arch_string, su.suite_name, c.name, m.name FROM binaries b, architecture a, suite su, bin_associations ba, files f, location l, component c, maintainer m WHERE b.package = ? AND a.id = b.architecture AND su.id = ba.suite AND b.id = ba.bin AND b.file = f.id AND f.location = l.id AND l.component = c.id AND b.maintainer = m.id AND su.id IN (?)", p, suite) do |row|
+          @db.query("SELECT b.package, b.version, a.arch_string, su.suite_name, c.name, m.name FROM binaries b, architecture a, suite su, bin_associations ba, files f, files_archive_map fm, component c, maintainer m WHERE b.package = ? AND a.id = b.architecture AND su.id = ba.suite AND b.id = ba.bin AND b.file = f.id AND f.id = fm.file_id AND fm.component_id = c.id AND b.maintainer = m.id AND su.id IN (?)", p, suite) do |row|
             @data["#{name}"]["binary"]["#{row["package"]}"] = Hash.new if @data["#{name}"]["binary"]["#{row["package"]}"].nil?
             @data["#{name}"]["binary"]["#{row["package"]}"]["name"] = row["package"]
             @data["#{name}"]["binary"]["#{row["package"]}"]["versions"] = Array.new if @data["#{name}"]["binary"]["#{row["package"]}"]["versions"].nil?
index 307f16f..6d4bd65 100644 (file)
@@ -41,7 +41,7 @@ def get_bug_data(host, port, server, ns, query, drv)
           $LOG.debug("NO RE hit")
           reason = ""
           arch = ""
-          pack = ""
+          pack = nil
         end
 
         dist="unstable"
index d76d1b8..8745251 100644 (file)
@@ -226,7 +226,7 @@ class Removal_html
   end
 
   def pts(package)
-    "<div class=\"pts\"> <a href=\"http://packages.qa.debian.org/#{package}\">PTS page</a></div>"
+    "<div class=\"pts\"> <a href=\"http://tracker.debian.org/#{package}\">PTS page</a></div>"
   end
 
   def originator(origin)
@@ -242,7 +242,7 @@ class Removal_html
       text+="</a>"
     end
     text+="</span><span class=\"pts\">"
-    text+="<a href=\"http://packages.qa.debian.org/#{package}\">PTS page</a></span>"
+    text+="<a href=\"http://tracker.debian.org/#{package}\">PTS page</a></span>"
     text+="</div>"
     text
   end