Bug 235347 - sa-update failed to execute without some dependency RPMs
Summary: sa-update failed to execute without some dependency RPMs
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: spamassassin
Version: 4.4
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Warren Togami
QA Contact:
URL:
Whiteboard:
Depends On: 193100
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-04-05 10:31 UTC by Jose Plans
Modified: 2018-10-19 22:39 UTC (History)
3 users (show)

Fixed In Version: RHBA-2007-0677
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-07-18 15:08:02 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2007:0677 0 normal SHIPPED_LIVE spamassassin bug fix update 2007-11-15 17:24:51 UTC

Description Jose Plans 2007-04-05 10:31:53 UTC
+++ This bug was initially created as a clone of Bug #193100 +++

Description of problem:
Dependency missing in spec file.

Version-Release number of selected component (if applicable):
spamassassin-3.1.1-1.fc5


How reproducible:
Always

Steps to Reproduce:
1. Install spamassassin
2. execute sa-update
3.
  
Actual results:

# sa-update
Can't locate Archive/Tar.pm in @INC (@INC contains:
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4
/usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at
/usr/bin/sa-update line 81.
BEGIN failed--compilation aborted at /usr/bin/sa-update line 81.


Expected results:
No error.

Additional info:
Following RPMs are missing in dependency section of the spec file.
perl-IO-Zlib    
perl-Archive-Tar

-- Additional comment from wtogami on 2006-05-25 12:11 EST --
We currently cannot add these to Core.  You may install them from Extras if you
wish to use sa-update.


-- Additional comment from t.matsuu on 2006-06-07 02:00 EST --
(In reply to comment #1)
> You may install them from Extras

Really?
I found perl-Archive-Tar and perl-IO-Zlib in FC5.
ftp://download.fedora.redhat.com/pub/fedora/linux/core/5/source/SRPMS/

-- Additional comment from wtogami on 2006-06-07 11:17 EST --
Hmm, didn't realize they were in Core.  Adding.


-- Additional comment from tmz on 2006-12-25 21:26 EST --
Any chance of pulling these changes in to the FC5 packages while it's still
supported?

-- Additional comment from tmz on 2006-12-27 00:53 EST --
There seem to still be missing Requires for the FC6 and devel packages regarding
sa-update.  Both LWP::UserAgent and HTTP::Date are needed (both are provided in
perl-libwww-perl).  Looking at the devel package I see that an sa-update cronjob
is added (though disabled by default).  if folks enable that and don't have the
proper perl modules they'll just get a spew of perl prose in their mailbox. 
They may even think that Spamassassin is junky instead of the incredible tool
that it is.

Output on FC6 without perl-libwww-perl:

$ sudo sa-update 
Can't locate LWP/UserAgent.pm in @INC (@INC contains:
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at
/usr/bin/sa-update line 92.
BEGIN failed--compilation aborted at /usr/bin/sa-update line 92.


Not being terribly familiar with upstream SA history and noticing that Justin
Mason is on the CC list for this bug, I'm curious why sa-update uses evals in
the use ... statements to "avoid the annoying RPM requirement check."  If it's
just to allow the upstream packaged rpm to not require the deps for sa-update
perhaps it would be better to split sa-update into a separate package in the
upstream rpm?

-- Additional comment from jm on 2006-12-27 07:19 EST --
yep, it's just to allow the upstream packaged rpm to not require the deps for
sa-update (or the other optional components of SA).  we are indeed thinking of
splitting sa-update into a separate RPM, so taht it can have its own deps;
Warren, your $.02 would be very welcome at that bug ;)

-- Additional comment from tmz on 2006-12-27 09:50 EST --
Thanks for the info Justin.  I've used SA for quite a while now and I've never
had a problem with sa-update's deps - all of my systems have had the additional
perl mods that need to get pulled in for it to work.  So to me the easiest
solution is to just strip the evals and let sa-update's deps be added by rpm
automagically.

Thanks for all of the work on SA Justin.  'Tis a very hard package to live without.

-- Additional comment from wtogami on 2006-12-27 14:10 EST --
I will issue this in FC5 soon.

Regarding split into a separate sa-update package, it doesn't matter if this
happens or not for us.  In existing products I would need to include sa-update
within the main spamassassin package, because in upgrade scenarios I can't have
sa-update just disappear.

