Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Mar 2008 09:08:46 -0700
From:      David Newman <dnewman@networktest.com>
To:        freebsd-questions@freebsd.org
Subject:   error when patching cyrus-imapd-2.3.11 port
Message-ID:  <47EFBB0E.2080301@networktest.com>

next in thread | raw e-mail | index | archive | help
Greetings. I'm building a cyrus-imapd 2.3.11 server from ports on 
FreeBSD 7.0/i386. I'm also using these two University of Athens patches:

http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.11/cyrus-imapd-2.3.11-autocreate-0.10-0.diff

http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.11/cyrus-imapd-2.3.11-autosieve-0.6.0.diff

The following steps produced the error output pasted below. Thanks in 
advance for any help in debugging and fixing this.

cd /usr/ports/mail/cyrus-imapd23/
make patch
cd work/cyrus-imapd-2.3.11/
patch -p1 < ~/cyrus-imapd-2.3.11-autocreate-0.10-0.diff
patch -p1 < ~/cyrus-imapd-2.3.11-autosieve-0.6.0.diff
cd ../..
make

<snip>

cc -L/usr/lib -R/usr/lib -L/usr/local/lib -R/usr/local/lib
-rpath=/usr/lib:/usr/local/lib -o imapd  ../master/service.o pushstats.o
imapd.o proxy.o imap_proxy.o index.o version.o mutex_fake.o  libimap.a
../lib/libcyrus.a ../lib/libcyrus_min.a -L/usr/local/lib
-R/usr/local/lib -lsasl2  -lgssapi -lkrb5 -lasn1 -lroken -lcrypt
-lcom_err  -lfl   -L/usr/local/lib  -R/usr/local/lib -ldb41 -lssl
-lcrypto -lmd ../com_err/et/libcom_err.a -lwrap
libimap.a(autosieve.o)(.text+0x598): In function `autoadd_sieve':
: undefined reference to `sieve_interp_alloc'
libimap.a(autosieve.o)(.text+0x77f): In function `autoadd_sieve':
: undefined reference to `sieve_register_redirect'

<around 30 more undefined reference errors>

*** Error code 1

Stop in /usr/ports/mail/cyrus-imapd23/work/cyrus-imapd-2.3.11/imap.

I emailed the author of the patches, and he replied:

"This is a bit of a known issue. The FreeBSD ports system changes the 
Makefiles for their own build system, and the autocreate patch has to 
change the makefiles since the sieve libraries are needed also in other 
places (because of the autocreate functionality).  If you follow the 
normal patch procedure and you add the autocreate patch in the patches 
that are in the ports build system, then the autocreate patch will not 
be applied successfully since there will be conflicts in the makefiles 
again.  (The rules apply also to autosieve if i remember correctly).

  Unfortunately i don't have a freeBSD system at hand to see the changed 
that are needed (which are not backward compatible with the vanilla 
cyrus distribution), and it is quite hard for us to produce different 
patches for different operating systems. (that's why we have all the uoa 
patches against the vanilla cyrus distribution)."

I'm reluctant to build from the cyrus-imapd sources as I don't know 
enough about possible differences in file locations (and maybe code?) 
between the two distributions. Ports would be much better for me, 
provided I can correct the missing library reference.

Again, thanks for any help in debugging this.

dn





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47EFBB0E.2080301>