Thought that this might save someone else the trouble of figuring out how 
to get the IMSPd up on Mac OS X. Patches are against the posted 
cyrus-imspd-v1.6a3:

I sent out another patch on 7 Jan 2002 to the sasl list describing the 
tweaks to get SASL up on Mac OS X. This is a prerequisite for IMSP. In 
addition to one required change, I have included some cosmetic changes and 
hacks that may be useful.

1. imsp/syncdb.c makes some assumptions on files lengths being 
representable by 32 bit quantities. This doesn't work on Mac OS X. Because 
the data is read as one block into memory, I assumed that we can truncate 
this rather small file size to 32 bits:

418a419
>     size_t fileSize;
487c488,489
<     data = (char *) malloc(stbuf.st_size + 1);
---
>     fileSize = stbuf.st_size;
>     data = (char *) malloc(fileSize + 1);
493c495
<              stbuf.st_size+1, c->db);
---
>              fileSize+1, c->db);
499,500c501,502
<     count = read(fd, data, stbuf.st_size);
<     if (count != stbuf.st_size) {
---
>     count = read(fd, data, fileSize);
>     if (count != fileSize) {
502,503c504,505
<       fprintf(stderr, "internal consistency error count(%d) != 
stbuf.st_size (%d)\n",
<               count, stbuf.st_size);
---
>       fprintf(stderr, "internal consistency error count(%d) != fileSize 
(%d)\n",
>               count, fileSize);

2. The standard install for IMSPd puts things in different places from 
other Cyrus and SASL installs. I changed this for cleanliness

imsp/Makefile.in:

79c79
<       $(INSTALL) -s cyrus-imspd $(DESTDIR)/cyrus/usr/cyrus/bin/imspd
---
>       $(INSTALL) -s cyrus-imspd $(DESTDIR)/usr/cyrus/bin/imspd

Makefile.in:

<       - mkdir ${DESTDIR}/cyrus
<       - mkdir ${DESTDIR}/cyrus/usr
<       - mkdir ${DESTDIR}/cyrus/usr/cyrus
<       - mkdir ${DESTDIR}/cyrus/usr/cyrus/bin
---
>       - mkdir -p ${DESTDIR}/usr/cyrus/bin

3. I used the Berkeley DB with SASL so I wanted to use it with IMSPd. I had 
problems linking, so I just hacked configure. Not very nicely.

configure:

2136c2136
< LIBS="-lsasl  $LIBS"
---
> LIBS="-lsasl -ldb $LIBS"
2170c2170
<   LIBS="-lsasl $LIBS"
---
>   LIBS="-lsasl -ldb $LIBS"
2188c2188
<     LIB_SASL="-lsasl"
---
>     LIB_SASL="-lsasl -ldb"
2194c2194
<     LIB_SASL="-L$sasldir/lib -lsasl"
---
>     LIB_SASL="-L$sasldir/lib -lsasl -ldb"

4. With these fixes and the fink installation described in the SASL 
install, the make can be done as follows:

setenv CPPFLAGS "-I/sw/include"
setenv LDFLAGS "-L/sw/lib"
./configure
make depend
make
make install

That's it. Everything else works the same.

Cheers,
Mark

Reply via email to