[packages/procmail] - up to 3.24 with security fixes

adwol adwol at pld-linux.org
Wed Mar 5 03:16:07 CET 2025


commit ade108911061cebb8092ca5502678beed6132bed
Author: Adam Osuchowski <>
Date:   Wed Mar 5 01:25:59 2025 +0100

    - up to 3.24 with security fixes

 private_getline.patch              |  41 --
 procmail-3.22-CVE-2014-3618.patch  |  18 -
 procmail-3.22-CVE-2017-16844.patch |  13 -
 procmail-3.22-crash-fix.patch      |  58 ---
 procmail-3.22-ipv6.patch           | 228 ---------
 procmail-3.22-truncate.patch       |  47 --
 procmail-FHS.patch                 |  24 +-
 procmail-c.patch                   | 124 +++++
 procmail-misc.patch                |  31 +-
 procmail.spec                      |  28 +-
 procmail_3.22-8.debian.patch       | 950 -------------------------------------
 11 files changed, 160 insertions(+), 1402 deletions(-)
---
diff --git a/procmail.spec b/procmail.spec
index 8fc7b1c..1ef9fd4 100644
--- a/procmail.spec
+++ b/procmail.spec
@@ -10,12 +10,12 @@ Summary(uk.UTF-8):	Програма обробки пошти procmail
 Summary(zh_CN.UTF-8):	[服务器]分发mail到用户的守护进程
 Summary(zh_TW.UTF-8):	[祀務器]分蛛mail到用戶的佐鰾園評
 Name:		procmail
-Version:	3.22
-Release:	22
+Version:	3.24
+Release:	1
 License:	GPL v2+ or Artistic
 Group:		Applications/Mail
-Source0:	http://www.procmail.org/%{name}-%{version}.tar.gz
-# Source0-md5:	1678ea99b973eb77eda4ecf6acae53f1
+Source0:	https://github.com/BuGlessRB/procmail/archive/refs/tags/v%{version}/procmail-%{version}.tar.gz
+# Source0-md5:	e38b8739e5c6400e3586c5fd9810c1e0
 Source1:	%{name}-skel
 Source2:	%{name}-%{name}rc
 Source3:	http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
@@ -23,15 +23,9 @@ Source3:	http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-ma
 Patch0:		%{name}-lockf.patch
 Patch1:		%{name}-misc.patch
 Patch2:		%{name}-FHS.patch
-Patch3:		private_getline.patch
-Patch4:		ignore-dot.patch
-Patch5:		procmail_3.22-8.debian.patch
-Patch6:		procmail-3.22-CVE-2014-3618.patch
-Patch7:		procmail-3.22-ipv6.patch
-Patch8:		procmail-3.22-truncate.patch
-Patch9:		procmail-3.22-CVE-2017-16844.patch
-Patch10:	procmail-3.22-crash-fix.patch
-URL:		http://www.procmail.org/
+Patch3:		ignore-dot.patch
+Patch4:		%{name}-c.patch
+URL:		https://github.com/BuGlessRB/procmail
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define	_debugsource_packages	0
@@ -102,12 +96,6 @@ listesi yazılımının temelini oluşturur.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
 
 %build
 echo "" | %{__make} \
@@ -135,6 +123,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
+/etc/skel/.procmailrc
 %attr(700,root,root) %dir /etc/skel/Mail
 /etc/skel/Mail/mbox
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/procmailrc
@@ -144,6 +133,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(2755,root,mail) %{_bindir}/lockfile
 %{_mandir}/man1/formail.1*
 %{_mandir}/man1/lockfile.1*
+%{_mandir}/man1/mailstat.1*
 %{_mandir}/man1/procmail.1*
 %{_mandir}/man5/procmailex.5*
 %{_mandir}/man5/procmailrc.5*
