]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Config.pm
switch to compatibility level 12
[debbugs.git] / Debbugs / Config.pm
index dda8b6d8db697531fac3f1964dc27e52670d351b..0d0abae37ff6c489f80cd4b7a413f11ba279e92c 100644 (file)
@@ -47,6 +47,7 @@ BEGIN {
                                 qw($gWebDomain $gHTMLSuffix $gCGIDomain $gMirrors),
                                 qw($gPackagePages $gSubscriptionDomain $gProject $gProjectTitle),
                                 qw($gMaintainer $gMaintainerWebpage $gMaintainerEmail $gUnknownMaintainerEmail),
                                 qw($gWebDomain $gHTMLSuffix $gCGIDomain $gMirrors),
                                 qw($gPackagePages $gSubscriptionDomain $gProject $gProjectTitle),
                                 qw($gMaintainer $gMaintainerWebpage $gMaintainerEmail $gUnknownMaintainerEmail),
+                                qw($gPackageTrackingDomain $gUsertagPackageDomain),
                                 qw($gSubmitList $gMaintList $gQuietList $gForwardList),
                                 qw($gDoneList $gRequestList $gSubmitterList $gControlList),
                                 qw($gStrongList),
                                 qw($gSubmitList $gMaintList $gQuietList $gForwardList),
                                 qw($gDoneList $gRequestList $gSubmitterList $gControlList),
                                 qw($gStrongList),
@@ -75,10 +76,11 @@ BEGIN {
                                 qw($gTemplateDir),
                                 qw($gDefaultPackage),
                                 qw($gSpamMaxThreads $gSpamSpamsPerThread $gSpamKeepRunning $gSpamScan $gSpamCrossassassinDb),
                                 qw($gTemplateDir),
                                 qw($gDefaultPackage),
                                 qw($gSpamMaxThreads $gSpamSpamsPerThread $gSpamKeepRunning $gSpamScan $gSpamCrossassassinDb),
+                                 qw($gDatabase),
                                ],
                     text     => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote),
                                 ],
                                ],
                     text     => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote),
                                 ],
-                     cgi => [qw($gLibravatarUri $gLibravatarUriOptions)],
+                     cgi => [qw($gLibravatarUri $gLibravatarCacheDir $gLibravatarUriOptions @gLibravatarBlacklist)],
                     config   => [qw(%config)],
                    );
      @EXPORT_OK = ();
                     config   => [qw(%config)],
                    );
      @EXPORT_OK = ();
@@ -87,6 +89,7 @@ BEGIN {
      $ENV{HOME} = '' if not defined $ENV{HOME};
 }
 
      $ENV{HOME} = '' if not defined $ENV{HOME};
 }
 
+use Sys::Hostname;
 use File::Basename qw(dirname);
 use IO::File;
 use Safe;
 use File::Basename qw(dirname);
 use IO::File;
 use Safe;
@@ -150,12 +153,13 @@ set_default(\%config,'web_host_bug_dir','');
 
 =item web_domain $gWebDomain
 
 
 =item web_domain $gWebDomain
 
