]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Config.pm
switch to compatibility level 12
[debbugs.git] / Debbugs / Config.pm
index f13e3a2bdcf58e6bf5d966affe806b855af7c314..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 @gLibravatarBlacklist)],
+                     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
 
@@ -530,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
@@ -543,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)]
           );
 
 
           );
 
 
@@ -871,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
@@ -1030,6 +1059,22 @@ set_default(\%config,'libravatar_blacklist',[]);
 
 =back
 
 
 =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
 
 The following are the only text fields in general use in the scripts;
 =head2 Text Fields
 
 The following are the only text fields in general use in the scripts;
@@ -1076,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
 
@@ -1105,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>;