Solaris, Perl and Sys::Syslog

[prev] [thread] [next] [lurker] [Date index for 2003/10/14]

From: Steve
Subject: Solaris, Perl and Sys::Syslog
Date: 20:45 on 14 Oct 2003
My employer runs Sendmail (the commercial version, and no, I don't know
why).  Our primary mail gateway runs on Solaris 8, and our failover runs
on Mandrake 8.2.  Recently, my many bosses began moaning about SPAM, so I
convinced them to let us try SpamAssassin.  I configured the failover and
had everything going within a few hours or so.  We set up a test group,
and using virtusertable, I was able to route the test group from the
primary over to the failover, where their email was processed through
SpamAssassin.

Things went so well that the bosses have now decided to implement
SpamAssassin throughout the organization.  They are SO proud of
themselves.

So, off to the primary server I go.  I installed SpamAssassin, copied the
configuration files over, set up a startup script, and then fired it up.

spamd wouldn't start.  It died, bitching about Sys::Syslog not being
installed.  Okay, whatever.  I head over to CPAN and search for
Sys::Syslog.  What the fuck?  It's ONLY available in 5.8+ now?  If I want
it, I HAVE to upgrade Perl?  Why the hell can't I just download an older
package?

Dammit.

The Solaris box functions only as our primary email gateway.  It's a
fairly minimal installation, with almost no development libraries,
headers, etc. installed on it.  So, compiling Perl (which I prefer to do)
is out of the question.  Which means ... I have to visit SunFreeware.com,
one of the worst fucking sites I've ever had the misfortune to visit.  It
takes about 10 minutes for the first page to load.  Then I have to click
Solaris 8, which then takes another 5 minutes or so.  Then I click on the
package I want ... and this is where SunFreeware really starts to suck
nuts.  Instead of loading a description page for the package I'm wanting,
it loads ONE HUGE MOTHERFUCKING page containing descriptions of EVERY
Solaris 8 package available.

A little over an hour later, I have Perl-5.8.0 downloaded.

I install Perl and check that Sys::Syslog is indeed now available.  Yes!

I fire-up spampd (a proxy daemon which makes it easier to integrate
Sendmail and SpamAssassin), only to see the following:

# /etc/init.d/spampd start
-n Starting spampd:
unix passed to setlogsock, but path not available at
/usr/local/lib/perl5/site_perl/5.8.0/Net/Server.pm line 204
Syslog err [] at /usr/local/lib/perl5/site_perl/5.8.0/Net/Server.pm line 204.

Huh?  A little research leads me to
http://archive.develooper.com/perl5-porters@xxxx.xxx/msg94052.html, which
indicates that this problem has been around for OVER 2 FUCKING YEARS AND
STILL HASN'T BEEN FIXED.

Basically, almost every *nix recognizes the _PATH_LOG() as defined in
sys/syslog.h.  But not Solaris ... oh no, baby.  No fucking way.  It's
gotta be different ... it's gotta be unique.  It requires LOG_SYSLOG(). 
And apparently, the only way I can fix this is to recompile a bunch of
shit - something I CANNOT FUCKING DO ON THIS MACHINE.  Not unless I want
to install a ton of development packages, and spend the rest of the week
chasing down missing libraries, etc.

But the REAL question is this: Why the FUCK didn't the people who packaged
Perl for Solaris fix this shit?  Christ Almighty ... Sys::Syslog is now
standard in Perl, but it DOESN'T FUCKING WORK ON SOLARIS because the
packagers WON'T ADDRESS THE GODDAMNED BUG!  A bug that has been around
SINCE 2001!

Fuck.  All I want to do is filter some SPAM ....

*sigh*
--
steve


Generated at 16:00 on 18 May 2005 by mariachi 0.52