Thoughts on the age-old cyradm thingie

Christian Schulte cs at schulte.it
Thu Nov 21 12:59:16 EST 2002


Hello,

this is a bit specific to my system but I think it is worse to mention here:

I am using the 2.2 branch out of cvs. The configure script there 
contains an option --with-perl which I specified as:

--with-perl=/usr/local/perl-5.8.0/bin/perl

I also specify --cyrus-prefix=/usr/local/cyrus2-cvs

I have two perl installations on my system. One resides in /usr/perl5 
(Solaris8-ix86) which is actually a bit broken so that I had to install 
a new perl into /usr/local/perl-5.8.0 from source.

To get everythink working I had to do the following things:

In all Makefile.PL files I had to add the two libraries -lrt and 
-ldb-3.2 (which is the berkeley version which is used for the whole 
cyrus installation) like:

'LIBS'      => ["$SASL_LIB $OPENSSL_LIB -lssl -lcrypto -ldb-3.2 -lrt"]

I do not quite understand why -lssl and -lcrypto are defined separately 
because of $OPENSSL_LIB !

To get cyradm working I had to also tweak the cyradm shellscript as well:
 
case "x$BASH_VERSION" in
x) exec /usr/local/perl-5.8.0/bin/perl 
-I/usr/local/cyrus2/lib/site_perl/5.8.0/i86pc-solaris 
-MCyrus::IMAP::Shell -e shell -- ${1+"$@"} ;;
*) exec /usr/local/perl-5.8.0/bin/perl 
-I/usr/local/cyrus2/lib/site_perl/5.8.0/i86pc-solaris 
-MCyrus::IMAP::Shell -e shell -- "$@" ;;
esac

which before looked like:

case "x$BASH_VERSION" in
x) exec perl -MCyrus::IMAP::Shell -e shell -- ${1+"$@"} ;;
*) exec perl -MCyrus::IMAP::Shell -e shell -- "$@" ;;
esac

and caused cyradm to invoke the broken perl and not the perl specified 
in --with-perl !

I would suggest doing this with the --with-perl option! I thought that 
this would be done automatically but it actually does not. The 
--with-perl option only has an effect on the compilation process where 
the MakeMaker gets called with the correct perl binary in 
/usr/local/perl-5.8.0 ! That all was a bit confusing for me but after 
all everything works as expected and I think that it is great to have 
the perl-dependent stuff under cyrus-prefix as well.
The perl dependent stuff gets installed into cyrus-prefix/lib and that 
is where it should I think!

 >ls -R /usr/local/cyrus2-cvs/lib/
/usr/local/cyrus2-cvs/lib/:
5.8.0       libcyrus.a  site_perl

/usr/local/cyrus2-cvs/lib/5.8.0:
i86pc-solaris

/usr/local/cyrus2-cvs/lib/5.8.0/i86pc-solaris:

/usr/local/cyrus2-cvs/lib/site_perl:
5.8.0

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0:
i86pc-solaris

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris:
auto           Cyrus          perllocal.pod

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/auto:
Cyrus

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/auto/Cyrus:
IMAP   SIEVE

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/auto/Cyrus/IMAP:
IMAP.bs  IMAP.so

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/auto/Cyrus/SIEVE:
managesieve

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/auto/Cyrus/SIEVE/managesieve:
managesieve.bs  managesieve.so

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/Cyrus:
IMAP     IMAP.pm  SIEVE

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/Cyrus/IMAP:
Admin.pm  IMSP.pm   Shell.pm

/usr/local/cyrus2-cvs/lib/site_perl/5.8.0/i86pc-solaris/Cyrus/SIEVE:
managesieve.pm

 









More information about the Info-cyrus mailing list