diff options
18 files changed, 177 insertions, 82 deletions
diff --git a/packages/clamav/clamav-0.88.7/.mtn2git_empty b/packages/clamav/clamav-0.88.7/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/clamav/clamav-0.88.7/.mtn2git_empty diff --git a/packages/clamav/files/clamd.conf b/packages/clamav/clamav-0.88.7/clamd.conf index 485c80d420..485c80d420 100644 --- a/packages/clamav/files/clamd.conf +++ b/packages/clamav/clamav-0.88.7/clamd.conf diff --git a/packages/clamav/files/cross-compile-fix.patch b/packages/clamav/clamav-0.88.7/cross-compile-fix.patch index 690d680c66..690d680c66 100644 --- a/packages/clamav/files/cross-compile-fix.patch +++ b/packages/clamav/clamav-0.88.7/cross-compile-fix.patch diff --git a/packages/clamav/files/freshclam.conf b/packages/clamav/clamav-0.88.7/freshclam.conf index 770490b3ab..770490b3ab 100644 --- a/packages/clamav/files/freshclam.conf +++ b/packages/clamav/clamav-0.88.7/freshclam.conf diff --git a/packages/clamav/files/libtool-fix.patch b/packages/clamav/clamav-0.88.7/libtool-fix.patch index 05a4876dd0..05a4876dd0 100644 --- a/packages/clamav/files/libtool-fix.patch +++ b/packages/clamav/clamav-0.88.7/libtool-fix.patch diff --git a/packages/clamav/clamav-0.90.2/.mtn2git_empty b/packages/clamav/clamav-0.90.2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/clamav/clamav-0.90.2/.mtn2git_empty diff --git a/packages/clamav/clamav-0.90.2/clamd.conf b/packages/clamav/clamav-0.90.2/clamd.conf new file mode 100644 index 0000000000..74ebcf5c3f --- /dev/null +++ b/packages/clamav/clamav-0.90.2/clamd.conf @@ -0,0 +1,27 @@ +## Please read the clamd.conf(5) manual before editing this file. +LogFile /var/log/clamav/clamav.log +LogFileMaxSize 0 +LogTime yes +PidFile /var/run/clamav/clamd.pid +DatabaseDirectory /var/lib/clamav +LocalSocket /var/run/clamav/clamd.ctl +FixStaleSocket yes +MaxConnectionQueueLength 15 +MaxThreads 10 +ReadTimeout 180 +SelfCheck 1800 +User clamav +AllowSupplementaryGroups yes +ScanPE yes +ScanELF yes +DetectBrokenExecutables yes +ScanOLE2 yes +ScanMail yes +PhishingSignatures yes +ScanHTML yes +ScanArchive yes +ArchiveMaxRecursion 8 +ArchiveMaxFiles 1000 +ArchiveMaxFileSize 10M +ArchiveMaxCompressionRatio 250 +ArchiveBlockMax yes diff --git a/packages/clamav/clamav-0.90.2/cross-compile-fix.patch b/packages/clamav/clamav-0.90.2/cross-compile-fix.patch new file mode 100644 index 0000000000..2f346b2f0f --- /dev/null +++ b/packages/clamav/clamav-0.90.2/cross-compile-fix.patch @@ -0,0 +1,68 @@ +Add some caching of values which can't be determined when +cross-compiling. This lets us define the values via the site files. + +Index: clamav-0.90.2/configure.in +=================================================================== +--- clamav-0.90.2.orig/configure.in 2007-04-13 09:10:37.000000000 +1000 ++++ clamav-0.90.2/configure.in 2007-05-16 09:33:48.000000000 +1000 +@@ -60,19 +60,21 @@ + + dnl Check for broken snprintf (code by Phil Oleson <oz*nixil.net>) + if test "x$ac_cv_func_snprintf" = "xyes" ; then +- AC_MSG_CHECKING([whether snprintf correctly terminates long strings]) ++ AC_CACHE_CHECK([whether snprintf correctly terminates long strings], ++ [ac_cv_have_broken_snprintf], [ + AC_TRY_RUN( + [ + #include <stdio.h> + int main(void){char b[5];snprintf(b,5,"123456789");return(b[4]!='\0');} + ], +- [AC_MSG_RESULT(yes)], +- [ +- AC_MSG_RESULT(no) +- AC_DEFINE(BROKEN_SNPRINTF,1,[Define if your snprintf is busted]) +- AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor]) +- ] +- ) ++ [ ac_cv_have_broken_snprintf="no" ], ++ [ ac_cv_have_broken_snprintf="yes" ] ++ ) ++ ]) ++ if test "$ac_cv_have_broken_snprintf" = "yes"; then ++ AC_DEFINE(BROKEN_SNPRINTF,1,[Define if your snprintf is busted]) ++ AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor]) ++ fi + fi + + have_pthreads=no +@@ -370,18 +372,28 @@ + AC_DEFINE_UNQUOTED(CONFDIR,"$cfg_dir",[where to look for the config file]) + + dnl check for in_port_t definition ++AC_CACHE_CHECK([for in_port_t], [clamav_av_have_in_port_t], [ + AC_TRY_RUN([ + #include <sys/types.h> + #include <netinet/in.h> + int main(int argc, char **argv) { in_port_t pt; pt = 0; return pt; } +-], AC_DEFINE(HAVE_IN_PORT_T,1,[in_port_t is defined]), AC_MSG_RESULT(in_port_t is not defined)) ++], [ clamav_av_have_in_port_t="yes" ], [ clamav_av_have_in_port_t="no" ]) ++]) ++if test "$clamav_av_have_in_port_t" = "yes"; then ++ AC_DEFINE(HAVE_IN_PORT_T,1,[in_port_t is defined]) ++fi + + dnl check for in_addr_t definition ++AC_CACHE_CHECK([for in_addr_t], [clamav_av_have_in_addr_t], [ + AC_TRY_RUN([ + #include <sys/types.h> + #include <netinet/in.h> + int main(int argc, char **argv) { in_addr_t pt; pt = 0; return pt; } +-], AC_DEFINE(HAVE_IN_ADDR_T,1,[in_addr_t is defined]), AC_MSG_RESULT(in_addr_t is not defined)) ++], [ clamav_av_have_in_addr_t="yes" ], [ clamav_av_have_in_addr_t="no" ]) ++]) ++if test "$clamav_av_have_in_addr_t" = "yes"; then ++ AC_DEFINE(HAVE_IN_ADDR_T,1,[in_addr_t is defined]) ++fi + + case "$target_os" in + linux*) diff --git a/packages/clamav/clamav-0.90.2/freshclam.conf b/packages/clamav/clamav-0.90.2/freshclam.conf new file mode 100644 index 0000000000..fd45b0dd85 --- /dev/null +++ b/packages/clamav/clamav-0.90.2/freshclam.conf @@ -0,0 +1,21 @@ +## Please read the freshclam.conf(5) manual before editing this file. + +# Comment or remove the line below. +Example + +# Uncomment the following line and replace XY with your country +# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list. +# Default: There is no default, which results in an error when running freshclam +#DatabaseMirror db.XY.clamav.net + +DatabaseMirror database.clamav.net + +DatabaseDirectory /var/lib/clamav/ +UpdateLogFile /var/log/clamav/freshclam.log +PidFile /var/run/clamav/freshclam.pid +DatabaseOwner clamav +AllowSupplementaryGroups yes +DNSDatabaseInfo current.cvd.clamav.net +MaxAttempts 5 +Checks 24 +NotifyClamd /etc/clamd.conf diff --git a/packages/clamav/clamav.inc b/packages/clamav/clamav.inc index b18cd06c24..c00da1d6d7 100644 --- a/packages/clamav/clamav.inc +++ b/packages/clamav/clamav.inc @@ -12,19 +12,19 @@ SECTION = "network" LICENSE = "GPL" DEPENDS = "zlib bzip2 gmp" RDEPENDS_${PN} = "${PN}-data" -RDEPENDS_${PN}-daemon = "${PN}-data" +RDEPENDS_${PN}-daemon = "${PN}-data ${PN}-conf" +RDEPENDS_${PN}-freshclam = "${PN}-conf" RRECOMMENDS_${PN} = "${PN}-freshclam" RRECOMMENDS_${PN}-daemon = "${PN}-freshclam" +RPROVIDES_${PN}-freshclam = "${PN}-data" SRC_URI = "${SOURCEFORGE_MIRROR}/clamav/clamav-${PV}.tar.gz \ file://cross-compile-fix.patch;patch=1 \ - file://libtool-fix.patch;patch=1 \ file://clamav-daemon.init \ file://clamav-freshclam.init \ - file://clamav-daemon.default \ file://clamd.conf \ file://freshclam.conf \ - file://volatiles.02_clamav-data \ + file://volatiles.03_clamav-data \ file://volatiles.03_clamav-daemon \ file://volatiles.03_clamav-freshclam" @@ -48,20 +48,13 @@ do_install_append() { # Install our config files and init scripts install -m 0755 ${WORKDIR}/freshclam.conf ${D}${sysconfdir}/freshclam.conf - install -m 0755 ${WORKDIR}/clamav-daemon.default ${D}${sysconfdir}/default/clamav-daemon install -m 0755 ${WORKDIR}/clamav-daemon.init ${D}${sysconfdir}/init.d/clamav-daemon install -m 0755 ${WORKDIR}/clamav-freshclam.init ${D}${sysconfdir}/init.d/clamav-freshclam # We need some /var directories - for i in 02_clamav-data 03_clamav-daemon 03_clamav-freshclam; do + for i in 03_clamav-daemon 03_clamav-freshclam 03_clamav-data; do install -m 0644 ${WORKDIR}/volatiles.$i ${D}${sysconfdir}/default/volatiles/$i done - - # Move the clamav data to a non-volatile location, we'll symlink back - # If freshclam is running it'll break the link to this static data - # once it has succesfully downloaded an update - install -m 0755 -d ${D}${libdir} - mv ${D}${localstatedir}/lib/clamav ${D}${libdir} } do_stage () { oe_libinstall -a -so libclamav ${STAGING_LIBDIR} @@ -69,22 +62,23 @@ do_stage () { install -m 0644 libclamav/clamav.h ${STAGING_INCDIR} } -PACKAGES += "${PN}-freshclam ${PN}-daemon ${PN}-data ${PN}-lib" +PACKAGES += "${PN}-freshclam ${PN}-daemon ${PN}-conf ${PN}-data ${PN}-lib" -FILES_${PN} = "${bindir}/clamscan ${bindir}/sigtool ${bindir}/clamdscan" +FILES_${PN} = "${bindir}/clamscan \ + ${bindir}/sigtool \ + ${bindir}/clamdscan" FILES_${PN}-lib = "${libdir}/libclamav.so.*" +FILES_${PN}-conf = "${sysconfdir}/clamd.conf" FILES_${PN}-freshclam = "${bindir}/freshclam \ ${sysconfdir}/freshclam.conf \ ${sysconfdir}/init.d/clamav-freshclam \ ${sysconfdir}/default/volatiles/03_clamav-freshclam" -FILES_${PN}-daemon = "${sysconfdir}/clamd.conf \ - ${sbindir}/clamd \ +FILES_${PN}-daemon = "${sbindir}/clamd \ ${sysconfdir}/init.d/clamav-daemon \ - ${sysconfdir}/default/clamav-daemon \ ${sysconfdir}/default/volatiles/03_clamav-daemon" -FILES_${PN}-data = "${libdir}/clamav/main.cvd \ - ${libdir}/clamav/daily.cvd \ - ${sysconfdir}/default/volatiles/02_clamav-data" +FILES_${PN}-data = "${localstatedir}/lib/clamav/main.cvd \ + ${localstatedir}/lib/clamav/daily.cvd \ + ${sysconfdir}/default/volatiles/03_clamav-data" FILES_${PN}-dev += "${bindir}/clamav-config" # Add clamav's user and groups @@ -111,9 +105,10 @@ pkg_postinst_${PN}-data () { } # Indicate that the default files are configuration files -CONFFILES_${PN}-daemon = "${sysconfdir}/clamd.conf \ - ${sysconfdir}/default/clamav-daemon" +CONFFILES_${PN}-conf = "${sysconfdir}/clamd.conf" CONFFILES_${PN}-freshclam = "${sysconfdir}/freshclam.conf" +CONFFILES_${PN}-data = "${localstatedir}/lib/clamav/main.cvd \ + ${localstatedir}/lib/clamav/daily.cvd" INITSCRIPT_PACKAGES = "${PN}-daemon ${PN}-freshclam" INITSCRIPT_NAME_${PN}-daemon = "clamav-daemon" diff --git a/packages/clamav/clamav_0.88.6.bb b/packages/clamav/clamav_0.88.6.bb deleted file mode 100644 index e721558efe..0000000000 --- a/packages/clamav/clamav_0.88.6.bb +++ /dev/null @@ -1,3 +0,0 @@ -require clamav.inc - -PR = "r1" diff --git a/packages/clamav/clamav_0.88.7.bb b/packages/clamav/clamav_0.88.7.bb index fec4ae59d8..2728c31590 100644 --- a/packages/clamav/clamav_0.88.7.bb +++ b/packages/clamav/clamav_0.88.7.bb @@ -1,3 +1,5 @@ require clamav.inc -PR = "r0" +PR = "r1" + +SRC_URI_append += " file://libtool-fix.patch;patch=1" diff --git a/packages/clamav/clamav_0.90.2.bb b/packages/clamav/clamav_0.90.2.bb new file mode 100644 index 0000000000..ab60a66c0a --- /dev/null +++ b/packages/clamav/clamav_0.90.2.bb @@ -0,0 +1,16 @@ +require clamav.inc +PR = "r0" + +# 0.9x requires curl for incremental database updates +DEPENDS += "curl" + +# Don't check for clamav uid/gid - they don't exist on the host +# Put virus definitions in /var/lib not /usr/lib +EXTRA_OECONF = "--disable-clamav \ + --with-zlib=${STAGING_DIR}/${HOST_SYS} \ + --with-libcurl \ + --with-dbdir=${localstatedir}/lib/clamav" + +# Package up configuration utility - new for 0.9x +PACKAGES += "${PN}-clamconf" +FILES_${PN}-clamconf = "${bindir}/clamconf" diff --git a/packages/clamav/files/clamav-daemon.default b/packages/clamav/files/clamav-daemon.default deleted file mode 100644 index bc19984183..0000000000 --- a/packages/clamav/files/clamav-daemon.default +++ /dev/null @@ -1 +0,0 @@ -# Options for clamav-daemon (clamd process) diff --git a/packages/clamav/files/clamav-daemon.init b/packages/clamav/files/clamav-daemon.init index bab7a184d7..6fd07146ea 100644 --- a/packages/clamav/files/clamav-daemon.init +++ b/packages/clamav/files/clamav-daemon.init @@ -3,18 +3,20 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/clamd NAME="clamd" DESC="ClamAV daemon" -CLAMAVCONF=/etc/clamd.conf +CLAMAV_CONF=/etc/clamd.conf +PID=/var/run/clamav/clamd.pid set -e -test -r /etc/default/clamav-daemon && . /etc/default/clamav-daemon test -x "$DAEMON" || exit 0 -test ! -r "$CLAMAVCONF" && exit 0 -if [ `grep -q "^Example" $CLAMAVCONF` ]; then +if [ ! -r "$CLAMAV_CONF" ]; then + echo "ClamAV configuration file $CLAMAV_CONF not found. Exiting" + exit 0 +fi +if [ `grep -q "^Example" $CLAMAV_CONF` ]; then echo "$DESC is not configured." exit 0 fi -pidfile="`grep ^PidFile $CLAMAVCONF | awk '{print $2}'`" case "$1" in start) @@ -25,7 +27,7 @@ case "$1" in stop) echo -n "Stopping $DESC: " - start-stop-daemon -K -p $pidfile + start-stop-daemon -K -p $PID ;; restart|force-reload) diff --git a/packages/clamav/files/clamav-freshclam.init b/packages/clamav/files/clamav-freshclam.init index 490a41e31f..21f02008f5 100644 --- a/packages/clamav/files/clamav-freshclam.init +++ b/packages/clamav/files/clamav-freshclam.init @@ -3,70 +3,38 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/freshclam NAME=freshclam DESC="ClamAV virus database updater" -CLAMAV_CONF_FILE=/etc/clamd.conf -FRESHCLAM_CONF_FILE=/etc/freshclam.conf -pidfile=/var/run/clamav/freshclam.pid +FRESHCLAM_CONF=/etc/freshclam.conf +CLAMAV_CONF=/etc/clamd.conf +PID=/var/run/clamav/freshclam.pid set -e -test -r /etc/default/clamav-freshclam && . /etc/default/clamav-freshclam test -x "$DAEMON" || exit 0 -test ! -r "$CLAMAV_CONF_FILE" && exit 0 - -slurp_config() -{ - CLAMAVCONF="$1" - - if [ -e "$CLAMAVCONF" ]; then - for variable in `egrep -v '^[[:space:]]*(#|$)' "$CLAMAVCONF" | awk '{print $1}'`; do - if [ "$variable" = 'DatabaseMirror' ]; then - if [ -z "$DatabaseMirror" ]; then - for i in `grep ^$variable $CLAMAVCONF | awk '{print $2}'`; do - value="$i $value" - done - else - continue - fi - elif [ "$variable" = 'VirusEvent' -o "$variable" = 'OnUpdateExecute' -o "$variable" = 'OnErrorExecute' ]; then - value=`grep ^$variable $CLAMAVCONF | head -n1 | sed -e s/$variable\ //` - else - value=`grep ^$variable $CLAMAVCONF | head -n1 | awk '{print $2}'` - fi - if ! [ "$value" = "$variable" -o "$value" = "" ]; then - export "$variable"="$value" - else - export "$variable"="true" - fi - unset value - done - fi -} - -slurp_config "$FRESHCLAM_CONF_FILE" - -[ -z "$UpdateLogFile" ] && UpdateLogFile=/var/log/clamav/freshclam.log - -if [ -z "$DatabaseDirectory" ]; then - [ -r "$CLAMAV_CONF_FILE" ] && DatabaseDirectory=$(grep 'DataDirectory' "$CLAMAV_CONF_FILE" | awk '{print $2}') - [ -z "$DatabaseDirectory" ] && DatabaseDirectory=/var/lib/clamav/ +if [ ! -r "$CLAMAV_CONF" ]; then + echo "ClamAV configuration file $CLAMAV_CONF not found. Exiting" + exit 0 +fi +if [ ! -r "$FRESHCLAM_CONF" ]; then + echo "Freshclam configuration file $FRESHCLAM_CONF not found. Exiting" + exit 0 fi case "$1" in no-daemon) echo "It takes freshclam ~3min to timeout and try the next mirror in the list" - freshclam -l "$UpdateLogFile" --datadir "$DatabaseDirectory" + freshclam ;; start) echo -n "Starting $DESC: " - start-stop-daemon -S -x $DAEMON -- -d --quiet -p $pidfile + start-stop-daemon -S -x $DAEMON -- -d --quiet -p $PID echo "$NAME." ;; stop) echo -n "Stopping $DESC: " - start-stop-daemon -K -p $pidfile + start-stop-daemon -K -p $PID ;; restart|force-reload) diff --git a/packages/clamav/files/volatiles.02_clamav-data b/packages/clamav/files/volatiles.02_clamav-data deleted file mode 100644 index 99dc98b323..0000000000 --- a/packages/clamav/files/volatiles.02_clamav-data +++ /dev/null @@ -1,4 +0,0 @@ -# <type> <owner> <group> <mode> <path> <linksource> -d clamav clamav 0755 /var/lib/clamav none -l clamav clamav 0644 /var/lib/clamav/main.cvd /usr/lib/clamav/main.cvd -l clamav clamav 0644 /var/lib/clamav/daily.cvd /usr/lib/clamav/daily.cvd diff --git a/packages/clamav/files/volatiles.03_clamav-data b/packages/clamav/files/volatiles.03_clamav-data new file mode 100644 index 0000000000..8fdb0a742a --- /dev/null +++ b/packages/clamav/files/volatiles.03_clamav-data @@ -0,0 +1,4 @@ +# <type> <owner> <group> <mode> <path> <linksource> +d clamav clamav 0755 /var/lib/clamav none +f clamav clamav 0644 /var/lib/clamav/main.cvd none +f clamav clamav 0644 /var/lib/clamav/daily.cvd none |