Subject: spamd pkgsrc issues
To: None <peter@pointless.nl, pkgsrc-users@pkgsrc.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: pkgsrc-users
Date: 03/30/2006 00:32:42
Using the spamd package I had two issues:
Mar 29 23:32:25 pilchuck spamd[1046]: cannot chdir to /var/empty.
Mar 29 23:51:13 pilchuck spamd[1173]: can't exec /sbin/pfctl:No such file
or directory
/var/empty should be ${VARBASE}/chroot/spamd
and
PATH_PFCTL should be ${PREFIX}/sbin/pfctl if using the package
I started making patches and was thinking about the config directory too,
and then I saw you used sed (SUBST_*) for some of this.
Anyways, this is what I have, maybe some of this would be useful for you.
Or you can just use the SUBST_STAGES for this also.
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/mail/spamd/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- Makefile 7 Mar 2006 22:32:23 -0000 1.7
+++ Makefile 30 Mar 2006 08:29:57 -0000
@@ -1,6 +1,7 @@
# $NetBSD: Makefile,v 1.7 2006/03/07 22:32:23 peter Exp $
DISTNAME= spamd-20060307
+PKGREVISION= 1
CATEGORIES= mail
MASTER_SITES= http://nedbsd.nl/~ppostma/pf/
@@ -15,12 +16,16 @@
PKG_USERS= _spamd:_spamd::Spam\ Daemon:${VARBASE}/chroot/spamd:/sbin/nologin
PKG_GROUPS= _spamd
+CPPFLAGS+= -DSPAMD_HOME=\"${VARBASE}/chroot/spamd\"
OWN_DIRS= ${VARBASE}/chroot/spamd
RCD_SCRIPTS= pfspamd
CONF_FILES= ${PREFIX}/share/examples/spamd/spamd.conf \
${PKG_SYSCONFDIR}/spamd.conf
+# PATH_SPAMD_CONF "/usr/pkg/etc/spamd.conf"
+
+
SUBST_CLASSES+= fix
SUBST_STAGE.fix= post-patch
SUBST_FILES.fix= spamd/spamd.8
@@ -50,4 +55,13 @@
${INSTALL_DATA} ${WRKSRC}/etc/spamd.conf ${PREFIX}/share/examples/spamd
.include "../../security/pflkm/buildlink3.mk"
+
+# Necessary so USE_BUILTIN.pflkm will be defined
+.include "../../security/pflkm/builtin.mk"
+
+# Using LOCALBASE instead of PREFIX, since not defined yet
+.if !empty(USE_BUILTIN.pflkm:M[Nn][Oo]) && exists(${LOCALBASE}/sbin/pfctl)
+CPPFLAGS+= -DPATH_PFCTL=\"${LOCALBASE}/sbin/pfctl\"
+.endif
+
.include "../../mk/bsd.pkg.mk"
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/mail/spamd/distinfo,v
retrieving revision 1.3
diff -u -r1.3 distinfo
--- distinfo 7 Mar 2006 22:32:23 -0000 1.3
+++ distinfo 30 Mar 2006 08:29:57 -0000
@@ -3,3 +3,6 @@
SHA1 (spamd-20060307.tar.gz) = 9541b352e604fef27d9eb78c4dd63bb9b35c5894
RMD160 (spamd-20060307.tar.gz) = 558448cec7aa4d65805b59c3294bfd6c7908182c
Size (spamd-20060307.tar.gz) = 34303 bytes
+SHA1 (patch-aa) = 90378d3b8d3ff86525713bbbeb593b23befbb3e7
+SHA1 (patch-ab) = 2660196a1c0610242ebd35b7b7e9ab9cec25579a
+SHA1 (patch-ac) = 32ad8487b51ced874d87c4c30a299119c2eb5de1
$NetBSD$
--- spamd/spamd.c.orig 2006-03-29 23:35:44.000000000 -0800
+++ spamd/spamd.c 2006-03-29 23:41:51.000000000 -0800
@@ -1162,8 +1162,8 @@
}
jail:
- if (chroot("/var/empty") == -1 || chdir("/") == -1) {
- syslog(LOG_ERR, "cannot chdir to /var/empty.");
+ if (chroot(SPAMD_HOME) == -1 || chdir("/") == -1) {
+ syslog(LOG_ERR, "cannot chdir to " SPAMD_HOME ".");
exit(1);
}
--- spamd-setup/spamd-setup.c.orig 2006-03-29 23:55:11.000000000 -0800
+++ spamd-setup/spamd-setup.c 2006-03-29 23:56:12.000000000 -0800
@@ -42,8 +42,12 @@
#include <zlib.h>
#define PATH_FTP "/usr/bin/ftp"
+#ifndef PATH_PFCTL
#define PATH_PFCTL "/sbin/pfctl"
+#endif
+#ifndef PATH_SPAMD_CONF
#define PATH_SPAMD_CONF "/usr/pkg/etc/spamd.conf"
+#endif
#define SPAMD_ARG_MAX 256 /* max # of args to an exec */
struct cidr {
--- spamd/grey.h.orig 2006-03-29 23:55:23.000000000 -0800
+++ spamd/grey.h 2006-03-29 23:56:36.000000000 -0800
@@ -21,7 +21,9 @@
#define GREYEXP (60 * 60 * 4) /* remove grey entries after 4 hours */
#define WHITEEXP (60 * 60 * 24 * 36) /* remove white entries after 36 days */
#define TRAPEXP (60 * 60 * 24) /* hitting a spamtrap blacklists for a day */
+#ifndef PATH_PFCTL
#define PATH_PFCTL "/sbin/pfctl"
+#endif
#define DB_SCAN_INTERVAL 60
#define PATH_SPAMD_DB "/var/db/spamd"
Thanks again for packaging this up. Stopping spam is making me happy :)
Jeremy C. Reed
echo '9,J8HD,fDGG8B@?:536FC5=8@I;C5?@H5B0D@5GBIELD54DL>@8L?:5GDEJ8LDG1' |\
sed ss,s50EBsg | tr 0-M 'p.wBt SgiIlxmLhan:o,erDsduv/cyP'