Bug 200370 - lang/perl5.20: Argument "2.49_01" isn't numeric
Summary: lang/perl5.20: Argument "2.49_01" isn't numeric
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: freebsd-perl (Nobody)
URL:
Keywords: needs-qa
Depends on:
Blocks:
 
Reported: 2015-05-21 16:56 UTC by Dušan Vejnovič
Modified: 2016-03-21 14:19 UTC (History)
5 users (show)

See Also:
koobs: maintainer-feedback? (perl)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dušan Vejnovič 2015-05-21 16:56:09 UTC
When maia mailguard run cron jobs, I got message from cron:
Argument "2.49_01" isn't numeric in numeric ge (>=) at /usr/local/lib/perl5/site_perl/mach/5.20/forks.pm line 1570.
Comment 1 J. B. 2015-05-24 13:28:47 UTC
This bug is a showstopper here.

won't build:
automake
autoconf 
any p5 port

AFAIK this affects a great minority or the majority of ports I've installed.

won't run
gprename (etc etc)  especially CLI ones that depend on perl

I've posted details to the freebsd-perl and freebsd-questions lists within the past week...

See three near-identical build failures below, for example
perl5-5.20.2_4
10.1-STABLE r280322

Script started on Fri May 22 06:39:37 2015
command: make build
===>  Found saved configuration for p5-Module-Signature-0.79
===>   p5-Module-Signature-0.79 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by p5-Module-Signature-0.79 for building
===>  Extracting for p5-Module-Signature-0.79
=> SHA256 Checksum OK for Module-Signature-0.79.tar.gz.
===>  Patching for p5-Module-Signature-0.79
===>   p5-Module-Signature-0.79 depends on package: p5-PAR-Dist>=0 - found
===>   p5-Module-Signature-0.79 depends on executable: gpgv2 - found
===>   p5-Module-Signature-0.79 depends on executable: gcc49 - found
===>   p5-Module-Signature-0.79 depends on file: /usr/local/bin/as - found
===>   p5-Module-Signature-0.79 depends on file: /usr/local/bin/perl5.20.2 - found
===>  Configuring for p5-Module-Signature-0.79
Invalid version format (non-numeric data) at /usr/local/lib/perl5/5.20/vars.pm line 3.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.20/vars.pm line 3.
Compilation failed in require at /usr/local/lib/perl5/site_perl/inc/Module/Install.pm line 14.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/inc/Module/Install.pm line 14.
Compilation failed in require at ./Makefile.PL line 2.
BEGIN failed--compilation aborted at ./Makefile.PL line 2.
*** Error code 255

Stop.
make[1]: stopped in /usr/ports/security/p5-Module-Signature
*** Error code 1

Stop.
make: stopped in /usr/ports/security/p5-Module-Signature

Script done on Fri May 22 06:39:38 2015
Script started on Fri May 22 06:40:08 2015
command: make build
===>  License ART10 GPLv1 accepted by the user
===>   p5-IO-AIO-4.32 depends on file: /usr/local/sbin/pkg - found
=> IO-AIO-4.32.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch http://cpan.metacpan.org/modules/by-module/IO/IO-AIO-4.32.tar.gz
--2015-05-22 06:40:08--  http://cpan.metacpan.org/modules/by-module/IO/IO-AIO-4.32.tar.gz
Resolving cpan.metacpan.org (cpan.metacpan.org)... 23.235.47.192, 199.27.79.192
Connecting to cpan.metacpan.org (cpan.metacpan.org)|23.235.47.192|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 150475 (147K) [application/x-gzip]
Saving to: 'IO-AIO-4.32.tar.gz'


IO-AIO-4.32.tar.gz             0%[                                               ]       0  --.-KB/s             
IO-AIO-4.32.tar.gz            20%[========>                                      ]  29.70K   148KB/s             
IO-AIO-4.32.tar.gz            39%[=================>                             ]  57.98K   145KB/s             
IO-AIO-4.32.tar.gz            59%[===========================>                   ]  87.67K   144KB/s             
IO-AIO-4.32.tar.gz            79%[====================================>          ] 117.37K   145KB/s             
IO-AIO-4.32.tar.gz           100%[==============================================>] 146.95K   146KB/s   in 1.0s   

2015-05-22 06:40:09 (146 KB/s) - 'IO-AIO-4.32.tar.gz' saved [150475/150475]

