Commit 4d55f265 authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 550097: checksetup.pl should detect when run via a web server (cgi) and fail with a sane error

r/a=mkanat
parent 6b384998
......@@ -298,7 +298,7 @@ sub _wanted_languages {
# Checking SERVER_SOFTWARE is the same as i_am_cgi() in Bugzilla::Util.
if (exists $ENV{'SERVER_SOFTWARE'}) {
my $cgi = Bugzilla->cgi;
my $cgi = eval { Bugzilla->cgi } || eval { require CGI; return CGI->new() };
$requested = $cgi->http('Accept-Language') || '';
my $lang = $cgi->cookie('LANG');
push(@wanted, $lang) if $lang;
......@@ -504,6 +504,12 @@ sub vers_cmp {
@A <=> @B;
}
sub no_checksetup_from_cgi {
print "Content-Type: text/html; charset=UTF-8\r\n\r\n";
print install_string('no_checksetup_from_cgi');
exit;
}
######################
# Helper Subroutines #
######################
......
......@@ -60,6 +60,9 @@ use Bugzilla::Install::Util qw(install_string get_version_and_os
# Live Code
######################################################################
# Do not run checksetup.pl from the web browser.
Bugzilla::Install::Util::no_checksetup_from_cgi() if $ENV{'SERVER_SOFTWARE'};
# When we're running at the command line, we need to pick the right
# language before ever displaying any string.
init_console();
......
......@@ -337,6 +337,31 @@ WARNING: We are about to convert your table storage format to UTF-8. This
If you ever used a version of Bugzilla before 2.22, we STRONGLY
recommend that you stop checksetup.pl NOW and run contrib/recode.pl.
END
no_checksetup_from_cgi => <<END,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>checksetup.pl cannot run from a web browser</title>
</head>
<body>
<h1>checksetup.pl cannot run from a web browser</h1>
<p>
You <b>must not</b> execute this script from your web browser.
To install or upgrade Bugzilla, run this script from
the command-line (e.g. <tt>bash</tt> or <tt>ssh</tt> on Linux
or <tt>cmd.exe</tt> on Windows), and follow instructions given there.
</p>
<p>
For more information on how to install Bugzilla, please
<a href="http://www.bugzilla.org/docs/">read the documentation</a>
available on the official Bugzilla website.
</p>
</body>
</html>
END
patchutils_missing => <<'END',
OPTIONAL NOTE: If you want to be able to use the 'difference between two
patches' feature of Bugzilla (which requires the PatchReader Perl module
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment