Libtool and Support for Shared Libraries

Bron Gondwana brong at
Thu May 10 07:49:27 EDT 2012

On Thu, May 10, 2012, at 01:04 AM, Дилян Палаузов wrote:
>    -- libimap and libsieve are installed under pkglibdir = 
> $cyrus_prefix/lib, e.g. /usr/cyrus/lib .  If the libraries are moved to 
> $libdir, then they shall probably be renamed to libcyrus_imap and 
> libcyrus_sieve to avoid conflicts with other libraries with the same 
> (common) name

Sounds sensible to me.  I really thing we should standarise on either
'cyr' or 'cyrus' and use it in all our utility names.  Calling things
'master' is just bad form.

While we're at it, I'd love to split things like 'mailbox.c' which are
really libraries into a separate directory from 'imapd.c' which is a
system daemon only run by master from cyrus.conf and separate again
from cyr_dbtool.c which is a tool designed to be mainly run by humans.

>    -- I have problems with MakeMaker, it would be very, very nice if 
> somebody considers to change the build system for the perl files, e.g. 
> switch to something more modern and developed like Module::Build (to 
> what I read MakeMaker is not developed any more).  In any case, the perl 
> modules are linked with the static libraries of libcyrus_min and 
> libcyrus, so currently for the binaries the shared libraries are used, 
> for the perl-stuff the static libraries are used and cyrus-imapd 
> compiles by default both shared and static libraries.

I'm very happy to move the perl libraries to something more modern.  Does
anyone have strong opinions on which way to do things?  Module::Build
seems pretty standard now.

>    -- in the future library versioning could be used, e.g. to associate 
> library-version to a cyrus-imapd release or so, at the moment my idea 
> was just to make shared libraries and these are un-versioned.

I think un-versioned will be fine for now.  We aren't being careful enough
with our APIs to fork libraries out.
  Bron Gondwana
  brong at

More information about the Cyrus-devel mailing list