Does anyone know if cyrus can be built and run on cygwin in W2K or XP? Not seeing any indication that others are doing it, I decided to try? I managed to build and install cyrus-sasl-2.1.13 into /usr, but configure of imapd (2.1.13) is failing.
./configure --prefix=/usr -with-bdb-incdir=/usr/include/db3.1 --with-sasl=/usr/include/sasl fails with: ... checking for crypt in -lcrypt... yes checking for sasl/sasl.h... yes checking for sasl/saslutil.h... yes checking for prop_get in -lsasl2... no configure: error: Cannot continue without libsasl2. Get it from ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/. Tail of the config.log is below the sig. I noticed it contained a log of "undefined reference to _gdbm_..." messages. I didn't have gdbm. I grabbed 1.8.3 sources and built it (gcc 3.2.3). This build gives me: /usr/bin/cyggdbm-3.dll /usr/bin/cyggdbm.dll /usr/bin/cyggdbm_compat-3.dll /usr/bin/testgdbm.exe /usr/include/gdbm.h /usr/lib/libgdbm.a /usr/lib/libgdbm.dll.a /usr/lib/libgdbm.la /usr/lib/libgdbm_compat.a /usr/lib/libgdbm_compat.dll.a /usr/lib/libgdbm_compat.la The include file contains exports for all unfound APIs but without the _ prefix. E.g. extern GDBM_FILE gdbm_open __P((char *, int, int, int, void (*)())); extern void gdbm_close __P((GDBM_FILE)); extern int gdbm_store __P((GDBM_FILE, datum, datum, int)); ... My C skills have waned over the past years. So I don't remember all the export naming issues. Are these exports declared wrong (without the _ prefix, sasldb/db_gdbm.c doesn't include it)? Have I built gdbm wrong? Need special linking options? Or will cyrus not build on cygwin? Evan ----------- config.log tail ----------- /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0x7 ac):/cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:203: undefined reference to `_gdbm_errno' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0x7 e1):/cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:209: undefined reference to `_gdbm_delete' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0x8 09):/cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:210: undefined reference to `_gdbm_errno' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0x8 5b):/cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:190: undefined reference to `_gdbm_errno' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0xb 7b): In function `_sasldb_getkeyhandle': /cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:298: undefined reference to `_gdbm_open' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0xb be):/cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:309: undefined reference to `_gdbm_close' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0xb e2):/cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:301: undefined reference to `_gdbm_errno' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0xc 9d): In function `_sasldb_getnextkey': /cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:330: undefined reference to `_gdbm_firstkey' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0xd 04):/cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:333: undefined reference to `_gdbm_nextkey' /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libsasl2.a(db_gdbm.o)(.text+0xd 54): In function `_sasldb_releasekeyhandle': /cygdrive/d/Programs/cyrus-sasl-2.1.13/sasldb/db_gdbm.c:361: undefined reference to `_gdbm_close' collect2: ld returned 1 exit status configure: failed program was: #line 6437 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char prop_get(); int main() { prop_get() ; return 0; }