diff options
Diffstat (limited to 'mail-filter/milter-regex')
11 files changed, 373 insertions, 0 deletions
diff --git a/mail-filter/milter-regex/Manifest b/mail-filter/milter-regex/Manifest new file mode 100644 index 000000000000..f95be296370a --- /dev/null +++ b/mail-filter/milter-regex/Manifest @@ -0,0 +1 @@ +DIST milter-regex-1.9.tar.gz 19880 SHA256 6a708b0ff31d9f6db0e5b96915354c15f65ca09a730c599970b37e30699b18e4 SHA512 55cb97eba01220eb57c29498a090152c05d259abbe6f771e47a67499e7c2a1d4121ec9d0bce84cc8b6490bcd20dea8eaaba753e61f1ce9002edd8440b13f7148 WHIRLPOOL a8c1d75c016f32ec357e80498b7de5a89da50cf8a32bcbfd9e0467c829870c468beb6b12f138a352f518ff26a3f95c83ed25892670bf1a7f76f2b728cf626f30 diff --git a/mail-filter/milter-regex/files/milter-regex-1.7-gentoo.patch b/mail-filter/milter-regex/files/milter-regex-1.7-gentoo.patch new file mode 100644 index 000000000000..bd5d926ce218 --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-1.7-gentoo.patch @@ -0,0 +1,52 @@ +diff -Nru milter-regex-1.7.orig/Makefile.linux milter-regex-1.7/Makefile.linux +--- milter-regex-1.7.orig/Makefile.linux 2007-01-11 17:49:52.000000000 +0200 ++++ milter-regex-1.7/Makefile.linux 2008-02-18 10:17:35.000000000 +0200 +@@ -6,13 +6,12 @@ + # see milter-regex.init for an init script for RedHat/Fedora + # (contributed by admin@2ka.mipt.ru) + +-CFLAGS= -g +-LDFLAGS= -lmilter -lpthread ++LIBS= -lmilter -lpthread + + all: milter-regex milter-regex.cat8 + + milter-regex: milter-regex.o eval.o strlcpy.o y.tab.o +- gcc -o milter-regex milter-regex.o eval.o strlcpy.o y.tab.o $(LDFLAGS) ++ gcc $(LDFLAGS) -o milter-regex milter-regex.o eval.o strlcpy.o y.tab.o $(LIBS) + + milter-regex.o: milter-regex.c eval.h + gcc $(CFLAGS) -c milter-regex.c +@@ -27,7 +26,7 @@ + gcc $(CFLAGS) -c y.tab.c + + y.tab.c: parse.y +- yacc -d parse.y ++ yacc -d -y parse.y + + milter-regex.cat8: milter-regex.8 + nroff -Tascii -mandoc milter-regex.8 > milter-regex.cat8 +diff -Nru milter-regex-1.7.orig/parse.y milter-regex-1.7/parse.y +--- milter-regex-1.7.orig/parse.y 2007-01-11 17:49:52.000000000 +0200 ++++ milter-regex-1.7/parse.y 2008-02-18 10:16:02.000000000 +0200 +@@ -71,6 +71,7 @@ + } v; + int lineno; + } YYSTYPE; ++#define YYSTYPE_IS_DECLARED 1 + + %} + +@@ -481,9 +482,9 @@ + *r = rs; + return (0); + } +-#ifdef __linux__ +- (void)&yyrcsid; /* warning about yyrcsid declared but unused */ +-#endif ++//#ifdef __linux__ ++// (void)&yyrcsid; /* warning about yyrcsid declared but unused */ ++//#endif + } + + static int diff --git a/mail-filter/milter-regex/files/milter-regex-1.7-rules.patch b/mail-filter/milter-regex/files/milter-regex-1.7-rules.patch new file mode 100644 index 000000000000..2e85be4c28b2 --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-1.7-rules.patch @@ -0,0 +1,11 @@ +--- rules~ 2007-01-11 08:49:52.000000000 -0700 ++++ rules 2008-01-28 11:52:49.629153456 -0700 +@@ -21,7 +21,7 @@ + header /From/ /ebay\.com/i + header /From/ /sabresfc11@aol\.com/i + header /From/ /ictp\.ch/i +-header /From/ /(sgi.org.uk/ei ++header /From/ /(sgi.org.uk)/ei + header /From/ /tera-byte/i + header /From/ /google\.com/i + header /Subject/ /item/i diff --git a/mail-filter/milter-regex/files/milter-regex-1.7-yacc.patch b/mail-filter/milter-regex/files/milter-regex-1.7-yacc.patch new file mode 100644 index 000000000000..880f05d1fa7b --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-1.7-yacc.patch @@ -0,0 +1,12 @@ +diff -Nru milter-regex-1.7.orig/Makefile.linux milter-regex-1.7/Makefile.linux +--- milter-regex-1.7.orig/Makefile.linux 2008-12-11 20:54:05.000000000 +0000 ++++ milter-regex-1.7/Makefile.linux 2008-12-11 20:54:22.000000000 +0000 +@@ -26,7 +26,7 @@ + gcc $(CFLAGS) -c y.tab.c + + y.tab.c: parse.y +- yacc -d -y parse.y ++ yacc -d parse.y + + milter-regex.cat8: milter-regex.8 + nroff -Tascii -mandoc milter-regex.8 > milter-regex.cat8 diff --git a/mail-filter/milter-regex/files/milter-regex-1.8-gentoo.patch b/mail-filter/milter-regex/files/milter-regex-1.8-gentoo.patch new file mode 100644 index 000000000000..27caafb654c3 --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-1.8-gentoo.patch @@ -0,0 +1,129 @@ +diff -Nru milter-regex-1.8.orig/Makefile.linux milter-regex-1.8/Makefile.linux +--- milter-regex-1.8.orig/Makefile.linux 2007-01-11 16:49:52.000000000 +0100 ++++ milter-regex-1.8/Makefile.linux 2010-09-24 22:33:19.000000000 +0200 +@@ -6,13 +6,12 @@ + # see milter-regex.init for an init script for RedHat/Fedora + # (contributed by admin@2ka.mipt.ru) + +-CFLAGS= -g +-LDFLAGS= -lmilter -lpthread ++LIBS= -lmilter -lpthread + + all: milter-regex milter-regex.cat8 + +-milter-regex: milter-regex.o eval.o strlcpy.o y.tab.o +- gcc -o milter-regex milter-regex.o eval.o strlcpy.o y.tab.o $(LDFLAGS) ++milter-regex: milter-regex.o eval.o strlcpy.o strlcat.o y.tab.o ++ gcc $(LDFLAGS) -o milter-regex milter-regex.o eval.o strlcpy.o strlcat.o y.tab.o $(LIBS) + + milter-regex.o: milter-regex.c eval.h + gcc $(CFLAGS) -c milter-regex.c +@@ -22,7 +21,10 @@ + + strlcpy.o: strlcpy.c + gcc $(CFLAGS) -c strlcpy.c +- ++ ++strlcat.o: strlcat.c ++ gcc $(CFLAGS) -c strlcat.c ++ + y.tab.o: y.tab.c + gcc $(CFLAGS) -c y.tab.c + +diff -Nru milter-regex-1.8.orig/parse.y milter-regex-1.8/parse.y +--- milter-regex-1.8.orig/parse.y 2007-01-11 16:49:52.000000000 +0100 ++++ milter-regex-1.8/parse.y 2010-09-24 22:33:19.000000000 +0200 +@@ -71,6 +71,7 @@ + } v; + int lineno; + } YYSTYPE; ++#define YYSTYPE_IS_DECLARED 1 + + %} + +@@ -481,9 +482,9 @@ + *r = rs; + return (0); + } +-#ifdef __linux__ +- (void)&yyrcsid; /* warning about yyrcsid declared but unused */ +-#endif ++//#ifdef __linux__ ++// (void)&yyrcsid; /* warning about yyrcsid declared but unused */ ++//#endif + } + + static int +diff -Nru milter-regex-1.8.orig/strlcat.c milter-regex-1.8/strlcat.c +--- milter-regex-1.8.orig/strlcat.c 1970-01-01 01:00:00.000000000 +0100 ++++ milter-regex-1.8/strlcat.c 2010-09-24 22:34:31.000000000 +0200 +@@ -0,0 +1,69 @@ ++/* $OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $ */ ++ ++/*- ++ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ++ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ++ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include <sys/types.h> ++#include <string.h> ++ ++/* ++ * Appends src to string dst of size siz (unlike strncat, siz is the ++ * full size of dst, not space left). At most siz-1 characters ++ * will be copied. Always NUL terminates (unless siz <= strlen(dst)). ++ * Returns strlen(src) + MIN(siz, strlen(initial dst)). ++ * If retval >= siz, truncation occurred. ++ */ ++size_t ++strlcat(dst, src, siz) ++ char *dst; ++ const char *src; ++ size_t siz; ++{ ++ char *d = dst; ++ const char *s = src; ++ size_t n = siz; ++ size_t dlen; ++ ++ /* Find the end of dst and adjust bytes left but don't go past end */ ++ while (n-- != 0 && *d != '\0') ++ d++; ++ dlen = d - dst; ++ n = siz - dlen; ++ ++ if (n == 0) ++ return(dlen + strlen(s)); ++ while (*s != '\0') { ++ if (n != 1) { ++ *d++ = *s; ++ n--; ++ } ++ s++; ++ } ++ *d = '\0'; ++ ++ return(dlen + (s - src)); /* count does not include NUL */ ++} diff --git a/mail-filter/milter-regex/files/milter-regex-1.8-rules.patch b/mail-filter/milter-regex/files/milter-regex-1.8-rules.patch new file mode 100644 index 000000000000..7103e7e6c59e --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-1.8-rules.patch @@ -0,0 +1,12 @@ +diff -Nru milter-regex-1.8.orig/rules milter-regex-1.8/rules +--- milter-regex-1.8.orig/rules 2007-01-11 16:49:52.000000000 +0100 ++++ milter-regex-1.8/rules 2010-09-24 22:11:46.000000000 +0200 +@@ -21,7 +21,7 @@ + header /From/ /ebay\.com/i + header /From/ /sabresfc11@aol\.com/i + header /From/ /ictp\.ch/i +-header /From/ /(sgi.org.uk/ei ++header /From/ /(sgi.org.uk)/ei + header /From/ /tera-byte/i + header /From/ /google\.com/i + header /Subject/ /item/i diff --git a/mail-filter/milter-regex/files/milter-regex-1.9-gentoo.patch b/mail-filter/milter-regex/files/milter-regex-1.9-gentoo.patch new file mode 100644 index 000000000000..38ba17af0d88 --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-1.9-gentoo.patch @@ -0,0 +1,38 @@ +--- Makefile.linux 2011-07-16 16:51:34.000000000 +0300 ++++ Makefile.linux 2012-08-05 18:15:30.906378968 +0300 +@@ -6,28 +6,27 @@ + # see milter-regex.init for an init script for RedHat/Fedora + # (contributed by admin@2ka.mipt.ru) + +-CFLAGS= -g +-LDFLAGS= -L/usr/lib/libmilter -lmilter -lpthread ++LIBS= -lmilter -lpthread + + all: milter-regex milter-regex.cat8 + + milter-regex: milter-regex.o eval.o strlcat.o strlcpy.o y.tab.o +- gcc -o milter-regex milter-regex.o eval.o strlcat.o strlcpy.o y.tab.o $(LDFLAGS) ++ $(CC) $(LDFLAGS) -o milter-regex milter-regex.o eval.o strlcat.o strlcpy.o y.tab.o $(LIBS) + + milter-regex.o: milter-regex.c eval.h +- gcc $(CFLAGS) -c milter-regex.c ++ $(CC) $(CFLAGS) -c milter-regex.c + + eval.o: eval.c eval.h +- gcc $(CFLAGS) -c eval.c ++ $(CC) $(CFLAGS) -c eval.c + + strlcat.o: strlcat.c +- gcc $(CFLAGS) -c strlcat.c ++ $(CC) $(CFLAGS) -c strlcat.c + + strlcpy.o: strlcpy.c +- gcc $(CFLAGS) -c strlcpy.c ++ $(CC) $(CFLAGS) -c strlcpy.c + + y.tab.o: y.tab.c +- gcc $(CFLAGS) -c y.tab.c ++ $(CC) $(CFLAGS) -c y.tab.c + + y.tab.c: parse.y + yacc -d parse.y diff --git a/mail-filter/milter-regex/files/milter-regex-conf b/mail-filter/milter-regex/files/milter-regex-conf new file mode 100644 index 000000000000..51846a214e4e --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-conf @@ -0,0 +1,8 @@ +# Daemon user +USER="milter" + +# The location of the Unix socket +SOCKET="/var/run/milter-regex/milter-regex.sock" + +# Regular expression rules +CONFIG="/etc/mail/milter-regex.conf" diff --git a/mail-filter/milter-regex/files/milter-regex-init b/mail-filter/milter-regex/files/milter-regex-init new file mode 100644 index 000000000000..e032d08f09df --- /dev/null +++ b/mail-filter/milter-regex/files/milter-regex-init @@ -0,0 +1,42 @@ +#!/sbin/runscript +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +depend() { + use dns logger net +} + +check_cfg() { + if [ -z "${USER}" ] ; then + eerror "USER is unset" + return 1 + fi + + if [ ! -s "${CONFIG}" ]; then + eerror "configuration file ${CONFIG} doesn't seem to be valid" + return 1 + fi +} + +start() { + check_cfg || return 1 + + # Remove stalled Unix socket if no other process is using it + if [ -S "${SOCKET}" ] && ! fuser -s "${SOCKET}"; then + rm "${SOCKET}" + fi + + ebegin "Starting milter-regex" + start-stop-daemon --start --exec /usr/bin/milter-regex -- \ + -u "${USER}" -p "${SOCKET}" -c "${CONFIG}" + EXIT=$? + [ $? == 0 ] && chmod a+rw "${SOCKET}" + eend ${EXIT} +} + +stop() { + ebegin "Stopping milter-regex" + start-stop-daemon --stop --exec /usr/bin/milter-regex + eend $? +} diff --git a/mail-filter/milter-regex/metadata.xml b/mail-filter/milter-regex/metadata.xml new file mode 100644 index 000000000000..b3efcc51b39c --- /dev/null +++ b/mail-filter/milter-regex/metadata.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>net-mail</herd> +<longdescription>milter-regex is a very simple milter-based plugin that rejects or discards messages matching +regular expressions. It doesn't add much processing overhead, so even a busy mail server can afford to run it.</longdescription> +</pkgmetadata> diff --git a/mail-filter/milter-regex/milter-regex-1.9.ebuild b/mail-filter/milter-regex/milter-regex-1.9.ebuild new file mode 100644 index 000000000000..df9ba89662ed --- /dev/null +++ b/mail-filter/milter-regex/milter-regex-1.9.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +inherit eutils user + +DESCRIPTION="A milter-based regular expression filter" +HOMEPAGE="http://www.benzedrine.cx/milter-regex.html" +SRC_URI="http://www.benzedrine.cx/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +RDEPEND="|| ( mail-filter/libmilter mail-mta/sendmail )" +DEPEND="${RDEPEND} + virtual/yacc" + +src_prepare() { + epatch "${FILESDIR}"/${P}-gentoo.patch +} + +src_compile() { + emake CC="$(tc-getCC)" -f Makefile.linux milter-regex +} + +src_install() { + dobin milter-regex + + keepdir /var/run/milter-regex + + insinto /etc/mail + newins rules milter-regex.conf + + newconfd "${FILESDIR}"/milter-regex-conf milter-regex + newinitd "${FILESDIR}"/milter-regex-init milter-regex + + doman *.8 +} + +pkg_preinst() { + enewgroup milter + # mail-milter/spamass-milter creates milter user with this home directory + # For consistency reasons, milter user must be created here with this home directory + # even though this package doesn't need a home directory for this user (#280571) + enewuser milter -1 -1 /var/lib/milter milter + + fowners milter:milter /var/run/milter-regex +} + +pkg_postinst() { + elog "If you're using Sendmail, you'll need to add this to your sendmail.mc:" + elog " INPUT_MAIL_FILTER(\`milter-regex', \`S=unix:/var/run/milter-regex/milter-regex.sock, T=S:30s;R:2m')" + echo + elog "If you are using Postfix, you'll need to add this to your main.cf:" + elog " smtpd_milters = unix:/var/run/milter-regex/milter-regex.sock" + elog " non_smtpd_milters = unix:/var/run/milter-regex/milter-regex.sock" +} |