summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorasami <asami@FreeBSD.org>2000-08-29 07:50:12 +0000
committerasami <asami@FreeBSD.org>2000-08-29 07:50:12 +0000
commitea0e0730843271998a2910650d7d98e8bcf89210 (patch)
treefab70c1c19f36c8c035393d1cf528d71587a018e /Tools
parent0671258eac8175003701ee22916c139692e9ecf6 (diff)
downloadFreeBSD-ports-ea0e0730843271998a2910650d7d98e8bcf89210.zip
FreeBSD-ports-ea0e0730843271998a2910650d7d98e8bcf89210.tar.gz
(1) Use timestamp file to make log processing lazier -- only process
logs when there are logs newer than the .stamp file. (2) Print time cvs update is done for reference. (3) Print number of affected ports (the "aff." field). Basically the number of times the port appears in INDEX minus one (itself), so it won't take care of all chained build dependencies, but it will give you some idea how critical a port is when looking at the long list. (4) Catch a few more error cases.
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/portbuild/scripts/processlogs25
1 files changed, 22 insertions, 3 deletions
diff --git a/Tools/portbuild/scripts/processlogs b/Tools/portbuild/scripts/processlogs
index 9cf51d6..700a5cb 100755
--- a/Tools/portbuild/scripts/processlogs
+++ b/Tools/portbuild/scripts/processlogs
@@ -2,19 +2,31 @@
of=index.html.new
+# delete .new file if it is more than a day old
+find $of -mtime 2 -delete 2>/dev/null
+
+if [ -f $of ]; then exit; fi
+
+if [ -e .stamp -a $(echo $(find . -newer .stamp -type f -name '*.log' 2>/dev/null | wc -l)) = "0" ]; then exit; fi
+
echo "<html><head><title>Package building errors</title>" >$of
echo "<h1>Package building errors</h1>" >>$of
echo "</head><body>" >>$of
+touch .stamp
+
set *.log
if [ $# = 1 -a "x$1" = "x*.log" ]; then
echo "No errors (yet)" >>$of
else
num=$#
+ if [ -s cvsdone ]; then
+ echo "(cvs update finished at: $(cat cvsdone))<br>" >> $of
+ fi
echo "(timestamp of newest log: $(ls -rtTl *.log | tail -1 | awk '{printf("%s %s %s %s\n",$6,$7,$8,$9)}'))<br><br>" >> $of
echo "<table border=1>" >>$of
- echo "<tr><th>Log</th><th>Size</th><th>Repository</th><th>Maintainer</th><th>Reason</th></tr>" >>$of
+ echo "<tr><th>Log</th><th>Aff.</th><th>Size</th><th>Repository</th><th>Maintainer</th><th>Reason</th></tr>" >>$of
while [ $# -gt 0 ]; do
echo -n "<tr><td>" >>$of
echo -n "<a name=\"$1\"></a>" >> $of
@@ -22,6 +34,9 @@ else
echo -n $(basename $1 .log) >>$of
echo -n "</a>" >>$of
echo -n "</td><td align=right>" >>$of
+ affected=$(($(grep -cF $(basename $1 .log) < INDEX) - 1))
+ if [ $affected != 0 ]; then echo -n $affected >>$of; fi
+ echo -n "</td><td align=right>" >>$of
size=$(/bin/ls -sk $1 | awk '{print $1}')
echo -n "$size KB" >>$of
echo -n "</td><td>" >>$of
@@ -32,9 +47,11 @@ else
maints="$maints $maint"
echo -n "<a href=\"mailto:$maint\">$maint</a>" >>$of
echo -n "</td><td>" >>$of
- if grep -q 'Checksum mismatch' $1; then
+ if grep -q 'list of extra files and directories' $1; then
+ reason="extra"; tag="extra"
+ elif grep -q 'Checksum mismatch' $1; then
reason="checksum"; tag="checksum"
- elif grep -q 'No checksum recorded for' $1; then
+ elif grep -qE '(No checksum recorded for|(Maybe|Either) .* is out of date, or)' $1; then
reason="files/md5 update"; tag="md5"
elif grep -qE '(configure: error:|script.*failed: here are the contents of)' $1; then
reason="configure error"; tag="configure"
@@ -72,6 +89,8 @@ else
fi
elif grep -q "cd: can't cd to" $1; then
reason="NFS"; tag="nfs"
+ elif grep -qE "pkg_add: (can't find enough temporary space|projected size of .* exceeds available free space)" $1; then
+ reason="disk full"; tag="df"
elif grep -qE '(parse error|too (many|few) arguments to|argument.*doesn.*prototype|incompatible type for argument|conflicting types for|undeclared \(first use (in |)this function\)|incorrect number of parameters|has incomplete type and cannot be initialized)' $1; then
reason="compiler error"; tag="cc"
elif grep -qE '(ANSI C.. forbids|is a contravariance violation|changed for new ANSI .for. scoping|[0-9]: passing .* changes signedness|discards qualifiers|lacks a cast|redeclared as different kind of symbol|invalid type .* for default argument to|wrong type argument to unary exclamation mark|duplicate explicit instantiation of|incompatible types in assignment|assuming . on overloaded member function|call of overloaded .* is ambiguous|declaration of C function .* conflicts with|initialization of non-const reference type|using typedef-name .* after|[0-9]: implicit declaration of function|[0-9]: size of array .* is too large|fixed or forbidden register .* for class)' $1; then
OpenPOWER on IntegriCloud