Make errors with Cyrus::IMAP

Ralph Roessner roessner at rbg.informatik.tu-darmstadt.de
Sat Jan 22 09:30:05 EST 2005


Hello!

On Fri, Jan 21, 2005 at 11:05:02AM -0800,
  H. Scott Brown wrote:
> Hello, List,
> 
> I have been having problems running cyradm, and obviously need to get this
> going to administer mailboxes (I am using virtual domains).

What problems exactly? Can you give us any error messages? Perhaps there is
an easier workaround.

Meanwhile, my thoughts on your compilation problem:

> 
> Based on a Google search which told me I needed to rebuild the stuff in
> $SOURCEDIR/perl/imap, I attempted to do so.
> 
> Particulars:
> 
> OS: Solaris 9
> Cyrus-IMAP: 2.2.9
> Perl: 5.8.5

SunOS 5.8, IMAP 2.2.10, Perl 5.6.1. Similar enough, I think.

> 
> Output:
> 
> > perl Makefile.PL
> Note (probably harmless): No library found for -lssl
> Note (probably harmless): No library found for -lcrypto
> Writing Makefile for Cyrus::IMAP

Mostly harmless? If you have OpenSSL installed anywhere (your
LD_LIBRARY_PATH seems to indicate that you have) then this is an indication
of problems to come and not harmless at all.

(make runs deleted)

 
> I know nothing of what the first error means, other than it has something to
> do with ld.so.1, which, I am assuming (being very green) is a linking error
> to something.

Correct. ld.so.1 is the run time linker. It fails to resolve (find an
implementation of) fdatasync() which is referenced (used) by IMAP.so .
> 
> The second, fdatasync, isn't this a Berkeley macro? I can't remember where
> it is, db.h? Here are a couple of environment variables:

According to man, fdatasync() is an OS function that, roughly speaking,
flushes I/O queues. It is contained in librt. I can verify that in my Cyrus
IMAP build, the fdatasync symbol is provided by /usr/lib/librt.so.1 .

Maybe there is just a "-lrt" missing in your link line. The (link time)
linker would not complain in this case but ld.so would.

Try forcing your linker to include librt:

make LD_OPTIONS=-lrt

This should not hurt anyting and you don't have to explain things to Perl.
Try a "make test".

If the error persists then please send ldd outputs for your IMAP.so:

ldd -s blib/arch/auto/Cyrus/IMAP/IMAP.so

And one without LD_LIBRARY_PATH:

LD_LIBRARY_PATH= ldd -s blib/arch/auto/Cyrus/IMAP/IMAP.so

Perhaps this will give us some pointers. In my experience, LD_LIBRARY_PATH
is evil and should be avoided. But getting rid of the beasty can be a major
PITA.

Sincerely,
   Ralph Rößner

-- 
   Ralph Rößner                                      TU Darmstadt
   EMail: roessner at rbg.informatik.tu-darmstadt.de    FB Informatik
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list