pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/mail/p5-Qmail-Deliverable
Module Name: pkgsrc
Committed By: schmonz
Date: Wed Jan 10 11:51:46 UTC 2024
Added Files:
pkgsrc/mail/p5-Qmail-Deliverable: DESCR Makefile distinfo
pkgsrc/mail/p5-Qmail-Deliverable/patches:
patch-lib_Qmail_Deliverable.pm
patch-lib_Qmail_Deliverable_Comparison.pod
patch-qpsmtpd-plugin_qmail__deliverable
Log Message:
Add p5-Qmail-Deliverable: Deliverability check daemon for qmail
qmail-smtpd does not know if a user exists. Lots of resources are wasted by
scanning mail for spam and viruses for addresses that do not exist anyway.
A replacement smtpd written in Perl could use this module to quickly verify
that a local email address is (probably) actually in use.
This module comes with a daemon program called qmail-deliverabled and a module
called Qmail::Deliverable::Client that copies the entire public interface, but
queries the daemon. Typically, the daemon runs as the root user, and the client
is used by the unprivileged smtpd.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/mail/p5-Qmail-Deliverable/DESCR \
pkgsrc/mail/p5-Qmail-Deliverable/Makefile \
pkgsrc/mail/p5-Qmail-Deliverable/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable.pm \
pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable_Comparison.pod \
pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-qpsmtpd-plugin_qmail__deliverable
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: pkgsrc/mail/p5-Qmail-Deliverable/DESCR
diff -u /dev/null pkgsrc/mail/p5-Qmail-Deliverable/DESCR:1.1
--- /dev/null Wed Jan 10 11:51:46 2024
+++ pkgsrc/mail/p5-Qmail-Deliverable/DESCR Wed Jan 10 11:51:45 2024
@@ -0,0 +1,10 @@
+qmail-smtpd does not know if a user exists. Lots of resources are wasted by
+scanning mail for spam and viruses for addresses that do not exist anyway.
+
+A replacement smtpd written in Perl could use this module to quickly verify
+that a local email address is (probably) actually in use.
+
+This module comes with a daemon program called qmail-deliverabled and a module
+called Qmail::Deliverable::Client that copies the entire public interface, but
+queries the daemon. Typically, the daemon runs as the root user, and the client
+is used by the unprivileged smtpd.
Index: pkgsrc/mail/p5-Qmail-Deliverable/Makefile
diff -u /dev/null pkgsrc/mail/p5-Qmail-Deliverable/Makefile:1.1
--- /dev/null Wed Jan 10 11:51:46 2024
+++ pkgsrc/mail/p5-Qmail-Deliverable/Makefile Wed Jan 10 11:51:45 2024
@@ -0,0 +1,28 @@
+# $NetBSD: Makefile,v 1.1 2024/01/10 11:51:45 schmonz Exp $
+
+DISTNAME= Qmail-Deliverable-1.07
+PKGNAME= p5-${DISTNAME}
+CATEGORIES= mail
+MASTER_SITES= ${MASTER_SITE_PERL_CPAN:=../../authors/id/J/JU/JUERD/}
+
+MAINTAINER= schmonz%NetBSD.org@localhost
+HOMEPAGE= https://metacpan.org/pod/Qmail::Deliverable
+COMMENT= Deliverability check daemon for qmail
+LICENSE= public-domain
+
+PERL5_PACKLIST= auto/Qmail/Deliverable/.packlist
+
+SUBST_CLASSES+= varqmail
+SUBST_STAGE.varqmail= pre-configure
+SUBST_FILES.varqmail= qpsmtpd-plugin/qmail_deliverable
+SUBST_FILES.varqmail+= lib/Qmail/Deliverable.pm
+SUBST_FILES.varqmail+= lib/Qmail/Deliverable/Comparison.pod
+SUBST_VARS.varqmail= QMAILDIR
+
+BUILD_DEFS+= QMAILDIR
+
+pre-configure:
+ ${FIND} ${WRKSRC} -type f -name '*.orig' | ${XARGS} ${RM} -f
+
+.include "../../lang/perl5/module.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/mail/p5-Qmail-Deliverable/distinfo
diff -u /dev/null pkgsrc/mail/p5-Qmail-Deliverable/distinfo:1.1
--- /dev/null Wed Jan 10 11:51:46 2024
+++ pkgsrc/mail/p5-Qmail-Deliverable/distinfo Wed Jan 10 11:51:46 2024
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.1 2024/01/10 11:51:46 schmonz Exp $
+
+BLAKE2s (Qmail-Deliverable-1.07.tar.gz) = dc52999755f2e6c64b1b4254336bf901841b5890d83f3f448fbd5e724273e90c
+SHA512 (Qmail-Deliverable-1.07.tar.gz) = c5a1eae47e29e6a5578cf17cb56bc013bd4df3a68f3b806a821d1b4364961491e0ba9bf784ae41f0d580e7114881f63f4027404feff796bf9a8ff6ffcab1acb4
+Size (Qmail-Deliverable-1.07.tar.gz) = 17814 bytes
+SHA1 (patch-lib_Qmail_Deliverable.pm) = e2172dc43a2a4e769ceb28628395469026eff8b8
+SHA1 (patch-lib_Qmail_Deliverable_Comparison.pod) = 0fdd7a6dd3275d7f03068a178ed6ad7c35f804b5
+SHA1 (patch-qpsmtpd-plugin_qmail__deliverable) = 2339f73db04380b2c8bc23fe34790fcea4e60ff9
Index: pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable.pm
diff -u /dev/null pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable.pm:1.1
--- /dev/null Wed Jan 10 11:51:46 2024
+++ pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable.pm Wed Jan 10 11:51:46 2024
@@ -0,0 +1,82 @@
+$NetBSD: patch-lib_Qmail_Deliverable.pm,v 1.1 2024/01/10 11:51:46 schmonz Exp $
+
+Honor pkgsrc-specified QMAILDIR.
+
+--- lib/Qmail/Deliverable.pm.orig 2024-01-10 11:42:48.671762270 +0000
++++ lib/Qmail/Deliverable.pm
+@@ -66,21 +66,21 @@ sub reread_config {
+ %virtualdomains = ();
+ %users_exact = ();
+ %users_wild = ();
+- my $locals_fn = -e "/var/qmail/control/locals"
+- ? "/var/qmail/control/locals"
+- : "/var/qmail/control/me";
++ my $locals_fn = -e "@QMAILDIR@/control/locals"
++ ? "@QMAILDIR@/control/locals"
++ : "@QMAILDIR@/control/me";
+ for (_slurp $locals_fn) {
+ chomp;
+ ($_) = lc =~ /$ascii/ or do { warn "Invalid character"; next; };
+ $locals{$_} = 1;
+ }
+- for (_slurp "/var/qmail/control/virtualdomains") {
++ for (_slurp "@QMAILDIR@/control/virtualdomains") {
+ chomp;
+ ($_) = lc =~ /$ascii/ or do { warn "Invalid character"; next; };
+ my ($domain, $prepend) = split /:/, $_, 2;
+ $virtualdomains{$domain} = $prepend;
+ }
+- for (_slurp "/var/qmail/users/assign") {
++ for (_slurp "@QMAILDIR@/users/assign") {
+ chomp;
+ ($_) = /$ascii/ or do { warn "Invalid character"; next; };
+ if (s/^=([^:]+)://) {
+@@ -98,7 +98,7 @@ sub reread_config {
+ sub _qmail_getpw {
+ my ($local) = @_;
+ local $/ = "\0";
+- my @a = _readpipe "/var/qmail/bin/qmail-getpw", $local;
++ my @a = _readpipe "@QMAILDIR@/bin/qmail-getpw", $local;
+ chomp @a;
+ for (@a) {
+ ($_) = /$ascii/ or do { warn "Invalid character"; return ""; }
+@@ -361,16 +361,16 @@ returned. A single dot at the end is all
+ Returns the local qmail user for $address, or undef if the address is not local.
+
+ Returns $address if it does not contain an @. Returns the left side of the @ if
+-the right side is listed in /var/qmail/control/locals. Returns the left side of
++the right side is listed in @QMAILDIR@/control/locals. Returns the left side of
+ the @, prepended with the right prepend string, if the right side is listed in
+-/var/qmail/control/virtualdomains.
++@QMAILDIR@/control/virtualdomains.
+
+ =item qmail_user $address
+
+ =item qmail_user $local
+
+ Returns a list of $user, $uid, $gid, $homedir, $dash, $ext according to
+-/var/qmail/users/assign or qmail-getpw.
++@QMAILDIR@/users/assign or qmail-getpw.
+
+ =item dot_qmail $address
+
+@@ -434,8 +434,8 @@ returned.
+
+ =item reread_config
+
+-Re-reads the config files /var/qmail/control/locals,
+-/var/qmail/control/virtualdomains, and /var/qmail/users/assign.
++Re-reads the config files @QMAILDIR@/control/locals,
++@QMAILDIR@/control/virtualdomains, and @QMAILDIR@/users/assign.
+
+ =back
+
+@@ -473,7 +473,7 @@ checks per second for assigned/virtual u
+ slower. For my needs, this is still plenty fast enough.
+
+ To support local users automatically, C<qmail-getpw> is executed for local
+-addresses that are not matched by /var/qmail/users/assign. If you need it
++addresses that are not matched by @QMAILDIR@/users/assign. If you need it
+ faster, you can use C<qmail-pw2u> to build a users/assign file.
+
+ To support vpopmail's vdelivermail instruction, C<valias> is executed for
Index: pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable_Comparison.pod
diff -u /dev/null pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable_Comparison.pod:1.1
--- /dev/null Wed Jan 10 11:51:46 2024
+++ pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-lib_Qmail_Deliverable_Comparison.pod Wed Jan 10 11:51:46 2024
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_Qmail_Deliverable_Comparison.pod,v 1.1 2024/01/10 11:51:46 schmonz Exp $
+
+Honor pkgsrc-specified QMAILDIR.
+
+--- lib/Qmail/Deliverable/Comparison.pod.orig 2024-01-10 11:42:48.674383628 +0000
++++ lib/Qmail/Deliverable/Comparison.pod
+@@ -190,7 +190,7 @@ http://www.maiers.de/qmail/art38,71.html
+ Written in sh, checks against a directory tree and dot-qmail.
+
+ This is like vpopmail_check_recipient, but for local users only. It does not
+-actually query /var/qmail/users/assign or getpw for home directories, but
++actually query @QMAILDIR@/users/assign or getpw for home directories, but
+ requires /home/username, where username is directly taken from the email
+ address. Probably needs to be suid root to function correctly.
+
Index: pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-qpsmtpd-plugin_qmail__deliverable
diff -u /dev/null pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-qpsmtpd-plugin_qmail__deliverable:1.1
--- /dev/null Wed Jan 10 11:51:46 2024
+++ pkgsrc/mail/p5-Qmail-Deliverable/patches/patch-qpsmtpd-plugin_qmail__deliverable Wed Jan 10 11:51:46 2024
@@ -0,0 +1,24 @@
+$NetBSD: patch-qpsmtpd-plugin_qmail__deliverable,v 1.1 2024/01/10 11:51:46 schmonz Exp $
+
+Honor pkgsrc-specified QMAILDIR.
+
+--- qpsmtpd-plugin/qmail_deliverable.orig 2024-01-10 11:42:48.669202870 +0000
++++ qpsmtpd-plugin/qmail_deliverable
+@@ -27,7 +27,7 @@ none is specified, the default (127.0.0.
+ =item server smtproutes:host:port
+
+ If the specification is prepended by the literal text C<smtproutes:>, then for
+-recipient domains listed in your /var/qmail/control/smtproutes use their
++recipient domains listed in your @QMAILDIR@/control/smtproutes use their
+ respective hosts for the check. For other domains, the given host is used. The
+ port has to be the same across all servers.
+
+@@ -134,7 +134,7 @@ sub register {
+
+ my ($fallback, $port) = $args{server} =~ /:(?:(.*?):?)(\d+)/;
+
+- open my $fh, "/var/qmail/control/smtproutes"
++ open my $fh, "@QMAILDIR@/control/smtproutes"
+ or warn "Could not read smtproutes";
+ for (readline $fh) {
+ my ($domain, $mx) = /^(.*?) : \[? ( [^\]:\s]* )/x;
Home |
Main Index |
Thread Index |
Old Index