commit
f5a2c43457
@ -0,0 +1 @@
|
||||
SOURCES/procmail-3.24.tar.gz
|
@ -0,0 +1 @@
|
||||
7de1d9d27fe0a59d553b93a4ace17e50003cf667 SOURCES/procmail-3.24.tar.gz
|
@ -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,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,73 @@
|
||||
diff --git a/src/cstdio.c b/src/cstdio.c
|
||||
index d444057..5327c77 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 48b83e2..88d6228 100644
|
||||
--- a/src/foldinfo.c
|
||||
+++ b/src/foldinfo.c
|
||||
@@ -19,6 +19,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,doautoforward)
|
||||
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 60b7a2d..41e3c1a 100644
|
||||
--- a/src/lmtp.c
|
||||
+++ b/src/lmtp.c
|
||||
@@ -52,7 +52,7 @@ static int lreaddyn P((void));
|
||||
int childserverpid;
|
||||
char detaildelim='\0';
|
||||
|
||||
-static ctopfd;
|
||||
+static int ctopfd;
|
||||
static char*overread;
|
||||
static size_t overlen;
|
||||
|
||||
diff --git a/src/locking.c b/src/locking.c
|
||||
index a5a0238..c6882ea 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;
|
||||
}
|
||||
|
@ -0,0 +1,241 @@
|
||||
diff --git a/initmake b/initmake
|
||||
index b901add..703d651 100755
|
||||
--- a/initmake
|
||||
+++ b/initmake
|
||||
@@ -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 --git a/src/autoconf b/src/autoconf
|
||||
index deb97c1..c3f2576 100755
|
||||
--- a/src/autoconf
|
||||
+++ b/src/autoconf
|
||||
@@ -361,6 +361,7 @@ cat >_autotst.c <<HERE
|
||||
#include <unistd.h> /* getpid() getppid() */
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h> /* SIGKILL */
|
||||
@@ -414,6 +415,16 @@ cat >_autotst.c <<HERE
|
||||
int dolock,child[NR_of_forks],timeout,fdcollect;
|
||||
char dirlocktest[]="_locktest";
|
||||
|
||||
+int killchildren()
|
||||
+{ int i;
|
||||
+ i=NR_of_forks;
|
||||
+ do
|
||||
+ if(child[--i]>0)
|
||||
+ kill(child[i],SIGTERM),child[i]=0;
|
||||
+ while(i);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
void stimeout()
|
||||
{ timeout=1;close(fdcollect);killchildren();
|
||||
}
|
||||
@@ -435,7 +446,79 @@ unsigned sfork()
|
||||
return pid;
|
||||
}
|
||||
|
||||
-int main(argc,argv)char*argv[];
|
||||
+static int oldfdlock;
|
||||
+#ifdef F_SETLKW
|
||||
+static struct flock flck; /* why can't it be a local variable? */
|
||||
+#endif
|
||||
+#ifdef F_LOCK
|
||||
+static off_t oldlockoffset;
|
||||
+#endif
|
||||
+
|
||||
+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;
|
||||
+ if(MSK_fcntl&dolock)
|
||||
+#ifdef F_SETLKW
|
||||
+ { static unsigned extra;
|
||||
+ flck.l_type=F_WRLCK;flck.l_whence=SEEK_SET;flck.l_start=tell(oldfdlock);
|
||||
+ if(!extra--)
|
||||
+ extra=MIN_locks/4,flck.l_len=2,i|=fcntl(oldfdlock,F_SETLK,&flck);
|
||||
+ flck.l_len=0;fd|=fcntl(oldfdlock,F_SETLKW,&flck);
|
||||
+ }
|
||||
+#else
|
||||
+ fd=1;
|
||||
+#endif
|
||||
+ if(MSK_lockf&dolock)
|
||||
+#ifdef F_LOCK
|
||||
+ oldlockoffset=tell(oldfdlock),fd|=lockf(oldfdlock,F_LOCK,(off_t)0);
|
||||
+#else
|
||||
+ fd=1;
|
||||
+#endif
|
||||
+ if(MSK_flock&dolock)
|
||||
+#ifdef LOCK_EX
|
||||
+ fd|=flock(oldfdlock,LOCK_EX);
|
||||
+#else
|
||||
+ fd=1;
|
||||
+#endif
|
||||
+ return 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);
|
||||
+}
|
||||
+
|
||||
+int fdunlock()
|
||||
+{ int i;unsigned gobble[GOBBLE];
|
||||
+ for(i=GOBBLE;i;gobble[--i]=~(unsigned)0); /* some SunOS libs mess this up */
|
||||
+ if(MSK_flock&dolock)
|
||||
+#ifdef LOCK_EX
|
||||
+ i|=flock(oldfdlock,LOCK_UN);
|
||||
+#else
|
||||
+ i=1;
|
||||
+#endif
|
||||
+ if(MSK_lockf&dolock)
|
||||
+#ifdef F_LOCK
|
||||
+ { lseek(oldfdlock,oldlockoffset,SEEK_SET);
|
||||
+ i|=lockf(oldfdlock,F_LOCK,(off_t)2);i|=lockf(oldfdlock,F_ULOCK,(off_t)0);
|
||||
+ }
|
||||
+#else
|
||||
+ i=1;
|
||||
+#endif
|
||||
+ if(MSK_fcntl&dolock)
|
||||
+#ifdef F_SETLKW
|
||||
+ flck.l_type=F_UNLCK,flck.l_len=0,i|=fcntl(oldfdlock,F_SETLK,&flck);
|
||||
+#else
|
||||
+ i=1;
|
||||
+#endif
|
||||
+ if(!i)
|
||||
+ for(i=GOBBLE;i&&gobble[--i]==~(unsigned)0;);
|
||||
+ return i;
|
||||
+}
|
||||
+
|
||||
+int main(argc,argv)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);
|
||||
@@ -574,88 +657,6 @@ skip_tests:
|
||||
puts("Kernel-locking tests completed.");fprintf(stderr,"\n");
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
-
|
||||
-int killchildren()
|
||||
-{ int i;
|
||||
- i=NR_of_forks;
|
||||
- do
|
||||
- if(child[--i]>0)
|
||||
- kill(child[i],SIGTERM),child[i]=0;
|
||||
- while(i);
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-int sfdlock(fd)
|
||||
-{ int i;unsigned gobble[GOBBLE>>2];
|
||||
- for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
|
||||
- return fdlock(fd);
|
||||
-}
|
||||
-
|
||||
-static oldfdlock;
|
||||
-#ifdef F_SETLKW
|
||||
-static struct flock flck; /* why can't it be a local variable? */
|
||||
-#endif
|
||||
-#ifdef F_LOCK
|
||||
-static off_t oldlockoffset;
|
||||
-#endif
|
||||
-
|
||||
-int fdlock(fd)
|
||||
-{ int i;unsigned gobble[GOBBLE>>2];
|
||||
- for(i=GOBBLE>>2;i;gobble[--i]=~(unsigned)0); /* SunOS crash test */
|
||||
- oldfdlock=fd;fd=0;
|
||||
- if(MSK_fcntl&dolock)
|
||||
-#ifdef F_SETLKW
|
||||
- { static unsigned extra;
|
||||
- flck.l_type=F_WRLCK;flck.l_whence=SEEK_SET;flck.l_start=tell(oldfdlock);
|
||||
- if(!extra--)
|
||||
- extra=MIN_locks/4,flck.l_len=2,i|=fcntl(oldfdlock,F_SETLK,&flck);
|
||||
- flck.l_len=0;fd|=fcntl(oldfdlock,F_SETLKW,&flck);
|
||||
- }
|
||||
-#else
|
||||
- fd=1;
|
||||
-#endif
|
||||
- if(MSK_lockf&dolock)
|
||||
-#ifdef F_LOCK
|
||||
- oldlockoffset=tell(oldfdlock),fd|=lockf(oldfdlock,F_LOCK,(off_t)0);
|
||||
-#else
|
||||
- fd=1;
|
||||
-#endif
|
||||
- if(MSK_flock&dolock)
|
||||
-#ifdef LOCK_EX
|
||||
- fd|=flock(oldfdlock,LOCK_EX);
|
||||
-#else
|
||||
- fd=1;
|
||||
-#endif
|
||||
- return fd;
|
||||
-}
|
||||
-
|
||||
-int fdunlock()
|
||||
-{ int i;unsigned gobble[GOBBLE];
|
||||
- for(i=GOBBLE;i;gobble[--i]=~(unsigned)0); /* some SunOS libs mess this up */
|
||||
- if(MSK_flock&dolock)
|
||||
-#ifdef LOCK_EX
|
||||
- i|=flock(oldfdlock,LOCK_UN);
|
||||
-#else
|
||||
- i=1;
|
||||
-#endif
|
||||
- if(MSK_lockf&dolock)
|
||||
-#ifdef F_LOCK
|
||||
- { lseek(oldfdlock,oldlockoffset,SEEK_SET);
|
||||
- i|=lockf(oldfdlock,F_LOCK,(off_t)2);i|=lockf(oldfdlock,F_ULOCK,(off_t)0);
|
||||
- }
|
||||
-#else
|
||||
- i=1;
|
||||
-#endif
|
||||
- if(MSK_fcntl&dolock)
|
||||
-#ifdef F_SETLKW
|
||||
- flck.l_type=F_UNLCK,flck.l_len=0,i|=fcntl(oldfdlock,F_SETLK,&flck);
|
||||
-#else
|
||||
- i=1;
|
||||
-#endif
|
||||
- if(!i)
|
||||
- for(i=GOBBLE;i&&gobble[--i]==~(unsigned)0;);
|
||||
- return i;
|
||||
-}
|
||||
HERE
|
||||
|
||||
if $MAKE _autotst >_autotst.rrr 2>&1
|
||||
@@ -1029,6 +1030,10 @@ cat >_autotst.c <<HERE
|
||||
#ifndef NO_COMSAT
|
||||
#include "network.h"
|
||||
#endif
|
||||
+#include <string.h>
|
||||
+#include <unistd.h>
|
||||
+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 +1064,7 @@ echo 'Testing for memmove, strchr, strpbrk, strcspn, strtol, strstr,'
|
||||
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
|
@ -0,0 +1,228 @@
|
||||
diff --git a/src/autoconf b/src/autoconf
|
||||
index 7c46487..deb97c1 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 e3e773a..f93ebf1 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 7befe94..8a711f7 100644
|
||||
--- a/src/network.h
|
||||
+++ b/src/network.h
|
||||
@@ -1,19 +1,13 @@
|
||||
/*$Id$*/
|
||||
|
||||
-#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,99 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 0be77b1..509a105 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -23,7 +23,7 @@ MAN5DIR = $(MANDIR)/man$(MAN5SUFFIX)
|
||||
|
||||
# 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 @@ 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.
|
||||
# If LOCKINGTEST is defined, autoconf will NOT
|
||||
# prompt you to enter additional directories.
|
||||
# See INSTALL for more information about the
|
||||
@@ -65,7 +65,7 @@ LOCKINGTEST=__defaults__
|
||||
# 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 @@ LOCKINGTEST=__defaults__
|
||||
# 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 @@ GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \
|
||||
#-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=
|
||||
|
||||
diff --git a/config.h b/config.h
|
||||
index 4f6b57e..eb348cd 100644
|
||||
--- a/config.h
|
||||
+++ b/config.h
|
||||
@@ -35,6 +35,7 @@
|
||||
*/
|
||||
/*#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:/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
|
||||
@@ -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
|
||||
@@ -98,7 +99,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,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,350 @@
|
||||
# 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.24
|
||||
Release: 7%{?dist}
|
||||
# Dual licensed "gpl-2.0-or-later OR artistic-perl-1.0", but
|
||||
# artistic-perl-1.0 is not allowed, thus dropped from the license
|
||||
# tag as per: https://gitlab.com/fedora/legal/fedora-license-data/-/issues/423
|
||||
License: gpl-2.0-or-later
|
||||
URL: https://github.com/BuGlessRB/%{name}
|
||||
Source0: %{URL}/archive/v%{version}/%{name}-%{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
|
||||
Patch0: procmail-3.24-rhconfig.patch
|
||||
Patch1: procmail-3.15.1-man.patch
|
||||
Patch2: procmail-3.22-truncate.patch
|
||||
Patch3: procmail-3.24-ipv6.patch
|
||||
Patch4: procmail-3.24-coverity-scan-fixes.patch
|
||||
# https://github.com/BuGlessRB/procmail/pull/7
|
||||
Patch5: procmail-3.24-gcc-14-fix.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
|
||||
%autosetup -p1
|
||||
|
||||
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 -p %{SOURCE2} telsas_procmailrc
|
||||
|
||||
|
||||
%files
|
||||
%doc Artistic COPYING FAQ FEATURES HISTORY README KNOWN_BUGS examples telsas_procmailrc
|
||||
|
||||
%{_bindir}/formail
|
||||
%attr(2755,root,mail) %{_bindir}/lockfile
|
||||
%{_bindir}/mailstat
|
||||
%attr(0755,root,mail) %{_bindir}/procmail
|
||||
|
||||
%{_mandir}/man[15]/*
|
||||
|
||||
%changelog
|
||||
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 3.24-7
|
||||
- Rebuilt for MSVSphere 10
|
||||
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3.24-7
|
||||
- Bump release for June 2024 mass rebuild
|
||||
|
||||
* Wed Jan 31 2024 Jaroslav Škarvada <jskarvad@redhat.com> - 3.24-6
|
||||
- Fixed FTBFS with gcc-14
|
||||
Resolves: rhbz#2261530
|
||||
|
||||
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.24-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.24-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Tue Dec 12 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.24-3
|
||||
- Converted license tag to SPDX
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.24-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Thu Jan 12 2023 Jaroslav Škarvada <jskarvad@redhat.com> - 3.24-1
|
||||
- Switched to the github fork
|
||||
- New version
|
||||
Resolves: rhbz#2143702
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-57
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-56
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.22-55
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* 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