[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cobalt-developers] pop before smtp on RaQ550
- Subject: Re: [cobalt-developers] pop before smtp on RaQ550
- From: Michael Stauber <devel@xxxxxxxxxxxxxx>
- Date: Sun Sep 15 06:07:00 2002
- Organization: SOLARSPEED.NET
- List-id: Discussion Forum for developers on Sun Cobalt Networks products <cobalt-developers.list.cobalt.com>
Hi Jeff,
> Note that the popip.db database (created by POP before SMTP) hasn't
> changed since July 12th, and that the sendmail.cf* files haven't
> changed since September 4, which appears to be (from the creation of
> the *pre-spamfilter" files) the same time the SolarSpeed spamfilter was
> installed.
Well, the problem is finally solved and we have that RaQ550 back afloat - as
you know. However, while working on that particular problem I noticed more
than one oddity with the RaQ550 which might be of interest for other
developers.
So this reply here is mostly for the archives and for people who write
applications for the RaQ550, too.
Many of the RPMs on the RaQ550 come straight from the RedHat FTP server and
aparently weren't even properly tested by Sun Cobalt, nor recompiled to see
what oddities might arise, or to see if they work together without problems.
There are quite some small oddities which can make yoru hair stand on end if
you're not expecting trouble.
The RaQ550 comes with the RPM PERL-5.6.0-9. While I was compiling SpamAssassin
on the RaQ550 the compiled SpamAssassin regularly blew up in my face -
despite the fact that it compiled without any warnings.
Each time when SpamAssassin called the Perl functions related to ndbm (dbm
/ndbm - a function to access Berkley DB databases), then Perl died with the
error message "unresolved symbol ndbm_open".
This problem didn't exist on any of the older RaQs, nor was it a Perl-5.6.X
related issues as I know from extensive prior Perl experience.
I then downloaded the PERL-5.6.0-9 SRPM from the Sun Cobalt FTP server and
looked at how Sun Cobalt had build their PERL. I quickly discovered that
their SRPM and the one for RedHat-7.2 were idential down to the last byte.
The problem with that PERL is as follows:
There are three different Berkley DB Database formats available: DB1, DB2 and
DB3. They're not entirely compatible.
The old PERL-5.005 used DB1, while the newer PERL-5.6.X usually comes with
support for DB2 and DB3.
PERL-5.6.0-9 for the RaQ550 comes with a patch which is *supposed* to enable
both support for DB1 and DB3, but although it allows DB1 support, the DB3
support is not working at all.
If any PERL script "asks" Perl if it was compiled with DB3 support, then PERL
says "Sure, I can handle DB3", but then when it tries to access the
respective library for that stuff it blows up in your face.
Why is that so? Well, the underlying problem is gdbm-1.8.0-3, which installs
an interface to access Berkley DB databases. However, this RPM on the RaQ550
is utterly broken. Download the SRPM and try to compile it - it won't compile
at all. The makefile doesn't shed any light on why it won't compile, but it
apparently has to do with the two patches which are forced onto the source
code.
Anyhow, without a working gdbm installed, the PERL-5.6.0 won't compile with
proper DB3 support.
So what we've got here is a nice small string of defective RPMs which won't
compile on a native RaQ550. It's nothing critical, nor does it affect any
functionality which a regular RaQ550 users might need. However, any developer
who happens to attempt to shove in some serious third party applications will
step into a nice minefield. That one can quickly eat up a week of
developement time during which he has to fix dumb mistakes made by RedHat and
not discovered by Sun Cobalt. Blindly borrowing defective RPMs from the
RedHat FTP server isn't proper R&D, nor is it entirely smart to do so (glibc
anyone? Same sad story, wearing the same red hat!!)
Anyone who has to install scripts or programms on the RaQ550 which use DB2 or
DB3 database implementations is forced to manually recompile gdbm and has to
recompile PERL-5.6.X - unless Sun Cobalt comes up with a patch that fixes
those problems. But don't count on it.
--
With best regards,
Michael Stauber
mstauber@xxxxxxxxxxxxxx
Unix/Linux Support Engineer