Hello,I have integrated the comments about libtool/shared libraries and at the end the changes are:
-- in libcyrus_min:libconfig:config_read one parameter is added for config_need_data, so that this variable does not have to be global and presented in programs, not using config_read, update all invocations of the function to use the new API -- in libimap:global:cyrus_init add one parameter (config_need_data), so that its value can be passed to config_read; update all invocations of cyrus_init; -- create by default only shared libraries, this can be further tuned with ./configure --enable-static / --disable-shared -- rename libsieve and libimap to libcyrus_sieve and libcyrus_sieve and install them in $(libdir) (e.g. /usr/lib) -- make the perl/{imap,sieve/managesieve} modules use the shared libraries libcyrys_min and libcyrus. This might lead to a problem, when the tests in perl/imap/t/ are run, before the shared libraries are installed, as the tests depend on the shared libraries, but the tests are not instructed to where to find thw libraries. -- when there is no system-wide libcom_err, compile the bundled one as libcyrus_com_err and eventually install it in $(libdir)
I hope with uploading now the separate branch "dev/libtool" on git.cyrusimapd.org I will not mess up the things again. The problem the last time (Build failed in Jenkins: cyrus-imapd-master #571) was caused by unclean aclocal.m4:
+ autoreconf -i -f -v -Icmulocal autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal -I cmulocal --force -I cmulocal autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: running: /usr/bin/autoconf --include=cmulocal --force autoreconf: running: /usr/bin/autoheader --include=cmulocal --force autoreconf: running: automake --add-missing --copy --force-missing Makefile.am:69: library used but `RANLIB' is undefined Makefile.am:69: The usual way to define `RANLIB' is to add `AC_PROG_RANLIB' Makefile.am:69: to `configure.ac' and run `autoconf' again. Makefile.am:73: Libtool library used but `LIBTOOL' is undefined Makefile.am:73: The usual way to define `LIBTOOL' is to add `LT_INIT' Makefile.am:73: to `configure.ac' and run `aclocal' and `autoconf' again. Makefile.am:73: If `LT_INIT' is in `configure.ac', make sure Makefile.am:73: its definition is in aclocal's search path. autoreconf: automake failed with exit status: 1 + fatal 'Can'\''t run autoreconf' + echo 'imapd/tools/jenkins-build.sh: Can'\''t run autoreconf' imapd/tools/jenkins-build.sh: Can't run autoreconf + exit 1 Build step 'Execute shell' marked build as failure Skipping Cobertura coverage report as build was not SUCCESS or better ... Recording test results
On my system I do not get "autoreconf: configure.ac: not using Libtool" and I guess running "git clean" will clean the cause of the error message.
Със здраве Дилян
<<attachment: dilyan_palauzov.vcf>>