Description of problem: Although the package builds with perl 5.8.8, it produces a lot of warnings during the execution of the test suite. These warnings are new (perl 5.8.8) and didn't occur with perl 5.8.6 or 5.8.7 (something appears to have changed in the perl package between perl 5.8.7 and 5.8.8). ---------- $ make test TEST_VERBOSE=1 PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/die_check....1..1 ok 1 ok t/Uplevel......Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. Use of uninitialized value in string eq at /home/users/fedora/rpms/BUILD/Sub-Uplevel-0.09/blib/lib/Sub/Uplevel.pm line 123. 1..18 ok 1 - use Sub::Uplevel; ok 2 - Sub::Uplevel->can(uplevel) ok 3 - main->can(uplevel) ok 4 - top-level caller() not screwed up ok 5 - die() not screwed up ok 6 - uplevel() ok 7 - die() fooled ok 8 - warn() fooled ok 9 - croak() fooled ok 10 - caller() not screwed up ok 11 - die() not screwed up ok 12 - carp() fooled ok 13 - main->can(fooble) ok 14 - caller check ok 15 - shallow caller ok 16 - deep caller() ok 17 - deep caller() + uplevel ok 18 - nested uplevel()s ok All tests successful. Files=2, Tests=19, 1 wallclock secs ( 0.16 cusr + 0.08 csys = 0.24 CPU) ---------- This new behaviour causes major problems in other perl modules. For example: * perl-Test-Warn fails to build * perl-Test-Exception produces noise during the test suite * perl-WWW-Mechanize fails to build * ...
Sub-Uplevel-0.09/lib/Sub/Uplevel.pm patch ----------------------------------------- @@ -120,13 +120,14 @@ # Yes, we need a C style for loop here since $height changes for( my $up = 1; $up <= $height + 1; $up++ ) { my @caller = CORE::caller($up); + next unless @caller; if( $caller[0] eq __PACKAGE__ ) { $height++; $height += $Up_Frames unless $saw_uplevel; $saw_uplevel = 1; } }
With the above patch (already available in the CVS devel branch) applied I was able to eliminate the warnings and able to build successfully perl-Test-Warn, perl-Test-Exception and perl-WWW-Mechanize. But I am not sure if it is the best solution for the problem .... Any way, feedback would be appreciated. jpo PS - Patch in CPAN ticket 17637 http://rt.cpan.org/Public/Bug/Display.html?id=17637
Today a new working patch appeared in the CPAN ticket system: http://rt.cpan.org/Public/Bug/Display.html?id=17807
Rafael Garcia-Suarez forwarded us to one of the bug fixes mentioned in the perl 5.8.8 release notes (perl588delta): http://search.cpan.org/dist/perl/pod/perl588delta.pod#no_warnings_%27category%27_works_correctly_with_-w Source: http://www.redhat.com/archives/fedora-perl-devel-list/2006-February/msg00038.html
From the perl 5.8.8 delta page ========== ... no warnings 'category' works correctly with -w ---------------------------------------------- Previously when running with warnings enabled globally via -w, selective disabling of specific warning categories would actually turn off all warnings. This is now fixed; now no warnings 'io'; will only turn off warnings in the io class. Previously it would erroneously turn off all warnings. This bug fix may cause some programs to start correctly issuing warnings. ... ==========
Closing ticket: perl-Sub-Uplevel-0.09-4.fc5 is already in the Fedora Extra's mirrors (with the patch from comment #1 applied).