Jeffrey 'jf' Lim
2015-Mar-12 14:49 UTC
Dovecot fails to compile --with-cdb (and attempted fix)
On Thu, Mar 12, 2015 at 9:43 PM, Timo Sirainen <tss at iki.fi> wrote:> On 10 Mar 2015, at 16:24, Jeffrey 'jf' Lim <jfs.world at gmail.com> wrote: > > > > On Tue, Mar 10, 2015 at 2:22 AM, Jeffrey 'jf' Lim <jfs.world at gmail.com> > > wrote: > > > >> On Tue, Mar 10, 2015 at 2:15 AM, Jeffrey 'jf' Lim <jfs.world at gmail.com> > >> wrote: > >> > >>> Dovecot version: 2.2.15 > >>> Tinycdb: 0.78 > >>> > >>> I'm attempting to compile dovecot --with-cdb, but keep getting into a > >>> problem with cdb: > >>> =======================> >>> libtool: link: gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes > >>> -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 > >>> -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 > >>> -Wl,--as-needed -o .libs/anvil main.o anvil-connection.o > anvil-settings.o > >>> connect-limit.o penalty.o -Wl,--export-dynamic > >>> ../../src/lib-dovecot/.libs/libdovecot.so -ldl -lrt -Wl,-rpath > >>> -Wl,/usr/local/lib/dovecot > >>> ../../src/lib-dovecot/.libs/libdovecot.so: undefined reference to > >>> `cdb_read' > >>> ../../src/lib-dovecot/.libs/libdovecot.so: undefined reference to > >>> `cdb_find' > >>> ../../src/lib-dovecot/.libs/libdovecot.so: undefined reference to > >>> `cdb_free' > >>> ../../src/lib-dovecot/.libs/libdovecot.so: undefined reference to > >>> `cdb_init' > >>> collect2: ld returned 1 exit status > >>> make[3]: *** [anvil] Error 1 > >>> make[3]: Leaving directory `/home/jf/dovecot-2.2.15/src/anvil' > >>> =========================> >>> > >>> After some troubleshooting, I've finally managed to get dovecot to > >>> compile, albeit with a hack: > >>> > >>> --- src/lib-dovecot/Makefile.old 2015-03-09 17:36:15.690179802 +0000 > >>> +++ src/lib-dovecot/Makefile 2015-03-09 18:01:43.075719700 +0000 > >>> @@ -230,7 +230,7 @@ > >>> LIBDOVECOT_STORAGE_DEPS = $(top_builddir)/src/lib-storage/ > >>> libdovecot-storage.la $(top_builddir)/src/lib-imap-storage/ > >>> libimap-storage.la > >>> LIBICONV > >>> LIBOBJS > >>> -LIBS = -lrt > >>> +LIBS = -lrt -lcdb > >>> LIBTOOL = $(SHELL) $(top_builddir)/libtool > >>> LIBWRAP_LIBS > >>> LINKED_STORAGE_LDADD > >>> > >>> This isn't the best fix, admittedly (I wish I were more familiar with > >>> autotools), but I'll say that the configure process isn't right yet for > >>> cdb. Can anybody produce a better fix? Would love to learn more. > >>> > >>> > >> ok, well I guess that "fixed" the compilation, but as I've just found > out, > >> it does *not* link in libcdb (I've got libcdb in /usr/local/lib) > properly! > >> Has anybody tried to compile dovecot with cdb support? > >> > > > > For anybody following: sorry, my bad. It turns out I hadn't set CPPFLAGS > > and LDFLAGS during the configure to use /usr/local/{include,lib}. When > > that's done, this works (in the sense that libdovecot.so is now linked > with > > libcdb!). > > > > I'm not so sure that this is the best place to link libcdb in, though, > but > > for an expedient fix, it works.... Would appreciate somebody more > familiar > > with the code weighing in on this one. > > Well, it was never supposed to be linked to anything except the dict > binary, allowing it to be used via the dict proxy. Changed: > http://hg.dovecot.org/dovecot-2.2/rev/16ff063e3588 > >Thanks, Timo. Is this the only patch that needs to go in for the current version (2.2.15)? I've applied this to 2.2.15, and configured and compiled as before: CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --with-cdb make and I still get the same errors. -jf
Timo Sirainen
2015-Mar-12 15:17 UTC
Dovecot fails to compile --with-cdb (and attempted fix)
On 12 Mar 2015, at 16:49, Jeffrey 'jf' Lim <jfs.world at gmail.com> wrote:> > On Thu, Mar 12, 2015 at 9:43 PM, Timo Sirainen <tss at iki.fi> wrote: > >> >> Well, it was never supposed to be linked to anything except the dict >> binary, allowing it to be used via the dict proxy. Changed: >> http://hg.dovecot.org/dovecot-2.2/rev/16ff063e3588 >> >> > Thanks, Timo. Is this the only patch that needs to go in for the current > version (2.2.15)? I've applied this to 2.2.15, and configured and compiled > as before: > > CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure > --with-cdb > make > > and I still get the same errors.Did you run autogen.sh again before configure?
Jeffrey 'jf' Lim
2015-Mar-13 08:18 UTC
Dovecot fails to compile --with-cdb (and attempted fix)
On Thu, Mar 12, 2015 at 11:17 PM, Timo Sirainen <tss at iki.fi> wrote:> On 12 Mar 2015, at 16:49, Jeffrey 'jf' Lim <jfs.world at gmail.com> wrote: > > > > On Thu, Mar 12, 2015 at 9:43 PM, Timo Sirainen <tss at iki.fi> wrote: > > > >> > >> Well, it was never supposed to be linked to anything except the dict > >> binary, allowing it to be used via the dict proxy. Changed: > >> http://hg.dovecot.org/dovecot-2.2/rev/16ff063e3588 > >> > >> > > Thanks, Timo. Is this the only patch that needs to go in for the current > > version (2.2.15)? I've applied this to 2.2.15, and configured and > compiled > > as before: > > > > CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure > > --with-cdb > > make > > > > and I still get the same errors. > > Did you run autogen.sh again before configure? > >Sorry, but I dont see an autogen.sh anywhere in the tarball - not for 2.2.15, nor for the newly released 2.2.16. -jf
Reasonably Related Threads
- Dovecot fails to compile --with-cdb (and attempted fix)
- Dovecot fails to compile --with-cdb (and attempted fix)
- Dovecot fails to compile --with-cdb (and attempted fix)
- Dovecot fails to compile --with-cdb (and attempted fix)
- Dovecot fails to compile --with-cdb (and attempted fix)