Skip to content

Commit

Permalink
mail/py-dkimpy-milter: New port
Browse files Browse the repository at this point in the history
This is a DKIM signing and verification milter. It has been tested
with both Postfix and Sendmail.

Of note: this supports RFC8463 ED25519-SHA256 DKIM signatures
  • Loading branch information
infracaninophile committed Aug 5, 2023
1 parent 4a65b1d commit 6939cc6
Show file tree
Hide file tree
Showing 8 changed files with 113 additions and 2 deletions.
2 changes: 1 addition & 1 deletion GIDs
Expand Up @@ -264,7 +264,7 @@ teleirc:*:320:
caldera:*:321:
tlsc:*:322:
soju:*:323:
# free: 324
dkimpy-milter:*:324:
dkfilter:*:325:
smfs:*:326:
_reticulum:*:327:
Expand Down
2 changes: 1 addition & 1 deletion UIDs
Expand Up @@ -269,7 +269,7 @@ teleirc:*:320:320::0:0:Telegram and IRC bridge:/nonexistent:/usr/sbin/nologin
caldera:*:321:321::0:0:Caldera Mitre user:/nonexistent:/usr/sbin/nologin
tlsc:*:322:322::0:0:TLS connect daemon:/nonexistent:/usr/sbin/nologin
soju:*:323:323::0:0:soju:/nonexistent:/usr/sbin/nologin
# free: 324
dkimpy-milter:*:324:324::0:0:Dkimpy Milter:/nonexistent:/usr/sbin/nologin
dkfilter:*:325:325::0:0:DK Filter Owner:/nonexistent:/usr/sbin/nologin
smfs:*:326:326::0:0:SMFSAV Owner:/nonexistent:/usr/sbin/nologin
_reticulum:*:327:327::0:0:Reticulum Daemon:/nonexistent:/usr/sbin/nologin
Expand Down
1 change: 1 addition & 0 deletions mail/Makefile
Expand Up @@ -500,6 +500,7 @@
SUBDIR += py-django-mailbox
SUBDIR += py-django-mailman3
SUBDIR += py-dkimpy
SUBDIR += py-dkimpy-milter
SUBDIR += py-email-reply-parser
SUBDIR += py-email-validator
SUBDIR += py-flanker
Expand Down
43 changes: 43 additions & 0 deletions mail/py-dkimpy-milter/Makefile
@@ -0,0 +1,43 @@
PORTNAME= dkimpy-milter
PORTVERSION= 1.2.3
CATEGORIES= mail python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

MAINTAINER= matthew@FreeBSD.org
COMMENT= DKIM signing and verification milter
WWW= https://launchpad.net/dkimpy-milter

LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING

BUILD_DEPENDS= ${PY_SETUPTOOLS}

RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dkimpy>=1.1.0:mail/py-dkimpy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}milter>=1.0.5:mail/py-milter@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}authres>=1.1.0:mail/py-authres@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pynacl>=0:security/py-pynacl@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dnspython>=1.16.0:dns/py-dnspython@${PY_FLAVOR}

USES= python:3.9+ # Some dependencies don't support 3.8
USE_PYTHON= autoplist concurrent distutils
USE_RC_SUBR= dkimpy-milter
SUB_LIST+= PYTHON_CMD=${PYTHON_CMD}

USERS= dkimpy-milter
GROUPS= dkimpy-milter

PYDISTUTILS_CONFIGUREARGS= expand --rundir=/var/run

NO_ARCH= yes

PLIST_FILES= '@dir(${USERS},${GROUPS},755) /var/run/dkimpy-milter' \
'@sample etc/dkimpy-milter/dkimpy-milter.conf.sample'

post-install:
@${MKDIR} ${STAGEDIR}/var/run/dkimpy-milter \
${STAGEDIR}${PREFIX}/etc/dkimpy-milter
${INSTALL_DATA} ${WRKSRC}/etc/dkimpy-milter.conf \
${STAGEDIR}${PREFIX}/etc/dkimpy-milter/dkimpy-milter.conf.sample

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions mail/py-dkimpy-milter/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1690031008
SHA256 (dkimpy-milter-1.2.3.tar.gz) = cea53d17a7e9e48940c2e8ae549ecfc270876538f1dc82b870dc420a6a0f66ec
SIZE (dkimpy-milter-1.2.3.tar.gz) = 54972
47 changes: 47 additions & 0 deletions mail/py-dkimpy-milter/files/dkimpy-milter.in
@@ -0,0 +1,47 @@
#!/bin/sh

# PROVIDE: dkimpy_milter
# REQUIRE: DAEMON
# BEFORE: mail
# KEYWORKD: shutdown

# Define these dkimpy_milter_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/dkimpy_milter
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
#

. /etc/rc.subr

name="dkimpy_milter"
desc="DKIM Milter Daemon"
rcvar="dkimpy_milter_enable"

load_rc_config $name

: ${dkimpy_milter_enable:="NO"}
: ${dkimpy_milter_socket:="local:/var/run/dkimpy-milter/dkimpy-milter.sock"}
: ${dkimpy_milter_pidfile:="/var/run/dkimpy-milter/dkimpy-milter.pid"}
: ${dkimpy_milter_conffile:="%%PREFIX%%/etc/dkimpy-milter/dkimpy-milter.conf"}

command=/usr/sbin/daemon
command_interpreter=%%PYTHON_CMD%%
procname=%%PREFIX%%/bin/dkimpy-milter
command_args="-c -f ${procname} ${dkimpy_milter_conffile}"

start_precmd=dkimpy_milter_precmd
stop_postcmd=dkimpy_milter_postcmd

dkimpy_milter_precmd()
{
/bin/rm -f "${dkimpy_milter_pidfile}"
}

dkimpy_milter_postcmd()
{
/bin/rm -f "${dkimpy_milter_pidfile}"
}

run_rc_command "$1"
15 changes: 15 additions & 0 deletions mail/py-dkimpy-milter/files/patch-setup.py
@@ -0,0 +1,15 @@
--- setup.py.orig 2023-02-27 01:07:17 UTC
+++ setup.py
@@ -118,11 +118,7 @@ setup(
include_package_data=True,
data_files=[(os.path.join('share', 'man', 'man5'),
['man/dkimpy-milter.conf.5']), (os.path.join('share', 'man', 'man8'),
- ['man/dkimpy-milter.8']), (os.path.join('etc', 'dkimpy-milter'),
- ['etc/dkimpy-milter.conf']), (os.path.join('lib', 'systemd', 'system'),
- ['system/dkimpy-milter.service']),(os.path.join('etc', 'init.d'),
- ['system/dkimpy-milter']), (os.path.join('etc', 'init.d'),
- ['system/dkimpy-milter.openrc'])],
+ ['man/dkimpy-milter.8'])],
zip_safe = False,
cmdclass={
'expand': FileMacroExpand,
2 changes: 2 additions & 0 deletions mail/py-dkimpy-milter/pkg-descr
@@ -0,0 +1,2 @@
This is a DKIM signing and verification milter. It has been tested
with both Postfix and Sendmail.

0 comments on commit 6939cc6

Please sign in to comment.