Re: MakeMaker warning

2007-12-29 Thread Gabor Szabo
On Dec 26, 2007 12:37 PM, Michael G Schwern [EMAIL PROTECTED] wrote:
 Gabor Szabo wrote:
  might be slightly unrelated to QAsorry

 In the future, MakeMaker issues go to [EMAIL PROTECTED]

Sorry for that.

  After installing   JOSHUA/Net-Telnet-Cisco-1.10.tar.gz
  if I run perl Makefile.PL  on an unrelated Makefile.PL that
  requires 'Net::Telnet::Cisco'  = '1.10'
  I get a warning
 
  Argument 1.3.1 isn't numeric in numeric lt () at
  /opt/perl510/lib/5.10.0/ExtUtils/MakeMaker.pm line 414.
 
  I did not get this warning before installing Net::Telnet::Cisco
 
  Strange thing is that when I ack for 1.3.1 the only place I found it is
 
  /opt/perl510/lib/site_perl/5.10.0/Sys/HostIP.pm
  7:$VERSION = '1.3.1';
 
  So my diagnostics pointing at Net::Telnet::Cisco might be incorrect.
 
  So which module is at fault here?

 The warning is absolutely correct, 1.3.1 isn't numeric.  Nor is it a version
 object as it probably should be.  So that much of Sys::HostIP is wrong.

 As to why it's happening in your apparently unrelated Makefile.PL, I can't
 say.  Double check that somewhere down the line you're not listing Sys::HostIP
 as a prereq.

Yes, I have forgotten to mention that Sys::HostIP is also in the
prereq list in my Makefile.PL.
The strange thing is that I seem to get the warning only after I
install Net::Telnet::Cisco.

Is there a place with definition of what a VERSION value can be ?
I looked at the docs of ExtUtils::MakeMaker.
It mentions version numbers under VERSION_FROM but only as examples
it has examples like 1.2.3 though not in a string format like '1.2.3'.

CPANTS thinks it is a correct version number:
http://cpants.perl.org/dist/kwalitee/Sys-HostIP

Maybe the way CPANTS check isn't correct but I think there is some mismatch.

yeah, now its relevant to this mailing list :-)

Gabor


Re: MakeMaker warning

2007-12-29 Thread Michael G Schwern
Gabor Szabo wrote:
 Is there a place with definition of what a VERSION value can be ?

Anything which compares sanely as a number plus the X.YY_ZZ alpha convention
(which MM converts to a number).  I guess that's never stated explicitly.  I'd
welcome a section on $VERSION in ExtUtils::MakeMaker::Tutorial, VERSION_FROM
isn't really the right place for it.


 I looked at the docs of ExtUtils::MakeMaker.
 It mentions version numbers under VERSION_FROM but only as examples
 it has examples like 1.2.3 though not in a string format like '1.2.3'.

1.2.3 is an ill fated version string (not to be confused with version objects)
introduced in 5.6.  I don't think they actually work anyway... no they don't.
 I'll remove them.


 CPANTS thinks it is a correct version number:
 http://cpants.perl.org/dist/kwalitee/Sys-HostIP
 
 Maybe the way CPANTS check isn't correct but I think there is some mismatch.

It's using CPAN::DistnameInfo which is looking at formatting details.  All
MakeMaker cares about is capabilities.  So there's likely to be some mismatch.

It's also not clear that CPAN::DistnameInfo cares about vetting the $VERSION
so much as simply extracting it.

A simple test for capabilities would be this:

$version =~ s/(\d+)\.(\d+)_(\d+)/$1.$2$3/;  # turn X.YY_ZZ into X.YYZZ
{
local $SIG{__WARN__} = sub { die Bad version: @_ };
() = $version = 0;
}


-- 
Stabbing you in the face so you don't have to.


Re: MakeMaker warning

2007-12-26 Thread Michael G Schwern
Gabor Szabo wrote:
 might be slightly unrelated to QAsorry

In the future, MakeMaker issues go to [EMAIL PROTECTED]


 After installing   JOSHUA/Net-Telnet-Cisco-1.10.tar.gz
 if I run perl Makefile.PL  on an unrelated Makefile.PL that
 requires 'Net::Telnet::Cisco'  = '1.10'
 I get a warning
 
 Argument 1.3.1 isn't numeric in numeric lt () at
 /opt/perl510/lib/5.10.0/ExtUtils/MakeMaker.pm line 414.
 
 I did not get this warning before installing Net::Telnet::Cisco
 
 Strange thing is that when I ack for 1.3.1 the only place I found it is
 
 /opt/perl510/lib/site_perl/5.10.0/Sys/HostIP.pm
 7:$VERSION = '1.3.1';
 
 So my diagnostics pointing at Net::Telnet::Cisco might be incorrect.
 
 So which module is at fault here?

The warning is absolutely correct, 1.3.1 isn't numeric.  Nor is it a version
object as it probably should be.  So that much of Sys::HostIP is wrong.

As to why it's happening in your apparently unrelated Makefile.PL, I can't
say.  Double check that somewhere down the line you're not listing Sys::HostIP
as a prereq.


-- 
Look at me talking when there's science to do.
When I look out there it makes me glad I'm not you.
I've experiments to be run.
There is research to be done
On the people who are still alive.
-- Jonathan Coulton, Still Alive