run-time dependencies

Ken Murchison murch at fastmail.com
Wed Jun 3 17:52:29 EDT 2020


Ahh, I didn't read your first email well enough.  If you configure the 
build so that those libraries are linked, then they will be needed at 
runtime.  I'm not aware of a way to disable functionality in binary 
based on what runtime libs are available, but would be willing to make 
that work with Cyrus is possible (pull requests welcome).


On 6/3/20 5:41 PM, Anatoli wrote:
> Hi Ken,
>
> Thanks for the explanation, though my question was a bit of another
> scope. Please, let me reformulate it.
>
> If we use all these elements during build time, i.e. cyrus-imapd becomes
> compiled with all of them (when using --enable-http), then... will all
> of them be also required (as OS packages) during runtime or we can avoid
> installing some of them on the systems where the cyrus-imapd package
> would be running?
>
> In other words which of them do not constitute runtime dependencies once
> they were used as build-time dependencies?
>
> If all of them are used as shared libraries or some executables invoked
> by some component of cyrus-imapd, then I guess all of them would be
> required during runtime.
>
> If some of them are only used for building the executables or linked as
> static libs, then they should not be needed during runtime, I guess, but
> I'm not sure if there are any.
>
> Thanks,
> Anatoli
>
> On 3/6/20 07:39, Ken Murchison wrote:
>> On 6/3/20 3:48 AM, Anatoli wrote:
>>> Cyrus developers,
>>>
>>> I couldn't find in the documentation the *run-time* dependencies for
>>> cyrus-imapd.
>>>
>>> In particular, are any of these not required to be present for the
>>> correct execution of cyrus-imapd (with --enable-http)?
>>>
>>> pcre e2fsprogs/uuid jansson sqlite3 icu4c libical nghttpd2 brotli wslay
>>
>> pcre is NOT required for httpd at all as far as I recall
>>
>> nghttpd2, brotli, wslay are entirely OPTIONAL
>>
>> sqlite3 is required if you want to use any DAV functionality
>>
>> libical is required if you want to use CalDAV
>>
>> icu4c is required if libical was compiled with support for non-Gregorian calendars
>>
>> jansson is definitely required for JMAP functionality, and may be required for other modules
>>
>> uuid may be prevasive enough to be required for multiple modules
>>
-- 
Kenneth Murchison
Senior Software Developer
Fastmail US LLC



More information about the Cyrus-devel mailing list