git: d3c11acd21b7 - 2022Q3 - mail/py-spf-engine: Miscellaneous bug fixes and improvements
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 05 Sep 2022 20:26:42 UTC
The branch 2022Q3 has been updated by yasu:
URL: https://cgit.FreeBSD.org/ports/commit/?id=d3c11acd21b75a67ae6d253b33d0aa427862a8e4
commit d3c11acd21b75a67ae6d253b33d0aa427862a8e4
Author: Yasuhiro Kimura <yasu@FreeBSD.org>
AuthorDate: 2022-09-05 16:31:19 +0000
Commit: Yasuhiro Kimura <yasu@FreeBSD.org>
CommitDate: 2022-09-05 20:26:18 +0000
mail/py-spf-engine: Miscellaneous bug fixes and improvements
* Fix runtime error of pyspf-milter that happens when either 'UMask'
or 'IntHosts' is set in configuration file.
* Stop installing backup files.
* Make miscellaneous paths consistent between library files, man
pages, pkg-message and rc.d script.
* Remove CONFLICTS as mail/postfix-policyd-spf-python is removed from
ports tree
MFH: 2022Q3
(cherry picked from commit 00b787288fc81a2e5dba2a62a2627da760772b50)
---
mail/py-spf-engine/Makefile | 19 +++------
mail/py-spf-engine/files/patch-policyd-spf.1 | 48 ++++++++++++++++++++++
mail/py-spf-engine/files/patch-policyd-spf.conf.5 | 36 ++++++++++++++++
.../files/patch-policyd-spf.peruser.5 | 20 +++++++++
.../files/patch-spf__engine_milter__spf.py | 11 +++++
.../files/patch-spf__engine_policyd__spf.py | 11 +++++
.../files/patch-spf__engine_policydspfsupp.py | 25 +++++++++++
mail/py-spf-engine/files/pyspf-milter.in | 4 +-
8 files changed, 159 insertions(+), 15 deletions(-)
diff --git a/mail/py-spf-engine/Makefile b/mail/py-spf-engine/Makefile
index 9de01c284770..926dc2e91fe4 100644
--- a/mail/py-spf-engine/Makefile
+++ b/mail/py-spf-engine/Makefile
@@ -2,6 +2,7 @@
PORTNAME= spf-engine
DISTVERSION= 2.9.3
+PORTREVISION= 1
CATEGORIES= mail python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -24,19 +25,14 @@ USE_RC_SUBR= pyspf-milter
SHEBANG_FILES= spf_engine/milter_spf.py spf_engine/policyd_spf.py
-CONFLICTS= py*-postfix-policyd-spf-python
-
NO_ARCH= yes
SUB_FILES= pkg-message
-SUB_LIST= PYSPF_MILTER_RUNDIR=${PYSPF_MILTER_RUNDIR} \
- PYTHON_CMD=${PYTHON_CMD}
+SUB_LIST= PYTHON_CMD=${PYTHON_CMD}
USERS= pyspf-milter
GROUPS= pyspf-milter
-PYSPF_MILTER_RUNDIR= /var/run/pyspf-milter
-
-PLIST_FILES= '@dir(${USERS},${GROUPS},755) ${PYSPF_MILTER_RUNDIR}' \
+PLIST_FILES= '@dir(${USERS},${GROUPS},755) /var/run/pyspf-milter' \
'@sample etc/python-policyd-spf/policyd-spf.conf.sample'
PORTDOCS= CHANGES README README.per_user_whitelisting \
@@ -45,14 +41,11 @@ PORTDOCS= CHANGES README README.per_user_whitelisting \
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/|" \
+ @${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|" \
+ ${WRKSRC}/spf_engine/milter_spf.py ${WRKSRC}/spf_engine/policyd_spf.py \
${WRKSRC}/policyd-spf.1 ${WRKSRC}/policyd-spf.conf.5 \
${WRKSRC}/policyd-spf.peruser.5
+ @${FIND} ${WRKSRC} \( -name '*.bak' -or -name '*.orig' \) -delete
post-install:
@${MKDIR} ${STAGEDIR}/var/run/pyspf-milter \
diff --git a/mail/py-spf-engine/files/patch-policyd-spf.1 b/mail/py-spf-engine/files/patch-policyd-spf.1
new file mode 100644
index 000000000000..1ab3cd78a9a3
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-policyd-spf.1
@@ -0,0 +1,48 @@
+--- policyd-spf.1.orig 2020-04-18 06:04:36 UTC
++++ policyd-spf.1
+@@ -144,12 +144,12 @@ $ policyd-spf (Start using installed config file)
+
+ $ policyd-spf \-h (Display usage message)
+
+-$ policyd-spf /etc/policyd-spf/policyd-spf.conf (Config file name to use)
++$ policyd-spf %%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf (Config file name to use)
+
+ Configuration options are described in the sample configuration file provided
+ with the package (policyd-spf.conf.commented) and in policyd-spf.conf(5). The
+ provided setup.py installs an uncommented configuration file in
+-/etc/policyd-spf/.
++%%PREFIX%%/etc/python-policyd-spf/.
+
+ Additionally, whitelisting certain IP addresses or IP addresses used by listed
+ domains from SPF checks is supported. Skipping SPF checks for local submission
+@@ -186,7 +186,7 @@ script is smoothed over time
+ The default policy_time_limit is 1000 seconds. This may be too short for some
+ SMTP transactions to complete. As recommended in SMTPD_POLICY_README, this
+ should be extended to 3600 seconds. To do so, set "policy_time_limit = 3600"
+-in /etc/postfix/main.cf.
++in %%PREFIX%%/etc/postfix/main.cf.
+
+ Messages that get a Fail SPF result will be rejected. Messages that get a
+ Permerror are, by default, treated as if they had no SPF record. Messages
+@@ -244,10 +244,10 @@ followed by a empty line:
+
+ .SH "POSTFIX INTEGRATION"
+
+- 1. Add the following to /etc/postfix/master.cf:
++ 1. Add the following to %%PREFIX%%/etc/postfix/master.cf:
+
+ policyd-spf unix - n n - 0 spawn
+- user=nobody argv=/usr/bin/policyd-spf
++ user=nobody argv=%%PREFIX%%/bin/policyd-spf
+
+ NOTE: Check the path to both the installed Python 3 interpreter and
+ policyd-spf. These vary from system to system. To use non-default
+@@ -257,7 +257,7 @@ followed by a empty line:
+ that instead. Python and Python 3 versions prior to 3.3 are not
+ supported.
+
+- 2. Configure the Postfix policy service in /etc/postfix/main.cf:
++ 2. Configure the Postfix policy service in %%PREFIX%%/etc/postfix/main.cf:
+
+ smtpd_recipient_restrictions =
+ ...
diff --git a/mail/py-spf-engine/files/patch-policyd-spf.conf.5 b/mail/py-spf-engine/files/patch-policyd-spf.conf.5
new file mode 100644
index 000000000000..6808c160c5ca
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-policyd-spf.conf.5
@@ -0,0 +1,36 @@
+--- policyd-spf.conf.5.orig 2020-04-18 06:04:36 UTC
++++ policyd-spf.conf.5
+@@ -137,7 +137,7 @@ policyd-spf python configuration parameters
+
+ .SH "USAGE"
+ Usage:
+- policyd-spf [/etc/policyd-spf/policyd-spf.conf]
++ policyd-spf [%%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf]
+
+ .SH "OTHER DOCUMENTATION"
+ This documentation assumes you have read Postfix's README_FILES/
+@@ -162,7 +162,7 @@ file.
+
+ Configuration options are described here and in the configuration file
+ provided with the package. The provided setup.py installs this configuration
+-file in /etc/policyd-spf/.
++file in %%PREFIX%%/etc/python-policyd-spf/.
+
+ Additionally, whitelisting certain IP addresses from SPF checks is supported.
+ This man page and the sample configuration file show the format to use.
+@@ -684,12 +684,12 @@ visible to milters such as DMARC milter.
+ To use this feature requires additional postfix configuration to execute the
+ second, mock, instance of the policy server:
+
+- Add a second service to /etc/postfix/master.cf:
++ Add a second service to %%PREFIX%%/etc/postfix/master.cf:
+
+ policyd-spf-mock unix - n n - 0 spawn
+- user=nobody argv=/usr/bin/policyd-spf '/etc/pypolicyd-spf/mock
++ user=nobody argv=%%PREFIX%%/bin/policyd-spf '%%PREFIX%%/etc/pypolicyd-spf/mock
+
+-Configure the Postfix additional policy service in /etc/postfix/main.cf to
++Configure the Postfix additional policy service in %%PREFIX%%/etc/postfix/main.cf to
+ run before the regular service:
+
+ smtpd_recipient_restrictions =
diff --git a/mail/py-spf-engine/files/patch-policyd-spf.peruser.5 b/mail/py-spf-engine/files/patch-policyd-spf.peruser.5
new file mode 100644
index 000000000000..753aee30c928
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-policyd-spf.peruser.5
@@ -0,0 +1,20 @@
+--- policyd-spf.peruser.5.orig 2022-09-05 16:01:49 UTC
++++ policyd-spf.peruser.5
+@@ -137,7 +137,7 @@ policyd-spf python per-user configuration
+
+ .SH "USAGE"
+ Usage:
+- policyd-spf [/etc/policyd-spf/policyd-spf.conf]
++ policyd-spf [%%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf]
+
+ .SH "OTHER DOCUMENTATION"
+ This documentation assumes you have read Postfix's README_FILES/
+@@ -196,7 +196,7 @@ The text file option is useful for testing and when on
+ users require per-user configurations. It is specified in the main
+ configuration file:
+
+-"Per_User = text,/etc/pypolicyd-spf/userconf"
++"Per_User = text,%%PREFIX%%/etc/python-pypolicyd-spf/userconf"
+
+ Lines beginning with "#" are treated as comments and ignored. The location of
+ the file is determined by the system administrator. No default file is
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..6c384d78aa85
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-spf__engine_milter__spf.py
@@ -0,0 +1,11 @@
+--- spf_engine/milter_spf.py.orig 2022-09-05 15:47:42 UTC
++++ spf_engine/milter_spf.py
+@@ -207,7 +207,7 @@ class spfMilter(Milter.Base):
+ def main():
+ # Ugh, but there's no easy way around this.
+ global milterconfig
+- configFile = '/usr/local/etc/python-policyd-spf/policyd-spf.conf'
++ configFile = '%%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf'
+ if len(sys.argv) > 1:
+ if sys.argv[1] in ('-?', '--help', '-h'):
+ print('usage: pyspf-milter [<configfilename>]')
diff --git a/mail/py-spf-engine/files/patch-spf__engine_policyd__spf.py b/mail/py-spf-engine/files/patch-spf__engine_policyd__spf.py
new file mode 100644
index 000000000000..537f08fd7cca
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-spf__engine_policyd__spf.py
@@ -0,0 +1,11 @@
+--- spf_engine/policyd_spf.py.orig 2022-09-05 15:47:42 UTC
++++ spf_engine/policyd_spf.py
+@@ -46,7 +46,7 @@ def main():
+
+ # load config file {{{1
+ # Default location:
+- configFile = '/etc/python-policyd-spf/policyd-spf.conf'
++ configFile = '%%PREFIX%%/etc/python-policyd-spf/policyd-spf.conf'
+ if len(sys.argv) > 1:
+ if sys.argv[1] in ( '-?', '--help', '-h' ):
+ print('usage: policyd-spf [<configfilename>]')
diff --git a/mail/py-spf-engine/files/patch-spf__engine_policydspfsupp.py b/mail/py-spf-engine/files/patch-spf__engine_policydspfsupp.py
new file mode 100644
index 000000000000..39968058e44d
--- /dev/null
+++ b/mail/py-spf-engine/files/patch-spf__engine_policydspfsupp.py
@@ -0,0 +1,25 @@
+--- spf_engine/policydspfsupp.py.orig 2020-04-18 06:04:36 UTC
++++ spf_engine/policydspfsupp.py
+@@ -47,8 +47,8 @@ defaultConfigData = {
+ 'No_Mail' : False,
+ 'Mock' : False,
+ # For milter front end
+- 'Socket': 'local:/run/pyspf-milter/pyspf-milter.sock',
+- 'PidFile': '/run/pyspf-milter/pyspf-milter.pid',
++ 'Socket': 'local:/var/run/pyspf-milter/pyspf-milter.sock',
++ 'PidFile': '/var/run/pyspf-milter/pyspf-milter.pid',
+ 'UserID': 'pyspf-milter',
+ 'UMask': 7,
+ 'InternalHosts': '127.0.0.1',
+@@ -153,9 +153,9 @@ def _readConfigFile(path, configData = None, configGlo
+ 'Socket': str,
+ 'PidFile': str,
+ 'UserID': str,
+- 'UMask': 'int',
++ 'UMask': int,
+ 'InternalHosts': str,
+- 'IntHosts': 'bool',
++ 'IntHosts': bool,
+ 'MacroListVerify': str,
+ }
+
diff --git a/mail/py-spf-engine/files/pyspf-milter.in b/mail/py-spf-engine/files/pyspf-milter.in
index 2019e2bf129f..a21e5a5c4da8 100644
--- a/mail/py-spf-engine/files/pyspf-milter.in
+++ b/mail/py-spf-engine/files/pyspf-milter.in
@@ -26,8 +26,8 @@ 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%%
+pidfile=/var/run/pyspf-milter/pyspf-milter.pid
+required_dirs=/var/run/pyspf-milter
required_files=${pyspf_milter_conffile}
start_precmd=pyspf_milter_cleanup
stop_postcmd=pyspf_milter_cleanup