Closed Bug 1136137 Opened 10 years ago Closed 9 years ago

Require Perl 5.14

Categories

(Bugzilla :: Bugzilla-General, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
Bugzilla 6.0

People

(Reporter: LpSolit, Assigned: LpSolit)

References

(Blocks 1 open bug)

Details

(Keywords: relnote)

Attachments

(1 file, 2 obsolete files)

If you love history, read bug 655477 comment 0. :) Several Unicode problems have been fixed in Perl 5.14, and Bugzilla is full of hacks due to older releases. [root@localhost Bugzilla]# trouve 5.13 163: # until we require Perl 5.13.9 or newer. 1311543 48 -rw-r----- 1 root apache 49135 fév 23 15:02 ./Template.pm 1911: # Perl 5.13.8 and older complain about non-characters. 1312366 120 -rw-r----- 1 root apache 120159 fév 23 15:01 ./Search.pm 447: # Perl 5.13.8 and older complain about non-characters. 1311541 20 -rw-r----- 1 root apache 17712 fév 23 15:02 ./Comment.pm 122: version => ($^V >= v5.13.3) ? '1.614' : '1.54' 315: version => ($^V >= v5.13.3) ? '3.67' : '3.40', 1311330 32 -rw-r----- 1 root apache 29931 fév 14 01:59 ./Install/Requirements.pm 3637: # Perl 5.13.8 and older complain about non-characters. 1311540 168 -rw-r----- 1 root apache 170870 fév 23 15:02 ./Bug.pm [root@localhost extensions]# trouve 5.14 485: # but it's only understood since Perl 5.14. So the workaround is to write 1319056 36 -rw-r----- 1 root apache 33976 fév 24 10:31 ./Example/Extension.pm Also, Perl 5.10.1 is buggy and is unable to handle some situations correctly, see bug 509220. There is no workaround for this. The only solution is to require a newer Perl version. 5.14 is the version we want. RHEL7 comes with Perl 5.16.3, and all recent Linux distros have at least 5.14 too, see http://pkgs.org/download/perl.
Assignee: general → LpSolit
Status: NEW → ASSIGNED
No longer depends on: 1136709
Note that once we require 5.14, we should add /a to regexps when they use \d+. Per http://perldoc.perl.org/perlre.html#Character-set-modifiers: Under /a, \d always means precisely the digits "0" to "9" With /a, one can write \d with confidence that it will only match ASCII characters Currently, \d+ matches 666 (FULLWIDTH DIGIT SIX) which is not a valid integer.
Blocks: 860151
Blocks: 1214492
Attached patch WIP, v0.5 (obsolete) — Splinter Review
Still have to catch some regexp which use \d+ without /a.
Attached patch patch, v1 (obsolete) — Splinter Review
I didn't try to find all places where we use \d+, but I caught most obvious places. If we were in paranoid mode, we would use [0-9]+ already.
Attachment #8701664 - Attachment is obsolete: true
Attachment #8723560 - Flags: review?(dylan)
Attached patch patch, v1.1Splinter Review
Includes xt/ files.
Attachment #8723560 - Attachment is obsolete: true
Attachment #8723560 - Flags: review?(dylan)
Attachment #8724165 - Flags: review?(dkl)
Comment on attachment 8724165 [details] [diff] [review] patch, v1.1 Review of attachment 8724165 [details] [diff] [review]: ----------------------------------------------------------------- A few extras that need to be updated. Makefile.PL:use 5.10.1; Makefile.PL: MIN_PERL_VERSION => '5.10.1', xt/config/generate_test_data.pl:use 5.10.1; xt/lib/QA/Tests.pm:use 5.10.1; xt/lib/QA/Util.pm:use 5.10.1; xt/lib/QA/RPC.pm:use 5.10.1; xt/lib/QA/REST.pm:use 5.10.1; xt/lib/QA/RPC/XMLRPC.pm:use 5.10.1; xt/lib/QA/RPC/JSONRPC.pm:use 5.10.1; The rest looks fine and testing is normal. r=dkl
Attachment #8724165 - Flags: review?(dkl) → review+
To ssh://gitolite3@git.mozilla.org/bugzilla/bugzilla.git 438d57d..86fb87f master -> master
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Blocks: 1786949
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: