Tweak multimedia/libvpx version 1.6.1_1
[dports.git] / security / clamav / Makefile
1 # Created by: markun@onohara.to
2 # $FreeBSD$
3
4 PORTNAME=       clamav
5 PORTVERSION=    0.99.2
6 PORTREVISION=   4
7 CATEGORIES=     security
8 MASTER_SITES=   http://www.clamav.net/downloads/production/
9
10 MAINTAINER=     garga@FreeBSD.org
11 COMMENT=        Command line virus scanner written entirely in C
12
13 LICENSE=        GPLv2
14
15 LIB_DEPENDS=    libltdl.so:devel/libltdl \
16                 libcurl.so:ftp/curl
17
18 OPTIONS_DEFINE= ARC ARJ LHA UNZOO UNRAR TESTS MILTER LDAP ICONV STDERR \
19                 EXPERIMENTAL DOCS IPV6 DMG_XAR JSON PCRE
20
21 ARC_DESC=               Enable arch archives support
22 ARJ_DESC=               Enable arj archives support
23 LHA_DESC=               Enable lha archives support
24 UNZOO_DESC=             Enable zoo archives support
25 TESTS_DESC=             Run compile-time tests (req. python)
26 MILTER_DESC=            Compile the milter interface
27 STDERR_DESC=            Print logs to stderr instead of stdout
28 EXPERIMENTAL_DESC=      Build experimental code
29 DMG_XAR_DESC=           Enable DMG and XAR archives support
30
31 OPTIONS_DEFAULT=        ARC ARJ LHA UNZOO UNRAR DMG_XAR \
32                         JSON PCRE
33
34 ARC_RUN_DEPENDS=        arc:archivers/arc
35 ARJ_RUN_DEPENDS=        arj:archivers/arj
36 LHA_RUN_DEPENDS=        lha:archivers/lha
37 UNZOO_RUN_DEPENDS=      unzoo:archivers/unzoo
38 JSON_LIB_DEPENDS=       libjson-c.so:devel/json-c
39 PCRE_LIB_DEPENDS=       libpcre.so:devel/pcre
40 UNRAR_CONFIGURE_ENABLE= unrar
41 MILTER_CONFIGURE_ENABLE=milter
42 TESTS_CONFIGURE_ENABLE= check
43 JSON_CONFIGURE_WITH=    libjson
44 PCRE_CONFIGURE_WITH=    pcre
45 TESTS_BUILD_DEPENDS=    ${LOCALBASE}/include/check.h:devel/check
46 ICONV_CONFIGURE_ON=     --with-iconv
47 ICONV_CONFIGURE_OFF=    --without-iconv
48 ICONV_USES=             iconv
49 EXPERIMENTAL_CONFIGURE_ENABLE=  experimental
50 IPV6_CONFIGURE_ENABLE=  ipv6
51 DMG_XAR_CONFIGURE_ENABLE=       xml
52 DMG_XAR_USE=            GNOME=libxml2
53
54 GNU_CONFIGURE=  yes
55 USE_LDCONFIG=   yes
56 USES=           cpe gmake libtool ncurses pathfix
57 INSTALL_TARGET= install-strip
58 USE_RC_SUBR=    clamav-clamd clamav-freshclam
59
60 PORTDOCS=       *
61
62 DBDIR=          /var/db/clamav
63 LOGDIR=         /var/log/clamav
64 RUNDIR=         /var/run/clamav
65 PLIST_SUB+=     DBDIR=${DBDIR} \
66                 LOGDIR=${LOGDIR} \
67                 RUNDIR=${RUNDIR} \
68                 CLAMAVUSER=${CLAMAVUSER} \
69                 CLAMAVGROUP=${CLAMAVGROUP}
70 PY_NO_THREAD=   ${WRKDIR}/.python-has-no-threads
71 OPTIONS_SUB=    yes
72
73 CONFIGURE_ARGS= --libdir=${PREFIX}/lib \
74                 --with-dbdir=${DBDIR} \
75                 --with-zlib=/usr \
76                 --disable-clamuko \
77                 --disable-clamav \
78                 --enable-bigstack \
79                 --enable-readdir_r \
80                 --enable-gethostbyname_r \
81                 --disable-dependency-tracking \
82                 --disable-zlib-vcheck \
83                 --enable-clamdtop \
84                 --disable-llvm
85 CPPFLAGS+=      -I${LOCALBASE}/include
86 LDFLAGS+=       -L${LOCALBASE}/lib
87
88 CONFLICTS?=     clamav-milter-[0-9]*
89
90 CLAMAVUSER?=    clamav
91 CLAMAVGROUP?=   clamav
92
93 CLAMAV_CLAMD_SOCKET?=   ${RUNDIR}/clamd.sock
94 CLAMAV_MILTER_SOCKET?=  ${RUNDIR}/clmilter.sock
95
96 SUB_FILES=      pkg-deinstall
97 SUB_LIST+=      DBDIR=${DBDIR} \
98                 LOGDIR=${LOGDIR} \
99                 RUNDIR=${RUNDIR} \
100                 CHMOD=${CHMOD} \
101                 CHOWN=${CHOWN} \
102                 CLAMAVUSER=${CLAMAVUSER} \
103                 CLAMAVGROUP=${CLAMAVGROUP} \
104                 CLAMAV_CLAMD_SOCKET=${CLAMAV_CLAMD_SOCKET} \
105                 CLAMAV_MILTER_SOCKET=${CLAMAV_MILTER_SOCKET}
106
107 SED_CONF=       -E -e 's|^\#?(Example)$$|\#\1|' \
108                 -e 's|^\#?((Update)?LogFile) .*/([a-z]+\.log)$$|\1 ${LOGDIR}/\3|' \
109                 -e 's|^\#?(PidFile) .*/([a-z\-]+\.pid)$$|\1 ${RUNDIR}/\2|' \
110                 -e 's|^\#?(LocalSocket) .*$$|\1 ${CLAMAV_CLAMD_SOCKET}|' \
111                 -e 's|^\#?(User) .*$$|\1 ${CLAMAVUSER}|' \
112                 -e 's|^\#?(AllowSupplementaryGroups).*$$|\1 yes|' \
113                 -e 's|^\#?(ScanMail).*$$|\1 yes|' \
114                 -e 's|^\#?(DatabaseDirectory) .*$$|\1 ${DBDIR}|' \
115                 -e 's|^\#?(DatabaseOwner) .*$$|\1 ${CLAMAVUSER}|' \
116                 -e 's|^\#?(FixStaleSocket).*$$|\1 yes|' \
117                 -e 's|^\#?(NotifyClamd) .*$$|\1 ${PREFIX}/etc/clamd.conf|' \
118                 -e 's|^\#?(MilterSocket) */tmp.*$$|\1 ${CLAMAV_MILTER_SOCKET}|' \
119                 -e 's|^\#?(ClamdSocket).*$$|\1 unix:${CLAMAV_CLAMD_SOCKET}|'
120
121 PLIST_SUB+=     CLAMAVUSER=${CLAMAVUSER} \
122                 CLAMAVGROUP=${CLAMAVGROUP}
123
124 .include <bsd.port.options.mk>
125
126 .if ${CLAMAVUSER} == "clamav"
127 USERS=  clamav
128 .endif
129
130 .if ${CLAMAVGROUP} == "clamav"
131 GROUPS= clamav mail
132 .endif
133
134 . if ${PORT_OPTIONS:MTESTS}
135 USES+=          python:build
136 . endif
137
138 .if ${PORT_OPTIONS:MMILTER}
139 USE_RC_SUBR+=   clamav-milter
140 . if ${PORT_OPTIONS:MLDAP} && exists(${LOCALBASE}/lib/libldap.so)
141 USE_OPENLDAP=   yes
142 LDFLAGS+=       -lldap
143 . endif
144
145 . if !exists(/usr/lib/libmilter.a) || exists(${LOCALBASE}/lib/libmilter.a)
146 BUILD_DEPENDS+= ${LOCALBASE}/lib/libmilter.a:mail/libmilter
147 CONFIGURE_ARGS+=--with-sendmail=${LOCALBASE}/sbin/sendmail
148 LDFLAGS+=       -L${LOCALBASE}/lib
149 . else
150 CONFIGURE_ARGS+=--with-sendmail=/usr/sbin/sendmail
151 . endif
152 .endif
153
154 .if ${PORT_OPTIONS:MSTDERR}
155 EXTRA_PATCHES+=         ${FILESDIR}/extra-patch-shared_output.c
156 .endif
157
158 .include <bsd.port.pre.mk>
159
160 .if ${ARCH} == "i386"
161 CFLAGS+=        -march=i486
162 .endif
163
164 post-patch:
165         @${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|-lthr|g' \
166                           -e 's|LC_REVISION=22|LC_REVISION=24|' \
167                 ${WRKSRC}/${CONFIGURE_SCRIPT}
168         @${REINPLACE_CMD} ${SED_CONF} \
169                 ${WRKSRC}/etc/clamd.conf.sample \
170                 ${WRKSRC}/etc/freshclam.conf.sample \
171                 ${WRKSRC}/etc/clamav-milter.conf.sample
172         @${REINPLACE_CMD} -e 's|0x100000000|0x100000000ULL|g' \
173                 ${WRKSRC}/libclamunrar/unrar.c
174
175 .if ${PORT_OPTIONS:MLLVM} && ${PORT_OPTIONS:MTESTS}
176 pre-configure:
177         @if ! ${PYTHON_CMD} -c "import thread" >/dev/null 2>&1; then \
178                 ${ECHO_MSG} ""; \
179                 ${ECHO_MSG} "==========================================================================="; \
180                 ${ECHO_MSG} "= Unit tests REQUIRES python built with thread support, and yours is not. ="; \
181                 ${ECHO_MSG} "= It will not be called during this build                                 ="; \
182                 ${ECHO_MSG} "==========================================================================="; \
183                 ${ECHO_MSG} ""; \
184                 ${TOUCH} ${PY_NO_THREAD}; \
185         fi
186 .endif
187
188 .if ${PORT_OPTIONS:MTESTS}
189 post-build:
190         @if [ ! -f "${PY_NO_THREAD}" ]; then \
191                 ${MAKE_CMD} -C ${WRKSRC} check; \
192         fi
193 .endif
194
195 post-install:
196         ${INSTALL_DATA} ${WRKSRC}/clamav-config.h ${STAGEDIR}${PREFIX}/include
197         @${MKDIR} ${STAGEDIR}${DOCSDIR}/html \
198                   ${STAGEDIR}${DBDIR} \
199                   ${STAGEDIR}${LOGDIR} \
200                   ${STAGEDIR}${RUNDIR}
201         ${INSTALL_DATA} ${WRKSRC}/NEWS ${WRKSRC}/ChangeLog ${STAGEDIR}${DOCSDIR}
202         ${INSTALL_DATA} ${WRKSRC}/docs/html/* ${STAGEDIR}${DOCSDIR}/html
203
204 .include <bsd.port.post.mk>