Commit 3088b1d2 authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 655477: Bugzilla now requires Perl 5.10.1

r=mkanat a=LpSolit
parent ab612eff
...@@ -1246,11 +1246,9 @@ sub db_new { ...@@ -1246,11 +1246,9 @@ sub db_new {
ShowErrorStatement => 1, ShowErrorStatement => 1,
HandleError => \&_handle_error, HandleError => \&_handle_error,
TaintIn => 1, TaintIn => 1,
FetchHashKeyName => 'NAME', # See https://rt.perl.org/rt3/Public/Bug/Display.html?id=30933
# Note: NAME_lc causes crash on ActiveState Perl # for the reason to use NAME instead of NAME_lc (bug 253696).
# 5.8.4 (see Bug 253696) FetchHashKeyName => 'NAME',
# XXX - This will likely cause problems in DB
# back ends that twiddle column case (Oracle?)
}; };
if ($override_attrs) { if ($override_attrs) {
......
...@@ -167,20 +167,9 @@ sub install_module { ...@@ -167,20 +167,9 @@ sub install_module {
if (!$module) { if (!$module) {
die install_string('no_such_module', { module => $name }) . "\n"; die install_string('no_such_module', { module => $name }) . "\n";
} }
my $version = $module->cpan_version;
my $module_name = $name;
if ($name eq 'LWP::UserAgent' && $^V lt v5.8.8) {
# LWP 6.x requires Perl 5.8.8 or newer.
# As PAUSE only indexes the very last version of each module,
# we have to specify the path to the tarball ourselves.
$name = 'GAAS/libwww-perl-5.837.tar.gz';
# This tarball contains LWP::UserAgent 5.835.
$version = '5.835';
}
print install_string('install_module', print install_string('install_module',
{ module => $module_name, version => $version }) . "\n"; { module => $name, version => $module->cpan_version }) . "\n";
if ($test) { if ($test) {
CPAN::Shell->force('install', $name); CPAN::Shell->force('install', $name);
......
...@@ -562,21 +562,11 @@ sub print_module_instructions { ...@@ -562,21 +562,11 @@ sub print_module_instructions {
# We only print the PPM repository note if we have to. # We only print the PPM repository note if we have to.
my $perl_ver = sprintf('%vd', $^V); my $perl_ver = sprintf('%vd', $^V);
if ($need_module_instructions && ON_ACTIVESTATE && vers_cmp($perl_ver, '5.12') < 0) { if ($need_module_instructions && ON_ACTIVESTATE && vers_cmp($perl_ver, '5.12') < 0) {
# URL when running Perl 5.8.x. my $url_to_theory58S = 'http://cpan.uwinnipeg.ca/PPMPackages/10xx/';
my $url_to_theory58S = 'http://theoryx5.uwinnipeg.ca/ppms';
# Packages for Perl 5.10 are not compatible with Perl 5.8.
if (vers_cmp($perl_ver, '5.10') > -1) {
$url_to_theory58S = 'http://cpan.uwinnipeg.ca/PPMPackages/10xx/';
}
print colored( print colored(
install_string('ppm_repo_add', install_string('ppm_repo_add',
{ theory_url => $url_to_theory58S }), { theory_url => $url_to_theory58S }),
COLOR_ERROR); COLOR_ERROR);
# ActivePerls older than revision 819 require an additional command.
if (ON_ACTIVESTATE < 819) {
print install_string('ppm_repo_up');
}
} }
if ($need_module_instructions or @{ $check_results->{apache} }) { if ($need_module_instructions or @{ $check_results->{apache} }) {
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
package Bugzilla::Util; package Bugzilla::Util;
use strict; use strict;
use feature ':5.10';
use base qw(Exporter); use base qw(Exporter);
@Bugzilla::Util::EXPORT = qw(trick_taint detaint_natural detaint_signed @Bugzilla::Util::EXPORT = qw(trick_taint detaint_natural detaint_signed
...@@ -404,13 +405,6 @@ sub diff_arrays { ...@@ -404,13 +405,6 @@ sub diff_arrays {
return (\@removed, \@added); return (\@removed, \@added);
} }
# XXX - This is a temporary subroutine till we require Perl 5.10.1.
# This will happen before Bugzilla 5.0rc1.
sub say (@) {
print @_;
print "\n";
}
sub trim { sub trim {
my ($str) = @_; my ($str) = @_;
if ($str) { if ($str) {
...@@ -437,11 +431,6 @@ sub wrap_comment { ...@@ -437,11 +431,6 @@ sub wrap_comment {
$wrappedcomment .= ($line . "\n"); $wrappedcomment .= ($line . "\n");
} }
else { else {
# Due to a segfault in Text::Tabs::expand() when processing tabs with
# Unicode (see http://rt.perl.org/rt3/Public/Bug/Display.html?id=52104),
# we have to remove tabs before processing the comment. This restriction
# can go away when we require Perl 5.8.9 or newer.
$line =~ s/\t/ /g;
$wrappedcomment .= (wrap('', '', $line) . "\n"); $wrappedcomment .= (wrap('', '', $line) . "\n");
} }
} }
...@@ -590,15 +579,9 @@ sub bz_crypt { ...@@ -590,15 +579,9 @@ sub bz_crypt {
if (Bugzilla->params->{'utf8'}) { if (Bugzilla->params->{'utf8'}) {
utf8::encode($password) if utf8::is_utf8($password); utf8::encode($password) if utf8::is_utf8($password);
} }
# Crypt the password. # Crypt the password.
$crypted_password = crypt($password, $salt); $crypted_password = crypt($password, $salt);
# HACK: Perl has bug where returned crypted password is considered
# tainted. See http://rt.perl.org/rt3/Public/Bug/Display.html?id=59998
unless(tainted($password) || tainted($salt)) {
trick_taint($crypted_password);
}
} }
else { else {
my $hasher = Digest->new($algorithm); my $hasher = Digest->new($algorithm);
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
###################################################################### ######################################################################
use strict; use strict;
use 5.008001; use 5.10.1;
use File::Basename; use File::Basename;
use Getopt::Long qw(:config bundling); use Getopt::Long qw(:config bundling);
use Pod::Usage; use Pod::Usage;
......
...@@ -1559,7 +1559,7 @@ AddType application/rdf+xml .rdf</screen> ...@@ -1559,7 +1559,7 @@ AddType application/rdf+xml .rdf</screen>
You should be able to find a compiled binary at <ulink You should be able to find a compiled binary at <ulink
url="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/" />. url="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/" />.
The following instructions assume that you are using version The following instructions assume that you are using version
5.8.1 of ActiveState. &min-perl-ver; of ActiveState.
</para> </para>
<note> <note>
...@@ -1589,32 +1589,20 @@ C:\perl&gt; <command>ppm install &lt;module name&gt;</command> ...@@ -1589,32 +1589,20 @@ C:\perl&gt; <command>ppm install &lt;module name&gt;</command>
</programlisting> </programlisting>
<para> <para>
The best source for the Windows PPM modules needed for Bugzilla If you are using Perl 5.10.1, the best source for the Windows PPM modules
is probably the theory58S website, which you can add to your list needed for Bugzilla is probably the theory58S website, which you can add
of repositories as follows (for Perl 5.8.x): to your list of repositories as follows:
</para> </para>
<programlisting> <programlisting>
<command>ppm repo add theory58S http://theoryx5.uwinnipeg.ca/ppms/</command> <command>ppm repo add theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/</command>
</programlisting> </programlisting>
<para> <para>
If you are using Perl 5.10.x, you cannot use the same PPM modules as Perl If you are using Perl 5.12 or newer, you no longer need to add
5.8.x as they are incompatible. In this case, you should add the following this repository. All modules you need are already available from
repository: the ActiveState repository.
</para> </para>
<programlisting>
<command>ppm repo add theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/</command>
</programlisting>
<note>
<para>
In versions prior to 5.8.8 build 819 of PPM the command is
<programlisting>
<command>ppm repository add theory58S http://theoryx5.uwinnipeg.ca/ppms/</command>
</programlisting>
</para>
</note>
<note> <note>
<para> <para>
The PPM repository stores modules in 'packages' that may have The PPM repository stores modules in 'packages' that may have
......
...@@ -54,11 +54,10 @@ ...@@ -54,11 +54,10 @@
<note> <note>
<para> <para>
Running Bugzilla on Windows requires the use of ActiveState Running Bugzilla on Windows requires the use of ActiveState
Perl 5.8.1 or higher. Many modules already exist in the core Perl &min-perl-ver; or higher. Many modules already exist in the core
distribution of ActiveState Perl. Additional modules can be downloaded distribution of ActiveState Perl. Additional modules can be downloaded
from <ulink url="http://theoryx5.uwinnipeg.ca/ppms/" /> if you use from <ulink url="http://cpan.uwinnipeg.ca/PPMPackages/10xx/" />
Perl 5.8.x or from <ulink url="http://cpan.uwinnipeg.ca/PPMPackages/10xx/" /> if you use Perl 5.10.1.
if you use Perl 5.10.x.
</para> </para>
</note> </note>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
###Compilation### ###Compilation###
use strict; use strict;
use 5.008001; use 5.10.1;
use lib qw(. lib t); use lib qw(. lib t);
use Config; use Config;
use Support::Files; use Support::Files;
......
...@@ -65,7 +65,7 @@ Attachment [% attidsummary %] ...@@ -65,7 +65,7 @@ Attachment [% attidsummary %]
[%- FILTER bullet = wrap(80) %] [%- FILTER bullet = wrap(80) %]
[% USE Bugzilla %] [% USE Bugzilla %]
[%-# .defined is necessary to avoid a taint issue in Perl < 5.10.1, see bug 509794. %] [%-# .defined is necessary to avoid a taint issue, see bug 509794. %]
[% IF Bugzilla.cgi.param("comment").defined && Bugzilla.cgi.param("comment").length > 0 %] [% IF Bugzilla.cgi.param("comment").defined && Bugzilla.cgi.param("comment").length > 0 %]
------- Additional Comments from [% user.identity %] ------- Additional Comments from [% user.identity %]
[%+ Bugzilla.cgi.param("comment") %] [%+ Bugzilla.cgi.param("comment") %]
......
...@@ -382,15 +382,6 @@ END ...@@ -382,15 +382,6 @@ END
* * * *
* ppm repo add theory58S ##theory_url## * ppm repo add theory58S ##theory_url##
EOT EOT
ppm_repo_up => <<EOT,
* *
* Then you have to do (also as an Administrator): *
* *
* ppm repo up theory58S *
* *
* Do that last command over and over until you see "theory58S" at the *
* top of the displayed list. *
EOT
template_precompile => "Precompiling templates...", template_precompile => "Precompiling templates...",
template_removal_failed => <<END, template_removal_failed => <<END,
WARNING: The directory '##template_cache##' could not be removed. WARNING: The directory '##template_cache##' could not be removed.
......
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