diff options
Diffstat (limited to 'mail-filter/procmail')
14 files changed, 123 insertions, 327 deletions
diff --git a/mail-filter/procmail/Manifest b/mail-filter/procmail/Manifest index bf817c923214..24540afb4bdf 100644 --- a/mail-filter/procmail/Manifest +++ b/mail-filter/procmail/Manifest @@ -1 +1 @@ -DIST procmail-3.22.tar.gz 226817 BLAKE2B 4fd4641abcd3a897ea19bd8f76446f88806d22649d5221f8cef6f9efc29f7fcc02c9707cbf00c32fe247f16579d28fd887d3c18c4d3a2f8877c351bf92e85866 SHA512 3d0658329a55957a8d5741e03b0853b030c4524acef30641663213aa9eefc8264f8cc2b68a00a89e5f9f0f7c916c41a42e1b6c8df562c545ba97d8ab9049a936 +DIST procmail-3.24.gh.tar.gz 299704 BLAKE2B 3223e9551a48329da88545bc8b90a346dea1182ba5ec6221acbe7a76cf01485b7115194087104bd042eeec3660de9f6146c5b9d984763fee1e2174f1edd59c11 SHA512 ce3763205d7e34c8a096c411487de296ecfb190ba817ad07926d44811222e689faedb97a3d4e85989db70e5a2298b26fff70c9d0cb0324a447ddc8988d7fe8ea diff --git a/mail-filter/procmail/files/gentoo-maildir3.diff b/mail-filter/procmail/files/gentoo-maildir3.diff deleted file mode 100644 index 51dfef64ae8b..000000000000 --- a/mail-filter/procmail/files/gentoo-maildir3.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- procmail-3.22/src/authenticate.c.orig 2002-07-26 20:38:52.000000000 -0400 -+++ procmail-3.22/src/authenticate.c 2002-07-26 20:57:56.000000000 -0400 -@@ -39,7 +39,7 @@ - #include "authenticate.h" - - #ifndef MAILSPOOLDIR --#define MAILSPOOLDIR "/var/spool/mail/" /* watch the trailing / */ -+#define MAILSPOOLDIR "" /* watch the trailing / */ - #endif - #ifndef MAILSPOOLSUFFIX - #define MAILSPOOLSUFFIX "" /* suffix to force maildir or MH style */ - diff --git a/mail-filter/procmail/files/procmail-3.22-CVE-2014-3618.patch b/mail-filter/procmail/files/procmail-3.22-CVE-2014-3618.patch deleted file mode 100644 index 124d1f996852..000000000000 --- a/mail-filter/procmail/files/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/mail-filter/procmail/files/procmail-3.22-CVE-2017-16844.patch b/mail-filter/procmail/files/procmail-3.22-CVE-2017-16844.patch deleted file mode 100644 index 5e610d723da0..000000000000 --- a/mail-filter/procmail/files/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/mail-filter/procmail/files/procmail-3.22-crash-fix.patch b/mail-filter/procmail/files/procmail-3.22-crash-fix.patch deleted file mode 100644 index 8563ea3d1d4c..000000000000 --- a/mail-filter/procmail/files/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/mail-filter/procmail/files/procmail-3.22-glibc-2.10.patch b/mail-filter/procmail/files/procmail-3.22-glibc-2.10.patch deleted file mode 100644 index 2663bf501188..000000000000 --- a/mail-filter/procmail/files/procmail-3.22-glibc-2.10.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -NrU5 procmail-3.22.orig/src/fields.c procmail-3.22/src/fields.c ---- procmail-3.22.orig/src/fields.c 2009-05-21 18:21:25.000000000 +0200 -+++ procmail-3.22/src/fields.c 2009-05-21 18:22:14.000000000 +0200 -@@ -108,20 +108,20 @@ - extractfield(p); - } - /* try and append one valid field to rdheader from stdin */ - int readhead P((void)) - { int idlen; -- getline(); -+ procmail_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=='>';procmail_getline()); /* gather continued >From_ lines */ - } - else -- for(;;getline()) /* get the rest of the continued field */ -+ for(;;procmail_getline()) /* get the rest of the continued field */ - { switch(buflast) /* will this line be continued? */ - { case ' ':case '\t': /* yep, it sure is */ - continue; - } - break; -diff -NrU5 procmail-3.22.orig/src/formail.c procmail-3.22/src/formail.c ---- procmail-3.22.orig/src/formail.c 2009-05-21 18:21:25.000000000 +0200 -+++ procmail-3.22/src/formail.c 2009-05-21 18:22:14.000000000 +0200 -@@ -817,11 +817,11 @@ - #ifdef MAILBOX_SEPARATOR - if(!strncmp(emboxsep,buf,STRLEN(emboxsep))) /* end of mail? */ - { if(split) /* gobble up the next start separator */ - { buffilled=0; - #ifdef sMAILBOX_SEPARATOR -- getline();buffilled=0; /* but only if it's defined */ -+ procmail_getline();buffilled=0; /* but only if it's defined */ - #endif - if(buflast!=EOF) /* if any */ - goto splitit; - break; - } -diff -NrU5 procmail-3.22.orig/src/formisc.c procmail-3.22/src/formisc.c ---- procmail-3.22.orig/src/formisc.c 2009-05-21 18:21:25.000000000 +0200 -+++ procmail-3.22/src/formisc.c 2009-05-21 18:22:14.000000000 +0200 -@@ -113,11 +113,11 @@ - { if(buffilled==buflen) - buf=realloc(buf,buflen+=Bsize); - buf[buffilled++]=c; - } - --int getline P((void)) /* read a newline-terminated line */ -+int procmail_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 */ - } - loadchar(buflast); /* load leftover into the buffer */ -diff -NrU5 procmail-3.22.orig/src/formisc.h procmail-3.22/src/formisc.h ---- procmail-3.22.orig/src/formisc.h 2009-05-21 18:21:25.000000000 +0200 -+++ procmail-3.22/src/formisc.h 2009-05-21 18:22:14.000000000 +0200 -@@ -15,6 +15,6 @@ - closemine P((void)), - opensink P((void)); - char* - skipwords P((char*start)); - int -- getline P((void)); -+ procmail_getline P((void)); diff --git a/mail-filter/procmail/files/procmail-prefix.patch b/mail-filter/procmail/files/procmail-3.24-gentoo-prefix.patch index 6063b92db2b8..8426a53d8f59 100644 --- a/mail-filter/procmail/files/procmail-prefix.patch +++ b/mail-filter/procmail/files/procmail-3.24-gentoo-prefix.patch @@ -1,41 +1,7 @@ ---- config.h~ 2007-10-03 17:55:24 +0200 -+++ config.h 2007-10-03 18:01:38 +0200 -@@ -116,11 +116,11 @@ - is not found, maildelivery will proceed as normal to the default - system mailbox. This also must be an absolute path */ - --#define ETCRC "/etc/procmailrc" /* optional global procmailrc startup -+#define ETCRC "@GENTOO_PORTAGE_EPREFIX@/etc/procmailrc" /* optional global procmailrc startup - file (will only be read if procmail - is started with no rcfile on the command line). */ - --#define ETCRCS "/etc/procmailrcs/" /* optional trusted path prefix for -+#define ETCRCS "@GENTOO_PORTAGE_EPREFIX@/etc/procmailrcs/" /* optional trusted path prefix for - rcfiles which will be executed with - the uid of the owner of the rcfile (this only happens if procmail is - called with the -m option, without variable assignments on the command -@@ -168,7 +168,7 @@ - #define INEFFICIENTrealloc /* don't pussy-foot around */ - #endif - #define MAXinMEM (1024*1024) /* when to switch to mmap() */ --#define MMAP_DIR "/var/spool/procmail/" /* where to put */ -+#define MMAP_DIR "@GENTOO_PORTAGE_EPREFIX@/var/spool/procmail/" /* where to put */ - #endif /* the files */ - #define MINlogbuf 81 /* fit an entire line */ - #define MAXlogbuf 1000 /* in case someone abuses LOG */ -@@ -220,8 +220,8 @@ - #define DEFcomsat offvalue /* when an rcfile has been specified */ - /* set to either "offvalue" or "empty" */ - --#define BinSh "/bin/sh" --#define ROOT_DIR "/" -+#define BinSh "@GENTOO_PORTAGE_EPREFIX@/bin/sh" -+#define ROOT_DIR "@GENTOO_PORTAGE_EPREFIX@" - #define DEAD_LETTER "/tmp/dead.letter" /* $ORGMAIL if no passwd entry */ - #define DevNull "/dev/null" - #define NICE_RANGE 39 /* maximal nice difference */ ---- Makefile~ 2007-10-03 18:07:51 +0200 -+++ Makefile 2007-10-03 18:10:07 +0200 +diff --git a/Makefile b/Makefile +index 0be77b1..42bb241 100644 +--- a/Makefile ++++ b/Makefile @@ -2,7 +2,7 @@ # BASENAME should point to where the whole lot will be installed @@ -45,7 +11,7 @@ # For display in the man pages VISIBLE_BASENAME= $(BASENAME) -@@ -79,7 +79,7 @@ +@@ -79,7 +79,7 @@ SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lnsl -lsun \ # -lresolv # not really needed, is it? # Informal list of directories where we look for the libraries in SEARCHLIBS @@ -54,7 +20,7 @@ GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \ -Wpointer-arith -Wconversion -Waggregate-return \ -@@ -97,10 +97,10 @@ +@@ -97,10 +97,10 @@ LDFLAGS1= $(LDFLAGS0) $(LIBS) #-lcposix ####CC = cc # gcc # object file extension O = o @@ -67,38 +33,80 @@ INSTALL = cp DEVNULL = /dev/null STRIP = strip -@@ -112,7 +112,7 @@ +@@ -112,7 +112,7 @@ MANS1S = procmail formail lockfile mailstat MANS5S = procmailrc procmailsc procmailex # Possible locations for the sendmail.cf file -SENDMAILCFS = /etc/mail/sendmail.cf /etc/sendmail.cf /usr/lib/sendmail.cf +SENDMAILCFS = @GENTOO_PORTAGE_EPREFIX@/etc/mail/sendmail.cf @GENTOO_PORTAGE_EPREFIX@/etc/sendmail.cf @GENTOO_PORTAGE_EPREFIX@/usr/lib/sendmail.cf - # Makefile.1 - mark, don't (re)move this, a sed script needs it + # Makefile - mark, don't (re)move this, a sed script needs it ---- src/autoconf~ 2001-09-11 06:55:46 +0200 -+++ src/autoconf 2007-10-03 19:17:51 +0200 +diff --git a/config.h b/config.h +index 4f6b57e..ef69e0b 100644 +--- a/config.h ++++ b/config.h +@@ -116,11 +116,11 @@ + is not found, maildelivery will proceed as normal to the default + system mailbox. This also must be an absolute path */ + +-#define ETCRC "/etc/procmailrc" /* optional global procmailrc startup ++#define ETCRC "@GENTOO_PORTAGE_EPREFIX@/etc/procmailrc" /* optional global procmailrc startup + file (will only be read if procmail + is started with no rcfile on the command line). */ + +-#define ETCRCS "/etc/procmailrcs/" /* optional trusted path prefix for ++#define ETCRCS "@GENTOO_PORTAGE_EPREFIX@/etc/procmailrcs/" /* optional trusted path prefix for + rcfiles which will be executed with + the uid of the owner of the rcfile (this only happens if procmail is + called with the -m option, without variable assignments on the command +@@ -175,7 +175,7 @@ + #define INEFFICIENTrealloc /* don't pussy-foot around */ + #endif + #define MAXinMEM (1024*1024) /* when to switch to mmap() */ +-#define MMAP_DIR "/var/spool/procmail/" /* where to put */ ++#define MMAP_DIR "@GENTOO_PORTAGE_EPREFIX@/var/spool/procmail/" /* where to put */ + #endif /* the files */ + #define MINlogbuf 81 /* fit an entire line */ + #define MAXlogbuf 1000 /* in case someone abuses LOG */ +@@ -227,8 +227,8 @@ MMGR)\ + #define DEFcomsat offvalue /* when an rcfile has been specified */ + /* set to either "offvalue" or "empty" */ + +-#define BinSh "/bin/sh" +-#define ROOT_DIR "/" ++#define BinSh "@GENTOO_PORTAGE_EPREFIX@/bin/sh" ++#define ROOT_DIR "@GENTOO_PORTAGE_EPREFIX@" + #define DEAD_LETTER "/tmp/dead.letter" /* $ORGMAIL if no passwd entry */ + #define DevNull "/dev/null" + #define NICE_RANGE 39 /* maximal nice difference */ +diff --git a/src/autoconf b/src/autoconf +index 7c46487..094e4f0 100755 +--- a/src/autoconf ++++ b/src/autoconf @@ -1,4 +1,4 @@ -#! /bin/sh +#! @GENTOO_PORTAGE_EPREFIX@/bin/sh : # Copyright (c) 1990-1997, S.R. van den Berg, The Netherlands - # $Id$ -@@ -1416,20 +1416,10 @@ + #$Id$ +@@ -1416,22 +1416,12 @@ _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 '#define MAILSPOOLDIR "@GENTOO_PORTAGE_EPREFIX@/var/spool/mail/"' >>$ACONF + echo '#endif' >>$ACONF cat >lookfor <<HERE -for a in /usr/sbin /usr/lib /lib /usr/etc /etc /usr/bin /bin /usr/local/bin \ @@ -107,7 +115,7 @@ do if test -f "\$a/\$1" then -@@ -1458,7 +1448,7 @@ +@@ -1460,7 +1450,7 @@ fi grep '^#define SENDMAIL ".*/sendmail"' $ACONF >$DEVNULL || echo "#define DEFflagsendmail \"\"" >>$ACONF @@ -116,7 +124,7 @@ $RM -r $a OLDTESTDIRS="$a $OLDTESTDIRS" mkdir $a -@@ -1466,19 +1456,18 @@ +@@ -1468,19 +1458,18 @@ mkdir $a/__ _autotst $a/__ $a/__/__ 4 >>$ACONF @@ -130,19 +138,21 @@ grep '^V' >$DEVNULL || echo '#define buggy_SENDMAIL' >>$ACONF --lpath='/bin' +-lpath='/usr/local/bin:/bin' -bins="/bin" +lpath='@GENTOO_PORTAGE_EPREFIX@/bin' +bins='@GENTOO_PORTAGE_EPREFIX@/bin' --for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \ +-for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin \ - /global/bin /usr/bin/X11 /usr/X*/bin +for newd in @GENTOO_PORTAGE_EPREFIX@/usr/bin do if test -d $newd then ---- src/recommend.c~ 2007-10-03 19:10:01 +0200 -+++ src/recommend.c 2007-10-03 19:11:04 +0200 +diff --git a/src/recommend.c b/src/recommend.c +index 980098f..f4b7095 100644 +--- a/src/recommend.c ++++ b/src/recommend.c @@ -9,8 +9,7 @@ char mailspooldir[]=MAILSPOOLDIR; @@ -153,3 +163,6 @@ int main(argc,argv)const int argc;const char*const argv[]; { struct group*grp;struct stat stbuf;gid_t gid=(gid_t)-1; +-- +2.42.0 + diff --git a/mail-filter/procmail/files/procmail-lazy-bindings.diff b/mail-filter/procmail/files/procmail-3.24-lazy-bindings.patch index f1c4221650e6..850b29e59777 100644 --- a/mail-filter/procmail/files/procmail-lazy-bindings.diff +++ b/mail-filter/procmail/files/procmail-3.24-lazy-bindings.patch @@ -1,6 +1,8 @@ ---- src/Makefile.0.old 2005-05-23 10:34:25.000000000 +0200 -+++ src/Makefile.0 2005-05-23 10:34:52.000000000 +0200 -@@ -18,11 +18,11 @@ +diff --git a/src/Makefile.0 b/src/Makefile.0 +index 35b6180..4fcba2c 100644 +--- a/src/Makefile.0 ++++ b/src/Makefile.0 +@@ -18,11 +18,11 @@ make: # fake target .PRECIOUS: Makefile procmail: procmail.$(O) $(PM_OBJ) setid diff --git a/mail-filter/procmail/files/procmail-3.24-maildir.patch b/mail-filter/procmail/files/procmail-3.24-maildir.patch new file mode 100644 index 000000000000..b71661134438 --- /dev/null +++ b/mail-filter/procmail/files/procmail-3.24-maildir.patch @@ -0,0 +1,16 @@ +diff --git a/src/authenticate.c b/src/authenticate.c +index 1f6cd6f..d92b6de 100644 +--- a/src/authenticate.c ++++ b/src/authenticate.c +@@ -39,7 +39,7 @@ static /*const*/char rcsid[]= + #include "authenticate.h" + + #ifndef MAILSPOOLDIR +-#define MAILSPOOLDIR "/var/mail/" /* watch the trailing / */ ++#define MAILSPOOLDIR "" /* watch the trailing / */ + #endif + #ifndef MAILSPOOLSUFFIX + #define MAILSPOOLSUFFIX "" /* suffix to force maildir or MH style */ +-- +2.42.0 + diff --git a/mail-filter/procmail/files/procmail-comsat-segfault.diff b/mail-filter/procmail/files/procmail-comsat-segfault.diff deleted file mode 100644 index e96bb5d94a38..000000000000 --- a/mail-filter/procmail/files/procmail-comsat-segfault.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- src/comsat.c.old 2005-08-17 19:17:20.000000000 +0200 -+++ src/comsat.c 2005-08-17 19:18:19.000000000 +0200 -@@ -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; diff --git a/mail-filter/procmail/files/procmail-maxprocs-fix.diff b/mail-filter/procmail/files/procmail-maxprocs-fix.diff deleted file mode 100644 index c78b000a8b92..000000000000 --- a/mail-filter/procmail/files/procmail-maxprocs-fix.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- src/formisc.c.orig 2006-01-22 00:35:30.000000000 -0800 -+++ src/formisc.c 2006-01-22 00:35:55.000000000 -0800 -@@ -183,7 +183,7 @@ - retval=excode; - } /* reap some children */ - while(childlimit&&children>=childlimit||(child=fork())==-1&&children) -- for(--children;(excode=waitfor((pid_t)0))!=NO_PROCESS;) -+ for(;(excode=waitfor((pid_t)0))!=NO_PROCESS;) - { if(excode!=EXIT_SUCCESS) - retval=excode; - if(--children<=maxchild) diff --git a/mail-filter/procmail/files/procmail-pipealloc.diff b/mail-filter/procmail/files/procmail-pipealloc.diff deleted file mode 100644 index fdd5cc97328a..000000000000 --- a/mail-filter/procmail/files/procmail-pipealloc.diff +++ /dev/null @@ -1,21 +0,0 @@ -diff -rc procmail-3.22/src/pipes.c procmail-3.22-fixed/src/pipes.c -*** procmail-3.22/src/pipes.c Tue Sep 11 00:58:44 2001 ---- procmail-3.22-fixed/src/pipes.c Wed Nov 21 23:53:39 2007 -*************** -*** 194,200 **** - makeblock(&temp,Stdfilled); - tmemmove(temp.p,Stdout,Stdfilled); - readdyn(&temp,&Stdfilled,Stdfilled+backlen+1); -! Stdout=realloc(Stdout,&Stdfilled+1); - tmemmove(Stdout,temp.p,Stdfilled+1); - freeblock(&temp); - retStdout(Stdout,pwait&&pipw,!backblock); ---- 194,200 ---- - makeblock(&temp,Stdfilled); - tmemmove(temp.p,Stdout,Stdfilled); - readdyn(&temp,&Stdfilled,Stdfilled+backlen+1); -! Stdout=realloc(Stdout,Stdfilled+1); - tmemmove(Stdout,temp.p,Stdfilled+1); - freeblock(&temp); - retStdout(Stdout,pwait&&pipw,!backblock); - diff --git a/mail-filter/procmail/metadata.xml b/mail-filter/procmail/metadata.xml index bbd34d5b7591..e5c4248bc00f 100644 --- a/mail-filter/procmail/metadata.xml +++ b/mail-filter/procmail/metadata.xml @@ -1,8 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>zlogene@gentoo.org</email> - <name>Mikle Kolyada</name> - </maintainer> + <!-- maintainer-needed --> </pkgmetadata> diff --git a/mail-filter/procmail/procmail-3.22-r14.ebuild b/mail-filter/procmail/procmail-3.24.ebuild index 4d67def38fa9..206a81db60fb 100644 --- a/mail-filter/procmail/procmail-3.22-r14.ebuild +++ b/mail-filter/procmail/procmail-3.24.ebuild @@ -1,34 +1,40 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 inherit flag-o-matic toolchain-funcs prefix DESCRIPTION="Mail delivery agent/filter" -HOMEPAGE="http://www.procmail.org/" -SRC_URI="http://www.procmail.org/${P}.tar.gz" +HOMEPAGE="https://www.procmail.org/" +SRC_URI="https://github.com/BuGlessRB/procmail/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" LICENSE="|| ( Artistic GPL-2 )" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" IUSE="mbox selinux" -DEPEND="virtual/mta" -RDEPEND="selinux? ( sec-policy/selinux-procmail )" +DEPEND=" + acct-group/mail + virtual/mta +" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-procmail ) +" src_prepare() { # disable flock, using both fcntl and flock style locking # doesn't work with NFS with 2.6.17+ kernels, bug #156493 - sed -e "s:/\*#define NO_flock_LOCK:#define NO_flock_LOCK:" \ + sed -e "s|/\*#define NO_flock_LOCK|#define NO_flock_LOCK|" \ -i config.h || die "sed failed" if ! use mbox ; then echo "# Use maildir-style mailbox in user's home directory" > "${S}"/procmailrc || die echo 'DEFAULT=$HOME/.maildir/' >> "${S}"/procmailrc || die cd "${S}" || die - eapply "${FILESDIR}/gentoo-maildir3.diff" + eapply "${FILESDIR}/${P}-maildir.patch" else echo '# Use mbox-style mailbox in /var/spool/mail' > "${S}"/procmailrc || die echo 'DEFAULT=${EPREFIX}/var/spool/mail/$LOGNAME' >> "${S}"/procmailrc || die @@ -36,48 +42,33 @@ src_prepare() { # Do not use lazy bindings on lockfile and procmail if [[ ${CHOST} != *-darwin* ]]; then - eapply -p0 "${FILESDIR}/${PN}-lazy-bindings.diff" + eapply "${FILESDIR}/${P}-lazy-bindings.patch" fi - # Fix for bug #102340 - eapply -p0 "${FILESDIR}/${PN}-comsat-segfault.diff" - - # Fix for bug #119890 - eapply -p0 "${FILESDIR}/${PN}-maxprocs-fix.diff" - # Prefixify config.h - eapply -p0 "${FILESDIR}"/${PN}-prefix.patch + eapply "${FILESDIR}/${P}-gentoo-prefix.patch" eprefixify config.h Makefile src/autoconf src/recommend.c - # Fix for bug #200006 - eapply "${FILESDIR}/${PN}-pipealloc.diff" - - # Fix for bug #270551 - eapply "${FILESDIR}/${PN}-3.22-glibc-2.10.patch" - - # Fix security bugs #522114 and #638108 - eapply "${FILESDIR}/${PN}-3.22-CVE-2014-3618.patch" - eapply "${FILESDIR}/${PN}-3.22-CVE-2017-16844.patch" - - eapply "${FILESDIR}/${PN}-3.22-crash-fix.patch" - - eapply_user + default } src_compile() { + # bug #875251, bug #896052 + append-flags -std=gnu89 + # bug #859517 + filter-lto + # -finline-functions (implied by -O3) leaves strstr() in an infinite loop. # To work around this, we append -fno-inline-functions to CFLAGS # Since GCC 4.7 we also need -fno-ipa-cp-clone (bug #466552) # If it's clang, ignore -fno-ipa-cp-clone, as clang doesn't support this - case "$(tc-getCC)" in - "clang") append-flags -fno-inline-functions ;; - "gcc"|*) append-flags -fno-inline-functions -fno-ipa-cp-clone ;; - esac - - sed -e "s:CFLAGS0 = -O:CFLAGS0 = ${CFLAGS}:" \ - -e "s:LDFLAGS0= -s:LDFLAGS0 = ${LDFLAGS}:" \ - -e "s:LOCKINGTEST=__defaults__:#LOCKINGTEST=__defaults__:" \ - -e "s:#LOCKINGTEST=/tmp:LOCKINGTEST=/tmp:" \ + append-flags -fno-inline-functions + tc-is-clang || append-flags -fno-ipa-cp-clone + + sed -e "s|CFLAGS0 = -O|CFLAGS0 = ${CFLAGS}|" \ + -e "s|LDFLAGS0= -s|LDFLAGS0 = ${LDFLAGS}|" \ + -e "s|LOCKINGTEST=__defaults__|#LOCKINGTEST=__defaults__|" \ + -e "s|#LOCKINGTEST=/tmp|LOCKINGTEST=/tmp|" \ -i Makefile || die "sed failed" emake CC="$(tc-getCC)" |