-- Additional comment from wtogami on 2006-12-27 14:26 EST --
Actually, no, I will not issue a FC5 update only for this reason.  There are no
actual bug fixes here.  I may issue it later when there is a new version of
spamassassin.

-- Additional comment from tmz on 2006-12-27 14:57 EST --
No problem holding an FC5 update until a new upstream release or some more
important bug warrants it.  I had just noticed that it wasn't added to the spec
for the FC-5 branch and didn't want it to get missed if possible.

And yeah, understood that splitting sa-updates into a new package upstream
doesn't mean FC should.  But if they do, that will likely mean the evals will
disappear and then rpm's automatic dep handling will work as it should.

Thanks Warren.

-- Additional comment from smooge on 2006-12-29 22:46 EST --
How about a FC6 fix then as it is broken in FCL-6.. 

-- Additional comment from wtogami on 2006-12-29 23:03 EST --
It is?

The package in FC6 has the right perl module dependencies.
Are you sure it isn't SELinux?

Bug #187974 is the selinux problem.  I don't know if this was pushed to FC5 or
FC6 yet.

-- Additional comment from tmz on 2006-12-30 04:02 EST --
The FC6 package is still missing deps for LWP::Useragent and HTTP::Date, both
provided by perl-libwww-perl:

[root@zod ~]# cat /etc/fedora-release 
Fedora Core release 6 (Zod)
[root@zod ~]# rpm -q spamassassin
spamassassin-3.1.7-1.fc6
[root@zod ~]# sa-update 
Can't locate LWP/UserAgent.pm in @INC (@INC contains:
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at
/usr/bin/sa-update line 92.
BEGIN failed--compilation aborted at /usr/bin/sa-update line 92.


-- Additional comment from wtogami on 2006-12-30 04:41 EST --
Argh, OK thanks.  This will be pushed in devel soon, and both FC5 and FC6 after
there is a more substantial reason (major bug fix or new upstream release) to
push an update.


-- Additional comment from tmz on 2007-01-27 11:28 EST --
Created an attachment (id=146745)
Patch to add missing sa-update deps

HTTP::Date and LWP::UserAgent are still missing from the latest spamassassin
updates.  Both are provided via perl-libwww-perl which is available on all
supported systems AFAICT.  Would it be a problem to include them
unconditionally the same way that Net::DNS is?

-- Additional comment from wtogami on 2007-01-28 00:04 EST --
Thanks, I'm adding this to spamassassin-3_1_7-6 and higher.  This will not be
pushed to FC5 or FC6 yet though, until we have acquired more higher priority bug
fixes.

Comment 1 Warren Togami 2007-04-05 15:06:46 UTC
The solution needed for RHEL-4 is different from the above.  We would need to
add perl-Archive-Tar and a few other perl modules that it relies upon to
RHEL-4.6 in order to support this feature.  PM and QA need to decide whether
this is something they are willing to approve.

Comment 3 Warren Togami 2007-06-26 20:32:08 UTC
perl-Archive-Tar-1.30-1.fc6
perl-IO-Zlib-1.04-4.2.1
perl-Compress-Zlib-1.42-1.fc6
perl-IO-String-1.08-1.1.1

I tested these from RHEL5 with simple rebuilds on RHEL4, and it solves the
problem.  We should include the exact same code as RHEL5 for these packages, but
with a slightly different disttag to ensure upgrade path from RHEL4 -> RHEL5.

RHEL4                         -> RHEL5
perl-Archive-Tar-1.30-1.el4   -> perl-Archive-Tar-1.30-1.fc6
perl-IO-Zlib-1.04-4.2.el4     -> perl-IO-Zlib-1.04-4.2.1
perl-Compress-Zlib-1.42-1.el4 -> perl-Compress-Zlib-1.42-1.fc6
perl-IO-String-1.08-1.1.el4   -> perl-IO-String-1.08-1.1.1

Risk: Negligible
Nothing else in RHEL uses this, so the addition of these packages in RHEL4 would
not effect anything else.

Do we want to also issue a spamassassin package update to require these
packages?  If we don't then customers will be confused why it still doesn't work
unless they explicitly install perl-Archive-Tar.

Comment 11 Red Hat Bugzilla 2007-07-18 15:08:02 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2007-0677.html



Note You need to log in before you can comment on or make changes to this bug.