Package init

This commit is contained in:
overweight 2019-09-30 11:14:10 -04:00
commit 849c71bd8f
12 changed files with 1977 additions and 0 deletions

19
procmail-3.15.1-man.patch Normal file
View File

@ -0,0 +1,19 @@
--- procmail-3.15.1/man/procmail.man.35825 Thu Apr 12 18:31:37 2001
+++ procmail-3.15.1/man/procmail.man Thu Apr 12 18:32:42 2001
@@ -44,11 +44,11 @@
should be invoked automatically over the
.B @DOT_FORWARD@
file mechanism as soon as mail arrives. Alternatively, when installed by
-a system administrator, it can be invoked from within the mailer immediately.
-When invoked, it first sets some environment variables to default values,
-reads the mail message from stdin until an EOF, separates the body from the
-header, and then, if no command line arguments are present, it starts to look
-for a file named
+a system administrator (and in the standard Red Hat Linux configuration), it
+can be invoked from within the mailer immediately. When invoked, it
+first sets some environment variables to default values, reads the mail message from
+stdin until an EOF, separates the body from the header, and then, if no command line
+arguments are present, it starts to look for a file named
.BR @PROCMAILRC@ .
According to the processing recipes in this file,
the mail message that just arrived gets distributed into the right folder

View File

@ -0,0 +1,18 @@
diff --git a/src/formisc.c b/src/formisc.c
index 338733b..c48df52 100644
--- a/src/formisc.c
+++ b/src/formisc.c
@@ -84,12 +84,11 @@ normal: *target++= *start++;
case '"':*target++=delim='"';start++;
}
;{ int i;
- do
+ while(*start) /* anything? */
if((i= *target++= *start++)==delim) /* corresponding delimiter? */
break;
else if(i=='\\'&&*start) /* skip quoted character */
*target++= *start++;
- while(*start); /* anything? */
}
hitspc=2;
}

View File

