diff options
Diffstat (limited to 'security/clamav')
-rw-r--r-- | security/clamav/Makefile | 66 | ||||
-rw-r--r-- | security/clamav/files/clamd.sh | 42 | ||||
-rw-r--r-- | security/clamav/files/patch-ltmain.sh | 23 | ||||
-rw-r--r-- | security/clamav/pkg-descr | 2 | ||||
-rw-r--r-- | security/clamav/pkg-install | 21 | ||||
-rw-r--r-- | security/clamav/pkg-plist | 23 |
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 |