Can't install Data::Dump with g-cpan . I guess the search through the /var/db/pkg/dev-lang/perl-.../CONTENTS matches Data/Dumper as Data/Dump is a substring. Reproducible: Always Steps to Reproduce: 1. g-cpan -i Data::Dump Actual Results: * Data::Dump is part of the core perl install * Nothing to install!! Expected Results: Successful install of Data::Dump Using g-cpan 0.15.0-r1, perl 5.8.8-r2
Confirmed here: I suppose that the problem is in the regexp used to loock for packages in core installation. I've placed a debug line at 517 in g-cpan file: { spinner_stop(); print_info("$ebuild_wanted - $thisfile is part of the core perl install"); return; } } and the result is: kefk ~ # g-cpan -i Data::Dump * Data::Dump - /usr/lib/perl5/5.8.8/i686-linux-thread-multi/auto/Data/Dumper is part of the core perl install * Nothing to install!! kefk ~ # basically, the regexp is broken and identifies the wrong package. In a few minutes I'll send a possible fix (now I'm in a hurry)
Maybe something like that? ============================================================ --- /usr/bin/g-cpan 2007-10-31 11:24:52.000000000 +0100 +++ g-cpan 2007-10-31 11:26:09.583302945 +0100 @@ -511,7 +511,7 @@ { my $thisfile = (split(/ /, $_))[1]; $thisfile =~ s{\.([A-Za-z]{1,3})$}{}; - if (($thisfile =~ m{$eb}x) && !defined($passed_to_install{$eb})) + if (($thisfile =~ m{$eb$}x) && !defined($passed_to_install{$eb})) { spinner_stop(); print_info("$ebuild_wanted is part of the core perl install"); ============================================================ Not sure if I broke something else and it's not tested, it works just only in case of Data::Dump e Data::Dumper
(In reply to comment #2) > Maybe something like that? Thanks for that. The fix is working here too.
--- /usr/bin/g-cpan~ 2008-06-04 11:18:26.468577219 -0700 +++ /usr/bin/g-cpan 2008-06-04 11:18:36.996578232 -0700 @@ -511,7 +511,7 @@ { my $thisfile = (split(/ /, $_))[1]; $thisfile =~ s{\.([A-Za-z]{1,3})$}{}; - if (($thisfile =~ m{$eb}x) && !defined($passed_to_install{$eb})) + if (($thisfile =~ m{^$eb$}x) && !defined($passed_to_install{$eb})) { spinner_stop(); print_info("$ebuild_wanted is part of the core perl install");
Just FYI (and mainly a reminder to myself), both suggested regexps are not a "fix", you just broke the regex so the check would fail. The code for checking if a requested module is a core module is a bit wrong/outdated, I'll work on refactoring it.
For me worked this if (($thisfile =~ m/\Q$eb\E$/) && !defined($passed_to_install{$eb}))
Already fixed from the looks of things. If not, please give me a testcase other than Data::Dump (which has dev-perl/Data-Dump already).
Please reopen. This is not fixed as of g-cpan-0.16.4. (It does not appear that anything was ever changed.) A failing package is Hash::FieldHash : $ g-cpan -g Hash::FieldHash * Hash::FieldHash is part of the core perl install $ corelist Hash::FieldHash Hash::FieldHash was not in CORE (or so I think) $ It appears to be finding /usr/lib/perl5/5.12.4/x86_64-linux/auto/Hash/Util/FieldHash/FieldHash.so
Confirmed, and problem with Data::Dump still here also $ g-cpan -i -p -v Data::Dump * Data::Dump is part of the core perl install * Nothing to install!! * Cleaning temporary space because we still have ($thisfile =~ m{$eb}x) at g-cpan l. 536
https://github.com/gentoo-perl/g-cpan/pull/1