diff --git a/private_getline.patch b/private_getline.patch
deleted file mode 100644
index 469be3b..0000000
--- a/private_getline.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- procmail-3.22/src/formisc.h.orig	2010-01-10 22:53:39.726707771 +0100
-+++ procmail-3.22/src/formisc.h	2010-01-10 22:54:57.934199882 +0100
-@@ -17,4 +17,4 @@ void
- char*
-  skipwords P((char*start));
- int
-- getline P((void));
-+ pm_getline P((void));
---- procmail-3.22/src/fields.c.orig	2010-01-10 22:55:07.463366037 +0100
-+++ procmail-3.22/src/fields.c	2010-01-10 22:55:28.953363478 +0100
-@@ -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();
-+  pm_getline();
-   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=='>';pm_getline());	    /* gather continued >From_ lines */
-    }
-   else
--     for(;;getline())		      /* get the rest of the continued field */
-+     for(;;pm_getline())		      /* get the rest of the continued field */
-       { switch(buflast)			     /* will this line be continued? */
- 	 { case ' ':case '\t':				  /* yep, it sure is */
- 	      continue;
---- procmail-3.22/src/formisc.c.orig	2010-01-10 22:55:37.473363034 +0100
-+++ procmail-3.22/src/formisc.c	2010-01-10 22:55:45.763361970 +0100
-@@ -115,7 +115,7 @@ void loadchar(c)const int c;		      /* a
-   buf[buffilled++]=c;
- }
- 
--int getline P((void))			   /* read a newline-terminated line */
-+int pm_getline 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 --git a/procmail-3.22-CVE-2014-3618.patch b/procmail-3.22-CVE-2014-3618.patch
deleted file mode 100644
index 124d1f9..0000000
--- a/procmail-3.22-CVE-2014-3618.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-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;
-    }
diff --git a/procmail-3.22-CVE-2017-16844.patch b/procmail-3.22-CVE-2017-16844.patch
deleted file mode 100644
index 5e610d7..0000000
--- a/procmail-3.22-CVE-2017-16844.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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;
- }
diff --git a/procmail-3.22-crash-fix.patch b/procmail-3.22-crash-fix.patch
deleted file mode 100644
index 8563ea3..0000000
--- a/procmail-3.22-crash-fix.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-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 */
diff --git a/procmail-3.22-ipv6.patch b/procmail-3.22-ipv6.patch
deleted file mode 100644
index ecae2a2..0000000
--- a/procmail-3.22-ipv6.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-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
diff --git a/procmail-3.22-truncate.patch b/procmail-3.22-truncate.patch
deleted file mode 100644
index c06cde3..0000000
--- a/procmail-3.22-truncate.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- 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;
- 	 }
diff --git a/procmail-FHS.patch b/procmail-FHS.patch
index 0794182..0cf7da1 100644
--- a/procmail-FHS.patch
+++ b/procmail-FHS.patch
@@ -1,31 +1,31 @@
-diff -Nru procmail-3.14/src/autoconf procmail-3.14.new/src/autoconf
---- procmail-3.14/src/autoconf	Mon May  3 17:22:46 1999
-+++ procmail-3.14.new/src/autoconf	Fri Mar  3 04:00:00 2000
-@@ -78,8 +78,8 @@
- #	#define NOfcntl_lock
+diff -ruNp procmail-3.24.orig/src/autoconf procmail-3.24/src/autoconf
+--- procmail-3.24.orig/src/autoconf	2022-03-02 10:52:56.000000000 +0100
++++ procmail-3.24/src/autoconf	2025-03-02 07:41:27.305507604 +0100
+@@ -90,7 +90,7 @@
  #Ok	#define USElockf
  #Ok	#define USEflock
--#Ok	#define MAILSPOOLDIR "/var/spool/mail/"
+ #Ok	#define MAILSPOOLDIR "/var/mail/"
 -#Ok	#define SENDMAIL "/usr/sbin/sendmail"
-+#Ok	#define MAILSPOOLDIR "/var/mail/"
 +#Ok	#define SENDMAIL "/usr/lib/sendmail"
  #	#define buggy_SENDMAIL
  #	#define DEFflagsendmail ""
  #Ok	#define CF_no_procmail_yet
-@@ -1329,47 +1329,11 @@
+@@ -1416,49 +1416,11 @@ _autotst >>$ACONF
  
  found=no
  
 -for a in /var/spool/mail /usr/spool/mail /var/mail /usr/mail /spool/mail
 -do
--  test -d $a -a $found != yes &&
--   echo '#define MAILSPOOLDIR "'$a'/"' >>$ACONF && found=yes
+-  test -d $a -a $found = no && found=$a
 -done
--if test $found != yes
+-if test $found = no
 -then
-- echo '#define MAILSPOOLDIR "/var/spool/mail/"' >>$ACONF
+- found=/var/spool/mail
 - echo Could not find the system-mailbox directory, supplied default.
 -fi
+-echo '#ifndef MAILSPOOLDIR' >>$ACONF
+-echo '#define MAILSPOOLDIR "'$found'/"' >>$ACONF
+-echo '#endif' >>$ACONF
 -
 -cat >lookfor <<HERE
 -for a in /usr/sbin /usr/lib /lib /usr/etc /etc /usr/bin /bin /usr/local/bin \
