$|=1;
-$tpack = lc $status{package};
+$tpack = lc $status{'package'};
$tpack =~ s/[^-+._a-z0-9()].*$//;
if ($status{severity} eq 'normal') {
$short = $ref; $short =~ s/^\d+/#$&/;
$tmaint = defined($maintainer{$tpack}) ? $maintainer{$tpack} : '(unknown)';
$descriptivehead= $indexentry.$submitted.";\nMaintainer for $status{package} is\n".
- '<A href="http://'.$debbugs::gWebDomain.'/ma/l'.&maintencoded($tmaint).'.html">'.&sani($tmaint).'</A>.';
+ '<A href="http://'.$debbugs::gWebDomain.'/db/ma/l'.&maintencoded($tmaint).'.html">'.&sani($tmaint).'</A>.';
my $buglog = buglog($ref, $archive);
open L, "<$buglog" || &quit("open log for $ref: $!");
print end_html;
-sub maintencoded {
- return "";
-}
-
exit 0;
exit 0;
}
+sub abort {
+ my $msg = shift;
+ my $archive = shift;
+ print header . start_html("Sorry");
+ print "Sorry bug #$msg doesn't seem to be in the $archive database.\n";
+ print end_html;
+ exit 0;
+}
+
sub htmlindexentry {
my $ref = shift;
my $archive = shift;
sub pkgbugs {
my $pkg = shift;
- open I, "<$debbugs::gSpoolDir/archive/index" || &quit("bugindex: $!");
+ my $archive = shift;
+ if ( $archive ) { open I, "<$debbugs::gSpoolDir/index.archive" || &quit("bugindex: $!"); }
+ else { open I, "<$debbugs::gSpoolDir/index.db" || &quit("bugindex: $!"); }
+
while(<I>)
{ if (/^$pkg\s+(\d+)\s+(.+)/)
{
}
sub pkgbugsindex {
- my $pkg = shift;
+ my $archive = shift;
my @bugs = ();
- open I, "<$debbugs::gSpoolDir/archive/index" || &quit("bugindex: $!");
+ if ( $archive ) { open I, "<$debbugs::gSpoolDir/index.archive" || &quit("bugindex: $!"); }
+ else { open I, "<$debbugs::gSpoolDir/index.db" || &quit("bugindex: $!"); }
while(<I>) { $descstr{ $1 } = 1 if (/^(\S+)/); }
return %descstr;
}
+sub maintencoded {
+ my $input = $_;
+ my $encoded = '';
+
+ while ($input =~ m/\W/)
+ { $encoded.=$`.sprintf("-%02x_",unpack("C",$&));
+ $input= $';
+ }
+ $encoded.= $input;
+ $encoded =~ s/-2e_/\./g;
+ $encoded =~ s/^([^,]+)-20_-3c_(.*)-40_(.*)-3e_/$1,$2,$3,/;
+ $encoded =~ s/^(.*)-40_(.*)-20_-28_([^,]+)-29_$/,$1,$2,$3/;
+ $encoded =~ s/-20_/_/g;
+ $encoded =~ s/-([^_]+)_-/-$1/g;
+ return $input;
+}
sub getmaintainers {
my %maintainer;
if ( $archive )
{ my $archdir = $bugnum % 100;
- open(S,"$gSpoolDir/archive/$archdir/$bugnum.status" ) || &quit("open $bugnum.status: $!");
+ open(S,"$gSpoolDir/archive/$archdir/$bugnum.status" ) || &abort("$bugnum", "archive" );
} else
- { open(S,"$gSpoolDir/db/$bugnum.status") || &quit("open $bugnum.status: $!"); }
+ { open(S,"$gSpoolDir/db/$bugnum.status") || &abort("$bugnum"); }
my @lines = qw(originator date subject msgid package keywords done
forwarded mergedwith severity);
while(<S>) {
require '/etc/debbugs/text';
my $pkg = param('pkg');
+my $archive = (param('archive') || 'no') eq 'yes';
+my $arc = 'yes';
$pkg = 'ALL' unless defined( $pkg );
+$arc = 'no' unless $archive;
my $repeatmerged = (param('repeatmerged') || 'yes') eq 'yes';
my $this = "";
print header;
-print start_html("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
-print h1("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
+if( $archive )
+{ print start_html("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
+ print h1("$debbugs::gProject Archived $debbugs::gBug report logs: package $pkg");
+} else
+{ print start_html("$debbugs::gProject $debbugs::gBug report logs: package $pkg");
+ print h1("$debbugs::gProject $debbugs::gBug report logs: package $pkg");
+}
#if (defined $maintainer{$pkg}) {
# print "<p>Maintainer for $pkg is <a href=\""
print "filed under the different binary package names.</p>\n";
if ( $pkg ne 'ALL' )
-{ %strings = pkgbugs($pkg);
+{ %strings = pkgbugs($pkg, $archive);
foreach my $bug ( keys %strings )
- { $this .= " <LI><A href=\"" . bugurl($bug, "archive=1") . "\">". $strings{ $bug } ."\n"; }
+ { $this .= " <LI><A href=\"" . bugurl($bug, "archive=$archive") . "\">". $strings{ $bug } ."</A>\n"; }
} else
-{ %strings = pkgbugsindex();
+{ %strings = pkgbugsindex( $archive );
my @bugs = ();
foreach my $bug ( keys %strings ) { push @bugs, $bug; }
@bugs = sort { $a cmp $b } @bugs;
foreach my $bug ( @bugs )
- { $this .= " <LI><A HREF=\"http://cgi.debian.org/cgi-bin/pkgarch.cgi?pkg=". $bug ."\">". $bug . "\n"; }
+ { $this .= " <LI><A HREF=\"http://cgi.debian.org/cgi-bin/pkgreport.cgi?pkg=". $bug ."&archive=$arc\">". $bug . "\n"; }
}
if ( length( $this ) )
+debbugs (2.3-2) unstable; urgency=low
+
+ * Tweeks to the [pkg|bug]report.cgi scripts
+
+ -- Darren Benham <gecko@debian.org> Tue, 24 Oct 1999 23:16:14 -0700
+
debbugs (2.3-1) unstable; urgency=low
* Fixed the send message bug that resulted in the same words (subject)
#!/usr/bin/perl -w
-# $Id: rebuild.in,v 1.1 1999/09/20 05:40:07 gecko Exp $
+# $Id: rebuild.in,v 1.2 1999/10/25 06:18:14 gecko Exp $
# Load modules and set envirnment
use File::Copy;
$debug = 0;
defined($startdate= time) || &quit("failed to get time: $!");
-open IDXFILE, ">archive/index" or &quit( "trying to reset index file: $!" );
+@ARGV==0 or &quit( "no archive given on the commandline" );
+$archive= shift(@ARGV);
+open IDXFILE, "> index.$archive" or &quit( "trying to reset index file: $!" );
+
+
+if ( $archive eq 'db' )
+{
+ opendir(DIR,'db') || next;
+ @list= grep(m/^\d+\.status$/,readdir(DIR));
+ closedir DIR;
+ grep(s/\.status$//,@list);
+ @list= sort { $a <=> $b } @list;
+
+ #process each bug (ie, status file)
+ while ( defined( $list[0] ))
+ { my $ref = shift @list;
+ print STDERR "$ref considering\n" if $debug;
+ readreport($ref, $path);
+ printf IDXFILE "%s %d %s\n", $s_package, $ref, $s_subject;
+ }
+}
+else
+{
#get list of bugs (ie, status files)
for ($subdir=0; $subdir<100; $subdir++ )
{
- my $path = sprintf( "archive/%.2d", $subdir );
+ my $path = sprintf( "$archive/%.2d", $subdir );
opendir(DIR,$path) || next;
@list= grep(m/^\d+\.status$/,readdir(DIR));
closedir DIR;
}
}
+}
close IDXFILE;