Hi Alex, alexp@xxxxxxxxxxxxxx wrote:
I have installed Cyrus+SIEVE and i can even see SIEVE running if i telnet to the 2000 port, but if i run sieveshell I get the following error. Can't locate Cyrus/SIEVE/managesieve.pm in @INC (@INC contains: /usr/lib/perl5/5.8.3/i386-linux-thread-multi /usr/lib/perl5/5.8.3 /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at /usr/local/bin/sieveshell line 44. BEGIN failed--compilation aborted at /usr/local/bin/sieveshell line 44. but the module is there locate /managesieve.pm /usr/local/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/Cyrus/SIEVE/managesieve.pm /usr/local/src/cyrus-imapd-2.2.12/perl/sieve/managesieve/managesieve.pm /usr/local/src/cyrus-imapd-2.2.12/perl/sieve/managesieve/blib/lib/Cyrus/SIEVE/managesieve.pm /usr/local/src/cyrus-imapd-2.2.13/perl/sieve/managesieve/managesieve.pm /usr/local/src/cyrus-imapd-2.2.13/perl/sieve/managesieve/blib/lib/Cyrus/SIEVE/managesieve.pm /opt/cyrus-imapd-2.2.12/perl/sieve/managesieve/managesieve.pm /opt/cyrus-imapd-2.2.12/perl/sieve/managesieve/blib/lib/Cyrus/SIEVE/managesieve.pm Please help. I have wasted 2 days already. Re-installed from scratch the whole system number of times. What i am actually is trying to archive is to create SIEVE script which will be placing 'users' spam messages (marked as a SPAM in the subj. field by SpamAssassin) into user.$user.Spam folder.
The failure-message tells you that sieveshell cannot locate the managesieve.pm, and also all the places where it looked. So there are two possible solutions: either tell perl to also look in /usr/local/lib for managesieve.pl, or to install the perl parts of Cyrus not in /usr/local but in /usr/lib/perl5. I've opted for the second solution, and every time I build Cyrus, I apply a simple patch (included). The only drawback it has is that sieveshell itself will be installed in /usr/lib/perl5 as well.
The patch can be installed by doing: cd cyrus-imapd-2.2.12 make distclean patch -p1 < cyrus-imapd-perl_prefix.patch ./configure <any options> make Regards, Paul Boven.
--- cyrus-imapd-2.2.10/perl/Makefile.in.org Thu Aug 5 18:26:15 2004 +++ cyrus-imapd-2.2.10/perl/Makefile.in Thu Aug 5 18:26:25 2004 @@ -82,7 +82,7 @@ BDB_LIB="$(BDB_LIB)" BDB_INC="$(BDB_INC)" \ OPENSSL_LIB="$(OPENSSL_LIB)" OPENSSL_INC="$(OPENSSL_INC)" \ SASL_LIB="$(SASL_LIB)" SASL_INC="$(SASL_INC)" CC="$(CC)" \ - $(PERL) Makefile.PL PREFIX=$(prefix); \ + $(PERL) Makefile.PL; \ fi; \ $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) all) || exit 1; \ done --- cyrus-imapd-2.2.10/perl/sieve/Makefile.in.org Thu Aug 5 18:30:19 2004 +++ cyrus-imapd-2.2.10/perl/sieve/Makefile.in Thu Aug 5 18:30:35 2004 @@ -84,7 +84,7 @@ BDB_LIB="$(BDB_LIB)" BDB_INC="$(BDB_INC)" \ OPENSSL_LIB="$(OPENSSL_LIB)" OPENSSL_INC="$(OPENSSL_INC)" \ SASL_LIB="$(SASL_LIB)" SASL_INC="$(SASL_INC)" CC="$(CC)" \ - $(PERL) Makefile.PL PREFIX=$(prefix); \ + $(PERL) Makefile.PL; \ fi; \ $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) all) || exit 1; \ done
---- 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