[Collab-qa-commits] r436 - archive-rebuilds
lucas at alioth.debian.org
lucas at alioth.debian.org
Tue Sep 18 05:39:30 UTC 2007
Author: lucas
Date: 2007-09-18 05:39:30 +0000 (Tue, 18 Sep 2007)
New Revision: 436
Added:
archive-rebuilds/log-summary.rb
Removed:
archive-rebuilds/agf.rb
Log:
renamed agf to log-summary
Deleted: archive-rebuilds/agf.rb
===================================================================
--- archive-rebuilds/agf.rb 2007-09-18 05:39:06 UTC (rev 435)
+++ archive-rebuilds/agf.rb 2007-09-18 05:39:30 UTC (rev 436)
@@ -1,121 +0,0 @@
-#!/usr/bin/ruby -w
-# Parse log files and extract info about packages that failed to build
-# because of dependancies problems.
-#
-# Usage:
-# (in the directory containing all the logs:)
-# agf.rb <aptgf|ld> <file with TODO lines>
-
-def gcc_getlines(lines, file)
- g = lines.grep(/\d: error: /)
- ig = lines.index(g[0])
- ih = ig - 1
- while (ih > 0)
- if lines[ih] =~ /^\s+from / or
- lines[ih] =~ /^In file included from / or
- lines[ih] =~ /: In (member )?function / or
- lines[ih] =~ /: warning: / or
- lines[ih] =~ /: In constructor / or
- lines[ih] =~ /^\s*\^+\s*$/ or
- lines[ih] =~ / is deprecated. Use/ or
- lines[ih] =~ /: At global scope:/
- ih -= 1
- else
- if lines[ih] !~ /^\s*(gcc|cc|g\+\+|c\+\+|nasm)/
-# puts "FNML: #{lines[ih]}"
- end
- ih += 1
- break
- end
- end
- return lines[ih..ig]
-end
-
-def ld_getlines(lines, file)
- g = lines.grep(/ld returned 1 exit status$/)
- ig = lines.index(g[0])
- ih = ig - 1
- while (ih > 0)
- if lines[ih] =~ /undefined reference to/ or
- lines[ih] =~ / In function / or
- lines[ih] =~ / final link failed:/ or
- lines[ih] =~ /: first defined here/ or
- lines[ih] =~ /: cannot find / or
- lines[ih] =~ /: unknown architecture of input file/ or
- lines[ih] =~ /: hidden symbol / or
- lines[ih] =~ /: multiple definition of / or
- lines[ih] =~ /: warning: .* is deprecated; use .* instead/ or
- lines[ih] =~ / cannot be preloaded: ignored./
- ih -= 1
- else
- if lines[ih] !~ /^(gcc|cc|g\+\+|ld|c\+\+)/
-# puts "FNML: #{lines[ih]}"
- end
- ih = ih += 1
- break
- end
- end
- if ih == ig
- puts "NO LINES FOUND #{file}"
- exit 1
- end
- return lines[ih...ig]
-end
-
-def aptgf_getlines(lines, file)
- if not (g = lines.grep(/^The following packages have unmet dependencies:$/)).empty?
- bps = lines.index(g[0]) + 1
- g = lines.grep(/^E: Broken packages$/)
- agf = lines.index(g[0]) - 1
- buglog = lines[bps..agf]
- return buglog
- elsif not (g = lines.grep(/^E: Couldn't find package /)).empty?
- return g
- elsif not (g = lines.grep(/^E: Package .* has no installation candidate$/)).empty?
- return g
- elsif not (g = lines.grep(/^Errors were encountered while processing:$/)).empty?
- bps = lines.index(g[0])
- g = lines.grep(/^apt-get failed.$/)
- agf = lines.index(g[0]) - 1
- buglog = lines[bps..agf]
- return buglog
- else
- puts "NO LINES FOUND #{file}"
- exit 1
- end
-end
-
-type = ARGV[0]
-#todo = ' TODO'
-todo = '' # for debugging
-regexp = {
- 'aptgf' => / APT_GET_FAILED.*#{todo}/,
- 'ld' => /LD_ERROR.*#{todo}/,
- 'gcc' => /GCC_ERROR.*#{todo}/
-}
-IO::read(ARGV[1]).split(/\n/).grep(regexp[type]).each do |l|
- pkg, rest = l.split(' ')
- lst = Dir::glob("#{pkg}_*")
- if lst.length == 0
- puts "No matching logfile."
- exit 1
- elsif lst.length > 1
- lst2 = lst.join("\n ")
- puts "Several matching logfiles:\n #{lst2}"
- exit 1
- else
- file = lst[0]
- end
- flines = IO::read(file).split(/\n/)
- case type
- when 'aptgf' then
- lines = aptgf_getlines(flines, file)
- when 'ld' then
- lines = ld_getlines(flines, file)
- when 'gcc' then
- lines = gcc_getlines(flines, file)
- end
- lines.each do |l2|
- printf "%-20s %s\n" % [pkg, l2]
- end
-end
Copied: archive-rebuilds/log-summary.rb (from rev 435, archive-rebuilds/agf.rb)
===================================================================
--- archive-rebuilds/log-summary.rb (rev 0)
+++ archive-rebuilds/log-summary.rb 2007-09-18 05:39:30 UTC (rev 436)
@@ -0,0 +1,121 @@
+#!/usr/bin/ruby -w
+# Parse log files and extract info about packages that failed to build
+# because of dependancies problems.
+#
+# Usage:
+# (in the directory containing all the logs:)
+# agf.rb <aptgf|ld> <file with TODO lines>
+
+def gcc_getlines(lines, file)
+ g = lines.grep(/\d: error: /)
+ ig = lines.index(g[0])
+ ih = ig - 1
+ while (ih > 0)
+ if lines[ih] =~ /^\s+from / or
+ lines[ih] =~ /^In file included from / or
+ lines[ih] =~ /: In (member )?function / or
+ lines[ih] =~ /: warning: / or
+ lines[ih] =~ /: In constructor / or
+ lines[ih] =~ /^\s*\^+\s*$/ or
+ lines[ih] =~ / is deprecated. Use/ or
+ lines[ih] =~ /: At global scope:/
+ ih -= 1
+ else
+ if lines[ih] !~ /^\s*(gcc|cc|g\+\+|c\+\+|nasm)/
+# puts "FNML: #{lines[ih]}"
+ end
+ ih += 1
+ break
+ end
+ end
+ return lines[ih..ig]
+end
+
+def ld_getlines(lines, file)
+ g = lines.grep(/ld returned 1 exit status$/)
+ ig = lines.index(g[0])
+ ih = ig - 1
+ while (ih > 0)
+ if lines[ih] =~ /undefined reference to/ or
+ lines[ih] =~ / In function / or
+ lines[ih] =~ / final link failed:/ or
+ lines[ih] =~ /: first defined here/ or
+ lines[ih] =~ /: cannot find / or
+ lines[ih] =~ /: unknown architecture of input file/ or
+ lines[ih] =~ /: hidden symbol / or
+ lines[ih] =~ /: multiple definition of / or
+ lines[ih] =~ /: warning: .* is deprecated; use .* instead/ or
+ lines[ih] =~ / cannot be preloaded: ignored./
+ ih -= 1
+ else
+ if lines[ih] !~ /^(gcc|cc|g\+\+|ld|c\+\+)/
+# puts "FNML: #{lines[ih]}"
+ end
+ ih = ih += 1
+ break
+ end
+ end
+ if ih == ig
+ puts "NO LINES FOUND #{file}"
+ exit 1
+ end
+ return lines[ih...ig]
+end
+
+def aptgf_getlines(lines, file)
+ if not (g = lines.grep(/^The following packages have unmet dependencies:$/)).empty?
+ bps = lines.index(g[0]) + 1
+ g = lines.grep(/^E: Broken packages$/)
+ agf = lines.index(g[0]) - 1
+ buglog = lines[bps..agf]
+ return buglog
+ elsif not (g = lines.grep(/^E: Couldn't find package /)).empty?
+ return g
+ elsif not (g = lines.grep(/^E: Package .* has no installation candidate$/)).empty?
+ return g
+ elsif not (g = lines.grep(/^Errors were encountered while processing:$/)).empty?
+ bps = lines.index(g[0])
+ g = lines.grep(/^apt-get failed.$/)
+ agf = lines.index(g[0]) - 1
+ buglog = lines[bps..agf]
+ return buglog
+ else
+ puts "NO LINES FOUND #{file}"
+ exit 1
+ end
+end
+
+type = ARGV[0]
+#todo = ' TODO'
+todo = '' # for debugging
+regexp = {
+ 'aptgf' => / APT_GET_FAILED.*#{todo}/,
+ 'ld' => /LD_ERROR.*#{todo}/,
+ 'gcc' => /GCC_ERROR.*#{todo}/
+}
+IO::read(ARGV[1]).split(/\n/).grep(regexp[type]).each do |l|
+ pkg, rest = l.split(' ')
+ lst = Dir::glob("#{pkg}_*")
+ if lst.length == 0
+ puts "No matching logfile."
+ exit 1
+ elsif lst.length > 1
+ lst2 = lst.join("\n ")
+ puts "Several matching logfiles:\n #{lst2}"
+ exit 1
+ else
+ file = lst[0]
+ end
+ flines = IO::read(file).split(/\n/)
+ case type
+ when 'aptgf' then
+ lines = aptgf_getlines(flines, file)
+ when 'ld' then
+ lines = ld_getlines(flines, file)
+ when 'gcc' then
+ lines = gcc_getlines(flines, file)
+ end
+ lines.each do |l2|
+ printf "%-20s %s\n" % [pkg, l2]
+ end
+end
More information about the Collab-qa-commits
mailing list