Tue Feb 28 11:33:03 2023 UTC ()
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/


(bouyer)
diff -r1.3 -r1.4 pkgsrc/mail/mimedefang/MESSAGE
diff -r1.70 -r1.71 pkgsrc/mail/mimedefang/Makefile
diff -r1.8 -r1.9 pkgsrc/mail/mimedefang/PLIST
diff -r1.31 -r1.32 pkgsrc/mail/mimedefang/distinfo
diff -r1.1 -r1.2 pkgsrc/mail/mimedefang/files/mimedefang-multiplexor.sh
diff -r1.1 -r1.2 pkgsrc/mail/mimedefang/files/mimedefang.sh
diff -r0 -r1.1 pkgsrc/mail/mimedefang/patches/patch-Makefile.in
diff -r1.7 -r0 pkgsrc/mail/mimedefang/patches/patch-ac
diff -r1.1 -r0 pkgsrc/mail/mimedefang/patches/patch-ad
diff -r0 -r1.3 pkgsrc/mail/mimedefang/patches/patch-mimedefang.pl.in

cvs diff -r1.3 -r1.4 pkgsrc/mail/mimedefang/MESSAGE (expand / switch to unified diff)

--- pkgsrc/mail/mimedefang/MESSAGE 2005/09/28 14:15:49 1.3
+++ pkgsrc/mail/mimedefang/MESSAGE 2023/02/28 11:33:03 1.4
@@ -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
 4Starting with version 2.81 mimedefang and mimedefang-multiplexor write their
 5PID files as root. You should move your PID files out of the MIMEDefang spool
 6directory and into a standard root-owned directory like /var/run.
 7Use the -o option to create lock files in the spool directory.
3 8
4From version 2.52 mimedefang.pl doesn't detect and load Perl modules until 9From version 2.52 mimedefang.pl doesn't detect and load Perl modules until
5the detect_and_load_perl_modules() function is called. 10the detect_and_load_perl_modules() function is called.
6You *MUST* call detect_and_load_perl_modules() inside your filter before 11You *MUST* call detect_and_load_perl_modules() inside your filter before
7you can rely on the %Features hash being set correctly, and before you can 12you can rely on the %Features hash being set correctly, and before you can
8rely on SpamAssassin being loaded!!! 13rely on SpamAssassin being loaded!!!
9 14
10In version 2.44 the location of the sa-mimedefang.cf file moved from 15In 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
14From version 2.43 filter_relay no longer has access to the HELO argument, 19From version 2.43 filter_relay no longer has access to the HELO argument,
15nor does the MIMEDefang spool directory exist when filter_relay is called. 20nor does the MIMEDefang spool directory exist when filter_relay is called.

cvs diff -r1.70 -r1.71 pkgsrc/mail/mimedefang/Makefile (expand / switch to unified diff)

