(had some more time to spend on this one - replying to myself)
Okay, if I export BISON_SIMPLE=/usr/lib and run configure a few times, it seems
to pickup /usr/lib/bison.simple.
The next problem was with the location of com_err.h . . . in RedHat at least
it's within a subdir /usr/include/et/com_err.h.
I took care of that with:
perl -p -i -e 's/com_err\.h/et\/com_err\.h/g' */*.c
A more general solution might be useful in future releases ;-)
Alas, I've reached a compile error which has me confounded:
gcc -L/usr/local/lib -Wl,-rpath,/usr/local/lib -g -O2 -o lmtpd \
../master/service.o lmtpd.o lmtpengine.o lmtpstats.o \
libimap.a ../sieve/libsieve.a ../acap/libacap.a ../lib/libcyrus.a -lsasl
-ldl -lssl -lcrypto -lfl -ldb -lwrap -lnsl -lcom_err
../sieve/libsieve.a(sieve.o): In function `sieve_parse':
/usr/local/src/CYRUS/cyrus-imapd-2.0.7/sieve/sieve.y:408: undefined reference
to `yyparse'
../sieve/libsieve.a(sieve.o): In function `verify_address':
/usr/local/src/CYRUS/cyrus-imapd-2.0.7/sieve/sieve.y:597: undefined reference
to `addrparse'
../sieve/libsieve.a(sieve-lex.o): In function `yylex':
/usr/local/src/CYRUS/cyrus-imapd-2.0.7/sieve/sieve-lex.l:62: undefined
reference to `yylval'
/usr/local/src/CYRUS/cyrus-imapd-2.0.7/sieve/sieve-lex.l:110: undefined
reference to `yylval'
collect2: ld returned 1 exit status
make[1]: *** [lmtpd] Error 1
make[1]: Leaving directory `/usr/local/src/CYRUS/cyrus-imapd-2.0.7/imap'
make: *** [all] Error 1
HELP?
RedHat uses a fairly bleeding-edge compiler:
[root@mail2 cyrus-imapd-2.0.7]# gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.0)
So I thought of trying the egcs compiler (kgcc). If I export CC=kgcc, I see:
[root@mail2 cyrus-imapd-2.0.7]# ./configure
loading cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking for makedepend... makedepend
checking for gcc... /usr/bin/kgcc
checking whether the C compiler (/usr/bin/kgcc ) works... yes
checking whether the C compiler (/usr/bin/kgcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether /usr/bin/kgcc accepts -g... yes
checking for ranlib... ranlib
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... /usr/bin/install -c
checking how to run the C preprocessor... /usr/bin/kgcc -E
checking for AIX... no
checking for POSIXized ISC... no
checking for mawk... mawk
checking for working const... yes
checking for long file names... yes
checking for runpath switch... -Wl,-rpath,
checking for unistd.h... yes
checking for sys/select.h... yes
checking for sys/param.h... yes
checking for memmove... yes
checking for strcasecmp... yes
checking for ftruncate... yes
checking for strerror... yes
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking whether struct tm is in sys/time.h or time.h... time.h
checking for tm_zone in struct tm... yes
checking for vprintf... yes
checking for db_create in -ldb-3... no
checking for db_create in -ldb... no
configure: error: this version requires Berkeley DB 3.x.
(Get it from http://www.sleepycat.com/.)
[root@mail2 cyrus-imapd-2.0.7]#
Not sure how the compiler affects the DB3 stuff, bit it clearly does.
Has anyone compiled cyrus imapd on RedHat-7?
-D