===> Fetching all distfiles required by p5-IO-AIO-4.32 for building
===>  Extracting for p5-IO-AIO-4.32
=> SHA256 Checksum OK for IO-AIO-4.32.tar.gz.
===>  Patching for p5-IO-AIO-4.32
===>   p5-IO-AIO-4.32 depends on package: p5-common-sense>=0 - found
===>   p5-IO-AIO-4.32 depends on executable: gcc49 - found
===>   p5-IO-AIO-4.32 depends on file: /usr/local/bin/as - found
===>   p5-IO-AIO-4.32 depends on file: /usr/local/bin/perl5.20.2 - found
===>  Configuring for p5-IO-AIO-4.32
Invalid version format (non-numeric data) at ./Makefile.PL line 1.
BEGIN failed--compilation aborted at ./Makefile.PL line 1.
*** Error code 255

Stop.
make: stopped in /usr/ports/devel/p5-IO-AIO

Script done on Fri May 22 06:40:09 2015
Script started on Fri May 22 06:40:30 2015
command: make build
===>   p5-Devel-Caller-2.06_1 depends on file: /usr/local/sbin/pkg - found
=> Devel-Caller-2.06.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch http://distcache.FreeBSD.org/ports-distfiles/Devel-Caller-2.06.tar.gz
--2015-05-22 06:40:30--  http://distcache.freebsd.org/ports-distfiles/Devel-Caller-2.06.tar.gz
Resolving distcache.freebsd.org (distcache.freebsd.org)... 149.20.53.28, 2001:4f8:3:ffe0:406a:0:16:1c
Connecting to distcache.freebsd.org (distcache.freebsd.org)|149.20.53.28|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6540 (6.4K) [application/octet-stream]
Saving to: 'Devel-Caller-2.06.tar.gz'


Devel-Caller-2.06.tar.gz       0%[                                               ]       0  --.-KB/s             
Devel-Caller-2.06.tar.gz     100%[==============================================>]   6.39K  --.-KB/s   in 0.04s  

2015-05-22 06:40:31 (165 KB/s) - 'Devel-Caller-2.06.tar.gz' saved [6540/6540]

===> Fetching all distfiles required by p5-Devel-Caller-2.06_1 for building
===>  Extracting for p5-Devel-Caller-2.06_1
=> SHA256 Checksum OK for Devel-Caller-2.06.tar.gz.
===>  Patching for p5-Devel-Caller-2.06_1
===>   p5-Devel-Caller-2.06_1 depends on package: p5-PadWalker>=0.08 - found
===>   p5-Devel-Caller-2.06_1 depends on executable: gcc49 - found
===>   p5-Devel-Caller-2.06_1 depends on file: /usr/local/bin/as - found
===>   p5-Devel-Caller-2.06_1 depends on file: /usr/local/bin/perl5.20.2 - found
===>  Configuring for p5-Devel-Caller-2.06_1
Invalid version format (non-numeric data) at /usr/local/lib/perl5/site_perl/ExtUtils/MakeMaker.pm line 6.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/ExtUtils/MakeMaker.pm line 6.
Compilation failed in require at ./Makefile.PL line 4.
BEGIN failed--compilation aborted at ./Makefile.PL line 4.
*** Error code 255

Stop.
make: stopped in /usr/ports/devel/p5-Devel-Caller

Script done on Fri May 22 06:40:31 2015
Comment 2 J. B. 2015-05-27 04:57:26 UTC
This is a "use locale" delta between 5.18 5.20 from what I've read on the web.  Also, it may be absent on systems where
LANG
and/or 
LC_ALL 
are set to where it does not make problems.

and/or
all modules in site_perl should be modified to the correct behavior, one of which may be adding
"use locale" ...

Totally inexperienced in all this -- so unsure of a fix.
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2015-05-27 05:26:59 UTC
Correctly assign to perl@
Comment 4 Kubilay Kocak freebsd_committer freebsd_triage 2015-05-27 05:28:12 UTC
Marcus, should auto-assigner have correctly assigned this to perl@?

If so, there may be an issue with port names that include dots (.)
Comment 5 Mathieu Arnold freebsd_committer freebsd_triage 2015-05-27 09:35:58 UTC
You must have quite a strange setup.

Does this work ?

$ perl -e 'print 3 >= 2.49_01'
1
$

(for me, it produces the same result on 5.8, 5.18, 5.20 and 5.22)

what do you have in your environment ?
Comment 6 Mathieu Arnold freebsd_committer freebsd_triage 2015-05-27 09:38:49 UTC
and your /etc/make.conf
Comment 7 parv 2015-05-27 21:59:51 UTC
Do J B's first & second replies are related to OP (problem in fork.pm)? If not, J B should file a separate PR, and J B's comments should be culled from this PR(200370).
Comment 8 parv 2015-05-27 22:06:09 UTC
The "X isn't numeric" message is reproducible when apparently-non-number is quoted && warnings pragma is in effect ...

  # perl -Mwarnings -e 'print 3 >= "2.49_01" '
  Argument "2.49_01" isn't numeric in numeric ge (>=) at -e line 1.
  1