--- pkgsrc/mail/mimedefang/Makefile 2022/06/28 11:34:23 1.70
+++ pkgsrc/mail/mimedefang/Makefile 2023/02/28 11:33:03 1.71
@@ -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
3DISTNAME= mimedefang-2.78 3DISTNAME= mimedefang-3.3
4PKGREVISION= 8 
5CATEGORIES= mail 4CATEGORIES= mail
6MASTER_SITES= http://www.mimedefang.org/static/ 5MASTER_SITES= https://mimedefang.org/releases/
7 6
8MAINTAINER= pettai@NetBSD.org 7MAINTAINER= pettai@NetBSD.org
9HOMEPAGE= https://www.mimedefang.org/ 8HOMEPAGE= https://www.mimedefang.org/
10COMMENT= To inspect/modify e-mail as it passes through your mail relay 9COMMENT= To inspect/modify e-mail as it passes through your mail relay
11LICENSE= gnu-gpl-v2 10LICENSE= gnu-gpl-v2
12 11
13DEPENDS+= p5-Digest-SHA1>=2.00:../../security/p5-Digest-SHA1 12DEPENDS+= p5-Digest-SHA1>=2.00:../../security/p5-Digest-SHA1
14DEPENDS+= p5-HTML-Parser>=3.26:../../www/p5-HTML-Parser 13DEPENDS+= p5-HTML-Parser>=3.26:../../www/p5-HTML-Parser
15DEPENDS+= p5-HTML-Tagset>=3.03:../../www/p5-HTML-Tagset 14DEPENDS+= p5-HTML-Tagset>=3.03:../../www/p5-HTML-Tagset
16DEPENDS+= p5-IO-stringy>=2.108:../../devel/p5-IO-stringy 15DEPENDS+= p5-IO-stringy>=2.108:../../devel/p5-IO-stringy
17DEPENDS+= p5-MailTools>=1.44:../../mail/p5-MailTools 16DEPENDS+= p5-MailTools>=1.44:../../mail/p5-MailTools
18#DEPENDS+= {perl>=5.8.6,p5-MIME-Base64>=3.03}:../../converters/p5-MIME-Base64 
19DEPENDS+= p5-MIME-tools>=5.413:../../mail/p5-MIME-tools 17DEPENDS+= p5-MIME-tools>=5.413:../../mail/p5-MIME-tools
20DEPENDS+= spamassassin>=2.31:../../mail/spamassassin 18DEPENDS+= spamassassin>=2.31:../../mail/spamassassin
21 19
22.include "../../mk/bsd.prefs.mk" 20.include "../../mk/bsd.prefs.mk"
23 21
24USE_TOOLS+= perl:run 22USE_TOOLS+= perl:run
25GNU_CONFIGURE= YES 23GNU_CONFIGURE= YES
26PKG_SYSCONFSUBDIR?= mimedefang 24PKG_SYSCONFSUBDIR?= mimedefang
27 25
28DEFANG_SPOOLDIR?= ${VARBASE}/spool/MIMEDefang 26DEFANG_SPOOLDIR?= ${VARBASE}/spool/MIMEDefang
29DEFANG_USER?= defang 27DEFANG_USER?= defang
30DEFANG_GROUP?= defang 28DEFANG_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
65CONFIGURE_ENV+= CLAMD=${PREFIX}/sbin/clamd 63CONFIGURE_ENV+= CLAMD=${PREFIX}/sbin/clamd
66CONFIGURE_ENV+= CLAMSCAN=${PREFIX}/bin/clamscan 64CONFIGURE_ENV+= CLAMSCAN=${PREFIX}/bin/clamscan
67CONFIGURE_ENV+= FPROT=${PREFIX}/bin/f-prot 65CONFIGURE_ENV+= FPROT=${PREFIX}/bin/f-prot
68CONFIGURE_ENV+= NAI=${PREFIX}/bin/uvscan 66CONFIGURE_ENV+= NAI=${PREFIX}/bin/uvscan
69 67
70# Doesn't work with pth 68# Doesn't work with pth
71PTHREAD_OPTS+= require native 69PTHREAD_OPTS+= require native
72 70
73INSTALLATION_DIRS= bin ${PKGMANDIR}/man5 ${PKGMANDIR}/man7 ${PKGMANDIR}/man8 71INSTALLATION_DIRS= bin ${PKGMANDIR}/man5 ${PKGMANDIR}/man7 ${PKGMANDIR}/man8
74do-install: 72
 73post-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"

cvs diff -r1.8 -r1.9 pkgsrc/mail/mimedefang/PLIST (expand / switch to unified diff)

--- pkgsrc/mail/mimedefang/PLIST 2014/03/11 14:05:04 1.8
+++ pkgsrc/mail/mimedefang/PLIST 2023/02/28 11:33:03 1.9
@@ -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
2bin/md-mx-ctrl 15bin/md-mx-ctrl
3bin/mimedefang 16bin/mimedefang
4bin/mimedefang-multiplexor 17bin/mimedefang-multiplexor
 18bin/mimedefang-util
