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/</&lt;/g;
-    $maintainer =~ s/>/&gt;/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