diff --git a/procmail-c.patch b/procmail-c.patch
new file mode 100644
index 0000000..da69f58
--- /dev/null
+++ b/procmail-c.patch
@@ -0,0 +1,124 @@
+diff -ruNp procmail-3.24.orig/initmake procmail-3.24/initmake
+--- procmail-3.24.orig/initmake	2022-03-02 10:52:56.000000000 +0100
++++ procmail-3.24/initmake	2025-03-02 08:50:02.224041077 +0100
+@@ -124,7 +124,7 @@ else
+ fi
+ 
+ cat >_autotst.c <<HERE
+-main()
++int main()
+ { return 0;
+ }
+ HERE
+@@ -200,7 +200,7 @@ cat >_autotst.c <<HERE
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <sys/stat.h>
+-main()
++int main()
+ { struct stat buf;return!&buf;
+ }
+ HERE
+diff -ruNp procmail-3.24.orig/src/autoconf procmail-3.24/src/autoconf
+--- procmail-3.24.orig/src/autoconf	2022-03-02 10:52:56.000000000 +0100
++++ procmail-3.24/src/autoconf	2025-03-02 08:53:03.181835147 +0100
+@@ -416,6 +416,12 @@ cat >_autotst.c <<HERE
+ int dolock,child[NR_of_forks],timeout,fdcollect;
+ char dirlocktest[]="_locktest";
+ 
++#include <stdlib.h>
++int killchildren();
++int fdlock(int fd);
++int sfdlock(int fd);
++int fdunlock();
++
+ void stimeout()
+ { timeout=1;close(fdcollect);killchildren();
+ }
+@@ -437,7 +443,7 @@ unsigned sfork()
+   return pid;
+ }
+ 
+-int main(argc,argv)char*argv[];
++int main(int argc,char*argv[])
+ { int goodlock,testlock,i,pip[2],pipw[2];time_t otimet;unsigned dtimet;
+   static char filename[]="_locktst.l0";
+   close(0);goodlock=0;testlock=FIRST_lock;signal(SIGPIPE,SIG_DFL);
+@@ -587,13 +593,13 @@ int killchildren()
+   return 0;
+ }
+ 
+-int sfdlock(fd)
++int sfdlock(int fd)
+ { int i;unsigned gobble[GOBBLE>>2];
+   for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0);		 /* SunOS crash test */
+   return fdlock(fd);
+ }
+ 
+-static oldfdlock;
++static int oldfdlock;
+ #ifdef F_SETLKW
+ static struct flock flck;		/* why can't it be a local variable? */
+ #endif
+@@ -601,7 +607,7 @@ static struct flock flck;		/* why can't
+ static off_t oldlockoffset;
+ #endif
+ 
+-int fdlock(fd)
++int fdlock(int fd)
+ { int i;unsigned gobble[GOBBLE>>2];
+   for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0);		 /* SunOS crash test */
+   oldfdlock=fd;fd=0;
+@@ -997,11 +1003,11 @@ int main(){int i;i=1;
+  i+=WIFEXITED(i);
+  i+=WIFSTOPPED(i);
+  i+=WEXITSTATUS(i);
+- i+=WSIGTERM(i);
++ i+=WTERMSIG(i);
+  return i;}
+ HERE
+ 
+-echo 'Testing for WIFEXITED(), WIFSTOPPED(), WEXITSTATUS() & WSIGTERM()'
++echo 'Testing for WIFEXITED(), WIFSTOPPED(), WEXITSTATUS() & WTERMSIG()'
+ if $MAKE _autotst.$O >_autotst.rrr 2>&1
+ then
+    $FGREP -v include/ <_autotst.rrr >_autotst.$O
+@@ -1033,6 +1039,8 @@ cat >_autotst.c <<HERE
+ #ifndef NO_COMSAT
+ #include "network.h"
+ #endif
++int setrgid();
++int setresgid();
+ int main(){char a[2];
+  endpwent();endgrent();memmove(a,"0",1);bcopy("0",a,1);strcspn(a,"0");
+  strtol("0",(char**)0,10);strchr("0",'0');strpbrk(a,"0");rename(a,"0");
+@@ -1059,7 +1067,7 @@ echo 'Testing for memmove, strchr, strpb
+ echo '	rename, setrgid, setegid, pow, opendir, mkdir, waitpid, fsync,'
+ echo '	ftruncate, strtod, strncasecmp, strerror, strlcat,'
+ echo '	memset, bzero, and _exit'
+-if $MAKE _autotst.$O >$DEVNULL 2>&1
++if $MAKE _autotst.$O >_autotst.rrr 2>&1
+ then
+ :
+ else
+@@ -1201,7 +1209,7 @@ unsigned long dobench(strstr,iter,haysta
+   return (unsigned long)clock()-to;
+ }
+ #endif
+-int main(argc,argv)int argc;const char*argv[];
++int main(int argc,const char*argv[])
+ { if(argc==1)
+    { char*haystack;
+ #ifdef BENCHSIZE
+diff -ruNp procmail-3.24.orig/src/mailfold.c procmail-3.24/src/mailfold.c
+--- procmail-3.24.orig/src/mailfold.c	2022-03-02 10:52:56.000000000 +0100
++++ procmail-3.24/src/mailfold.c	2025-03-02 08:53:19.656089508 +0100
+@@ -373,7 +373,7 @@ void concon(ch)const int ch;   /* flip b
+    }
+ }
+ 
+-int readmail(rhead,tobesent)int rhead;const long tobesent;
++int readmail(int rhead,const long tobesent)
+ { char*chp,*pastend;static size_t contlengthoffset;
+   ;{ long dfilled;
+      if(rhead==2)		  /* already read, just examine what we have */
diff --git a/procmail-misc.patch b/procmail-misc.patch
index 8cb037c..365a956 100644
--- a/procmail-misc.patch
+++ b/procmail-misc.patch
@@ -1,28 +1,27 @@
-diff -urN procmail-3.22/Makefile procmail-3.22.new/Makefile
---- procmail-3.22/Makefile	Tue Sep 11 06:53:09 2001
-+++ procmail-3.22.new/Makefile	Sat Sep 15 18:18:47 2001
-@@ -55,7 +55,7 @@
+diff -ruNp procmail-3.24.orig/Makefile procmail-3.24/Makefile
+--- procmail-3.24.orig/Makefile	2022-03-02 10:52:56.000000000 +0100
++++ procmail-3.24/Makefile	2025-03-02 07:29:26.862391145 +0100
+@@ -55,7 +55,7 @@ MAN5DIR		= $(MANDIR)/man$(MAN5SUFFIX)
  
  LOCKINGTEST=__defaults__
  
 -#LOCKINGTEST=/tmp .	# Uncomment and add any directories you see fit.
-+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
-diff -urN procmail-3.22/config.h procmail-3.22.new/config.h
---- procmail-3.22/config.h	Tue Sep 11 06:53:50 2001
-+++ procmail-3.22.new/config.h	Sat Sep 15 18:19:23 2001
-@@ -34,7 +34,7 @@
-  * DEFSPATH and DEFPATH defines below
+diff -ruNp procmail-3.24.orig/config.h procmail-3.24/config.h
+--- procmail-3.24.orig/config.h	2022-03-02 10:52:56.000000000 +0100
++++ procmail-3.24/config.h	2025-03-02 07:32:17.998031254 +0100
+@@ -35,6 +35,7 @@
   */
- /*#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"	/* */
+ /*#define DEFSPATH "PATH=/usr/local/bin:/bin:/usr/bin"			/* */
+ /*#define DEFPATH  "PATH=$HOME/bin:/usr/local/bin:/bin:/usr/bin"	/* */
++/*#define DEFPATH  "PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin"	/* */
  
  /* every environment variable appearing in PRESTENV will be set or wiped
   * out of the environment (variables without an '=' sign will be thrown
-@@ -46,7 +46,7 @@
+@@ -46,7 +47,7 @@
   */
  #define PRESTENV	{"IFS","ENV","PWD",0}
  
@@ -31,7 +30,7 @@ diff -urN procmail-3.22/config.h procmail-3.22.new/config.h
  						   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
-@@ -91,14 +91,14 @@
+@@ -91,14 +92,14 @@
  	restriction does not apply to the /etc/procmailrc and
  	/etc/procmailrcs files) */
  
@@ -44,7 +43,7 @@ diff -urN procmail-3.22/config.h procmail-3.22.new/config.h
  	needed or under heavy load. */
  
 -/*#define DEFsendmail	"/usr/sbin/sendmail"	/* uncomment and/or change if
-+#define DEFsendmail	"/usr/lib/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
diff --git a/procmail_3.22-8.debian.patch b/procmail_3.22-8.debian.patch
deleted file mode 100644
index 78079d6..0000000
--- a/procmail_3.22-8.debian.patch
+++ /dev/null
@@ -1,950 +0,0 @@
---- 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. at ETCRCS_desc@
- For some advanced usage of this option you should look in the
- .B EXAMPLES
--section below. at LMTPOPTdesc@.SH ARGUMENTS
-+section below. at 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 at 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- at PRESERVOPT@\1and\1.BR \2- at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at vger.kernel.org
-+debian-user at 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 at vger.kernel.org
-+linux-kernel
-+
-+:0:
-+* ^Resent-Sender:.*debian-user-request at 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 at 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 at 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
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/procmail.git/commitdiff/ade108911061cebb8092ca5502678beed6132bed



More information about the pld-cvs-commit mailing list