Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>lilik-openwrt-22.03
@ -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)) |
@ -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" | |||