Subject: | CPANPLUS 0.076 does not recognize all module versions |
Date: | Mon, 18 Dec 2006 22:58:54 -0800 |
To: | bug-CPANPLUS [...] rt.cpan.org |
From: | Jonathan Leffler <jleffler [...] earthlink.net> |
I'm using CPANPLUS 0.076 with Perl 5.8.8 on MacOS X 10.4.8 (though it
was originally compiled on an older 10.4.x version). I'm running into
the problem that CPANPLUS seems unable to parse quite a lot of module
version numbers.
For example:
$ cpanp
CPANPLUS::Shell::Default -- CPAN exploration and module installation
(v0.076)
*** Please report bugs to <bug-cpanplus@rt.cpan.org>.
*** Using CPANPLUS::Backend v0.076. ReadLine support enabled.
CPAN
Show quoted text
Terminal> o
[MSG] Checking if source files are up to date
[MSG] Retrieving /Users/jleffler/.cpanplus/sourcefiles.2.15.stored
Backslash found where operator expected at (eval 1408) line 1, near ")\"
(Missing operator before \?)
1 3.00 3.000008 CIPP JRED
2 Unparsable 3.000016 Class::DBI TMTM
3 Unparsable 2.03 Class::Loader VIPUL
4 Unparsable 0.000008 Class::Std DCONWAY
5 Unparsable 0.000002 Class::Std::Utils DCONWAY
6 Unparsable 1.23 ConfigReader::Simple BDFOY
7 0.21 0.28 DBIx::DataModel DAMI
8 3.00 3.001 EasyDBAccess FOOLFISH
9 0.176 0.179 Email::Valid RJBS
10 Unparsable 1.16 GD::Graph::area BWARFIELD
11 Unparsable 1.44 GD::Graph::axestype MVERB
12 Unparsable 1.10 GD::Graph::colour BWARFIELD
13 Unparsable 1.20 GD::Graph::pie BWARFIELD
14 Unparsable 1.18 GD::Text::Align MVERB
15 Unparsable 0.000001 Getopt::Clade DCONWAY
16 Unparsable 0.001 Getopt::Euclid DCONWAY
17 0.79 0.80 IPC::Run RSOD
18 1.18 1.19 List::Util GBARR
19 1.35 1.36 Math::Complex JHI
20 0.62 0.63 Module::CPANTS::ProcessCPAN DOMM
21 Unparsable 0.000003 Module::Starter::PBP DCONWAY
22 Unparsable 0.02 Module::Versions THW
23 Unparsable 2.00 PDF::API2 AREIBENS
24 0.21 0.22 Perl::Critic THALJEF
25 Unparsable 20060719.00 Perl::Tidy SHANCOCK
26 Unparsable 2.12 Regexp::Common ABIGAIL
27 Unparsable 1.00 Set::Crontab AMS
28 Unparsable 1.000002 Smart::Comments DCONWAY
29 Unparsable 0.000003 Sub::Installer DCONWAY
30 1.00 1.000005 Switch::Perlish BROQ
31 2.102 2.86 Template::Stash ABW
32 1.0208 1.0302 Term::ReadLine::Perl ILYAZ
33 0.01 0.97 Text::NSP::Measures TPEDERSE
34 Unparsable 1.001 Variable::Strongly::Typed METZZO
35 Unparsable 0.60 XMLRPC::Lite BYRNE
CPAN
Show quoted textTerminal> q
Exiting CPANPLUS shell
$
There seem to be several parts to the issue. Some use the qv('0.9.8')
notation; others have very complex operations all on one line.
The attached version.info file contains the various VERSION lines in the
'Unparsable' files above - I hope that saves you from having to collect
the odd-ball set of modules.
If you need any more assistance - don't hesitate to ask.
(Separately: I've found that a number of modules have managed to end up
with at least 2 Module.pm files underneath my Perl installation in
different directories. By cleaning up the duplicates manually, I've
been able to fix the 'non-updating' versions. For instance, List::Util
has files:
$ find lib -name Util.pm | grep List/Util
lib/5.8.8/List/Util.pm
lib/site_perl/5.8.8/darwin-2level/List/Util.pm
$
$ grep VERSION $(find lib -name Util.pm | grep List/Util)
lib/5.8.8/List/Util.pm:use vars qw(@ISA @EXPORT_OK $VERSION $XS_VERSION
$TESTING_PERL_ONLY);
lib/5.8.8/List/Util.pm:$VERSION = "1.18";
lib/5.8.8/List/Util.pm:$XS_VERSION = $VERSION;
lib/5.8.8/List/Util.pm:$VERSION = eval $VERSION;
lib/5.8.8/List/Util.pm: XSLoader::load('List::Util', $XS_VERSION);
lib/5.8.8/List/Util.pm: bootstrap List::Util $XS_VERSION;
lib/site_perl/5.8.8/darwin-2level/List/Util.pm:use vars qw(@ISA
@EXPORT_OK $VERSION $XS_VERSION $TESTING_PERL_ONLY);
lib/site_perl/5.8.8/darwin-2level/List/Util.pm:$VERSION = "1.19";
lib/site_perl/5.8.8/darwin-2level/List/Util.pm:$XS_VERSION = $VERSION;
lib/site_perl/5.8.8/darwin-2level/List/Util.pm:$VERSION = eval $VERSION;
lib/site_perl/5.8.8/darwin-2level/List/Util.pm:
XSLoader::load('List::Util', $XS_VERSION);
lib/site_perl/5.8.8/darwin-2level/List/Util.pm: bootstrap List::Util
$XS_VERSION;
$
By removing the 1.18 files, the 1.19 version will become visible. I've
been using CPANPLUS all along. Does it have an option to remove
conflicting modules--like I seem to remember CPAN having?
My configuration is:
CPAN Terminal> s conf
allow_build_interactivity '1'
base '/Users/jleffler/.cpanplus'
buildflags ''
cpantest ''
cpantest_mx ''
debug ''
dist_type ''
email 'cpanplus@example.com'
extractdir ''
fetchdir ''
flush '1'
force ''
lib []
makeflags ''
makemakerflags ''
md5 '1'
no_update ''
passive '1'
prefer_bin ''
prefer_makefile '1'
prereqs '1'
shell 'CPANPLUS::Shell::Default'
signature '1'
skiptest ''
storable '1'
timeout '300'
verbose '1'
write_install_logs '1'
CPAN Terminal>
Removing lib/5.8.8/List/Util.pm means the List::Util is now shown to be
up to date.
--
Jonathan Leffler (jleffler@earthlink.net) #include <disclaimer.h>
Guardian of DBD::Informix v2005.02 -- http://dbi.perl.org/
lib/site_perl/5.8.8/Class/DBI.pm:10:use version; $VERSION = qv('3.0.14');
lib/site_perl/5.8.8/Class/Loader.pm:13:use vars qw($VERSION);
lib/site_perl/5.8.8/Class/Loader.pm:15:($VERSION) = '$Revision: 2.03 $' =~ /\s(\d+\.\d+)\s/;
lib/site_perl/5.8.8/Class/Loader.pm:99:=head1 VERSION
lib/site_perl/5.8.8/Class/Std.pm:3:use version; $VERSION = qv('0.0.8');
lib/site_perl/5.8.8/Class/Std.pm:620:=head1 VERSION
lib/site_perl/5.8.8/Class/Std/Utils.pm:3:use version; $VERSION = qv('0.0.2');
lib/site_perl/5.8.8/Class/Std/Utils.pm:46:=head1 VERSION
lib/site_perl/5.8.8/ConfigReader/Simple.pm:6:use vars qw($VERSION $AUTOLOAD %ERROR $ERROR $Warn $Die);
lib/site_perl/5.8.8/ConfigReader/Simple.pm:13:( $VERSION ) = sprintf "%d.%02d", q$Revision: 1.23 $ =~ m/ (\d+) \. (\d+) /gx;
lib/site_perl/5.8.8/GD/Graph/area.pm:14:($GD::Graph::area::VERSION) = '$Revision: 1.16.2.3 $' =~ /\s([\d.]+)/;
lib/site_perl/5.8.8/GD/Graph/axestype.pm:14:($GD::Graph::axestype::VERSION) = '$Revision: 1.44.2.14 $' =~ /\s([\d.]+)/;
lib/site_perl/5.8.8/GD/Graph/colour.pm:19:($GD::Graph::colour::VERSION) = '$Revision: 1.10 $' =~ /\s([\d.]+)/;
lib/site_perl/5.8.8/GD/Graph/colour.pm:301:sub version { $GD::Graph::colour::VERSION }
lib/site_perl/5.8.8/GD/Graph/pie.pm:14:($GD::Graph::pie::VERSION) = '$Revision: 1.20.2.4 $' =~ /\s([\d.]+)/;
lib/site_perl/5.8.8/GD/Text/Align.pm:5:($GD::Text::Align::VERSION) = '$Revision: 1.18 $' =~ /\s([\d.]+)/;
lib/site_perl/5.8.8/Getopt/Clade.pm:4:$VERSION = qv('0.0.1');
lib/site_perl/5.8.8/Getopt/Euclid.pm:3:use version; $VERSION = qv('0.1.0');
lib/site_perl/5.8.8/Getopt/Euclid.pm:90: my $VERS = qr{ $HWS VERSION $HWS \n }xms;
lib/site_perl/5.8.8/Getopt/Euclid.pm:804:=head1 VERSION
lib/site_perl/5.8.8/Getopt/Euclid.pm:829: =head1 VERSION
lib/site_perl/5.8.8/Getopt/Euclid.pm:1014:=item =head1 VERSION
lib/site_perl/5.8.8/Getopt/Euclid.pm:1022: =head1 VERSION
lib/site_perl/5.8.8/Getopt/Euclid.pm:1028: =head1 VERSION
lib/site_perl/5.8.8/Getopt/Euclid.pm:1588:program (as specified in the C<=head1 VERSION> section of the POD) and
lib/site_perl/5.8.8/Module/Starter/PBP.pm:4:use version; $VERSION = qv('0.0.3');
lib/site_perl/5.8.8/Module/Starter/PBP.pm:96:diag( "Testing $main_module \$${main_module}::VERSION" );
lib/site_perl/5.8.8/Module/Starter/PBP.pm:282:=head1 VERSION
lib/site_perl/5.8.8/Module/Starter/PBP.pm:611:use version; $VERSION = qv('0.0.3');
lib/site_perl/5.8.8/Module/Starter/PBP.pm:631:!=head1 VERSION
lib/site_perl/5.8.8/Module/Versions.pm:20:our ( $VERSION, $v, $_VERSION );
lib/site_perl/5.8.8/Module/Versions.pm:22:# -- CPAN VERSION (='major.minor{2}')
lib/site_perl/5.8.8/Module/Versions.pm:26:$VERSION = do { my @r = ( ( $v = q<Version value="0.20.1"> ) =~ /\d+/g ); sprintf "%d.%02d", $r[0], int( $r[1] / 10 ) };
lib/site_perl/5.8.8/Module/Versions.pm:28:# -- Mumified VERSION (='major.minor{3}release{3}revision{3}')
lib/site_perl/5.8.8/Module/Versions.pm:253: # *) Attention: a new object contains implicitly the $VERSION from loaded
lib/site_perl/5.8.8/Module/Versions.pm:302: my $seen = { q{::} => { 'VERSION' => 1 } }; # avoid multiple scans
lib/site_perl/5.8.8/Module/Versions.pm:303: # of VERSION (object and
lib/site_perl/5.8.8/Module/Versions.pm:313: # -- Mandantory scan of VERSION - as an object!
lib/site_perl/5.8.8/Module/Versions.pm:314: [ ( eval "$module->VERSION" # try to find VERSION
lib/site_perl/5.8.8/Module/Versions.pm:315: ? ( $module, 'VERSION',
lib/site_perl/5.8.8/Module/Versions.pm:316: eval "$module->VERSION"
lib/site_perl/5.8.8/Module/Versions.pm:317: ? eval "$module->VERSION"
lib/site_perl/5.8.8/Module/Versions.pm:320: : ( $module, qw{VERSION unknown} ) # FATAL! Ref: Camel ...
lib/site_perl/5.8.8/Module/Versions.pm:369: # -- Try to use 'version' for overloading VERSION formatting
lib/site_perl/5.8.8/Module/Versions.pm:457:<!-- \$Id XSD schema created by $package $VERSION at $localtime \$ -->
lib/site_perl/5.8.8/Module/Versions.pm:471: <xs:pattern value="VERSION"/>
lib/site_perl/5.8.8/Module/Versions.pm:500:<!-- \$Id DTD created by $package $VERSION at $localtime \$ -->
lib/site_perl/5.8.8/Module/Versions.pm:519:=head1 VERSION
lib/site_perl/5.8.8/Module/Versions.pm:605:Module::Versions tries to read the loaded/loadable module's $VERSION. For
lib/site_perl/5.8.8/Module/Versions.pm:619:Module::Versions tries to load 'version.pm' to support Perl 5.10.0's $VERSION
lib/site_perl/5.8.8/Module/Versions.pm:695:be scanned in addition to $VERSION. The module list contains explicitely defined
lib/site_perl/5.8.8/Module/Versions.pm:706:String or ARRAY of strings; default is 'VERSION'.
lib/site_perl/5.8.8/Module/Versions.pm:709:observed in addition to the Perl standard variable '$VERSION', e.g. '$_VERSION',
lib/site_perl/5.8.8/Module/Versions.pm:710:'$version', '$REV'. See '$_VERSION' in this source (='Mumified VERSION')>.
lib/site_perl/5.8.8/Module/Versions.pm:712:The selection of the Perl standard variable '$VERSION' is mandantory and cannot
lib/site_perl/5.8.8/Module/Versions.pm:753:well as the Camel rules for the $VERSION (e.q. B<0.01>). This 'untouched'
lib/site_perl/5.8.8/Module/Versions.pm:807: 1 [ AutoLoader VERSION v5.600.0 ]
lib/site_perl/5.8.8/Module/Versions.pm:808: 2 [ Carp VERSION v1.30.0 ]
lib/site_perl/5.8.8/Module/Versions.pm:809: 3 *[ Config VERSION unknown ]
lib/site_perl/5.8.8/Module/Versions.pm:810: 4 [ Cwd VERSION v3.10.0 ]
lib/site_perl/5.8.8/Module/Versions.pm:822: 4. variable [string] VERSION Module
lib/site_perl/5.8.8/Module/Versions.pm:829: 2. variable [string] VERSION Module
lib/site_perl/5.8.8/Module/Versions.pm:846: $versions = [['AutoLoader','VERSION','5.600'],...];
lib/site_perl/5.8.8/Module/Versions.pm:852: $versions = {'AutoLoader' => {'VERSION' => '5.600'},...};
lib/site_perl/5.8.8/Module/Versions.pm:858: Carp,VERSION,1.030 # Module, Name, Value
lib/site_perl/5.8.8/Module/Versions.pm:859: strict,VERSION,1.030
lib/site_perl/5.8.8/Module/Versions.pm:861: Data::Dumper,VERSION,2.121_020
lib/site_perl/5.8.8/Module/Versions.pm:862: Win32::PerlExe::Env,VERSION,0.050 # Standard variable $VERSION
lib/site_perl/5.8.8/Module/Versions.pm:870: Carp,VERSION,1.030 # Data
lib/site_perl/5.8.8/Module/Versions.pm:871: strict,VERSION,1.030 # :
lib/site_perl/5.8.8/Module/Versions.pm:873: Data::Dumper,VERSION,2.121_020 #
lib/site_perl/5.8.8/Module/Versions.pm:874: Win32::PerlExe::Env,VERSION,0.050 #
lib/site_perl/5.8.8/Module/Versions.pm:885: <version module="Carp" name="VERSION">1.030</version>
lib/site_perl/5.8.8/Module/Versions.pm:886: <version module="strict" name="VERSION">1.030</version>
lib/site_perl/5.8.8/Module/Versions.pm:888: <version module="Data::Dumper" name="VERSION">2.121_020</version>
lib/site_perl/5.8.8/Module/Versions.pm:889: <version module="Win32::PerlExe::Env" name="VERSION">0.050</version>
lib/site_perl/5.8.8/Module/Versions.pm:898: <version module="Carp" name="VERSION">1.030</version>
lib/site_perl/5.8.8/Module/Versions.pm:899: <version module="strict" name="VERSION">1.030</version>
lib/site_perl/5.8.8/Module/Versions.pm:908: <version module="Carp" name="VERSION">1.030</version>
lib/site_perl/5.8.8/Module/Versions.pm:909: <version module="strict" name="VERSION">1.030</version>
lib/site_perl/5.8.8/Module/Versions.pm:949: 'VERSION', # Variable
lib/site_perl/5.8.8/Module/Versions.pm:957: 'VERSION',
lib/site_perl/5.8.8/Module/Versions.pm:968: 'VERSION' => '1.030' # Variable and Value
lib/site_perl/5.8.8/Module/Versions.pm:971: 'VERSION' => '2.121_020'
lib/site_perl/5.8.8/Module/Versions.pm:977: 'VERSION' => '0.050', # Standard variable $VERSION
lib/site_perl/5.8.8/PDF/API2.pm:38: use vars qw( $VERSION $seq @FontDirs );
lib/site_perl/5.8.8/PDF/API2.pm:40: ($VERSION) = sprintf '%i.%03i', split(/\./,('$Revision: 2.0 $' =~ /Revision: (\S+)\s/)[0]); # $Date: 2005/11/16 02:16:00 $
lib/site_perl/5.8.8/Perl/Tidy.pm:53: $VERSION
lib/site_perl/5.8.8/Perl/Tidy.pm:66: ( $VERSION = q($Id: Tidy.pm,v 1.56 2006/07/19 23:13:33 perltidy Exp $) ) =~ s/^.*\s+(\d+)\/(\d+)\/(\d+).*$/$1$2$3/; # all one line for MakeMaker
lib/site_perl/5.8.8/Perl/Tidy.pm:1049:"perltidy version $VERSION log file on a $^O system, OLD_PERL_VERSION=$]\n"
lib/site_perl/5.8.8/Perl/Tidy.pm:2767:This is perltidy, v$VERSION
lib/site_perl/5.8.8/Perl/Tidy.pm:2782:This is perltidy version $VERSION, a perl script indenter. Usage:
lib/site_perl/5.8.8/Perl/Tidy.pm:8460: # in which $VERSION may be calculated. See MakeMaker.pm;
lib/site_perl/5.8.8/Perl/Tidy.pm:8465: # *VERSION = \'1.01';
lib/site_perl/5.8.8/Perl/Tidy.pm:8466: # ( $VERSION ) = '$Revision: 1.56 $ ' =~ /\$Revision:\s+([^\s]+)/;
lib/site_perl/5.8.8/Perl/Tidy.pm:8474: && $input_line =~ /VERSION/ # quick check to reject most lines
lib/site_perl/5.8.8/Perl/Tidy.pm:8480: write_logfile_entry("passing VERSION line; -npvl deactivates\n");
lib/site_perl/5.8.8/Perl/Tidy.pm:9138: # if this is a VERSION statement
lib/site_perl/5.8.8/Perl/Tidy.pm:23048: # TODO: it would be much nicer to create a new token V for VERSION
lib/site_perl/5.8.8/Perl/Tidy.pm:25126: # if ( VERSION < 5.009 && $op-> name eq 'aassign' ) { }
lib/site_perl/5.8.8/Perl/Tidy.pm:26724:=head1 VERSION
lib/site_perl/5.8.8/Regexp/Common.pm:8:use vars qw /$VERSION %RE %sub_interface $AUTOLOAD/;
lib/site_perl/5.8.8/Regexp/Common.pm:10:($VERSION) = q $Revision: 2.120 $ =~ /([\d.]+)/;
lib/site_perl/5.8.8/Regexp/Common.pm:918: VERSION is now extracted from the CVS revision number.
lib/site_perl/5.8.8/Set/Crontab.pm:8:use vars qw( $VERSION );
lib/site_perl/5.8.8/Set/Crontab.pm:10:($VERSION) = q$Revision: 1.00 $ =~ /([\d.]+)/;
lib/site_perl/5.8.8/Smart/Comments.pm:3:use version; $VERSION = qv('1.0.2');
lib/site_perl/5.8.8/Smart/Comments.pm:444:=head1 VERSION
lib/site_perl/5.8.8/Sub/Installer.pm:3:use version; $VERSION = qv('0.0.3');
lib/site_perl/5.8.8/Sub/Installer.pm:68:=head1 VERSION
lib/site_perl/5.8.8/Variable/Strongly/Typed.pm:3:use version; $VERSION = qv('1.1.0');
lib/site_perl/5.8.8/Variable/Strongly/Typed.pm:225:=head1 VERSION
lib/site_perl/5.8.8/Apache/XMLRPC/Lite.pm:14:use vars qw(@ISA $VERSION);
lib/site_perl/5.8.8/Apache/XMLRPC/Lite.pm:18:#$VERSION = sprintf("%d.%s", map {s/_//g; $_} q$Name: $ =~ /-(\d+)_([\d_]+)/);
lib/site_perl/5.8.8/Apache/XMLRPC/Lite.pm:19:$VERSION = $XMLRPC::Lite::VERSION;
lib/site_perl/5.8.8/XMLRPC/Lite.pm:15:use vars qw($VERSION);
lib/site_perl/5.8.8/XMLRPC/Lite.pm:16:#$VERSION = sprintf("%d.%s", map {s/_//g; $_} q$Name: $ =~ /-(\d+)_([\d_]+)/);
lib/site_perl/5.8.8/XMLRPC/Lite.pm:17:$VERSION = $SOAP::Lite::VERSION;