qw($gMaintainerFileOverride $gPseudoMaintFile $gPseudoDescFile $gPackageSource),
qw($gVersionPackagesDir $gVersionIndex $gBinarySourceMap $gSourceBinaryMap),
qw($gVersionTimeIndex),
- qw($gSendmail $gLibPath $gSpamScan @gExcludeFromControl),
+ qw($gSimpleVersioning),
+ qw($gCVETracker),
+ qw($gSendmail @gSendmailArguments $gLibPath $gSpamScan @gExcludeFromControl),
qw(%gSeverityDisplay @gTags @gSeverityList @gStrongSeverities),
qw(%gTagsSingleLetter),
qw(%gSearchEstraier),
qw(%gObsoleteSeverities),
qw(@gPostProcessall @gRemovalDefaultDistributionTags @gRemovalDistributionTags @gRemovalArchitectures),
qw(@gRemovalStrongSeverityDefaultDistributionTags),
+ qw(@gAffectsDistributionTags),
qw(@gDefaultArchitectures),
qw($gMachineName),
qw($gTemplateDir),
# untaint $ENV{DEBBUGS_CONFIG_FILE} if it's owned by us
# This enables us to test things that are -T.
if (exists $ENV{DEBBUGS_CONFIG_FILE}) {
- if (${[stat($ENV{DEBBUGS_CONFIG_FILE})]}[4] = $<) {
+# This causes all sorts of problems for mirrors of debbugs; disable
+# it.
+# if (${[stat($ENV{DEBBUGS_CONFIG_FILE})]}[4] == $<) {
$ENV{DEBBUGS_CONFIG_FILE} =~ /(.+)/;
$ENV{DEBBUGS_CONFIG_FILE} = $1;
- }
- else {
- die "Environmental variable DEBBUGS_CONFIG_FILE set, and $ENV{DEBBUGS_CONFIG_FILE} is not owned by the user running this script.";
- }
+# }
+# else {
+# die "Environmental variable DEBBUGS_CONFIG_FILE set, and $ENV{DEBBUGS_CONFIG_FILE} is not owned by the user running this script.";
+# }
}
read_config(exists $ENV{DEBBUGS_CONFIG_FILE}?$ENV{DEBBUGS_CONFIG_FILE}:'/etc/debbugs/config');
=cut
-
set_default(\%config,'subscription_domain',undef);
+
+=item cve_tracker $gCVETracker
+
+URI to CVE security tracker; in bugreport.cgi, CVE-2001-0002 becomes
+linked to http://$config{cve_tracker}CVE-2001-002
+
+Default: security-tracker.debian.org/tracker/
+
+=cut
+
+set_default(\%config,'cve_tracker','security-tracker.debian.org/tracker/');
+
+
=back
=cut
Default: $config{maintainer_email}
-=back
-
=cut
set_default(\%config,'unknown_maintainer_email',$config{maintainer_email});
my $_old_path = $ENV{PATH};
$ENV{PATH} = '/bin:/usr/bin:/usr/local/bin';
-set_default(\%config,'machine_name',qx(hostname --fqdn));
+my $temp_hostname = qx(hostname --fqdn);
+chomp $temp_hostname;
+set_default(\%config,'machine_name',$temp_hostname);
$ENV{PATH} = $_old_path;
=head2 BTS Mailing Lists
=over
+=item mailer
+
+Name of the mailer to use
+
+Default: exim
+
=cut
set_default(\%config,'mailer','exim');
+
+
+=item bug
+
+Default: bug
+
+=item ubug
+
+Default: ucfirst($config{bug});
+
+=item bugs
+
+Default: bugs
+
+=item ubugs
+
+Default: ucfirst($config{ubugs});
+
+=cut
+
set_default(\%config,'bug','bug');
+set_default(\%config,'ubug',ucfirst($config{bug}));
set_default(\%config,'bugs','bugs');
+set_default(\%config,'ubugs',ucfirst($config{bugs}));
=item remove_age
set_default(\%config,'maintainer_file',$config{config_dir}.'/Maintainers');
set_default(\%config,'maintainer_file_override',$config{config_dir}.'/Maintainers.override');
-set_default(\%config,'pseudo_maint_file',$config{config_dir}.'/pseudo-packages.maint');
+set_default(\%config,'source_maintainer_file',$config{config_dir}.'/Source_maintainers');
+set_default(\%config,'source_maintainer_file_override',undef);
+set_default(\%config,'pseudo_maint_file',$config{config_dir}.'/pseudo-packages.maintainers');
set_default(\%config,'pseudo_desc_file',$config{config_dir}.'/pseudo-packages.description');
set_default(\%config,'package_source',$config{config_dir}.'/indices/sources');
+=item simple_versioning
+
+If true this causes debbugs to ignore version information and just
+look at whether a bug is done or not done. Primarily of interest for
+debbugs installs which don't track versions. defaults to false.
+
+=cut
+
+set_default(\%config,'simple_versioning',0);
+
+
=item version_packages_dir
Location where the version package information is kept; defaults to
set_default(\%config,'sendmail','/usr/lib/sendmail');
+=item sendmail_arguments
+
+Default arguments to pass to sendmail. Defaults to C<qw(-oem -oi)>.
+
+=cut
+
+set_default(\%config,'sendmail_arguments',[qw(-oem -oi)]);
+
=item spam_scan
Whether or not spamscan is being used; defaults to 0 (not being used
sub read_config{
my ($conf_file) = @_;
+ if (not -e $conf_file) {
+ print STDERR "configuration file '$conf_file' doesn't exist; skipping it\n" if $DEBUG;
+ return;
+ }
# first, figure out what type of file we're reading in.
my $fh = new IO::File $conf_file,'r'
or die "Unable to open configuration file $conf_file for reading: $!";
$hash_name =~ s/^([\$\%\@])g//;
my $glob_type = $1;
my $glob_name = 'g'.$hash_name;
- $hash_name =~ s/(HTML|CGI)/ucfirst(lc($1))/ge;
+ $hash_name =~ s/(HTML|CGI|CVE)/ucfirst(lc($1))/ge;
$hash_name =~ s/^([A-Z]+)/lc($1)/e;
$hash_name =~ s/([A-Z]+)/'_'.lc($1)/ge;
return $hash_name unless wantarray;