Todd Vierling <tv%duh.org@localhost> wrote: > On Mon, 13 Jun 2005, Jan Schaumann wrote: > > > > Hm. This is ugly. I suppose it can go back to find, but I may try to > > > find > > > a new way to do this in the future. > > > > This still hasn't been fixed. I'd really like to have a functional > > post-build on the new branch -- can we please revert this change to use > > find(1) again? It's better to have it be slow over NFS than to not have > > it working at all on some platforms. > > Oh, I thought I implied that you could revert it, but I probably didn't make > that clear enough. I was assuming that you had a working revert diff to > commit -- if not, let me know, and I'll do it. Here's a diff against the stable branch. This also includes my 'top-ten' patch, which I don't remember if I committed this on HEAD or not. Could you extract the find-vs-ls chunk and commit it? Thanks! -Jan -- chown -R us:enemy your_base
Index: post-build =================================================================== RCS file: /cvsroot/pkgsrc/mk/bulk/post-build,v retrieving revision 1.51 diff -b -u -r1.51 post-build --- post-build 15 Jan 2005 01:53:00 -0000 1.51 +++ post-build 13 Jun 2005 19:55:03 -0000 @@ -104,21 +104,24 @@ $enddate = strftime("%c %Z", gmtime(time())); } +$verbose=1; + my $report_head = <<EOF; Package Breaks Maintainer --------------------------------------------------------------- +---------------------------------------------------------------------- EOF my $report_form = <<EOF; -@<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<< +@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<< EOF # $pkg, $nbrokenby, $maintainer +#$pkg $nbrokenby $maintainer my_system("mkdir -p $vars{FTP}"); # Copy over the output from the build process chdir($vars{USR_PKGSRC}); -my_system("/bin/ls -1 $vars{BROKENFILE} $vars{BROKENWRKLOG} */*/$vars{BROKENFILE} */*/$vars{BROKENWRKLOG} 2>/dev/null | $vars{GTAR} -T - -plcf - | (cd $vars{FTP}; $vars{GTAR} -plxf -)"); +my_system("find . -name $vars{BROKENFILE} -print -o -name $vars{BROKENWRKLOG} -print | $vars{GTAR} -T - -plcf - | (cd $vars{FTP}; $vars{GTAR} -plxf -)"); # Copy over the cache files used during the build foreach my $f qw(BULK_DBFILE DEPENDSTREEFILE DEPENDSFILE SUPPORTSFILE INDEXFILE ORDERFILE) { @@ -241,7 +244,7 @@ '<td align="right" class="pkg-'.$state_style.'">'.$nbrokenby.'</td>' if $nbrokenby > 0; - if ($pinfo->{nerrors} != 0 && $verbose && $state eq "broken") { + if ($pinfo->{nerrors} != 0 && $verbose && ($state eq "broken" || $state eq "topten")) { print swrite($report_form, $pkg, $nbrokenby > 0 ? $nbrokenby : "", $maintainer); } @@ -450,6 +453,7 @@ <p> Jump to:<br/> <ul> + <li><a href="#topten">Top Ten Offenders</a></li> <li><a href="#broken">Broken packages</a></li> <li><a href="#broken depends">Broken dependencies</a></li> <li><a href="#not packaged">Not packaged</a></li> @@ -459,19 +463,20 @@ EOHTML my %state_head = ( + "topten" => "Top Ten Offenders", "broken" => "Broken packages", "broken depends" => "Broken dependencies", "not packaged" => "Not packaged" ); - # only include broken packages in the email, see also pkgResult(). - if ($verbose && scalar(@{$broken->{"broken"}})) { - print "\n\n$state_head{broken}\n\n"; + foreach my $state ("topten", "broken", "broken depends", "not packaged") { + next unless scalar(@{$broken->{$state}}); + + if ($verbose && ($state eq "topten" || $state eq "broken")) { + print "\n\n$state_head{$state}\n\n"; print $report_head; } - foreach my $state ("broken", "broken depends", "not packaged") { - next unless scalar(@{$broken->{$state}}); print HTML <<EOHTML; @@ -571,6 +576,12 @@ $res->{$state} = [ sort { $a->{pkg} cmp $b->{pkg} } @{$res->{$state}} ]; } + $res->{"topten"} = [ sort { $b->{nbrokenby} <=> $a->{nbrokenby} } @{$res->{"broken"}} ]; + + for (my $count = $#{$res->{"topten"}}; $count >= 10; $count--) { + pop(@{$res->{"topten"}}); + } + return $res; }
Attachment:
pgpffbavjz9pc.pgp
Description: PGP signature