Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 May 2020 13:49:28 +0000 (UTC)
From:      "Danilo G. Baio" <dbaio@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r537162 - in head: . mail mail/postfix-policyd-spf-python mail/py-spf-engine mail/py-spf-engine/files
Message-ID:  <202005311349.04VDnSYS080522@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dbaio
Date: Sun May 31 13:49:28 2020
New Revision: 537162
URL: https://svnweb.freebsd.org/changeset/ports/537162

Log:
  Add mail/py-spf-engine, Deprecate mail/postfix-policyd-spf-python
  
  Give time to users to change their env
  
  The new port is the successor, it supports milter feature and its
  config file is in another path.
  
  PR:		244424
  Submitted by:	Yasuhiro KIMURA <yasu@utahime.org> (maintainer)

Added:
  head/mail/py-spf-engine/
     - copied from r537161, head/mail/postfix-policyd-spf-python/
  head/mail/py-spf-engine/files/patch-spf__engine_milter__spf.py   (contents, props changed)
  head/mail/py-spf-engine/files/pyspf-milter.in   (contents, props changed)
Modified:
  head/GIDs
  head/UIDs
  head/UPDATING
  head/mail/Makefile
  head/mail/postfix-policyd-spf-python/Makefile
  head/mail/py-spf-engine/Makefile
  head/mail/py-spf-engine/distinfo
  head/mail/py-spf-engine/files/patch-setup.py
  head/mail/py-spf-engine/files/pkg-message.in
  head/mail/py-spf-engine/pkg-descr

Modified: head/GIDs
==============================================================================
--- head/GIDs	Sun May 31 13:11:51 2020	(r537161)
+++ head/GIDs	Sun May 31 13:49:28 2020	(r537162)
@@ -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:

Modified: head/UIDs
==============================================================================
--- head/UIDs	Sun May 31 13:11:51 2020	(r537161)
+++ head/UIDs	Sun May 31 13:49:28 2020	(r537162)
@@ -825,7 +825,7 @@ bitmark-recorder:*:873:873::0:0:Bitmark Property Recor
 # 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

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Sun May 31 13:11:51 2020	(r537161)
+++ head/UPDATING	Sun May 31 13:49:28 2020	(r537162)
@@ -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

Modified: head/mail/Makefile
==============================================================================
--- head/mail/Makefile	Sun May 31 13:11:51 2020	(r537161)
+++ head/mail/Makefile	Sun May 31 13:49:28 2020	(r537162)
@@ -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

Modified: head/mail/postfix-policyd-spf-python/Makefile
==============================================================================
--- head/mail/postfix-policyd-spf-python/Makefile	Sun May 31 13:11:51 2020	(r537161)
+++ head/mail/postfix-policyd-spf-python/Makefile	Sun May 31 13:49:28 2020	(r537162)
@@ -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,12 +15,17 @@ COMMENT=	Pure Python Postfix policy daemon for SPF che
 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}
 
 USES=		python:3.3+
 USE_PYTHON=	autoplist distutils
 NO_ARCH=	yes
+
+CONFLICTS=	py*-spf-engine
 
 PORTDOCS=	CHANGES \
 		README \

Modified: head/mail/py-spf-engine/Makefile
==============================================================================
--- head/mail/postfix-policyd-spf-python/Makefile	Sun May 31 13:11:51 2020	(r537161)
+++ head/mail/py-spf-engine/Makefile	Sun May 31 13:49:28 2020	(r537162)
@@ -1,49 +1,68 @@
 # Created by: Giel van Schijndel <me@mortis.eu>
 # $FreeBSD$
 
-PORTNAME=	postfix-policyd-spf-python
-PORTVERSION=	2.0.2
+PORTNAME=	spf-engine
+PORTVERSION=	2.9.2
 CATEGORIES=	mail python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-DISTNAME=	pypolicyd-spf-${PORTVERSION}
 
 MAINTAINER=	yasu@utahime.org
-COMMENT=	Pure Python Postfix policy daemon for SPF checking
+COMMENT=	SPF engine for Postfix policy server and milter implemented in Python
 
-LICENSE=	APACHE20
-LICENSE_FILE=	${WRKSRC}/COPYING
+LICENSE=	APACHE20 GPLv2+
+LICENSE_COMB=	multi
+LICENSE_FILE_APACHE20=	${WRKSRC}/COPYING
+LICENSE_FILE_GPLv2+ =	${WRKSRC}/GPL-2
 
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pyspf>0:mail/py-pyspf@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}authres>0:mail/py-authres@${PY_FLAVOR}
+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+
+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
 
-PKGMESSAGE=	${WRKSRC}/pkg-message
-
 SUB_FILES=	pkg-message
+SUB_LIST=	PYTHON_CMD=${PYTHON_CMD} \
+		PYSPF_MILTER_RUNDIR=${PYSPF_MILTER_RUNDIR}
 
 OPTIONS_DEFINE=	DOCS
 
 post-patch:
