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