aboutsummaryrefslogblamecommitdiff
path: root/security/amavisd-new/Makefile
blob: c3368e4000c87e9dd1faf47a1f62a3644853d194 (plain) (tree)
1
2
3
4
5
6
7
8
9
           

                           
                     
                 
                 
                        
                                                     
                                                         
                                                  
 
                                 
                                                                          
 
                     
 


                                                                           
                                                                                  
                                                                        
                                                                   
                                                                
 
                   
 


                                                                            
                                                                             
                                                  
 

                     

                                       
                                   
 









                                                                                     
                                                                                     
















                                                                                     


                                                     
                                          

                                            
                                                      

                                    
 
                                            
 
                              
 
                       
 
                      
                                                                        

      
                                           
                            
                                                               

      
                     
                                                                    
      
 
                        
                                                                    
      
 
                       
                                                                  


                       
                                                            


                      
                                                            

      
                      
                                                                     

      
                              
                                                                             



                                                             
                                  



                           



                                                                     
                      

                                                    

      



                                                                           
                     

                                             
                                                              


                                                                                


                       






                                                                  



                                                                  







                                                              











                                                                            
                     

                                                       

      
                       
                                                        









                                                                      



                                                                
                        
                                                                   

      



                                                                 

                          



                                                                          
           



                                                                                                 
                                                                     
                                                                                                  
                                                                                   
                                              

                                                                                     

                                                                                     

                                                                                   

                                                                                
                                                                   
                                                                                                          

                                         
            


                                                    

                                                                  
      
                                                                                   


                                                                                
                                                                                           
                                                                                              






                                                                                        


                                                                                               
                        
                                   
                 

                                                 
                                                                   
      

             
                                                                              
                             
 
                           
# $FreeBSD$

PORTNAME=	amavisd-new
PORTVERSION=	2.8.0
PORTREVISION=	2
PORTEPOCH=	1
CATEGORIES=	security
MASTER_SITES=	http://www.ijs.si/software/amavisd/ \
		http://mirrors.catpipe.net/amavisd-new/ \
		http://mirror.mainloop.se/amavisd/

MAINTAINER=	gabor@FreeBSD.org
COMMENT=	Mail scanner interface between mailer and content checkers

LICENSE=	GPLv2

RUN_DEPENDS=	p5-Unix-Syslog>=0:${PORTSDIR}/sysutils/p5-Unix-Syslog \
		p5-MIME-Tools>=0:${PORTSDIR}/mail/p5-MIME-Tools \
		p5-Convert-TNEF>=0:${PORTSDIR}/converters/p5-Convert-TNEF \
		p5-Convert-UUlib>=1.08,1:${PORTSDIR}/converters/p5-Convert-UUlib \
		p5-Archive-Zip>=0:${PORTSDIR}/archivers/p5-Archive-Zip \
		p5-Net-Server>=0.93:${PORTSDIR}/net/p5-Net-Server \
		p5-Mail-DKIM>=0.33:${PORTSDIR}/mail/p5-Mail-DKIM

USE_PERL5_RUN=	yes

NO_BUILD=	yes

DOCS=		AAAREADME.first AMAVIS-MIB.txt INSTALL LDAP.schema LICENSE \
		RELEASE_NOTES README_FILES/README.* README_FILES/screen.css \
		README_FILES/amavisd-new-docs.html

AMAVISUSER?=	vscan
AMAVISGROUP?=	vscan
AMAVISDIR?=	/var/amavis
AMAVISQUARANTINE?=	/var/virusmails
DAEMON?=	/usr/sbin/daemon -p

OPTIONS=	IPV6		"Support IPv6"					on \
		BDB		"Use BerkeleyDB for nanny/cache/snmp"		on \
		SNMP		"Install amavisd snmp subagent"			off \
		SQLITE		"Use SQLite for lookups"			off \
		MYSQL		"Use MySQL for lookups/logging/quarantine"	off \
		PGSQL		"Use PgSQL for lookups/logging/quarantine"	off \
		LDAP		"Use LDAP for lookups"				off \
		SASL		"Use SASL authentication"			off \
		SPAMASSASSIN	"Use mail/p5-Mail-SpamAssassin"			on \
		P0F		"Passive operating system fingerprinting"	off \
		ALTERMIME	"Use AlterMime for defanging/disclaimers"	off \
		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"		on \
		FREEZE		"FREEZE support with archivers/freeze"		on \
		P7ZIP		"P7ZIP support with archivers/p7zip"		on \
		MSWORD		"Ms Word support with textproc/ripole"		on \
		TNEF		"Add external tnef decoder converters/tnef"	off

