Make errors with Cyrus::IMAP

H. Scott Brown hs.brown at
Tue Jan 25 13:26:49 EST 2005


Well, I finally made it to where make test will run, but I now get the
following output:

make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t

t/01-imclient....ok 1/10enter an IMAP server to use for testing: localhost
imclient_connect: unknown host "localhost.localdomain" at t/01-imclient.t
line 68, <STDIN> line 1.


        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 2-10
        Failed 9/10 tests, 10.00% okay
t/02-admin.......defined(@array) is deprecated at t/02-admin.t line 91.
        (Maybe you should just omit the defined()?)
Name "main::quota" used only once: possible typo at t/02-admin.t line 91.

t/02-admin.......ok 1/7enter an IMAP server to use for testing: localhost
imclient_connect: unknown host "localhost.localdomain" at
/cyrus-imapd-2.2.9/perl/imap/blib/lib/Cyrus/IMAP/ line 71, <STDIN>
line 1.
Use of uninitialized value in subroutine entry at
/cyrus-imapd-2.2.9/perl/imap/blib/lib/Cyrus/IMAP/ line 107, <STDIN>
line 1.
        (in cleanup) client is not of type Cyrus::IMAP at
/cyrus-imapd-2.2.9/perl/imap/blib/lib/Cyrus/IMAP/ line 107, <STDIN>
line 1.


        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 2-7
        Failed 6/7 tests, 14.29% okay
Failed Test     Stat Wstat Total Fail  Failed  List of Failed
t/01-imclient.t  255 65280    10   18 180.00%  2-10
t/02-admin.t     255 65280     7   12 171.43%  2-7
Failed 2/2 test scripts, 0.00% okay. 15/17 subtests failed, 11.76% okay.
make: *** [test_dynamic] Error 2

When I run imtest to test the Cyrus IMAP install, everything works perfectly
as it should. I can send the output of them if necessary.

What I don't get is the "client is not of type Cyrus::IMAP"; this is a make
test in $SOURCEDIR/perl/imap!

Any clues?

--H. Scott Brown

-----Original Message-----
From: owner-info-cyrus at
[mailto:owner-info-cyrus at] On Behalf Of Ralph Roessner
Sent: Monday, January 24, 2005 11:34 AM
To: info-cyrus at
Subject: Re: Make errors with Cyrus::IMAP


On Mon, Jan 24, 2005 at 09:37:06AM -0800,
  H. Scott Brown wrote:
> Hello, List,
> OK, I tried the recommended procedure, i.e. make LD_OPTIONS=-lrt, and no
> longer get a linking error with fdatasync, BUT (arghhh...)...

Looks like you are missing other libs as well, and this time it really is

> So, per request, here is the requested ldd output:

Ok, so I was barking up the wrong tree, and you LD_LIBRARY_PATH is not the
source of your problem. Still, the ldd output tells us that you
is neither linked to BDB nor to SASL.

> I have no idea what is going on in here, the only thing I can see is that
> searches /lib before /usr/lib in the first case, and /usr/lib first in the
> second case, but never seems to make it to both in either case? i.e. if it
> doesn't find it in the first search path, it never searches anywhere else,
> just gives up? I dunn o, just guessing at this point.

Right. The first hit terminates the search. For our Solaris 8 machines, /lib
is a symlink to /usr/lib, and I suspect it's the same for Sol 9. So it does
not matter which path follows. I was hoping to see whether your
LD_LIBRARY_PATH somehow corrupts the search for BDB/SASL. As those are
not linked at all, I don't see anything.

> It may be worth noting as well that when I first built the entire package,
> issued the following:
> ./configure --with-auth=unix --with-sasl=/usr/local/lib/sasl2
> --with-dbdir=/usr/local/BerkeleyDB.4.2 --without-openssl
> I don't need openssl support at this time, and possibly I need to point
> build to the location of Berkeley, as in configure? Note that the server
> up and running (at least it appears as though) fine, I can send and
> mail to the default domain, but I cannot create mailboxes for virtual
> domains.

You have a point there. I examined Makefile.PL and noticed that linking
instructions for SASL/BDB/... are taken from the environment. Set up your
environment like this (note the line continuations):

SASL_LIB='-L/usr/local/lib/sasl2 -R/usr/local/lib/sasl2 -lsasl2' \
BDB_LIB='-L/usr/local/BerkeleyDB.4.2 -R/usr/local/BerkeleyDB.4.2 -ldb-4.2' \
LIB_RT='-lrt' \
perl Makefile.PL

You won't need LD_OPTIONS with this approach. Make and call ldd (without the
-s) on the, and it should list librt, libsasl2, libdb-4.2 . If it
does then you should have no more linking problems.

> Thank you so much for your help.

You're welcome,

   Ralph Rößner

   Ralph Rößner                                      TU Darmstadt
   EMail: roessner at    FB Informatik
Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list