It is certainly not surprising to find a program/module version being quoted.
Comment 9 Mathieu Arnold freebsd_committer freebsd_triage 2015-05-27 22:09:55 UTC
(In reply to parv from comment #8)
> The "X isn't numeric" message is reproducible when apparently-non-number is
> quoted && warnings pragma is in effect ...
> 
>   # perl -Mwarnings -e 'print 3 >= "2.49_01" '
>   Argument "2.49_01" isn't numeric in numeric ge (>=) at -e line 1.
>   1
> 
> 
> It is certainly not surprising to find a program/module version being quoted.

But it's still only a warning, it does not break anything, it's Perl telling you "you're coding like a moron, but I get what you mean" :

$ perl -Mwarnings -e 'print 3 <=> "2.49_01" '
Argument "2.49_01" isn't numeric in numeric comparison (<=>) at -e line 1.
1
$ perl -Mwarnings -e 'print 2 <=> "2.49_01" '
Argument "2.49_01" isn't numeric in numeric comparison (<=>) at -e line 1.
-1
$
Comment 10 parv 2015-05-27 22:13:40 UTC
The problem is in forks module itself ...

  https://rt.cpan.org/Public/Bug/Display.html?id=102730


... mentioned in still open 3-month old ticket.
Comment 11 Mathieu Arnold freebsd_committer freebsd_triage 2015-05-27 22:19:14 UTC
(In reply to J. B. from comment #1)
> Invalid version format (non-numeric data) at
> /usr/local/lib/perl5/5.20/vars.pm line 3.

What is on line 3 of that file ? if it's not "use 5.006;" you have a different file than should be.


If it's the same, could you run "make -dx" and tell us what is the last command that's run, it should be something like this:

/usr/bin/env ac_cv_path_PERL=/usr/local/bin/perl ac_cv_path_PERL_PATH=/usr/local/bin/perl XDG_DATA_HOME=/usr/ports/devel/p5-AnyData/work XDG_CONFIG_HOME=/usr/ports/devel/p5-AnyData/work HOME=/usr/ports/devel/p5-AnyData/work SHELL=/bin/sh CONFIG_SHELL=/bin/sh PERL_EXTUTILS_AUTOINSTALL=--skipdeps /usr/local/bin/perl5.20.2 ./Makefile.PL INSTALLDIRS=site CC=cc 'CCFLAGS=-O2 -pipe -march=pentium4  -fstack-protector -fno-strict-aliasing' PREFIX=/usr/local INSTALLPRIVLIB=/usr/local/lib INSTALLARCHLIB=/usr/local/lib

(I ran it in devel/p5-AnyData, but it should be similar.)  Does it run /usr/local/bin/perl5.20.2 ?
Comment 12 Mathieu Arnold freebsd_committer freebsd_triage 2015-05-27 22:29:00 UTC
(In reply to parv from comment #10)
> The problem is in forks module itself ...
> 
>   https://rt.cpan.org/Public/Bug/Display.html?id=102730
> 
> 
> ... mentioned in still open 3-month old ticket.

Mmmm, yes, sorry, I got mixed up with the two problems reported here, the forks.pm warning is annoying, but it's not a problem, everything still works:

root@pkg-aragorn:/wrkdirs/usr/ports/devel/p5-forks/work/forks-0.36 # make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl5.20.2 "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/forks00-requirements.t .. ok
t/forks00-sigtrap.t ....... ok
t/forks01.t ............... Argument "2.49_01" isn't numeric in numeric ge (>=) at /wrkdirs/usr/ports/devel/p5-forks/work/forks-0.36/blib/lib/forks.pm line 1570.
#
# These tests exercise general API compatibility and behavior.
#
t/forks01.t ............... ok
t/forks02.t ............... Argument "2.49_01" isn't numeric in numeric ge (>=) at /wrkdirs/usr/ports/devel/p5-forks/work/forks-0.36/blib/lib/forks.pm line 1570.
[.........]
All tests successful.
Files=14, Tests=396, 158 wallclock secs ( 0.12 usr  0.04 sys +  6.84 cusr  2.21 csys =  9.21 CPU)
Result: PASS
Comment 13 J. B. 2015-05-29 21:27:20 UTC
Upgraded the v10 problematic system to an already-working r281990 (CURRENT).  
Perl is working again.
FWIW even pkg is working, originally "pkg upgrade" had problems.