In preparation of Cyrus IMAP 2.5: autoconf and automake

Дилян Палаузов dilyan.palauzov at aegee.org
Sun Apr 29 05:15:04 EDT 2012


Hello,

> To this end, we encourage you to clone the GIT repository master branch
> and attempt a build, or, alternatively, download the following snapshot
> release:
>
> http://git.cyrusimap.org/cyrus-imapd/snapshot/cyrus-imapd-2.5-snapshot-autoconf-and-automake.tar.gz
>
> The canonical build process we think applies, generally speaking, is:
>
> $ autoreconf -v

The idea at the end is to create the tarballs with "make dist", which 
includes Makefile.in, config.h.in and configure, so that "autoreconf" 
does not have to be run by the ones downloading the tarball (and it does 
not matter, if git manages those files).

Apart from including the hand-written files, and the files listed by 
automake --help, some more generated files are going to be included by 
"make dist", but I am not sure yet which files exactly.

> lib/auth_krb5.c fails to build, because autofoo does absolutely nothing to find krb5.h:
> "lib/auth_krb5.c", line 60: cannot find include file: <krb5.h>

I guess this has not working also in cyrus-imapd-2.4 .

> Undefined                       first referenced
> symbol                             in file
> krb5_free_principal                 lib/libcyrus.a(auth_krb5.o)
> krb5_realm_compare                  lib/libcyrus.a(auth_krb5.o)
> krb5_build_principal                lib/libcyrus.a(auth_krb5.o)
> uuid_unparse_lower                  imap/libimap.a(mailbox.o)
> krb5_get_default_realm              lib/libcyrus.a(auth_krb5.o)
> krb5_parse_name                     lib/libcyrus.a(auth_krb5.o)
> krb5_init_context                   lib/libcyrus.a(auth_krb5.o)
> krb5_free_context                   lib/libcyrus.a(auth_krb5.o)
> krb5_unparse_name                   lib/libcyrus.a(auth_krb5.o)
>
> So not only is autofoo not bothering to find the header file, it isn't adding the krb5 libs, either! How on earth does this link for anyone?! Manually adding LIBS='-lkrb5' to configure fixes all but the uuid problem.

The problem with -lkrb5 might disappear if you upgrade automake.  On my 
system, automake adds -lkrb5 to LIBS and uses $LIBS when linking (if 
libkrb5 is found during configure).  Which file exactly can't you link?

> "imap/append.c", line 431: syntax error before or at: 1
>
> using "sun" as a variable isn't the best choice of variable names
>
> Adding '-Xc' to the sun studio compiler to keep it from polluting the namespace would fix that, but would also undefine __FUNCTION__ causing the build to fail on the snmp bits. So I renamed all instances of "sun" to "mysun" in imap/append.c and imap/idlemsg.c.

I have renamed "sun" to "mysun" in imap/(append,idlemsg).c and uploaded 
the changes.

Със здраве
   Дилян


More information about the Cyrus-devel mailing list