SUB_FILES=	pkg-install pkg-deinstall pkg-message

SUB_LIST+=	AMAVISUSER=${AMAVISUSER} \
		AMAVISGROUP=${AMAVISGROUP} \
		AMAVISDIR=${AMAVISDIR} \
		AMAVISQUARANTINE=${AMAVISQUARANTINE} \
		DAEMON="${DAEMON}" \
		PERL=${PERL}

PLIST_SUB+=	AMAVIS_NOP0F=${AMAVIS_NOP0F}

.include <bsd.port.options.mk>

USE_RC_SUBR+=	amavisd

.if defined(WITH_IPV6)
RUN_DEPENDS+=	p5-IO-Socket-INET6>=0:${PORTSDIR}/net/p5-IO-Socket-INET6
.endif

.if defined(WITH_SNMP) && defined(WITH_BDB)
USE_RC_SUBR+=	amavisd-snmp
RUN_DEPENDS+=	p5-Net-SNMP>=0:${PORTSDIR}/net-mgmt/p5-Net-SNMP
.endif

.if defined(WITH_BDB)
RUN_DEPENDS+=	p5-BerkeleyDB>=0:${PORTSDIR}/databases/p5-BerkeleyDB
.endif

.if defined(WITH_SQLITE)
RUN_DEPENDS+=	p5-DBD-SQLite>=0:${PORTSDIR}/databases/p5-DBD-SQLite
.endif

.if defined(WITH_MYSQL)
RUN_DEPENDS+=	p5-DBD-mysql>=0:${PORTSDIR}/databases/p5-DBD-mysql
.endif

.if defined(WITH_PGSQL)
RUN_DEPENDS+=	p5-DBD-Pg>=0:${PORTSDIR}/databases/p5-DBD-Pg
.endif

.if defined(WITH_LDAP)
RUN_DEPENDS+=	p5-perl-ldap>=0:${PORTSDIR}/net/p5-perl-ldap
.endif

.if defined(WITH_SASL)
RUN_DEPENDS+=	p5-Authen-SASL>=0:${PORTSDIR}/security/p5-Authen-SASL
.endif

.if defined(WITH_SPAMASSASSIN)
RUN_DEPENDS+=	p5-Mail-SpamAssassin>=0:${PORTSDIR}/mail/p5-Mail-SpamAssassin
.endif

.if defined(WITH_P0F)
RUN_DEPENDS+=	${LOCALBASE}/bin/p0f:${PORTSDIR}/net-mgmt/p0f
USE_RC_SUBR+=	amavis-p0fanalyzer
.else
AMAVIS_NOP0F=	"@comment "
.endif

.if defined(WITH_ALTERMIME)
RUN_DEPENDS+=	${LOCALBASE}/bin/altermime:${PORTSDIR}/mail/altermime
.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)
# support for archivers/rar is broken on ia64
.if ${ARCH} == "i386" || ${ARCH} == "amd64"
RUN_DEPENDS+=	${LOCALBASE}/bin/rar:${PORTSDIR}/archivers/rar
.else
IGNORE=	archviers/rar is a 32-bit binary port and is not compatible with ${ARCH}
.endif
.endif

.if defined(WITH_UNRAR)
RUN_DEPENDS+=	${LOCALBASE}/bin/unrar:${PORTSDIR}/archivers/unrar
.endif

.if defined(WITH_ARJ)
RUN_DEPENDS+=	${LOCALBASE}/bin/arj:${PORTSDIR}/archivers/arj
.endif

.if defined(WITH_UNARJ)
RUN_DEPENDS+=	${LOCALBASE}/bin/unarj:${PORTSDIR}/archivers/unarj
.endif

.if defined(WITH_LHA)
RUN_DEPENDS+=	${LOCALBASE}/bin/lha:${PORTSDIR}/archivers/lha
.endif

.if defined(WITH_ARC)
RUN_DEPENDS+=	${LOCALBASE}/bin/arc:${PORTSDIR}/archivers/arc
.endif

.if defined(WITH_NOMARCH)
RUN_DEPENDS+=	${LOCALBASE}/bin/nomarch:${PORTSDIR}/archivers/nomarch
.endif

.if defined(WITH_CAB)
RUN_DEPENDS+=	${LOCALBASE}/bin/cabextract:${PORTSDIR}/archivers/cabextract
.endif

.if defined(WITH_RPM)
RUN_DEPENDS+=	${LOCALBASE}/bin/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+=	${LOCALBASE}/bin/lzop:${PORTSDIR}/archivers/lzop
.endif

.if defined(WITH_FREEZE)
RUN_DEPENDS+=	${LOCALBASE}/bin/unfreeze:${PORTSDIR}/archivers/freeze
.endif

