git: ffae45917307 - main - mail/py-postfix-mta-sts-resolver: Update to 1.4.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 31 Aug 2024 07:13:54 UTC
The branch main has been updated by nork:
URL: https://cgit.FreeBSD.org/ports/commit/?id=ffae45917307f2c041121fb752cac040e1b758ac
commit ffae45917307f2c041121fb752cac040e1b758ac
Author: Norikatsu Shigemura <nork@FreeBSD.org>
AuthorDate: 2024-08-31 07:12:52 +0000
Commit: Norikatsu Shigemura <nork@FreeBSD.org>
CommitDate: 2024-08-31 07:12:52 +0000
mail/py-postfix-mta-sts-resolver: Update to 1.4.0
- portlint/portfmt/portclippy happy.
- Cosmetic change and fix some minor issues.
- Add PostgreSQL backend support, and enable all backends.
- Add support to output operation logs, and default to
syslog via daemon(8).
ChangeLogs: https://github.com/Snawoot/postfix-mta-sts-resolver/compare/v1.1.2...v1.4.0
Approved by: hrs (mentor)
---
mail/py-postfix-mta-sts-resolver/Makefile | 35 ++++++++++---------
mail/py-postfix-mta-sts-resolver/distinfo | 6 ++--
mail/py-postfix-mta-sts-resolver/files/mta_sts.in | 42 ++++++++++++++++++-----
mail/py-postfix-mta-sts-resolver/pkg-descr | 14 ++++----
4 files changed, 63 insertions(+), 34 deletions(-)
diff --git a/mail/py-postfix-mta-sts-resolver/Makefile b/mail/py-postfix-mta-sts-resolver/Makefile
index 61a29fd3faeb..4b045a5c09cf 100644
--- a/mail/py-postfix-mta-sts-resolver/Makefile
+++ b/mail/py-postfix-mta-sts-resolver/Makefile
@@ -1,7 +1,6 @@
PORTNAME= postfix-mta-sts-resolver
-PORTVERSION= 1.1.2
-DISTVERSIONPREFIX=v
-PORTREVISION= 1
+PORTVERSION= 1.4.0
+DISTVERSIONPREFIX= v
CATEGORIES= mail python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,33 +11,37 @@ WWW= https://pypi.python.org/pypi/postfix-mta-sts-resolver
LICENSE= MIT
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiodns>=3.0.0:dns/py-aiodns@${PY_FLAVOR} \
+RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss \
+ ${PYTHON_PKGNAMEPREFIX}aiodns>=3.0.0:dns/py-aiodns@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}aiohttp>=3.4.4:www/py-aiohttp@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pyyaml>=3.12:devel/py-pyyaml@${PY_FLAVOR} \
- ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=3.12:devel/py-pyyaml@${PY_FLAVOR}
USES= python
USE_GITHUB= yes
-USE_PYTHON= autoplist distutils
-
GH_ACCOUNT= Snawoot
-
-OPTIONS_DEFINE= REDIS SQLITE UVLOOP
-
-REDIS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aioredis>=1.2.0:databases/py-aioredis@${PY_FLAVOR}
-SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiosqlite>=1.10.0:databases/py-aiosqlite@${PY_FLAVOR}
-UVLOOP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}uvloop>=0.11.0:devel/py-uvloop@${PY_FLAVOR}
-
+USE_PYTHON= autoplist distutils
USE_RC_SUBR= mta_sts
+NO_ARCH= yes
+
SUB_LIST= PYTHON_CMD=${PYTHON_CMD}
PLIST_FILES= "@sample etc/mta-sts-daemon.yml.sample"
+OPTIONS_DEFINE= PGSQL REDIS SQLITE UVLOOP
+OPTIONS_DEFAULT= PGSQL REDIS SQLITE UVLOOP
+
+UVLOOP_DESC= Event loop support
+PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asyncpg>=0.27.0:databases/py-asyncpg@${PY_FLAVOR}
+REDIS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}redis>=4.2.0:databases/py-redis@${PY_FLAVOR}
+SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiosqlite>=0.10.0:databases/py-aiosqlite@${PY_FLAVOR}
+UVLOOP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}uvloop>=0.11.0:devel/py-uvloop@${PY_FLAVOR}
+
post-extract:
${REINPLACE_CMD} -e 's|/etc/|${PREFIX}/etc/|' \
${WRKSRC}/postfix_mta_sts_resolver/defaults.py
post-install:
- ${CP} ${WRKSRC}/config_examples/mta-sts-daemon.yml.internal ${STAGEDIR}${PREFIX}/etc/mta-sts-daemon.yml.sample
+ ${INSTALL_DATA} ${WRKSRC}/config_examples/mta-sts-daemon.yml.internal \
+ ${STAGEDIR}${PREFIX}/etc/mta-sts-daemon.yml.sample
.include <bsd.port.mk>
diff --git a/mail/py-postfix-mta-sts-resolver/distinfo b/mail/py-postfix-mta-sts-resolver/distinfo
index 58fe68480400..404f125166fa 100644
--- a/mail/py-postfix-mta-sts-resolver/distinfo
+++ b/mail/py-postfix-mta-sts-resolver/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1657391229
-SHA256 (Snawoot-postfix-mta-sts-resolver-v1.1.2_GH0.tar.gz) = c7e49ce3e441ebe2d2a4644d6fde21b4eaecf84479314f56a20fec018b9f8e9e
-SIZE (Snawoot-postfix-mta-sts-resolver-v1.1.2_GH0.tar.gz) = 51618
+TIMESTAMP = 1695492126
+SHA256 (Snawoot-postfix-mta-sts-resolver-v1.4.0_GH0.tar.gz) = 6fe07c9076e329fe3a9a347d7f9f8b2885526067dd7ea906b8916cd0dd5040ab
+SIZE (Snawoot-postfix-mta-sts-resolver-v1.4.0_GH0.tar.gz) = 54627
diff --git a/mail/py-postfix-mta-sts-resolver/files/mta_sts.in b/mail/py-postfix-mta-sts-resolver/files/mta_sts.in
index 31e442cb7585..1190e5fffe28 100644
--- a/mail/py-postfix-mta-sts-resolver/files/mta_sts.in
+++ b/mail/py-postfix-mta-sts-resolver/files/mta_sts.in
@@ -8,9 +8,10 @@
# to enable this service:
#
# mta_sts_enable (bool): Set to NO by default.
-# Set it to YES to enable mta_sts.
-# mta_sts_config (path): Set to %%PREFIX%%/etc/mta-sts-daemon.yml
-# by default.
+# Set it to YES to enable mta_sts_daemon.
+# mta_sts_config (path): Set path to mta-sts-daemon.yml.
+# mta_sts_logfile (path): Set log file name or 'syslog'.
+# mta_sts_logverbosity (str): Set log verbosity(debug/info/warning/error/critical)
. /etc/rc.subr
@@ -20,18 +21,41 @@ rcvar=mta_sts_enable
load_rc_config $name
: ${mta_sts_enable:="NO"}
-: ${mta_sts_config="%%PREFIX%%/etc/mta-sts-daemon.yml"}
-: ${mta_sts_user="nobody"}
-
-pidfile=/var/run/${name}.pid
-command=%%PREFIX%%/bin/mta-sts-daemon
+: ${mta_sts_config:="%%PREFIX%%/etc/mta-sts-daemon.yml"}
+: ${mta_sts_user:="mailnull"}
+: ${mta_sts_group:="mailnull"}
+: ${mta_sts_logfile:="syslog"}
+: ${mta_sts_logverbosity:="info"}
+
+pidfile="/var/run/${name}.pid"
+command="%%PREFIX%%/bin/mta-sts-daemon"
command_interpreter="%%PYTHON_CMD%%"
+start_precmd="${name}_prestart"
start_cmd="${name}_start"
+mta_sts_prestart()
+{
+ if [ "$mta_sts_logfile" = "syslog" ]; then
+ # NOTHING TO DO #
+ elif touch "$mta_sts_logfile"; then
+ chown "$mta_sts_user":"$mta_sts_group" "$mta_sts_logfile"
+ else
+ err 3 "$mta_sts_logfile: cannot create"
+ fi
+}
+
mta_sts_start()
{
- /usr/sbin/daemon -u "${mta_sts_user}" -p "${pidfile}" "${command}" -c "${mta_sts_config}"
+ local logopts=""
+ local cmdopts="-v $mta_sts_logverbosity"
+
+ if [ "$mta_sts_logfile" = "syslog" ]; then
+ logopts="-S -T mta_sts -l mail -s $mta_sts_logverbosity"
+ else
+ cmdopts="$cmdopts -l $mta_sts_logfile"
+ fi
+ /usr/sbin/daemon -u "$mta_sts_user" -p "$pidfile" ${logopts} "$command" -c "$mta_sts_config" ${cmdopts}
}
run_rc_command "$1"
diff --git a/mail/py-postfix-mta-sts-resolver/pkg-descr b/mail/py-postfix-mta-sts-resolver/pkg-descr
index e4b76937f0b4..f7aeb5eec042 100644
--- a/mail/py-postfix-mta-sts-resolver/pkg-descr
+++ b/mail/py-postfix-mta-sts-resolver/pkg-descr
@@ -1,10 +1,12 @@
Daemon which provides TLS client policy for Postfix via socketmap, according to
-domain MTA-STS policy. Current support of RFC8461 is limited - daemon lacks
-some minor features:
+domain MTA-STS policy. Current support of RFC8461 is limited:
- - Proactive policy fetch
- - Fetch error reporting
- - Fetch ratelimit (but actual fetch rate partially restricted with cache_grace config option).
+ - MTA-STS policy overrides DANE TLS authentication against RFC 8461, 2.
+ - Daemon lacks some minor features:
+ - Fetch error reporting.
+ - Fetch ratelimit (but actual fetch rate partially restricted with
+ cache_grace config option).
Server has configurable cache backend which allows to store cached STS policies
-in memory (internal), file (sqlite) or in Redis database (redis).
+in memory (internal), file (sqlite), Redis database (redis) or in PostgreSQL
+database (postgres).