diff options
author | Jamie Lenehan <lenehan@twibble.org> | 2007-05-16 01:32:57 +0000 |
---|---|---|
committer | Jamie Lenehan <lenehan@twibble.org> | 2007-05-16 01:32:57 +0000 |
commit | 196fe037fda65eaa9c1c3e07d0651f8cd6c363e2 (patch) | |
tree | 9fffd92778cd6172269e7248241fe70a2ff90b93 | |
parent | afb0b01f1860f482b916fa3570912dc2091c928f (diff) |
clamav: Add 0.90.2 version, remove older versions plus a number of other
changes:
* Remove 0.88.6
* Added 0.90.2
* Add a new clamav-conf package to hold clamd.conf. This is needed by
both clamd and freshclam and previously you needed to install clamd
even if you didn't want it just to get freshclam to work.
* Assume that /var/lib is non-volatile. Move the virus database there
by default.
* Update configuration files for the new 0.9x syntax.
* Simplify the init scripts.
* Indicate the freshclam also provides clamav data, so if you install
freshclam you don't need data.
* NOTE: There are incompatible changes to libclamav in this release,
anything that links directly against the library will need to be
updated.
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 |