qw(@gRemovalStrongSeverityDefaultDistributionTags),
qw(@gDefaultArchitectures),
qw($gTemplateDir),
+ qw($gDefaultPackage),
],
text => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote),
],
=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
# 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
$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',
);
&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'};
}
-my $maintainerschecked = 0;
sub checkmaintainers {
return if $maintainerschecked++;
return if !length($data->{package});