From 3088b1d2724d7959ea87e84cab98963e2d2c3e72 Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Fri, 31 Aug 2012 12:31:04 +0200 Subject: Bug 655477: Bugzilla now requires Perl 5.10.1 r=mkanat a=LpSolit --- Bugzilla/DB.pm | 8 +++----- Bugzilla/Install/CPAN.pm | 13 +------------ Bugzilla/Install/Requirements.pm | 12 +----------- Bugzilla/Util.pm | 21 ++------------------- checksetup.pl | 2 +- docs/en/xml/installation.xml | 28 ++++++++-------------------- docs/en/xml/modules.xml | 7 +++---- t/001compile.t | 2 +- template/en/default/email/flagmail.txt.tmpl | 2 +- template/en/default/setup/strings.txt.pl | 9 --------- 10 files changed, 21 insertions(+), 83 deletions(-) diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index 89a0140d7..7d289aaa1 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -1246,11 +1246,9 @@ sub db_new { ShowErrorStatement => 1, HandleError => \&_handle_error, TaintIn => 1, - FetchHashKeyName => 'NAME', - # Note: NAME_lc causes crash on ActiveState Perl - # 5.8.4 (see Bug 253696) - # XXX - This will likely cause problems in DB - # back ends that twiddle column case (Oracle?) + # See https://rt.perl.org/rt3/Public/Bug/Display.html?id=30933 + # for the reason to use NAME instead of NAME_lc (bug 253696). + FetchHashKeyName => 'NAME', }; if ($override_attrs) { diff --git a/Bugzilla/Install/CPAN.pm b/Bugzilla/Install/CPAN.pm index 92ab5a267..10e0cce66 100644 --- a/Bugzilla/Install/CPAN.pm +++ b/Bugzilla/Install/CPAN.pm @@ -167,20 +167,9 @@ sub install_module { if (!$module) { 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', - { module => $module_name, version => $version }) . "\n"; + { module => $name, version => $module->cpan_version }) . "\n"; if ($test) { CPAN::Shell->force('install', $name); diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index c5abf1986..24aa1cb82 100644 --- a/Bugzilla/Install/Requirements.pm +++ b/Bugzilla/Install/Requirements.pm @@ -562,21 +562,11 @@ sub print_module_instructions { # We only print the PPM repository note if we have to. my $perl_ver = sprintf('%vd', $^V); 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://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/'; - } + my $url_to_theory58S = 'http://cpan.uwinnipeg.ca/PPMPackages/10xx/'; print colored( install_string('ppm_repo_add', { theory_url => $url_to_theory58S }), 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} }) { diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 810c6972f..78ef21e1d 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -8,6 +8,7 @@ package Bugzilla::Util; use strict; +use feature ':5.10'; use base qw(Exporter); @Bugzilla::Util::EXPORT = qw(trick_taint detaint_natural detaint_signed @@ -404,13 +405,6 @@ sub diff_arrays { 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 { my ($str) = @_; if ($str) { @@ -437,11 +431,6 @@ sub wrap_comment { $wrappedcomment .= ($line . "\n"); } 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"); } } @@ -590,15 +579,9 @@ sub bz_crypt { if (Bugzilla->params->{'utf8'}) { utf8::encode($password) if utf8::is_utf8($password); } - + # Crypt the password. $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 { my $hasher = Digest->new($algorithm); diff --git a/checksetup.pl b/checksetup.pl index bcc1ad8ea..990672b14 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -13,7 +13,7 @@ ###################################################################### use strict; -use 5.008001; +use 5.10.1; use File::Basename; use Getopt::Long qw(:config bundling); use Pod::Usage; diff --git a/docs/en/xml/installation.xml b/docs/en/xml/installation.xml index 18de454b9..974415426 100644 --- a/docs/en/xml/installation.xml +++ b/docs/en/xml/installation.xml @@ -1559,7 +1559,7 @@ AddType application/rdf+xml .rdf You should be able to find a compiled binary at . The following instructions assume that you are using version - 5.8.1 of ActiveState. + &min-perl-ver; of ActiveState. @@ -1589,32 +1589,20 @@ C:\perl> ppm install <module name> - The best source for the Windows PPM modules needed for Bugzilla - is probably the theory58S website, which you can add to your list - of repositories as follows (for Perl 5.8.x): + If you are using Perl 5.10.1, the best source for the Windows PPM modules + needed for Bugzilla is probably the theory58S website, which you can add + to your list of repositories as follows: -ppm repo add theory58S http://theoryx5.uwinnipeg.ca/ppms/ +ppm repo add theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/ - If you are using Perl 5.10.x, you cannot use the same PPM modules as Perl - 5.8.x as they are incompatible. In this case, you should add the following - repository: + If you are using Perl 5.12 or newer, you no longer need to add + this repository. All modules you need are already available from + the ActiveState repository. - -ppm repo add theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/ - - - - - In versions prior to 5.8.8 build 819 of PPM the command is - -ppm repository add theory58S http://theoryx5.uwinnipeg.ca/ppms/ - - - The PPM repository stores modules in 'packages' that may have diff --git a/docs/en/xml/modules.xml b/docs/en/xml/modules.xml index 5017e241b..4ae77e9b6 100644 --- a/docs/en/xml/modules.xml +++ b/docs/en/xml/modules.xml @@ -54,11 +54,10 @@ 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 - from if you use - Perl 5.8.x or from - if you use Perl 5.10.x. + from + if you use Perl 5.10.1. diff --git a/t/001compile.t b/t/001compile.t index a82b30a9e..186e2a8ee 100644 --- a/t/001compile.t +++ b/t/001compile.t @@ -11,7 +11,7 @@ ###Compilation### use strict; -use 5.008001; +use 5.10.1; use lib qw(. lib t); use Config; use Support::Files; diff --git a/template/en/default/email/flagmail.txt.tmpl b/template/en/default/email/flagmail.txt.tmpl index cdda8d677..411c4e641 100644 --- a/template/en/default/email/flagmail.txt.tmpl +++ b/template/en/default/email/flagmail.txt.tmpl @@ -65,7 +65,7 @@ Attachment [% attidsummary %] [%- FILTER bullet = wrap(80) %] [% 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 %] ------- Additional Comments from [% user.identity %] [%+ Bugzilla.cgi.param("comment") %] diff --git a/template/en/default/setup/strings.txt.pl b/template/en/default/setup/strings.txt.pl index 3512ab03d..f6f32e5a1 100644 --- a/template/en/default/setup/strings.txt.pl +++ b/template/en/default/setup/strings.txt.pl @@ -381,15 +381,6 @@ END * the following command as an Administrator: * * * * ppm repo add theory58S ##theory_url## -EOT - ppm_repo_up => < "Precompiling templates...", template_removal_failed => <