-Full path of the web domain where bugs are kept, defaults to the
-concatenation of L</web_host> and L</web_host_bug_dir>
+Full path of the web domain where bugs are kept including the protocol (http://
+or https://). Defaults to the concatenation of 'http://', L</web_host> and
+L</web_host_bug_dir>
 
 =cut
 
 
 =cut
 
-set_default(\%config,'web_domain',$config{web_host}.($config{web_host}=~m{/$}?'':'/').$config{web_host_bug_dir});
+set_default(\%config,'web_domain','http://'.$config{web_host}.($config{web_host}=~m{/$}?'':'/').$config{web_host_bug_dir});
 
 =item html_suffix $gHTMLSuffix
 
 
 =item html_suffix $gHTMLSuffix
 
@@ -168,7 +172,7 @@ set_default(\%config,'html_suffix','.html');
 =item cgi_domain $gCGIDomain
 
 Full path of the web domain where cgi scripts are kept. Defaults to
 =item cgi_domain $gCGIDomain
 
 Full path of the web domain where cgi scripts are kept. Defaults to
-the concatentation of L</web_host> and cgi.
+the concatentation of L</web_domain> and cgi.
 
 =cut
 
 
 =cut
 
@@ -186,21 +190,33 @@ set_default(\%config,'mirrors',[]);
 =item package_pages  $gPackagePages
 
 Domain where the package pages are kept; links should work in a
 =item package_pages  $gPackagePages
 
 Domain where the package pages are kept; links should work in a
-package_pages/foopackage manner. Defaults to undef, which means that
-package links will not be made.
+package_pages/foopackage manner. Defaults to undef, which means that package
+links will not be made. Should be prefixed with the appropriate protocol
+(http/https).
 
 =cut
 
 
 set_default(\%config,'package_pages',undef);
 
 
 =cut
 
 
 set_default(\%config,'package_pages',undef);
 
+=item package_tracking_domain  $gPackageTrackingDomain
+
+Domain where the package pages are kept; links should work in a
+package_tracking_domain/foopackage manner. Defaults to undef, which means that
+package links will not be made. Should be prefixed with the appropriate protocol
+(http or https).
+
+=cut
+
+set_default(\%config,'package_tracking_domain',undef);
+
 =item package_pages  $gUsertagPackageDomain
 
 Domain where where usertags of packages belong; defaults to $gPackagePages
 
 =cut
 
 =item package_pages  $gUsertagPackageDomain
 
 Domain where where usertags of packages belong; defaults to $gPackagePages
 
 =cut
 
-set_default(\%config,'usertag_package_domain',$config{package_pages});
+set_default(\%config,'usertag_package_domain',map {my $a = $_; defined $a?$a =~ s{https?://}{}:(); $a} $config{package_pages});
 
 
 =item subscription_domain $gSubscriptionDomain
 
 
 =item subscription_domain $gSubscriptionDomain
@@ -212,16 +228,25 @@ Domain where subscriptions to package lists happen
 set_default(\%config,'subscription_domain',undef);
 
 
 set_default(\%config,'subscription_domain',undef);
 
 
+=item cc_all_mails_to_addr $gCcAllMailsToAddr
+
+Address to Cc (well, Bcc) all e-mails to
+
+=cut
+
+set_default(\%config,'cc_all_mails_to_addr',undef);
+
+
 =item cve_tracker $gCVETracker
 
 URI to CVE security tracker; in bugreport.cgi, CVE-2001-0002 becomes
 =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
+linked to $config{cve_tracker}CVE-2001-002
 
 
-Default: security-tracker.debian.org/tracker/
+Default: https://security-tracker.debian.org/tracker/
 
 =cut
 
 
 =cut
 
-set_default(\%config,'cve_tracker','security-tracker.debian.org/tracker/');
+set_default(\%config,'cve_tracker','https://security-tracker.debian.org/tracker/');
 
 
 =back
 
 
 =back
@@ -298,18 +323,13 @@ set_default(\%config,'unknown_maintainer_email',$config{maintainer_email});
 The name of the machine that this instance of debbugs is running on
 (currently used for debbuging purposes and web page output.)
 
 The name of the machine that this instance of debbugs is running on
 (currently used for debbuging purposes and web page output.)
 
-Default: qx(hostname --fqdn)
+Default: Sys::Hostname::hostname()
 
 =back
 
 =cut
 
 
 =back
 
 =cut
 
-my $_old_path = $ENV{PATH};
-$ENV{PATH} = '/bin:/usr/bin:/usr/local/bin';
-my $temp_hostname = qx(hostname --fqdn);
-chomp $temp_hostname;
-set_default(\%config,'machine_name',$temp_hostname);
-$ENV{PATH} = $_old_path;
+set_default(\%config,'machine_name',Sys::Hostname::hostname());
 
 =head2 BTS Mailing Lists
 
 
 =head2 BTS Mailing Lists
 
@@ -365,57 +385,6 @@ Default: list_domain
 set_default(\%config,'bug_subscription_domain',$config{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
-libravatar.cgi, our internal federated libravatar system.
-
-=cut
-
-set_default(\%config,'libravatar_uri',$config{cgi_domain}.'/libravatar.cgi'.);
-
-=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','');
-
-=item libravatar_default_image
-
-Default image to serve for libravatar if there is no avatar for an
-e-mail address. By default, this is a 1x1 png. [This will also be the
-image served if someone specifies avatar=no.]
-
-Default: $config{web_dir}/1x1.png
-
-=cut
-
-set_default(\%config,'libravatar_default_image',$config{web_dir}.'/1x1.png');
-
-=item libravatar_cache_dir
-
-Directory where cached libravatar images are stored
-
-Default: $config{web_dir}/libravatar/
-
-=cut
-
-set_default(\%config,'libravatar_cache_dir',$config{web_dir}.'/libravatar/');
-
-=back
 
 =head2 Misc Options
 
 
 =head2 Misc Options
 
@@ -581,12 +550,12 @@ set_default(\%config,'removal_distribution_tags',
 For removal/archival purposes, all bugs are assumed to have these tags
 set.
 
 For removal/archival purposes, all bugs are assumed to have these tags
 set.
 
-Default: qw(unstable testing);
+Default: qw(experimental unstable testing);
 
 =cut
 
 set_default(\%config,'removal_default_distribution_tags',
 
 =cut
 
 set_default(\%config,'removal_default_distribution_tags',
-           [qw(unstable testing)]
+           [qw(experimental unstable testing)]
           );
 
 =item removal_strong_severity_default_distribution_tags
           );
 
 =item removal_strong_severity_default_distribution_tags
@@ -594,12 +563,12 @@ set_default(\%config,'removal_default_distribution_tags',
 For removal/archival purposes, all bugs with strong severity are
 assumed to have these tags set.
 
 For removal/archival purposes, all bugs with strong severity are
 assumed to have these tags set.
 
-Default: qw(unstable testing stable);
+Default: qw(experimental unstable testing stable);
 
 =cut
 
 set_default(\%config,'removal_strong_severity_default_distribution_tags',
 
 =cut
 
 set_default(\%config,'removal_strong_severity_default_distribution_tags',
-           [qw(unstable testing stable)]
+           [qw(experimental unstable testing stable)]
           );
 
 
           );
 
 
@@ -922,6 +891,15 @@ Default arguments to pass to sendmail. Defaults to C<qw(-oem -oi)>.
 
 set_default(\%config,'sendmail_arguments',[qw(-oem -oi)]);
 
 
 set_default(\%config,'sendmail_arguments',[qw(-oem -oi)]);
 
+=item envelope_from
+
+Envelope from to use for sent messages. If not set, whatever sendmail picks is
+used.
+
+=cut
+
+set_default(\%config,'envelope_from',undef);
+
 =item spam_scan
 
 Whether or not spamscan is being used; defaults to 0 (not being used
 =item spam_scan
 
 Whether or not spamscan is being used; defaults to 0 (not being used
@@ -1018,6 +996,84 @@ set_default(\%config,'spam_rules_dir','/usr/share/spamassassin');
 
 =back
 
 
 =back
 
+=head2 CGI Options
+
+=over
+
+=item libravatar_uri $gLibravatarUri
+
+URI to a libravatar configuration. If empty or undefined, libravatar
+support will be disabled. Defaults to
+libravatar.cgi, our internal federated libravatar system.
+
+=cut
+
+set_default(\%config,'libravatar_uri',$config{cgi_domain}.'/libravatar.cgi?email=');
+
+=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','');
+
+=item libravatar_default_image
+
+Default image to serve for libravatar if there is no avatar for an
+e-mail address. By default, this is a 1x1 png. [This will also be the
+image served if someone specifies avatar=no.]
+
+Default: $config{web_dir}/1x1.png
+
+=cut
+
+set_default(\%config,'libravatar_default_image',$config{web_dir}.'/1x1.png');
+
+=item libravatar_cache_dir
+
+Directory where cached libravatar images are stored
+
+Default: $config{web_dir}/libravatar/
+
+=cut
+
+set_default(\%config,'libravatar_cache_dir',$config{web_dir}.'/libravatar/');
+
+=item libravatar_blacklist
+
+Array of regular expressions to match against emails, domains, or
+images to only show the default image
+
+Default: empty array
+
+=cut
+
+set_default(\%config,'libravatar_blacklist',[]);
+
+=back
+
+=head2 Database
+
+=over
+
+=item database
+
+Name of debbugs PostgreSQL database service. If you wish to not use a service
+file, provide a full DBD::Pg compliant data-source, for example:
+C<"dbi:Pg:dbname=dbname">
+
+=back
+
+=cut
+
+set_default(\%config,'database',undef);
 
 =head2 Text Fields
 
 
 =head2 Text Fields
 
@@ -1065,10 +1121,11 @@ set_default(\%config,'html_tail',<<END);
  SUBSTITUTE_DTIME
  <!--timestamp-->
  <P>
  SUBSTITUTE_DTIME
  <!--timestamp-->
  <P>
- <A HREF=\"http://$config{web_domain}/\">Debian $config{bug} tracking system</A><BR>
+ <A HREF=\"$config{web_domain}/\">Debian $config{bug} tracking system</A><BR>
  Copyright (C) 1999 Darren O. Benham,
  1997,2003 nCipher Corporation Ltd,
  1994-97 Ian Jackson.
  Copyright (C) 1999 Darren O. Benham,
  1997,2003 nCipher Corporation Ltd,
  1994-97 Ian Jackson.
+ </P>
  </ADDRESS>
 END
 
  </ADDRESS>
 END
 
@@ -1094,7 +1151,7 @@ sub read_config{
         return;
      }
      # first, figure out what type of file we're reading in.
         return;
      }
      # first, figure out what type of file we're reading in.
-     my $fh = new IO::File $conf_file,'r'
+     my $fh = IO::File->new($conf_file,'r')
          or die "Unable to open configuration file $conf_file for reading: $!";
      # A new version configuration file must have a comment as its first line
      my $first_line = <$fh>;
          or die "Unable to open configuration file $conf_file for reading: $!";
      # A new version configuration file must have a comment as its first line
      my $first_line = <$fh>;