Browse Source

clamav: update to 0.103.1

Convert to using CMake in order to speed up compilation and to fix
compilation under glibc.

Add extra dependencies since they're now needed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
lilik-openwrt-22.03
Rosen Penev 4 years ago
parent
commit
7cd687cb7e
3 changed files with 94 additions and 33 deletions
  1. +25
    -33
      net/clamav/Makefile
  2. +59
    -0
      net/clamav/patches/010-musl12x.patch
  3. +10
    -0
      net/clamav/patches/020-cmake.patch

+ 25
- 33
net/clamav/Makefile View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=clamav
PKG_VERSION:=0.103.0
PKG_VERSION:=0.103.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.clamav.net/downloads/production/
PKG_HASH:=32a9745277bfdda80e77ac9ca2f5990897418e9416880f3c31553ca673e80546
PKG_HASH:=7308c47b89b268af3b9f36140528927a49ff3e633a9c9c0aac2712d81056e257
PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr> \
Lucian Cristian <lucian.cristian@gmail.com>
@ -21,16 +21,16 @@ PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING*
PKG_CPE_ID:=cpe:/a:clamav:clamav
PKG_BUILD_DEPENDS:=ncurses
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
include $(INCLUDE_DIR)/nls.mk
define Package/clamav/Default
SECTION:=net
DEPENDS:=$(CXX_DEPENDS) +libpthread +zlib +libcurl +libjson-c +libmilter-sendmail +libopenssl +libltdl +libpcre2 +USE_MUSL:musl-fts
DEPENDS:=+libstdcpp +libpthread +zlib +libbz2 +libxml2 +libcurl +libjson-c +libmilter-sendmail +libopenssl +libltdl +libpcre2
CATEGORY:=Network
SUBMENU:=Web Servers/Proxies
TITLE:=ClamAV
@ -56,35 +56,27 @@ define Package/freshclam/description
Database updater for ClamAV
endef
CONFIGURE_ARGS += \
--sysconfdir=/etc/clamav/ \
--enable-milter \
--disable-bzip2 \
--disable-check \
--disable-clamdtop \
--disable-rpath \
--disable-xml \
--disable-zlib-vcheck \
--with-user=nobody \
--with-group=nogroup \
--with-libcurl="$(STAGING_DIR)/usr/" \
--with-libjson="$(STAGING_DIR)/usr/" \
--with-openssl="$(STAGING_DIR)/usr/" \
--with-pcre="$(STAGING_DIR)/usr/" \
--with-zlib="$(STAGING_DIR)/usr/" \
--without-iconv \
--without-libncurses-prefix
CONFIGURE_VARS += \
ax_cv_uname_syscall=yes \
ac_cv_c_mmap_private=yes \
have_cv_gai=yes \
ac_cv_sys_file_offset_bits=no
CONFIGURE_VARS += $(if $(CONFIG_IPV6),have_cv_ipv6=yes)
CMAKE_OPTIONS += \
-DENABLE_MILTER=ON \
-DHAVE_ATTRIB_PACKED=ON \
-DHAVE_ATTRIB_ALIGNED=ON \
-Dtest_run_result=ON \
-Dtest_run_result__TRYRUN_OUTPUT=ON \
-DCLAMAV_USER=nobody \
-DCLAMAV_GROUP=nogroup \
-DMMAP_FOR_CROSSCOMPILING=ON \
-DENABLE_CLAMONACC=ON \
-DENABLE_DOCS=OFF \
-DENABLE_DOXYGEN=OFF \
-DENABLE_EXAMPLES=OFF \
-DENABLE_UNRAR=OFF \
-DENABLE_SYSTEMD=OFF \
-DIconv_INCLUDE_DIR=$(ICONV_PREFIX)/include \
-DIconv_LIBRARY=$(ICONV_PREFIX)/lib/libiconv.$(if $(ICONV_FULL),so,a) \
-DHAVE_SYSTEM_LFS_FTS=O$(if $(CONFIG_USE_GLIBC),N,FF)
TARGET_CXXFLAGS += -ffunction-sections -fdata-sections -fno-rtti -flto
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed $(if $(CONFIG_USE_MUSL),-lfts)
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
define Package/clamav/conffiles
/etc/config/clamav


+ 59
- 0
net/clamav/patches/010-musl12x.patch View File

@ -0,0 +1,59 @@
--- a/clamonacc/misc/fts.c
+++ b/clamonacc/misc/fts.c
@@ -744,11 +744,11 @@ static FTSENTRY *
if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
continue;
- if ((p = fts_alloc(sp, dp->d_name, _D_EXACT_NAMLEN(dp))) == NULL)
+ if ((p = fts_alloc(sp, dp->d_name, strlen(dp->d_name))) == NULL)
goto mem1;
- if (_D_EXACT_NAMLEN(dp) >= maxlen) { /* include space for NUL */
+ if (strlen(dp->d_name) >= maxlen) { /* include space for NUL */
oldaddr = sp->fts_path;
- if (fts_palloc(sp, _D_EXACT_NAMLEN(dp) + len + 1)) {
+ if (fts_palloc(sp, strlen(dp->d_name) + len + 1)) {
/*
* No more memory for path or structures. Save
* errno, free up the current structure and the
@@ -773,7 +773,7 @@ static FTSENTRY *
maxlen = sp->fts_pathlen - len;
}
- if (len + _D_EXACT_NAMLEN(dp) >= USHRT_MAX) {
+ if (len + strlen(dp->d_name) >= USHRT_MAX) {
/*
* In an FTSENT, fts_pathlen is a u_short so it is
* possible to wraparound here. If we do, free up
@@ -790,7 +790,7 @@ static FTSENTRY *
}
p->fts_level = level;
p->fts_parent = sp->fts_cur;
- p->fts_pathlen = len + _D_EXACT_NAMLEN(dp);
+ p->fts_pathlen = len + strlen(dp->d_name);
#if defined FTS_WHITEOUT && 0
if (dp->d_type == DT_WHT)
--- a/clamonacc/misc/priv_fts.h
+++ b/clamonacc/misc/priv_fts.h
@@ -207,14 +207,18 @@ typedef struct _ftsent64 {
} FTSENT64;
#endif
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
FTSENT *_priv_fts_children(FTS *, int);
int _priv_fts_close(FTS *);
FTS *_priv_fts_open(char *const *, int,
int (*)(const FTSENT **, const FTSENT **));
FTSENT *_priv_fts_read(FTS *);
-int _priv_fts_set(FTS *, FTSENT *, int) __THROW;
-__END_DECLS
+int _priv_fts_set(FTS *, FTSENT *, int) __attribute__ ((__nothrow__));
+#ifdef __cplusplus
+}
+#endif
#endif /* fts.h */
#endif

+ 10
- 0
net/clamav/patches/020-cmake.patch View File

@ -0,0 +1,10 @@
--- a/freshclam/CMakeLists.txt
+++ b/freshclam/CMakeLists.txt
@@ -38,7 +38,6 @@ endif()
if(WIN32)
INSTALL(CODE "FILE(MAKE_DIRECTORY \${ENV}\${CMAKE_INSTALL_PREFIX}/database)")
else()
- INSTALL(CODE "FILE(MAKE_DIRECTORY \${ENV}\${CMAKE_INSTALL_PREFIX}/share/clamav)")
endif()
# now we rename resman-bin executable to resman using target properties

Loading…
Cancel
Save