5bin/mimedefang.pl 19bin/mimedefang.pl
6bin/watch-mimedefang 20bin/watch-mimedefang
 21bin/watch-multiple-mimedefangs.tcl
 22man/man1/mimedefang-util.1
 23man/man3/Mail::MIMEDefang.3
 24man/man3/Mail::MIMEDefang::Actions.3
 25man/man3/Mail::MIMEDefang::Antispam.3
 26man/man3/Mail::MIMEDefang::Antivirus.3
 27man/man3/Mail::MIMEDefang::Authres.3
 28man/man3/Mail::MIMEDefang::DKIM.3
 29man/man3/Mail::MIMEDefang::DKIM::ARC.3
 30man/man3/Mail::MIMEDefang::MIME.3
 31man/man3/Mail::MIMEDefang::Mail.3
 32man/man3/Mail::MIMEDefang::Net.3
 33man/man3/Mail::MIMEDefang::RFC2822.3
 34man/man3/Mail::MIMEDefang::Unit.3
 35man/man3/Mail::MIMEDefang::Utils.3
7man/man5/mimedefang-filter.5 36man/man5/mimedefang-filter.5
 37man/man7/mimedefang-notify.7
8man/man7/mimedefang-protocol.7 38man/man7/mimedefang-protocol.7
9man/man8/md-mx-ctrl.8 39man/man8/md-mx-ctrl.8
10man/man8/mimedefang-multiplexor.8 40man/man8/mimedefang-multiplexor.8
11man/man8/mimedefang.8 41man/man8/mimedefang.8
12man/man8/mimedefang.pl.8 42man/man8/mimedefang.pl.8
13man/man8/watch-mimedefang.8 43man/man8/watch-mimedefang.8
 44man/man8/watch-multiple-mimedefangs.8
14share/examples/mimedefang/mimedefang-filter 45share/examples/mimedefang/mimedefang-filter
15share/examples/mimedefang/sa-mimedefang.cf 46share/examples/mimedefang/sa-mimedefang.cf
16share/mimedefang/gen-ip-validator.pl 47share/mimedefang/gen-ip-validator.pl

cvs diff -r1.31 -r1.32 pkgsrc/mail/mimedefang/distinfo (expand / switch to unified diff)

--- pkgsrc/mail/mimedefang/distinfo 2021/10/26 10:54:08 1.31
+++ pkgsrc/mail/mimedefang/distinfo 2023/02/28 11:33:03 1.32
@@ -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
3BLAKE2s (mimedefang-2.78.tar.gz) = 0c6dea20267d9de76d4ea7a3bbf6eb238b69a8dd9f06125266102d0a0b4d42e4 3BLAKE2s (mimedefang-3.3.tar.gz) = f464307b1a34e15e9879ba3bc1622841743fa28dcb47f17f1f05747152c54311
4SHA512 (mimedefang-2.78.tar.gz) = 037a6f33a6a721e923c8d7242e6cd7eac6d249b4024e9fbe5aa2583675fd1fd710c8ff0ffd3ed331d1637c5e07373b264781b378b2e44e50ae13d30c1b7bff47 4SHA512 (mimedefang-3.3.tar.gz) = f973d6bf8e5bb5043f6d255961dcf3f4f8208c7fb159694f5d62884e4dd480ab2d04cf6b71c8f48f56f368aa31b7ce54ec499503a4a3f55b9bf0696299a240ef
5Size (mimedefang-2.78.tar.gz) = 364501 bytes 5Size (mimedefang-3.3.tar.gz) = 495544 bytes
6SHA1 (patch-ac) = 8733dca9408f29f63d71f6a0f3af817ef6b9a148 6SHA1 (patch-Makefile.in) = 14d53b305bc1bb099624d02cc8bca63ab7226ace
7SHA1 (patch-ad) = 1130dad09875d069ca246db8f8f567366e0af5be 7SHA1 (patch-mimedefang.pl.in) = d46c79ad616a6abc5c2791d32c678c5988ed64c9

cvs diff -r1.1 -r1.2 pkgsrc/mail/mimedefang/files/mimedefang-multiplexor.sh (expand / switch to unified diff)

