Red Hat Bugzilla – Bug 434574
Incompatibility between Scalar::Util and Compress::Zlib modules
Last modified: 2008-07-04 23:52:14 EDT
Description of problem:
There is an incompatibility between Scalar::Util and Compress::Zlib modules.
Compress::Zlib seems to need Scalar::Util to be compiled with XS.
Version-Release number of selected component (if applicable):
perl -MCompress::Zlib -e 0
Steps to Reproduce:
1. perl -MCompress::Zlib -e 0
is only avaliable with the XS version at
/usr/lib/perl5/vendor_perl/5.8.8/Compress/Zlib.pm line 9
BEGIN failed--compilation aborted at
/usr/lib/perl5/vendor_perl/5.8.8/Compress/Zlib.pm line 9.
Compilation failed in require.
BEGIN failed--compilation aborted.
Originally I had my own modules from CPAN, but I removed everything from
site-perl and installed Compress::Zlib via yum. The error is still there.
It appears that several other modules also have issue with Scalar::Util::dualvar
not being available.
This same bug has been reported in CentOS 3:
perl -MCPAN -e shell
force install Scalar::Util
*** Bug 434617 has been marked as a duplicate of this bug. ***
This bug has been tagged as a perl-Compress-Zlib bug but I think the root issue
is with Scalar::Util which is part of the core perl modules. The issue is that
the Scalar::Util::dualvar function is not available because the module has not
been compiled with XS. The manpage for that module does not say that dualvar is
only sometimes available which leads me to believe that the function is not
supposed to disappear. Other modules besides Compress::Zlib also need dualvar.
Except that I'm pretty darned sure that the Scalar::Util shipped in Fedora is
compiled with XS.
[spot@localhost ~]$ perl -e 'use Scalar::Util "dualvar"'
[spot@localhost ~]$ rpm -q perl
Something else strange is happening, the only time this "bug" ever comes out is
when people start using modules from CPAN. Best guess? Something is overriding it.
In CPAN is newer version with this part added.
diff Scalar-List-Utils-1.18/Makefile.PL Scalar-List-Utils-1.19/Makefile.PL
> return <<'POST_CONST' if $^O eq 'MSWin32';
> XSUBPPARGS = $(XSUBPPARGS) -typemap mytypemap
mytypemap could be used only for perl < 5.6.1 (wrote in mytypemap file). Could
be bug in Scalar::Utils module?
(In reply to comment #6)
> In CPAN is newer version with this part added.
> diff Scalar-List-Utils-1.18/Makefile.PL Scalar-List-Utils-1.19/Makefile.PL
> > return <<'POST_CONST' if $^O eq 'MSWin32';
But this only concerns MS Windows.
Anyway, as per spot's comment, the dualvar seems to be there in Scalar::Util
distributed in perl rpm in Fedora 8.
perl-5.8.8-35.fc8 has been submitted as an update for Fedora 8
In testing repository for F-8 will be updated perl-5.8.8-35 with the same
version of Scalar::Util as is in cpan. Please let me know, if it's worked for you.
yum --enablerepo=updates-testing install perl
perl-5.8.8-35.fc8 has been pushed to the Fedora 8 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update perl'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F8/FEDORA-2008-2164
there is no updated 64 bit perl version in testing, so I couldn't test this, sorry
The package perl-5.8.8-36 upgrade the Scalar::Util on the latest version. The
problem with XS support, weaken and other functions provided by Scalar::Util
should be fixed by this update.
If you problem persist, please feel free to reopen the bug.
perl-5.8.8-36.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.