aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GIDs2
-rw-r--r--UIDs2
-rw-r--r--UPDATING11
-rw-r--r--mail/Makefile1
-rw-r--r--mail/postfix-policyd-spf-python/Makefile6
-rw-r--r--mail/py-spf-engine/Makefile71
-rw-r--r--mail/py-spf-engine/distinfo3
-rw-r--r--mail/py-spf-engine/files/patch-setup.py16
-rw-r--r--mail/py-spf-engine/files/patch-spf__engine_milter__spf.py10
-rw-r--r--mail/py-spf-engine/files/pkg-message.in76
-rw-r--r--mail/py-spf-engine/files/pyspf-milter.in42
-rw-r--r--mail/py-spf-engine/pkg-descr8
12 files changed, 246 insertions, 2 deletions
diff --git a/GIDs b/GIDs
index 9e8d389ce27d..3cc31edfa19f 100644
--- a/GIDs
+++ b/GIDs
@@ -820,7 +820,7 @@ bitmark-recorder:*:873:
# free: 877
# free: 878
# free: 879
-# free: 880
+pyspf-milter:*:880:
ultimaker:*:881:
midpoint:*:882:
ipfs-go:*:883:
diff --git a/UIDs b/UIDs
index b07e4cf774da..2806042871bc 100644
--- a/UIDs
+++ b/UIDs
@@ -825,7 +825,7 @@ bitmark-recorder:*:873:873::0:0:Bitmark Property Recorder:/var/lib/recorderd:/us
# free: 877
# free: 878
# free: 879
-# free: 880
+pyspf-milter:*:880:880::0:0:pyspf-milter:/nonexistent:/usr/sbin/nologin
ultimaker:*:881:881::0:0:Ultimaker user:/nonexistent:/usr/sbin/nologin
midpoint:*:882:882::0:0:midPoint user:/var/db/midpoint:/usr/sbin/nologin
ipfs-go:*:883:883::0:0:ipfs-go user:/var/db/ipfs-go:/bin/sh
diff --git a/UPDATING b/UPDATING
index 99e2867db998..66c06135b4b2 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,17 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20200531:
+ AFFECTS: users of mail/postfix-policyd-spf-python
+ AUTHOR: yasu@utahime.org
+
+ This port is now deprecated because upstream project is superseded by its
+ successor. So uninstall this port and install mail/py-spf-engine instead.
+ Keep in mind that the path of configuration file is changed from
+ ${PREFIX}/etc/postfix-policyd-spf-python/policyd-spf.conf to
+ ${PREFIX}/etc/python-policyd-spf/policyd-spf.conf. So you need to move
+ it to new location unless you use the default one without changing.
+
20200526:
AFFECTS: users of databases/mariadb104-client, databases/mariadb104-server
AUTHOR: brnrd@FreeBSD.org
diff --git a/mail/Makefile b/mail/Makefile
index cd6fc80d9f18..9618f9f38fde 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -510,6 +510,7 @@
SUBDIR += py-pyspf
SUBDIR += py-pyzmail
SUBDIR += py-spambayes
+ SUBDIR += py-spf-engine
SUBDIR += py-validate_email
SUBDIR += pymsgauth
SUBDIR += pyzor
diff --git a/mail/postfix-policyd-spf-python/Makefile b/mail/postfix-policyd-spf-python/Makefile
index 637a8d6158e2..a7374d7073c3 100644
--- a/mail/postfix-policyd-spf-python/Makefile
+++ b/mail/postfix-policyd-spf-python/Makefile
@@ -3,6 +3,7 @@
PORTNAME= postfix-policyd-spf-python
PORTVERSION= 2.0.2
+PORTREVISION= 1
CATEGORIES= mail python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,6 +15,9 @@ COMMENT= Pure Python Postfix policy daemon for SPF checking
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/COPYING
+DEPRECATED= Use mail/py-spf-engine instead (Project is superseded by successor)
+EXPIRATION_DATE= 2020-08-31
+
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyspf>0:mail/py-pyspf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}authres>0:mail/py-authres@${PY_FLAVOR}
@@ -21,6 +25,8 @@ USES= python:3.3+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
+CONFLICTS= py*-spf-engine
+
PORTDOCS= CHANGES \
README \
README.per_user_whitelisting \
diff --git a/mail/py-spf-engine/Makefile b/mail/py-spf-engine/Makefile
new file mode 100644
index 000000000000..4225b3293d50
--- /dev/null
+++ b/mail/py-spf-engine/Makefile
@@ -0,0 +1,71 @@
+# Created by: Giel van Schijndel <me@mortis.eu>
+# $FreeBSD$
+
+PORTNAME= spf-engine
+PORTVERSION= 2.9.2
+CATEGORIES= mail python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= yasu@utahime.org
+COMMENT= SPF engine for Postfix policy server and milter implemented in Python
+
+LICENSE= APACHE20 GPLv2+
+LICENSE_COMB= multi
+LICENSE_FILE_APACHE20= ${WRKSRC}/COPYING
+LICENSE_FILE_GPLv2+ = ${WRKSRC}/GPL-2
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}authres>0:mail/py-authres@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}milter>0:mail/py-milter@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyspf>0:mail/py-pyspf@${PY_FLAVOR}
+
+USES= python:3.3+ shebangfix
+USE_PYTHON= autoplist distutils
+USE_RC_SUBR= pyspf-milter
+NO_ARCH= yes
+
+CONFLICTS= py*-postfix-policyd-spf-python
+
+USERS= pyspf-milter
+GROUPS= pyspf-milter
+
+PYSPF_MILTER_RUNDIR= /var/run/pyspf-milter
+
+PLIST_FILES= '@sample etc/python-policyd-spf/policyd-spf.conf.sample' \
+ '@dir(${USERS},${GROUPS},755) ${PYSPF_MILTER_RUNDIR}'
+
+SHEBANG_FILES= spf_engine/milter_spf.py \
+ spf_engine/policyd_spf.py
+
+PORTDOCS= CHANGES \
+ README \
+ README.per_user_whitelisting \
+ policyd-spf.conf.commented
+
+SUB_FILES= pkg-message
+SUB_LIST= PYTHON_CMD=${PYTHON_CMD} \
+ PYSPF_MILTER_RUNDIR=${PYSPF_MILTER_RUNDIR}
+
+OPTIONS_DEFINE= DOCS
+
+post-patch:
+ @${REINPLACE_CMD} -e "s|/usr/local/etc/|${PREFIX}/etc/|" \
+ ${WRKSRC}/spf_engine/milter_spf.py
+ @${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|" \
+ ${WRKSRC}/spf_engine/policyd_spf.py
+ @${REINPLACE_CMD} -e "s|/run|/var/run|" ${WRKSRC}/spf_engine/policydspfsupp.py
+ @${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|" -e "s|/usr/bin/|${PREFIX}/bin/|" \
+ ${WRKSRC}/policyd-spf.1 ${WRKSRC}/policyd-spf.conf.5 \
+ ${WRKSRC}/policyd-spf.peruser.5
+
+post-install:
+ @${MKDIR} ${STAGEDIR}/var/run/pyspf-milter \
+ ${STAGEDIR}${PREFIX}/etc/python-policyd-spf
+ ${INSTALL_DATA} ${WRKSRC}/policyd-spf.conf \
+ ${STAGEDIR}${PREFIX}/etc/python-policyd-spf/policyd-spf.conf.sample
+
+post-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}/${DOCSDIR}
+ cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/mail/py-spf-engine/distinfo b/mail/py-spf-engine/distinfo
new file mode 100644
index 000000000000..adb5d33c16f6
--- /dev/null
+++ b/mail/py-spf-engine/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1582568246
+SHA256 (spf-engine-2.9.2.tar.gz) = 188a8bc78f1ddb40f1b87a0b6fe2fa78efa0b4cc5d984ff19a53724bb5c28131
+SIZE (spf-engine-2.9.2.tar.gz) = 52737
diff --git a/mail/py-spf-engine/files/patch-setup.py b/mail/py-spf-engine/files/patch-setup.py
new file mode 100644
index 000000000000..1dbd9b028133
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-setup.py
@@ -0,0 +1,16 @@
+--- setup.py.orig 2019-10-27 01:15:11 UTC
++++ setup.py
+@@ -25,11 +25,8 @@ setup(name='spf-engine',
+ include_package_data=True,
+ data_files=[(os.path.join('share', 'man', 'man1'),
+ ['policyd-spf.1']), (os.path.join('share', 'man', 'man5'),
+- ['policyd-spf.conf.5']), (os.path.join('etc', 'python-policyd-spf'),
+- ['policyd-spf.conf']), (os.path.join('share', 'man', 'man5'),
+- ['policyd-spf.peruser.5']), (os.path.join('lib', 'systemd', 'system'),
+- ['system/pyspf-milter.service']),(os.path.join('etc', 'init.d'),
+- ['system/pyspf-milter']) ],
++ ['policyd-spf.conf.5']), (os.path.join('share', 'man', 'man5'),
++ ['policyd-spf.peruser.5'])],
+ classifiers = [
+ 'Development Status :: 5 - Production/Stable',
+ 'Environment :: No Input/Output (Daemon)',
diff --git a/mail/py-spf-engine/files/patch-spf__engine_milter__spf.py b/mail/py-spf-engine/files/patch-spf__engine_milter__spf.py
new file mode 100644
index 000000000000..cd8c2a41aaef
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-spf__engine_milter__spf.py
@@ -0,0 +1,10 @@
+--- spf_engine/milter_spf.py.orig 2020-02-26 02:21:41 UTC
++++ spf_engine/milter_spf.py
+@@ -37,7 +37,6 @@ import spf_engine.policydspfsupp as config
+ from spf_engine.util import drop_privileges
+ from spf_engine.policydspfsupp import _setExceptHook
+ from spf_engine.util import write_pid
+-from spf_engine.util import own_socketfile
+ from spf_engine.util import fold
+
+ __version__ = "2.9.2"
diff --git a/mail/py-spf-engine/files/pkg-message.in b/mail/py-spf-engine/files/pkg-message.in
new file mode 100644
index 000000000000..b80d6b6d4516
--- /dev/null
+++ b/mail/py-spf-engine/files/pkg-message.in
@@ -0,0 +1,76 @@
+[
+{ type: install
+ message: <<EOM
+#
+# Using policyd-spf with Postfix
+#
+
+Policyd-spf must be integrated with Postfix to be effective:
+
+ 1. Add to your postfix master.cf:
+
+ policyd-spf unix - n n - 0 spawn
+ user=nobody argv=%%PREFIX%%/bin/policyd-spf
+
+ 2. Configure the Postfix policy service in your main.cf so that the
+ "smtpd_recipient_restrictions" includes a call to the policyd-spf policy
+ filter. If you already have a "smtpd_recipient_restrictions" line, you can
+ add the "check_policy_service" command anywhere *after* the line which
+ reads "reject_unauth_destination" (otherwise you're system can become an
+ open relay).
+
+ smtpd_recipient_restrictions =
+ ...
+ reject_unauth_destination
+ check_policy_service unix:private/policyd-spf
+ ...
+
+ policyd-spf_time_limit = 3600
+
+ 3. Please consult the postfix documentation for more information on these and
+ other settings you may wish to have in the "smtpd_recipient_restrictions"
+ configuration.
+
+ 4. Reload postfix.
+
+#
+# Automatically starting pyspf-milter at boot time.
+#
+
+Add 'pyspf_milter_enable="YES"' to /etc/rc.conf.
+
+#
+# Using pyspf-milter with Sendmail
+#
+
+Following is an example configuration line to include in your sendmail.mc.
+
+INPUT_MAIL_FILTER(`pyspf-milter', `S=local:/var/run/pyspf-milter/pyspf-milter.sock')dnl
+
+#
+# Using pyspf-milter with Postfix
+#
+
+Integration of pyspf-milter into Postfix is like any milter (See Postfix's
+README_FILES/MILTER_README). But care is required to segregate outbound mail
+from inbound mail to be checked. Here is example using milter macros to keep
+the mail streams segregated.
+
+%%PREFIX%%/etc/postfix/main.cf:
+
+smtpd_milters = unix:/var/run/pyspf-milter/pyspf-milter.sock
+
+%%PREFIX%%/etc/postfix/master.cf:
+
+smtp inet n - - - - smtpd
+ ...
+ -o milter_macro_daemon_name=VERIFYING
+ ...
+
+%%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf:
+
+MacroList daemon_name|VERIFYING
+
+EOM
+}
+]
diff --git a/mail/py-spf-engine/files/pyspf-milter.in b/mail/py-spf-engine/files/pyspf-milter.in
new file mode 100644
index 000000000000..a46dff0a7068
--- /dev/null
+++ b/mail/py-spf-engine/files/pyspf-milter.in
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: pyspf_milter
+# REQUIRE: LOGIN
+# BEFORE: mail
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable pyspf_milter:
+#
+# pyspf_milter_enable (bool) Set to 'YES' to enable.
+# Default: NO
+# pyspf_milter_conffile (path) Location of configuration file.
+# Default: %%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf
+
+. /etc/rc.subr
+
+name=pyspf_milter
+rcvar=pyspf_milter_enable
+
+load_rc_config $name
+
+: ${pyspf_milter_enable:=NO}
+: ${pyspf_milter_conffile:=%%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf}
+
+command=/usr/sbin/daemon
+command_interpreter=%%PYTHON_CMD%%
+procname=%%PREFIX%%/bin/pyspf-milter
+command_args="-c -f ${procname} ${pyspf_milter_conffile}"
+pidfile=%%PYSPF_MILTER_RUNDIR%%/pyspf-milter.pid
+required_dirs=%%PYSPF_MILTER_RUNDIR%%
+required_files=${pyspf_milter_conffile}
+start_precmd=pyspf_milter_cleanup
+stop_postcmd=pyspf_milter_cleanup
+
+pyspf_milter_cleanup ()
+{
+ rm -f ${pidfile}
+}
+
+run_rc_command "$1"
diff --git a/mail/py-spf-engine/pkg-descr b/mail/py-spf-engine/pkg-descr
new file mode 100644
index 000000000000..582470742710
--- /dev/null
+++ b/mail/py-spf-engine/pkg-descr
@@ -0,0 +1,8 @@
+This project provides the SPF (Sender Policy Framework) back-end for both
+pypolicyd-spf (for which it was originally developed) and an future SPF
+milter using pymilter. The goal is to provide a common back-end for common
+features for support SPF integration with Postfix and Sendmail using both
+the Postfix policy service and the Sendmail milter protocol (also available
+with Postfix).
+
+WWW: https://launchpad.net/spf-engine