Toshaan Bharvani
9 months ago
commit
d406085f03
12 changed files with 2330 additions and 0 deletions
@ -0,0 +1,19 @@
@@ -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 |
@ -0,0 +1,18 @@
@@ -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; |
||||
} |
@ -0,0 +1,13 @@
@@ -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; |
||||
} |
@ -0,0 +1,86 @@
@@ -0,0 +1,86 @@
|
||||
diff --git a/src/cstdio.c b/src/cstdio.c |
||||
index 0a0bd5b..306a973 100644 |
||||
--- a/src/cstdio.c |
||||
+++ b/src/cstdio.c |
||||
@@ -15,6 +15,7 @@ static /*const*/char rcsid[]= |
||||
#include "variables.h" |
||||
#include "shell.h" |
||||
#include "cstdio.h" |
||||
+#include "common.h" |
||||
|
||||
static uchar rcbuf[STDBUF],*rcbufp,*rcbufend; /* buffer for custom stdio */ |
||||
static off_t blasttell; |
||||
diff --git a/src/foldinfo.c b/src/foldinfo.c |
||||
index 10fe406..d05ad84 100644 |
||||
--- a/src/foldinfo.c |
||||
+++ b/src/foldinfo.c |
||||
@@ -18,6 +18,7 @@ static /*const*/char rcsid[]= |
||||
#include "goodies.h" |
||||
#include "locking.h" |
||||
#include "foldinfo.h" |
||||
+#include "acommon.h" |
||||
|
||||
static const char |
||||
maildirtmp[]=MAILDIRtmp,maildircur[]=MAILDIRcur; |
||||
@@ -186,8 +187,8 @@ int screenmailbox(chp,egid,Deliverymode) |
||||
if(!stat(buf,&stbuf)) |
||||
{ unsigned wwsdir; |
||||
accspooldir=(wwsdir= /* world writable spool dir? */ |
||||
- ((S_IWGRP|S_IXGRP|S_IWOTH|S_IXOTH)&stbuf.st_mode)== |
||||
- (S_IWGRP|S_IXGRP|S_IWOTH|S_IXOTH) |
||||
+ (((S_IWGRP|S_IXGRP|S_IWOTH|S_IXOTH)&stbuf.st_mode)== |
||||
+ (S_IWGRP|S_IXGRP|S_IWOTH|S_IXOTH)) |
||||
<<1| /* note it in bit 1 */ |
||||
uid==stbuf.st_uid); /* we own the spool dir, note it in bit 0 */ |
||||
if((CAN_toggle_sgid||accspooldir)&&privileged) |
||||
diff --git a/src/lmtp.c b/src/lmtp.c |
||||
index 2c5b676..2bfacc4 100644 |
||||
--- a/src/lmtp.c |
||||
+++ b/src/lmtp.c |
||||
@@ -51,7 +51,7 @@ static int lreaddyn P((void)); |
||||
|
||||
int childserverpid; |
||||
|
||||
-static ctopfd; |
||||
+static int ctopfd; |
||||
static char*overread; |
||||
static size_t overlen; |
||||
|
||||
diff --git a/src/locking.c b/src/locking.c |
||||
index 572719b..5740c2d 100644 |
||||
--- a/src/locking.c |
||||
+++ b/src/locking.c |
||||
@@ -95,7 +95,10 @@ faillock: nlog("Lock failure on");logqnl(name); |
||||
permanent=nfsTRY; |
||||
ds: ssleep((unsigned)locksleep); |
||||
ce: if(nextexit) |
||||
-term: { free(name); /* drop the preallocated buffer */ |
||||
+term: { |
||||
+ if(nextexit) |
||||
+ elog(whilstwfor),elog("lockfile"),logqnl(name); |
||||
+ free(name); /* drop the preallocated buffer */ |
||||
break; |
||||
} |
||||
} |
||||
@@ -103,7 +106,7 @@ term: { free(name); /* drop the preallocated buffer */ |
||||
setegid(gid); /* we put back our regular permissions */ |
||||
lcking&=~lck_DELAYSIG; |
||||
if(nextexit) |
||||
- elog(whilstwfor),elog("lockfile"),logqnl(name),Terminate(); |
||||
+ Terminate(); |
||||
return !!*lockp; |
||||
} |
||||
|
||||
diff --git a/src/mailfold.c b/src/mailfold.c |
||||
index 6c8bcf4..23b8ac2 100644 |
||||
--- a/src/mailfold.c |
||||
+++ b/src/mailfold.c |
||||
@@ -378,7 +378,7 @@ void concon(ch)const int ch; /* flip between concatenated and split fields */ |
||||
} |
||||
} |
||||
|
||||
-void readmail(rhead,tobesent)const long tobesent; |
||||
+void readmail(rhead,tobesent)int rhead;const long tobesent; |
||||
{ char*chp,*pastend;static size_t contlengthoffset; |
||||
;{ long dfilled; |
||||
if(rhead==2) /* already read, just examine what we have */ |
@ -0,0 +1,58 @@
@@ -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 */ |
@ -0,0 +1,56 @@
@@ -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)); |
@ -0,0 +1,228 @@
@@ -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 |
@ -0,0 +1,97 @@
@@ -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 |
@ -0,0 +1,47 @@
@@ -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; |
||||
} |
@ -0,0 +1,950 @@
@@ -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 |
@ -0,0 +1,424 @@
@@ -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 # |
||||
################################################################ |
@ -0,0 +1,334 @@
@@ -0,0 +1,334 @@
|
||||
# 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 |
||||
|
||||
Summary: Mail processing program |
||||
Name: procmail |
||||
Version: 3.22 |
||||
Release: 56%{?dist} |
||||
License: GPLv2+ or Artistic |
||||
# Source: ftp://ftp.procmail.org/pub/procmail/procmail-%{version}.tar.gz |
||||
# The original source doesn't seem to be available anymore, using mirror |
||||
Source: ftp://ftp.ucsb.edu/pub/mirrors/procmail/procmail-%{version}.tar.gz |
||||
# Source2: http://www.linux.org.uk/~telsa/BitsAndPieces/procmailrc |
||||
# The Telsa config file doesn't seem to be available anymore, using local copy |
||||
Source2: procmailrc |
||||
URL: http://www.procmail.org |
||||
Patch0: procmail-3.22-rhconfig.patch |
||||
Patch1: procmail-3.15.1-man.patch |
||||
Patch2: procmail_3.22-8.debian.patch |
||||
Patch4: procmail-3.22-truncate.patch |
||||
Patch5: procmail-3.22-ipv6.patch |
||||
Patch6: procmail-3.22-getline.patch |
||||
Patch7: procmail-3.22-CVE-2014-3618.patch |
||||
Patch8: procmail-3.22-crash-fix.patch |
||||
Patch9: procmail-3.22-CVE-2017-16844.patch |
||||
Patch10: procmail-3.22-coverity-scan-fixes.patch |
||||
BuildRequires: make |
||||
BuildRequires: gcc |
||||
|
||||
%description |
||||
Procmail 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. |
||||
|
||||
%prep |
||||
%setup -q |
||||
%patch0 -p1 -b .rhconfig |
||||
%patch1 -p1 |
||||
%patch2 -p1 |
||||
%patch4 -p1 -b .truncate |
||||
%patch5 -p1 -b .ipv6 |
||||
%patch6 -p1 -b .getline |
||||
%patch7 -p1 -b .CVE-2014-3618 |
||||
%patch8 -p1 -b .crash-fix |
||||
%patch9 -p1 -b .CVE-2017-16844 |
||||
%patch10 -p1 -b .coverity-scan-fixes |
||||
|
||||
find examples -type f | xargs chmod 644 |
||||
|
||||
%build |
||||
make RPM_OPT_FLAGS="$(getconf LFS_CFLAGS)" autoconf.h |
||||
make RPM_OPT_FLAGS="$RPM_OPT_FLAGS %{?hardened_flags} -Wno-comments $(getconf LFS_CFLAGS)" |
||||
|
||||
%install |
||||
rm -rf ${RPM_BUILD_ROOT} |
||||
mkdir -p ${RPM_BUILD_ROOT}%{_bindir} |
||||
mkdir -p ${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 %{SOURCE2} telsas_procmailrc |
||||
|
||||
|
||||
%files |
||||
%doc Artistic COPYING FAQ FEATURES HISTORY README KNOWN_BUGS examples telsas_procmailrc debian/QuickStart debian/README.Maildir |
||||
|
||||
%{_bindir}/formail |
||||
%attr(2755,root,mail) %{_bindir}/lockfile |
||||
%{_bindir}/mailstat |
||||
%attr(0755,root,mail) %{_bindir}/procmail |
||||
|
||||
%{_mandir}/man[15]/* |
||||
|
||||
%changelog |
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 3.22-56 |
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags |
||||
Related: rhbz#1991688 |
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.22-55 |
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 |
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-54 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild |
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-53 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-52 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild |
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-51 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild |
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-50 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild |
||||
|
||||
* Thu Dec 6 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-49 |
||||
- Fixed issues found by Coverity Scan |
||||
|
||||
* Fri Jul 20 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-48 |
||||
- Fixed FTBFS by adding gcc requirement |
||||
Resolves: rhbz#1606850 |
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-47 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild |
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-46 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild |
||||
|
||||
* Tue Nov 21 2017 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-45 |
||||
- Renamed loadbuf-fix patch to CVE-2017-16844, because it got CVE number |
||||
|
||||
* Tue Oct 10 2017 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-44 |
||||
- Fixed possible buffer overflow in loadbuf function |
||||
Resolves: rhbz#1500071 |
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-43 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild |
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-42 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild |
||||
|
||||
* Wed Mar 22 2017 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-41 |
||||
- Fixed some more conditional jumps that depended on uninitialized values |
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-40 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild |
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-39 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild |
||||
|
||||
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-38 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild |
||||
|
||||
* Thu Mar 19 2015 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-37 |
||||
- Fixed more buffer overflows and memory corruptions (by crash-fix patch) |
||||
|
||||
* Thu Sep 4 2014 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-36 |
||||
- Fixed buffer overflow in formail |
||||
Resolves: CVE-2014-3618 |
||||
|
||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-35 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild |
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-34 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild |
||||
|
||||
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-33 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild |
||||
|
||||
* Mon Feb 4 2013 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-32 |
||||
- Updated sources URLs |
||||
|
||||
* Tue Sep 4 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-31 |
||||
- Hardened build with PIE and full RELRO |
||||
Resolves: rhbz#853186 |
||||
|
||||
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-30 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||
|
||||
* Mon Jan 16 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-29 |
||||
- Rebuilt without NO_NFS_ATIME_HACK |
||||
Resolves: rhbz#666383 |
||||
|
||||
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-28 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||
|
||||
* Fri Nov 25 2011 Jaroslav Škarvada <jskarvad@redhat.com> - 3.22-27 |
||||
- Defuzzification of ipv6 patch |
||||
|
||||
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-26 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
||||
|
||||
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-25 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
||||
|
||||
* Tue Jun 30 2009 Miroslav Lichvar <mlichvar@redhat.com> 3.22-24 |
||||
- rename getline to avoid conflict with glibc (#505977) |
||||
- add -Wno-comments to CFLAGS |
||||
- remove package name from summary |
||||
|
||||
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.22-23 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild |
||||
|
||||
* Mon Aug 04 2008 Miroslav Lichvar <mlichvar@redhat.com> 3.22-22 |
||||
- fix building on sh (CHIKAMA Masaki) (#447658) |
||||
|
||||
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.22-21 |
||||
- Autorebuild for GCC 4.3 |
||||
|
||||
* Wed Aug 22 2007 Miroslav Lichvar <mlichvar@redhat.com> 3.22-20 |
||||
- update license tag |
||||
|
||||
* Tue Mar 27 2007 Miroslav Lichvar <mlichvar@redhat.com> 3.22-19 |
||||
- fix description (#234098) |
||||
- spec cleanup |
||||
|
||||
* Fri Oct 27 2006 Miroslav Lichvar <mlichvar@redhat.com> 3.22-18 |
||||
- add IPv6 support to comsat notification (#198403) |
||||
- package man page for mailstat |
||||
- change mail spool directory to /var/spool/mail |
||||
|
||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 3.22-17.1 |
||||
- rebuild |
||||
|
||||
* Thu Mar 30 2006 Peter Vrabec <pvrabec@redhat.com> 3.22-17 |
||||
- fix truncation of mailbox when running into a disk quota or a |
||||
full partition. Patch from Solar Designer. |
||||
|
||||
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 3.22-16.2.1 |
||||
- bump again for double-long bug on ppc(64) |
||||
|
||||
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 3.22-16.2 |
||||
- rebuilt for new gcc4.1 snapshot and glibc changes |
||||
|
||||
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Fri Mar 18 2005 Peter Vrabec <pvrabec@redhat.com> 3.22-16 |
||||
- rebuilt |
||||
|
||||
* Mon Nov 8 2004 Martin Stransky <stransky@redhat.com> 3.22-15 |
||||
- add largefiles patch to support 64-bit file I/O |
||||
|
||||
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Tue Jan 6 2004 Jens Petersen <petersen@redhat.com> - 3.22-12 |
||||
- apply procmail_3.22-8.debian.patch from Debian (fixes #79691) |
||||
|
||||
* Mon Sep 22 2003 Florian La Roche <Florian.LaRoche@redhat.de> |
||||
- do not link against -ldl and -lnsl |
||||
|
||||
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Wed Jan 22 2003 Tim Powers <timp@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Tue Dec 17 2002 Jens Petersen <petersen@redhat.com> |
||||
- convert changelog to utf8 |
||||
|
||||
* Wed Dec 11 2002 Tim Powers <timp@redhat.com> 3.22-8 |
||||
- rebuild on all arches |
||||
|
||||
* Fri Jun 21 2002 Tim Powers <timp@redhat.com> |
||||
- automated rebuild |
||||
|
||||
* Thu May 23 2002 Tim Powers <timp@redhat.com> |
||||
- automated rebuild |
||||
|
||||
* Mon Mar 25 2002 Trond Eivind Glomsrød <teg@redhat.com> 3.22-5 |
||||
- Updated Telss's procmailrc file (#61872) |
||||
|
||||
* Thu Mar 14 2002 Trond Eivind Glomsrød <teg@redhat.com> 3.22-4 |
||||
- Add Telsa Gwynne's procmailrc as a doc file - it's |
||||
excellently commented, and is a great example |
||||
|
||||
* Wed Feb 27 2002 Trond Eivind Glomsrød <teg@redhat.com> 3.22-3 |
||||
- Rebuild |
||||
|
||||
* Wed Jan 09 2002 Tim Powers <timp@redhat.com> |
||||
- automated rebuild |
||||
|
||||
* Wed Sep 12 2001 Trond Eivind Glomsrød <teg@redhat.com> 3.22-1 |
||||
- 3.22 |
||||
|
||||
* Sat Jun 30 2001 Trond Eivind Glomsrød <teg@redhat.com> |
||||
- 3.21 |
||||
|
||||
* Fri Jun 29 2001 Trond Eivind Glomsrød <teg@redhat.com> |
||||
- 3.20 |
||||
- Enable LMTP |
||||
|
||||
* Thu Apr 12 2001 Trond Eivind Glomsrød <teg@redhat.com> |
||||
- Change to "License: GPL or artistic" from "Copyright: distributable" |
||||
- Fix man page (#35825) |
||||
- 3.15.1 |
||||
- redo config patch |
||||
|
||||
* Sat Jan 6 2001 Jeff Johnson <jbj@redhat.com> |
||||
- lose setuid/setgid (root,mail) bits (#23257). |
||||
|
||||
* Fri Aug 11 2000 Jeff Johnson <jbj@redhat.com> |
||||
- add space in delivery rules with '!' (#15947). |
||||
|
||||
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com> |
||||
- automatic rebuild |
||||
|
||||
* Thu Jun 15 2000 Jeff Johnson <jbj@redhat.com> |
||||
- FHS packaging. |
||||
|
||||
* Mon Feb 7 2000 Jeff Johnson <jbj@redhat.com> |
||||
- compress man pages. |
||||
|
||||
* Fri Jan 14 2000 Jeff Johnson <jbj@redhat.com> |
||||
- update to 3.14. |
||||
|
||||
* Mon Aug 16 1999 Bill Nottingham <notting@redhat.com> |
||||
- fix doc perms. |
||||
|
||||
* Wed Apr 21 1999 Cristian Gafton <gafton@redhat.com> |
||||
- turn on GROUP_PER_USER |
||||
- add some docs to the package |
||||
|
||||
* Mon Apr 05 1999 Cristian Gafton <gafton@redhat.com> |
||||
- version 3.13 |
||||
|
||||
* Fri Mar 26 1999 Cristian Gafton <gafton@redhat.com> |
||||
- fixed Group line |
||||
|
||||
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com> |
||||
- auto rebuild in the new build environment (release 16) |
||||
|
||||
* Sun Aug 16 1998 Jeff Johnson <jbj@redhat.com> |
||||
- build root |
||||
|
||||
* Mon Apr 27 1998 Prospector System <bugs@redhat.com> |
||||
- translations modified for de, fr, tr |
||||
|
||||
* Thu Jun 19 1997 Erik Troan <ewt@redhat.com> |
||||
- built against glibc |
Loading…
Reference in new issue