In preparation of Cyrus IMAP 2.5: autoconf and automake

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Sat Apr 28 16:41:16 EDT 2012


On Saturday, April 28, 2012 11:39:59 AM Carson Gaspar wrote:
> The below is on Solaris 11 using the studio compiler, using the snapshot
> from the URL below.
> 
> On 4/28/12 9:15 AM, Jeroen van Meeuwen (Kolab Systems) wrote:
> > http://git.cyrusimap.org/cyrus-imapd/snapshot/cyrus-imapd-2.5-snapshot-aut
> > oconf-and-automake.tar.gz
> > 
> > The canonical build process we think applies, generally speaking, is:
> > 
> > $ autoreconf -v
> 
> Nope.
> 
> carson:gandalf 0 SOL$ autoreconf -v
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal -I cmulocal
> /usr/local/share/aclocal/gtk.m4:7: warning: underquoted definition of
> AM_PATH_GTK
> /usr/local/share/aclocal/gtk.m4:7:   run info '(automake)Extending aclocal'
> /usr/local/share/aclocal/gtk.m4:7:   or see
> http://sources.redhat.com/automake/automake.html#Extending-aclocal
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: not using Libtool
> autoreconf: running:
> /Tools/SunOS_5.11_i86pc_amd64/autoconf-2.68/bin/autoconf
> autoreconf: running:
> /Tools/SunOS_5.11_i86pc_amd64/autoconf-2.68/bin/autoheader
> autoreconf: running: automake --no-force
> configure.ac:105: required file `./compile' not found
> configure.ac:105:   `automake --add-missing' can install `compile'
> configure.ac:55: required file `./missing' not found
> configure.ac:55:   `automake --add-missing' can install `missing'
> Makefile.am: required file `./depcomp' not found
> Makefile.am:   `automake --add-missing' can install `depcomp'
> configure.ac: required file `./ylwrap' not found
> configure.ac:   `automake --add-missing' can install `ylwrap'
> autoreconf: automake failed with exit status: 1
> 
> If I run automake --add-missing and re-run autoreconf, it works.
> 

Thanks, I'll include this in the instructions from now on. Note that we could 
not sensibly add the result of 'automake --add-missing' within GIT, as it'll 
simply establish a symbolic link with files that may not exist on target 
systems, and that adding the --copy option will fubar compatibility with the 
variety of automake versions out there.

> I also see:
> 
> OPENSSL_LIB = -L/Tools/SunOS_5.11_i86pc_amd64/openssl-1.0.0f-aesni/lib
> -L/Tools/SunOS_5.11_i86pc_amd64/openssl-1.0.0f-aesni/lib
> -R/Tools/SunOS_5.11_i86pc_amd64/openssl-1.0.0f-aesni/lib
> 
> Something is adding the openssl -L flag twice. LDFLAGS only has it once.
> 
> 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>
> 
> The only configure options I see are for krb4.
> 
> If I manually fix the krb5 problem, I get to:
> 
> "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.
> 
> 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.
> 
> Solaris 11 has libuuid, but libuuid only has libuuid_unparse, not
> libuuid_unparse_lower. configure only checks for uuid_generate (which is
> present). I forced it to fail the uuid check by passing
> ac_cv_lib_uuid_uuid_generate=no to configure.
> 
> With the above changes, it correctly compiles and links, and spot
> checking it appears RPATH is correctly set everywhere.

If you could please log these issues as separate tickets in Bugzilla, I'd much 
appreciate. Doing so would ensure we'll get the issues resolved some time 
before we do an actual 2.5 release.

Kind regards,

Jeroen van Meeuwen

-- 
Systems Architect, Kolab Systems AG

e: vanmeeuwen at kolabsys.com
m: +44 74 2516 3817
w: http://www.kolabsys.com

pgp: 9342 BF08
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20120428/382acfe1/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20120428/382acfe1/attachment-0001.bin 


More information about the Cyrus-devel mailing list