Hi Anatoli,

On Mon, 23 Nov 2020, at 4:26 AM, Anatoli wrote:
> do the binaries/libs themselves change or is that new binaries/libs 
> appear for each enabled feature?

Both.

> In other words, is it possible to make a single build and then package 
> everything in 3 package variants (for each configure options group)

If you've built it with everything included, then there is no particular 
advantage to packaging up subsets of that.  You might think "we can avoid bloat 
by excluding the features we don't need", but in this case all the APIs to 
support those features would still be in libcyrus, you would just be missing 
binaries.  You could have achieved the same effect by just not running those 
services in cyrus.conf

> or should there be 3 different builds?

This is plausible, but now consider that as a deployment's needs grow and they 
need to add features, they will need to reinstall (vs just changing config).  
And if you don't have a package that provides the specific set of features they 
now need, they either need to build their own Cyrus from source (negating any 
benefit of providing packages), or they need to use the "all the bells and 
whistles" package anyway (obsoleting the separate packages).

> >From my experience, there are separate binaries for each feature (like 
> >httpd, idled, timsieved, etc.), so it would be possible to prepare different 
> >packages by just building it with a complete set of configure args and then 
> >including necessary files for each package flavor, but maybe I'm missing 
> >something?

(Discussed above.)

> I've never packaged cyrus-imapd for others, so no experience here. 
> Maybe it also makes sense to add other packaging combinations 
> (objectstore, xapian, DBs, ldap, clamav, kerberos)? If there are 
> cyrus-imapd package maintainers reading this, could you please share 
> your experience?

I would simply provide one package with all the stable/non-experimental 
features enabled, and admins can just not use the features they don't need.  
(If deployments need experimental features, they should really be tracking git 
master, not using a system package.)

Cheers,

ellie

------------------------------------------
Cyrus: Devel
Permalink: 
https://cyrus.topicbox.com/groups/devel/T5acbcb9536dc47c3-Ma1273fb2e602325194cb49d5
Delivery options: https://cyrus.topicbox.com/groups/devel/subscription

Reply via email to