diff options
author | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-08-11 12:20:30 +0200 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-08-11 12:20:30 +0200 |
commit | 6715b4dbad317ac79ff55c3c761cf6af58651a26 (patch) | |
tree | 0cb8529400a2c9feb8590749fbdf6a2b693c8582 /Bugzilla/Install/Localconfig.pm | |
parent | aec17c9f7769c22173d9d722250628a6aa3ffd2a (diff) | |
download | bugzilla-6715b4dbad317ac79ff55c3c761cf6af58651a26.tar.gz bugzilla-6715b4dbad317ac79ff55c3c761cf6af58651a26.tar.xz |
Bug 586210: Make every important string printed by checksetup.pl localizable,
including the localconfig parameter descriptions
r=mkanat, a=mkanat (module owner)
Diffstat (limited to 'Bugzilla/Install/Localconfig.pm')
-rw-r--r-- | Bugzilla/Install/Localconfig.pm | 176 |
1 files changed, 21 insertions, 155 deletions
diff --git a/Bugzilla/Install/Localconfig.pm b/Bugzilla/Install/Localconfig.pm index d5d76cb79..956d3c72e 100644 --- a/Bugzilla/Install/Localconfig.pm +++ b/Bugzilla/Install/Localconfig.pm @@ -31,7 +31,7 @@ package Bugzilla::Install::Localconfig; use strict; use Bugzilla::Constants; -use Bugzilla::Install::Util qw(bin_loc); +use Bugzilla::Install::Util qw(bin_loc install_string); use Bugzilla::Util qw(generate_random_password); use Data::Dumper; @@ -50,169 +50,66 @@ use constant LOCALCONFIG_VARS => ( { name => 'create_htaccess', default => 1, - desc => <<EOT -# If you are using Apache as your web server, Bugzilla can create .htaccess -# files for you that will instruct Apache not to serve files that shouldn't -# be accessed from the web browser (like your local configuration data and non-cgi -# executable files). For this to work, the directory your Bugzilla -# installation is in must be within the jurisdiction of a <Directory> block -# in the httpd.conf file that has 'AllowOverride Limit' in it. If it has -# 'AllowOverride All' or other options with Limit, that's fine. -# (Older Apache installations may use an access.conf file to store these -# <Directory> blocks.) -# If this is set to 1, Bugzilla will create these files if they don't exist. -# If this is set to 0, Bugzilla will not create these files. -EOT }, { name => 'webservergroup', default => ON_WINDOWS ? '' : 'apache', - desc => q{# Usually, this is the group your web server runs as. -# If you have a Windows box, ignore this setting. -# If you have use_suexec switched on below, this is the group Apache switches -# to in order to run Bugzilla scripts. -# If you do not have access to the group your scripts will run under, -# set this to "". If you do set this to "", then your Bugzilla installation -# will be _VERY_ insecure, because some files will be world readable/writable, -# and so anyone who can get local access to your machine can do whatever they -# want. You should only have this set to "" if this is a testing installation -# and you cannot set this up any other way. YOU HAVE BEEN WARNED! -# If you set this to anything other than "", you will need to run checksetup.pl -# as} . ROOT_USER . qq{, or as a user who is a member of the specified group.\n} }, { name => 'use_suexec', default => 0, - desc => <<EOT -# Set this if Bugzilla runs in an Apache SuexecUserGroup environment. -# (If your web server runs control panel software (cPanel, Plesk or similar), -# or if your Bugzilla is to run in a shared hosting environment, then you are -# almost certainly in an Apache SuexecUserGroup environment.) -# If you have a Windows box, ignore this setting. -# If set to 0, Bugzilla will set file permissions as tightly as possible. -# If set to 1, Bugzilla will set file permissions so that it may work in an -# SuexecUserGroup environment. The difference is that static files (CSS, -# JavaScript and so on) will receive world read permissions. -EOT }, { name => 'db_driver', default => 'mysql', - desc => <<EOT -# What SQL database to use. Default is mysql. List of supported databases -# can be obtained by listing Bugzilla/DB directory - every module corresponds -# to one supported database and the name corresponds to a driver name. -EOT }, { name => 'db_host', - default => 'localhost', - desc => - "# The DNS name of the host that the database server runs on.\n" + default => 'localhost', }, { name => 'db_name', default => 'bugs', - desc => "# The name of the database\n" }, { name => 'db_user', default => 'bugs', - desc => "# Who we connect to the database as.\n" }, { name => 'db_pass', default => '', - desc => <<EOT -# Enter your database password here. It's normally advisable to specify -# a password for your bugzilla database user. -# If you use apostrophe (') or a backslash (\\) in your password, you'll -# need to escape it by preceding it with a '\\' character. (\\') or (\\) -# (Far simpler just not to use those characters.) -EOT }, { name => 'db_port', default => 0, - desc => <<EOT -# Sometimes the database server is running on a non-standard port. If that's -# the case for your database server, set this to the port number that your -# database server is running on. Setting this to 0 means "use the default -# port for my database server." -EOT }, { name => 'db_sock', default => '', - desc => <<EOT -# MySQL Only: Enter a path to the unix socket for MySQL. If this is -# blank, then MySQL's compiled-in default will be used. You probably -# want that. -EOT }, { name => 'db_check', default => 1, - desc => <<EOT -# Should checksetup.pl try to verify that your database setup is correct? -# (with some combinations of database servers/Perl modules/moonphase this -# doesn't work) -EOT }, { name => 'index_html', default => 0, - desc => <<EOT -# With the introduction of a configurable index page using the -# template toolkit, Bugzilla's main index page is now index.cgi. -# Most web servers will allow you to use index.cgi as a directory -# index, and many come preconfigured that way, but if yours doesn't -# then you'll need an index.html file that provides redirection -# to index.cgi. Setting \$index_html to 1 below will allow -# checksetup.pl to create one for you if it doesn't exist. -# NOTE: checksetup.pl will not replace an existing file, so if you -# wish to have checksetup.pl create one for you, you must -# make sure that index.html doesn't already exist -EOT }, { name => 'cvsbin', - default => \&_get_default_cvsbin, - desc => <<EOT -# For some optional functions of Bugzilla (such as the pretty-print patch -# viewer), we need the cvs binary to access files and revisions. -# Because it's possible that this program is not in your path, you can specify -# its location here. Please specify the full path to the executable. -EOT + default => sub { bin_loc('cvs') }, }, { name => 'interdiffbin', - default => \&_get_default_interdiffbin, - desc => <<EOT -# For some optional functions of Bugzilla (such as the pretty-print patch -# viewer), we need the interdiff binary to make diffs between two patches. -# Because it's possible that this program is not in your path, you can specify -# its location here. Please specify the full path to the executable. -EOT + default => sub { bin_loc('interdiff') }, }, { name => 'diffpath', - default => \&_get_default_diffpath, - desc => <<EOT -# The interdiff feature needs diff, so we have to have that path. -# Please specify the directory name only; do not use trailing slash. -EOT + default => sub { dirname(bin_loc('diff')) }, }, { name => 'site_wide_secret', default => sub { generate_random_password(256) }, - desc => <<EOT -# This secret key is used by your installation for the creation and -# validation of encrypted tokens to prevent unsolicited changes, -# such as bug changes. A random string is generated by default. -# It's very important that this key is kept secret. It also must be -# very long. -EOT }, ); @@ -229,18 +126,8 @@ sub read_localconfig { $s->rdo($filename); if ($@ || $!) { my $err_msg = $@ ? $@ : $!; - die <<EOT; -An error has occurred while reading your 'localconfig' file. The text of -the error message is: - -$err_msg - -Please fix the error in your 'localconfig' file. Alternately, rename your -'localconfig' file, rerun checksetup.pl, and re-enter your answers. - - \$ mv -f localconfig localconfig.old - \$ ./checksetup.pl -EOT + die install_string('error_localconfig_read', + { error => $err_msg, localconfig => $filename }), "\n"; } my @read_symbols; @@ -336,15 +223,7 @@ sub update_localconfig { } if (!$localconfig->{'interdiffbin'} && $output) { - print <<EOT - -OPTIONAL NOTE: If you want to be able to use the 'difference between two -patches' feature of Bugzilla (which requires the PatchReader Perl module -as well), you should install patchutils from: - - http://cyberelk.net/tim/patchutils/ - -EOT + print "\n", install_string('patchutils_missing'), "\n"; } my @old_vars; @@ -365,34 +244,28 @@ EOT } close $old_file; my $oldstuff = join(', ', @old_vars); - print <<EOT - -The following variables are no longer used in $filename, and -have been moved to $filename_old: $oldstuff - -EOT + print install_string('lc_old_vars', + { localconfig => $filename, old_file => $filename_old, + vars => $oldstuff }), "\n"; } # Re-write localconfig open(my $fh, ">$filename") || die "$filename: $!"; foreach my $var (LOCALCONFIG_VARS) { - print $fh "\n", $var->{desc}, - Data::Dumper->Dump([$localconfig->{$var->{name}}], - ["*$var->{name}"]); + my $name = $var->{name}; + my $desc = install_string("localconfig_$name", { root => ROOT_USER }); + chomp($desc); + # Make the description into a comment. + $desc =~ s/^/# /mg; + print $fh $desc, "\n", + Data::Dumper->Dump([$localconfig->{$name}], + ["*$name"]), "\n"; } if (@new_vars) { my $newstuff = join(', ', @new_vars); - print <<EOT; - -This version of Bugzilla contains some variables that you may want to -change and adapt to your local settings. Please edit the file -$filename and rerun checksetup.pl. - -The following variables are new to $filename since you last ran -checksetup.pl: $newstuff - -EOT + print "\n", install_string('lc_new_vars', + { localconfig => $filename, new_vars => $newstuff }), "\n"; exit; } @@ -402,13 +275,6 @@ EOT return { old_vars => \@old_vars, new_vars => \@new_vars }; } -sub _get_default_cvsbin { return bin_loc('cvs') } -sub _get_default_interdiffbin { return bin_loc('interdiff') } -sub _get_default_diffpath { - my $diff_bin = bin_loc('diff'); - return dirname($diff_bin); -} - 1; __END__ |