aboutsummaryrefslogtreecommitdiffstats
path: root/security/clamav
diff options
context:
space:
mode:
Diffstat (limited to 'security/clamav')
-rw-r--r--security/clamav/Makefile66
-rw-r--r--security/clamav/files/clamd.sh42
-rw-r--r--security/clamav/files/patch-ltmain.sh23
-rw-r--r--security/clamav/pkg-descr2
-rw-r--r--security/clamav/pkg-install21
-rw-r--r--security/clamav/pkg-plist23
6 files changed, 150 insertions, 27 deletions
diff --git a/security/clamav/Makefile b/security/clamav/Makefile
index e2f5615f4e9d..114099fcde47 100644
--- a/security/clamav/Makefile
+++ b/security/clamav/Makefile
@@ -7,7 +7,7 @@
PORTNAME= clamav
PORTVERSION= 0.60
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= security
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= clamav
@@ -26,20 +26,43 @@ USE_REINPLACE= yes
USE_GMAKE= yes
GNU_CONFIGURE= yes
CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
-USE_LIBTOOL= yes
+#USE_LIBTOOL_VER=14
INSTALLS_SHLIB= yes
-CONFIGURE_ARGS= --prefix=${PREFIX} \
+PKGINSTALL= ${WRKDIR}/pkg-install
+
+CONFIGURE_ARGS= --with-dbdir=${DATADIR} \
--disable-clamav --enable-bigstack
CFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= ${PTHREAD_LIBS}
CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}"
MAN1= clamscan.1 freshclam.1 sigtool.1 clamdscan.1 clamav-milter.1
MAN5= clamav.conf.5
MAN8= clamd.8
+SED_SCRIPT= -e 's|%%PREFIX%%|${PREFIX}|g' \
+ -e 's|%%DATADIR%%|${DATADIR}|g'
+
+SED_CONF= -E -e 's|^\#?(Example)$$|\#\1|' \
+ -e 's|^\#?(LogFile) .*$$|\1 /var/log/clamav/clamd.log|' \
+ -e 's|^\#?(PidFile) .*$$|\1 /var/run/clamav/clamd.pid|' \
+ -e 's|^\#?(LocalSocket) .*$$|\1 /var/run/clamav/clamd|' \
+ -e 's|^\#?(User) .*$$|\1 clamav|' \
+ -e 's|^\#?(AllowSupplementaryGroups)$$|\1|' \
+ -e 's|^\#?(ScanMail)$$|\1|'
+
.include <bsd.port.pre.mk>
-.if ${OSVERSION} < 510001
+USE_RC_SUBR= yes
+RC_DIR= ${PREFIX}/etc/rc.d
+RC_SUFX= .sh
+SED_SCRIPT+= -e 's|%%RC_SUBR%%|${RC_SUBR}|g' \
+ -e 's|%%RC_DIR%%|${RC_DIR}|g' \
+ -e 's|%%RC_SUFX%%|${RC_SUFX}|g'
+PLIST_SUB+= RC_DIR=${RC_DIR} \
+ RC_SUFX=${RC_SUFX}
+
+.if ${OSVERSION} < 501100
# compiles only with optimizer
CFLAGS+= -O
LDFLAGS+= -lcipher
@@ -47,21 +70,40 @@ LDFLAGS+= -lcipher
.if defined(WITH_MILTER)
CONFIGURE_ARGS+= --enable-milter
-PLIST_SUB+= CLAMAV-MILTER:=""
+PLIST_SUB+= CLAMAV-MILTER=""
.else
-PLIST_SUB+= CLAMAV-MILTER:="@comment "
+PLIST_SUB+= CLAMAV-MILTER="@comment "
.endif
post-patch:
- @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' ${WRKSRC}/configure
+ @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' \
+ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
+
+pre-configure:
+ @${REINPLACE_CMD} -e 's|clamav.conf|&.default|' \
+ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} \
+ ${CONFIGURE_WRKSRC}/etc/Makefile.in
+.ifdef USE_LIBTOOL_VER
+ @${REINPLACE_CMD} -e '/^LIBTOOL=/s|\$$(top_builddir)/libtool|${LIBTOOL}|' \
+ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
+.endif
+
+post-build:
+ @${SED} ${SED_CONF} ${BUILD_WRKSRC}/etc/clamav.conf \
+ >${BUILD_WRKSRC}/etc/clamav.conf.default
+ @${SED} ${SED_SCRIPT} ${PKGDIR}/pkg-install >${PKGINSTALL}
+ @${SED} ${SED_SCRIPT} ${FILESDIR}/clamd.sh >${WRKDIR}/clamd.sh
pre-install:
- @${ECHO} "===> Creating custom user to run clamav..."
- ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
+ @${SETENV} PKG_PREFIX=${PREFIX} \
+ ${SH} ${PKGINSTALL} ${PREFIX} PRE-INSTALL
post-install:
- @${ECHO} "===> Setting permissions..."
- @${SETENV} PKG_PREFIX=${PREFIX} ${sh} \
- ${SH} ${PKGINSTALL} ${PREFIX} POST-INSTALL
+ @${INSTALL_SCRIPT} ${WRKDIR}/clamd.sh ${RC_DIR}/clamd${RC_SUFX}
+ @${CHOWN} -R clamav:clamav ${DATADIR}
+ @[ -f ${PREFIX}/etc/clamav.conf ] || \
+ ${CP} ${PREFIX}/etc/clamav.conf.default ${PREFIX}/etc/clamav.conf
+ @${SETENV} PKG_PREFIX=${PREFIX} \
+ ${SH} ${PKGINSTALL} ${PREFIX} POST-INSTALL
.include <bsd.port.post.mk>
diff --git a/security/clamav/files/clamd.sh b/security/clamav/files/clamd.sh
new file mode 100644
index 000000000000..3254acb2a0cb
--- /dev/null
+++ b/security/clamav/files/clamd.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: clamd
+# REQUIRE: LOGIN
+# BEFORE: mail
+# KEYWORD: FreeBSD shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable clamd:
+#
+#clamd_enable="YES"
+#
+# See clamd(8) for flags
+#
+
+. %%RC_SUBR%%
+
+name=clamd
+rcvar=`set_rcvar`
+
+command=%%PREFIX%%/sbin/clamd
+pidfile=/var/run/clamav/clamd.pid
+required_dirs=%%DATADIR%%
+required_files=%%PREFIX%%/etc/clamav.conf
+
+stop_postcmd=stop_postcmd
+
+stop_postcmd()
+{
+ rm -f $pidfile
+}
+
+# set defaults
+
+clamd_enable=${clamd_enable:-"NO"}
+clamd_flags=${clamd_flags:-""}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/security/clamav/files/patch-ltmain.sh b/security/clamav/files/patch-ltmain.sh
new file mode 100644
index 000000000000..74d32db0b279
--- /dev/null
+++ b/security/clamav/files/patch-ltmain.sh
@@ -0,0 +1,23 @@
+--- ltmain.sh.orig Sat Sep 27 05:20:20 2003
++++ ltmain.sh Sat Sep 27 05:24:02 2003
+@@ -4259,10 +4259,16 @@
+ fi
+
+ # Install the pseudo-library for information purposes.
+- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+- instname="$dir/$name"i
+- $show "$install_prog $instname $destdir/$name"
+- $run eval "$install_prog $instname $destdir/$name" || exit $?
++ case $host in
++ *-*-freebsd*)
++ # Do not install the useless pseudo-library
++ ;;
++ *)
++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++ instname="$dir/$name"i
++ $show "$install_prog $instname $destdir/$name"
++ $run eval "$install_prog $instname $destdir/$name" || exit $?
++ esac
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
diff --git a/security/clamav/pkg-descr b/security/clamav/pkg-descr
index af63f4e19c00..b0eb16cd9c81 100644
--- a/security/clamav/pkg-descr
+++ b/security/clamav/pkg-descr
@@ -3,3 +3,5 @@ and its database is kept up to date. It also detects polymorphic
viruses, scans compressed files and supported by AMaViS.
On FreeBSD 4.X the milter interface isn't built by default because
it needs gcc30 or higher.
+
+WWW: http://clamav.sourceforge.net/
diff --git a/security/clamav/pkg-install b/security/clamav/pkg-install
index e99d15038e69..151d27b42fd9 100644
--- a/security/clamav/pkg-install
+++ b/security/clamav/pkg-install
@@ -1,10 +1,15 @@
#!/bin/sh
-if [ "$2" = "PRE-INSTALL" ]; then
+PREFIX=${PKG_PREFIX:-%%PREFIX%%}
USER=clamav
GROUP=clamav
+CLAMRUN=/var/run/clamav
+CLAMLOG=/var/log/clamav
+
+if [ "$2" = "PRE-INSTALL" ]; then
+
if ! pw groupshow "$GROUP" 2>/dev/null 1>&2; then
if pw groupadd $GROUP; then
echo "=> Added group \"$GROUP\"."
@@ -19,20 +24,20 @@ if ! pw usershow "$USER" 2>/dev/null 1>&2; then
-s "/sbin/nologin" -d "/nonexistent" \
-c "Clam Antivirus"; \
then
+ pw groupmod mail -m $USER
echo "=> Added user \"$USER\"."
else
echo "=> Adding user \"$USER\" failed..."
exit 1
fi
fi
-fi
-if [ "$2" = "POST-INSTALL" ]; then
- chown -R clamav:clamav ${PKG_PREFIX}/share/clamav
-fi
+mkdir -p "$CLAMRUN"
+chown "$USER:$GROUP" "$CLAMRUN"
-if [ "$2" != "POST-INSTALL" ] && [ "$2" != "PRE-INSTALL" ]; then
- exit 0
-fi
+mkdir -p "$CLAMLOG"
+chown "$USER:$GROUP" "$CLAMLOG"
+
+fi # PRE-INSTALL
exit 0
diff --git a/security/clamav/pkg-plist b/security/clamav/pkg-plist
index cac5ce5be29f..f427110a6f4e 100644
--- a/security/clamav/pkg-plist
+++ b/security/clamav/pkg-plist
@@ -1,16 +1,25 @@
+@comment $FreeBSD$
+@unexec [ ! -f /var/run/clamav/clamd.pid ] || %%RC_DIR%%/clamd%%RC_SUFX%% stop || true
bin/clamscan
bin/clamdscan
bin/freshclam
bin/sigtool
-%%CLAMAV-MILTER:%%sbin/clamav-milter
+%%CLAMAV-MILTER%%sbin/clamav-milter
sbin/clamd
include/clamav.h
lib/libclamav.so.1
lib/libclamav.so
-lib/libclamav.la
lib/libclamav.a
-share/clamav/mirrors.txt
-share/clamav/viruses.db
-share/clamav/viruses.db2
-@dirrm share/clamav
-@unexec rmuser -y clamav
+@unexec if cmp -s %D/etc/clamav.conf %D/etc/clamav.conf.default; then rm -f %D/etc/clamav.conf; fi
+etc/clamav.conf.default
+@exec [ -f %B/clamav.conf ] || cp %B/%f %B/clamav.conf
+etc/rc.d/clamd%%RC_SUFX%%
+@owner clamav
+@group clamav
+%%DATADIR%%/mirrors.txt
+%%DATADIR%%/viruses.db
+%%DATADIR%%/viruses.db2
+@exec chown clamav:clamav %B
+@dirrm %%DATADIR%%
+@unexec rmdir /var/run/clamav 2>/dev/null || true
+@unexec rmdir /var/log/clamav 2>/dev/null || true