Cyrus Imap and Automake
Thomas Jarosch
thomas.jarosch at intra2net.com
Fri Jul 29 12:14:46 EDT 2011
Hi Дилян,
here's some feedback about your build system question.
Note: I'm not one of the cyrus core developers.
> if I rewrite the build system of Cyrus imap 2.4(.10) to use Automake to
> generate the Makefile.in-files, will the patch be accepted in reasonable
> time in git/master?
Have you considered alternatives to GNU Autotools?
We have experience with GNU Autotools in our company projects as well as
open source projects for several years now.
We have found that it has several shortcomings:
1. Autotools version conflicts
You can compile a released source package without any Autotools on your
system. But as soon as you
a) want to develop
b) want to install a patch which modifies the build system (like a new path
to a library, something that adds a new file,...). This is often happens
as part of packaging for .rpm or .deb.
you need Autotools on your machine. If the Autotools version on your machine
and the one used to build the release are not compatible you can't build.
Installing a different Autotools version on a given distribution without
breaking something or fixing a huge list of dependency problems is nearly
impossible. I have experience with this...
2. Build speed and parallelization
The configure run can't be run on multiple cpu cores at once and is usually
slow.
Running compile jobs on multiple cores at once can become tricky if you have
internal dependencies like libs that are included in your project. Sometimes
we experienced race conditions or cases where you had to start the build
process two or three times to get a successful build.
3. Documentation and learning
There is a book about Autotools (http://sourceware.org/autobook/). I have
read it and don't think that it explains how to use and troubleshoot
Autotools in a good way. Maybe it's hard to explain because in Autotools
everything is a macro that calls a macro that calls a macro...
I think the learning curve of Autotools is very steep and finding out what's
really happening during troubleshooting is very time consuming.
Because of these shortcomings we have used CMake for new projects for about
a year. We have made good experience with it. We have now started to port
all Autotools projects over to CMake.
Please take a look at CMake and consider it before you
start investing time into Autotools.
Best regards,
Thomas
More information about the Cyrus-devel
mailing list