Page 1 of 1
sa-update error
Posted: Wed Jul 14, 2010 3:46 am
by BruceLee
since updating centos 5.5 with the latest package...
Code: Select all
perl-Archive-Tar-1.39.1-1.el5_5.1.noarch.rpm
...sa-update quits with this error:
Code: Select all
Argument "1.39_01" isn't numeric in subroutine entry at /usr/bin/sa-update line 81.
a check via sa-update --debug shows that this module is installed:
Code: Select all
[15393] dbg: diag: module installed: Archive::Tar, version 1.39_01
line 81 of /usr/bin/sa-update shows this:
So the mismatch causes the error. But what to do now. Just changing the value in /usr/bin/sa-update does not do the job.
Thanks for any help
Re: sa-update error
Posted: Wed Jul 14, 2010 3:58 am
by BruceLee
Because I thought that the error with the "numeric" is totally clear, I changed the value of the new installed
perl-Archive-Tar in /usr/lib/perl5/vendor_perl/5.8.8/Archive/Tar.pm
from
$VERSION = "1.39_01";
to
$VERSION = "1.3901";
now sa-update seems to run fine.
I think I will open a bug in centos buglist.
If anybody has a correct solution please let me know.
Re: sa-update error
Posted: Wed Jul 14, 2010 4:45 am
by breun
I see the same issue. I'm not sure whether perl-Archive-Tar (package from CentOS) or SpamAssassin (package from ART) is at fault here. Any idea, Scott?
Re: sa-update error
Posted: Wed Jul 14, 2010 4:51 am
by BruceLee
I have opened a bug at redhat buglist. Let's see what the say about it too.
Re: sa-update error
Posted: Wed Jul 14, 2010 5:00 am
by biggles
BruceLee wrote:Because I thought that the error with the "numeric" is totally clear, I changed the value of the new installed
perl-Archive-Tar in /usr/lib/perl5/vendor_perl/5.8.8/Archive/Tar.pm
from
$VERSION = "1.39_01";
to
$VERSION = "1.3901";
now sa-update seems to run fine.
I think I will open a bug in centos buglist.
If anybody has a correct solution please let me know.
Thanks! Works for me as well!
Re: sa-update error
Posted: Wed Jul 14, 2010 6:11 am
by BruceLee
bug is discussed here:
https://bugzilla.redhat.com/show_bug.cgi?id=612879
Adding this instead of changing version value works too:
And I will use it instead of changing it for this reason:
With that trick MakeMaker will only read the first line and thus read the underscore, while the perl interpreter will evaluate the $VERSION and convert the string into a number. Later operations that treat $VERSION as a number will then be able to do so without provoking a warning about $VERSION not being a number.
Re: sa-update error
Posted: Wed Jul 14, 2010 6:18 am
by Kalimari
Discovered this problem a couple of weeks ago, it was only sa-update with a problem, so solved it by updated line 81 and dropping the version #:
Thanks for posting the RedHat bug report link! I take it that the best solution is updating /usr/lib/perl5/vendor_perl/5.8.8/Archive/Tar.pm with:
Code: Select all
$VERSION = "1.39_01";
+$VERSION = eval $VERSION;
Nice one!
Re: sa-update error
Posted: Wed Jul 14, 2010 7:57 am
by faris
I'm very impressed with your detective work and your fix. Thank you.
This will undoubtedly save hours of pain for me and many others.
Faris.
Re: sa-update error
Posted: Wed Jul 14, 2010 8:59 am
by BruceLee
Thanks faris, great that I can help.
Re: sa-update error
Posted: Thu Jul 29, 2010 5:16 am
by faris
I'm now getting this in Centos 4 (not 5) after updating to perl-Archive-Tar-1.39.1-1.el4_8.1 on several machines.
Most mysterious - my Tar.pm dates from 2008. I'm checking to see if I'm looking in the wrong place and will report back.
Faris.
Re: sa-update error
Posted: Thu Jul 29, 2010 5:28 am
by breun
That's also what I'm seeing:
[janneke.lemonbit.nl ~]# rpm -q perl-Archive-Tar
perl-Archive-Tar-1.39.1-1.el4_8.1
[janneke.lemonbit.nl ~]# ll /usr/lib/perl5/vendor_perl/5.8.5/Archive/Tar.pm
-rw-r--r-- 1 root root 61977 Aug 22 2008 /usr/lib/perl5/vendor_perl/5.8.5/Archive/Tar.pm
That doesn't sound too weird though, since Archive-Tar-1.39_01 was indeed released on Aug 22 2008 according to
http://search.cpan.org/dist/Archive-Tar/
Re: sa-update error
Posted: Thu Jul 29, 2010 5:36 am
by faris
Well, irrespective of file datestamp, it has been updated
So for Centos 4 / EL4, you'll find it in /usr/lib/perl5/vendor_perl/5.8.5/Archive/Tar.pm and you can resolve the problem in the same way.
Incidentally if you happen to use the rpmforge versions then you'll already be on 1.4.x and it doesn't have this problem.
EDIT: Incidentally, this problem may only crop up if you have enabled the centosplus repo, which I think provides a different Perl version to the base. Not sure though. Just mentioning it in case.
Faris.
Re: sa-update error
Posted: Thu Jul 29, 2010 6:55 am
by breun
We don't use CentOS Plus. That perl-Archive-Tar package is just the plain CentOS package. I'm still not sure whether perl-Archive-Tar needs a fix or is SpamAssassin needs a fix and shouldn't try to parse the version number like it currently does.
Re: sa-update error
Posted: Thu Jul 29, 2010 11:56 am
by faris
Given that 3.3.x is available, I doubt that we are we likely to get an update to 3.2.x, even if we are only talking about the sa-update component.
I don't feel like upgrading to 3.3 yet. Too many things changed, and I don't even know if qmail-scanner is compatible with it.
Faris.
Re: sa-update error
Posted: Sat Aug 07, 2010 5:48 am
by breun
Official Red Hat (and CentOS) perl-Archive-Tar updates that fix this problem are now available. Thanks to Scott for providing a fixed perl-Archive-Tar package in the Atomic repository in the meantime.