Created attachment 317890 [details] emerge --info llvm[1]: Installing HTML documentation make[2]: Entering directory `/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide' pod2html --css=manpage.css --htmlroot=. \ --podpath=. --noindex --infile=lit.pod --outfile=/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide/lit.html --title=lit pod2html --css=manpage.css --htmlroot=. \ --podpath=. --noindex --infile=opt.pod --outfile=/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide/opt.html --title=opt pod2html --css=manpage.css --htmlroot=. \ --podpath=. --noindex --infile=llvm-config.pod --outfile=/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide/llvm-config.html --title=llvm-config Can't locate object method "recurse" via package "Pod::Simple::Search" at /usr/lib64/perl5/5.16.0/Pod/Html.pm line 317. make[2]: *** [/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide/opt.html] Error 2 make[2]: *** Waiting for unfinished jobs.... Can't locate object method "recurse" via package "Pod::Simple::Search" at /usr/lib64/perl5/5.16.0/Pod/Html.pm line 317. Can't locate object method "recurse" via package "Pod::Simple::Search" at /usr/lib64/perl5/5.16.0/Pod/Html.pm line 317. make[2]: *** [/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide/lit.html] Error 2 make[2]: *** [/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide/llvm-config.html] Error 2 rm /var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide//.dir make[2]: Leaving directory `/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs/CommandGuide' make[1]: *** [install] Error 1 make[1]: Leaving directory `/var/tmp/portage/sys-devel/llvm-3.1-r1/work/llvm-3.1.src/docs' make: *** [install] Error 1 And I still have old Pod::Simples due to --autounmask not auto-unmasking everything. This is the offending code snippet: # find all pod modules/pages in podpath, store in %Pages # - callback used to remove Podroot and extension from each file # - laborious to allow '.' in dirnames (e.g., /usr/share/perl/5.14.1) Pod::Simple::Search->new->inc(0)->verbose($Verbose)->laborious(1) ->callback(\&_save_page)->recurse($Recurse)->survey(@Podpath); The addition of the ->recurse() call happened here: http://perl5.git.perl.org/perl.git/commitdiff/1d7ed44a3073f21892eceff9e92a17e20ac0cdc3?hp=18f1a6e3a6a2fe0c14e1602b6cc055b838df9af4 At that time, the blead version of Pod::Simple was 3.19 http://perl5.git.perl.org/perl.git/blob/1d7ed44a3073f21892eceff9e92a17e20ac0cdc3:/cpan/Pod-Simple/ChangeLog And you'll see that the ->recurse method is listed in the Pod::Simple Changelog as being a new addition in Pod::Simple 3.17. So, this means for pod2html to work fully, a minimum version of Pod::Simple 3.17 is required under Perl 5.16.0 ( Pod::HTML is one of those pesky things where its not dual lifed and the only upstream is blead ) perl-cleaner at present will not resolve this problem, no does dep-clean. * perl-core/Pod-Simple Available versions: 3.14 ~3.15 3.160.0 ~3.170.0 ~3.180.0 ~3.190.0 ~3.200.0 ~3.210.0 ~3.220.0 Installed versions: Version: 3.160.0 Date: 15:56:43 07/11/12 Best versions/slot: 3.160.0 * virtual/perl-Pod-Simple Available versions: 3.14 ~3.15 3.160.0-r2 ~3.170.0 ~3.180.0 ~3.190.0 ~3.200.0-r1 ~3.210.0 ~3.220.0 Installed versions: Version: 3.160.0-r2 Date: 11:01:44 07/02/12 Best versions/slot: 3.160.0-r2 * perl-core/Pod-Simple / 3.160.0 / KEYWORDS: alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris DEPEND: ${RDEPEND} RDEPEND: >=virtual/perl-Pod-Escapes-1.04 dev-lang/perl[-build] * virtual/perl-Pod-Simple / 3.160.0-r2 KEYWORDS: alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris RDEPEND: || ( =dev-lang/perl-5.14* ~perl-core/Pod-Simple-3.160.0 )
Confirming: emerge -v1 =virtual/perl-Pod-Simple-3.170.0 --autounmask-write y dispatch-conf emerge -v1 =virtual/perl-Pod-Simple-3.170.0 --autounmask-write y emerge -v1 =llvm-3.1-r1 --autounmask-write y ^^ Now works. Recommendations: perl-5.16.0 should block <virtual/perl-Pod-Simple-3.170.0
Don't mix testing dev-lang/perl and stable perl-core/ packages. It WILL fail.
That is known, but it should be such that its harder to come into an invalid configuration like this. Perhaps the problem as it stands is merely sub-optimal, and we don't have a good way at present to prevent this configuration occurring, but in an ideal world, it would be "Nice" to have ways to avert users stumbling into this problem. It may be such that an extension to perl-cleaner which looks at what version of dev-perl you have installed, and then fires off emerge with emerge ">=virtual/perl-Pod-Simple-$V" to ensure a "sane" system. Another approach is perhaps, creating: virtual/perl-5.16 , which would be RDEPEND=" =dev-lang/perl-5.16* >=virtual/perl-Pod-Simple-$V " etc, etc. This might be marginally better than trying to rely on PDEPEND and other approaches to ensure a "sane" system. ( it would be nice to be able to do emerge -va =virtual/perl-5.16 --autounmask-write y and have it JustWork(TM) )
I ran into the same bug while building Clang. Running pod2html from the command line also results in: Can't locate object method "recurse" via package "Pod::Simple::Search" at /usr/lib64/perl5/5.16.2/Pod/Html.pm line 317. even after re-emerging Perl. (In reply to comment #1) > Recommendations: > > perl-5.16.0 should block <virtual/perl-Pod-Simple-3.170.0 I can't agree more. The dependencies are broken. (In reply to comment #2) > Don't mix testing dev-lang/perl and stable perl-core/ packages. It WILL fail. This is no excuse. How is the user supposed to know stuff like this?! Fix the dependencies so that testing dev-lang/perl will require appropriate versions of the perl-core/ packages.