Update mimedefang to 3.3. Main changes from 2.78: * add is_public_ip6_address to check if an ipv6 address is local * add md_authres method to generate a basic Authentication-Results header for the message * add md_arc_sign method to sign email messages with DKIM ARC signatures * add md_dkim_verify method to verify DKIM signatures * add md_dkim_sign method to sign email messages with DKIM signatures * add anonymize_uri to remove utm_* parameters from uris. * split mimedefang.pl code in Perl modules * add re_match_in_7zip_directory to check for files inside 7zip archives * fallback to plaintext when md_check_against_smtp_server fails SSL connection for unknown reasons * add experimental support to scan emails with Rspamd antispam * Obtain the Queue-ID as early as possible in the SMTP session. Requires the "-y" command-line option to mimedefang. * mimedefang.pl: Add support for a configuration file to separate data from code * mimedefang.pl: Add support to scan messages for viruses on a remote Clamav server using clamdscan client. * mimedefang.pl: Add re_match_in_rar_directory function to match unwanted file names extensions inside a rar archive file. * mimedefang.pl: Added TLS support to md_check_against_smtp_server * mimedefang-multiplexor: Make "workerinfo nnn" show how long ago the last state change was for a given worker. * mimedefang.pl: Do not add a Message-ID: header when handing a message to SpamAssassin if the original message lacks such a header. * Add a new -V maxLifetime option to mimedefang-multiplexor that terminates worker processes after maxLifetime seconds (approximately). This is in addition to the -r maxRequests option. * Log the lifetime and number of requests processed when we terminate a worker process. * Make mimedefang and mimedefang-multiplexor write their PID files as root to avoid an unprivileged user tampering with the pidfiles. Thanks to Michael Orlitzky for pointing this issue out. * mimedefang.pl: Add an extra level of subdirectories in the quarantine to avoid 32K subdirectory limit on ext3. Idea by Kevin McGrail. * Add the --data-dump option to scripts/mimedefang-util And various bug fixes and minor improvements. pkgsrc changes: make the rc.d script use the new -o option and move the pid files to $VARBASE/run/, keeping the lock and socket files in $VARBASE/spool/MIMEdefang/diff -r1.3 -r1.4 pkgsrc/mail/mimedefang/MESSAGE
(bouyer)
@@ -1,15 +1,20 @@ | @@ -1,15 +1,20 @@ | |||
1 | =========================================================================== | 1 | =========================================================================== | |
2 | $NetBSD: MESSAGE,v 1.3 2005/09/28 14:15:49 rillig Exp $ | 2 | $NetBSD: MESSAGE,v 1.4 2023/02/28 11:33:03 bouyer Exp $ | |
3 | ||||
4 | Starting with version 2.81 mimedefang and mimedefang-multiplexor write their | |||
5 | PID files as root. You should move your PID files out of the MIMEDefang spool | |||
6 | directory and into a standard root-owned directory like /var/run. | |||
7 | Use the -o option to create lock files in the spool directory. | |||
3 | 8 | |||
4 | From version 2.52 mimedefang.pl doesn't detect and load Perl modules until | 9 | From version 2.52 mimedefang.pl doesn't detect and load Perl modules until | |
5 | the detect_and_load_perl_modules() function is called. | 10 | the detect_and_load_perl_modules() function is called. | |
6 | You *MUST* call detect_and_load_perl_modules() inside your filter before | 11 | You *MUST* call detect_and_load_perl_modules() inside your filter before | |
7 | you can rely on the %Features hash being set correctly, and before you can | 12 | you can rely on the %Features hash being set correctly, and before you can | |
8 | rely on SpamAssassin being loaded!!! | 13 | rely on SpamAssassin being loaded!!! | |
9 | 14 | |||
10 | In version 2.44 the location of the sa-mimedefang.cf file moved from | 15 | In version 2.44 the location of the sa-mimedefang.cf file moved from | |
11 | ${PKG_SYSCONFDIR}/spamassassin/sa-mimedefang.cf to | 16 | ${PKG_SYSCONFDIR}/spamassassin/sa-mimedefang.cf to | |
12 | ${PKG_SYSCONFDIR}/sa-mimedefang.cf | 17 | ${PKG_SYSCONFDIR}/sa-mimedefang.cf | |
13 | 18 | |||
14 | From version 2.43 filter_relay no longer has access to the HELO argument, | 19 | From version 2.43 filter_relay no longer has access to the HELO argument, | |
15 | nor does the MIMEDefang spool directory exist when filter_relay is called. | 20 | nor does the MIMEDefang spool directory exist when filter_relay is called. |
@@ -1,31 +1,29 @@ | @@ -1,31 +1,29 @@ | |||
1 | # $NetBSD: Makefile,v 1.70 2022/06/28 11:34:23 wiz Exp $ | 1 | # $NetBSD: Makefile,v 1.71 2023/02/28 11:33:03 bouyer Exp $ | |
2 | 2 | |||
3 | DISTNAME= mimedefang-2.78 | 3 | DISTNAME= mimedefang-3.3 | |
4 | PKGREVISION= 8 | |||
5 | CATEGORIES= mail | 4 | CATEGORIES= mail | |
6 | MASTER_SITES= http://www.mimedefang.org/static/ | 5 | MASTER_SITES= https://mimedefang.org/releases/ | |
7 | 6 | |||
8 | MAINTAINER= pettai@NetBSD.org | 7 | MAINTAINER= pettai@NetBSD.org | |
9 | HOMEPAGE= https://www.mimedefang.org/ | 8 | HOMEPAGE= https://www.mimedefang.org/ | |
10 | COMMENT= To inspect/modify e-mail as it passes through your mail relay | 9 | COMMENT= To inspect/modify e-mail as it passes through your mail relay | |
11 | LICENSE= gnu-gpl-v2 | 10 | LICENSE= gnu-gpl-v2 | |
12 | 11 | |||
13 | DEPENDS+= p5-Digest-SHA1>=2.00:../../security/p5-Digest-SHA1 | 12 | DEPENDS+= p5-Digest-SHA1>=2.00:../../security/p5-Digest-SHA1 | |
14 | DEPENDS+= p5-HTML-Parser>=3.26:../../www/p5-HTML-Parser | 13 | DEPENDS+= p5-HTML-Parser>=3.26:../../www/p5-HTML-Parser | |
15 | DEPENDS+= p5-HTML-Tagset>=3.03:../../www/p5-HTML-Tagset | 14 | DEPENDS+= p5-HTML-Tagset>=3.03:../../www/p5-HTML-Tagset | |
16 | DEPENDS+= p5-IO-stringy>=2.108:../../devel/p5-IO-stringy | 15 | DEPENDS+= p5-IO-stringy>=2.108:../../devel/p5-IO-stringy | |
17 | DEPENDS+= p5-MailTools>=1.44:../../mail/p5-MailTools | 16 | DEPENDS+= p5-MailTools>=1.44:../../mail/p5-MailTools | |
18 | #DEPENDS+= {perl>=5.8.6,p5-MIME-Base64>=3.03}:../../converters/p5-MIME-Base64 | |||
19 | DEPENDS+= p5-MIME-tools>=5.413:../../mail/p5-MIME-tools | 17 | DEPENDS+= p5-MIME-tools>=5.413:../../mail/p5-MIME-tools | |
20 | DEPENDS+= spamassassin>=2.31:../../mail/spamassassin | 18 | DEPENDS+= spamassassin>=2.31:../../mail/spamassassin | |
21 | 19 | |||
22 | .include "../../mk/bsd.prefs.mk" | 20 | .include "../../mk/bsd.prefs.mk" | |
23 | 21 | |||
24 | USE_TOOLS+= perl:run | 22 | USE_TOOLS+= perl:run | |
25 | GNU_CONFIGURE= YES | 23 | GNU_CONFIGURE= YES | |
26 | PKG_SYSCONFSUBDIR?= mimedefang | 24 | PKG_SYSCONFSUBDIR?= mimedefang | |
27 | 25 | |||
28 | DEFANG_SPOOLDIR?= ${VARBASE}/spool/MIMEDefang | 26 | DEFANG_SPOOLDIR?= ${VARBASE}/spool/MIMEDefang | |
29 | DEFANG_USER?= defang | 27 | DEFANG_USER?= defang | |
30 | DEFANG_GROUP?= defang | 28 | DEFANG_GROUP?= defang | |
31 | 29 | |||
@@ -61,36 +59,25 @@ CONFIGURE_ARGS+= --with-user=${DEFANG_US | @@ -61,36 +59,25 @@ CONFIGURE_ARGS+= --with-user=${DEFANG_US | |||
61 | # CONFIGURE_ARGS+= --disable-anti-virus | 59 | # CONFIGURE_ARGS+= --disable-anti-virus | |
62 | # list the paths where they _would_ be installed, so they | 60 | # list the paths where they _would_ be installed, so they | |
63 | # can be found at runtime. -- they have to be listed | 61 | # can be found at runtime. -- they have to be listed | |
64 | # in the environment, as the --enable-<> flags don't work | 62 | # in the environment, as the --enable-<> flags don't work | |
65 | CONFIGURE_ENV+= CLAMD=${PREFIX}/sbin/clamd | 63 | CONFIGURE_ENV+= CLAMD=${PREFIX}/sbin/clamd | |
66 | CONFIGURE_ENV+= CLAMSCAN=${PREFIX}/bin/clamscan | 64 | CONFIGURE_ENV+= CLAMSCAN=${PREFIX}/bin/clamscan | |
67 | CONFIGURE_ENV+= FPROT=${PREFIX}/bin/f-prot | 65 | CONFIGURE_ENV+= FPROT=${PREFIX}/bin/f-prot | |
68 | CONFIGURE_ENV+= NAI=${PREFIX}/bin/uvscan | 66 | CONFIGURE_ENV+= NAI=${PREFIX}/bin/uvscan | |
69 | 67 | |||
70 | # Doesn't work with pth | 68 | # Doesn't work with pth | |
71 | PTHREAD_OPTS+= require native | 69 | PTHREAD_OPTS+= require native | |
72 | 70 | |||
73 | INSTALLATION_DIRS= bin ${PKGMANDIR}/man5 ${PKGMANDIR}/man7 ${PKGMANDIR}/man8 | 71 | INSTALLATION_DIRS= bin ${PKGMANDIR}/man5 ${PKGMANDIR}/man7 ${PKGMANDIR}/man8 | |
74 | do-install: | 72 | ||
73 | post-install: | |||
75 | ${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR} | 74 | ${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR} | |
76 | ${INSTALL_DATA_DIR} ${DESTDIR}${SHAREDIR} | 75 | ${INSTALL_DATA_DIR} ${DESTDIR}${SHAREDIR} | |
77 | ${INSTALL_DATA} ${WRKSRC}/gen-ip-validator.pl ${DESTDIR}${SHAREDIR} | 76 | ${INSTALL_DATA} ${WRKSRC}/gen-ip-validator.pl ${DESTDIR}${SHAREDIR} | |
78 | ${INSTALL_PROGRAM} ${WRKSRC}/md-mx-ctrl ${DESTDIR}${PREFIX}/bin | |||
79 | ${INSTALL_PROGRAM} ${WRKSRC}/mimedefang-multiplexor ${DESTDIR}${PREFIX}/bin | |||
80 | ${INSTALL_PROGRAM} ${WRKSRC}/mimedefang ${DESTDIR}${PREFIX}/bin | |||
81 | ${INSTALL_SCRIPT} ${WRKSRC}/watch-mimedefang ${DESTDIR}${PREFIX}/bin | |||
82 | ${INSTALL_SCRIPT} ${WRKSRC}/mimedefang.pl ${DESTDIR}${PREFIX}/bin | |||
83 | ${INSTALL_DATA} ${WRKSRC}/md-mx-ctrl.8 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man8 | |||
84 | ${INSTALL_DATA} ${WRKSRC}/mimedefang.8 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man8 | |||
85 | ${INSTALL_DATA} ${WRKSRC}/mimedefang.pl.8 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man8 | |||
86 | ${INSTALL_DATA} ${WRKSRC}/mimedefang-multiplexor.8 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man8 | |||
87 | ${INSTALL_DATA} ${WRKSRC}/watch-mimedefang.8 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man8 | |||
88 | ${INSTALL_DATA} ${WRKSRC}/mimedefang-filter.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 | |||
89 | ${INSTALL_DATA} ${WRKSRC}/mimedefang-protocol.7 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man7 | |||
90 | ${INSTALL_DATA} ${WRKSRC}/examples/suggested-minimum-filter-for-windows-clients ${DESTDIR}${EGDIR}/mimedefang-filter | 77 | ${INSTALL_DATA} ${WRKSRC}/examples/suggested-minimum-filter-for-windows-clients ${DESTDIR}${EGDIR}/mimedefang-filter | |
91 | ${INSTALL_DATA} ${WRKSRC}/SpamAssassin/spamassassin.cf ${DESTDIR}${EGDIR}/sa-mimedefang.cf | 78 | ${INSTALL_DATA} ${WRKSRC}/SpamAssassin/spamassassin.cf ${DESTDIR}${EGDIR}/sa-mimedefang.cf | |
92 | 79 | |||
93 | .include "../../lang/perl5/buildlink3.mk" | 80 | .include "../../lang/perl5/buildlink3.mk" | |
94 | .include "../../mail/libmilter/buildlink3.mk" | 81 | .include "../../mail/libmilter/buildlink3.mk" | |
95 | .include "../../mk/pthread.buildlink3.mk" | 82 | .include "../../mk/pthread.buildlink3.mk" | |
96 | .include "../../mk/bsd.pkg.mk" | 83 | .include "../../mk/bsd.pkg.mk" |
@@ -1,16 +1,47 @@ | @@ -1,16 +1,47 @@ | |||
1 | @comment $NetBSD: PLIST,v 1.8 2014/03/11 14:05:04 jperkin Exp $ | 1 | @comment $NetBSD: PLIST,v 1.9 2023/02/28 11:33:03 bouyer Exp $ | |
2 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang.pm | |||
3 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Actions.pm | |||
4 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Antispam.pm | |||
5 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Antivirus.pm | |||
6 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Authres.pm | |||
7 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/DKIM.pm | |||
8 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/DKIM/ARC.pm | |||
9 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/MIME.pm | |||
10 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Mail.pm | |||
11 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Net.pm | |||
12 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/RFC2822.pm | |||
13 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Unit.pm | |||
14 | ${PERL5_SUB_INSTALLVENDORLIB}/Mail/MIMEDefang/Utils.pm | |||
2 | bin/md-mx-ctrl | 15 | bin/md-mx-ctrl | |
3 | bin/mimedefang | 16 | bin/mimedefang | |
4 | bin/mimedefang-multiplexor | 17 | bin/mimedefang-multiplexor | |
18 | bin/mimedefang-util | |||
5 | bin/mimedefang.pl | 19 | bin/mimedefang.pl | |
6 | bin/watch-mimedefang | 20 | bin/watch-mimedefang | |
21 | bin/watch-multiple-mimedefangs.tcl | |||
22 | man/man1/mimedefang-util.1 | |||
23 | man/man3/Mail::MIMEDefang.3 | |||
24 | man/man3/Mail::MIMEDefang::Actions.3 | |||
25 | man/man3/Mail::MIMEDefang::Antispam.3 | |||
26 | man/man3/Mail::MIMEDefang::Antivirus.3 | |||
27 | man/man3/Mail::MIMEDefang::Authres.3 | |||
28 | man/man3/Mail::MIMEDefang::DKIM.3 | |||
29 | man/man3/Mail::MIMEDefang::DKIM::ARC.3 | |||
30 | man/man3/Mail::MIMEDefang::MIME.3 | |||
31 | man/man3/Mail::MIMEDefang::Mail.3 | |||
32 | man/man3/Mail::MIMEDefang::Net.3 | |||
33 | man/man3/Mail::MIMEDefang::RFC2822.3 | |||
34 | man/man3/Mail::MIMEDefang::Unit.3 | |||
35 | man/man3/Mail::MIMEDefang::Utils.3 | |||
7 | man/man5/mimedefang-filter.5 | 36 | man/man5/mimedefang-filter.5 | |
37 | man/man7/mimedefang-notify.7 | |||
8 | man/man7/mimedefang-protocol.7 | 38 | man/man7/mimedefang-protocol.7 | |
9 | man/man8/md-mx-ctrl.8 | 39 | man/man8/md-mx-ctrl.8 | |
10 | man/man8/mimedefang-multiplexor.8 | 40 | man/man8/mimedefang-multiplexor.8 | |
11 | man/man8/mimedefang.8 | 41 | man/man8/mimedefang.8 | |
12 | man/man8/mimedefang.pl.8 | 42 | man/man8/mimedefang.pl.8 | |
13 | man/man8/watch-mimedefang.8 | 43 | man/man8/watch-mimedefang.8 | |
44 | man/man8/watch-multiple-mimedefangs.8 | |||
14 | share/examples/mimedefang/mimedefang-filter | 45 | share/examples/mimedefang/mimedefang-filter | |
15 | share/examples/mimedefang/sa-mimedefang.cf | 46 | share/examples/mimedefang/sa-mimedefang.cf | |
16 | share/mimedefang/gen-ip-validator.pl | 47 | share/mimedefang/gen-ip-validator.pl |
@@ -1,7 +1,7 @@ | @@ -1,7 +1,7 @@ | |||
1 | $NetBSD: distinfo,v 1.31 2021/10/26 10:54:08 nia Exp $ | 1 | $NetBSD: distinfo,v 1.32 2023/02/28 11:33:03 bouyer Exp $ | |
2 | 2 | |||
3 | BLAKE2s (mimedefang-2.78.tar.gz) = 0c6dea20267d9de76d4ea7a3bbf6eb238b69a8dd9f06125266102d0a0b4d42e4 | 3 | BLAKE2s (mimedefang-3.3.tar.gz) = f464307b1a34e15e9879ba3bc1622841743fa28dcb47f17f1f05747152c54311 | |
4 | SHA512 (mimedefang-2.78.tar.gz) = 037a6f33a6a721e923c8d7242e6cd7eac6d249b4024e9fbe5aa2583675fd1fd710c8ff0ffd3ed331d1637c5e07373b264781b378b2e44e50ae13d30c1b7bff47 | 4 | SHA512 (mimedefang-3.3.tar.gz) = f973d6bf8e5bb5043f6d255961dcf3f4f8208c7fb159694f5d62884e4dd480ab2d04cf6b71c8f48f56f368aa31b7ce54ec499503a4a3f55b9bf0696299a240ef | |
5 | Size (mimedefang-2.78.tar.gz) = 364501 bytes | 5 | Size (mimedefang-3.3.tar.gz) = 495544 bytes | |
6 | SHA1 (patch-ac) = 8733dca9408f29f63d71f6a0f3af817ef6b9a148 | 6 | SHA1 (patch-Makefile.in) = 14d53b305bc1bb099624d02cc8bca63ab7226ace | |
7 | SHA1 (patch-ad) = 1130dad09875d069ca246db8f8f567366e0af5be | 7 | SHA1 (patch-mimedefang.pl.in) = d46c79ad616a6abc5c2791d32c678c5988ed64c9 |
@@ -1,44 +1,45 @@ | @@ -1,44 +1,45 @@ | |||
1 | #!@RCD_SCRIPTS_SHELL@ | 1 | #!@RCD_SCRIPTS_SHELL@ | |
2 | # | 2 | # | |
3 | # $NetBSD: mimedefang-multiplexor.sh,v 1.1 2004/03/07 11:18:33 markd Exp $ | 3 | # $NetBSD: mimedefang-multiplexor.sh,v 1.2 2023/02/28 11:33:03 bouyer Exp $ | |
4 | # | 4 | # | |
5 | # mimedefang-multiplexor handles communications between sendmail and | 5 | # mimedefang-multiplexor handles communications between sendmail and | |
6 | # the real processor | 6 | # the real processor | |
7 | # | 7 | # | |
8 | ## only for NetBSD | 8 | ## only for NetBSD | |
9 | # PROVIDE: mimedefang-multiplexor | 9 | # PROVIDE: mimedefang-multiplexor | |
10 | # REQUIRE: LOGIN | 10 | # REQUIRE: LOGIN | |
11 | # BEFORE: mail | 11 | # BEFORE: mail | |
12 | # KEYWORD: shutdown | 12 | # KEYWORD: shutdown | |
13 | ## | 13 | ## | |
14 | 14 | |||
15 | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin | 15 | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin | |
16 | export PATH | 16 | export PATH | |
17 | 17 | |||
18 | if [ -f /etc/rc.subr ] | 18 | if [ -f /etc/rc.subr ] | |
19 | then | 19 | then | |
20 | . /etc/rc.subr | 20 | . /etc/rc.subr | |
21 | fi | 21 | fi | |
22 | 22 | |||
23 | 23 | |||
24 | name="mimedefang_multiplexor" | 24 | name="mimedefang_multiplexor" | |
25 | rcvar="$name" | 25 | rcvar="$name" | |
26 | mimedefang_multiplexor_user=${mimedefang_multiplexor_user-"@DEFANG_USER@"} | |||
27 | 26 | |||
28 | defangdir="@DEFANG_SPOOLDIR@" | 27 | defangdir="@DEFANG_SPOOLDIR@" | |
29 | command="@PREFIX@/bin/mimedefang-multiplexor" | 28 | command="@PREFIX@/bin/mimedefang-multiplexor" | |
30 | pidfile="${defangdir}/${name}.pid" | 29 | pidfile="@VARBASE@/run/${name}.pid" | |
31 | command_args="-p ${pidfile}" | 30 | lockfile="${defangdir}/${name}.lock" | |
31 | defang_user=${defang_user-"@DEFANG_USER@"} | |||
32 | command_args="-p ${pidfile} -o ${lockfile} -U ${defang_user}" | |||
32 | 33 | |||
33 | # default values, may be overridden on NetBSD by setting them in /etc/rc.conf | 34 | # default values, may be overridden on NetBSD by setting them in /etc/rc.conf | |
34 | mimedefang_multiplexor_flags=${mimedefang_multiplexor_flags-\ | 35 | mimedefang_multiplexor_flags=${mimedefang_multiplexor_flags-\ | |
35 | "-s ${defangdir}/mimedefang-multiplexor.sock"} | 36 | "-s ${defangdir}/mimedefang-multiplexor.sock"} | |
36 | mimedefang_multiplexor=${mimedefang_multiplexor:-NO} | 37 | mimedefang_multiplexor=${mimedefang_multiplexor:-NO} | |
37 | mimedefang_multiplexor_fdlimit=${mimedefang_multiplexor_fdlimit-"128"} | 38 | mimedefang_multiplexor_fdlimit=${mimedefang_multiplexor_fdlimit-"128"} | |
38 | 39 | |||
39 | sig_stop="TERM" | 40 | sig_stop="TERM" | |
40 | sig_reload="INT" | 41 | sig_reload="INT" | |
41 | extra_commands="reload" | 42 | extra_commands="reload" | |
42 | 43 | |||
43 | # A default limit of 64 (at least on NetBSD) may be too low for many | 44 | # A default limit of 64 (at least on NetBSD) may be too low for many | |
44 | # people (eg with addional RBL rules) | 45 | # people (eg with addional RBL rules) |
@@ -1,43 +1,44 @@ | @@ -1,43 +1,44 @@ | |||
1 | #!@RCD_SCRIPTS_SHELL@ | 1 | #!@RCD_SCRIPTS_SHELL@ | |
2 | # | 2 | # | |
3 | # $NetBSD: mimedefang.sh,v 1.1 2004/03/07 11:18:33 markd Exp $ | 3 | # $NetBSD: mimedefang.sh,v 1.2 2023/02/28 11:33:03 bouyer Exp $ | |
4 | # | 4 | # | |
5 | # mimedefang does "in-stream" spam and virus checking using | 5 | # mimedefang does "in-stream" spam and virus checking using | |
6 | # sendmail's MailFilter interfaces. | 6 | # sendmail's MailFilter interfaces. | |
7 | # | 7 | # | |
8 | ## only for NetBSD | 8 | ## only for NetBSD | |
9 | # PROVIDE: mimedefang | 9 | # PROVIDE: mimedefang | |
10 | # REQUIRE: LOGIN mimedefang-multiplexor | 10 | # REQUIRE: LOGIN mimedefang-multiplexor | |
11 | # BEFORE: mail | 11 | # BEFORE: mail | |
12 | # KEYWORD: shutdown | 12 | # KEYWORD: shutdown | |
13 | ## | 13 | ## | |
14 | 14 | |||
15 | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin | 15 | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin | |
16 | export PATH | 16 | export PATH | |
17 | 17 | |||
18 | if [ -f /etc/rc.subr ] | 18 | if [ -f /etc/rc.subr ] | |
19 | then | 19 | then | |
20 | . /etc/rc.subr | 20 | . /etc/rc.subr | |
21 | fi | 21 | fi | |
22 | 22 | |||
23 | defangdir="@DEFANG_SPOOLDIR@" | 23 | defangdir="@DEFANG_SPOOLDIR@" | |
24 | 24 | |||
25 | name="mimedefang" | 25 | name="mimedefang" | |
26 | rcvar=$name | 26 | rcvar=$name | |
27 | command="@PREFIX@/bin/mimedefang" | 27 | command="@PREFIX@/bin/mimedefang" | |
28 | pidfile="${defangdir}/${name}.pid" | 28 | pidfile="@VARBASE@/run/${name}.pid" | |
29 | mimedefang_user=${mimedefang_user-"@DEFANG_USER@"} | 29 | lockfile="${defangdir}/${name}.lock" | |
30 | command_args="-P ${pidfile}" | 30 | defang_user=${defang_user-"@DEFANG_USER@"} | |
31 | command_args="-P ${pidfile} -o ${lockfile} -U ${defang_user}" | |||
31 | 32 | |||
32 | # default values, may be overridden on NetBSD by setting them in /etc/rc.conf | 33 | # default values, may be overridden on NetBSD by setting them in /etc/rc.conf | |
33 | mimedefang_flags=${mimedefang_flags-"-p ${defangdir}/mimedefang.sock \ | 34 | mimedefang_flags=${mimedefang_flags-"-p ${defangdir}/mimedefang.sock \ | |
34 | -m ${defangdir}/mimedefang-multiplexor.sock"} | 35 | -m ${defangdir}/mimedefang-multiplexor.sock"} | |
35 | 36 | |||
36 | mimedefang=${mimedefang:-NO} | 37 | mimedefang=${mimedefang:-NO} | |
37 | mimedefang_fdlimit=${mimedefang_fdlimit-"128"} | 38 | mimedefang_fdlimit=${mimedefang_fdlimit-"128"} | |
38 | 39 | |||
39 | # A default limit of 64 (at least on NetBSD) may be too low for many | 40 | # A default limit of 64 (at least on NetBSD) may be too low for many | |
40 | # people (eg with addional RBL rules) | 41 | # people (eg with addional RBL rules) | |
41 | SOFT_FDLIMIT=`ulimit -S -n` | 42 | SOFT_FDLIMIT=`ulimit -S -n` | |
42 | HARD_FDLIMIT=`ulimit -H -n` | 43 | HARD_FDLIMIT=`ulimit -H -n` | |
43 | 44 |
$NetBSD: patch-Makefile.in,v 1.1 2023/02/28 11:33:03 bouyer Exp $
Don't force-install the config files.
--- Makefile.in.orig 2023-02-27 14:54:44.712145757 +0100
+++ Makefile.in 2023-02-27 14:56:10.630669189 +0100
@@ -229,26 +229,6 @@
install: all
$(INSTALL) -m 755 -d $(DESTDIR)${CONFDIR}
- -if test "$(IP_HEADER)" = "yes" -a ! -f "$(DESTDIR)${CONFDIR}/mimedefang-ip-key" ; then \
- $(PERL) ./gen-ip-validator.pl > $(DESTDIR)${CONFDIR}/mimedefang-ip-key ;\
- -chmod 600 $(DESTDIR)${CONFDIR}/mimedefang-ip-key > /dev/null 2>&1 ; \
- fi
-
- if test "$(DEFANGUSER)" != "" ; then \
- if id "$(DEFANGUSER)" > /dev/null 2>&1 ; then \
- chown "$(DEFANGUSER)" $(DESTDIR)${CONFDIR}/mimedefang-ip-key > /dev/null 2>&1 || true; \
- test ! -d $(DESTDIR)$(SPOOLDIR) && $(INSTALL) -m 750 -o $(DEFANGUSER) -d $(DESTDIR)$(SPOOLDIR) > /dev/null 2>&1 || true; \
- test ! -d $(DESTDIR)$(QDIR) && $(INSTALL) -m 750 -o $(DEFANGUSER) -d $(DESTDIR)$(QDIR) > /dev/null 2>&1 || true; \
- fi \
- else \
- echo ""; \
- echo "Please create the spool directory, '$(SPOOLDIR)',"; \
- echo "if it does not exist. Give it mode 700 or 750, and make"; \
- echo "it owned by the user and group you intend to run MIMEDefang as."; \
- if test "$(QDIR)" != "$(SPOOLDIR)" ; then \
- echo "Please do the same with the quarantine directory, '$(QDIR)'."; \
- fi; \
- fi
$(INSTALL) -m 755 -d $(DESTDIR)$(prefix)/bin
$(INSTALL) -m 755 -d $(DESTDIR)$(MANDIR)/man1
@@ -256,14 +236,7 @@
$(INSTALL) -m 755 -d $(DESTDIR)$(MANDIR)/man5
$(INSTALL) -m 755 -d $(DESTDIR)$(MANDIR)/man7
$(INSTALL) -m 755 -d $(DESTDIR)$(MANDIR)/man8
- -test ! -d $(DESTDIR)$(SPOOLDIR) && mkdir -p $(DESTDIR)$(SPOOLDIR) && chmod 750 $(DESTDIR)$(SPOOLDIR) || true
- -test ! -d $(DESTDIR)$(QDIR) && mkdir -p $(DESTDIR)$(QDIR) && chmod 750 $(DESTDIR)$(QDIR) || true
- if test -f $(DESTDIR)${CONFDIR}/mimedefang-filter ; then \
- $(INSTALL) -m 644 examples/suggested-minimum-filter-for-windows-clients $(DESTDIR)${CONFDIR}/mimedefang-filter.example || exit 1; \
- else \
- $(INSTALL) -m 644 examples/suggested-minimum-filter-for-windows-clients $(DESTDIR)${CONFDIR}/mimedefang-filter || exit 1; \
- fi
$(INSTALL) -m 755 $(INSTALL_STRIP_FLAG) mimedefang-multiplexor $(DESTDIR)$(prefix)/bin/mimedefang-multiplexor
$(INSTALL) -m 755 $(INSTALL_STRIP_FLAG) md-mx-ctrl $(DESTDIR)$(prefix)/bin/md-mx-ctrl
@@ -301,13 +274,6 @@
$(INSTALL) -m 644 mimedefang-filter.5 $(DESTDIR)$(MANDIR)/man5/mimedefang-filter.5
$(INSTALL) -m 644 mimedefang-protocol.7 $(DESTDIR)$(MANDIR)/man7/mimedefang-protocol.7
$(INSTALL) -m 644 mimedefang-notify.7 $(DESTDIR)$(MANDIR)/man7/mimedefang-notify.7
- if test "$(HAVE_SPAM_ASSASSIN)" = "yes" ; then \
- if test -f $(DESTDIR)${CONFDIR}/sa-mimedefang.cf ; then \
- $(INSTALL) -m 644 SpamAssassin/spamassassin.cf $(DESTDIR)${CONFDIR}/sa-mimedefang.cf.example || exit 1; \
- else \
- $(INSTALL) -m 644 SpamAssassin/spamassassin.cf $(DESTDIR)${CONFDIR}/sa-mimedefang.cf || exit 1; \
- fi \
- fi
distro: FORCE
mkdir mimedefang-$(VERSION)
$NetBSD: patch-mimedefang.pl.in,v 1.3 2023/02/28 11:33:03 bouyer Exp $
Dynamically check virus scanner availability
--- mimedefang.pl.in.orig 2022-12-28 17:19:31.000000000 +0100
+++ mimedefang.pl.in 2023-02-27 15:46:16.986658353 +0100
@@ -64,30 +64,30 @@
$SALocalTestsOnly = 1;
$DoStatusTags = 0;
-$Features{'Virus:AVP'} = ('@AVP@' ne '/bin/false' ? '@AVP@' : 0);
-$Features{'Virus:AVP5'} = ('@AVP5@' ne '/bin/false' ? '@AVP5@' : 0);
-$Features{'Virus:KAVSCANNER'} = ('@KAVSCANNER@' ne '/bin/false' ? '@KAVSCANNER@' : 0);
-$Features{'Virus:CLAMAV'} = ('@CLAMSCAN@' ne '/bin/false' ? '@CLAMSCAN@' : 0);
-$Features{'Virus:CLAMD'} = ('@CLAMD@' ne '/bin/false' ? '@CLAMD@' : 0);
+$Features{'Virus:AVP'} = ((('@AVP@' ne '/bin/false') and (-x '@AVP@')) ? '@AVP@' : 0);
+$Features{'Virus:AVP5'} = ((('@AVP5@' ne '/bin/false') and (-x '@AVP5@')) ? '@AVP5@' : 0);
+$Features{'Virus:KAVSCANNER'} = ((('@KAVSCANNER@' ne '/bin/false') and (-x '@KAVSCANNER@')) ? '@KAVSCANNER@' : 0);
+$Features{'Virus:CLAMAV'} = ((('@CLAMSCAN@' ne '/bin/false') and (-x '@CLAMSCAN@')) ? '@CLAMSCAN@' : 0);
+$Features{'Virus:CLAMD'} = ((('@CLAMD@' ne '/bin/false') and (-x '@CLAMD@')) ? '@CLAMD@' : 0);
$Features{'Virus:CLAMDSCAN'} = ('/bin/false' ne '/bin/false' ? '/bin/false' : 0);
-$Features{'Virus:FPROT'} = ('@FPROT@' ne '/bin/false' ? '@FPROT@' : 0);
-$Features{'Virus:FPSCAN'} = ('@FPSCAN@' ne '/bin/false' ? '@FPSCAN@' : 0);
-$Features{'Virus:FSAV'} = ('@FSAV@' ne '/bin/false' ? '@FSAV@' : 0);
-$Features{'Virus:HBEDV'} = ('@HBEDV@' ne '/bin/false' ? '@HBEDV@' : 0);
-$Features{'Virus:VEXIRA'} = ('@VEXIRA@' ne '/bin/false' ? '@VEXIRA@' : 0);
-$Features{'Virus:NAI'} = ('@NAI@' ne '/bin/false' ? '@NAI@' : 0);
-$Features{'Virus:BDC'} = ('@BDC@' ne '/bin/false' ? '@BDC@' : 0);
-$Features{'Virus:NVCC'} = ('@NVCC@' ne '/bin/false' ? '@NVCC@' : 0);
+$Features{'Virus:FPROT'} = ((('@FPROT@' ne '/bin/false') and (-x '@FPROT@')) ? '@FPROT@' : 0);
+$Features{'Virus:FPSCAN'} = ((('@FPSCAN@' ne '/bin/false') and (-x '@FPSCAN@')) ? '@FPSCAN@' : 0);
+$Features{'Virus:FSAV'} = ((('@FSAV@' ne '/bin/false') and (-x '@FSAV@')) ? '@FSAV@' : 0);
+$Features{'Virus:HBEDV'} = ((('@HBEDV@' ne '/bin/false') and (-x '@HBEDV@')) ? '@HBEDV@' : 0);
+$Features{'Virus:VEXIRA'} = ((('@VEXIRA@' ne '/bin/false') and (-x '@VEXIRA@')) ? '@VEXIRA@' : 0);
+$Features{'Virus:NAI'} = ((('@NAI@' ne '/bin/false') and (-x '@NAI@')) ? '@NAI@' : 0);
+$Features{'Virus:BDC'} = ((('@BDC@' ne '/bin/false') and (-x '@BDC@')) ? '@BDC@' : 0);
+$Features{'Virus:NVCC'} = ((('@NVCC@' ne '/bin/false') and (-x '@NVCC@')) ? '@NVCC@' : 0);
$Features{'Virus:SymantecCSS'} = 0; # Ditto
$Features{'Virus:FPROTD'} = 0;
$Features{'Virus:FPROTD6'} = 0;
-$Features{'Virus:SOPHIE'} = ('@SOPHIE@' ne '/bin/false' ? '@SOPHIE@' : 0);
-$Features{'Virus:SOPHOS'} = ('@SOPHOS@' ne '/bin/false' ? '@SOPHOS@' : 0);
-$Features{'Virus:SAVSCAN'} = ('@SAVSCAN@' ne '/bin/false' ? '@SAVSCAN@' : 0);
-$Features{'Virus:TREND'} = ('@TREND@' ne '/bin/false' ? '@TREND@' : 0);
-$Features{'Virus:TROPHIE'} = ('@TROPHIE@' ne '/bin/false' ? '@TROPHIE@' : 0);
-$Features{'Virus:CSAV'} = ('@CSAV@' ne '/bin/false' ? '@CSAV@' : 0);
-$Features{'Virus:NOD32'} = ('@NOD32@' ne '/bin/false' ? '@NOD32@' : 0);
+$Features{'Virus:SOPHIE'} = ((('@SOPHIE@' ne '/bin/false') and (-x '@SOPHIE@')) ? '@SOPHIE@' : 0);
+$Features{'Virus:SOPHOS'} = ((('@SOPHOS@' ne '/bin/false') and (-x '@SOPHOS@')) ? '@SOPHOS@' : 0);
+$Features{'Virus:SAVSCAN'} = ((('@SAVSCAN@' ne '/bin/false') and (-x '@SAVSCAN@')) ? '@SAVSCAN@' : 0);
+$Features{'Virus:TREND'} = ((('@TREND@' ne '/bin/false') and (-x '@TREND@')) ? '@TREND@' : 0);
+$Features{'Virus:TROPHIE'} = ((('@TROPHIE@' ne '/bin/false') and (-x '@TROPHIE@')) ? '@TROPHIE@' : 0);
+$Features{'Virus:CSAV'} = ((('@CSAV@' ne '/bin/false') and (-x '@CSAV@')) ? '@CSAV@' : 0);
+$Features{'Virus:NOD32'} = ((('@NOD32@' ne '/bin/false') and (-x '@NOD32@')) ? '@NOD32@' : 0);
$Features{'Path:SENDMAIL'} = '@SENDMAILPROG@';
$Features{'Path:QUARANTINEDIR'} = '@QDIR@';