Date: Wed, 22 Sep 2004 20:39:45 +0700 (NOVST) From: "Michael O. Boev" <mike@tric.tomsk.gov.ru> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/71995: [PATCH] update and fix Cyrus lookup features of mail/sendmail Message-ID: <200409221339.i8MDdjNL049682@isrv.tric.ru> Resent-Message-ID: <200409221340.i8MDePZp072430@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 71995 >Category: ports >Synopsis: [PATCH] update and fix Cyrus lookup features of mail/sendmail >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Wed Sep 22 13:40:21 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Michael O. Boev >Release: FreeBSD 4.10-RELEASE i386 >Organization: Tomsk Regional Information Center >Environment: System: FreeBSD isrv.tric.ru 4.10-RELEASE FreeBSD 4.10-RELEASE #3: Fri May 28 14:45:40 NOVST 2004 root@isrv.tric.ru:/usr/obj/usr/src/sys/ISRV i386 >Description: Including patches containing $Log$ keywords seems erratic. as cvs grows $Log$ expansions, the patches break and real lines get truncated. So I regenerated Andrzej'z files, replacing $Log$ with a plain "Log". Also added a straightforward ruleset, FEATURE(`ckuser_cyrus'), which I believe works more transparently and fits default installations of Cyrus. >How-To-Repeat: To see the breakage of mrs_* files, type a cd /usr/ports/mail/sendmail && make SENDMAIL_WITH_CYRUSLOOKUP=yes patch and then compare cf/feature/mrs* with what's available at the original site. >Fix: Please, consider the following diff: --- sendmail.port begins here --- diff -ruN sendmail.orig/files/CYRUS_LOOKUP sendmail/files/CYRUS_LOOKUP --- sendmail.orig/files/CYRUS_LOOKUP Wed Sep 22 19:56:41 2004 +++ sendmail/files/CYRUS_LOOKUP Wed Sep 22 20:06:29 2004 @@ -8,16 +8,19 @@ They are based on the idea and work by -Andrzej Filip +Andrzej Filip, http://anfi.homeunix.net/sendmail/rtcyrus2.html +and +Mike Boev, http://tric.ru/users/mike/ckuser_cyrus/ -published at - -http://anfi.homeunix.net/sendmail/rtcyrus2.html. - -Please, use this url to learn all configuration details +Please, use these urls to learn all configuration details (although a quick recipe is provided below) and may be to give -credits to the author. - +credits to the authors. +****************************************************************** +IMPORTANT: +Now that the mrs_cyrus.m4 has been updated, you may need to adjust +the modifications you made to your .mc file if you used the old one! +See http://anfi.homeunix.net/sendmail/rtcyrus2.html for current +installation instructions. ****************************************************************** HOW TO : @@ -52,29 +55,25 @@ and a couple of others. 2. As per the `install-configure' from Cyrus IMAP server's documentation, - in the simplest case, you add: + in the simplest case, you added: define(`confLOCAL_MAILER', `cyrusv2')dnl MAILER(`cyrusv2')dnl to your sendmail's .mc file to make local delivery to Cyrus mailboxes. - Per the instructions, provided by Andrzej Filip (see the above URL), - these lines should become: + Now, simply add (somewhere near other FEATURES, before MAILER lines): - define(`LOCAL_RELAY',`mrs_cyrus_user:stripdom')dnl - FEATURE(`mrs')dnl - FEATURE(`mrs_cyrus')dnl - MODIFY_MAILER_FLAGS(`CYRUSV2',`-A5')dnl - MAILER(`cyrusv2')dnl + FEATURE(`ckuser_cyrus')dnl for sendmail to start rejecting local addresses for nonexisting and full mailboxes. Rebuild your sendmail.cf, restart sendmail, and enjoy! - If your configuration is more complicated than the above two lines, - read Andrzej's article. It contains more examples. + If your configuration is more complicated than just defining Cyrus + as your local mailer, read Andrzej's article. It covers more of the + other cases. ****************************************************************** -2004, April 8th +2004, September 16th Michael O. Boev, mike@tric.ru. diff -ruN sendmail.orig/files/cyruslookup.patch sendmail/files/cyruslookup.patch --- sendmail.orig/files/cyruslookup.patch Wed Sep 22 19:56:41 2004 +++ sendmail/files/cyruslookup.patch Wed Sep 22 20:15:43 2004 @@ -1,23 +1,48 @@ -*** cf/m4/proto.m4 2004/03/09 15:49:38 1.1 ---- cf/m4/proto.m4 2004/03/10 20:29:48 -*************** -*** 1299,1304 **** ---- 1299,1307 ---- - R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2 - R< error : $+ > $* $#error $: $1 - R< local : $* > $* $>CanonLocal < $1 > $2 -+ ifdef(`_MRS_RELAY_',`dnl -+ R< $={MRS} : $* > $* $@ $> $1 < $2 > $3 -+ dnl') - dnl it is $~[ instead of $- to avoid matches on IPv6 addresses - R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user - R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer ---- /dev/null Wed Apr 7 20:03:20 2004 -+++ cf/feature/mrs.m4 Tue Mar 23 14:00:30 2004 +diff -ruN cf.orig/feature/ckuser_cyrus.m4 cf/feature/ckuser_cyrus.m4 +--- cf.orig/feature/ckuser_cyrus.m4 Thu Jan 1 07:00:00 1970 ++++ cf/feature/ckuser_cyrus.m4 Wed Sep 22 19:53:53 2004 +@@ -0,0 +1,34 @@ ++divert(-1) ++# Written by Mike Boev <mike@tric.ru>, 2004. ++# Homepage: http://tric.ru/users/mike/ckuser_cyrus/ ++# Inspired by: mrs_cyrus.m4 by Andrzej Adam Filip ++# ++# By using this file, you agree to the terms and conditions set ++# forth in the LICENSE file which can be found at the top level of ++# the sendmail distribution. ++# ++divert(0) ++VERSIONID(`Id: ckuser_cyrus.m4,v 1.4 2004/09/21 19:02:17 m Exp ') ++divert(-1) ++define(`CYRUS_SMMAPD_SOCKET', ++ ifelse(len(X`'_ARG_), `1', `local:/var/imap/socket/smmapd', _ARG_)) ++ ++MODIFY_MAILER_FLAGS(`CYRUSV2',`+5') ++ ++LOCAL_CONFIG ++# Cyrus smmapd(8)'s map for verifying mailboxes of local recipients ++Kcyrus socket -a<OK> -T<TMPF> CYRUS_SMMAPD_SOCKET ++ ++LOCAL_RULESETS ++SLocal_localaddr ++R$+ $: $> "ckuser_cyrus" $1 ++ ++Sckuser_cyrus ++#Query smmapd(8) ++R$+ $: <!> $1 $| $(cyrus $1 $: $) ++#Cyrus OK, skip ++R<!> $* $| $* <OK> $@ $1 ++#Over quota or lookup failure ++R<!> $* $| $* <TMPF> $# error $@ 4.3.0 $: "451 TEMPFAIL." ++#Mailbox doesn't exist or its ACL forbids posting ++R<!> $* $| $* $# error $@ 5.1.1 $: "550 Mailbox is not available." +diff -ruN cf.orig/feature/mrs.m4 cf/feature/mrs.m4 +--- cf.orig/feature/mrs.m4 Thu Jan 1 07:00:00 1970 ++++ cf/feature/mrs.m4 Wed Sep 22 19:54:56 2004 @@ -0,0 +1,25 @@ +divert(-1) +dnl -+dnl Updates: http://anfi.homeunix.net/sendmail/mrs.html ++dnl Updates: http://anfi.webhop.net/sendmail/mrs.html +dnl +dnl By using this file, you agree to the terms and conditions set +dnl forth in the LICENSE file which can be found at the top level of @@ -28,11 +53,7 @@ +dnl THE FEATURE REQUIRES PATCHING cf/m4/proto.m4 +dnl SEE THE LINK AFTER "Updates:" +dnl -+dnl $Log: cyruslookup.patch,v $ -+dnl Revision 1.2 2004/05/03 04:04:06 dinoex -+dnl - update URL in patch to new location -+dnl Submitted by: Adam Filip -+dnl ++dnl Log: mrs.m4,v +dnl Revision 8.3 2004/03/18 21:39:22 anfi +dnl Changed comments prefixes to dnl to avoid m4 expansions +dnl @@ -40,13 +61,14 @@ +dnl Added "Updates:" web link. +dnl +divert(0) -+VERSIONID(`$Id: cyruslookup.patch,v 1.2 2004/05/03 04:04:06 dinoex Exp $') ++VERSIONID(`Id: mrs.m4,v 8.3 2004/03/18 21:39:22 anfi Exp ') +divert(-1) + +define(`_MRS_RELAY_', `') ---- /dev/null Thu Apr 8 15:55:21 2004 -+++ cf/feature/mrs_cyrus.m4 Thu Apr 1 21:37:05 2004 -@@ -0,0 +1,74 @@ +diff -ruN cf.orig/feature/mrs_cyrus.m4 cf/feature/mrs_cyrus.m4 +--- cf.orig/feature/mrs_cyrus.m4 Thu Jan 1 07:00:00 1970 ++++ cf/feature/mrs_cyrus.m4 Wed Sep 22 19:55:05 2004 +@@ -0,0 +1,77 @@ +divert(-1) +dnl +dnl Updates: http://anfi.homeunix.net/sendmail/rtcyrus2.html @@ -57,10 +79,9 @@ +dnl +dnl Contributed by Andrzej Filip +dnl -+dnl $Log: cyruslookup.patch,v $ -+dnl Revision 1.2 2004/05/03 04:04:06 dinoex -+dnl - update URL in patch to new location -+dnl Submitted by: Adam Filip ++dnl Log: mrs_cyrus.m4,v ++dnl Revision 8.8 2004/08/11 18:20:05 anfi ++dnl "stipdom" replaced by "dummy" +dnl +dnl Revision 8.7 2004/04/01 14:29:50 anfi +dnl Added "stripdom" handling in mrs_cyrus_user. @@ -78,7 +99,7 @@ +define(`_MRS_CYRUS_',`') + +divert(0) -+VERSIONID(`$Id: cyruslookup.patch,v 1.2 2004/05/03 04:04:06 dinoex Exp $') ++VERSIONID(`Id: mrs_cyrus.m4,v 8.8 2004/08/11 18:20:05 anfi Exp ') +divert(-1) +define(`CYRUS_SMMAPD_SOCKET', + ifelse(len(X`'_ARG_), `1', `/var/imap/socket/smmapd', _ARG_)) @@ -101,7 +122,7 @@ +R<$*> $+ <@$*> $| $* <TMPF> $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later." +R<$*> $+ <@$*> $| $* <OK> $# cyrusv2 $@ dummy $: $4 +R<$*> $+ <@$*> $| $* $: <$1> $2 <@$3> -+R<stripdom> $+ <@stripdom> $@ $1 ++R<dummy> $+ <@dummy> $@ $1 +R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3 +R< $+ > $* $>MailerToTriple < $1 > $2 +R< > $* $# error $@ 5.1.1 $: "550 User unknown" @@ -125,3 +146,16 @@ +R<dummy> $+ <@$={VirtCyrus}> $| $* $# error $@ 5.1.1 $: "550 User unknown" +R<dummy> $=L <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: @$1 +R<dummy> $* <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: $1 +diff -ruN cf.orig/m4/proto.m4 cf/m4/proto.m4 +--- cf.orig/m4/proto.m4 Wed Sep 22 20:15:04 2004 ++++ cf/m4/proto.m4 Wed Sep 22 19:52:41 2004 +@@ -1315,6 +1315,9 @@ + R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2 + R< error : $+ > $* $#error $: $1 + R< local : $* > $* $>CanonLocal < $1 > $2 ++ifdef(`_MRS_RELAY_',`dnl ++R< $={MRS} : $* > $* $@ $> $1 < $2 > $3 ++dnl') + dnl it is $~[ instead of $- to avoid matches on IPv6 addresses + R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user + R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer --- sendmail.port ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409221339.i8MDdjNL049682>