Description of problem: While attempting to install a perl module a disrepancy was found in the perl build on Fedora 7. Version-Release number of selected component (if applicable): perl-5.8.8-24.fc7.i386 How reproducible: Attempt to install the Task::Weaken perl module and an error will be produced. Steps to Reproduce: 1. perl -MCPAN -e "install Task::Weaken" 2. Scalar::Util::weaken ERROR 3. Actual results: ERROR: A CPAN module critically requires a function (Scalar::Util::weaken) that should exist in your Scalar::Util module but doesn't. This probably happened because you are using a Perl provided by a binary package from a vendor, and this vendor has packaged Perl incorrectly. Expected results: Module is installed. Additional info:
In addition to the above problem, since the latest perl update, I cannot install any perl modules. The following error is thrown: Undefined subroutine &Compress::Zlib::gzopen called at /usr/lib/perl5/5.8.8/CPAN.pm line 5721 I am not sure if this is related or not. Something happened in the last build.
The solution to the buggy perl builds are to manually re-install Scalar::Util. Unfortunatley, the latest perl build has the same problem and I had to manually re-install.
Latest perl update has the same problem: perl-5.8.8-26.fc7 Manually re-install Scalar::Util to get around the problem.
I'm not sure where this bug arises from. The Fedora perl package contains Scalar::Util, with the weaken function. I tested it like this: [SHOULD FAIL] perl -e 'use Scalar::Util qw(foo)' [spot@localhost ~]$ perl -e 'use Scalar::Util qw(foo)' "foo" is not exported by the Scalar::Util module Can't continue after import errors at -e line 1 BEGIN failed--compilation aborted at -e line 1. [SHOULD NOT FAIL] perl -e 'use Scalar::Util qw(weaken)' [spot@localhost ~]$ perl -e 'use Scalar::Util qw(weaken)' [spot@localhost ~]$ Just to double check, I downloaded Task-Weaken-1.01.tar.gz from CPAN, and was able to successfully build/install it without errors on F-7. My best guess is that you have a mismatch of perl, some locally built or older, and Fedora's perl, but I can't reproduce this on a clean F-7 build.
After making the perl update, the same problem recurred... yum update... Dec 05 01:01:39 Updated: perl-libs - 4:5.8.8-27.fc7.i386 Dec 05 01:01:57 Updated: perl - 4:5.8.8-27.fc7.i386 Dec 05 01:01:57 Updated: perl-Params-Util - 0.31-2.fc7.noarch Dec 05 01:01:57 Updated: perl-Algorithm-Dependency - 1.104-2.fc7.noarch Dec 05 01:01:58 Updated: perl-HTML-Table - 2.06-1.fc7.1.noarch Dec 05 01:01:58 Updated: perl-Class-Inspector - 1.18-2.fc7.noarch Dec 05 01:01:59 Updated: perl-Test-Simple - 0.62-27.fc7.i386 Dec 05 01:02:00 Updated: perl-Test-Harness - 2.56-27.fc7.i386 Dec 05 01:02:00 Updated: perl-CPAN - 1.76_02-27.fc7.i386 Dec 05 01:02:01 Updated: perl-ExtUtils-MakeMaker - 6.30-27.fc7.i386 Dec 05 01:02:02 Updated: perl-devel - 4:5.8.8-27.fc7.i386 Dec 05 01:02:02 Updated: perl-ExtUtils-Embed - 1.26-27.fc7.i386 perl -MCPAN -e "install Task::Weaken" ... CPAN: Storable loaded ok Going to read /root/.cpan/Metadata Database was generated on Tue, 04 Dec 2007 20:38:45 GMT Running install for module Task::Weaken Running make for A/AD/ADAMK/Task-Weaken-1.02.tar.gz CPAN: LWP::UserAgent loaded ok Fetching with LWP: http://www.perl.com/CPAN/authors/id/A/AD/ADAMK/Task-Weaken-1.02.tar.gz CPAN: Digest::MD5 loaded ok Fetching with LWP: http://www.perl.com/CPAN/authors/id/A/AD/ADAMK/CHECKSUMS Undefined subroutine &Compress::Zlib::gzopen called at /usr/lib/perl5/5.8.8/CPAN.pm line 5721. ========================== There is an issue with the Fedora perl builds that cause this issue. Any attempts to install a module will fail.. another example: > cpan Catalyst::Plugin::ConfigLoader ... # Failed test 'use Catalyst;' # in t/21-mock_load_env.t at line 9. # Tried to use 'Catalyst'. # Error: Weak references are not implemented in the version of perl at /usr/lib/perl5/site_perl/5.8.8/Catalyst.pm line 24 # BEGIN failed--compilation aborted at t/21-mock_load_env.t line 9. # Compilation failed in require at (eval 4) line 2. # BEGIN failed--compilation aborted at (eval 4) line 2. Can't locate object method "config" via package "MockApp" at t/21-mock_load_env.t line 13. # Looks like you planned 9 tests but only ran 1. # Looks like you failed 1 test of 1 run. # Looks like your test died just after 1.
In addition, after manually re-installing Scalar::Util, this problem is fized... Making, testing and installing Scalar::List::Utils .. Untarring module file Executing gunzip -c /tmp/.webmin/Scalar-List-Utils-1.19.tar.gz | tar xvf - .. Scalar-List-Utils-1.19/ Scalar-List-Utils-1.19/t/ Scalar-List-Utils-1.19/t/refaddr.t Scalar-List-Utils-1.19/t/p_tainted.t Scalar-List-Utils-1.19/t/p_maxstr.t Scalar-List-Utils-1.19/t/p_blessed.t Scalar-List-Utils-1.19/t/tainted.t Scalar-List-Utils-1.19/t/maxstr.t Scalar-List-Utils-1.19/t/p_minstr.t Scalar-List-Utils-1.19/t/p_readonly.t Scalar-List-Utils-1.19/t/p_min.t Scalar-List-Utils-1.19/t/p_refaddr.t Scalar-List-Utils-1.19/t/reftype.t Scalar-List-Utils-1.19/t/blessed.t Scalar-List-Utils-1.19/t/lln.t Scalar-List-Utils-1.19/t/proto.t Scalar-List-Utils-1.19/t/p_first.t Scalar-List-Utils-1.19/t/minstr.t Scalar-List-Utils-1.19/t/first.t Scalar-List-Utils-1.19/t/p_shuffle.t Scalar-List-Utils-1.19/t/min.t Scalar-List-Utils-1.19/t/reduce.t Scalar-List-Utils-1.19/t/p_lln.t Scalar-List-Utils-1.19/t/max.t Scalar-List-Utils-1.19/t/p_openhan.t Scalar-List-Utils-1.19/t/p_max.t Scalar-List-Utils-1.19/t/openhan.t Scalar-List-Utils-1.19/t/readonly.t Scalar-List-Utils-1.19/t/isvstring.t Scalar-List-Utils-1.19/t/p_sum.t Scalar-List-Utils-1.19/t/p_reduce.t Scalar-List-Utils-1.19/t/sum.t Scalar-List-Utils-1.19/t/shuffle.t Scalar-List-Utils-1.19/t/dualvar.t Scalar-List-Utils-1.19/t/00version.t Scalar-List-Utils-1.19/t/weak.t Scalar-List-Utils-1.19/t/p_reftype.t Scalar-List-Utils-1.19/inc/ Scalar-List-Utils-1.19/inc/Test/ Scalar-List-Utils-1.19/inc/Test/Builder.pm Scalar-List-Utils-1.19/inc/Test/Builder/ Scalar-List-Utils-1.19/inc/Test/Builder/Module.pm Scalar-List-Utils-1.19/inc/Test/More.pm Scalar-List-Utils-1.19/inc/Module/ Scalar-List-Utils-1.19/inc/Module/Install.pm Scalar-List-Utils-1.19/inc/Module/Install/ Scalar-List-Utils-1.19/inc/Module/Install/InstallDirs.pm Scalar-List-Utils-1.19/inc/Module/Install/Include.pm Scalar-List-Utils-1.19/inc/Module/Install/Makefile.pm Scalar-List-Utils-1.19/inc/Module/Install/Metadata.pm Scalar-List-Utils-1.19/inc/Module/Install/Win32.pm Scalar-List-Utils-1.19/inc/Module/Install/Fetch.pm Scalar-List-Utils-1.19/inc/Module/Install/Base.pm Scalar-List-Utils-1.19/inc/Module/Install/Can.pm Scalar-List-Utils-1.19/Changes Scalar-List-Utils-1.19/lib/ Scalar-List-Utils-1.19/lib/List/ Scalar-List-Utils-1.19/lib/List/Util.pm Scalar-List-Utils-1.19/lib/Scalar/ Scalar-List-Utils-1.19/lib/Scalar/Util.pm Scalar-List-Utils-1.19/MANIFEST Scalar-List-Utils-1.19/META.yml Scalar-List-Utils-1.19/Util.xs Scalar-List-Utils-1.19/mytypemap Scalar-List-Utils-1.19/multicall.h Scalar-List-Utils-1.19/Makefile.PL Scalar-List-Utils-1.19/README Scalar-List-Utils-1.19/SIGNATURE Compiling module Executing /usr/bin/perl Makefile.PL && make .. Checking if your kit is complete... Looks good Writing Makefile for List::Util cp lib/List/Util.pm blib/lib/List/Util.pm cp lib/Scalar/Util.pm blib/lib/Scalar/Util.pm /usr/bin/perl "-Iinc" /usr/lib/perl5/vendor_perl/5.8.8/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8. 8/ExtUtils/typemap Util.xs > Util.xsc && mv Util.xsc Util.c gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/ local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune =generic -fasynchronous-unwind-tables -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fPIC "-I/usr/lib/p erl5/5.8.8/i386-linux-thread-multi/CORE" -DPERL_EXT Util.c Running Mkbootstrap for List::Util () chmod 644 Util.bs rm -f blib/arch/auto/List/Util/Util.so gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-b uffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib Util.o - o blib/arch/auto/List/Util/Util.so \ \ chmod 755 blib/arch/auto/List/Util/Util.so cp Util.bs blib/arch/auto/List/Util/Util.bs chmod 644 blib/arch/auto/List/Util/Util.bs Manifying blib/man3/List::Util.3pm Manifying blib/man3/Scalar::Util.3pm Testing module Executing make test .. PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', ' blib/arch')" t/*.t t/00version.....ok t/blessed.......ok t/dualvar.......ok t/first.........ok 2/17 skipped: Poor man's MULTICALL can't cope t/isvstring.....ok t/lln...........ok t/max...........ok t/maxstr........ok t/min...........ok t/minstr........ok t/openhan.......ok t/p_blessed.....ok t/p_first.......ok t/p_lln.........ok t/p_max.........ok t/p_maxstr......ok t/p_min.........ok t/p_minstr......ok t/p_openhan.....ok t/p_readonly....ok t/p_reduce......ok t/p_refaddr.....ok t/p_reftype.....ok t/p_shuffle.....ok t/p_sum.........ok t/p_tainted.....ok t/proto.........ok t/readonly......ok t/reduce........ok 2/23 skipped: Poor man's MULTICALL can't cope t/refaddr.......ok t/reftype.......ok t/shuffle.......ok t/sum...........ok t/tainted.......ok t/weak..........ok All tests successful, 4 subtests skipped. Files=35, Tests=380, 2 wallclock secs ( 1.52 cusr + 0.40 csys = 1.92 CPU) Installing module Executing make install .. Installing /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.so Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Writing /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/.packlist Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod Make, test and install of Scalar::List::Utils successful. ============= NOW TEST SAME MODULE INSTALL ======================= cpan Catalyst::Plugin::ConfigLoader CPAN: Storable loaded ok Going to read /root/.cpan/Metadata Database was generated on Tue, 04 Dec 2007 20:38:45 GMT Running install for module Catalyst::Plugin::ConfigLoader Running make for B/BR/BRICAS/Catalyst-Plugin-ConfigLoader-0.19.tar.gz CPAN: Digest::MD5 loaded ok CPAN: Compress::Zlib loaded ok Checksum for /root/.cpan/sources/authors/id/B/BR/BRICAS/Catalyst-Plugin-ConfigLoader-0.19.tar.gz ok Scanning cache /root/.cpan/build for sizes Catalyst-Plugin-ConfigLoader-0.19/ Catalyst-Plugin-ConfigLoader-0.19/inc/ Catalyst-Plugin-ConfigLoader-0.19/inc/Module/ Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/ Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/AutoInstall.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/Fetch.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/Makefile.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/Include.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/Base.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/Metadata.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/Can.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/WriteAll.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/Install/Win32.pm Catalyst-Plugin-ConfigLoader-0.19/inc/Module/AutoInstall.pm Catalyst-Plugin-ConfigLoader-0.19/t/ Catalyst-Plugin-ConfigLoader-0.19/t/lib/ Catalyst-Plugin-ConfigLoader-0.19/t/lib/TestApp/ Catalyst-Plugin-ConfigLoader-0.19/t/lib/TestApp/testapp.pl Catalyst-Plugin-ConfigLoader-0.19/t/lib/TestApp/Controller/ Catalyst-Plugin-ConfigLoader-0.19/t/lib/TestApp/Controller/Config.pm Catalyst-Plugin-ConfigLoader-0.19/t/lib/TestApp.pm Catalyst-Plugin-ConfigLoader-0.19/t/20-mock_load.t Catalyst-Plugin-ConfigLoader-0.19/t/mockapp/ Catalyst-Plugin-ConfigLoader-0.19/t/mockapp/mockapp_local.pl Catalyst-Plugin-ConfigLoader-0.19/t/mockapp/mockapp.pl Catalyst-Plugin-ConfigLoader-0.19/t/98-pod_coverage.t Catalyst-Plugin-ConfigLoader-0.19/t/10-live_auto.t Catalyst-Plugin-ConfigLoader-0.19/t/01-use.t Catalyst-Plugin-ConfigLoader-0.19/t/99-pod.t Catalyst-Plugin-ConfigLoader-0.19/t/21-mock_load_env.t Catalyst-Plugin-ConfigLoader-0.19/Changes Catalyst-Plugin-ConfigLoader-0.19/MANIFEST Catalyst-Plugin-ConfigLoader-0.19/lib/ Catalyst-Plugin-ConfigLoader-0.19/lib/Catalyst/ Catalyst-Plugin-ConfigLoader-0.19/lib/Catalyst/Plugin/ Catalyst-Plugin-ConfigLoader-0.19/lib/Catalyst/Plugin/ConfigLoader/ Catalyst-Plugin-ConfigLoader-0.19/lib/Catalyst/Plugin/ConfigLoader/Manual.pod Catalyst-Plugin-ConfigLoader-0.19/lib/Catalyst/Plugin/ConfigLoader.pm Catalyst-Plugin-ConfigLoader-0.19/META.yml Catalyst-Plugin-ConfigLoader-0.19/README Catalyst-Plugin-ConfigLoader-0.19/Makefile.PL Removing previously used /root/.cpan/build/Catalyst-Plugin-ConfigLoader-0.19 CPAN.pm: Going to build B/BR/BRICAS/Catalyst-Plugin-ConfigLoader-0.19.tar.gz *** Module::AutoInstall version 1.03 *** Checking for Perl dependencies... [Core Features] - Test::More ...loaded. (0.62) - Catalyst::Runtime ...loaded. (5.7011 >= 5.7008) - Data::Visitor ...loaded. (0.09 >= 0.02) - Config::Any ...loaded. (0.08 >= 0.08) *** Module::AutoInstall configuration finished. Checking if your kit is complete... Looks good Writing Makefile for Catalyst::Plugin::ConfigLoader cp lib/Catalyst/Plugin/ConfigLoader/Manual.pod blib/lib/Catalyst/Plugin/ConfigLoader/Manual.pod cp lib/Catalyst/Plugin/ConfigLoader.pm blib/lib/Catalyst/Plugin/ConfigLoader.pm Manifying blib/man3/Catalyst::Plugin::ConfigLoader::Manual.3pm Manifying blib/man3/Catalyst::Plugin::ConfigLoader.3pm /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/01-use.t t/10-live_auto.t t/20-mock_load.t t/21-mock_load_env.t t/98-pod_coverage.t t/99-pod.t t/01-use..............ok t/10-live_auto........ok t/20-mock_load........ok t/21-mock_load_env....ok t/98-pod_coverage.....ok t/99-pod..............ok All tests successful. Files=6, Tests=27, 2 wallclock secs ( 1.45 cusr + 0.19 csys = 1.64 CPU) /usr/bin/make test -- OK Running make install Manifying blib/man3/Catalyst::Plugin::ConfigLoader::Manual.3pm Manifying blib/man3/Catalyst::Plugin::ConfigLoader.3pm Installing /usr/lib/perl5/site_perl/5.8.8/Catalyst/Plugin/ConfigLoader.pm Installing /usr/lib/perl5/site_perl/5.8.8/Catalyst/Plugin/ConfigLoader/Manual.pod Installing /usr/share/man/man3/Catalyst::Plugin::ConfigLoader.3pm Installing /usr/share/man/man3/Catalyst::Plugin::ConfigLoader::Manual.3pm Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Catalyst/Plugin/ConfigLoader/.packlist Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod /usr/bin/make install -- OK ============== # cpan Task::Weaken CPAN: Storable loaded ok Going to read /root/.cpan/Metadata Database was generated on Tue, 04 Dec 2007 20:38:45 GMT Running install for module Task::Weaken Running make for A/AD/ADAMK/Task-Weaken-1.02.tar.gz CPAN: Digest::MD5 loaded ok CPAN: Compress::Zlib loaded ok Checksum for /root/.cpan/sources/authors/id/A/AD/ADAMK/Task-Weaken-1.02.tar.gz ok Scanning cache /root/.cpan/build for sizes Task-Weaken-1.02/ Task-Weaken-1.02/README Task-Weaken-1.02/Makefile.PL Task-Weaken-1.02/LICENSE Task-Weaken-1.02/META.yml Task-Weaken-1.02/lib/ Task-Weaken-1.02/lib/Task/ Task-Weaken-1.02/lib/Task/Weaken.pm Task-Weaken-1.02/MANIFEST Task-Weaken-1.02/Changes Task-Weaken-1.02/t/ Task-Weaken-1.02/t/01_compile.t Task-Weaken-1.02/t/98_pod.t Task-Weaken-1.02/t/02_weaken.t Task-Weaken-1.02/t/99_pmv.t Task-Weaken-1.02/inc/ Task-Weaken-1.02/inc/Module/ Task-Weaken-1.02/inc/Module/Install/ Task-Weaken-1.02/inc/Module/Install/Win32.pm Task-Weaken-1.02/inc/Module/Install/WriteAll.pm Task-Weaken-1.02/inc/Module/Install/Can.pm Task-Weaken-1.02/inc/Module/Install/Metadata.pm Task-Weaken-1.02/inc/Module/Install/Base.pm Task-Weaken-1.02/inc/Module/Install/Makefile.pm Task-Weaken-1.02/inc/Module/Install/Fetch.pm Task-Weaken-1.02/inc/Module/Install.pm Removing previously used /root/.cpan/build/Task-Weaken-1.02 CPAN.pm: Going to build A/AD/ADAMK/Task-Weaken-1.02.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Task::Weaken cp lib/Task/Weaken.pm blib/lib/Task/Weaken.pm Manifying blib/man3/Task::Weaken.3pm /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/01_compile....ok t/02_weaken.....ok t/98_pod........skipped all skipped: Author tests not required for installation t/99_pmv........skipped all skipped: Author tests not required for installation All tests successful, 2 tests skipped. Files=4, Tests=21, 0 wallclock secs ( 0.13 cusr + 0.05 csys = 0.18 CPU) /usr/bin/make test -- OK Running make install Installing /usr/lib/perl5/site_perl/5.8.8/Task/Weaken.pm Installing /usr/share/man/man3/Task::Weaken.3pm Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Task/Weaken/.packlist Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod /usr/bin/make install -- OK
Also, I get the following error message when installing DBIx modules which may or may not be related... cpan Catalyst::Authentication::Store::DBIx::Class ... WARNING: DBIx::Class::StartupCheck: This version of Perl is likely to exhibit extremely slow performance for certain critical operations. Please consider recompiling Perl. For more information, see https://bugzilla.redhat.com/show_bug.cgi?id=196836 and/or http://lists.scsys.co.uk/pipermail/dbix-class/2007-October/005119.html You can suppress this message by setting DBIC_NO_WARN_BAD_PERL=1 in your environment.
(In reply to comment #5) > After making the perl update, the same problem recurred... My guess is still that you have a locally compiled copy of perl, and cpan built addon modules against that locally compiled copy. When you update to the Fedora perl, the two environments get confused again, and you get all these failure cases. This is made even more evident by your last comment, about bz 196836, which is definitely fixed in the F-7 perl. Look at 245592 (and 294021). You almost certainly have locally compiled bits in site_perl which are to blame, not the Fedora packaged bits. Closing this as NOTABUG.
To be wholly fair, if you can tell me how to reproduce this, literally, step by step, with step 1 being a clean install of Fedora on a system (or in a virtual machine), with the explicit commands (cpan calls, yum calls, etc) which can get the clean Fedora 7 system in this state, I will be happy to troubleshoot the reproduced issue, but I have been entirely unable to reproduce your problems on a clean system.
I really thought I did that in the previous steps. I do not have a locally compiled version of perl. It is purely Fedora built. I am not that adventurous. I just install various modules from cpan that are not built in to fedora. Step 1. yum update (installed latest perl updates) Step 2, cpan "module with Weak references requirment or in my case any cpan module Step 3. failed install with various errors depending on module: "Undefined subroutine &Compress::Zlib::gzopen" or "Error: Weak references are not implemented in this version of perl" Step 4. Install Scalar::Util (Scalar-List-Utils) Step 5. cpan "any module" works fine now. The previous errors occur each time a perl update happens. I am lost as to what else the problem could be beyond the fedora perl build.