From a448c47ada1a0acf879fc675311c36af0c3eb14b Mon Sep 17 00:00:00 2001 From: jlam Date: Fri, 6 Aug 2004 21:24:13 +0000 Subject: * Only include bdb.buildlink3.mk if we are using DB[34] as a storage driver backend. * Convert to use bsd.options.mk. DSPAM_DELIVERY_AGENT_ARGS has been deprecated -- just set DSPAM_DELIVERY_AGENT to the LDA instead of "custom". * Only install the documentation for the storage driver used by DSPAM. * Drop the default signature lifetime from 15 days to 14 days to match the DSPAM defaults. Bump the PKGREVISION to 2. --- mail/dspam/Makefile | 166 ++++++++++--------------------------------- mail/dspam/PLIST | 24 +++---- mail/dspam/options.mk | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 237 insertions(+), 143 deletions(-) create mode 100644 mail/dspam/options.mk (limited to 'mail/dspam') diff --git a/mail/dspam/Makefile b/mail/dspam/Makefile index 368f4237931..02961a46387 100644 --- a/mail/dspam/Makefile +++ b/mail/dspam/Makefile @@ -1,23 +1,22 @@ -# $NetBSD: Makefile,v 1.3 2004/07/24 23:06:56 recht Exp $ -# +# $NetBSD: Makefile,v 1.4 2004/08/06 21:24:13 jlam Exp $ DISTNAME= dspam-3.0.0 -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= mail MASTER_SITES= http://www.nuclearelephant.com/projects/dspam/sources/ MAINTAINER= xtraeme@NetBSD.org HOMEPAGE= http://www.nuclearelephant.com/projects/dspam/ -COMMENT= Extremely scalable and statistical hybrid anti-spam filter +COMMENT= extremely scalable, statistical-hybrid anti-spam filter USE_BUILDLINK3= yes USE_LIBTOOL= yes USE_PKGINSTALL= yes -GNU_CONFIGURE= yes -REPLACE_PERL= tools/dspam_genaliases.in \ - tools/dspam_corpus.in \ - cgi/admin.cgi cgi/admingraph.cgi \ +USE_PERL5= yes +REPLACE_PERL= tools/dspam_genaliases.in \ + tools/dspam_corpus.in \ + cgi/admin.cgi cgi/admingraph.cgi \ cgi/dspam.cgi cgi/graph.cgi PKGCONFIG_OVERRIDE+= dspam.pc.in @@ -26,37 +25,21 @@ SUBST_CLASSES= cgi large SUBST_STAGE.cgi= post-patch SUBST_FILES.cgi= cgi/dspam.cgi cgi/admin.cgi SUBST_SED.cgi= -e "s|/usr/local/bin/dspam|${PREFIX}/bin/dspam|g" \ - -e "s|/var/dspam|${DSPAM_HOME}|g" \ - -e "s|/usr/local|${PREFIX}|g" \ - -e "s|LARGE_SCLAE|LARGE_SCALE|g" \ + -e "s|/var/dspam|${DSPAM_HOME}|g" \ + -e "s|/usr/local|${PREFIX}|g" \ + -e "s|LARGE_SCLAE|LARGE_SCALE|g" \ -e "s|-deaf|${DSPAM_PSFLAGS}|g" SUBST_MESSAGE.cgi= "Fixing paths and typos." -BDB_ACCEPTED= db4 db3 - -BUILD_DEFS+= DSPAM_DELIVERY_AGENT BUILD_DEFS+= DSPAM_HOME -BUILD_DEFS+= DSPAM_STORAGE_DRIVER BUILD_DEFS+= DSPAM_SIGNATURE_LIFE -BUILD_DEFS+= DSPAM_SIGNATURE_ATTACHMENTS -BUILD_DEFS+= DSPAM_SIGNATURE_HEADERS -BUILD_DEFS+= DSPAM_LARGESCALE -BUILD_DEFS+= DSPAM_VIRTUAL_USERS -BUILD_DEFS+= DSPAM_USE_WEBMAIL -BUILD_DEFS+= DSPAM_HOMEDIR_DOTFILES BUILD_DEFS+= DSPAM_USER DSPAM_GROUP BUILD_DEFS+= DSPAM_BINMODE -BUILD_DEFS+= DSPAM_CGI_GRAPHS -BUILD_DEFS+= DSPAM_PSFLAGS -DSPAM_DELIVERY_AGENT?= procmail -DSPAM_DELIVERY_AGENT_ARGS?= # empty +.include "../../mk/bsd.prefs.mk" DSPAM_HOME?= ${VARBASE}/dspam -DSPAM_STORAGE_DRIVER?= ${BDB_TYPE} -DSPAM_SIGNATURE_LIFE?= 15 - -DSPAM_PSFLAGS?= aux +DSPAM_SIGNATURE_LIFE?= 14 DSPAM_BINMODE?= 4511 DSPAM_USER?= dspam @@ -64,7 +47,7 @@ DSPAM_GROUP?= dspam PKG_GROUPS= ${DSPAM_GROUP} PKG_USERS= ${DSPAM_USER}:${DSPAM_GROUP} -# Default options +GNU_CONFIGURE= yes CONFIGURE_ARGS+= --enable-chi-square CONFIGURE_ARGS+= --enable-robinson-pvalues CONFIGURE_ARGS+= --with-signature-life=${DSPAM_SIGNATURE_LIFE} @@ -75,112 +58,33 @@ CONFIGURE_ARGS+= --with-dspam-home-owner=${DSPAM_USER} \ --with-dspam-group=${DSPAM_GROUP} \ --with-dspam-mode=${DSPAM_BINMODE} -.include "../../mk/bsd.prefs.mk" - -# -# Possible: procmail, maildrop or custom -# Default: procmail -# -.if !empty(DSPAM_DELIVERY_AGENT:Mprocmail) -BUILD_DEPENDS+= procmail-[0-9]*:../../mail/procmail -CONFIGURE_ARGS+= --with-delivery-agent="${LOCALBASE}/bin/procmail" -.elif !empty(DSPAM_DELIVERY_AGENT:Mmaildrop) -BUILD_DEPENDS+= maildrop-[0-9]*:../../mail/maildrop -CONFIGURE_ARGS+= --with-delivery-agent="${LOCALBASE}/bin/maildrop" -.elif !empty(DSPAM_DELIVERY_AGENT:Mcustom) -BUILD_DEFS+= DSPAM_DELIVERY_AGENT_ARGS -CONFIGURE_ARGS+= --with-delivery-agent=${DSPAM_DELIVERY_AGENT_ARGS:Q} -.endif - -# -# Possible: mysql, pgsql, db3 or db4 -# Default: db3/db4 -# -.if !empty(DSPAM_STORAGE_DRIVER:Mmysql) -BUILD_DEFS+= DSPAM_CLIENT_COMPRESSION -. if defined(DSPAM_CLIENT_COMPRESSION) && \ - !empty(DSPAM_CLIENT_COMPRESSION:M[Yy][Ee][Ss]) -CONFIGURE_ARGS+= --enable-client-compression -. endif -. include "../../databases/mysql4-client/buildlink3.mk" -CONFIGURE_ARGS+= --with-storage-driver=mysql_drv -CONFIGURE_ARGS+= \ - --with-mysql-includes=${BUILDLINK_PREFIX.mysql-client}/include/mysql -CONFIGURE_ARGS+= \ - --with-mysql-libraries=${BUILDLINK_PREFIX.mysql-client}/lib -.elif !empty(DSPAM_STORAGE_DRIVER:Mpgsql) -. include "../../mk/pgsql.buildlink3.mk" -CONFIGURE_ARGS+= --with-storage-driver=pgsql_drv -CONFIGURE_ARGS+= \ - --with-pgsql-includes=${PGSQL_PREFIX}/include/postgresql -CONFIGURE_ARGS+= \ - --with-pgsql-libraries=${PGSQL_PREFIX}/lib -.elif !empty(DSPAM_STORAGE_DRIVER:M${BDB_TYPE}) -CONFIGURE_ARGS+= --with-storage-driver=lib${BDB_TYPE}_drv -.endif - -# -# Use of home directory dot file for opt-in/opt-out -# -.if defined(DSPAM_HOMEDIR_DOTFILES) && \ - !empty(DSPAM_HOMEDIR_DOTFILES:M[Yy][Ee][Ss]) -CONFIGURE_ARGS+= --enable-homedir-dotfiles -.endif - -.if defined(DSPAM_USE_WEBMAIL) && \ - !empty(DSPAM_USE_WEBMAIL:M[Yy][Ee][Ss]) -CONFIGURE_ARGS+= --enable-webmail -.endif - -.if defined(DSPAM_SIGNATURE_ATTACHMENTS) && \ - !empty(DSPAM_SIGNATURE_ATTACHMENTS:M[Yy][Ee][Ss]) -CONFIGURE_ARGS+= --enable-signature-attachments -.endif - -.if defined(DSPAM_SIGNATURE_HEADERS) && \ - !empty(DSPAM_SIGNATURE_HEADERS:M[Yy][Ee][Ss]) -CONFIGURE_ARGS+= --enable-signature-headers -.endif - -.if defined(DSPAM_LARGESCALE) && !empty(DSPAM_LARGESCALE:M[Yy][Ee][Ss]) -CONFIGURE_ARGS+= --enable-large-scale -SUBST_STAGE.large= post-patch -SUBST_FILES.large= cgi/dspam.cgi cgi/admin.cgi -SUBST_SED.large= \ - -e "s|CONFIG{'LARGE_SCALE'}.*=.*0|CONFIG{'LARGE_SCALE'} = 1|" -SUBST_MESSAGE.large= "Fixing config options." -.endif - -.if defined(DSPAM_VIRTUAL_USERS) && !empty(DSPAM_VIRTUAL_USERS:M[Yy][Ee][Ss]) -CONFIGURE_ARGS+= --enable-virtual-users -.endif - -.if defined(DSPAM_CGI_GRAPHS) && !empty(DSPAM_CGI_GRAPHS:M[Yy][Ee][Ss]) -DEPENDS+= p5-GDGraph3d-[0-9]*:../../graphics/p5-GDGraph3d -.endif - -.if ${OPSYS} == "Linux" -DSPAM_PSFLAGS?= -deaf -.endif +.include "options.mk" +.include "../../devel/pkgconfig/buildlink3.mk" +.include "../../mk/pthread.buildlink3.mk" -INSTALLATION_DIRS= share/doc/${PKGBASE} \ - share/${PKGBASE}/txt share/${PKGBASE}/cgi \ - share/${PKGBASE}/mysql share/${PKGBASE}/pgsql +DOCDIR= ${PREFIX}/share/doc/dspam +DATADIR= ${PREFIX}/share/dspam post-install: + ${INSTALL_DATA_DIR} ${DOCDIR} + ${INSTALL_DATA} ${WRKSRC}/README ${DOCDIR} + ${INSTALL_DATA} ${WRKSRC}/RELEASE.NOTES ${DOCDIR} + ${INSTALL_DATA_DIR} ${DATADIR} .for d in txt cgi - cd ${WRKSRC}/${d} && ${PAX} -rwppm '-s|.*/Makefile.*$$||' \ - . ${PREFIX}/share/${PKGBASE}/${d} -.endfor -.undef d - ${INSTALL_DATA} ${WRKSRC}/RE* ${PREFIX}/share/doc/${PKGBASE} -.for d in mysql pgsql - cd ${WRKSRC}/tools.${d}_drv && ${PAX} -rwppm '-s|.*/Makefile.*$$||' \ - . ${PREFIX}/share/${PKGBASE}/${d} + ${INSTALL_DATA_DIR} ${DATADIR}/${d} + cd ${WRKSRC}/${d} && ${PAX} -rwppm '-s|.*/Makefile.*$$||' \ + . ${DATADIR}/${d} .endfor .undef d +.if !empty(DSPAM_STORAGE_DRIVER:Mmysql) + ${INSTALL_DATA_DIR} ${DATADIR}/mysql + cd ${WRKSRC}/tools.mysql_drv && ${PAX} -rwppm '-s|.*/Makefile.*$$||' \ + . ${DATADIR}/mysql +.endif +.if !empty(DSPAM_STORAGE_DRIVER:Mpgsql) + ${INSTALL_DATA_DIR} ${DATADIR}/pgsql + cd ${WRKSRC}/tools.pgsql_drv && ${PAX} -rwppm '-s|.*/Makefile.*$$||' \ + . ${DATADIR}/pgsql +.endif -.include "../../devel/pkgconfig/buildlink3.mk" -.include "../../mk/bdb.buildlink3.mk" -.include "../../mk/pthread.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/mail/dspam/PLIST b/mail/dspam/PLIST index 152d594c872..d1ca25169c5 100644 --- a/mail/dspam/PLIST +++ b/mail/dspam/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.1.1.1 2004/06/20 19:41:24 xtraeme Exp $ +@comment $NetBSD: PLIST,v 1.2 2004/08/06 21:24:13 jlam Exp $ bin/dspam bin/dspam_2sql bin/dspam_clean @@ -51,21 +51,21 @@ share/dspam/cgi/templates/nav_performance.html share/dspam/cgi/templates/nav_preferences.html share/dspam/cgi/templates/nav_quarantine.html share/dspam/cgi/templates/nav_viewmessage.html -share/dspam/mysql/README -share/dspam/mysql/mysql_objects.sql.space.optimized -share/dspam/mysql/mysql_objects.sql.speed.optimized -share/dspam/mysql/purge.sql -share/dspam/mysql/virtual_users.sql -share/dspam/pgsql/README -share/dspam/pgsql/pgsql_objects.sql -share/dspam/pgsql/purge.sql -share/dspam/pgsql/virtual_users.sql +${MYSQL}share/dspam/mysql/README +${MYSQL}share/dspam/mysql/mysql_objects.sql.space.optimized +${MYSQL}share/dspam/mysql/mysql_objects.sql.speed.optimized +${MYSQL}share/dspam/mysql/purge.sql +${MYSQL}share/dspam/mysql/virtual_users.sql +${PGSQL}share/dspam/pgsql/README +${PGSQL}share/dspam/pgsql/pgsql_objects.sql +${PGSQL}share/dspam/pgsql/purge.sql +${PGSQL}share/dspam/pgsql/virtual_users.sql share/dspam/txt/firstrun.txt share/dspam/txt/firstspam.txt share/dspam/txt/quarantinefull.txt @dirrm share/dspam/txt -@dirrm share/dspam/pgsql -@dirrm share/dspam/mysql +${PGSQL}@dirrm share/dspam/pgsql +${MYSQL}@dirrm share/dspam/mysql @dirrm share/dspam/cgi/templates @dirrm share/dspam/cgi @dirrm share/dspam diff --git a/mail/dspam/options.mk b/mail/dspam/options.mk new file mode 100644 index 00000000000..384386abc0a --- /dev/null +++ b/mail/dspam/options.mk @@ -0,0 +1,190 @@ +# $NetBSD: options.mk,v 1.1 2004/08/06 21:24:13 jlam Exp $ + +# Global and legacy options +.if defined(DSPAM_HOMEDIR_DOTFILES) || defined(DSPAM_USE_WEBMAIL) || \ + defined(DSPAM_SIGNATURE_ATTACHMENTS) || \ + defined(DSPAM_SIGNATURE_HEADERS) || defined(DSPAM_LARGESCALE) || \ + defined(DSPAM_VIRTUAL_USERS) || defined(DSPAM_CGI_GRAPHS) || \ + defined(DSPAM_CLIENT_COMPRESSION) +. if !defined(PKG_OPTIONS.dspam) +. if defined(DSPAM_HOMEDIR_DOTFILES) && \ + !empty(DSPAM_HOMEDIR_DOTFILES:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= dotfiles +. endif +. if defined(DSPAM_USE_WEBMAIL) && !empty(DSPAM_USE_WEBMAIL:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= webmail +. endif +. if defined(DSPAM_SIGNATURE_ATTACHMENTS) && \ + !empty(DSPAM_SIGNATURE_ATTACHMENTS:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= sig-attachment +. endif +. if defined(DSPAM_SIGNATURE_HEADERS) && \ + !empty(DSPAM_SIGNATURE_HEADERS:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= sig-headers +. endif +. if defined(DSPAM_LARGESCALE) && !empty(DSPAM_LARGESCALE:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= largescale +. endif +. if defined(DSPAM_VIRTUAL_USERS) && \ + !empty(DSPAM_VIRTUAL_USERS:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= virtualusers +. endif +. if defined(DSPAM_CGI_GRAPHS) && !empty(DSPAM_CGI_GRAPHS:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= graphs +. endif +. if defined(DSPAM_CLIENT_COMPRESSION) && \ + !empty(DSPAM_CLIENT_COMPRESSION:M[Yy][Ee][Ss]) +PKG_OPTIONS.dspam+= compress +. endif +. endif +.endif +.if defined(DSPAM_DELIVERY_AGENT) && !empty(DSPAM_DELIVERY_AGENT:Mcustom) +DSPAM_DELIVERY_AGENT:= ${DSPAM_DELIVERY_AGENT_ARGS} +.endif + +PKG_OPTIONS_VAR= PKG_OPTIONS.dspam +PKG_SUPPORTED_OPTIONS= compress dotfiles graphs largescale \ + sig-attachment sig-headers virtualusers webmail +.include "../../mk/bsd.options.mk" + +### +### DSPAM_DELIVERY_AGENT is the tool called to to deliver messages. +### It can either be "procmail", "maildrop" or the path to a +### command (and arguments) used for local mail delivery. Set this +### to the path to the sendmail binary to reinject mail back into +### the MTA instead of doing local delivery. +### Possible: procmail, maildrop or custom (e.g, /usr/sbin/sendmail) +### Default: procmail +### +DSPAM_DELIVERY_AGENT?= procmail +BUILD_DEFS+= DSPAM_DELIVERY_AGENT +.if !empty(DSPAM_DELIVERY_AGENT:Mprocmail) +BUILD_DEPENDS+= procmail-[0-9]*:../../mail/procmail +CONFIGURE_ARGS+= --with-delivery-agent="${LOCALBASE}/bin/procmail" +.elif !empty(DSPAM_DELIVERY_AGENT:Mmaildrop) +BUILD_DEPENDS+= maildrop-[0-9]*:../../mail/maildrop +CONFIGURE_ARGS+= --with-delivery-agent="${LOCALBASE}/bin/maildrop" +.elif !empty(DSPAM_DELIVERY_AGENT) +CONFIGURE_ARGS+= --with-delivery-agent=${DSPAM_DELIVERY_AGENT:Q} +.else +PKG_FAIL_REASON+= "${PKGBASE}: unknown delivery agent \`${DSPAM_DELIVERY_AGENT}'" +.endif + +### +### This is the backend database used to store the DSPAM signatures as +### well as other state information. The recommended storage driver is +### "mysql", even for small installations. +### Possible: mysql, pgsql, bdb +### Default: bdb +### +DSPAM_STORAGE_DRIVER?= bdb +BUILD_DEFS+= DSPAM_STORAGE_DRIVER +MYSQL_PLIST_SUBST= MYSQL="@comment " +PGSQL_PLIST_SUBST= PGSQL="@comment " +.if empty(DSPAM_STORAGE_DRIVER:Mmysql) +PKG_OPTIONS:= ${PKG_OPTIONS:Ncompress} +.endif +.if empty(DSPAM_STORAGE_DRIVER:Mmysql) && empty(DSPAM_STORAGE_DRIVER:Mpgsql) +PKG_OPTIONS:= ${PKG_OPTIONS:Nvirtualusers} +.endif +.if !empty(DSPAM_STORAGE_DRIVER:Mmysql) +. if !empty(PKG_OPTIONS:Mcompress) +CONFIGURE_ARGS+= --enable-client-compression +. endif +. include "../../databases/mysql4-client/buildlink3.mk" +CONFIGURE_ARGS+= --with-storage-driver=mysql_drv +CONFIGURE_ARGS+= \ + --with-mysql-includes=${BUILDLINK_PREFIX.mysql-client}/include/mysql \ + --with-mysql-libraries=${BUILDLINK_PREFIX.mysql-client}/lib +MYSQL_PLIST_SUBST= MYSQL="" +.elif !empty(DSPAM_STORAGE_DRIVER:Mpgsql) +. include "../../mk/pgsql.buildlink3.mk" +CONFIGURE_ARGS+= --with-storage-driver=pgsql_drv +CONFIGURE_ARGS+= \ + --with-pgsql-includes=${PGSQL_PREFIX}/include/postgresql \ + --with-pgsql-libraries=${PGSQL_PREFIX}/lib +PGSQL_PLIST_SUBST= PGSQL="" +.elif !empty(DSPAM_STORAGE_DRIVER:Mbdb) +BDB_ACCEPTED= db4 db3 +. include "../../mk/bdb.buildlink3.mk" +CONFIGURE_ARGS+= --with-storage-driver=lib${BDB_TYPE}_drv +.else +PKG_FAIL_REASON+= "${PKGBASE}: unknown storage driver \`${DSPAM_STORAGE_DRIVER}\'" +.endif +PLIST_SUBST+= ${MYSQL_PLIST_SUBST} +PLIST_SUBST+= ${PGSQL_PLIST_SUBST} + +### +### Use of home directory dot file for opt-in/opt-out +### +.if !empty(PKG_OPTIONS:Mdotfiles) +CONFIGURE_ARGS+= --enable-homedir-dotfiles +.endif + +### +### This option will cause DSPAM to cease all writing of signatures +### and DSPAM headers to the message, and deliver the message in as +### pristine format as possible. DO NOT use this switch unless the +### original message can be presented for retraining with the ORIGINAL +### HEADERS and NO MODIFICATIONS. +### +.if !empty(PKG_OPTIONS:Mwebmail) +CONFIGURE_ARGS+= --enable-webmail +.endif + +### +### Store DSPAM signatures as an attachment to the mail. This option +### doesn't work correctly with mail clients, e.g. elm, that quote an +### embedded, forwarded message; it should only be used on networks +### where all clients can properly understand an embedded multipart +### message, e.g. Outlook, Evolution, etc., and forward the attachment +### as an attachment instead of quoted text. +### +.if !empty(PKG_OPTIONS:Msig-attachment) +CONFIGURE_ARGS+= --enable-signature-attachments +.endif + +### +### Store DSPAM signatures in the message header of the mail. +### +.if !empty(PKG_OPTIONS:Msig-headers) +CONFIGURE_ARGS+= --enable-signature-headers +.endif + +### +### Switch for large-scale implementation. User data will be stored as +### $DSPAM_HOME/data/u/s/user instead of $DSPAM_HOME/data/user +### +.if !empty(PKG_OPTIONS:Mlargescale) +CONFIGURE_ARGS+= --enable-large-scale +SUBST_STAGE.large= pre-configure +SUBST_FILES.large= cgi/dspam.cgi cgi/admin.cgi +SUBST_SED.large= \ + -e "s|CONFIG{'LARGE_SCALE'}.*=.*0|CONFIG{'LARGE_SCALE'} = 1|" +SUBST_MESSAGE.large= "Enabling large-scale options in DSPAM." +.endif + +### +### Tells DSPAM to create virtual user ids. Use this if your users are +### not system users. +### +.if !empty(PKG_OPTIONS:Mvirtualusers) +CONFIGURE_ARGS+= --enable-virtual-users +.endif + +### +### Enable DSPAM's graph.cgi to produce graphs of spam statistics. +### +.if !empty(PKG_OPTIONS:Mgraphs) +DEPENDS+= p5-GDGraph3d-[0-9]*:../../graphics/p5-GDGraph3d +.endif + +### +### These are the flags used when invoking ps(1) to list all processes. +### +BUILD_DEFS+= DSPAM_PSFLAGS +.if ${OPSYS} == "Linux" +DSPAM_PSFLAGS?= -deaf +.else +DSPAM_PSFLAGS?= aux +.endif -- cgit v1.2.3