X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FConfig.pm;h=92b6737c3bec0da51e63f813d6decccf2d25a9c6;hb=561011fc421cda771daf637b082d87836dd06570;hp=9eb1991ccca049e4814163a86c9025a8210da568;hpb=2ca4d98def826186f36c06dc3f5458dfc55e0d66;p=debbugs.git diff --git a/Debbugs/Config.pm b/Debbugs/Config.pm index 9eb1991..92b6737 100644 --- a/Debbugs/Config.pm +++ b/Debbugs/Config.pm @@ -1,3 +1,9 @@ +# This module is part of debbugs, and is released +# under the terms of the GPL version 2, or any later +# version at your option. +# See the file README and COPYING for more information. +# +# Copyright 2007 by Don Armstrong . package Debbugs::Config; @@ -43,16 +49,22 @@ BEGIN { qw($gMaintainer $gMaintainerWebpage $gMaintainerEmail $gUnknownMaintainerEmail), qw($gSubmitList $gMaintList $gQuietList $gForwardList), qw($gDoneList $gRequestList $gSubmitterList $gControlList), + qw($gStrongList), + qw($gPackageVersionRe), qw($gSummaryList $gMirrorList $gMailer $gBug), qw($gBugs $gRemoveAge $gSaveOldBugs $gDefaultSeverity), qw($gShowSeverities $gBounceFroms $gConfigDir $gSpoolDir), qw($gIncomingDir $gWebDir $gDocDir $gMaintainerFile), - qw($gMaintainerFileOverride $gPseudoDescFile $gPackageSource), + qw($gMaintainerFileOverride $gPseudoMaintFile $gPseudoDescFile $gPackageSource), qw($gVersionPackagesDir $gVersionIndex $gBinarySourceMap $gSourceBinaryMap), - qw($gSendmail $gLibPath $gSpamScan), + qw($gVersionTimeIndex), + qw($gSendmail $gLibPath $gSpamScan @gExcludeFromControl), qw(%gSeverityDisplay @gTags @gSeverityList @gStrongSeverities), qw(%gSearchEstraier), - qw(@gPostProcessall), + qw(%gDistributionAliases), + qw(@gPostProcessall @gRemovalDefaultDistributionTags @gRemovalDistributionTags @gRemovalArchitectures), + qw(@gRemovalStrongSeverityDefaultDistributionTags), + qw($gTemplateDir), ], text => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote), ], @@ -79,10 +91,14 @@ use Safe; %config = (); # 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} and - ${[stat($ENV{DEBBUGS_CONFIG_FILE})]}[4] = $<) { - $ENV{DEBBUGS_CONFIG_FILE} =~ /(.+)/; - $ENV{DEBBUGS_CONFIG_FILE} = $1; +if (exists $ENV{DEBBUGS_CONFIG_FILE}) { + 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."; + } } read_config(exists $ENV{DEBBUGS_CONFIG_FILE}?$ENV{DEBBUGS_CONFIG_FILE}:'/etc/debbugs/config'); @@ -164,6 +180,15 @@ package links will not be made. set_default(\%config,'package_pages',undef); +=item package_pages $gUsertagPackageDomain + +Domain where where usertags of packages belong; defaults to $gPackagePages + +=cut + +set_default(\%config,'usertag_package_domain',$config{package_pages}); + + =item subscription_domain $gSubscriptionDomain Domain where subscriptions to package lists happen @@ -222,7 +247,7 @@ Default: "$config{web_domain}/~owner" set_default(\%config,'maintainer_webpage',"$config{web_domain}/~owner"); -=item maintainer_email +=item maintainer_email $gMaintainerEmail Email address of the maintainer of this Debbugs install @@ -281,6 +306,7 @@ set_default(\%config,'submitter_list','bug-submitter-list'); set_default(\%config, 'control_list', 'bug-control-list'); set_default(\%config, 'summary_list', 'bug-summary-list'); set_default(\%config, 'mirror_list', 'bug-mirror-list'); +set_default(\%config, 'strong_list', 'bug-strong-list'); =head2 Misc Options @@ -312,15 +338,64 @@ Default: 1 set_default(\%config,'save_old_bugs',1); +=item distribution_aliases + +Map of distribution aliases to the distribution name + +Default: + {experimental => 'experimental', + unstable => 'unstable', + testing => 'testing', + stable => 'stable', + oldstable => 'oldstable', + sid => 'unstable', + lenny => 'testing', + etch => 'stable', + sarge => 'oldstable', + } + +=cut + +set_default(\%config,'distribution_aliases', + {experimental => 'experimental', + unstable => 'unstable', + testing => 'testing', + stable => 'stable', + oldstable => 'oldstable', + sid => 'unstable', + lenny => 'testing', + etch => 'stable', + sarge => 'oldstable', + }, + ); + + + =item distributions List of valid distributions -Default: qw(experimental unstable testing stable oldstable); +Default: The values of the distribution aliases map. =cut -set_default(\%config,'distributions',[qw(experimental unstable testing stable oldstable)]); +my %_distributions_default; +@_distributions_default{values %{$config{distribution_aliases}}} = values %{$config{distribution_aliases}}; +set_default(\%config,'distributions',[keys %_distributions_default]); + + +=item default_architectures + +List of default architectures to use when architecture(s) are not +specified + +Default: i386 amd64 arm ppc sparc alpha + +=cut + +set_default(\%config,'default_architectures', + [qw(i386 amd64 arm ppc sparc alpha)] + ); =item removal_distribution_tags @@ -346,6 +421,97 @@ set_default(\%config,'removal_default_distribution_tags', [qw(unstable testing)] ); +=item removal_strong_severity_default_distribution_tags + +For removal/archival purposes, all bugs with strong severity are +assumed to have these tags set. + +Default: qw(unstable testing stable); + +=cut + +set_default(\%config,'removal_strong_severity_default_distribution_tags', + [qw(unstable testing stable)] + ); + + +=item removal_architectures + +For removal/archival purposes, these architectures are consulted if +there is more than one architecture applicable. If the bug is in a +package not in any of these architectures, the architecture actually +checked is undefined. + +Default: value of default_architectures + +=cut + +set_default(\%config,'removal_architectures', + $config{default_architectures}, + ); + + +=item package_name_re + +The regex which will match a package name + +Default: '[a-z0-9][a-z0-9\.+-]+' + +=cut + +set_default(\%config,'package_name_re', + '[a-z0-9][a-z0-9\.+-]+'); + +=item package_version_re + +The regex which will match a package version + +Default: '[A-Za-z0-9:+\.-]+' + +=cut + +set_default(\%config,'package_version_re', + '[A-Za-z0-9:+\.~-]+'); + + +=item control_internal_requester + +This address is used by Debbugs::Control as the request address which +sent a control request for faked log messages. + +Default:"Debbugs Internal Request <$config{maintainer_email}>" + +=cut + +set_default(\%config,'control_internal_requester', + "Debbugs Internal Request <$config{maintainer_email}>", + ); + +=item control_internal_request_addr + +This address is used by Debbugs::Control as the address to which a +faked log message request was sent. + +Default: "internal_control\@$config{email_domain}"; + +=cut + +set_default(\%config,'control_internal_request_addr', + 'internal_control@'.$config{email_domain}, + ); + + +=item exclude_from_control + +Addresses which are not allowed to send messages to control + +=cut + +set_default(\%config,'exclude_from_control',[]); + + + + set_default(\%config,'default_severity','normal'); set_default(\%config,'show_severities','critical, grave, normal, minor, wishlist'); set_default(\%config,'strong_severities',[qw(critical grave)]); @@ -371,13 +537,75 @@ set_default(\%config,'web_dir','/var/lib/debbugs/www'); set_default(\%config,'doc_dir','/var/lib/debbugs/www/txt'); set_default(\%config,'lib_path','/usr/lib/debbugs'); + +=item template_dir + +directory of templates; defaults to /usr/share/debbugs/templates. + +=cut + +set_default(\%config,'template_dir','/usr/share/debbugs/templates'); + + 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,'pseudo_desc_file',$config{config_dir}.'/pseudo-packages.description'); set_default(\%config,'package_source',$config{config_dir}.'/indices/sources'); + +=item version_packages_dir + +Location where the version package information is kept; defaults to +spool_dir/../versions/pkg + +=cut + set_default(\%config,'version_packages_dir',$config{spool_dir}.'/../versions/pkg'); +=item version_time_index + +Location of the version/time index file. Defaults to +spool_dir/../versions/idx/versions_time.idx if spool_dir/../versions +exists; otherwise defaults to undef. + +=cut + + +set_default(\%config,'version_time_index', -d $config{spool_dir}.'/../versions' ? $config{spool_dir}.'/../versions/indices/versions_time.idx' : undef); + +=item version_index + +Location of the version index file. Defaults to +spool_dir/../versions/indices/versions.idx if spool_dir/../versions +exists; otherwise defaults to undef. + +=cut + +set_default(\%config,'version_index',-d $config{spool_dir}.'/../versions' ? $config{spool_dir}.'/../versions/indices/versions.idx' : undef); + +=item binary_source_map + +Location of the binary -> source map. Defaults to +spool_dir/../versions/indices/bin2src.idx if spool_dir/../versions +exists; otherwise defaults to undef. + +=cut + +set_default(\%config,'binary_source_map',-d $config{spool_dir}.'/../versions' ? $config{spool_dir}.'/../versions/indices/binsrc.idx' : undef); + +=item source_binary_map + +Location of the source -> binary map. Defaults to +spool_dir/../versions/indices/src2bin.idx if spool_dir/../versions +exists; otherwise defaults to undef. + +=cut + +set_default(\%config,'source_binary_map',-d $config{spool_dir}.'/../versions' ? $config{spool_dir}.'/../versions/indices/srcbin.idx' : undef); + + + set_default(\%config,'post_processall',[]); =item sendmail