On Wed, 2015-06-17 at 18:27 +0200, Paul Boddie wrote:
But supporting each and every possible combination of configurations out there in our own setup tooling is beyond the scope of what is possible for Kolab, as you have also experienced.
It's quite possible to support other systems (Exim for mail, OpenLDAP for directory services, Dovecot for mailboxes, and so on), and there is a demand for it, but it hasn't happened within Kolab itself. All I ask is that you consider why this is, other than stating that it is difficult.
Hi Paul, I have not really followed this discussion and I am not related to Kolab in any way except for the fact I have known Georg (not for business related stuff) for a long time and I vaguely know what Kolab is.
However I do have a lot of experience in integrating disparate components into a cohesive project (FreeIPA) and I can tell you why it is difficult to support the flexibility you mention.
In FreeIPA too we settled on a specific directory technology (which totally coincidentally happens to be 389ds), and a specific Kerberos implementation and DNS implementation and so on. In theory we can support multiple implementations, but in practice we can't, and the reason is that the glue that makes all this components work together such that they actually work and provide a usable experience to users is more nuanced than you may think, and goes beyond the mere "standard" protocols.
It is already hard enough for a dedicated team to stay on top of the ever changing (and improving) underlying components that have been chosen. Adding the ability to glue together completely different implementations (with different bugs and quirks, different configuration methods and options, and different features-sets) is a whole 'nother level.
As sad as it may be, products that "integrate" existing components into a cohesive solution must choose a target and develop against it, and take the best they can from the components they choose.
It is possible that in time the underlying components evolve in such a way that the chosen one is not the most ideal anymore. In those cases it is possible to swap for another, but again it usually means rewriting the glue to deal with this new component and ditch the old one.
This is the life of the 'integrator', flexibility is, somewhat, sacrificed in the name of usability, maintainability, deploy-ability and stability, all features most users value a great deal, whether they come from the community or as paying customers.
My 2c, Simo.