15941549 Move procmail from the FOSS consolidation into Userland
authorRich Burridge <rich.burridge@oracle.com>
Sat, 01 Dec 2012 06:37:18 -0800
changeset 1068 0b7caaf07429
parent 1067 0dc41b42eadb
child 1069 415af38929a1
15941549 Move procmail from the FOSS consolidation into Userland
components/meta-packages/history/SUNWprocmail.p5m
components/procmail/Makefile
components/procmail/files/procmailrc
components/procmail/patches/procmail-3.22-getline.patch
components/procmail/patches/procmail-3.22-ipv6.patch
components/procmail/patches/procmail-3.22-rhconfig.patch
components/procmail/patches/procmail-3.22-truncate.patch
components/procmail/patches/procmail_3.22-8.debian.patch
components/procmail/procmail.license
components/procmail/procmail.p5m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWprocmail.p5m	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,32 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# Legacy package information for renamed SUNWprocmail package
+#
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.175.0.0.0.0.0
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=mail/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/Makefile	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,59 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		procmail
+COMPONENT_VERSION=	3.22
+COMPONENT_PROJECT_URL=	http://www.procmail.org
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	\
+    sha256:087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117
+
+# ftp://ftp.procmail.org/pub/procmail/procmail-3.22.tar.gz no longer works.
+COMPONENT_ARCHIVE_URL=	ftp://ftp.ucsb.edu/pub/mirrors/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
+
+include ../../make-rules/prep.mk
+include ../../make-rules/justmake.mk
+include ../../make-rules/ips.mk
+
+COMPONENT_BUILD_ENV += CC="$(CC) -m64"
+
+COMPONENT_INSTALL_ARGS +=	BASENAME=$(PROTOUSRDIR)
+COMPONENT_INSTALL_ARGS +=	MANDIR=$(PROTOUSRSHAREMANDIR)
+
+PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
+
+# common targets
+build:          $(BUILD_64)
+
+install:        $(INSTALL_64)
+
+test:           $(NO_TESTS)
+
+BUILD_PKG_DEPENDENCIES =        $(BUILD_TOOLS)
+
+include ../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/files/procmailrc	Sat Dec 01 06:37:18 2012 -0800
@@ -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: [email protected]"                          #
+################################################################
+
+################################################################
+# I hardly use TO now, but here's an example in case.          #
+################################################################
+
+:0:
+* ^[email protected]
+IN.lynx-dev
+
+###########
+# bugtraq #
+###########
+
+:0:
+* ^Sender:.*Bugtraq List
+IN.bugtraq
+
+#########################
+# gnome CVS commit list #
+#########################
+
+:0:
+* X-BeenThere: [email protected]
+IN.cvs-commits
+
+
+##############
+# gnome-list #
+##############
+
+:0:
+* ^X-BeenThere: [email protected]
+IN.gnome-list
+
+
+##################
+# gnome-doc-list #
+##################
+
+:0:
+* ^X-BeenThere: gnome-doc-li[email protected]
+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: [email protected]
+IN.linuxchix
+
+:0:
+* ^X-BeenThere: [email protected]
+IN.linuxchix
+
+:0:
+* ^X-BeenThere: [email protected]
+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: 
+# * ^[email protected]
+# | formail +1 -ds >> IN.linuxchix
+
+
+##############
+# mutt-users #
+##############
+:0:
+* ^[email protected]
+IN.mutt-users
+
+:0:
+* ^Sender: [email protected]
+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:
+* ^[email protected]
+IN.procmaillist
+
+
+#######################################################
+# Red Hat announce -- very handy for security updates #
+#######################################################
+
+:0:
+* ^X-BeenThere: [email protected]
+IN.rh-announce
+
+:0:
+* ^X-BeenThere: [email protected]
+IN.rh-announce
+
+
+#########################
+# windowmaker: wm-users #
+#########################
+
+:0:
+*^From [email protected]
+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: [email protected]         #
+#	IN.linux-kernel                                        #
+# ...you want this:                                            #
+#	:0:                                                    #
+#	* ^Sender: [email protected]         #
+#	| 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:                                                    #
+# 	* ^[email protected]                                  #
+# 	IN.linuxchix                                           #
+# ...you want this:                                            #
+#	:0:                                                    #
+* 	^[email protected]                             #
+#	| 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                         #
+################################################################
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/patches/procmail-3.22-getline.patch	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,56 @@
+diff -up procmail-3.22/src/fields.c.getline procmail-3.22/src/fields.c
+--- procmail-3.22/src/fields.c.getline	2001-09-11 06:57:08.000000000 +0200
++++ procmail-3.22/src/fields.c	2009-06-30 16:10:36.000000000 +0200
[email protected]@ -110,16 +110,16 @@ void dispfield(p)register const struct f
+ 		    /* try and append one valid field to rdheader from stdin */
+ int readhead P((void))
+ { int idlen;
+-  getline();
++  get_line();
+   if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */
+      return 0;
+   if(idlen==STRLEN(FROM)&&eqFrom_(buf))			/* it's a From_ line */
+    { if(rdheader)
+ 	return 0;			       /* the From_ line was a fake! */
+-     for(;buflast=='>';getline());	    /* gather continued >From_ lines */
++     for(;buflast=='>';get_line());	    /* gather continued >From_ lines */
+    }
+   else
+-     for(;;getline())		      /* get the rest of the continued field */
++     for(;;get_line())		      /* get the rest of the continued field */
+       { switch(buflast)			     /* will this line be continued? */
+ 	 { case ' ':case '\t':				  /* yep, it sure is */
+ 	      continue;
+diff -up procmail-3.22/src/formail.c.getline procmail-3.22/src/formail.c
+--- procmail-3.22/src/formail.c.getline	2009-06-30 16:00:40.000000000 +0200
++++ procmail-3.22/src/formail.c	2009-06-30 16:10:49.000000000 +0200
[email protected]@ -819,7 +819,7 @@ splitit:       { if(!lnl)   /* did the p
+       { if(split)		       /* gobble up the next start separator */
+ 	 { buffilled=0;
+ #ifdef sMAILBOX_SEPARATOR
+-	   getline();buffilled=0;		 /* but only if it's defined */
++	   get_line();buffilled=0;		 /* but only if it's defined */
+ #endif
+ 	   if(buflast!=EOF)					   /* if any */
+ 	      goto splitit;
+diff -up procmail-3.22/src/formisc.c.getline procmail-3.22/src/formisc.c
+--- procmail-3.22/src/formisc.c.getline	2001-06-29 04:20:45.000000000 +0200
++++ procmail-3.22/src/formisc.c	2009-06-30 16:12:20.000000000 +0200
[email protected]@ -115,7 +115,7 @@ void loadchar(c)const int c;		      /* a
+   buf[buffilled++]=c;
+ }
+ 
+-int getline P((void))			   /* read a newline-terminated line */
++int get_line P((void))			   /* read a newline-terminated line */
+ { if(buflast==EOF)			 /* at the end of our Latin already? */
+    { loadchar('\n');					  /* fake empty line */
+      return EOF;					  /* spread the word */
+diff -up procmail-3.22/src/formisc.h.getline procmail-3.22/src/formisc.h
+--- procmail-3.22/src/formisc.h.getline	1999-04-19 08:42:15.000000000 +0200
++++ procmail-3.22/src/formisc.h	2009-06-30 16:10:02.000000000 +0200
[email protected]@ -17,4 +17,4 @@ void
+ char*
+  skipwords P((char*start));
+ int
+- getline P((void));
++ get_line P((void));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/patches/procmail-3.22-ipv6.patch	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,222 @@
+--- procmail-3.22/src/autoconf.ipv6	2006-10-24 14:46:44.000000000 +0200
++++ procmail-3.22/src/autoconf	2006-10-24 14:51:01.000000000 +0200
[email protected]@ -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
[email protected]@ -896,7 +894,7 @@
+  {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');}
[email protected]@ -917,8 +915,6 @@
+   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
[email protected]@ -1048,8 +1044,12 @@
+  {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;}
[email protected]@ -1103,14 +1103,9 @@
+ /* <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'
[email protected]@ -1239,39 +1234,9 @@
+ 	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++);
+--- procmail-3.22/src/network.h.ipv6	1999-04-17 08:18:45.000000000 +0200
++++ procmail-3.22/src/network.h	2006-10-24 14:46:44.000000000 +0200
[email protected]@ -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
+--- procmail-3.22/src/comsat.c.ipv6	2006-10-24 14:46:44.000000000 +0200
++++ procmail-3.22/src/comsat.c	2006-10-24 14:46:44.000000000 +0200
[email protected]@ -27,7 +27,8 @@
+ #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 */
[email protected]@ -62,56 +63,32 @@
+ }
+ 
+ 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;
+ }
[email protected]@ -132,8 +109,8 @@
+    }
+   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);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/patches/procmail-3.22-rhconfig.patch	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,105 @@
+--- procmail-3.22/Makefile.rhconfig	2001-09-10 22:53:09.000000000 -0600
++++ procmail-3.22/Makefile	2003-09-12 07:44:34.000000000 -0600
[email protected]@ -23,7 +23,7 @@
+ 
+ # Uncomment to install compressed man pages (possibly add extra suffix
+ # to the definitions of MAN?DIR and/or MAN?SUFFIX by hand)
+-#MANCOMPRESS = compress
++# MANCOMPRESS = compress
+ 
+ ############################*#
+ # Things that can be made are:
[email protected]@ -55,7 +55,7 @@
+ 
+ LOCKINGTEST=__defaults__
+ 
+-#LOCKINGTEST=/tmp .	# Uncomment and add any directories you see fit.
++LOCKINGTEST=/tmp .	# Uncomment and add any directories you see fit.
+ #			If LOCKINGTEST is defined, autoconf will NOT
+ #			prompt you to enter additional directories.
+ #			See INSTALL for more information about the
[email protected]@ -65,7 +65,7 @@
+ # Only edit below this line if you *think* you know what you are doing #
+ ########################################################################
+ 
+-#LOCKINGTEST=100	# Uncomment (and change) if you think you know
++LOCKINGTEST=100	# Uncomment (and change) if you think you know
+ #			it better than the autoconf lockingtests.
+ #			This will cause the lockingtests to be hotwired.
+ #			100	to enable fcntl()
[email protected]@ -74,8 +74,8 @@
+ #			Or them together to get the desired combination.
+ 
+ # Optional system libraries we search for
+-SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lnsl -lsun \
+- -lgen -lsockdns -ldl
++SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lsun \
++ -lgen -lsockdns
+ #			-lresolv	# not really needed, is it?
+ 
+ # Informal list of directories where we look for the libraries in SEARCHLIBS
[email protected]@ -86,8 +86,8 @@
+  #-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized
+ 
+ # The place to put your favourite extra cc flag
+-CFLAGS0 = -O #$(GCC_WARNINGS)
+-LDFLAGS0= -s
++CFLAGS0 = $(RPM_OPT_FLAGS) #$(GCC_WARNINGS)
++LDFLAGS0= 
+ # Read my libs :-)
+ LIBS=
+ 
+--- procmail-3.22/config.h.rhconfig	2001-09-10 22:53:50.000000000 -0600
++++ procmail-3.22/config.h	2003-09-12 07:41:40.000000000 -0600
[email protected]@ -35,7 +35,8 @@
+  */
+ /*#define DEFSPATH	"PATH=/bin:/usr/bin"			/* */
+ /*#define DEFPATH	"PATH=$HOME/bin:/bin:/usr/bin"		/* */
+-
++#define DEFPATH	"PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin"		/* */
++ 
+ /* every environment variable appearing in PRESTENV will be set or wiped
+  * out of the environment (variables without an '=' sign will be thrown
+  * out), e.g. you could define PRESTENV as follows:
[email protected]@ -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
[email protected]@ -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
[email protected]@ -91,14 +92,14 @@
+ 	restriction does not apply to the /etc/procmailrc and
+ 	/etc/procmailrcs files) */
+ 
+-/*#define NO_NFS_ATIME_HACK	/* uncomment if you're definitely not using
++#define NO_NFS_ATIME_HACK	/* uncomment if you're definitely not using
+ 				   NFS mounted filesystems and can't afford
+ 	procmail to sleep for 1 sec. before writing to an empty regular
+ 	mailbox.  This lets programs correctly judge whether there is unread
+ 	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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/patches/procmail-3.22-truncate.patch	Sat Dec 01 06:37:18 2012 -0800
@@ -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
[email protected]@ -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 */
[email protected]@ -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");
[email protected]@ -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;
+ }
[email protected]@ -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;
+ 	 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/patches/procmail_3.22-8.debian.patch	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,950 @@
+--- procmail-3.22.orig/examples/advanced
++++ procmail-3.22/examples/advanced
[email protected]@ -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).
[email protected]@ -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
[email protected]@ -166,7 +166,8 @@
+ accept an unlimited number of [email protected][email protected]
+ For some advanced usage of this option you should look in the
+ .B EXAMPLES
+-section [email protected]@.SH ARGUMENTS
++section [email protected]@
++.SH ARGUMENTS
+ Any arguments containing an '=' are considered to be environment variable
+ assignments, they will
+ .I all
[email protected]@ -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/@[email protected] file (in which case the following script could
[email protected]@ -754,7 +764,7 @@
+ .SS "A sample small @[email protected]:"
+ .na
+ .nf
+-PATH=/bin:/usr/bin:@[email protected]
++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
[email protected]@ -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 `\[email protected][email protected]\fP' it will be substituted by
+ .na
+--- procmail-3.22.orig/src/comsat.c
++++ procmail-3.22/src/comsat.c
[email protected]@ -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 */
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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? */
+    }
[email protected]@ -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");
+ 	 }
[email protected]@ -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);
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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;
[email protected]@ -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);
[email protected]@ -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
[email protected]@ -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
[email protected]@ -233,7 +233,7 @@
+  \[email protected]@\1and\1.BR \[email protected]@ .\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
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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 [email protected]#$%^&* POSIX semantics for
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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 <[email protected]>  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 <[email protected]>  Mon, 10 Mar 2003 00:09:20 +0100
++
++procmail (3.22-6) unstable; urgency=low
++
++  * Standards-Version: 3.5.8.
++
++ -- Santiago Vila <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  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 <[email protected]>  Sat, 21 Dec 1996 23:32:11 +0100
+--- procmail-3.22.orig/debian/control
++++ procmail-3.22/debian/control
[email protected]@ -0,0 +1,18 @@
++Source: procmail
++Section: mail
++Priority: standard
++Maintainer: Santiago Vila <[email protected]>
++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
[email protected]@ -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 <[email protected]>.
++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 <[email protected]>,
++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
[email protected]@ -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 <[email protected]>
++for the Debian GNU/Linux distribution (but may be used by others).
+--- procmail-3.22.orig/debian/QuickStart
++++ procmail-3.22/debian/QuickStart
[email protected]@ -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:
++
[email protected]
[email protected]
++
++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:.*[email protected]
++linux-kernel
++
++:0:
++* ^Resent-Sender:.*[email protected]
++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 <[email protected]>
+--- procmail-3.22.orig/debian/README.Maildir
++++ procmail-3.22/debian/README.Maildir
[email protected]@ -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.*[email protected]
++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
[email protected]@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/procmail.license	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,440 @@
+-------------------
+- procmail - 3.22 -
+-------------------
+
+Oracle Internal Tracking Number 9003
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+		       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.	 By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.	This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.	Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.	 The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.	 However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.	 These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.	 If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.	For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.	If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.	For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>	<name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program 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 the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+------------------------------------------------------------------ 
+
+	Copyright (c) 1991-1999, S.R. van den Berg, The Netherlands	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1999-2001, Philip Guenther, The United States	*
+							of America	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 2000-2001, Philip Guenther, The United States	*
+	Collection of standard library substitute routines		*
+									*
+	Copyright (c) 1990-2001, S.R. van den Berg, The Netherlands	*
+	Collection of NFS resistant exclusive creat routines		*
+	The fault-tolerant system-interface				*
+									*
+	Copyright (c) 1990-1997, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1999-2001, Philip Guenther, The United States	*
+							of America	*
+
+--------------------------------------------------------------------
+
+									*
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1998-2001, Philip Guenther, The United States	*
+									*
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1999-2001, Philip Guenther, The United States	*
+						of America		*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1997-2001, Philip Guenther, The United States	*
+									*
+	Copyright (c) 1993-1997, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1999-2001, Philip Guenther, The United States	*
+							of America	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1996-1997, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1999-2001, Philip Guenther, The United States	*
+						of America		*
+--------------------------------------------------------------------
+
+	Copyright (c) 1994-1997, S.R. van den Berg, The Netherlands	*
+	Some common routines to all programs but procmail		*
+									*
+	Copyright (c) 1993-1997, S.R. van den Berg, The Netherlands	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1999-2001, Philip Guenther, The United States	*
+							of America	*
+
+--------------------------------------------------------------------
+	Copyright (c) 1990-2000, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1999-2001, Philip Guenther, The United States	*
+							of America	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 2000, Philip Guenther, The United States		*
+							of America	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1990-2000, S.R. van den Berg, The Netherlands	*
+
+--------------------------------------------------------------------
+
+	Copyright (c) 1997-2001, Philip Guenther, The United States	*
+	Collection of library-worthy routines				*
+									*
+	Copyright (c) 1990-1998, S.R. van den Berg, The Netherlands	*
+	Whatever is needed for (un)locking files in various ways	*
+									*
+	Copyright (c) 1990-1997, S.R. van den Berg, The Netherlands	*
+	Copyright (c) 1998-2001, Philip Guenther, The United States	*
+							of America	*
+
+--------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/procmail.p5m	Sat Dec 01 06:37:18 2012 -0800
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+
+# Get examples from component source directory.
+<transform file path=usr/share/doc/procmail/examples/(.+$) -> set action.hash examples/%<1>>
+
+set name=pkg.fmri \
+    value=pkg:/mail/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Mail processing program"
+set name=pkg.description \
+    value="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."
+set name=info.classification \
+    value=org.opensolaris.category.2008:Applications/Internet
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2000/488
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+dir  path=usr
+dir  path=usr/bin
+file path=usr/bin/formail
+file path=usr/bin/lockfile
+file path=usr/bin/mailstat
+file path=usr/bin/procmail
+dir  path=usr/share
+dir  path=usr/share/doc
+dir  path=usr/share/doc/procmail
+dir  path=usr/share/doc/procmail/examples
+file path=usr/share/doc/procmail/examples/1procmailrc
+file path=usr/share/doc/procmail/examples/1rmail
+file path=usr/share/doc/procmail/examples/2procmailrc
+file path=usr/share/doc/procmail/examples/2rmail
+file path=usr/share/doc/procmail/examples/3procmailrc
+file path=usr/share/doc/procmail/examples/3rmail
+file path=usr/share/doc/procmail/examples/advanced
+file path=usr/share/doc/procmail/examples/dirname
+file path=usr/share/doc/procmail/examples/forward
+file path=usr/share/doc/procmail/examples/local_procmail_lmtp.m4
+file path=usr/share/doc/procmail/examples/mailstat
+file path=usr/share/doc/procmail/examples/procmail-rpm.spec
+file procmailrc path=usr/share/doc/procmail/telsas_procmailrc
+dir  path=usr/share/man
+dir  path=usr/share/man/man1
+file path=usr/share/man/man1/formail.1
+file path=usr/share/man/man1/lockfile.1
+file debian/mailstat.1 path=usr/share/man/man1/mailstat.1
+file path=usr/share/man/man1/procmail.1
+dir  path=usr/share/man/man5
+file path=usr/share/man/man5/procmailex.5
+file path=usr/share/man/man5/procmailrc.5
+file path=usr/share/man/man5/procmailsc.5
+legacy pkg=SUNWprocmail \
+    desc="Procmail Mail Processing Program" \
+    name="Procmail Mail Processing Program"
+license procmail.license license="GPLv2+ or Artistic"
+depend type=require fmri=shell/ksh
+# procmail was previously in the 'desktop' consolidation. This optional
+# dependency is here to facilitate the safe transfer of the package 
+# to the 'userland' consolidation.
+depend type=optional fmri=consolidation/desktop/[email protected]