pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/mk/bulk improve report layout:
details: https://anonhg.NetBSD.org/pkgsrc/rev/f0e25ecb9c7d
branches: trunk
changeset: 467391:f0e25ecb9c7d
user: grant <grant%pkgsrc.org@localhost>
date: Sat Jan 31 03:30:49 2004 +0000
description:
improve report layout:
- move the build summary to the top and include build start/end
times.
- break the report up into three sections for easier navigation:
Broken, Broken dependencies, and Not packaged.
- HTML report now uses a subset of the www.NetBSD.org stylesheet.
- improve some of the text.
diffstat:
mk/bulk/post-build | 575 ++++++++++++++++++++++++++++++++++------------------
1 files changed, 377 insertions(+), 198 deletions(-)
diffs (truncated from 640 to 300 lines):
diff -r 9035b65eaee1 -r f0e25ecb9c7d mk/bulk/post-build
--- a/mk/bulk/post-build Sat Jan 31 01:25:51 2004 +0000
+++ b/mk/bulk/post-build Sat Jan 31 03:30:49 2004 +0000
@@ -1,5 +1,5 @@
#!/usr/pkg/bin/perl
-# $NetBSD: post-build,v 1.28 2004/01/26 21:10:32 heinz Exp $
+# $NetBSD: post-build,v 1.29 2004/01/31 03:30:49 grant Exp $
#
# Collect stuff after a pkg bulk build
#
@@ -11,22 +11,20 @@
# Where config vars are stored (/bin/sh syntax)
if (-f $ENV{"BULK_BUILD_CONF"}) {
- $BULK_BUILD_CONF=$ENV{"BULK_BUILD_CONF"};
+ $BULK_BUILD_CONF=$ENV{"BULK_BUILD_CONF"};
} else {
- $BULK_BUILD_CONF=dirname("$0")."/build.conf";
+ $BULK_BUILD_CONF=dirname("$0")."/build.conf";
}
# Dig given variable out of config file, and set it
-sub getconf
-{
- local($var)=@_;
- local($val);
+sub getconf {
+ local($var)=@_;
+ local($val);
- chomp($val=`. ./$BULK_BUILD_CONF ; echo \$$var`);
- eval "\$$var=\"$val\";";
+ chomp($val=`. ./$BULK_BUILD_CONF ; echo \$$var`);
+ eval "\$$var=\"$val\";";
}
-
getconf("ADMINSIG"); # "-Your Name"
getconf("FTPURL"); # "pub/NetBSD/pkgstat/`date +%Y%m%d.%H%M`"
getconf("FTP"); # "/disk1/ftp/${FTPURL}"
@@ -35,7 +33,7 @@
getconf("USR_PKGSRC"); # "/usr/pkgsrc"
getconf("osrev"); # `uname -r`
getconf("arch"); # `uname -m`
-chomp($date=`date`);
+$enddate=localtime(time());
$reportf=basename($REPORT);
chomp($os=`uname -s`);
@@ -62,175 +60,33 @@
$ordfile=basename($ORDERFILE);
$startfile=basename($STARTFILE);
+$startdate = (stat($STARTFILE))[9];
+$startdate = "unknown" if $startdate == 0;
+
$verbose=1;
-if ($verbose) {
- print "\n";
- print "*** $os $osrev/$arch\n";
- print "*** Result of bulk pkgsrc build as of $date:\n";
- print "\n";
- printf ("%-23s State \tBreaks\t(last modified, maintainer)\n","Pkg");
-}
+$report_head = <<EOF;
+Package Breaks Last commit Maintainer
+-------------------------------------------------------------------------
+EOF
+$report_form = <<EOF;
+@<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<< @<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<
+$pkg $nbrokenby $who $maintainer
+EOF
system("mkdir -p ${FTP}");
# Copy over the output from the build process
-chdir("$USR_PKGSRC");
+chdir($USR_PKGSRC);
system("tar plcf - $BROKENFILE */*/$BROKENFILE | ( cd ${FTP} ; tar plxf - )");
# Copy over the cache files used during the build
-if (-f $DEPENDSTREEFILE ) {system("cp $DEPENDSTREEFILE ${FTP}");}
-if (-f $DEPENDSFILE ) {system("cp $DEPENDSFILE ${FTP}");}
-if (-f $SUPPORTSFILE ) {system("cp $SUPPORTSFILE ${FTP}");}
-if (-f $INDEXFILE ) {system("cp $INDEXFILE ${FTP}");}
-if (-f $ORDERFILE ) {system("cp $ORDERFILE ${FTP}");}
-
-
-open(HTML,">$REPORT") or die "Can't write $REPORT: $!\n";
-print HTML <<EOHTML
-<HTML>
-<HEAD>
-<TITLE>$os-$osrev/$arch bulk package build</TITLE>
-</HEAD>
-
-<BODY BGCOLOR=#cccccc>
-
-<H1> $os $osrev/$arch </H1>
-<H2>Output of the pkgsrc bulk build<BR>
- as of $date</H2>
-
- Packages not listed here resulted in a <A
- HREF="../../packages/">binary package</A>. To see the output of
- the (failed) build, select the package below.
- <P>
-
- Files not listed in PLISTs can be found in <A HREF="leftovers-${arch}.html">this list</A>.
- <P>
-
-<TABLE>
-<TR><TH> Package <TH> State <TH> Pkgs Broken by <TH> Last touched by <TH> File touched last <TH> Maintainer
-EOHTML
-;
-
-# some nifty postprocessing of $FTP/.broken* -> HTML here
-$nunpackaged = $nbroken = $nbrokendep = 0;
-chdir("$FTP");
-open(BF,"sort +1 $BROKENFILE |") or die "can't open .broken-file '$BROKENFILE'";
-while (<BF>) {
- ($nerrors, $bf, $nbrokenby) = split;
- $pkg = $bf;
- $pkg =~ s,/$BROKENFILE,,;
-
-# next
-# if $pkg!~/^a/; # DEBUG! HF
-
- if ($nerrors > 0) {
- $color = "red";
- $state = "build broken";
- $nbroken++;
- } elsif ($nerrors == -1) {
- $color = "orange";
- $state = "broken depends";
- $nbrokendep++;
- } else {
- $color = "yellow";
- $state = "not packaged";
- $nunpackaged++;
- }
-
- @idents = `${FIND} ${USR_PKGSRC}/${pkg} -type f -print | xargs grep \\\$NetBSD`;
- $datetime = "";
- $who = "nobody";
- $file = "";
- $ver = "";
- foreach $ident (@idents) {
- $ident =~ /\$[N]etBSD: ([^ ]*),v ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) Exp \$/;
- if ("$3 $4" gt $datetime) {
- $datetime = "$3 $4";
- $who = $5;
- $file = $1;
- $ver = $1;
- }
- }
+foreach my $f ($DEPENDSTREEFILE, $DEPENDSFILE, $SUPPORTSFILE, $INDEXFILE, $ORDERFILE) {
+ system("cp ${f} ${FTP}") if -f ${f};
+}
- $maintainer=`grep ^MAINTAINER $USR_PKGSRC/$pkg/Makefile`;
- $maintainer =~ s/MAINTAINER=[ \t]*//;
- $maintainer =~ s/</</g;
- $maintainer =~ s/>/>/g;
- chomp($maintainer);
-
- print HTML "<TR><TD><A HREF=\"$bf\">$pkg</A>";
- print HTML " <TD><FONT COLOR=$color>$state</FONT>";
- if ($nbrokenby > 0){
- print HTML " <TD ALIGN=\"right\"><FONT COLOR=$color>$nbrokenby</FONT>";
- }
- else {
- print HTML " <TD> ";
- }
- print HTML " <TD> $who <TD> $file";
- print HTML " <TD> $maintainer\n";
-
- ($category, $dbfeed_pkg) = split('/', $pkg);
-
- if ($nerrors != 0) {
- if ($nbrokenby > 0){
- printf("%-23s $state\t%-5d\t($who, $maintainer)\n", "$pkg:",$nbrokenby)
- if $verbose;
- }
- else {
- printf("%-23s $state\t%-5s\t($who, $maintainer)\n", "$pkg:","")
- if $verbose;
- }
-
- }
-}
-close(BF);
-
-
-$nbrokentot=$nbroken+$nbrokendep;
-$ntotal=$nunpackaged+$nbroken+$nbrokendep;
-print HTML <<EOHTML
-</TABLE>
-
-<HR>
-<P>
-The following cache files were used during the build:
-<UL>
-<LI>The <a href=$dtfile>depends tree file</a>.
-<LI>The <a href=$depfile>depends file</a>.
-<LI>The <a href=$supfile>supports file</a>.
-<LI>The <a href=$indfile>index file</a>.
-<LI>The <a href=$ordfile>build order file</a>.
-</UL>
-<P>
-<HR>
-
-<TABLE>
-<TR><TD> Packages not packaged: <TD ALIGHT=RIGHT> <FONT COLOR=yellow>$nunpackaged</FONT>
-<TR><TD> Packages really broken: <TD ALIGHT=RIGHT> <FONT COLOR=red>$nbroken</FONT>
-<TR><TD> Pkgs broken due to them: <TD ALIGHT=RIGHT> <FONT COLOR=blue>$nbrokendep</FONT>
-<TR><TD> Total broken: <TD ALIGHT=RIGHT> $nbrokentot
-<TR><TD> Total: <TD ALIGHT=RIGHT> $ntotal
-</TABLE>
-
-<HR>
-<P>
-<UL>
-<!-- <LI>View the <A HREF="$PROG">progress</A> of the build. -->
-<!-- <LI>See the list of <A HREF="../index.html">all log files</A>. -->
-<LI>Visit the <A HREF="http://www.netbsd.org">NetBSD Homepage</A>.
-<LI>Learn about the
- <A HREF="http://www.netbsd.org/Documentation/software/packages.html">
- NetBSD Package System</A>.
-</UL>
-</P>
-<HR>
-Hubert Feyrer, 1999-2000.
-</BODY>
-</HTML>
-EOHTML
-;
-close(HTML);
+chdir($FTP);
+writeReport();
#
# Adjust "last" symlink
@@ -248,7 +104,7 @@
# leftovers-${arch}.html
#
{
- chdir("${FTP}");
+ chdir($FTP);
system("mkdir -p leftovers-${arch}");
# Find files since last build:
@@ -283,38 +139,361 @@
# Add links to leftover list:
open (OUT, "> $leftovers_html")
or die "can't write $leftovers_html";
- print OUT <<EOOUT
-<HTML>
-<BODY>
-<PRE>
+ print OUT <<EOOUT;
+<html>
+<body>
+<pre>
EOOUT
-;
foreach (@leftovers) {
- print OUT "<A HREF=\"${FTPHOST}/${FTPURL}/leftovers-${arch}$_\">$_</A>\n";
+ chomp;
+ print OUT "<a href=\"${FTPHOST}/${FTPURL}/leftovers-${arch}$_\">$_</a>\n";
}
- print OUT <<EOOUT2
-</PRE>
-</BODY>
-</HTML>
+ print OUT <<EOOUT2;
+</pre>
+</body>
+</html>
EOOUT2
-;
close(OUT);
}
-if ($verbose) {
- print "\n";
- print "Packages not packaged: $nunpackaged\n";
- print "Packages really broken: $nbroken\n";
- print "Pkgs broken due to them: $nbrokendep\n";
- print "Total broken: $nbrokentot\n";
- print "Total: $ntotal\n";
- print "\n";
- print "See $FTPHOST/$FTPURL/$reportf\n";
- print "for logs of builds broken or not resulting in a binary pkg.\n";
- print "\n";
- print "\n";
- print "$ADMINSIG\n";
- print "\n";
- print "[* This message was created automatically! *]\n";
- print "\n";
+# print the result of a single broken package
Home |
Main Index |
Thread Index |
Old Index