Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-perl
Navigation:
Lists: gentoo-perl: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-perl@g.o
From: Alex Efros <powerman@...>
Subject: Scalar::Util qw( weaken )
Date: Wed, 25 Mar 2009 10:51:18 +0200
Hi!

I've no idea is installing perl modules from CPAN using
cpan/cpansite/manually instead of using emerge is supported by Gentoo, but
the truth is, dev-perl/ has only 772 packages now while CPAN has much much
more and so it's unavoidable to install a lot of modules from CPAN using
cpan/cpansite/manually if you do a lot of perl development.

    Probably g-cpan tool may help here, but I've not tried it yet.
    Is it able to:
    - automatically resolve and install deep perl module dependencies
    - handle interactive Makefile.PL
    - run tests for all modules by default (without forcing make test on all
      other packages in portage)
    - force install on failed tests
    - local cpan overlays (like cpansite from CPAN::Site)
    ?

After installing many modules using cpan/cpansite/manually you find
yourself managing some perl modules using emerge and others using cpan -
that's not ease and finally you'll unmerge all modules and will
install/update *all* modules using cpan/cpansite. (You will have to add
some perl modules to /etc/portage/profile/package.provided to stop portage
from emerging them.)


Now, we've a problem. After (re-)emerging perl, module Scalar::Util become
broken (and so many other modules which need weaken() function):

    $ perl -e 'use Scalar::Util; print "ok\n"'
    ok

    $ perl -e 'use Scalar::Util qw( weaken ); print "ok\n"'
    Weak references are not implemented in the version of perl at -e line 1
    BEGIN failed--compilation aborted at -e line 1.

    $ perl -e 'use Compress::Zlib; print "ok\n"'
     is only avaliable with the XS version at /usr/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 9
    BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 9.
    Compilation failed in require at -e line 1.
    BEGIN failed--compilation aborted at -e line 1.

This bug probably related to http://bugs.gentoo.org/show_bug.cgi?id=247585

Because of broken Compress::Zlib we can't use cpan command anymore to
reinstall Scalar::Util, and have to download/unpack/install it manually.

So, it looks like only way to work around this issue is use hook in
/etc/portage/bashrc to reinstall Scalar::Util on "postinst" EBUILD_PHASE
for dev-lang/perl package. Is there any better solution exists?


P.S. Here is my /etc/portage/bashrc.d/dev-lang/perl.postinst:
---cut---
#!/bin/bash
ewarn "Reinstalling Scalar::Util!"
latest=$(lynx -dump -listonly http://cpan.org/modules/by-module/Scalar/ |
    grep '/Scalar-List-Utils-.*\.tar\.gz' |
    awk '{print $2}' |
    perl -Mversion -ne '
        ($n)=/-([\d.]+)/; ($p,$s)=($n,$_) if qv($p)<qv($n); END{print$s}
    ')
if [ "x$latest" != "x" ]; then
    mkdir /tmp/perl-$$/
    wget -q -O - "$latest" | tar xzf - -C /tmp/perl-$$/
    ( cd /tmp/perl-$$/* && perl Makefile.PL && make && make install )
    rm -rf /tmp/perl-$$/
fi
---cut---

-- 
			WBR, Alex.


Replies:
Re: Scalar::Util qw( weaken )
-- Steven Lembark
Re: Scalar::Util qw( weaken )
-- Yuval Yaari
Re: Scalar::Util qw( weaken )
-- Yuval Yaari
Re: Scalar::Util qw( weaken )
-- Michele Beltrame
Navigation:
Lists: gentoo-perl: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Last rites: dev-lang/pugs
Next by thread:
Re: Scalar::Util qw( weaken )
Previous by date:
Re: Last rites: dev-lang/pugs
Next by date:
Re: Scalar::Util qw( weaken )


Updated Jun 17, 2009

Summary: Archive of the gentoo-perl mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.