Re: run-time dependencies

2020-06-04 Thread ellie timoney
The build-time dependencies are listed on the Compiling page under the 
"Developers only" heading: 
https://www.cyrusimap.org/imap/developer/compiling.html#developers-only

Additionally, these dependencies are only required when building from git 
sources.  In our official release files (with filename like 
cyrus-imapd-[version].tar.gz), the files they are needed for are pre-built and 
included in the package, and therefore these dependencies are generally not 
needed.

You can safely assume that every other dependency is both build-time AND 
run-time. :)

Cheers,

ellie

On Wed, Jun 3, 2020, at 5:48 PM, 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
> 
> Thanks,
> Anatoli
>


Re: run-time dependencies

2020-06-03 Thread Ken Murchison
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



Re: run-time dependencies

2020-06-03 Thread Anatoli
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
> 


Re: run-time dependencies

2020-06-03 Thread Ken Murchison



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



run-time dependencies

2020-06-03 Thread Anatoli
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

Thanks,
Anatoli