run-time dependencies

Anatoli me at anatoli.ws
Wed Jun 3 22:36:50 EDT 2020


Thanks, Ken, it's clear now. I wasn't intending to make it adaptable at run-time, just wasn't sure all of them were used as dynamic libraries. I'm accommodating cyrus-imapd package to 3.2 + http, just wanted to confirm this to specify the RUN_DEPENDS list correctly.

On 3/6/20 18:52, Ken Murchison wrote:
> 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
>>>


More information about the Cyrus-devel mailing list