@ -0,0 +1,13 @@
diff --git a/src/formisc.c b/src/formisc.c
index 5c2869d..54fd013 100644
--- a/src/formisc.c
+++ b/src/formisc.c
@@ -103,7 +103,7 @@ void loadsaved(sp)const struct saved*const sp; /* load some saved text */
}
/* append to buf */
void loadbuf(text,len)const char*const text;const size_t len;
-{ if(buffilled+len>buflen) /* buf can't hold the text */
+{ while(buffilled+len>buflen) /* buf can't hold the text */
buf=realloc(buf,buflen+=Bsize);
tmemmove(buf+buffilled,text,len);buffilled+=len;
}

View File

@ -0,0 +1,58 @@
diff --git a/src/cstdio.c b/src/cstdio.c
index 7b6fe6d..0a0bd5b 100644
--- a/src/cstdio.c
+++ b/src/cstdio.c
@@ -144,7 +144,7 @@ int getbl(p,end)char*p,*end; /* my gets */
{ case '\n':case EOF:*q='\0';
return overflow?-1:p!=q; /* did we read anything at all? */
}
- if(q==end) /* check here so that a trailing backslash won't be lost */
+ if(q>=end) /* check here so that a trailing backslash won't be lost */
q=p,overflow=1;
*q++=i;
}
@@ -199,7 +199,7 @@ int getlline(target,end)char*target,*end;
if(*(target=strchr(target,'\0')-1)=='\\')
{ if(chp2!=target) /* non-empty line? */
target++; /* then preserve the backslash */
- if(target>end-2) /* space enough for getbl? */
+ if(target>=end-2) /* space enough for getbl? */
target=end-linebuf,overflow=1; /* toss what we have */
continue;
}
diff --git a/src/formail.c b/src/formail.c
index 1f5c9dd..49b9967 100644
--- a/src/formail.c
+++ b/src/formail.c
@@ -219,7 +219,8 @@ static char*getsender(namep,fldp,headreply)char*namep;struct field*fldp;
if(i>=0&&(i!=maxindex(sest)||fldp==rdheader)) /* found anything? */
{ char*saddr;char*tmp; /* determine the weight */
nowm=areply&&headreply?headreply==1?sest[i].wrepl:sest[i].wrrepl:i;chp+=j;
- tmp=malloc(j=fldp->Tot_len-j);tmemmove(tmp,chp,j);(chp=tmp)[j-1]='\0';
+ tmp=malloc((j=fldp->Tot_len-j) + 1);tmemmove(tmp,chp,j);(chp=tmp)[j-1]='\0';
+ chp[j]='\0';
if(sest[i].head==From_)
{ char*pastad;
if(strchr(saddr=chp,'\n')) /* multiple From_ lines */
@@ -364,7 +365,7 @@ static PROGID;
int main(lastm,argv)int lastm;const char*const argv[];
{ int i,split=0,force=0,bogus=1,every=0,headreply=0,digest=0,nowait=0,keepb=0,
- minfields=(char*)progid-(char*)progid,conctenate=0,babyl=0,babylstart,
+ minfields=(char*)progid-(char*)progid,conctenate=0,babyl=0,babylstart=0,
berkeley=0,forgetclen;
long maxlen,ctlength;FILE*idcache=0;pid_t thepid;
size_t j,lnl,escaplen;char*chp,*namep,*escap=ESCAP;
diff --git a/src/formisc.c b/src/formisc.c
index c48df52..5c2869d 100644
--- a/src/formisc.c
+++ b/src/formisc.c
@@ -66,7 +66,7 @@ inc: start++;
retz: *target='\0';
ret: return start;
}
- if(*start=='\\')
+ if(*start=='\\' && *(start + 1))
*target++='\\',start++;
hitspc=2;
goto normal; /* normal word */

View File

@ -0,0 +1,56 @@
diff -up procmail-3.22/src/fields.c.getline procmail-3.22/src/fields.c
--- procmail-3.22/src/fields.c.getline 2001-09-11 06:57:08.000000000 +0200
+++ procmail-3.22/src/fields.c 2009-06-30 16:10:36.000000000 +0200
@@ -110,16 +110,16 @@ void dispfield(p)register const struct f
/* try and append one valid field to rdheader from stdin */
int readhead P((void))
{ int idlen;
- getline();
+ get_line();
if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */
return 0;
if(idlen==STRLEN(FROM)&&eqFrom_(buf)) /* it's a From_ line */
{ if(rdheader)
return 0; /* the From_ line was a fake! */
- for(;buflast=='>';getline()); /* gather continued >From_ lines */
+ for(;buflast=='>';get_line()); /* gather continued >From_ lines */
}
else
- for(;;getline()) /* get the rest of the continued field */
+ for(;;get_line()) /* get the rest of the continued field */
{ switch(buflast) /* will this line be continued? */
{ case ' ':case '\t': /* yep, it sure is */
continue;
diff -up procmail-3.22/src/formail.c.getline procmail-3.22/src/formail.c
--- procmail-3.22/src/formail.c.getline 2009-06-30 16:00:40.000000000 +0200
+++ procmail-3.22/src/formail.c 2009-06-30 16:10:49.000000000 +0200
@@ -819,7 +819,7 @@ splitit: { if(!lnl) /* did the p
{ if(split) /* gobble up the next start separator */
{ buffilled=0;
#ifdef sMAILBOX_SEPARATOR
- getline();buffilled=0; /* but only if it's defined */
+ get_line();buffilled=0; /* but only if it's defined */
#endif
if(buflast!=EOF) /* if any */
goto splitit;
diff -up procmail-3.22/src/formisc.c.getline procmail-3.22/src/formisc.c
--- procmail-3.22/src/formisc.c.getline 2001-06-29 04:20:45.000000000 +0200
+++ procmail-3.22/src/formisc.c 2009-06-30 16:12:20.000000000 +0200
@@ -115,7 +115,7 @@ void loadchar(c)const int c; /* a
buf[buffilled++]=c;
}
-int getline P((void)) /* read a newline-terminated line */
+int get_line P((void)) /* read a newline-terminated line */
{ if(buflast==EOF) /* at the end of our Latin already? */
{ loadchar('\n'); /* fake empty line */
return EOF; /* spread the word */
diff -up procmail-3.22/src/formisc.h.getline procmail-3.22/src/formisc.h
--- procmail-3.22/src/formisc.h.getline 1999-04-19 08:42:15.000000000 +0200
+++ procmail-3.22/src/formisc.h 2009-06-30 16:10:02.000000000 +0200
@@ -17,4 +17,4 @@ void
char*
skipwords P((char*start));
int
- getline P((void));
+ get_line P((void));

228
procmail-3.22-ipv6.patch Normal file
View File

@ -0,0 +1,228 @@
diff --git a/src/autoconf b/src/autoconf
index 3a52e6c..ff78048 100755
--- a/src/autoconf
+++ b/src/autoconf
@@ -68,8 +68,6 @@
# #define NOfsync
#Ok #define endpwent()
#Ok #define endgrent()
-#Ok #define endhostent()
-#Ok #define endservent()
#Ok #define endprotoent()
# #define h_0addr_list h_addr
#Ok #define NOpw_passwd
@@ -896,7 +894,7 @@ int main(){int i=0;
{uid_t vuid_t;i+=vuid_t=1;}
{gid_t vgid_t;i+=vgid_t=1;}
#ifndef NO_COMSAT
- {struct hostent vhostent;i+=!(vhostent.h_addr_list=0);}
+ {struct addrinfo res; i+=!(res.ai_socktype=0);}
#endif
#ifndef NOuname
{struct utsname vutsname;i+=!(*vutsname.nodename='\0');}
@@ -917,8 +915,6 @@ do
test -z "$i3" && grepfor mode_t 'typedef int mode_t;' && i3=I
test -z "$i4" && grepfor uid_t 'typedef int uid_t;' && i4=I
test -z "$i5" && grepfor gid_t 'typedef int gid_t;' && i5=I
- test -z "$i6" && grepfor h_addr_list '#define h_0addr_list h_addr' && i6=I
- test -z "$i6" && grepfor hostent '#define h_0addr_list h_addr' && i6=I
test -z "$i6" && grepfor member '#define h_0addr_list h_addr' && i6=I
test -z "$i7" && grepfor utsname "#define NOuname \
/* <sys/utsname.h> is there, but empty */" && i7=I
@@ -1048,8 +1044,12 @@ int main(){char a[2];
{struct utsname b;uname(&b);}
#endif
#ifndef NO_COMSAT
- gethostbyname("0");getprotobyname(COMSATprotocol);endhostent();endservent();
- endprotoent();
+ {
+ struct addrinfo *res, hints;
+ memset(&hints, '\0', sizeof(hints));
+ if(getaddrinfo(COMSAThost,BIFF_serviceport,&hints,&res))
+ freeaddrinfo(res);
+ }
#endif
_exit(0);
return 0;}
@@ -1103,14 +1103,9 @@ grepfor uname "\
/* <sys/utsname.h> defines it, the libraries don't */"
grepfor endpwent '#define endpwent()'
grepfor endgrent '#define endgrent()'
-if grepfor gethostbyname '#define NO_COMSAT'
+if grepfor getaddrinfo '#define NO_COMSAT'
then
:
-else
- grepfor getprotobyname '#define UDP_protocolno 17'
- grepfor endhostent '#define endhostent()'
- grepfor endservent '#define endservent()'
- grepfor endprotoent '#define endprotoent()'
fi
grepfor strstr '#define SLOWstrstr' ||
grepfor clock '#define SLOWstrstr'
@@ -1239,39 +1234,9 @@ int main(argc,argv)int argc;const char*argv[];
printf("/* Insufficient memory to perform the benchmark! */\n");
#endif /* SLOWstrstr */
#ifndef NO_COMSAT
-#ifndef UDP_protocolno
- ;{ const struct protoent*p;
- if(p=getprotobyname(COMSATprotocol))
- { printf("#define UDP_protocolno %d\n",p->p_proto);
-#else
- ;{ if(1)
- {
-#endif
- ;{ const struct servent*serv;
- if(serv=getservbyname(COMSATservice,COMSATprotocol))
- printf("#define BIFF_serviceport \"%d\"\n",
- ntohs(serv->s_port));
- }
-#ifdef AF_INET
- ;{ const struct hostent*host;
- if(!strcmp("localhost",COMSAThost)&&
- (host=gethostbyname(COMSAThost))&&
- host->h_0addr_list&&host->h_addrtype==AF_INET&&
- host->h_length)
- { int j=host->h_length;
- const unsigned char*ad=(void*)host->h_0addr_list;
- printf("#define IP_localhost {");
- printf("%d",*ad++);
- while(--j)
- printf(",%d",*ad++);
- puts("}");
- }
- }
+#ifndef AF_INET
+ puts("#define NO_COMSAT");
#endif /* AF_INET */
- }
- else
- puts("#define NO_COMSAT");
- }
#endif /* NO_COMSAT */
;{ unsigned long s=(size_t)~0;int bits;
for(bits=1;s>>=1;bits++);
diff --git a/src/comsat.c b/src/comsat.c
index 9712e74..5082b16 100644
--- a/src/comsat.c
+++ b/src/comsat.c
@@ -27,7 +27,8 @@ static /*const*/char rcsid[]=
#include "comsat.h"
static int csvalid; /* is it turned on with a good address? */
-static struct sockaddr_in csaddr;
+static struct addrinfo cai;
+static struct sockaddr *csaddr;
static char*cslastf,*cslgname;
void setlfcs(folder)const char*folder; /* set lastfolder for comsat */
@@ -62,56 +63,32 @@ void setlgcs(name)const char*name; /* set logname for comsat */
}
int setcomsat(chp)const char*chp;
-{ char*chad;int newvalid; struct sockaddr_in newaddr;
+{ char*chad;int newvalid; struct addrinfo *res, hints;
chad=strchr(chp,SERV_ADDRsep); /* @ separator? */
if(!chad&&!renvint(-1L,chp))
return csvalid=0; /* turned off comsat */
newvalid=1;
if(chad)
*chad++='\0'; /* split the specifier */
+ if(!chad||!*chp) /* no service */
+ chp=BIFF_serviceport; /* new balls please! */
if(!chad||!*chad) /* no host */
-#ifndef IP_localhost /* Is "localhost" preresolved? */
chad=COMSAThost; /* nope, use default */
-#else /* IP_localhost */
- { static const unsigned char ip_localhost[]=IP_localhost;
- newaddr.sin_family=AF_INET;
- tmemmove(&newaddr.sin_addr,ip_localhost,sizeof ip_localhost);
- }
- else
-#endif /* IP_localhost */
- { const struct hostent*host; /* what host? paranoid checks */
- if(!(host=gethostbyname(chad))||!host->h_0addr_list)
- { bbzero(&newaddr.sin_addr,sizeof newaddr.sin_addr);
- newvalid=0; /* host can't be found, too bad */
- }
- else
- { newaddr.sin_family=host->h_addrtype; /* address number found */
- tmemmove(&newaddr.sin_addr,host->h_0addr_list,host->h_length);
- }
- endhostent();
- }
- if(newvalid) /* so far, so good */
- { int s;
- if(!chad||!*chp) /* no service */
- chp=BIFF_serviceport; /* new balls please! */
- s=strtol(chp,&chad,10);
- if(chp!=chad) /* the service is not numeric */
- newaddr.sin_port=htons((short)s); /* network order */
- else
- { const struct servent*serv;
- serv=getservbyname(chp,COMSATprotocol); /* so get its no. */
- if(serv)
- newaddr.sin_port=serv->s_port;
- else
- { newaddr.sin_port=htons((short)0); /* no such service */
- newvalid=0;
- }
- endservent();
- }
- }
+ bzero(&hints,sizeof(hints));
+ hints.ai_socktype=SOCK_DGRAM;
+ hints.ai_flags=AI_ADDRCONFIG;
+ if(getaddrinfo(chad,chp,&hints,&res))
+ newvalid=0;
+
onguard(); /* update the address atomically */
if(csvalid=newvalid)
- tmemmove(&csaddr,&newaddr,sizeof(newaddr));
+ { if(csaddr)
+ free(csaddr);
+ csaddr=malloc(res->ai_addrlen);
+ tmemmove(csaddr,res->ai_addr,res->ai_addrlen);
+ tmemmove(&cai,res,sizeof(cai));
+ freeaddrinfo(res);
+ }
offguard();
return newvalid;
}
@@ -132,8 +109,8 @@ void sendcomsat(folder)const char*folder;
}
strlcat(buf,COMSATxtrsep,linebuf); /* custom seperator */
strlcat(buf,p,linebuf); /* where was it delivered? */
- if((s=socket(AF_INET,SOCK_DGRAM,UDP_protocolno))>=0)
- { sendto(s,buf,strlen(buf),0,(struct sockaddr*)&csaddr,sizeof(csaddr));
+ if((s=socket(cai.ai_family,cai.ai_socktype,cai.ai_protocol))>=0)
+ { sendto(s,buf,strlen(buf),0,csaddr,cai.ai_addrlen);
rclose(s);
yell("Notified comsat:",buf);
}
diff --git a/src/network.h b/src/network.h
index d7d08f2..b09b6c4 100644
--- a/src/network.h
+++ b/src/network.h
@@ -1,19 +1,13 @@
/*$Id: network.h,v 1.7 1997/04/02 03:15:41 srb Exp $*/
-#include <sys/socket.h> /* socket() sendto() AF_INET
+#include <sys/socket.h> /* socket() sendto() */
/* SOCK_DGRAM */
-#include <netdb.h> /* gethostbyname() getservbyname()
- /* getprotobyname() */
-#include <netinet/in.h> /* htons() struct sockaddr_in */
+#include <netdb.h> /* getaddrinfo() */
#ifndef BIFF_serviceport
#define BIFF_serviceport COMSATservice
#endif
-#ifndef h_0addr_list
-#define h_0addr_list h_addr_list[0] /* POSIX struct member */
-#endif
-
#ifndef NO_const /* since network.h is outside the autoconf const check */
#ifdef const /* loop, we need this backcheck for some systems */
#undef const

View File

@ -0,0 +1,97 @@
--- procmail-3.22/Makefile.rhconfig 2001-09-10 22:53:09.000000000 -0600
+++ procmail-3.22/Makefile 2003-09-12 07:44:34.000000000 -0600
@@ -23,7 +23,7 @@
# Uncomment to install compressed man pages (possibly add extra suffix
# to the definitions of MAN?DIR and/or MAN?SUFFIX by hand)
-#MANCOMPRESS = compress
+# MANCOMPRESS = compress
############################*#
# Things that can be made are:
@@ -55,7 +55,7 @@
LOCKINGTEST=__defaults__
-#LOCKINGTEST=/tmp . # Uncomment and add any directories you see fit.
+LOCKINGTEST=/tmp . # Uncomment and add any directories you see fit.
# If LOCKINGTEST is defined, autoconf will NOT
# prompt you to enter additional directories.
# See INSTALL for more information about the
@@ -65,7 +65,7 @@
# Only edit below this line if you *think* you know what you are doing #
########################################################################
-#LOCKINGTEST=100 # Uncomment (and change) if you think you know
+LOCKINGTEST=100 # Uncomment (and change) if you think you know
# it better than the autoconf lockingtests.
# This will cause the lockingtests to be hotwired.
# 100 to enable fcntl()
@@ -74,8 +74,8 @@
# Or them together to get the desired combination.
# Optional system libraries we search for
-SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lnsl -lsun \
- -lgen -lsockdns -ldl
+SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lsun \
+ -lgen -lsockdns
# -lresolv # not really needed, is it?
# Informal list of directories where we look for the libraries in SEARCHLIBS
@@ -86,8 +86,8 @@
#-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized
# The place to put your favourite extra cc flag
-CFLAGS0 = -O #$(GCC_WARNINGS)
-LDFLAGS0= -s
+CFLAGS0 = $(RPM_OPT_FLAGS) #$(GCC_WARNINGS)
+LDFLAGS0=
# Read my libs :-)
LIBS=
--- procmail-3.22/config.h.rhconfig 2001-09-10 22:53:50.000000000 -0600
+++ procmail-3.22/config.h 2003-09-12 07:41:40.000000000 -0600
@@ -35,7 +35,8 @@
*/
/*#define DEFSPATH "PATH=/bin:/usr/bin" /* */
/*#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin" /* */
-
+#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin" /* */
+
/* every environment variable appearing in PRESTENV will be set or wiped
* out of the environment (variables without an '=' sign will be thrown
* out), e.g. you could define PRESTENV as follows:
@@ -46,13 +47,13 @@
*/
#define PRESTENV {"IFS","ENV","PWD",0}
-/*#define GROUP_PER_USER /* uncomment this if each
+#define GROUP_PER_USER /* uncomment this if each
user has his or her own
group and procmail can therefore trust a $HOME/.procmailrc that
is group writable or contained in a group writable home directory
if the group involved is the user's default group. */
-/*#define LMTP /* uncomment this if you
+#define LMTP /* uncomment this if you
want to use procmail
as an LMTP (rfc2033) server, presumably for invocation by an MTA.
The file examples/local_procmail_lmtp.m4 contains info on how to
@@ -79,7 +80,7 @@
/*#define NO_fcntl_LOCK /* uncomment any of these three if you */
/*#define NO_lockf_LOCK /* definitely do not want procmail to make */
-/*#define NO_flock_LOCK /* use of those kernel-locking methods */
+#define NO_flock_LOCK /* use of those kernel-locking methods */
/* If you set LOCKINGTEST to a binary number
than there's no need to set these. These #defines are only useful
if you want to disable particular locking styles but are unsure which
@@ -91,7 +92,7 @@
mail present. procmail automatically suppresses this when it isn't
needed or under heavy load. */
-/*#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if
+#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if
the autoconfigured default
SENDMAIL is not suitable. This program should quack like a sendmail:
it should accept the -oi flag (to tell it to _not_ treat a line

View File

@ -0,0 +1,47 @@
--- procmail-3.22/src/mailfold.c.truncate 2007-03-27 13:24:05.000000000 +0200
+++ procmail-3.22/src/mailfold.c 2007-03-27 13:25:06.000000000 +0200
@@ -30,6 +30,7 @@
int logopened,rawnonl;
off_t lasttell;
+static int trunced;
static long lastdump;
static volatile int mailread; /* if the mail is completely read in already */
static struct dyna_array confield; /* escapes, concatenations */
@@ -81,6 +82,7 @@
long len;
{ int i;long part;
lasttell=i= -1;SETerrno(EBADF);
+ trunced=0;
if(s>=0)
{ if(ft_lock(type)&&(lseek(s,(off_t)0,SEEK_END),fdlock(s)))
nlog("Kernel-lock failed\n");
@@ -120,13 +122,18 @@
}
writefin:
i=type!=ft_PIPE&&fsync(s)&&errno!=EINVAL; /* EINVAL => wasn't a file */
+ if ((i||len)&&lasttell>=0)
+ { int serrno=errno;
+ if(!ftruncate(s,lasttell)) trunced=1;
+ SETerrno(serrno);
+ }
if(ft_lock(type))
{ int serrno=errno; /* save any error information */
if(fdunlock())
nlog("Kernel-unlock failed\n");
SETerrno(serrno);
}
- i=rclose(s)||i;
+ i=rclose(s)||i; /* if this fails, we should truncate, but it's too late */
} /* return an error even if nothing was to be sent */
return i&&!len?-1:len;
}
@@ -237,7 +244,7 @@
#endif
default:writeerr(buf);
}
- if(lasttell>=0&&!truncate(boxname,lasttell)&&(logopened||verbose))
+ if(lasttell>=0&&trunced&&(logopened||verbose))
nlog("Truncated file to former size\n"); /* undo garbage */
ret0: return 0;
}

BIN
procmail-3.22.tar.gz Normal file

Binary file not shown.

67
procmail.spec Normal file
View File

@ -0,0 +1,67 @@
# hardened build if not overridden
%{!?_hardened_build:%global _hardened_build 1}
%if %{?_hardened_build}%{!?_hardened_build:0}
%global hardened_flags -pie -Wl,-z,relro,-z,now
%endif
Name: procmail
Version: 3.22
Release: 49
Summary: A program for filtering, sorting and storing email
License: GPLv2+ or Artistic
URL: https://www.procmail.org
Source0: ftp://ftp.ucsb.edu/pub/mirrors/procmail/procmail-%{version}.tar.gz
Source1: procmailrc
Patch0: procmail-3.22-rhconfig.patch
Patch1: procmail-3.15.1-man.patch
Patch2: procmail_3.22-8.debian.patch
Patch3: procmail-3.22-truncate.patch
Patch4: procmail-3.22-ipv6.patch
Patch5: procmail-3.22-getline.patch
Patch6: procmail-3.22-CVE-2014-3618.patch
Patch7: procmail-3.22-crash-fix.patch
Patch8: procmail-3.22-CVE-2017-16844.patch
BuildRequires: gcc git
%description
%{summary},It can be used both on mail clients and mail servers. It can be
used to filter out spam, checking for viruses, to send automatic replies, etc.
%package_help
%prep
%autosetup -n %{name}-%{version} -p1 -S git
find examples -type f | xargs chmod 644
%build
make RPM_OPT_FLAGS="$(getconf LFS_CFLAGS)" autoconf.h
%make_build
%install
rm -rf ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}%{_bindir} ${RPM_BUILD_ROOT}%{_mandir}/man{1,5}
make \
BASENAME=${RPM_BUILD_ROOT}%{_prefix} MANDIR=${RPM_BUILD_ROOT}%{_mandir} \
install
cp debian/mailstat.1 ${RPM_BUILD_ROOT}%{_mandir}/man1
cp -p %{SOURCE1} telsas_procmailrc
%files
%defattr(-,root,root)
%doc Artistic COPYING debian/QuickStart debian/README.Maildir
%{_bindir}/*
%files help
%defattr(-,root,root)
%doc FAQ FEATURES HISTORY README KNOWN_BUGS examples telsas_procmailrc
%{_mandir}/man1/*.1.gz
%{_mandir}/man5/*.5.gz
%changelog
* Mon Sep 9 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.22-49
- Package init

View File

@ -0,0 +1,950 @@
--- procmail-3.22.orig/examples/advanced
+++ procmail-3.22/examples/advanced
@@ -251,14 +251,14 @@
--------------------------------------------------------
There are many different reasons why more and more sites decide not to
-store mail in /usr/spool/mail or /usr/mail anymore.
+store mail in /var/spool/mail or /var/mail anymore.
Some of the obvious advantages when storing mail in the recipient's home
directory are:
- Mail is automatically subject to the user's quota limitations.
- Often there is more room on the home partition(s) than on that
- one /usr/mail partition.
+ one /var/mail partition.
-The quota limitations also apply to /usr/spool/mail or /usr/mail if procmail
+The quota limitations also apply to /var/spool/mail or /var/mail if procmail
does the delivery. These quota limitations often do not work with the
regular /bin/mail since that usually writes the mailbox with root permissions
(eluding the quota restrictions).
@@ -276,7 +276,7 @@
defined SYSTEM_MBOX to be. Some braindamaged mail programs
do not pick up the MAIL environment variable, these either
have to be patched/recompiled or you have to create symbolic
- links in /usr/mail to every person's new mailbox.
+ links in /var/mail to every person's new mailbox.
---
--- procmail-3.22.orig/man/procmail.man
+++ procmail-3.22/man/procmail.man
@@ -166,7 +166,8 @@
accept an unlimited number of arguments.@ETCRCS_desc@
For some advanced usage of this option you should look in the
.B EXAMPLES
-section below.@LMTPOPTdesc@.SH ARGUMENTS
+section below.@LMTPOPTdesc@
+.SH ARGUMENTS
Any arguments containing an '=' are considered to be environment variable
assignments, they will
.I all
@@ -723,6 +724,15 @@
.fi
.ad
.PP
+Some mailers (notably exim) do not currently accept the above syntax.
+In such case use this instead:
+.PP
+.na
+.nf
+|/usr/bin/procmail
+.fi
+.ad
+.PP
Procmail can also be invoked to postprocess an already filled system
mailbox. This can be useful if you don't want to or can't use a
$HOME/@DOT_FORWARD@ file (in which case the following script could
@@ -754,7 +764,7 @@
.SS "A sample small @PROCMAILRC@:"
.na
.nf
-PATH=/bin:/usr/bin:@BINDIR@
+PATH=/usr/local/bin:/usr/bin:/bin
MAILDIR=$HOME/Mail #you'd better make sure it exists
DEFAULT=$MAILDIR/mbox #completely optional
LOGFILE=$MAILDIR/from #recommended
--- procmail-3.22.orig/man/procmailrc.man
+++ procmail-3.22/man/procmailrc.man
@@ -779,7 +779,7 @@
.PP
Some non-optimal and non-obvious regexps set MATCH to an incorrect
value. The regexp can be made to work by removing one or more unneeded
-'*', '+', or '?' operator on the left-hand side of the \e/ token.
+\&'*', '+', or '?' operator on the left-hand side of the \e/ token.
.SH MISCELLANEOUS
If the regular expression contains `\fB@TO_key@\fP' it will be substituted by
.na
--- procmail-3.22.orig/src/comsat.c
+++ procmail-3.22/src/comsat.c
@@ -92,7 +92,7 @@
}
if(newvalid) /* so far, so good */
{ int s;
- if(!*chp) /* no service */
+ if(!chad||!*chp) /* no service */
chp=BIFF_serviceport; /* new balls please! */
s=strtol(chp,&chad,10);
if(chp!=chad) /* the service is not numeric */
@@ -120,7 +120,7 @@
{ int s;const char*p;
if(!csvalid||!buf) /* is comat on and set to a valid address? */
return;
- if(!*cslgname||strlen(cslgname)+2>linebuf) /* is $LOGNAME bogus? */
+ if(!cslgname||!*cslgname||strlen(cslgname)+2>linebuf)/* is $LOGNAME bogus? */
return;
if(!(p=folder?folder:cslastf)) /* do we have a folder? */
return;
--- procmail-3.22.orig/src/formail.c
+++ procmail-3.22/src/formail.c
@@ -758,9 +758,9 @@
lputssn(buf,buffilled),ctlength-=buffilled,buffilled=lnl=0;
;{ int tbl=buflast,lwr='\n';
while(--ctlength>=0&&tbl!=EOF) /* skip Content-Length: bytes */
- lnl=lwr==tbl&&lwr=='\n',putcs(lwr=tbl),tbl=getchar();
+ lnl=lwr==tbl&&lwr=='\n',lputcs(lwr=tbl),tbl=getchar();
if((buflast=tbl)=='\n'&&lwr!=tbl) /* just before a line break? */
- putcs('\n'),buflast=getchar(); /* wrap up loose end */
+ lputcs('\n'),buflast=getchar(); /* wrap up loose end */
}
if(!quiet&&ctlength>0)
{ charNUM(num,ctlength);
--- procmail-3.22.orig/src/memblk.c
+++ procmail-3.22/src/memblk.c
@@ -51,11 +51,11 @@
{
#ifdef USE_MMAP
if(mb->fd>=0)
- { long len=mb->len+1;
- if(munmap(mb->p,len))
- mmapfailed(len); /* don't want to continue here */
- if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
- mmapfailed(len);
+ { long mlen=mb->len+1;
+ if(munmap(mb->p,mlen))
+ mmapfailed(mlen); /* don't want to continue here */
+ if((mb->p=mmap(0,mlen,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
+ mmapfailed(mlen);
close(mb->fd);
mb->fd=ropen(devnull,O_RDWR,0); /* XXX Perhaps -1 is better? */
}
@@ -77,8 +77,8 @@
strcpy(filename,MMAP_DIR);
if(unique(filename,strchr(filename,'\0'),MMAP_FILE_LEN,MMAP_PERM,0,0)&&
(mb->fd=ropen(filename,O_RDWR,MMAP_PERM),unlink(filename),mb->fd>=0))
- { mb->filelen=len;
- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
+ { mb->filelen=len+1;
+ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
dropf: { close(mb->fd);mb->fd= -1;
if(verbose)nlog("Unable to extend or use tempfile");
}
@@ -98,9 +98,9 @@
}
}
if(mb->fd>=0)
- { if(len>mb->filelen) /* need to extend? */
- { mb->filelen=len;
- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
+ { if(len>=mb->filelen) /* need to extend? */
+ { mb->filelen=len+1;
+ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
{ char*p=malloc(len+1); /* can't extend, switch to malloc */
tmemmove(p,mb->p,mb->len);
munmap(mb->p,mb->len+1);
@@ -124,9 +124,9 @@
}
else
mb->p=realloc(mb->p,len+1);
- mb->len=len+1;
- mb->p[len]='\0';
+ mb->len=len;
ret1:
+ mb->p[len]='\0';
return 1;
}
--- procmail-3.22.orig/src/autoconf
+++ procmail-3.22/src/autoconf
@@ -1470,15 +1470,14 @@
grep 'Mlocal.*procmail' >$DEVNULL ||
echo '#define CF_no_procmail_yet' >>$ACONF
-cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
- grep '^V' >$DEVNULL ||
- echo '#define buggy_SENDMAIL' >>$ACONF
+# cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
+# grep '^V' >$DEVNULL ||
+# echo '#define buggy_SENDMAIL' >>$ACONF
lpath='/bin'
bins="/bin"
-for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \
- /global/bin /usr/bin/X11 /usr/X*/bin
+for newd in /usr/bin $BINDIR /usr/bin/X11 /usr/X*/bin
do
if test -d $newd
then
--- procmail-3.22.orig/src/procmail.c
+++ procmail-3.22/src/procmail.c
@@ -652,8 +652,7 @@
nrcond= -1;
if(tolock) /* clear temporary buffer for lockfile name */
free(tolock);
- for(i=maxindex(flags);i;i--) /* clear the flags */
- flags[i]=0;
+ bbzero(flags,sizeof(flags)); /* clear the flags */
for(tolock=0,locknext=0;;)
{ chp=skpspace(chp);
switch(i= *chp++)
--- procmail-3.22.orig/src/pipes.c
+++ procmail-3.22/src/pipes.c
@@ -145,7 +145,9 @@
if(Stdout)
{ *(eq=strchr(Stdout,'\0')-1)='\0'; /* chop the '=' */
if(!(backblock=getenv(Stdout))) /* no current value? */
- PRDB=PWRB= -1;
+ { PRDB=PWRB= -1;
+ backlen=0;
+ }
else
{ backlen=strlen(backblock);
goto pip;
@@ -155,9 +157,7 @@
pip: rpipe(pbackfd);
rpipe(pinfd); /* main pipes setup */
if(!(pidchild=sfork())) /* create a sending procmail */
- { if(Stdout&&backblock)
- backlen=strlen(backblock);
- else
+ { if(!Stdout)
backblock=source,backlen=len;
childsetup();rclose(PRDI);rclose(PRDB);
rpipe(poutfd);rclose(STDOUT);
@@ -194,7 +194,7 @@
makeblock(&temp,Stdfilled);
tmemmove(temp.p,Stdout,Stdfilled);
readdyn(&temp,&Stdfilled,Stdfilled+backlen+1);
- Stdout=realloc(Stdout,&Stdfilled+1);
+ Stdout=realloc(Stdout,Stdfilled+1);
tmemmove(Stdout,temp.p,Stdfilled+1);
freeblock(&temp);
retStdout(Stdout,pwait&&pipw,!backblock);
--- procmail-3.22.orig/src/memblk.h
+++ procmail-3.22/src/memblk.h
@@ -1,6 +1,6 @@
typedef struct memblk {
char*p; /* where it starts */
- long len; /* currently allocated size */
+ long len; /* current size, not including trailing NUL */
#ifdef USE_MMAP
off_t filelen; /* how long is the file */
int fd; /* file which is mmap()ed */
--- procmail-3.22.orig/src/manconf.c
+++ procmail-3.22/src/manconf.c
@@ -233,7 +233,7 @@
\2-@PRESERVOPT@\1and\1.BR \2-@FROMWHOPT@ .\1");
pc("LMTPOPT",LMTPOPT);
#else
- ps("LMTPOPTdesc","");ps("LMTPusage","");
+ ps("LMTPOPTdesc","");ps("LMTPusage","\1");
#endif
pname("INIT_UMASK",0);printf("0%lo/g\n",(unsigned long)INIT_UMASK);lines--;
pn("DEFlinebuf",DEFlinebuf);
--- procmail-3.22.orig/src/recommend.c
+++ procmail-3.22/src/recommend.c
@@ -47,7 +47,7 @@
printf("chmod %lo %s\n",(unsigned long)(sgid|PERMIS),argv[2]);
else if(chmdir==1)
goto nogchmod;
- if(chmdir)
+ if(0)
printf("chmod %c+w %s/.\n",chmdir==1?'g':'a',mailspooldir);
nogchmod:
return EXIT_SUCCESS;
--- procmail-3.22.orig/src/foldinfo.h
+++ procmail-3.22/src/foldinfo.h
@@ -10,7 +10,7 @@
#define ft_lock(type) ((type)>ft_MAILDIR) /* kernel lock fd */
#define ft_atime(type) ((type)==ft_FILE) /* force atime < mtime */
-#define ft_dotlock(type) ((type)==ft_FILE) /* dotlock $DEFAULT */
+#define ft_dotlock(type) ((type)>ft_MAILDIR) /* dotlock $DEFAULT */
#define ft_delim(type) ((type)==ft_FILE) /* add MMDF delim */
#define ft_checkcloser(type) ((type)>ft_MH)
#define ft_forceblank(type) ((type)!=ft_MAILDIR) /* force blank line at end */
--- procmail-3.22.orig/src/mailfold.c
+++ procmail-3.22/src/mailfold.c
@@ -378,7 +378,8 @@
dfilled=mailread=0;
else if(rhead) /* only read in a new header */
{ memblk new;
- dfilled=mailread=0;makeblock(&new,0);readdyn(&new,&dfilled,0);
+ dfilled=mailread=0;makeblock(&new,0);
+ readdyn(&new,&dfilled,thebody-themail.p);
if(tobesent>dfilled&&isprivate) /* put it in place here */
{ tmemmove(themail.p+dfilled,thebody,filled-=tobesent);
tmemmove(themail.p,new.p,dfilled);
--- procmail-3.22.orig/FAQ
+++ procmail-3.22/FAQ
@@ -57,8 +57,8 @@
Forward to |/usr/bin/procmail
or if that doesn't work, try:
Pipe to /usr/bin/procmail
- as the only line in your mail spool file (e.g. /usr/mail/$LOGNAME), as
- well as doing a "chmod 06660 /usr/mail/$LOGNAME". For more information
+ as the only line in your mail spool file (e.g. /var/mail/$LOGNAME), as
+ well as doing a "chmod 06660 /var/mail/$LOGNAME". For more information
on such systems, do a "man mail".
If all of this doesn't work, procmail can be called on a periodical
@@ -210,14 +210,14 @@
procmail with both the fcntl() and lockf() locking method
disabled (see config.h).
-17. I sometimes get these `Lock failure on "/usr/mail/$LOGNAME.lock"' errors
+17. I sometimes get these `Lock failure on "/var/mail/$LOGNAME.lock"' errors
from procmail. What do I do about it?
The problem here is that as long as procmail has not read a
$HOME/.procmailrc file, it can hang on to the sgid mail permission
- (which it needs in order to create a lockfile in /usr/mail).
+ (which it needs in order to create a lockfile in /var/mail).
I.e. if procmail delivers mail to a user without a $HOME/.procmailrc
- file, procmail *can* (and does) use the /usr/mail/$LOGNAME.lock file.
+ file, procmail *can* (and does) use the /var/mail/$LOGNAME.lock file.
If, however, it finds a $HOME/.procmailrc file, procmail has to let go
of the sgid mail permission because otherwise any ordinary user could
@@ -226,7 +226,7 @@
There are several solutions to this problem:
- Some systems support the sticky bit on directories (when set only
allows the owner of a file in that directory to rename or remove
- it). This enables you to make /usr/spool/mail drwxrwxrwt. It is
+ it). This enables you to make /var/mail drwxrwxrwt. It is
thus effectively world writable, but all the mailboxes in it are
protected because only the mailbox owner can remove or rename it.
- If your system did not exhibit the !@#$%^&* POSIX semantics for
@@ -245,9 +245,9 @@
:0
$DEFAULT
- - You could, instead of using /usr/mail/$LOGNAME, use a file below
+ - You could, instead of using /var/mail/$LOGNAME, use a file below
your home directory as your default mailbox.
- - Or, you could still use /usr/mail/$LOGNAME as the mailbox, but
+ - Or, you could still use /var/mail/$LOGNAME as the mailbox, but
simply instruct procmail to use a different lockfile. This can
be achieved by putting following recipe at the bottom of
your .procmailrc file:
--- procmail-3.22.orig/Makefile
+++ procmail-3.22/Makefile
@@ -79,7 +79,7 @@
# -lresolv # not really needed, is it?
# Informal list of directories where we look for the libraries in SEARCHLIBS
-LIBPATHS=/lib /usr/lib /usr/local/lib
+LIBPATHS=/lib /usr/lib
GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \
-Wpointer-arith -Wconversion -Waggregate-return \
--- procmail-3.22.orig/debian/changelog
+++ procmail-3.22/debian/changelog
@@ -0,0 +1,294 @@
+procmail (3.22-8) unstable; urgency=low
+
+ * Fixed strange formail -l behaviour when there is a Content-Length: header.
+ Thanks a lot to Henning Makholm for the patch (Closes: #217853).
+
+ -- Santiago Vila <sanvila@debian.org> Mon, 3 Nov 2003 20:01:24 +0100
+
+procmail (3.22-7) unstable; urgency=low
+
+ * Fixed bad nroff syntax in procmailrc(5), closes: #147173.
+ * Added missing newline in procmail(1), closes: #180477.
+
+ -- Santiago Vila <sanvila@debian.org> Mon, 10 Mar 2003 00:09:20 +0100
+
+procmail (3.22-6) unstable; urgency=low
+
+ * Standards-Version: 3.5.8.
+
+ -- Santiago Vila <sanvila@debian.org> Thu, 26 Dec 2002 18:27:08 +0100
+
+procmail (3.22-5) stable; urgency=medium
+
+ * Patched pipes.c to fix a memory allocation bug (Closes: #171514).
+
+ -- Santiago Vila <sanvila@debian.org> Thu, 26 Dec 2002 18:09:38 +0100
+
+procmail (3.22-4) unstable; urgency=low
+
+ * Fixed a typo in procmail(1). Patch by the author (Closes: #142983).
+
+ -- Santiago Vila <sanvila@debian.org> Tue, 16 Apr 2002 19:16:20 +0200
+
+procmail (3.22-3) unstable; urgency=medium
+
+ * Fixed off-by-one bug in procmail.c which made the raw flag not to be
+ cleared properly. Thanks to Gregory Stark (Closes: #134341).
+
+ -- Santiago Vila <sanvila@debian.org> Sun, 17 Feb 2002 16:43:02 +0100
+
+procmail (3.22-2) unstable; urgency=medium
+
+ * Modified mailfold.c to fix a segfault problem. Patch by the author.
+ * The system-wide mail directory is /var/mail as per policy.
+
+ -- Santiago Vila <sanvila@debian.org> Thu, 29 Nov 2001 09:39:04 +0100
+
+procmail (3.22-1) unstable; urgency=low
+
+ * New upstream release, which uses the `standard' format for Maildir
+ filenames and retries on name collision. It also contains some
+ bug fixes from the 3.23pre snapshot dated 2001-09-13.
+ * Removed `sendmail' from the Recommends field, since we already
+ have `exim' (the default Debian MTA) and `mail-transport-agent'.
+ * Removed suidmanager support. Conflicts: suidmanager (<< 0.50).
+ * Added support for DEB_BUILD_OPTIONS in the source package.
+ * README.Maildir: Do not use locking on the example recipe,
+ since it's wrong to do so in this case.
+
+ -- Santiago Vila <sanvila@debian.org> Wed, 21 Nov 2001 09:40:20 +0100
+
+procmail (3.15.2-1) stable; urgency=high
+
+ * New upstream release, with improved security and robustness involving
+ signal handlers. Author recommends upgrading to this version on
+ any system where it is installed setuid or setgid.
+ * This release fixes also Bug #108417: procmail -p -m resets PATH.
+
+ -- Santiago Vila <sanvila@debian.org> Thu, 30 Aug 2001 20:05:06 +0200
+
+procmail (3.15.1-4) unstable; urgency=low
+
+ * Don't add an extra newline when delivering to a Maildir folder.
+ Please note that the MTA may still add a newline on their own.
+ Exim users should check the `suffix' variable, for example.
+ Patch by the author. Closes: #78623.
+
+ -- Santiago Vila <sanvila@debian.org> Sat, 14 Apr 2001 17:18:29 +0200
+
+procmail (3.15.1-3) unstable; urgency=low
+
+ * Clarified formail -X behaviour, patch by the author (Closes: #77388).
+ * Updated QuickStart.
+
+ -- Santiago Vila <sanvila@debian.org> Sun, 25 Mar 2001 10:45:56 +0200
+
+procmail (3.15.1-2) unstable; urgency=low
+
+ * Fixed lockfile -l endless loop (Closes: #82006). Patch by the author.
+
+ -- Santiago Vila <sanvila@debian.org> Sun, 28 Jan 2001 19:44:49 +0100
+
+procmail (3.15.1-1) unstable; urgency=low
+
+ * New upstream release. A race to create the mailspool would bounce one of
+ the messages due to an internal error.
+
+ -- Santiago Vila <sanvila@debian.org> Mon, 8 Jan 2001 20:09:34 +0100
+
+procmail (3.15-3) unstable; urgency=low
+
+ * Fixed formatting error in procmailrc(5). Patch by the author.
+ (Closes: #80437).
+
+ -- Santiago Vila <sanvila@debian.org> Sun, 31 Dec 2000 17:20:47 +0100
+
+procmail (3.15-2) unstable; urgency=low
+
+ * formail -l is now documented. Patch by the author (Closes: #72275).
+
+ -- Santiago Vila <sanvila@debian.org> Fri, 1 Dec 2000 19:54:22 +0100
+
+procmail (3.15-1) unstable; urgency=low
+
+ * New upstream release. Maildir support is now built-in.
+ * Really change default PATH to "$HOME/bin:/usr/local/bin:/usr/bin:/bin".
+ * Modified the note in QuickStart about refiltering an old mail folder.
+ * Use SEARCHLIBS="" in debian/rules clean target to speed it up.
+ * Modified ft_dotlock in src/foldinfo.h to be in compliance with
+ locking policy, following a hint by the author.
+ * Removed (versioned) dependency on debianutils, since mailstat
+ does not use temporary files anymore.
+ * Made the .forward example in procmail(1) not to depend on the build
+ environment by modifying src/autoconf so that buggy_SENDMAIL is
+ never defined.
+
+ -- Santiago Vila <sanvila@debian.org> Mon, 28 Aug 2000 12:51:05 +0200
+
+procmail (3.13.1-4) stable; urgency=high
+
+ * Fixed weird formail -rk behavior (patch from the author, backported
+ from procmail-3.15). Thanks to Ben Collins for the report.
+ * s/smail/exim/ in `Recommends:' field.
+
+ -- Santiago Vila <sanvila@debian.org> Tue, 22 Aug 2000 13:04:50 +0200
+
+procmail (3.13.1-3) unstable; urgency=medium
+
+ * Standards-Version: 3.1.1
+ * Updated location of licenses in copyright file.
+ * LOCKINGTEST=100 again, to use fcntl() and dot-locking, as required by
+ latest policy.
+
+ -- Santiago Vila <sanvila@ctv.es> Wed, 1 Dec 1999 12:37:35 +0100
+
+procmail (3.13.1-2) unstable; urgency=low
+
+ * Modified procmail(1) and QuickStart to reflect the fact that exim does
+ not accept the exec keyword in .forward files (Bugs #33460 and #37771).
+ * Modified formail to recognize exim's Envelope-To: header (Bug#40718).
+ Patch by Philip Guenther.
+ * Standards-Version: 3.0.0.
+
+ -- Santiago Vila <sanvila@ctv.es> Mon, 19 Jul 1999 20:09:25 +0200
+
+procmail (3.13.1-1) stable unstable; urgency=high
+
+ * New upstream release, 3.13 missed a couple possible overflows.
+ * Applied `procmail-locking.patch' from Bruce Guenter, since
+ no directory delivery mechanism requires locking (Bug #35210).
+
+ -- Santiago Vila <sanvila@ctv.es> Thu, 8 Apr 1999 13:56:33 +0200
+
+procmail (3.13-1) stable unstable; urgency=high
+
+ * New upstream release. procmail 3.12 breaks smartlist (Bug #35115).
+
+ -- Santiago Vila <sanvila@ctv.es> Fri, 2 Apr 1999 14:24:24 +0200
+
+procmail (3.12-1) frozen unstable; urgency=high
+
+ * New upstream release. Fixes some security bugs.
+ * #define GROUP_PER_USER in config.h to allow writeable rcfiles when
+ the group is the user's default group.
+ * Added KNOWN_BUGS to the doc directory.
+ * suid procmail to avoid non-suidness window when upgrading.
+
+ -- Santiago Vila <sanvila@ctv.es> Thu, 4 Mar 1999 10:28:28 +0100
+
+procmail (3.10.7-7) frozen unstable; urgency=medium
+
+ * New Maildir patches from Bruce Guenter.
+ Should fix Bug #30320: procmail: maildir does not use From_ lines.
+
+ -- Santiago Vila <sanvila@ctv.es> Thu, 31 Dec 1998 13:27:20 +0100
+
+procmail (3.10.7-6) frozen unstable; urgency=medium
+
+ * Patched mailfold.c to avoid the unnecessary one second wait when
+ delivering to MH folders (patch by the author).
+ * src/locking.c: Applied a bugfix patch from the author.
+
+ -- Santiago Vila <sanvila@ctv.es> Wed, 13 May 1998 21:50:19 +0200
+
+procmail (3.10.7-5) frozen unstable; urgency=medium
+
+ * Added a patch for Maildir support. The "new" procmail should be
+ completely backwards compatible with the "previous" one, in the
+ sense that its behaviour should be just the same for already
+ existing .procmailrc files which do not use the new syntax for
+ Maildir folders.
+ * Added a small README.Maildir explaining how to use this feature.
+
+ -- Santiago Vila <sanvila@ctv.es> Mon, 4 May 1998 19:39:55 +0200
+
+procmail (3.10.7-4) frozen unstable; urgency=low
+
+ * Added a small note in QuickStart about refiltering an old mail folder.
+ * mailstat(1): The log file is truncated to zero length (Bug #21022).
+ * PATH=/usr/local/bin:/usr/bin:/bin for the example in procmail(1).
+ * Standards-Version: 2.4.1.
+
+ -- Santiago Vila <sanvila@ctv.es> Fri, 17 Apr 1998 18:00:14 +0200
+
+procmail (3.10.7-3) frozen unstable; urgency=medium
+
+ * Patched src/recommend.c so that the mail spool directory is not
+ touched. This will allow the package to be built using fakeroot.
+ * Patched mailstat so that it uses tempfile.
+
+ -- Santiago Vila <sanvila@ctv.es> Tue, 24 Mar 1998 21:43:08 +0100
+
+procmail (3.10.7-2) unstable; urgency=low
+
+ * Default PATH is now "$HOME/bin:/usr/local/bin:/usr/bin:/bin".
+ * Added "fetchmail" to the Recommends: line as one more option.
+ * Added /usr/doc/procmail/QuickStart (experimental).
+ * Compressed changelog.Debian.
+ * Removed debstd dependency.
+ * Pristine source.
+
+ -- Santiago Vila <sanvila@ctv.es> Sat, 31 Jan 1998 20:30:06 +0100
+
+procmail (3.10.7-1) unstable; urgency=low
+
+ * Upgraded to 3.11pre7. Sources are now GPLed, hurrah!
+ * Added explicit SEARCHLIBS, to avoid unneeded dependency on libdl.
+ * First libc6 release.
+
+ -- Santiago Vila <sanvila@ctv.es> Wed, 18 Jun 1997 20:43:28 +0200
+
+procmail (3.10.4-2) frozen unstable; urgency=low
+
+ * Rebuilt using latest debmake to avoid a problem with suidmanager.
+
+ -- Santiago Vila <sanvila@ctv.es> Sat, 17 May 1997 20:52:59 +0200
+
+procmail (3.10.4-1) frozen unstable; urgency=low
+
+ * Upgraded to 3.11pre4. Side effect: It can be built using libc6.
+ * Removed NFS_ATIME_HACK patch, since it is no longer needed.
+
+ -- Santiago Vila <sanvila@ctv.es> Sat, 12 Apr 1997 19:06:46 +0200
+
+procmail (3.10-8) unstable; urgency=low
+
+ * Rewritten copyright file.
+ * initmake unmodified (source).
+ * Patched to recognize NFS_ATIME_HACK variable in .procmailrc or
+ /etc/procmailrc. Default value is "yes" (i.e. wait a second).
+ * Added a small note about this in /usr/doc/procmail/README.Debian.
+
+ -- Santiago Vila <sanvila@ctv.es> Sun, 23 Mar 1997 12:04:34 +0100
+
+procmail (3.10-7) unstable; urgency=low
+
+ * Put CFLAGS settings &c in ./Makefile, not in debian/rules.
+ * Removed fix-substvars script, since it's no longer needed with
+ new libc5-5.4.20.
+ * Man page for mailstat changed slightly.
+ * Some minor debian/rules changes.
+ * Added MD5 sums.
+
+ -- Santiago Vila <sanvila@ctv.es> Fri, 21 Feb 1997 20:53:30 +0100
+
+procmail (3.10-6) unstable; urgency=low
+
+ * Use debmake.
+ * suidmanager support.
+ * Removed `mailstat' from examples, it's already in /usr/bin.
+ * Removed also `dirname' (which was "for the deprived").
+ * Added `fix-substvars' script to depend on libc5 >= 5.4.0.
+
+ -- Santiago Vila <sanvila@ctv.es> Mon, 23 Dec 1996 16:34:02 +0100
+
+procmail (3.10-5) unstable; urgency=low
+
+ * Updated to Standards-Version 2.1.2.2.
+ * Changed "Depends: MTA" to "Recommends: MTA".
+ * Added extended package description in control file.
+ * Added the symlink changelog.gz -> HISTORY.gz.
+ * Added an "experimental" man page for mailstat.
+ * New maintainer.
+
+ -- Santiago Vila <sanvila@ctv.es> Sat, 21 Dec 1996 23:32:11 +0100
--- procmail-3.22.orig/debian/control
+++ procmail-3.22/debian/control
@@ -0,0 +1,18 @@
+Source: procmail
+Section: mail
+Priority: standard
+Maintainer: Santiago Vila <sanvila@debian.org>
+Standards-Version: 3.6.1
+
+Package: procmail
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: suidmanager (<< 0.50)
+Recommends: exim | mail-transport-agent | fetchmail
+Description: Versatile e-mail processor
+ Can be used to create mail-servers, mailing lists, sort your incoming
+ mail into separate folders/files (real convenient when subscribing to one
+ or more mailing lists or for prioritising your mail), preprocess your
+ mail, start any programs upon mail arrival (e.g. to generate different
+ chimes on your workstation for different types of mail) or selectively
+ forward certain incoming mail automatically to someone.
--- procmail-3.22.orig/debian/copyright
+++ procmail-3.22/debian/copyright
@@ -0,0 +1,41 @@
+This is the Debian prepackaged version of the "procmail" mail-processing
+program written by Stephen van den Berg.
+
+This package is currently maintained by Santiago Vila <sanvila@debian.org>.
+The source for this release was downloaded from:
+
+ftp://ftp.procmail.org/pub/procmail/procmail-3.22.tar.gz
+
+This package was first put together by Bruce Perens <bruce@hams.com>,
+who added Debian package maintenance system files, and edited config.h
+to configure for Debian.
+
+Copyright:
+
+Procmail & formail mail processing package.
+Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands.
+Copyright (c) 1999-2001, Philip Guenther, The United States of America
+
+This package is open source software; you can redistribute it and/or
+modify it under the terms of either:
+- the GNU General Public License as published by the Free Software Foundation
+ and can be found in the included file called "COPYING"; either version 2,
+ or (at your option) any later version, or
+- the "Artistic License" which can be found in the included file called
+ "Artistic".
+
+This package is distributed in the hope that it will be useful, but without
+any warranty; without even the implied warranty of merchantability or fitness
+for a particular purpose. See either the GNU General Public License or the
+Artistic License for more details.
+
+For those of you that choose to use the GNU General Public License,
+my interpretation of the GNU General Public License is that no procmailrc
+script falls under the terms of the GPL unless you explicitly put
+said script under the terms of the GPL yourself.
+
+
+On Debian systems, the complete text of the GNU General Public License
+can be found in `/usr/share/common-licenses/GPL', and the complete
+text of the "Artistic License" can be found in
+`/usr/share/common-licenses/Artistic'.
--- procmail-3.22.orig/debian/mailstat.1
+++ procmail-3.22/debian/mailstat.1
@@ -0,0 +1,40 @@
+.TH MAILSTAT 1
+.SH NAME
+mailstat \- shows mail-arrival statistics
+.SH SYNOPSIS
+.B mailstat
+[\-klmots] [logfile]
+.SH DESCRIPTION
+.B mailstat
+parses a procmail-generated $LOGFILE and displays
+a summary about the messages delivered to all folders
+(total size, average size, nr of messages).
+The $LOGFILE is truncated to zero length, unless the
+.B -k
+option is used.
+Exit code 0 if mail arrived, 1 if no mail arrived.
+.SH OPTIONS
+.TP
+.I \-k
+keep logfile intact
+.TP
+.I \-l
+long display format
+.TP
+.I \-m
+merge any errors into one line
+.TP
+.I \-o
+use the old logfile
+.TP
+.I \-t
+terse display format
+.TP
+.I \-s
+silent in case of no mail
+.SH NOTES
+Customise to your heart's content, this program is only provided as a
+guideline.
+.SH AUTHOR
+This manual page was written by Santiago Vila <sanvila@debian.org>
+for the Debian GNU/Linux distribution (but may be used by others).
--- procmail-3.22.orig/debian/QuickStart
+++ procmail-3.22/debian/QuickStart
@@ -0,0 +1,97 @@
+procmail QuickStart
+===================
+
+* procmail is not an `interactive' program. It has to run automatically
+when the mail arrives. Therefore the first thing to do is to tell our MTA
+that we want procmail to "eat" all our mail messages. The way of doing
+this depends on the MTA we are using. For example, if we are using
+sendmail, it will suffice to have a .forward file like this in our home
+directory:
+
+"|exec /usr/bin/procmail"
+
+(don't forget the quotes, they are needed in this case).
+
+If you are using exim, use this instead as your .forward file:
+
+|/usr/bin/procmail
+
+The step of creating a .forward file is not needed if the MTA already
+performs the delivery using procmail. For example, Debian sendmail will
+automatically use procmail for mail delivering if the sendmail.cf is
+generated from a sendmail.mc file containing this line:
+
+FEATURE(local_procmail)dnl
+
+
+* If we have a stand-alone system with no permanent net connection (like
+PPP), and we are using fetchmail to get mail from a server, we don't
+really need a MTA. Just adding --mda "formail -s procmail" to the
+fetchmail command line (or using the `mda' keyword) will tell it to
+deliver through procmail.
+
+
+* Next, we have to write a ~/.procmailrc file in our home directory. This
+file is a set of filtering rules, based on regular expressions. The
+complete syntax is explained in procmailrc(5). Let's see a real example
+just to get started. Let's suppose you are subscribed to the following two
+mailing lists:
+
+linux-kernel@vger.kernel.org
+debian-user@lists.debian.org
+
+The first list is managed by Majordomo. Messages coming from a Majordomo
+list often include a header field "Sender: " which allow easy filtering.
+
+The second list is managed my SmartList. Messages coming from a SmartList
+list may include several headers that can be used to filter it. One of
+them (in fact, the only that it is not X-whatever) is "Resent-Sender: ".
+
+So the following .procmailrc will first filter the mailing lists, and
+any remaining message will go to the default folder:
+
+*--------------------------------->8------------------------------------
+PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
+MAILDIR=$HOME/mail # you'd better make sure it exists
+DEFAULT=$MAILDIR/mbox # completely optional
+LOGFILE=$MAILDIR/procmail.log # recommended
+
+:0:
+* ^Sender:.*linux-kernel-owner@vger.kernel.org
+linux-kernel
+
+:0:
+* ^Resent-Sender:.*debian-user-request@lists.debian.org
+debian-user
+*--------------------------------->8------------------------------------
+
+From this example additional rules for mailing lists may be created
+easily.
+
+
+* Once you have received lots of messages you will want to know where
+did they go. That's what the LOGFILE is for. There is a tool named
+mailstat which parses this file and shows a summary:
+
+mailstat procmail.log
+
+The mailstat command that this package provides does really come from the
+examples directory and it is installed by default. You may have your own
+modified copy in $HOME/bin, if you like.
+
+
+If you have to refilter an old mail folder according to your current
+~/.procmailrc file, you may do the following:
+
+cat mbox | formail -s procmail
+
+But of course if your mbox file is the target of a procmail recipe you should
+do this instead:
+
+mv mbox whatever
+cat whatever | formail -s procmail
+
+See formail(1) for details.
+
+
+Santiago Vila <sanvila@debian.org>
--- procmail-3.22.orig/debian/README.Maildir
+++ procmail-3.22/debian/README.Maildir
@@ -0,0 +1,12 @@
+This version of procmail supports Maildir folders.
+
+To make procmail to deliver into a Maildir folder, just append
+a slash (/) to the name of the maildir folder in your ~/.procmailrc file.
+For example, the following rule:
+
+:0
+* ^Resent-Sender.*debian-user-request@lists.debian.org
+debian-user/
+
+will deliver all mail from the debian-user mailing list to the Maildir
+folder "debian-user".
--- procmail-3.22.orig/debian/rules
+++ procmail-3.22/debian/rules
@@ -0,0 +1,76 @@
+#!/usr/bin/make -f
+
+package = procmail
+docdir = debian/tmp/usr/share/doc/$(package)
+
+CC = gcc
+CFLAGS0 = -g
+LDFLAGS0 =
+SEARCHLIBS = -lm
+STRIP = true
+
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS0 += -O2
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ STRIP = strip --remove-section=.comment --remove-section=.note
+endif
+
+build:
+ $(checkdir)
+ $(MAKE) CC="$(CC)" CFLAGS0="$(CFLAGS0)" LDFLAGS0="$(LDFLAGS0)" \
+ SEARCHLIBS="$(SEARCHLIBS)"
+ touch build
+
+clean:
+ $(checkdir)
+ rm -f build
+ -$(MAKE) realclean SEARCHLIBS=""
+ rm -f `find . -name "*~"`
+ rm -rf debian/tmp debian/files* core debian/substvars
+
+binary-indep: checkroot build
+ $(checkdir)
+
+binary-arch: checkroot build
+ $(checkdir)
+ rm -rf debian/tmp
+ install -d debian/tmp/DEBIAN $(docdir)/examples
+ cd debian/tmp && install -d usr/bin
+ $(MAKE) BASENAME=`pwd`/debian/tmp/usr install.man install-suid
+ $(STRIP) debian/tmp/usr/bin/procmail
+ $(STRIP) debian/tmp/usr/bin/lockfile
+ $(STRIP) debian/tmp/usr/bin/formail
+ cp -p debian/copyright $(docdir)
+ cp -p debian/changelog $(docdir)/changelog.Debian
+ install -m 644 debian/mailstat.1 debian/tmp/usr/man/man1
+ cp -p FEATURES HISTORY README FAQ KNOWN_BUGS \
+ debian/QuickStart debian/README.Maildir $(docdir)
+ cp -p examples/* $(docdir)/examples
+ cd $(docdir)/examples && rm -f dirname mailstat procmail-rpm.spec
+ cd $(docdir) && gzip -9 HISTORY changelog.Debian
+ ln -s HISTORY.gz $(docdir)/changelog.gz
+ mv debian/tmp/usr/man debian/tmp/usr/share
+ gzip -r9 debian/tmp/usr/share/man
+ dpkg-shlibdeps debian/tmp/usr/bin/*
+ dpkg-gencontrol -isp
+ cd debian/tmp && \
+ md5sum `find * -type f ! -regex "DEBIAN/.*"` > DEBIAN/md5sums
+ chown -R root:root debian/tmp
+ chmod -R go=rX debian/tmp
+ chgrp mail debian/tmp/usr/bin/procmail debian/tmp/usr/bin/lockfile
+ chmod 6755 debian/tmp/usr/bin/procmail
+ chmod 2755 debian/tmp/usr/bin/lockfile
+ dpkg --build debian/tmp ..
+
+define checkdir
+ test -f src/$(package).c -a -f debian/rules
+endef
+
+binary: binary-indep binary-arch
+
+checkroot:
+ $(checkdir)
+ test root = "`whoami`"
+
+.PHONY: binary binary-arch binary-indep clean checkroot

424
procmailrc Normal file
View File

@ -0,0 +1,424 @@
################################################################
# Here we go.... #
# my very own mail-mangler #
################################################################
################################################################
# Updated to have working URLs and arbitrarily version-bumped #
# to 1.2 on the grounds it matched the mutt version. Very #
# little beyond URLs and list addresses has changed. #
# 2002-03-21. #
################################################################
################################################################
# In the spirit of the net, 90% of this came from other people #
# and the remaining 10% might be from me. Most of the 90% #
# came from these sources: #
# #
# "Getting started with procmail" at #
# http://www.spambouncer.org/proctut.shtml #
# http://www.spambouncer.org/procmail.rc #
# ...by Catherine A. Hampton. #
# #
# man procmail (overview) #
# man procmailrc (writing the procmailrc) #
# man procmailex (example recipes) #
# man formail (especially for splitting digests) #
# #
# and .procmailrcs from several friends. Thanks, folks, #
# especially to the one who had more patterns which sent #
# things to /dev/null than to mailboxes, for showing me #
# what true impatience with email was like! #
################################################################
################################################################
# Procmailrc files have two parts. First you tell it where #
# everything lives. Then you tell it the recipes. #
################################################################
##########################################
# Varibiggles and where everything lives #
##########################################
################################################################
# All of these will work quite happily without changing for #
# Red Hat Linux 6.0 through to 7.2.They won't necessarily work #
# for other flavours without changing paths. See the "Getting #
# started with procmail" doc I mentioned above for the likely #
# settings for them in other environments. It has a list :) #
################################################################
################################################################
# Since I installed procmail, I have changed from using #
# sendmail to using exim. Because I can understand the config #
# file. If you use exim, you may need to tweak the config file #
# as I did. If you do, then check you are reading the docs for #
# the right version of exim! This worked for me: #
# #
# http://www.exim.org/exim-html-3.20/doc/html/spec_18.html #
# and look for procmail. It's in the example for the 'pipe #
# transport'. Just paste it into /etc/exim.conf. #
################################################################
SHELL=/bin/bash
# Have to have this one (or whatever your shell is)
# Best bet is bash or sh.
LINEBUF=4096
# Magic. Apparently it burps on long lines if you don't
# put this in.
PATH=/bin:/usr/bin:/usr/local/bin
# Where procmail looks for stuff. Works for RH 6.0, 6.1
# and most other Linux settings I've seen.
VERBOSE=off
# Change to 'on' to get _long_ procmail log.
# NB: if this is short, I don't want to see long: I get
# a one-line summary for every email procmail looks at!
MAILDIR=$HOME/Mail
# Not where your mail arrives on the machine. Where
# procmail will assume all the folders you mention in
# your recipes goes. Make sure your email-reading
# program also knows about it. (I understand $HOME/Mail
# is pretty standard, however.)
LOGFILE=$HOME/Mail/procmaillog
# I don't think this needs to be in your Mail folder,
# but my mail-reader (mutt) is great at different
# sorting, so I put the log into the mail directory :)
# Note learned through experience: if you leave this file
# too long, it will end up with tens of thousands of
# messages. Mutt is not always -that- good at sorting
# that lot quickly :)
FORMAIL=/usr/bin/formail
# 'formail'. Part of the procmail package. Correct
# the path if this isn't where it lives for you.
# ('which formail' may well tell you.)
SENDMAIL=/usr/sbin/sendmail
# As with formail, tells procmail where to look for
# sendmail. If sendmail isn't there, mail transfer
# might be handled by a different program. Ask
# your sysadmin :) If you are your own sysadmin,
# then I hope you know.
# Subsequent to writing that, I have learned that this
# file is provided (with this name) by other MTAs too.
# I now use Exim (see note above) and this file is still
# there, courtesy of exim.
############################
# The recipes - I hope... #
############################
################################################################
# Gods know how this works. But it's very useful. If you get #
# email that is sent simultaneously to you and to two other #
# lists, this will nuke two of those so that you only see it #
# once. Came from 'man procmail'. #
################################################################
# Nuke duplicate messages
:0 Wh: msgid.lock
| $FORMAIL -D 8192 msgid.cache
################################################################
# Next two are from the 'Getting started with procmail' doc. #
# I'm not too sure about how they work, but they look handy... #
################################################################
# Create a backup cache of 200 most recent messages in case of
# mistakes (yes, you can change the 200 to 20 or 400 or whatever
# you want)
:0 c
backup
:0 ic
| cd backup && rm -f dummy `ls -t msg.* | sed -e 1,200d`
# Regenerate "From" lines to make sure they are valid
:0 fhw
| formail -I "From " -a "From "
################################################################
# For testing shit - I picked a subject line that no-one would #
# send me and then tried different recipes on the results, and #
# then sent myself a whole pile of email about grobblefruit, #
# with different recipes here, to see what happened when I #
# tried different headers and so on. #
################################################################
:0:
* ^Subject: Test grobblefruit
IN.testing
################################################################
# Mailing lists #
# #
# I think this is the thing that most people who finally get #
# procmail want to know about: how to get different messages #
# from different mailing lists into different folders. This is #
# where all that MAILDIR stuff comes from. All the folders I #
# name in here are all created off whatever directory I filled #
# in as the MAILDIR at the start. And no, they don't suddenly #
# appear the instant you edit this file. They only appear when #
# procmail finds mail that should go in them. #
# #
# You can have more than one recipe sending email into the #
# same folder, btw, yes. #
# #
# General useful (?) comments: #
# The "^Resent-From: " pattern works wonderfully on #
# lists which generate it. #
# Making the folder not -quite- the list name means you #
# can save mail from it to a folder named for the list. Can #
# be handy. #
# Some lists are indeed a pig to catch everything with. #
# "TO" is different from "To" and you mustn't put a #
# a space after "TO". It catches "To: " and "Cc: ", I #
# think. Very handy. But it doesn't catch everything. If #
# it's a mailman list, don't use it and see below. #
# Mailman-run lists all seem to have a Sender: header #
# which is very useful to sort with. Just add -admin onto #
# the name of the mailing list. #
# Even more useful for mailman-run lists turns out to be #
# "X-BeenThere: listname@site.com" #
################################################################
################################################################
# I hardly use TO now, but here's an example in case. #
################################################################
:0:
* ^TOlynx-dev@sig.net
IN.lynx-dev
###########
# bugtraq #
###########
:0:
* ^Sender:.*Bugtraq List
IN.bugtraq
#########################
# gnome CVS commit list #
#########################
:0:
* X-BeenThere: cvs-commits-list@gnome.org
IN.cvs-commits
##############
# gnome-list #
##############
:0:
* ^X-BeenThere: gnome-list@gnome.org
IN.gnome-list
##################
# gnome-doc-list #
##################
:0:
* ^X-BeenThere: gnome-doc-list@gnome.org
IN.gnome-doc-list
###############################################################
# linuxchix lists: there are several mailing lists here: see #
# the end of this file for the different ways to deal with #
# heavy traffic lists with digest options. #
###############################################################
:0:
* ^X-BeenThere: grrltalk@linuxchix.org
IN.linuxchix
:0:
* ^X-BeenThere: issues@linuxchix.org
IN.linuxchix
:0:
* ^X-BeenThere: techtalk@linuxchix.org
IN.linuxchix
#################################################
# This is what I consider advanced stuff: this #
# one doesn't put the digest straight into a #
# folder. Instead it runs 'formail +1 -ds', #
# which splits the digest into its original #
# messages, and then puts the results of that #
# into the folder. #
# #
# The address is way way out of date, but I am #
# not sure of the current digest address, so I #
# have left it. #
# #
# It is commented out because I actually read #
# the main list, not the digest, these days. #
#################################################
# :0:
# * ^TOgrrltalk-digest@hub.org
# | formail +1 -ds >> IN.linuxchix
##############
# mutt-users #
##############
:0:
* ^TOmutt-users@mutt.org
IN.mutt-users
:0:
* ^Sender: owner-mutt-users@mutt.org
IN.mutt-users
#################################################
# Procmail list #
# ...be aware that everyone on this list #
# seems to have monster spam filters and thus #
# to be completely unconcerned at the huge #
# amount of spam it gets: you will either need #
# spam filters or tolerance to find the good #
# stuff. (I am not subscribed now, but that was #
# the case when I was.) #
#################################################
:0:
* ^TOprocmail@Informatik.RWTH-Aachen.DE
IN.procmaillist
#######################################################
# Red Hat announce -- very handy for security updates #
#######################################################
:0:
* ^X-BeenThere: redhat-announce-list@redhat.com
IN.rh-announce
:0:
* ^X-BeenThere: redhat-watch-list@redhat.com
IN.rh-announce
#########################
# windowmaker: wm-users #
#########################
:0:
*^From wm-user-request@windowmaker.org
IN.wm-user
################################################################
# Splitting digests #
# #
# You don't need to do this, but this seems to be another very #
# popular thing to do with procmail. If you're on mailing #
# lists using the digest option, sometimes you may want to #
# split the digests back up into the original emails. There is #
# (of course) more than one way to do this: #
# #
# (1) don't bother: just read through all the digest in one #
# big lump. Simple, easy, and great until you find someone #
# sent a 500-line postscript file or a giant jpg which got #
# included into the digest :( #
# #
# (2) use a mail-reader such as mutt, and if you suddenly want #
# to split a digest up, then whilst reading the message, hit #
# | formail +1 -ds #
# which will put the results into your main inbox. If you want #
# it in a particular folder (like the one you're reading), do #
# | formail +1 -ds >> foldername #
# #
# (3) make procmail (or formail, actually), split it up ready #
# for you to read. #
# #
# So if you want to have each digest automatically split up #
# by procmail as it arrives, and to read each message #
# individually, then here's some examples of what you can put. #
# The first two lines are exactly the same. The third one has #
# a pipe (vertical line) symbol at the start, and then the #
# command you're piping it through. #
# #
# Yes, I picked a notoriously heavy-traffic one for the first #
# example... And it -should- work, but it's not a list I read, #
# sorry! #
# #
# Instead of this: #
# :0: #
# * ^Sender: owner-linux-kernel@vger.rutgers.edu #
# IN.linux-kernel #
# ...you want this: #
# :0: #
# * ^Sender: owner-linux-kernel@vger.rutgers.edu #
# | formail +1 -ds >> IN.linux-kernel #
# #
# Da-dah! That's all. #
# #
# And for those where the list name changes and that's what #
# you're matching patterns on, instead of this: #
# :0: #
# * ^TOgrrltalk@hub.org #
# IN.linuxchix #
# ...you want this: #
# :0: #
* ^TOgrrltalk-digest@hub.org #
# | formail +1 -ds >> IN.linuxchix #
# #
# Magic :) #
################################################################
################################################################
# That's it. Any email that doesn't match any of the recipes #
# above goes into my usual place for email, which until I read #
# it is /var/spool/mail/hobbit. Procmail appears to know about #
# that without being told. #
# #
# Quick summary for adding your own or changing these: the #
# general format for putting an email into a folder and not #
# doing anything fancy to it first is: #
# #
# :0: #
# * <what you're looking for> #
# <where you're putting it> #
# #
# The ^ sign in my recipes is the sign procmail understands as #
# "start of the line", so "^From" matches the word "From" when #
# it's the start of a header. #
# #
# The "IN." at the start of folder names is not necessary: #
# that's just my naming system. Stolen, like everything else, #
# from a friend's example. It has the benefit that with my #
# mail-reader (mutt), which sorts alphabetically, all of them #
# show up first (capitals are earlier in the alphabet if #
# you're a computer...) and I can save them easily: from #
# IN.blah to blah. If you want to call the folders blah-spool, #
# or just blah, then cool. That'll work, too. #
# #
# It is possible that now you have everything in different #
# folders, you want to read with a cool program which does #
# cool things like display by thread or which understands you #
# when you tell it "These are mailing lists" and does handy #
# things as a result. If you do, and you discover Mutt, you #
# might want to look at my muttrc which is probably next to #
# this file. #
# #
# Have fun! #
# -- Telsa #
################################################################