--- pkgsrc/mail/mimedefang/files/mimedefang-multiplexor.sh 2004/03/07 11:18:33 1.1
+++ pkgsrc/mail/mimedefang/files/mimedefang-multiplexor.sh 2023/02/28 11:33:03 1.2
@@ -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
15PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin 15PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin
16export PATH 16export PATH
17 17
18if [ -f /etc/rc.subr ] 18if [ -f /etc/rc.subr ]
19then 19then
20 . /etc/rc.subr 20 . /etc/rc.subr
21fi 21fi
22 22
23 23
24name="mimedefang_multiplexor" 24name="mimedefang_multiplexor"
25rcvar="$name" 25rcvar="$name"
26mimedefang_multiplexor_user=${mimedefang_multiplexor_user-"@DEFANG_USER@"} 
27 26
28defangdir="@DEFANG_SPOOLDIR@" 27defangdir="@DEFANG_SPOOLDIR@"
29command="@PREFIX@/bin/mimedefang-multiplexor" 28command="@PREFIX@/bin/mimedefang-multiplexor"
30pidfile="${defangdir}/${name}.pid" 29pidfile="@VARBASE@/run/${name}.pid"
31command_args="-p ${pidfile}" 30lockfile="${defangdir}/${name}.lock"
 31defang_user=${defang_user-"@DEFANG_USER@"}
 32command_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
34mimedefang_multiplexor_flags=${mimedefang_multiplexor_flags-\ 35mimedefang_multiplexor_flags=${mimedefang_multiplexor_flags-\
35 "-s ${defangdir}/mimedefang-multiplexor.sock"} 36 "-s ${defangdir}/mimedefang-multiplexor.sock"}
36mimedefang_multiplexor=${mimedefang_multiplexor:-NO} 37mimedefang_multiplexor=${mimedefang_multiplexor:-NO}
37mimedefang_multiplexor_fdlimit=${mimedefang_multiplexor_fdlimit-"128"} 38mimedefang_multiplexor_fdlimit=${mimedefang_multiplexor_fdlimit-"128"}
38 39
39sig_stop="TERM" 40sig_stop="TERM"
40sig_reload="INT" 41sig_reload="INT"
41extra_commands="reload" 42extra_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)

cvs diff -r1.1 -r1.2 pkgsrc/mail/mimedefang/files/mimedefang.sh (expand / switch to unified diff)

--- pkgsrc/mail/mimedefang/files/mimedefang.sh 2004/03/07 11:18:33 1.1
+++ pkgsrc/mail/mimedefang/files/mimedefang.sh 2023/02/28 11:33:03 1.2
@@ -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
15PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin 15PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin
16export PATH 16export PATH
17 17
18if [ -f /etc/rc.subr ] 18if [ -f /etc/rc.subr ]
19then 19then
20 . /etc/rc.subr 20 . /etc/rc.subr
21fi 21fi
22 22
23defangdir="@DEFANG_SPOOLDIR@" 23defangdir="@DEFANG_SPOOLDIR@"
24 24
25name="mimedefang" 25name="mimedefang"
26rcvar=$name 26rcvar=$name
27command="@PREFIX@/bin/mimedefang" 27command="@PREFIX@/bin/mimedefang"
28pidfile="${defangdir}/${name}.pid" 28pidfile="@VARBASE@/run/${name}.pid"
29mimedefang_user=${mimedefang_user-"@DEFANG_USER@"} 29lockfile="${defangdir}/${name}.lock"
30command_args="-P ${pidfile}" 30defang_user=${defang_user-"@DEFANG_USER@"}
 31command_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
33mimedefang_flags=${mimedefang_flags-"-p ${defangdir}/mimedefang.sock \ 34mimedefang_flags=${mimedefang_flags-"-p ${defangdir}/mimedefang.sock \
34 -m ${defangdir}/mimedefang-multiplexor.sock"} 35 -m ${defangdir}/mimedefang-multiplexor.sock"}
35 36
36mimedefang=${mimedefang:-NO} 37mimedefang=${mimedefang:-NO}
37mimedefang_fdlimit=${mimedefang_fdlimit-"128"} 38mimedefang_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)
41SOFT_FDLIMIT=`ulimit -S -n` 42SOFT_FDLIMIT=`ulimit -S -n`
42HARD_FDLIMIT=`ulimit -H -n` 43HARD_FDLIMIT=`ulimit -H -n`
43 44

File Added: pkgsrc/mail/mimedefang/patches/patch-Makefile.in
$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)

File Deleted: pkgsrc/mail/mimedefang/patches/Attic/patch-ac

File Deleted: pkgsrc/mail/mimedefang/patches/Attic/patch-ad

File Added: pkgsrc/mail/mimedefang/patches/patch-mimedefang.pl.in
$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@';