X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FConfig.pm;h=cb30eda342c09a0704e9edfc5e1d762a5d7c12c8;hb=d1fb15bad755ce96c840a5b1fa37986353d41e1a;hp=56c79580230a40a5b30fa622f0811b290b83583a;hpb=b95204f979d13fe73bfcea4072c580a0994f5a84;p=debbugs.git diff --git a/Debbugs/Config.pm b/Debbugs/Config.pm index 56c7958..cb30eda 100644 --- a/Debbugs/Config.pm +++ b/Debbugs/Config.pm @@ -60,7 +60,8 @@ BEGIN { qw($gVersionPackagesDir $gVersionIndex $gBinarySourceMap $gSourceBinaryMap), qw($gVersionTimeIndex), qw($gSimpleVersioning), - qw($gSendmail $gLibPath $gSpamScan @gExcludeFromControl), + qw($gCVETracker), + qw($gSendmail @gSendmailArguments $gLibPath $gSpamScan @gExcludeFromControl), qw(%gSeverityDisplay @gTags @gSeverityList @gStrongSeverities), qw(%gTagsSingleLetter), qw(%gSearchEstraier), @@ -77,10 +78,11 @@ BEGIN { ], text => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote), ], + cgi => [qw($gLibravatarUri $gLibravatarUriOptions)], config => [qw(%config)], ); @EXPORT_OK = (); - Exporter::export_ok_tags(qw(globals text config)); + Exporter::export_ok_tags(keys %EXPORT_TAGS); $EXPORT_TAGS{all} = [@EXPORT_OK]; $ENV{HOME} = '' if not defined $ENV{HOME}; } @@ -102,13 +104,15 @@ use Safe; # 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'); @@ -205,9 +209,21 @@ Domain where subscriptions to package lists happen =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 @@ -349,6 +365,38 @@ Default: list_domain set_default(\%config,'bug_subscription_domain',$config{list_domain}); +=head2 CGI Options + +=over + +=item libravatar_uri $gLibravatarUri + +URI to a libravatar configuration. If empty or undefined, libravatar +support will be disabled. Defaults to +http://cdn.libravatar.org/avatar/ which uses a federated Avatar system +and falls back to gravatar if necessary. + +=cut + +set_default(\%config,'libravatar_uri',"http://cdn.libravatar.org/avatar/"); + +=item libravatar_uri_options $gLibravatarUriOptions + +Options to append to the md5_hex of the e-mail. This sets the default +avatar used when an avatar isn't available. Currently defaults to +'?d=retro', which causes a bitmap-looking avatar to be displayed for +unknown e-mails. + +Other options which make sense include ?d=404, ?d=wavatar, etc. See +the API of libravatar for details. + +=cut + +set_default(\%config,'libravatar_uri_options','?d=retro'); + + +=back + =head2 Misc Options =over @@ -758,7 +806,7 @@ set_default(\%config,'maintainer_file',$config{config_dir}.'/Maintainers'); set_default(\%config,'maintainer_file_override',$config{config_dir}.'/Maintainers.override'); 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.maint'); +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'); @@ -836,6 +884,14 @@ Sets the sendmail binary to execute; defaults to /usr/lib/sendmail set_default(\%config,'sendmail','/usr/lib/sendmail'); +=item sendmail_arguments + +Default arguments to pass to sendmail. Defaults to C. + +=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 @@ -1004,7 +1060,7 @@ set_default(\%config,'html_expire_note', sub read_config{ my ($conf_file) = @_; if (not -e $conf_file) { - print STDERR "configuration file '$conf_file' doesn't exist; skipping it"; + 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. @@ -1033,7 +1089,7 @@ sub read_config{ die "Error in configuration file: $@" if $@; # Now what we do is check out the contents of %EXPORT_TAGS to see exactly which variables # we want to glob in from the configuration file - for my $variable (@{$EXPORT_TAGS{globals}}) { + for my $variable (map {$_ =~ /^(?:config|all)$/ ? () : @{$EXPORT_TAGS{$_}}} keys %EXPORT_TAGS) { my ($hash_name,$glob_name,$glob_type) = __convert_name($variable); my $var_glob = $cpt->varglob($glob_name); my $value; #= $cpt->reval("return $variable"); @@ -1064,7 +1120,7 @@ sub __convert_name{ $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;