-	@${MV} ${WRKSRC}/policyd-spf.conf ${WRKSRC}/policyd-spf.conf.sample
-	@${REINPLACE_CMD} -e "s|/etc/python-policyd-spf/|${PREFIX}/etc/postfix-policyd-spf-python/|" \
-		${WRKSRC}/policyd-spf
-	@${REINPLACE_CMD} -e "s|/etc/policyd-spf/|${PREFIX}/etc/postfix-policyd-spf-python/|" \
-		-e "s|/usr/bin/policyd-spf|${PREFIX}/bin/policyd-spf|" \
-		-e "s|/etc/postfix/|${LOCALBASE}/etc/postfix/|" ${WRKSRC}/policyd-spf.1
-	@${REINPLACE_CMD} -e "s|/etc/policyd-spf/|${PREFIX}/etc/postfix-policyd-spf-python/|" \
-		${WRKSRC}/policyd-spf.conf.5
-	@${REINPLACE_CMD} -e "s|/etc/policyd-spf/|${PREFIX}/etc/postfix-policyd-spf-python/|" \
-		-e "s|/etc/pypolicyd-spf/|${PREFIX}/etc/postfix-policyd-spf-python/|" \
+	@${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}

Modified: head/mail/py-spf-engine/distinfo
==============================================================================
--- head/mail/postfix-policyd-spf-python/distinfo	Sun May 31 13:11:51 2020	(r537161)
+++ head/mail/py-spf-engine/distinfo	Sun May 31 13:49:28 2020	(r537162)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1513282791
-SHA256 (pypolicyd-spf-2.0.2.tar.gz) = df9cf888583c1003ff8dd2f0c8c1e5f46de466b56de5ce56eed5f42765f0a8da
-SIZE (pypolicyd-spf-2.0.2.tar.gz) = 38546
+TIMESTAMP = 1582568246
+SHA256 (spf-engine-2.9.2.tar.gz) = 188a8bc78f1ddb40f1b87a0b6fe2fa78efa0b4cc5d984ff19a53724bb5c28131
+SIZE (spf-engine-2.9.2.tar.gz) = 52737

Modified: head/mail/py-spf-engine/files/patch-setup.py
==============================================================================
--- head/mail/postfix-policyd-spf-python/files/patch-setup.py	Sun May 31 13:11:51 2020	(r537161)
+++ head/mail/py-spf-engine/files/patch-setup.py	Sun May 31 13:49:28 2020	(r537162)
@@ -1,17 +1,16 @@
---- setup.py.orig	2014-06-04 05:08:20 UTC
+--- setup.py.orig	2019-10-27 01:15:11 UTC
 +++ setup.py
-@@ -13,10 +13,10 @@ setup(name='pypolicyd-spf',
-       py_modules=['policydspfsupp', 'policydspfuser'],
-       keywords = ['Postfix','spf','email'],
-       scripts = ['policyd-spf'],
--      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'),
-+      data_files=[(os.path.join('man', 'man1'),
-+          ['policyd-spf.1']), (os.path.join('man', 'man5'),
-+          ['policyd-spf.conf.5']), (os.path.join('etc', 'postfix-policyd-spf-python'),
-+          ['policyd-spf.conf.sample']), (os.path.join('man', 'man5'),
-           ['policyd-spf.peruser.5'])],
-       classifiers = [
+@@ -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)',

Added: head/mail/py-spf-engine/files/patch-spf__engine_milter__spf.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/mail/py-spf-engine/files/patch-spf__engine_milter__spf.py	Sun May 31 13:49:28 2020	(r537162)
@@ -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"

Modified: head/mail/py-spf-engine/files/pkg-message.in
==============================================================================
--- head/mail/postfix-policyd-spf-python/files/pkg-message.in	Sun May 31 13:11:51 2020	(r537161)
+++ head/mail/py-spf-engine/files/pkg-message.in	Sun May 31 13:49:28 2020	(r537162)
@@ -2,10 +2,10 @@
 { type: install
   message: <<EOM
 #
-# To configure Postfix
+# Using policyd-spf with Postfix
 #
 
-This package must be integrated with Postfix to be effective:
+Policyd-spf must be integrated with Postfix to be effective:
 
  1. Add to your postfix master.cf:
 
@@ -32,6 +32,45 @@ This package must be integrated with Postfix to be eff
      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
 }
 ]

Added: head/mail/py-spf-engine/files/pyspf-milter.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/mail/py-spf-engine/files/pyspf-milter.in	Sun May 31 13:49:28 2020	(r537162)
@@ -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"

Modified: head/mail/py-spf-engine/pkg-descr
==============================================================================
--- head/mail/postfix-policyd-spf-python/pkg-descr	Sun May 31 13:11:51 2020	(r537161)
+++ head/mail/py-spf-engine/pkg-descr	Sun May 31 13:49:28 2020	(r537162)
@@ -1,4 +1,8 @@
-python-policyd-spf is a Postfix SMTPd policy engine for SPF checking. It is
-implemented in pure Python and uses the python-spf module.
+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/pypolicyd-spf/
+WWW: https://launchpad.net/spf-engine



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202005311349.04VDnSYS080522>