clamav: add package
Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>
This commit is contained in:
parent
8c13dbd2e1
commit
f9507c02e0
|
@ -0,0 +1,120 @@
|
|||
#
|
||||
# Copyright (C) 2015 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=clamav
|
||||
PKG_VERSION:=0.98.6
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://downloads.sourceforge.net/project/clamav/clamav/$(PKG_VERSION)/
|
||||
PKG_MD5SUM:=7f4f7e82a09e42c4ebf153d6d452d9d8
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_INSTALL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/uclibc++.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/clamav/Default
|
||||
SECTION:=net
|
||||
DEPENDS:=+libpthread +uclibcxx +zlib +libcurl +libopenssl
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=ClamAV
|
||||
URL:=http://www.clamav.net/
|
||||
endef
|
||||
|
||||
define Package/clamav
|
||||
$(call Package/clamav/Default)
|
||||
endef
|
||||
|
||||
define Package/freshclam
|
||||
$(call Package/clamav/Default)
|
||||
DEPENDS+= +clamav
|
||||
TITLE+=database updater
|
||||
endef
|
||||
|
||||
define Package/clamav/description
|
||||
ClamAV is an open source antivirus engine for detecting trojans,
|
||||
viruses, malware & other malicious threats.
|
||||
endef
|
||||
|
||||
define Package/freshclam/description
|
||||
Database updater for ClamAV
|
||||
endef
|
||||
|
||||
define Package/clamav/conffiles
|
||||
endef
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
INCLUDES="" \
|
||||
CXXFLAGS="$$$$CXXFLAGS -fno-rtti" \
|
||||
LIBS="-lpthread" \
|
||||
|
||||
define Build/Configure
|
||||
$(call Build/Configure/Default, \
|
||||
--sysconfdir=/etc/clamav/ \
|
||||
--prefix=/usr/ \
|
||||
--exec-prefix=/usr/ \
|
||||
--disable-xml \
|
||||
--disable-bzip2 \
|
||||
--enable-ltdl-install \
|
||||
--with-user nobody \
|
||||
--with-group nogroup \
|
||||
)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||
DESTDIR="$(PKG_INSTALL_DIR)" \
|
||||
all install
|
||||
endef
|
||||
|
||||
define Package/clamav/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/clamd $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/clamav-config $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/clambc $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/clamconf $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/clamdscan $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/clamscan $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sigtool $(1)/usr/sbin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/include
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/clamav.h $(1)/usr/include/
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib*/* $(1)/usr/lib/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_CONF) ./files/clamav.config $(1)/etc/config/clamav
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d/
|
||||
$(INSTALL_BIN) ./files/clamav.init $(1)/etc/init.d/clamav
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/share/clamav
|
||||
$(CP) ./files/bytecode.cvd $(1)/usr/share/clamav/
|
||||
endef
|
||||
|
||||
define Package/freshclam/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/freshclam $(1)/usr/sbin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_CONF) ./files/freshclam.config $(1)/etc/config/freshclam
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d/
|
||||
$(INSTALL_BIN) ./files/freshclam.init $(1)/etc/init.d/freshclam
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,clamav))
|
||||
$(eval $(call BuildPackage,freshclam))
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
config clamav 'clamav'
|
||||
option clamd_config_file '/etc/clamav/clamd.conf'
|
||||
option LogFile '/tmp/clamd.log'
|
||||
option LogFileMaxSize '1M'
|
||||
option LogTime 'no'
|
||||
option LogVerbose 'no'
|
||||
option ExtendedDetectionInfo 'no'
|
||||
option OfficialDatabaseOnly 'no'
|
||||
option StreamMinPort '1024'
|
||||
option StreamMaxPort '2048'
|
||||
option MaxThreads '10'
|
||||
option ReadTimeout '30'
|
||||
option CommandReadTimeout '5'
|
||||
option MaxDirectoryRecursion '15'
|
||||
option FollowDirectorySymlinks 'no'
|
||||
option FollowFileSymlinks 'no'
|
||||
option SelfCheck '600'
|
||||
option DetectPUA 'yes'
|
||||
option ScanPE 'yes'
|
||||
option DisableCertCheck 'no'
|
||||
option ScanELF 'yes'
|
||||
option DetectBrokenExecutables 'no'
|
||||
option ScanOLE2 'yes'
|
||||
option ScanPDF 'yes'
|
||||
option ScanSWF 'yes'
|
||||
option ScanMail 'yes'
|
||||
option ScanPartialMessages 'no'
|
||||
option ScanArchive 'yes'
|
||||
option ArchiveBlockEncrypted 'yes'
|
||||
option MaxFileSize '10M'
|
||||
option TemporaryDirectory '/tmp'
|
||||
option LocalSocket '/var/run/clamav/clamd.sock'
|
||||
option User 'nobody'
|
||||
option ExitOnOOM 'yes'
|
|
@ -0,0 +1,116 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2015 OpenWrt.org
|
||||
|
||||
START=90
|
||||
STOP=10
|
||||
|
||||
USE_PROCD=1
|
||||
PROG=/usr/sbin/clamd
|
||||
CLAMD_CONFIGFILE="/tmp/clamav/clamd.conf"
|
||||
|
||||
validate_clamav_section() {
|
||||
uci_validate_section clamav clamav "${1}" \
|
||||
'clamd_config_file:string' \
|
||||
'LogFile:string' \
|
||||
'LogFileMaxSize:string' \
|
||||
'LogVerbose:string' \
|
||||
'ExtendedDetectionInfo:string' \
|
||||
'LogTime:string' \
|
||||
'OfficialDatabaseOnly:string' \
|
||||
'StreamMinPort:uinteger' \
|
||||
'StreamMaxPort:uinteger' \
|
||||
'MaxThreads:uinteger' \
|
||||
'ReadTimeout:uinteger' \
|
||||
'CommandReadTimeout:uinteger' \
|
||||
'MaxDirectoryRecursion:uinteger' \
|
||||
'FollowDirectorySymlinks:string' \
|
||||
'FollowFileSymlinks:string' \
|
||||
'SelfCheck:uinteger' \
|
||||
'DetectPUA:string' \
|
||||
'ScanPE:string' \
|
||||
'DisableCertCheck:string' \
|
||||
'ScanELF:string' \
|
||||
'DetectBrokenExecutables:string' \
|
||||
'ScanOLE2:string' \
|
||||
'ScanPDF:string' \
|
||||
'ScanSWF:string' \
|
||||
'ScanMail:string' \
|
||||
'ScanPartialMessages:string' \
|
||||
'ScanArchive:string' \
|
||||
'TemporaryDirectory:string' \
|
||||
'ArchiveBlockEncrypted:string' \
|
||||
'MaxFileSize:string' \
|
||||
'LocalSocket:string' \
|
||||
'User:string' \
|
||||
'ExitOnOOM:string'
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local clamd_config_file LogFile LogTime StreamMinPort \
|
||||
StreamMaxPort MaxThreads ReadTimeout CommandReadTimeout MaxDirectoryRecursion \
|
||||
FollowFileSymlinks FollowDirectorySymlinks SelfCheck DetectPUA ScanPE DisableCertCheck \
|
||||
ScanELF DetectBrokenExecutables ScanOLE2 ScanPDF ScanSWF ScanMail ScanPartialMessages \
|
||||
ScanArchive TemporaryDirectory ArchiveBlockEncrypted MaxFileSize LocalSocket User
|
||||
|
||||
validate_clamav_section clamav || {
|
||||
echo "validation failed"
|
||||
return 1
|
||||
}
|
||||
|
||||
mkdir -p /usr/share/clamav
|
||||
mkdir -p /etc/clamav/
|
||||
mkdir -p /var/run/clamav/
|
||||
chmod a+rw /var/run/clamav
|
||||
|
||||
mkdir -p $(dirname $CLAMD_CONFIGFILE)
|
||||
ln -sf $clamd_config_file $CLAMD_CONFIGFILE
|
||||
|
||||
echo "LogFile " $LogFile > $CLAMD_CONFIGFILE
|
||||
echo "LogFileMaxSize " $LogFileMaxSize >> $CLAMD_CONFIGFILE
|
||||
echo "LogVerbose " $LogVerbose >> $CLAMD_CONFIGFILE
|
||||
echo "ExtendedDetectionInfo " $ExtendedDetectionInfo >> $CLAMD_CONFIGFILE
|
||||
echo "LogTime " $LogTime >> $CLAMD_CONFIGFILE
|
||||
echo "OfficialDatabaseOnly " $OfficialDatabaseOnly >> $CLAMD_CONFIGFILE
|
||||
echo "StreamMinPort " $StreamMinPort >> $CLAMD_CONFIGFILE
|
||||
echo "StreamMaxPort " $StreamMaxPort >> $CLAMD_CONFIGFILE
|
||||
echo "MaxThreads " $MaxThreads >> $CLAMD_CONFIGFILE
|
||||
echo "ReadTimeout " $ReadTimeout >> $CLAMD_CONFIGFILE
|
||||
echo "CommandReadTimeout " $CommandReadTimeout >> $CLAMD_CONFIGFILE
|
||||
echo "MaxDirectoryRecursion " $MaxDirectoryRecursion >> $CLAMD_CONFIGFILE
|
||||
echo "FollowDirectorySymlinks " $FollowDirectorySymlinks >> $CLAMD_CONFIGFILE
|
||||
echo "FollowFileSymlinks " $FollowFileSymlinks >> $CLAMD_CONFIGFILE
|
||||
echo "SelfCheck " $SelfCheck >> $CLAMD_CONFIGFILE
|
||||
echo "DetectPUA " $DetectPUA >> $CLAMD_CONFIGFILE
|
||||
echo "ScanPE " $ScanPE >> $CLAMD_CONFIGFILE
|
||||
echo "DisableCertCheck " $DisableCertCheck >> $CLAMD_CONFIGFILE
|
||||
echo "ScanELF " $ScanELF >> $CLAMD_CONFIGFILE
|
||||
echo "DetectBrokenExecutables " $DetectBrokenExecutables >> $CLAMD_CONFIGFILE
|
||||
echo "ScanOLE2 " $ScanOLE2 >> $CLAMD_CONFIGFILE
|
||||
echo "ScanPDF " $ScanPDF >> $CLAMD_CONFIGFILE
|
||||
echo "ScanSWF " $ScanSWF >> $CLAMD_CONFIGFILE
|
||||
echo "ScanMail " $ScanMail >> $CLAMD_CONFIGFILE
|
||||
echo "ScanPartialMessages " $ScanPartialMessages >> $CLAMD_CONFIGFILE
|
||||
echo "ScanArchive " $ScanArchive >> $CLAMD_CONFIGFILE
|
||||
echo "TemporaryDirectory " $TemporaryDirectory >> $CLAMD_CONFIGFILE
|
||||
echo "ArchiveBlockEncrypted " $ArchiveBlockEncrypted >> $CLAMD_CONFIGFILE
|
||||
echo "MaxFileSize " $MaxFileSize >> $CLAMD_CONFIGFILE
|
||||
echo "LocalSocket " $LocalSocket >> $CLAMD_CONFIGFILE
|
||||
echo "User " $User >> $CLAMD_CONFIGFILE
|
||||
echo "ExitOnOOM " $ExitOnOOM >> $CLAMD_CONFIGFILE
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param command $PROG -c $CLAMD_CONFIGFILE
|
||||
procd_set_param file $CLAMD_CONFIGFILE
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
stop_service()
|
||||
{
|
||||
service_stop ${PROG}
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
procd_add_reload_trigger "clamav"
|
||||
procd_add_validation validate_clamav_section
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
config freshclam 'freshclam'
|
||||
option freshclam_config_file '/etc/clamav/freshclam.conf'
|
||||
option UpdateLogFile '/tmp/freshclam.log'
|
||||
option DatabaseMirror 'database.clamav.net'
|
||||
option NotifyClamd '/etc/clamav/clamd.conf'
|
||||
option DatabaseOwner 'root'
|
||||
option CompressLocalDatabase 'yes'
|
|
@ -0,0 +1,63 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2015 OpenWrt.org
|
||||
|
||||
START=90
|
||||
STOP=10
|
||||
|
||||
USE_PROCD=1
|
||||
PROG=/usr/sbin/freshclam
|
||||
FRESHCLAM_CONFIGFILE="/tmp/clamav/freshclam.conf"
|
||||
|
||||
validate_freshclam_section() {
|
||||
uci_validate_section freshclam freshclam "${1}" \
|
||||
'freshclam_config_file:string' \
|
||||
'UpdateLogFile:string' \
|
||||
'DatabaseMirror:string' \
|
||||
'NotifyClamd:string' \
|
||||
'DatabaseOwner:string' \
|
||||
'CompressLocalDatabase:string:'
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local freshclam_config_file UpdateLogFile DatabaseOwner NotifyClamd DatabaseMirror
|
||||
|
||||
validate_freshclam_section freshclam || {
|
||||
echo "validation failed"
|
||||
return 1
|
||||
}
|
||||
|
||||
[ -f /tmp/freshclam.pid ] && echo "already running" && return 0
|
||||
|
||||
mkdir -p /usr/share/clamav
|
||||
mkdir -p /etc/clamav
|
||||
touch /tmp/freshclam.log
|
||||
touch /tmp/freshclam.pid
|
||||
|
||||
mkdir -p $(dirname $FRESHCLAM_CONFIGFILE)
|
||||
ln -sf $freshclam_config_file $FRESHCLAM_CONFIGFILE
|
||||
|
||||
echo "UpdateLogFile " $UpdateLogFile > $FRESHCLAM_CONFIGFILE
|
||||
echo "DatabaseMirror " $DatabaseMirror >> $FRESHCLAM_CONFIGFILE
|
||||
echo "NotifyClamd " $NotifyClamd >> $FRESHCLAM_CONFIGFILE
|
||||
echo "DatabaseOwner " $DatabaseOwner >> $FRESHCLAM_CONFIGFILE
|
||||
echo "CompressLocalDatabase " $CompressLocalDatabase >> $FRESHCLAM_CONFIGFILE
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param command $PROG -d --config-file=$FRESHCLAM_CONFIGFILE -p /tmp/freshclam.pid --no-warnings
|
||||
procd_set_param file $FRESHCLAM_CONFIGFILE
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
stop_service()
|
||||
{
|
||||
[ ! -f /tmp/freshclam.pid ] && echo "not running" && return 0
|
||||
PID=`cat /tmp/freshclam.pid`
|
||||
kill $PID
|
||||
rm -f /tmp/freshclam.pid
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
procd_add_reload_trigger "freshclam"
|
||||
procd_add_validation validate_freshclam_section
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
--- a/clamdscan/proto.c
|
||||
+++ b/clamdscan/proto.c
|
||||
@@ -55,6 +55,7 @@
|
||||
#include "shared/misc.h"
|
||||
#include "shared/clamdcom.h"
|
||||
|
||||
+#include <sys/un.h>
|
||||
#include "proto.h"
|
||||
#include "client.h"
|
||||
|
Loading…
Reference in New Issue