mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-24 04:33:24 +00:00
3c4a0c7d56
- Chase distfile change - Correct SPF option, add option for DKIM plugin PR: ports/160379 Submitted by: Janky Jay III <ek@purplehat.org> (maintainer)
363 lines
12 KiB
Makefile
363 lines
12 KiB
Makefile
# Ports collection Makefile for: maia
|
|
# Date created: 03 Jan 2008
|
|
# Whom: Janky Jay <ek@purplehat.org>
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
PORTNAME= maia
|
|
DISTVERSION= 1.0.3-${SVNREVISION}
|
|
PORTREVISION= 1
|
|
CATEGORIES= security
|
|
MASTER_SITES= http://www.purplehat.org/downloads/maia/
|
|
|
|
MAINTAINER= ek@purplehat.org
|
|
COMMENT= A web-based management system based on amavisd-new and SpamAssassin
|
|
|
|
RUN_DEPENDS= p5-Unix-Syslog>=0.94:${PORTSDIR}/sysutils/p5-Unix-Syslog \
|
|
p5-MIME-Tools>=4.116:${PORTSDIR}/mail/p5-MIME-Tools \
|
|
p5-Convert-TNEF>=0.08:${PORTSDIR}/converters/p5-Convert-TNEF \
|
|
p5-Convert-UUlib>=1.08,1:${PORTSDIR}/converters/p5-Convert-UUlib \
|
|
p5-Net-CIDR-Lite>=0.18:${PORTSDIR}/net/p5-Net-CIDR-Lite \
|
|
p5-forks>=0.34:${PORTSDIR}/devel/p5-forks \
|
|
p5-Archive-Zip>=0.10:${PORTSDIR}/archivers/p5-Archive-Zip \
|
|
p5-IO-stringy>=1.203:${PORTSDIR}/devel/p5-IO-stringy \
|
|
p5-IO-Socket-INET6>=1.27:${PORTSDIR}/net/p5-IO-Socket-INET6 \
|
|
p5-Text-CSV>=1.02:${PORTSDIR}/textproc/p5-Text-CSV \
|
|
p5-Data-UUID>=1.148:${PORTSDIR}/devel/p5-Data-UUID \
|
|
p5-Template-Toolkit>=2.13:${PORTSDIR}/www/p5-Template-Toolkit \
|
|
p5-Net-Server>=0.93:${PORTSDIR}/net/p5-Net-Server
|
|
|
|
# SVN source: https://www.maiamailguard.com/svn/branches/1.0
|
|
SVNREVISION= r1575
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-1.0-${SVNREVISION}
|
|
USE_PERL5_RUN= 5.8.2+
|
|
NO_BUILD= yes
|
|
|
|
DOCS= LICENSE README maiad.conf.dist maia-mysql.sql maia-pgsql.sql maia.conf.dist
|
|
|
|
USERS= vscan
|
|
GROUPS= vscan
|
|
MAIADIR?= /var/maiad
|
|
MAIAQUARANTINE?= /var/maiad/virusmails
|
|
PEAR_DIR?= ${LOCALBASE}/share/pear
|
|
|
|
OPTIONS= APACHE "Use Apache web server" off\
|
|
LIGHTTPD "Use LighTTPD web server" off \
|
|
WEBHOST "PHP, PEAR, etc... for Maia web interface" off \
|
|
MYSQL "Use MySQL datebase" on \
|
|
MYSQLSERVER "Install MySQL Server" on \
|
|
PGSQL "Use PgSQL database" off \
|
|
PGSQLSERVER "Install PGSQL Server" off \
|
|
DOVECOT "Use Dovecot IMAP/POP3" on \
|
|
POSTFIX "Use Postfix MTA" on \
|
|
PFA "Use Postfixadmin" off \
|
|
FUZZYOCR "Use FuzzyOcr" off \
|
|
CLAMAV "Use ClamAV anti-virus" on \
|
|
SPAMASSASSIN "Use SpamAssassin" on \
|
|
GRAPHICS "Enable pie chart stats" off \
|
|
BDB "Use BerkeleyDB" on \
|
|
ALTERMIME "Use AlterMime" off \
|
|
CRYPT "Encryption support" off \
|
|
IPCOUNTRY "SpamAssassin IP Country plugin" on \
|
|
DOMAINKEYS "SpamAssassin DomainKey plugin" on \
|
|
SPF "SpamAssassin SPF plugin" on \
|
|
DKIM "SpamAssassin DKIM plugin" on \
|
|
FILE "Use newer file(1) utility from ports" on \
|
|
RAR "RAR support with archivers/rar" off \
|
|
UNRAR "RAR support with archivers/unrar" on \
|
|
ARJ "ARJ support with archivers/arj" on \
|
|
UNARJ "ARJ support with archivers/unarj" off \
|
|
LHA "LHA support with archivers/lha" on \
|
|
ARC "ARC support with archivers/arc" on \
|
|
NOMARCH "ARC support with archivers/nomarch" off \
|
|
CAB "CAB support with archivers/cabextract" on \
|
|
RPM "RPM support with archivers/rpm2cpio" on \
|
|
ZOO "ZOO support with archivers/zoo" on \
|
|
UNZOO "ZOO support with archivers/unzoo" off \
|
|
LZOP "LZOP support with archivers/lzop" off \
|
|
FREEZE "FREEZE support with archivers/freeze" on \
|
|
P7ZIP "P7ZIP support with archivers/p7zip" on \
|
|
TNEF "Add external tnef decoder" off
|
|
|
|
SUB_FILES= pkg-install pkg-deinstall pkg-message
|
|
SUB_LIST+= MAIAUSER=${USERS} \
|
|
MAIAGROUP=${GROUPS} \
|
|
MAIADIR=${MAIADIR} \
|
|
MAIAQUARANTINE=${MAIAQUARANTINE}
|
|
USE_RC_SUBR+= maiad
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
# Code is a bit fiddly here; we can't use USE variables after pre.mk so we have
|
|
# to duplicate some WITH_ parts like WEBHOST that use pre.mk vars as well as
|
|
# setting USE_ variables. C'est la vie.
|
|
|
|
.if defined(WITH_APACHE)
|
|
USE_APACHE= 2.0+
|
|
.endif
|
|
|
|
.if defined(WITH_WEBHOST)
|
|
USE_PHP= bcmath ctype dom gettext hash iconv imap json mbstring \
|
|
mcrypt pdo pdo_sqlite posix session simplexml sockets \
|
|
sqlite tokenizer xml wddx xmlreader xmlwriter xmlrpc
|
|
.endif
|
|
|
|
.if defined(WITH_MYSQL)
|
|
USE_MYSQL= yes
|
|
USE_PHP+= mysql mysqli
|
|
.endif
|
|
|
|
.if defined(WITH_PGSQL)
|
|
USE_PGSQL= yes
|
|
USE_PHP+= pgsql
|
|
.endif
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if defined(WITH_LIGHTTPD)
|
|
RUN_DEPENDS+= lighttpd:${PORTSDIR}/www/lighttpd
|
|
.endif
|
|
|
|
.if defined(WITH_WEBHOST)
|
|
RUN_DEPENDS+= ${PEAR_DIR}/Mail/mime.php:${PORTSDIR}/mail/pear-Mail_Mime \
|
|
${PEAR_DIR}/Mail/mimeDecode.php:${PORTSDIR}/mail/pear-Mail_mimeDecode \
|
|
${PEAR_DIR}/DB.php:${PORTSDIR}/databases/pear-DB \
|
|
${PEAR_DIR}/Pager/Pager.php:${PORTSDIR}/devel/pear-Pager \
|
|
${PEAR_DIR}/Net/Socket.php:${PORTSDIR}/net/pear-Net_Socket \
|
|
${PEAR_DIR}/Net/SMTP.php:${PORTSDIR}/net/pear-Net_SMTP \
|
|
${PEAR_DIR}/Log.php:${PORTSDIR}/sysutils/pear-Log \
|
|
${LOCALBASE}/share/smarty/Smarty.class.php:${PORTSDIR}/www/smarty
|
|
.endif
|
|
|
|
.if defined(WITH_MYSQL)
|
|
RUN_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/DBD/mysql.pm:${PORTSDIR}/databases/p5-DBD-mysql
|
|
.endif
|
|
|
|
.if defined(WITH_MYSQLSERVER)
|
|
RUN_DEPENDS+= ${LOCALBASE}/bin/mysqld_safe:${PORTSDIR}/databases/mysql55-server
|
|
.endif
|
|
|
|
.if defined(WITH_PGSQL)
|
|
RUN_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/DBD/Pg.pm:${PORTSDIR}/databases/p5-DBD-Pg
|
|
.endif
|
|
|
|
.if defined(WITH_PGSQLSERVER)
|
|
RUN_DEPENDS+= ${LOCALBASE}/bin/pg_ctl:${PORTSDIR}/databases/postgresql84-server
|
|
.endif
|
|
|
|
.if defined(WITH_DOVECOT)
|
|
RUN_DEPENDS+= dovecot:${PORTSDIR}/mail/dovecot
|
|
.endif
|
|
|
|
.if defined(WITH_POSTFIX)
|
|
RUN_DEPENDS+= postfix:${PORTSDIR}/mail/postfix
|
|
.endif
|
|
|
|
.if defined(WITH_PFA)
|
|
RUN_DEPENDS+= ${LOCALBASE}/www/postfixadmin/config.inc.php:${PORTSDIR}/mail/postfixadmin
|
|
.endif
|
|
|
|
.if defined(WITH_FUZZYOCR)
|
|
RUN_DEPENDS+= ${SITE_PERL}/Mail/SpamAssassin/Plugin/FuzzyOcr.pm:${PORTSDIR}/mail/p5-FuzzyOcr-devel
|
|
.endif
|
|
|
|
.if defined(WITH_CLAMAV)
|
|
RUN_DEPENDS+= clamd:${PORTSDIR}/security/clamav
|
|
.endif
|
|
|
|
.if defined(WITH_SPAMASSASSIN)
|
|
RUN_DEPENDS+= ${SITE_PERL}/Mail/SpamAssassin.pm:${PORTSDIR}/mail/p5-Mail-SpamAssassin
|
|
.endif
|
|
|
|
.if defined(WITH_GRAPHICS)
|
|
RUN_DEPENDS+= ${PEAR_DIR}/Image/Color.php:${PORTSDIR}/graphics/pear-Image_Color \
|
|
${PEAR_DIR}/Image/Canvas.php:${PORTSDIR}/graphics/pear-Image_Canvas \
|
|
${PEAR_DIR}/Image/Graph.php:${PORTSDIR}/graphics/pear-Image_Graph \
|
|
${PEAR_DIR}/Numbers/Roman.php:${PORTSDIR}/textproc/pear-Numbers_Roman \
|
|
${PEAR_DIR}/Numbers/Words.php:${PORTSDIR}/textproc/pear-Numbers_Words
|
|
.endif
|
|
|
|
.if defined(WITH_BDB)
|
|
RUN_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/BerkeleyDB.pm:${PORTSDIR}/databases/p5-BerkeleyDB
|
|
.endif
|
|
|
|
.if defined(WITH_ALTERMIME)
|
|
RUN_DEPENDS+= altermime:${PORTSDIR}/mail/altermime
|
|
.endif
|
|
|
|
.if defined(WITH_CRYPT)
|
|
RUN_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/Crypt/Blowfish.pm:${PORTSDIR}/security/p5-Crypt-Blowfish \
|
|
${SITE_PERL}/${PERL_ARCH}/Crypt/OpenSSL/RSA.pm:${PORTSDIR}/security/p5-Crypt-OpenSSL-RSA \
|
|
${SITE_PERL}/Crypt/CBC.pm:${PORTSDIR}/security/p5-Crypt-CBC
|
|
.endif
|
|
|
|
.if defined(WITH_IPCOUNTRY)
|
|
RUN_DEPENDS+= ${SITE_PERL}/IP/Country.pm:${PORTSDIR}/net/p5-IP-Country
|
|
.endif
|
|
|
|
.if defined(WITH_DOMAINKEYS)
|
|
RUN_DEPENDS+= ${SITE_PERL}/Mail/DomainKeys.pm:${PORTSDIR}/mail/p5-Mail-DomainKeys
|
|
.endif
|
|
|
|
.if defined(WITH_SPF)
|
|
RUN_DEPENDS+= ${SITE_PERL}/Mail/SPF.pm:${PORTSDIR}/mail/p5-Mail-SPF
|
|
.endif
|
|
|
|
.if defined(WITH_DKIM)
|
|
RUN_DEPENDS+= ${SITE_PERL}/Mail/DKIM.pm:${PORTSDIR}/mail/p5-Mail-DKIM
|
|
.endif
|
|
|
|
.if defined(WITH_FILE)
|
|
# security fix, file > 4.21 needed
|
|
RUN_DEPENDS+= file>=4.21:${PORTSDIR}/sysutils/file
|
|
.endif
|
|
|
|
# archviers/rar is a 32-bit binary port, we don't want the install to fail
|
|
# at that port, therefore we will block instantly here if the platform does
|
|
# not suit rar.
|
|
.if defined(WITH_RAR)
|
|
IA32_BINARY_PORT= yes
|
|
RUN_DEPENDS+= rar:${PORTSDIR}/archivers/rar
|
|
.endif
|
|
|
|
.if defined(WITH_UNRAR)
|
|
RUN_DEPENDS+= unrar:${PORTSDIR}/archivers/unrar
|
|
.endif
|
|
|
|
.if defined(WITH_ARJ)
|
|
RUN_DEPENDS+= arj:${PORTSDIR}/archivers/arj
|
|
.endif
|
|
|
|
.if defined(WITH_UNARJ)
|
|
RUN_DEPENDS+= unarj:${PORTSDIR}/archivers/unarj
|
|
.endif
|
|
|
|
.if defined(WITH_LHA)
|
|
RUN_DEPENDS+= lha:${PORTSDIR}/archivers/lha
|
|
.endif
|
|
|
|
.if defined(WITH_ARC)
|
|
RUN_DEPENDS+= arc:${PORTSDIR}/archivers/arc
|
|
.endif
|
|
|
|
.if defined(WITH_NOMARCH)
|
|
RUN_DEPENDS+= nomarch:${PORTSDIR}/archivers/nomarch
|
|
.endif
|
|
|
|
.if defined(WITH_CAB)
|
|
RUN_DEPENDS+= cabextract:${PORTSDIR}/archivers/cabextract
|
|
.endif
|
|
|
|
.if defined(WITH_RPM)
|
|
RUN_DEPENDS+= rpm2cpio.pl:${PORTSDIR}/archivers/rpm2cpio
|
|
.endif
|
|
|
|
.if defined(WITH_ZOO)
|
|
# DOS condition in 2.10.1_2
|
|
RUN_DEPENDS+= zoo>=2.10.1_2:${PORTSDIR}/archivers/zoo
|
|
.endif
|
|
|
|
.if defined(WITH_UNZOO)
|
|
RUN_DEPENDS+= unzoo>=4.4_1:${PORTSDIR}/archivers/unzoo
|
|
.endif
|
|
|
|
.if defined(WITH_LZOP)
|
|
RUN_DEPENDS+= lzop:${PORTSDIR}/archivers/lzop
|
|
.endif
|
|
|
|
.if defined(WITH_FREEZE)
|
|
RUN_DEPENDS+= unfreeze:${PORTSDIR}/archivers/freeze
|
|
.endif
|
|
|
|
.if defined(WITH_P7ZIP)
|
|
RUN_DEPENDS+= 7zr:${PORTSDIR}/archivers/p7zip
|
|
.endif
|
|
|
|
.if defined(WITH_TNEF)
|
|
RUN_DEPENDS+= tnef:${PORTSDIR}/converters/tnef
|
|
.endif
|
|
|
|
post-patch:
|
|
.for m in scripts/configtest.pl scripts/expire-quarantine-cache.pl \
|
|
scripts/generate-key.pl scripts/load-sa-rules.pl scripts/maiadbtool.pl \
|
|
scripts/process-quarantine.pl scripts/resend.pl scripts/send-quarantine-digests.pl \
|
|
scripts/send-quarantine-reminders.pl scripts/stats-snapshot.pl
|
|
@${REINPLACE_CMD} -e "s|/etc/maia/maia.conf|${PREFIX}/etc/maia.conf|" \
|
|
${WRKSRC}/${m}
|
|
|
|
.endfor
|
|
.for a in maiad.conf.dist
|
|
@${REINPLACE_CMD} -e "s|daemon_user = 'maia'|daemon_user = '${USERS}'|" \
|
|
-e "s|daemon_group = 'maia'|daemon_group = '${GROUPS}'|" \
|
|
-e "s|/var/lib/maia|${MAIADIR}|" \
|
|
-e "s|/var/log/maia|${MAIADIR}|" ${WRKSRC}/${a}
|
|
.endfor
|
|
.for i in maia.conf.dist
|
|
@${REINPLACE_CMD} -e "s|/etc/maia.conf|${PREFIX}/etc/maia.conf|" \
|
|
-e "s|username = 'maia'|username = '${USERS}'|" \
|
|
-e "s|/var/lib/maia|${MAIADIR}/maia|" \
|
|
-e "s|/usr/bin/sa-learn|/usr/local/bin/sa-learn|" \
|
|
-e "s|local_cf_dir = undef|local_cf_dir = '${PREFIX}/etc/mail/spamassassin'|" \
|
|
-e "s|system_rules_dir = undef|system_rules_dir = '/var/db/spamassassin'|" \
|
|
-e "s|user_rules_dir = undef|user_rules_dir = '${MAIADIR}/.spamassassin'|" \
|
|
-e "s|pid_dir = '/var/run/maia/'|pid_dir = '${MAIADIR}/'|" \
|
|
-e "s|log_dir = '/var/log/maia'|log_dir = '${MAIADIR}'|" \
|
|
-e "s|template_dir = '/etc/maia/templates/'|template_dir = '${MAIADIR}/maia/templates/'|" \
|
|
${WRKSRC}/${i}
|
|
.endfor
|
|
.for a in maiad
|
|
@${REINPLACE_CMD} -e "s|/etc/maia/maiad.conf|${PREFIX}/etc/maiad.conf|" \
|
|
-e "s|/var/lib/maia|${MAIADIR}|" \
|
|
-e "s@'zoo'\]@['zoo','unzoo'] ]@" ${WRKSRC}/${a}
|
|
.endfor
|
|
@${FIND} -E ${WRKSRC} -iregex '.*(bak|~)$$' -delete
|
|
|
|
pre-install:
|
|
@${SH} ${PKGINSTALL} ${DISTNAME} PRE-INSTALL
|
|
|
|
do-install:
|
|
@${INSTALL} -d ${WWWDIR}
|
|
@cd ${WRKSRC}/php && ${FIND} . | ${CPIO} --quiet -pdm -L ${WWWDIR}
|
|
@cd ${WRKSRC}/scripts && ${FIND} . | ${CPIO} --quiet -pdm -L ${MAIADIR}/maia/scripts
|
|
@cd ${WRKSRC}/templates && ${FIND} . | ${CPIO} --quiet -pdm -L ${MAIADIR}/maia/templates
|
|
|
|
.for i in maiad
|
|
@${INSTALL_SCRIPT} ${WRKSRC}/${i} ${PREFIX}/sbin
|
|
.endfor
|
|
@${INSTALL_SCRIPT} -m 640 ${WRKSRC}/maiad.conf.dist ${PREFIX}/etc/maiad.conf.dist
|
|
@${INSTALL_SCRIPT} -m 640 ${WRKSRC}/maia.conf.dist ${PREFIX}/etc/maia.conf.dist
|
|
#
|
|
# This can contain sensitive information, e.g. SQL passwords, so it should be handled
|
|
# with care.
|
|
#
|
|
.if !exists(${PREFIX}/www/${PORTNAME}/config.php)
|
|
@${INSTALL} -o ${WWWOWN} -g ${WWWGRP} -m 640 \
|
|
${WRKSRC}/php/config.php.dist \
|
|
${PREFIX}/www/${PORTNAME}/config.php
|
|
.endif
|
|
.if !defined(NOPORTDOCS)
|
|
@${MKDIR} ${DOCSDIR}
|
|
.for i in ${DOCS}
|
|
@${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}
|
|
.endfor
|
|
.endif
|
|
|
|
post-install:
|
|
.for maiaconf in maia maiad
|
|
@if [ ! -f ${PREFIX}/etc/${maiaconf}.conf ]; then \
|
|
${CP} -p ${PREFIX}/etc/${maiaconf}.conf.dist \
|
|
${PREFIX}/etc/${maiaconf}.conf ; \
|
|
fi
|
|
@${CHOWN} ${USERS}:${GROUPS} ${PREFIX}/etc/${maiaconf}.conf \
|
|
${PREFIX}/etc/${maiaconf}.conf.dist
|
|
.endfor
|
|
@${CHOWN} -R ${WWWOWN}:${WWWGRP} ${WWWDIR}
|
|
@${CHOWN} -R ${USERS}:${GROUPS} ${MAIADIR}/
|
|
@${ECHO_CMD} '@exec ${CHOWN} -R ${WWWOWN}:${WWWGRP} ${WWWDIR}' >> ${TMPPLIST}
|
|
@${ECHO_CMD} '@exec ${CHOWN} -R ${USERS}:${GROUPS} ${MAIADIR}' >> ${TMPPLIST}
|
|
@${LN} -s ${PREFIX}/share/smarty ${PREFIX}/www/${PORTNAME}/libs/Smarty
|
|
@${CAT} ${PKGMESSAGE}
|
|
|
|
.include <bsd.port.post.mk>
|