.if defined(WITH_P7ZIP)
RUN_DEPENDS+=	${LOCALBASE}/bin/7zr:${PORTSDIR}/archivers/p7zip
.endif

.if defined(WITH_MSWORD)
RUN_DEPENDS+=	${LOCALBASE}/bin/ripole:${PORTSDIR}/textproc/ripole
.endif

.if defined(WITH_TNEF)
RUN_DEPENDS+=	${LOCALBASE}/bin/tnef:${PORTSDIR}/converters/tnef
.endif

.include <bsd.port.pre.mk>

.if ${PERL_LEVEL} < 500903
RUN_DEPENDS+=	p5-IO-Compress>=2.017:${PORTSDIR}/archivers/p5-IO-Compress
.endif

post-patch:
	@${REINPLACE_CMD} -e "s|$daemon_user  = \'vscan\';|$daemon_user  = \'${AMAVISUSER}\';|" \
			-e "s|$daemon_group = \'vscan\';|$daemon_group = \'${AMAVISGROUP}\';|" \
			-e "s|/var/amavis|${AMAVISDIR}|" \
			-e "s|/var/lib/amavis|${AMAVISDIR}|" \
			-e "s|/var/virusmails|${AMAVISQUARANTINE}|" \
			-e 's|$$localhost_name = .localhost.;|$$localhost_name = $$myhostname;|' \
			-e 's|/var/run/clamav/clamd|/var/run/clamav/clamd.sock|g' \
			${WRKSRC}/amavisd.conf
	@${REINPLACE_CMD} "s|/var/amavis/db|${AMAVISDIR}/db|" ${WRKSRC}/amavisd-agent
	@${REINPLACE_CMD} "s|/var/amavis/db|${AMAVISDIR}/db|" ${WRKSRC}/amavisd-nanny
	@${REINPLACE_CMD} -e "s|/var/amavis/db|${AMAVISDIR}/db|" \
			-e "s|/usr/bin/perl|${PERL}|" ${WRKSRC}/amavisd-snmp-subagent
	@${REINPLACE_CMD} "s|/var/amavis/amavisd.sock|${AMAVISDIR}/amavisd.sock|" \
			${WRKSRC}/amavisd-release
	@${REINPLACE_CMD} -e "s|/etc/amavisd.conf|${PREFIX}/etc/amavisd.conf|" \
				-e "s|/usr/bin/perl|${PERL}|" \
				-e "s|/var/amavis|${AMAVISDIR}|g" \
				-e 's|$$localhost_name = .localhost.;|$$localhost_name = $$myhostname;|' \
			${WRKSRC}/amavisd

pre-install:
	@${SH} ${PKGINSTALL} ${DISTNAME} PRE-INSTALL

do-install:
.if defined(WITH_P0F)
	${INSTALL_SCRIPT} ${WRKSRC}/p0f-analyzer.pl ${PREFIX}/sbin
.endif
.for i in amavisd amavisd-agent amavisd-nanny amavisd-release amavisd-snmp-subagent
	${INSTALL_SCRIPT} ${WRKSRC}/${i} ${PREFIX}/sbin
.endfor
	${INSTALL_SCRIPT} ${WRKSRC}/amavisd.conf ${PREFIX}/etc/amavisd.conf-dist
	${INSTALL_SCRIPT} ${WRKSRC}/amavisd.conf-default ${PREFIX}/etc/amavisd.conf-default
	${INSTALL_SCRIPT} ${WRKSRC}/amavisd-custom.conf ${PREFIX}/etc/amavisd-custom.conf-dist
.if !exists(${PREFIX}/etc/amavisd.conf)
#
#  This can contain sensitive information, e.g. SQL passwords, so it should be handled
#  with care.
#
	${INSTALL} -o root -g ${AMAVISGROUP} -m 640 ${WRKSRC}/amavisd.conf ${PREFIX}/etc
.endif
.if !exists(${PREFIX}/etc/amavisd-custom.conf)
	${INSTALL} -o root -g ${AMAVISGROUP} -m 640 ${WRKSRC}/amavisd-custom.conf ${PREFIX}/etc
.endif
.if !defined(NOPORTDOCS)
	@${MKDIR} ${DOCSDIR}/images
.for i in ${DOCS}
	${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}
.endfor
	@${CP} -pr ${WRKSRC}/README_FILES/images/ ${DOCSDIR}/images
.endif

post-install:
	${LN} -s ${PREFIX}/sbin/amavisd-release ${PREFIX}/sbin/amavisd-requeue
	@${CAT} ${PKGMESSAGE}

.include <bsd.port.post.mk>