hi derrick,

well it sure seems that com_err/et_list originate from / revolve around
Kerberos.

Kerberos uses them, and they are from MIT, but there are non-Kerberos things
which do.

Apple provides it with/due to Kerberos.

clear.

1st, after a fresh DL, we still have the 'suspect':

% grep et_list imap_err.c
        struct et_list {

How were these generated?

they come with the release distro:

   % cd /usr/ports/temp
   % ls
   %
   % wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.2.12.tar.gz
   % gnutar zxf cyrus-imapd-2.2.12.tar.gz
   % cd cyrus-imapd-2.2.12/imap
   % ls -al imap_err*
        -rw-r--r--  1 17985 staff 2394 Feb 14 09:59 imap_err.c
        -rw-r--r--  1 17985 staff 4568 Oct 22  2003 imap_err.et
        -rw-r--r--  1 17985 staff 3713 Feb 14 09:59 imap_err.h
   % grep et_list imap_err.c
       struct et_list {
           struct et_list *next;
       extern struct et_list *_et_list;
       static struct et_list link = { 0, 0 };
               link.next = _et_list;
               _et_list = &link;

and checking,

        % grep et_list imap_err.c
        % (<-- still EMPTY)

Which is good.

ok.

But, did you rebuild the other et files also, or do they still
have the references? And did you remake only the objects or did make
regenerate the foo_err.c and foo_err.h files out from under you with the
__et_list references again.

fair nuf. good question, and i've honestly got too much chaos here now to guarantee what 'was' ...

soooooooo, let's do "it" all from scratch for sanity & completeness -- SEVEN THE HARD WAY!

clean up:

        % rm -rf /usr/ports/cyrus/*
        % rm -rf /usr/local/cyrus-imap*
        % rm -rf /usr/local/perl_libs/sitelib/darwin-thread-multi-2level/Cyrus

DL:

        % cd /usr/ports/cyrus
        % wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.2.12.tar.gz
        % gnutar zxf cyrus-imapd-2.2.12.tar.gz
        % cp /usr/local/share/libtool/config.* 
/usr/ports/cyrus/cyrus-imapd-2.2.12/
        % setenv WORK "/usr/ports/cyrus/cyrus-imapd-2.2.12"


Patches:

        % cd /usr/ports/cyrus
        % setenv DL_LOC12 
"http://email.uoa.gr/download/cyrus/cyrus-imapd-2.2.12";

        % wget $DL_LOC12/cyrus-imapd-2.2.12-autocreate-0.9.2.diff
        % wget $DL_LOC12/cyrus-imapd-2.2.12-autoreply-0.1-0.diff
        % wget $DL_LOC12/cyrus-imapd-2.2.12-autosievefolder-0.6.diff
        % wget $DL_LOC12/cyrus-imapd-2.2.12-deletemailbox-0.2-0.diff
        % wget $DL_LOC12/cyrus-imapd-2.2.12-rmquota-0.5-0.diff

        % cd $WORK

        % patch -p1 < ../cyrus-imapd-2.2.12-autocreate-0.9.2.diff
        % patch -p1 < ../cyrus-imapd-2.2.12-autoreply-0.1-0.diff
        % patch -p1 < ../cyrus-imapd-2.2.12-autosievefolder-0.6.diff
        % patch -p1 < ../cyrus-imapd-2.2.12-rmquota-0.5-0.diff
        % patch -p1 < ../cyrus-imapd-2.2.12-deletemailbox-0.2-0.diff

clean up an old, dusty issue (<http://permalink.gmane.org/gmane.mail.imap.cyrus/16096>):

        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' imap/cvt_cyrusdb.c
        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' imap/mboxlist.c
        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' imap/mboxlist.c.orig
        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' imtest/imtest.c
        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' 
installsieve/installscript.c
        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' installsieve/request.c
        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' netnews/remotepurge.c
        % perl -pi -e 's/\#include \<sys\/msg.h\>/ /g' perl/sieve/lib/request.c

set ENV:

% unsetenv CFLAGS CPPFLAGS CXX CXXFLAGS LDFLAGS LDDLFLAGS LD_PREBIND LC_ALL LANG LINGUAS % setenv LDFLAGS "-bind_at_load -ldl -L/usr/local/berkeley-db/lib -ldb -F/Library/Frameworks -framework SASL2" % setenv CPPFLAGS "-I/usr/local/berkeley-db/include -I/Library/Frameworks/SASL2.framework/Headers"

        % which compile_et
                /usr/local/kerberos/bin/compile_et

configure:

% ./configure \
  --with-cyrus-user=cyradm \
  --with-cyrus-group=cyradm \
  --prefix=/usr/local/cyrus-imap \
  --with-cyrus-prefix=/usr/local/cyrus-imap/bin \
  --with-service-path=/usr/local/cyrus-imap/libexec \
  --with-sasl=/usr/local/cyrus-sasl \
  --with-bdb \
  --with-bdb-libdir=/usr/local/berkeley-db/lib \
  --with-bdb-incdir=/usr/local/berkeley-db/include \
--with-openssl=/usr/local/ssl \
--with-perl=/usr/bin/perl \
--with-libwrap \
--with-auth=unix \
--disable-gssapi --without-gss_impl \
--without-krb --without-krbimpl --without-krbdes \
--enable-listext \
--enable-server \
--enable-cyradm \
--with-syslogfacility=LOCAL6 \
--without-snmp \
--enable-sieve \
--with-com_err=/usr

clean up the .a vs .dylib issue ...
        % grep -rln "/usr/lib/libcom_err.a" .
                ./imap/Makefile
                ./master/Makefile
                ./notifyd/Makefile
                ./SIEVE/Makefile
                ./timsieved/Makefile

        % perl -pi -e 's/\/usr\/lib\/libcom_err.a/-lcom_err/g' ./imap/Makefile
        % perl -pi -e 's/\/usr\/lib\/libcom_err.a/-lcom_err/g' ./master/Makefile
        % perl -pi -e 's/\/usr\/lib\/libcom_err.a/-lcom_err/g' 
./notifyd/Makefile
        % perl -pi -e 's/\/usr\/lib\/libcom_err.a/-lcom_err/g' ./SIEVE/Makefile
        % perl -pi -e 's/\/usr\/lib\/libcom_err.a/-lcom_err/g' 
./timsieved/Makefile

        % grep -rln "/usr/lib/libcom_err.a" .
        % (<-- EMPTY)

manually recompile the .et files:

        % cd $WORK
        % find . -name "*.et" -print
                ./et/test1.et
                ./et/test2.et
                ./imap/imap_err.et
                ./imap/mupdate_err.et
                ./imap/nntp_err.et
                ./SIEVE/sieve_err.et

        % cd $WORK/et && compile_et test1.et
        % cd $WORK/et && compile_et test2.et
        % cd $WORK/imap && compile_et imap_err.et
        % cd $WORK/imap && compile_et mupdate_err.et
        % cd $WORK/imap && compile_et nntp_err.et
        % cd $WORK/SIEVE && compile_et sieve_err.et

be paranoid -- still clear?

% grep et_list {$WORK/et/test1.c,$WORK/et/test2.c,$WORK/et/test2.c,$WORK/imap/imap_err.c,$WORK/imap/mupdate_err.c,$WORK/imap/nntp_err.c,$WORK/SIEVE/sieve_err.c}

        % cd $WORK
        % make depend

still clear?

% grep et_list {$WORK/et/test1.c,$WORK/et/test2.c,$WORK/et/test2.c,$WORK/imap/imap_err.c,$WORK/imap/mupdate_err.c,$WORK/imap/nntp_err.c,$WORK/SIEVE/sieve_err.c}

still OK ...

        % make all
        % make install

look ma, no errors!

        % ls -al /usr/local/cyrus-imap/libexec/imapd
                -rwxr-xr-x  1 root wheel 2088280 May 23 22:13 libexec/imapd

and, the daemon looks OK:

        % otool -L libexec/imapd
                libexec/imapd:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.0.0) /usr/local/berkeley-db/lib/libdb-4.3.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/cyrus-sasl/lib/libsasl2.2.dylib (compatibility version 3.0.0, current version 3.22.0) /usr/local/ssl/lib/libssl.0.9.7.dylib (compatibility version 0.9.0, current version 0.9.7) /usr/local/ssl/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.0, current version 0.9.7) /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos (compatibility version 5.0.0, current version 5.0.0)
                        /usr/lib/libmx.A.dylib (compatibility version 1.0.0, 
current version 92.0.0)

yay! (?)

now the clean-up in code?

so, i'm not conviced that this is a Apple-specific issue ...

I never suggested it was.

i never suggested that you suggested it was ... just _my_ confusion/suspicions :-)

cheers,

richard

---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to