From 90aed5cbeb0a7cf6bfbbe4ed7ba9e2268dd50f6b Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 21 Feb 2008 13:15:12 -0800 Subject: [PATCH] add default package support --- Debbugs/Config.pm | 17 +++++++++++++++++ scripts/process.in | 24 ++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Debbugs/Config.pm b/Debbugs/Config.pm index bc4a7cf..8d650e0 100644 --- a/Debbugs/Config.pm +++ b/Debbugs/Config.pm @@ -66,6 +66,7 @@ BEGIN { qw(@gRemovalStrongSeverityDefaultDistributionTags), qw(@gDefaultArchitectures), qw($gTemplateDir), + qw($gDefaultPackage), ], text => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote), ], @@ -471,10 +472,26 @@ Default: '[A-Za-z0-9:+\.-]+' =cut + set_default(\%config,'package_version_re', '[A-Za-z0-9:+\.~-]+'); +=item default_package + +This is the name of the default package. If set, bugs assigned to +packages without a maintainer and bugs missing a Package: psuedoheader +will be assigned to this package instead. + +Defaults to unset, which is the traditional debbugs behavoir + +=cut + +set_default(\%config,'default_package', + undef + ); + + =item control_internal_requester This address is used by Debbugs::Control as the request address which diff --git a/scripts/process.in b/scripts/process.in index 29dac8a..deaadf2 100755 --- a/scripts/process.in +++ b/scripts/process.in @@ -75,6 +75,8 @@ END # header and decoded body respectively my (@headerlines, @bodylines); +# whether maintainer addresses have been checked +our $maintainerschecked = 0; #maintainer address for this message our @maintaddrs; # other src addresses @@ -483,7 +485,10 @@ if ($ref<0) { $data->{package} = $pheader{source}; } elsif (defined $pheader{package}) { $data->{package} = $pheader{package}; - } else { + } elsif (defined $config{default_package}) { + $data->{package} = $config{default_package}, + } + else { &htmllog("Warning","sent",$replyto,"Message not forwarded."); my $body = message_body_template('mail/process_no_package', ); @@ -509,6 +514,22 @@ if ($ref<0) { &finish; } + if (defined $config{default_package}) { + &checkmaintainers; + # if there are no maintainers for this package, assign it to the default package + if (not @maintaddrs) { + $data->{package} = $config{default_package}; + $brokenness.= fill_template('mail/process_default_package_selected', + {old_package => $pheader{source} || $pheader{package} || 'No package', + new_package => $data->{package}, + } + ); + # force the maintainers to be rechecked + $maintainerschecked = 0; + &checkmaintainers; + } + } + $data->{keywords}= ''; if (defined($pheader{'keywords'})) { $data->{keywords}= $pheader{'keywords'}; @@ -986,7 +1007,6 @@ sub fill_template{ } -my $maintainerschecked = 0; sub checkmaintainers { return if $maintainerschecked++; return if !length($data->{package}); -- 2.39.2