cyrus-imapd build dependencies
Patrick Goetz
pgoetz at mail.utexas.edu
Wed Mar 20 15:09:12 EDT 2019
Thanks, Ellie -- that was helpful. A couple of follow up comments, though.
On 3/18/19 7:55 PM, ellie timoney wrote:
> This page is in the developer section, so its context is for people who are Cyrus developers (especially for new contributors needing to get rolling quickly).
Unfortunately not just developers needs access to this information. On
Arch linux, any package not included in the official repo lands in the
AUR, which requires that packages be built and compiled from source.
(And since Arch already has dovecot in the official repos, it's unlikely
that Cyrus would be added.) I could be mistaken, but it appears the
mainstream distros are mostly stuck with very old versions of Cyrus.
I'm an Arch user, but would argue that the Arch AUR package is a great
canonical reference distribution, since Arch adheres as closely to
upstream as possible, and the PKGBUILDs are required to be 100%
deterministic. With minimal effort, someone who knows something about
building/compiling linux programs can look at the PKGBUILD and know
exactly what to do to create a functional cyrus installation.
> Expect a certain amount of detail to be glossed over on the assumption that it's already known and/or reasonably documented elsewhere.
"already known" is a less than optimal method, and I've had trouble
finding alternative documentation on a number of points.
>
> These are literally just "alternate database formats" -- maybe you already have extensive expertise in some other database and would rather use that than one of the builtin ones. It has nothing to do with virtual domains. Documentation about the databases used by Cyrus are here: https://www.cyrusimap.org/imap/concepts/deployment/databases.html
I read through the databases page and didn't see anything I don't
already know (although it sure would have been nice to have this page
available when I first started using cyrus!). When I run
./configure --help
I see this:
--with-mysql-libdir=DIR MySQL lib files are in DIR
--with-mysql-incdir=DIR MySQL include files are in DIR
--with-mysql=DIR use MySQL (in DIR) [no]
The AUR PKGBUILD (instructions for how to automatically build the
executable + auxiliary files) includes --with-msyql and depends on
mariadb-libs. I'm guessing that the configuration utility looks in the
standard places for mysql header and include files if --with-mysql is
passed to configure (/usr/include/mysql and and /usr/lib) and you only
need to specify the other 2 if your mysql libs are installed in a
standard location. It would be nice if this were explicitly documented
somewhere, though.
> The canonical source of information on configure options is the output from './configure --help'. It's kind of assumed that a developer will look there to find this information.
>
Yes, but that information is pretty sparse, as per the example above.
Most of the options are self-explanatory, but, for example, as an
experiment I tried adding the option
--disable-pcre
which resulted in the compile failing (so I guess you can't actually
disable pcre?).
>> Simple Network Management Protocol (SNMP) is a widely used
>> protocol for monitoring the health and welfare of network equipment
>> (eg. routers), computer equipment and even devices like UPSs.
>> Net-SNMP is a suite of applications used to implement SNMP v1,
>> SNMP v2c and SNMP v3 using both IPv4 and IPv6.
Right. So I know about the SNMP protocol, but have no idea how or why
cyrus would be using this.
More information about the Info-cyrus
mailing list