Re: run-time dependencies
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
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
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
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
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