Wednesday 25th January 2012
Fedora Project
Cleaned up and rebuilt perl-Module-Find and perl-Test-Synopsis in Rawhide
Local Packages
Updated perl-Class-Inspector to 1.27:
Update to Module::Install::DSL 1.04
- Update copyright year
Remove usage of defined @{"X::ISA"} to avoid warnings in 5.15.7 onwards
Updated perl-File-HomeDir to 0.99:
Updated to Module::Install 1.04
- Removed deprecated interfaces from the documentation
Don't require music and video directories in FreeDesktop tests
The use of deprecated %~ now emits a warning
Updated perl-Test-File to 1.31:
Added dir_exists_ok and dir_contains_ok
Added file_contains_like and file_contains_unlike
- Fixed a few grammatical errors in POD
Added some SKIP blocks to avoid test failures when running as root
- The test suite for this release broke for me on Fedora 4 and older distributions:
t/file_contains............... # Failed test (t/file_contains.t at line 78) # STDOUT is: # ok 1 - min_file contains (?mx-is:^ xxxxxxxxxxx $) # not ok 2 - min_file contains (?mx-is:^ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $) # # not: # ok 1 - min_file contains (?mx-is:^ xxxxxxxxxxx $) # ok 2 - min_file contains (?mx-is:^ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $) # # as expected Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/vendor_perl/5.8.6/Test/Builder/Tester.pm line 557. # STDERR is: # # Failed test (t/file_contains.t at line 77) # # 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # # xxxxxxxxxxx # # ' # # doesn't match '(?mx-is:^ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $)' # # not: # # as expected # Failed test (t/file_contains.t at line 83) # STDOUT is: # ok 1 - file has the goods # not ok 2 - file has the goods # # not: # ok 1 - file has the goods # ok 2 - file has the goods # # as expected Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/vendor_perl/5.8.6/Test/Builder/Tester.pm line 557. # STDERR is: # # Failed test (t/file_contains.t at line 82) # # 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # # xxxxxxxxxxx # # ' # # doesn't match '(?mx-is:^ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $)' # # not: # # as expected FAILED tests 15-16 Failed 2/24 tests, 91.67% okay t/owner.......................ok t/rt/30346....................ok Failed 1/16 test scripts, 93.75% okay. 2/233 subtests failed, 99.14% okay. Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/file_contains.t 24 2 8.33% 15-16 9 subtests skipped. make: *** [test_dynamic] Error 255
I believe this is due to a bug in older perls that makes the '$' anchor not work properly in qr// regexes with the m modifier, as mentioned at http://www.perlmonks.org/bare/?node_id=676601
I think the underlying bug is Perl RT#3038 and it was fixed in perl 5.8.9; the patch was applied in an update to Fedora Core 5's perl 5.8.8 package, which is why that wasn't affected
This patch works around the problem for me, and I sent it upstream at CPAN RT#74365
--- Test-File-1.30/t/file_contains.t +++ Test-File-1.30/t/file_contains.t @@ -15,9 +15,9 @@ my $file = 'min_file'; my $contents = do { open FH, $file; local $/; <FH> }; close FH; -my $pattern1 = 'x' x 11; $pattern1 = qr/^ $pattern1 $/mx; -my $pattern2 = 'x' x 40; $pattern2 = qr/^ $pattern2 $/mx; -my $bad_pattern = 'x' x 20; $bad_pattern = qr/^ $bad_pattern $/mx; +my $pattern1 = 'x' x 11; $pattern1 = qr/(?mx:^ $pattern1 $)/; +my $pattern2 = 'x' x 40; $pattern2 = qr/(?mx:^ $pattern2 $)/; +my $bad_pattern = 'x' x 20; $bad_pattern = qr/(?mx:^ $bad_pattern $)/; # like : single pattern
Cleaned up and rebuilt perl-Module-Find