Update to 1.0.0

This commit is contained in:
Orion Poplawski 2022-05-14 08:04:43 -06:00
parent 9c3c5e4c10
commit 1f873aa7f5
8 changed files with 209 additions and 172 deletions

View File

@ -1,6 +1,6 @@
diff -up clamav-0.103.0/clamconf/clamconf.c.default_confs clamav-0.103.0/clamconf/clamconf.c diff -up clamav-0.104.3/clamconf/clamconf.c.default_confs clamav-0.104.3/clamconf/clamconf.c
--- clamav-0.103.0/clamconf/clamconf.c.default_confs 2020-09-12 18:27:09.000000000 -0600 --- clamav-0.104.3/clamconf/clamconf.c.default_confs 2022-05-02 00:24:50.000000000 -0600
+++ clamav-0.103.0/clamconf/clamconf.c 2020-09-17 22:00:20.792879792 -0600 +++ clamav-0.104.3/clamconf/clamconf.c 2022-05-12 22:04:42.883348923 -0600
@@ -63,9 +63,9 @@ static struct _cfgfile { @@ -63,9 +63,9 @@ static struct _cfgfile {
const char *name; const char *name;
int tool; int tool;
@ -13,66 +13,66 @@ diff -up clamav-0.103.0/clamconf/clamconf.c.default_confs clamav-0.103.0/clamcon
{NULL, 0}}; {NULL, 0}};
static void printopts(struct optstruct *opts, int nondef) static void printopts(struct optstruct *opts, int nondef)
diff -up clamav-0.103.0/docs/man/clamav-milter.8.in.default_confs clamav-0.103.0/docs/man/clamav-milter.8.in diff -up clamav-0.104.3/docs/man/clamav-milter.8.in.default_confs clamav-0.104.3/docs/man/clamav-milter.8.in
--- clamav-0.103.0/docs/man/clamav-milter.8.in.default_confs 2020-09-12 18:27:09.000000000 -0600 --- clamav-0.104.3/docs/man/clamav-milter.8.in.default_confs 2022-05-12 22:04:42.885348940 -0600
+++ clamav-0.103.0/docs/man/clamav-milter.8.in 2020-09-17 22:00:20.793879800 -0600 +++ clamav-0.104.3/docs/man/clamav-milter.8.in 2022-05-12 22:05:25.031719791 -0600
@@ -27,7 +27,7 @@ Print the version number and exit. @@ -27,7 +27,7 @@ Print the version number and exit.
Read configuration from FILE. Read configuration from FILE.
.SH "FILES" .SH "FILES"
.LP .LP
-@CFGDIR@/clamav-milter.conf -@CONFDIR@/clamav-milter.conf
+@CFGDIR@/mail/clamav-milter.conf +@CONFDIR@/mail/clamav-milter.conf
.SH "AUTHOR" .SH "AUTHOR"
.LP .LP
aCaB <acab@clamav.net> aCaB <acab@clamav.net>
diff -up clamav-0.103.0/docs/man/clamav-milter.conf.5.in.default_confs clamav-0.103.0/docs/man/clamav-milter.conf.5.in diff -up clamav-0.104.3/docs/man/clamav-milter.conf.5.in.default_confs clamav-0.104.3/docs/man/clamav-milter.conf.5.in
--- clamav-0.103.0/docs/man/clamav-milter.conf.5.in.default_confs 2020-09-12 18:27:09.000000000 -0600 --- clamav-0.104.3/docs/man/clamav-milter.conf.5.in.default_confs 2022-05-12 22:04:42.887348958 -0600
+++ clamav-0.103.0/docs/man/clamav-milter.conf.5.in 2020-09-17 22:00:20.794879808 -0600 +++ clamav-0.104.3/docs/man/clamav-milter.conf.5.in 2022-05-12 22:05:48.834929418 -0600
@@ -239,7 +239,7 @@ Default: no @@ -239,7 +239,7 @@ Default: no
All options expressing a size are limited to max 4GB. Values in excess will be reset to the maximum. All options expressing a size are limited to max 4GB. Values in excess will be reset to the maximum.
.SH "FILES" .SH "FILES"
.LP .LP
-@CFGDIR@/clamav-milter.conf -@CONFDIR@/clamav-milter.conf
+@CFGDIR@/mail/clamav-milter.conf +@CONFDIR@/mail/clamav-milter.conf
.SH "AUTHOR" .SH "AUTHOR"
.LP .LP
aCaB <acab@clamav.net> aCaB <acab@clamav.net>
diff -up clamav-0.103.0/docs/man/clamd.8.in.default_confs clamav-0.103.0/docs/man/clamd.8.in diff -up clamav-0.104.3/docs/man/clamd.8.in.default_confs clamav-0.104.3/docs/man/clamd.8.in
--- clamav-0.103.0/docs/man/clamd.8.in.default_confs 2020-09-12 18:27:09.000000000 -0600 --- clamav-0.104.3/docs/man/clamd.8.in.default_confs 2022-05-12 22:04:42.888348967 -0600
+++ clamav-0.103.0/docs/man/clamd.8.in 2020-09-17 22:00:20.794879808 -0600 +++ clamav-0.104.3/docs/man/clamd.8.in 2022-05-12 22:07:01.657570942 -0600
@@ -7,7 +7,7 @@ clamd \- an anti\-virus daemon @@ -7,7 +7,7 @@ clamd \- an anti\-virus daemon
clamd [options] clamd [options]
.SH "DESCRIPTION" .SH "DESCRIPTION"
.LP .LP
-The daemon listens for incoming connections on Unix and/or TCP socket and scans files or directories on demand. It reads the configuration from @CFGDIR@/clamd.conf -The daemon listens for incoming connections on Unix and/or TCP socket and scans files or directories on demand. It reads the configuration from @CONFDIR@/clamd.conf
+The daemon listens for incoming connections on Unix and/or TCP socket and scans files or directories on demand. It reads the configuration from @CFGDIR@/clamd.d/scan.conf +The daemon listens for incoming connections on Unix and/or TCP socket and scans files or directories on demand. It reads the configuration from @CONFDIR@/clamd.d/scan.conf
.SH "COMMANDS" .SH "COMMANDS"
.LP .LP
It's recommended to prefix clamd commands with the letter \fBz\fR (eg. zSCAN) to indicate that the command will be delimited by a NULL character and that clamd should continue reading command data until a NULL character is read. The null delimiter assures that the complete command and its entire argument will be processed as a single command. Alternatively commands may be prefixed with the letter \fBn\fR (e.g. nSCAN) to use a newline character as the delimiter. Clamd replies will honour the requested terminator in turn. It's recommended to prefix clamd commands with the letter \fBz\fR (eg. zSCAN) to indicate that the command will be delimited by a NULL character and that clamd should continue reading command data until a NULL character is read. The null delimiter assures that the complete command and its entire argument will be processed as a single command. Alternatively commands may be prefixed with the letter \fBn\fR (e.g. nSCAN) to use a newline character as the delimiter. Clamd replies will honour the requested terminator in turn.
@@ -125,7 +125,7 @@ Reload the signature databases. @@ -133,7 +133,7 @@ Reload the signature databases.
Perform a clean exit. Perform a clean exit.
.SH "FILES" .SH "FILES"
.LP .LP
-@CFGDIR@/clamd.conf -@CONFDIR@/clamd.conf
+@CFGDIR@/clamd.d/scan.conf +@CONFDIR@/clamd.d/scan.conf
.SH "CREDITS" .SH "CREDITS"
Please check the full documentation for credits. Please check the full documentation for credits.
.SH "AUTHOR" .SH "AUTHOR"
diff -up clamav-0.103.0/docs/man/clamd.conf.5.in.default_confs clamav-0.103.0/docs/man/clamd.conf.5.in diff -up clamav-0.104.3/docs/man/clamd.conf.5.in.default_confs clamav-0.104.3/docs/man/clamd.conf.5.in
--- clamav-0.103.0/docs/man/clamd.conf.5.in.default_confs 2020-09-17 22:00:20.795879816 -0600 --- clamav-0.104.3/docs/man/clamd.conf.5.in.default_confs 2022-05-12 22:04:42.889348976 -0600
+++ clamav-0.103.0/docs/man/clamd.conf.5.in 2020-09-17 22:01:21.414353121 -0600 +++ clamav-0.104.3/docs/man/clamd.conf.5.in 2022-05-12 22:06:21.800219822 -0600
@@ -759,7 +759,7 @@ Default: no @@ -765,7 +765,7 @@ Default: no
All options expressing a size are limited to max 4GB. Values in excess will be reset to the maximum. All options expressing a size are limited to max 4GB. Values in excess will be reset to the maximum.
.SH "FILES" .SH "FILES"
.LP .LP
-@CFGDIR@/clamd.conf -@CONFDIR@/clamd.conf
+@CFGDIR@/clamd.d/scan.conf +@CONFDIR@/clamd.d/scan.conf
.SH "AUTHORS" .SH "AUTHORS"
.LP .LP
Tomasz Kojm <tkojm@clamav.net>, Kevin Lin <klin@sourcefire.com> Tomasz Kojm <tkojm@clamav.net>, Kevin Lin <klin@sourcefire.com>
diff -up clamav-0.103.0/platform.h.in.default_confs clamav-0.103.0/platform.h.in diff -up clamav-0.104.3/platform.h.in.default_confs clamav-0.104.3/platform.h.in
--- clamav-0.103.0/platform.h.in.default_confs 2020-09-17 22:00:20.796879824 -0600 --- clamav-0.104.3/platform.h.in.default_confs 2022-05-02 00:24:50.000000000 -0600
+++ clamav-0.103.0/platform.h.in 2020-09-17 22:01:56.842629739 -0600 +++ clamav-0.104.3/platform.h.in 2022-05-12 22:04:42.891348993 -0600
@@ -112,9 +112,9 @@ typedef unsigned int in_addr_t; @@ -112,9 +112,9 @@ typedef unsigned int in_addr_t;
#endif #endif

View File

@ -1,17 +1,12 @@
--- ./freshclam/clamav-freshclam.service.in.orig 2021-06-14 10:36:39.029730737 +0100 diff -up clamav-0.104.3/freshclam/clamav-freshclam.service.in.freshclam-service clamav-0.104.3/freshclam/clamav-freshclam.service.in
+++ ./freshclam/clamav-freshclam.service.in 2021-06-14 10:37:53.621423748 +0100 --- clamav-0.104.3/freshclam/clamav-freshclam.service.in.freshclam-service 2022-05-12 22:07:25.472780737 -0600
@@ -2,13 +2,12 @@ +++ clamav-0.104.3/freshclam/clamav-freshclam.service.in 2022-05-12 22:08:06.280140224 -0600
@@ -2,7 +2,7 @@
Description=ClamAV virus database updater Description=ClamAV virus database updater
Documentation=man:freshclam(1) man:freshclam.conf(5) https://docs.clamav.net/ Documentation=man:freshclam(1) man:freshclam.conf(5) https://docs.clamav.net/
# If user wants it run from cron, don't start the daemon. # If user wants it run from cron, don't start the daemon.
-ConditionPathExists=!/etc/cron.d/clamav-freshclam -ConditionPathExists=!/etc/cron.d/clamav-freshclam
+# ConditionPathExists=!/etc/cron.d/clamav-update +# ConditionPathExists=!/etc/cron.d/clamav-freshclam
Wants=network-online.target Wants=network-online.target
After=network-online.target After=network-online.target
[Service]
ExecStart=@prefix@/bin/freshclam -d --foreground=true
-StandardOutput=syslog
[Install]
WantedBy=multi-user.target

18
clamav-rpath.patch Normal file
View File

@ -0,0 +1,18 @@
diff -up clamav-1.0.0/CMakeLists.txt.rpath clamav-1.0.0/CMakeLists.txt
--- clamav-1.0.0/CMakeLists.txt.rpath 2023-01-15 22:04:58.217120124 -0700
+++ clamav-1.0.0/CMakeLists.txt 2023-01-15 22:05:57.121818812 -0700
@@ -180,14 +180,6 @@ endif()
include(GNUInstallDirs)
-if (NOT DEFINED CMAKE_INSTALL_RPATH)
- if(CMAKE_INSTALL_FULL_LIBDIR)
- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
- else()
- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
- endif()
-endif()
-
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(USING_CLANG ON)
else()

View File

@ -1,17 +0,0 @@
diff -up clamav-0.102.0/shared/optparser.c.stats-deprecation clamav-0.102.0/shared/optparser.c
--- clamav-0.102.0/shared/optparser.c.stats-deprecation 2019-10-10 21:55:31.245995091 -0600
+++ clamav-0.102.0/shared/optparser.c 2019-10-11 20:40:04.580067432 -0600
@@ -524,6 +524,13 @@ const struct clam_option __clam_options[
{"ArchiveLimitMemoryUsage", NULL, 0, CLOPT_TYPE_BOOL, MATCH_BOOL, -1, NULL, 0, OPT_CLAMD | OPT_DEPRECATED, "", ""},
{"MailFollowURLs", "mail-follow-urls", 0, CLOPT_TYPE_BOOL, MATCH_BOOL, -1, NULL, 0, OPT_CLAMD | OPT_CLAMSCAN | OPT_DEPRECATED, "", ""},
{"AllowSupplementaryGroups", NULL, 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_FRESHCLAM | OPT_MILTER | OPT_DEPRECATED, "Initialize a supplementary group access (the process must be started by root).", "no"},
+ {"StatsHostID", "stats-host-id", 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_FRESHCLAM | OPT_CLAMD | OPT_CLAMSCAN | OPT_DEPRECATED, "", "" },
+ {"StatsEnabled", "enable-stats", 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_FRESHCLAM | OPT_CLAMSCAN | OPT_DEPRECATED, "", ""},
+ {"StatsPEDisabled", "disable-pe-stats", 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_CLAMSCAN | OPT_DEPRECATED, "", ""},
+ {"StatsTimeout", "stats-timeout", 0, CLOPT_TYPE_NUMBER, MATCH_NUMBER, -1, NULL, 0, OPT_CLAMD | OPT_CLAMSCAN | OPT_FRESHCLAM | OPT_DEPRECATED, "", ""},
+ {"SubmitDetectionStats", NULL, 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_FRESHCLAM | OPT_DEPRECATED, "", ""},
+ {"DetectionStatsCountry", NULL, 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_FRESHCLAM | OPT_DEPRECATED, "", ""},
+ {"DetectionStatsHostID", NULL, 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_FRESHCLAM | OPT_DEPRECATED, "", ""},
{"ScanOnAccess", NULL, 0, CLOPT_TYPE_BOOL, MATCH_BOOL, -1, NULL, 0, OPT_CLAMD | OPT_DEPRECATED, "", ""},
/* Milter specific options */

View File

@ -1,21 +1,12 @@
#global prerelease rc1 #global prerelease -rc2
%global _hardened_build 1 %global _hardened_build 1
## Fedora specific customization below... ## Fedora specific customization below...
%bcond_without clamonacc %bcond_without clamonacc
%bcond_with unrar %bcond_with unrar
%ifnarch ppc64 # Failing with llvm 14 https://github.com/Cisco-Talos/clamav/issues/581
%bcond_without llvm %bcond_with llvm
%else
%bcond_with llvm
%endif
%if 0%{?fedora} || 0%{?rhel} >= 8
%bcond_with old_freshclam
%else
%bcond_without old_freshclam
%endif
%ifnarch s390 s390x %ifnarch s390 s390x
%global have_ocaml 1 %global have_ocaml 1
@ -33,8 +24,8 @@
Summary: End-user tools for the Clam Antivirus scanner Summary: End-user tools for the Clam Antivirus scanner
Name: clamav Name: clamav
Version: 0.103.7 Version: 1.0.0
Release: 5%{?dist} Release: 1%{?dist}
License: %{?with_unrar:proprietary}%{!?with_unrar:GPLv2} License: %{?with_unrar:proprietary}%{!?with_unrar:GPLv2}
URL: https://www.clamav.net/ URL: https://www.clamav.net/
%if %{with unrar} %if %{with unrar}
@ -56,7 +47,7 @@ Source5: clamd-README
#http://database.clamav.net/main.cvd #http://database.clamav.net/main.cvd
Source10: main-62.cvd Source10: main-62.cvd
#http://database.clamav.net/daily.cvd #http://database.clamav.net/daily.cvd
Source11: daily-26614.cvd Source11: daily-26722.cvd
#http://database.clamav.net/bytecode.cvd #http://database.clamav.net/bytecode.cvd
Source12: bytecode-333.cvd Source12: bytecode-333.cvd
#for update #for update
@ -71,39 +62,43 @@ Source330: clamav-milter.systemd
#for scanner-systemd/server-systemd #for scanner-systemd/server-systemd
Source530: clamd@.service Source530: clamd@.service
# Restore some options removed in 0.100 as deprecated
# Could be dropped in F32 with a note
# https://bugzilla.redhat.com/show_bug.cgi?id=1565381#c1
Patch0: clamav-stats-deprecation.patch
# Change default config locations for Fedora # Change default config locations for Fedora
Patch1: clamav-default_confs.patch Patch1: clamav-default_confs.patch
# Fix pkg-config flags for static linking, multilib # Fix pkg-config flags for static linking, multilib
Patch2: clamav-0.99-private.patch Patch2: clamav-0.99-private.patch
# Remove rpath
Patch3: clamav-rpath.patch
# Modify clamav-clamonacc.service for Fedora compatibility # Modify clamav-clamonacc.service for Fedora compatibility
Patch5: clamav-clamonacc-service.patch Patch5: clamav-clamonacc-service.patch
# Allow freshclam service to run if cron.d file is present
Patch6: clamav-freshclam.service.patch Patch6: clamav-freshclam.service.patch
# Debian patch to fix big-endian
Patch7: https://salsa.debian.org/clamav-team/clamav/-/raw/unstable/debian/patches/libclamav-pe-Use-endian-wrapper-in-more-places.patch
BuildRequires: autoconf BuildRequires: cmake
BuildRequires: automake
BuildRequires: gettext-devel BuildRequires: gettext-devel
BuildRequires: libtool
BuildRequires: libtool-ltdl-devel
BuildRequires: make BuildRequires: make
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: rust
BuildRequires: rust-packaging
BuildRequires: cargo
BuildRequires: bzip2-devel BuildRequires: bzip2-devel
BuildRequires: check-devel
BuildRequires: curl-devel BuildRequires: curl-devel
BuildRequires: git-core
BuildRequires: gmp-devel BuildRequires: gmp-devel
BuildRequires: json-c-devel BuildRequires: json-c-devel
BuildRequires: libprelude-devel BuildRequires: libprelude-devel
# libprelude-config --libs brings in gnutls, pcre # libprelude-config --libs brings in gnutls, pcre
# https://bugzilla.redhat.com/show_bug.cgi?id=1830473 # https://bugzilla.redhat.com/show_bug.cgi?id=1830473
BuildRequires: gnutls-devel BuildRequires: gnutls-devel
BuildRequires: pcre2-devel
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
BuildRequires: openssl-devel BuildRequires: openssl-devel
BuildRequires: pcre2-devel BuildRequires: pcre2-devel
# Explicitly needed on EL8
BuildRequires: python3
BuildRequires: python3-pytest
BuildRequires: zlib-devel BuildRequires: zlib-devel
#BuildRequires: %%{_includedir}/tcpd.h #BuildRequires: %%{_includedir}/tcpd.h
BuildRequires: bc BuildRequires: bc
@ -119,6 +114,7 @@ BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
#for milter #for milter
BuildRequires: sendmail-devel BuildRequires: sendmail-devel
BuildRequires: valgrind
Requires: clamav-filesystem = %{version}-%{release} Requires: clamav-filesystem = %{version}-%{release}
Requires: clamav-lib = %{version}-%{release} Requires: clamav-lib = %{version}-%{release}
@ -197,11 +193,6 @@ This package contains the documentation for clamav.
Summary: Auto-updater for the Clam Antivirus scanner data-files Summary: Auto-updater for the Clam Antivirus scanner data-files
Requires: clamav-filesystem = %{version}-%{release} Requires: clamav-filesystem = %{version}-%{release}
Requires: clamav-lib = %{version}-%{release} Requires: clamav-lib = %{version}-%{release}
%if %{with old_freshclam}
Requires: crontabs
Requires: /etc/cron.d
Requires(post): %{__chown} %{__chmod}
%endif
Provides: data(clamav) = empty Provides: data(clamav) = empty
Provides: clamav-data-empty = %{version}-%{release} Provides: clamav-data-empty = %{version}-%{release}
Obsoletes: clamav-data-empty < %{version}-%{release} Obsoletes: clamav-data-empty < %{version}-%{release}
@ -252,15 +243,19 @@ This package contains files which are needed to run the clamav-milter.
%prep %prep
%setup -q -n %{name}-%{version}%{?prerelease} %setup -q -n %{name}-%{version}%{?prerelease}
sed -i -e 's/cbindgen = "0.20"/cbindgen = "0.24"/' libclamav_rust/Cargo.toml
%cargo_prep
cd libclamav_rust
rm -r .cargo
%cargo_prep
cd ..
# No longer support deprecated options in F32+ and EL8+
%if (0%{?fedora} && 0%{?fedora} < 32) || (0%{?rhel} && 0%{?rhel} < 8)
%patch0 -p1 -b .stats-deprecation
%endif
%patch1 -p1 -b .default_confs %patch1 -p1 -b .default_confs
%patch2 -p1 -b .private %patch2 -p1 -b .private
%patch3 -p1 -b .rpath
%patch5 -p1 -b .clamonacc-service %patch5 -p1 -b .clamonacc-service
%patch6 -p1 -b .freshclam-service %patch6 -p1 -b .freshclam-service
%patch7 -p1 -b .big-endian
install -p -m0644 %{SOURCE300} clamav-milter/ install -p -m0644 %{SOURCE300} clamav-milter/
@ -268,47 +263,40 @@ mkdir -p libclamunrar{,_iface}
%{!?with_unrar:touch libclamunrar/{Makefile.in,all,install}} %{!?with_unrar:touch libclamunrar/{Makefile.in,all,install}}
%generate_buildrequires
cd libclamav_rust
%cargo_generate_buildrequires
%build %build
# add -Wl,--as-needed if not exist # add -Wl,--as-needed if not exist
export LDFLAGS=$(echo %{?__global_ldflags} | sed '/-Wl,--as-needed/!s/$/ -Wl,--as-needed/') export LDFLAGS=$(echo %{?__global_ldflags} | sed '/-Wl,--as-needed/!s/$/ -Wl,--as-needed/')
# IPv6 check is buggy and does not work when there are no IPv6 interface on build machine # IPv6 check is buggy and does not work when there are no IPv6 interface on build machine
export have_cv_ipv6=yes export have_cv_ipv6=yes
rm -rf libltdl autom4te.cache Makefile.in %cmake \
autoreconf -i -DAPP_CONFIG_DIRECTORY=%{_sysconfdir} \
%configure \ -DCMAKE_INSTALL_DOCDIR=%{_pkgdocdir} \
--enable-milter \ -DCLAMAV_USER=%{updateuser} -DCLAMAV_GROUP=%{updateuser} \
--disable-clamav \ -DDATABASE_DIRECTORY=%{homedir} \
--disable-static \ %{!?with_clamonacc:-DENABLE_CLAMONACC=OFF} \
--disable-zlib-vcheck \ %{?with_llvm:-DBYTECODE_RUNTIME=llvm -D LLVM_FIND_VERSION="3.6.0"} \
%{!?with_unrar:--disable-unrar} \ %{!?with_unrar:-DENABLE_UNRAR=OFF}
--enable-id-check \
--enable-dns \
--with-dbdir=%{homedir} \
--with-group=%{updateuser} \
--with-user=%{updateuser} \
--disable-rpath \
--disable-silent-rules \
--enable-clamdtop \
--enable-prelude \
%{!?with_clamonacc:--disable-clamonacc} \
%{!?with_llvm:--disable-llvm}
# TODO: check periodically that CLAMAVUSER is used for freshclam only # TODO: check periodically that CLAMAVUSER is used for freshclam only
%make_build %cmake_build
%install %install
%make_install rm -rf _doc*
%cmake_install
install -d -m 0755 \ install -d -m 0755 \
%{buildroot}%{_tmpfilesdir} \ %{buildroot}%{_tmpfilesdir} \
%{buildroot}%{homedir} \ %{buildroot}%{homedir} \
%{buildroot}%{quarantinedir} %{buildroot}%{quarantinedir}
rm -f %{buildroot}%{_libdir}/*.la
### data ### data
install -D -m 0644 -p %{SOURCE10} %{buildroot}%{homedir}/main.cvd install -D -m 0644 -p %{SOURCE10} %{buildroot}%{homedir}/main.cvd
install -D -m 0644 -p %{SOURCE11} %{buildroot}%{homedir}/daily.cvd install -D -m 0644 -p %{SOURCE11} %{buildroot}%{homedir}/daily.cvd
@ -324,15 +312,6 @@ mv %{buildroot}%{_sysconfdir}/freshclam.conf{.sample,}
# Can contain HTTPProxyPassword (bugz#1733112) # Can contain HTTPProxyPassword (bugz#1733112)
chmod 600 %{buildroot}%{_sysconfdir}/freshclam.conf chmod 600 %{buildroot}%{_sysconfdir}/freshclam.conf
%if %{with old_freshclam}
install -d -m 0755 %{buildroot}%{_var}/log
install -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d
install -D -p -m 0755 %{SOURCE200} %{buildroot}%{_datadir}/%{name}/freshclam-sleep
install -D -p -m 0644 %{SOURCE201} %{buildroot}%{_sysconfdir}/sysconfig/freshclam
install -D -p -m 0600 %{SOURCE202} %{buildroot}%{_sysconfdir}/cron.d/clamav-update
install -D -m 0644 -p %{SOURCE203} %{buildroot}%{_sysconfdir}/logrotate.d/clamav-update
%endif
### The scanner stuff ### The scanner stuff
install -D -m 0644 -p %{SOURCE3} _doc_server/clamd.logrotate install -D -m 0644 -p %{SOURCE3} _doc_server/clamd.logrotate
install -D -m 0644 -p %{SOURCE5} _doc_server/README install -D -m 0644 -p %{SOURCE5} _doc_server/README
@ -388,7 +367,9 @@ rm %{buildroot}%{_unitdir}/clamav-daemon.*
%check %check
make check %ctest3 -- -E valgrind
# valgrind tests fail https://github.com/Cisco-Talos/clamav/issues/584
%ctest3 -- -R valgrind || :
%post %post
@ -424,12 +405,6 @@ exit 0
[ -L /etc/systemd/system/multi-user.target.wants/clamd@scan.service ] && [ -L /etc/systemd/system/multi-user.target.wants/clamd@scan.service ] &&
ln -sf /usr/lib/systemd/system/clamd@.service /etc/systemd/system/multi-user.target.wants/clamd@scan.service || : ln -sf /usr/lib/systemd/system/clamd@.service /etc/systemd/system/multi-user.target.wants/clamd@scan.service || :
%systemd_post clamd@scan.service %systemd_post clamd@scan.service
%if 0%{?rhel}
if [ $1 -eq 1 ] && [ -x /usr/bin/systemctl ]; then
# Initial installation
/bin/systemd-tmpfiles --create %{_tmpfilesdir}/clamd.scan.conf
fi
%endif
%preun -n clamd %preun -n clamd
%systemd_preun clamd@scan.service %systemd_preun clamd@scan.service
@ -453,12 +428,6 @@ exit 0
%post milter %post milter
%systemd_post clamav-milter.service %systemd_post clamav-milter.service
%if 0%{?rhel}
if [ $1 -eq 1 ] && [ -x /usr/bin/systemctl ]; then
# Initial installation
/bin/systemd-tmpfiles --create %{_tmpfilesdir}/clamav-milter.conf || :
fi
%endif
%preun milter %preun milter
%systemd_preun clamav-milter.service %systemd_preun clamav-milter.service
@ -467,21 +436,6 @@ fi
%systemd_postun_with_restart clamav-milter.service %systemd_postun_with_restart clamav-milter.service
%post update %post update
%if %{with old_freshclam}
test -e %{freshclamlog} || {
touch %{freshclamlog}
%{__chmod} 0664 %{freshclamlog}
%{__chown} root:%{updateuser} %{freshclamlog}
! test -x /sbin/restorecon || /sbin/restorecon %{freshclamlog}
}
#%%else
#if [ $1 -eq 2 ] ; then
# echo "Warning: clamav-update package changed"
# echo "Now we provide clamav-freshclam.service systemd unit instead old scripts and the cron.d entry."
# echo "Unfortunately this may break existing unattended installations."
# echo "Please run 'systemctl enable clamav-freshclam --now' to enable freshclam updates again."
#fi
%endif
%systemd_post clamav-freshclam.service %systemd_post clamav-freshclam.service
%preun update %preun update
@ -513,13 +467,14 @@ test -e %{freshclamlog} || {
%{_unitdir}/clamonacc.service %{_unitdir}/clamonacc.service
%{_unitdir}/clamav-clamonacc.service %{_unitdir}/clamav-clamonacc.service
%attr(0750,root,root) %dir %{quarantinedir} %attr(0750,root,root) %dir %{quarantinedir}
%{_pkgdocdir}/html/
%files lib %files lib
%{_libdir}/libclamav.so.9* %{_libdir}/libclamav.so.11*
%{_libdir}/libclammspack.so.0* %{_libdir}/libclammspack.so.0*
%if %{with unrar} %if %{with unrar}
%{_libdir}/libclamunrar*.so.9* %{_libdir}/libclamunrar*.so.11*
%endif %endif
@ -556,14 +511,6 @@ test -e %{freshclamlog} || {
%{_mandir}/*/freshclam* %{_mandir}/*/freshclam*
%{_unitdir}/clamav-freshclam.service %{_unitdir}/clamav-freshclam.service
%config(noreplace) %verify(not mtime) %{_sysconfdir}/freshclam.conf %config(noreplace) %verify(not mtime) %{_sysconfdir}/freshclam.conf
%if %{with old_freshclam}
%{_datadir}/%{name}/freshclam-sleep
%config(noreplace) %{_sysconfdir}/cron.d/clamav-update
%config(noreplace) %{_sysconfdir}/sysconfig/freshclam
%config(noreplace) %verify(not mtime) %{_sysconfdir}/logrotate.d/*
# freshclamlog file is created in post
%ghost %attr(0664,root,%{updateuser}) %verify(not size md5 mtime) %{freshclamlog}
%endif
%ghost %attr(0644,%{updateuser},%{updateuser}) %{homedir}/main.cvd %ghost %attr(0644,%{updateuser},%{updateuser}) %{homedir}/main.cvd
%ghost %attr(0644,%{updateuser},%{updateuser}) %{homedir}/freshclam.dat %ghost %attr(0644,%{updateuser},%{updateuser}) %{homedir}/freshclam.dat
%ghost %attr(0644,%{updateuser},%{updateuser}) %{homedir}/daily.cld %ghost %attr(0644,%{updateuser},%{updateuser}) %{homedir}/daily.cld
@ -590,6 +537,9 @@ test -e %{freshclamlog} || {
%changelog %changelog
* Sun Jan 22 2023 Orion Poplawski <orion@nwra.com> - 1.0.0-1
- Update to 1.0.0
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.103.7-5 * Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.103.7-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

View File

@ -0,0 +1,91 @@
From 5a7b1cdfadc980fb1c4fa32e6275e7c96a963110 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Date: Fri, 6 Jan 2023 21:42:30 +0100
Subject: libclamav/pe: Use endian wrapper in more places.
A few user of VirtualAddress and Size in cli_exe_info::pe_image_data_dir
don't use the endian wrapper while other places do. This leads to
testsuite failures on big endian machines.
Use the endian wrapper in all places across pe.c for the two members.
Patch-Name: libclamav-pe-Use-endian-wrapper-in-more-places.patch
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
libclamav/pe.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/libclamav/pe.c b/libclamav/pe.c
index f5dcea9..19cd2d4 100644
--- a/libclamav/pe.c
+++ b/libclamav/pe.c
@@ -2422,22 +2422,22 @@ static cl_error_t hash_imptbl(cli_ctx *ctx, unsigned char **digest, uint32_t *im
/* If the PE doesn't have an import table then skip it. This is an
* uncommon case but can happen. */
- if (peinfo->dirs[1].VirtualAddress == 0 || peinfo->dirs[1].Size == 0) {
+ if (EC32(peinfo->dirs[1].VirtualAddress) == 0 || EC32(peinfo->dirs[1].Size) == 0) {
cli_dbgmsg("scan_pe: import table data dir does not exist (skipping .imp scanning)\n");
status = CL_BREAK;
goto done;
}
// TODO Add EC32 wrappers
- impoff = cli_rawaddr(peinfo->dirs[1].VirtualAddress, peinfo->sections, peinfo->nsections, &err, fsize, peinfo->hdr_size);
- if (err || impoff + peinfo->dirs[1].Size > fsize) {
+ impoff = cli_rawaddr(EC32(peinfo->dirs[1].VirtualAddress), peinfo->sections, peinfo->nsections, &err, fsize, peinfo->hdr_size);
+ if (err || impoff + EC32(peinfo->dirs[1].Size) > fsize) {
cli_dbgmsg("scan_pe: invalid rva for import table data\n");
status = CL_BREAK;
goto done;
}
// TODO Add EC32 wrapper
- impdes = (const struct pe_image_import_descriptor *)fmap_need_off(map, impoff, peinfo->dirs[1].Size);
+ impdes = (const struct pe_image_import_descriptor *)fmap_need_off(map, impoff, EC32(peinfo->dirs[1].Size));
if (impdes == NULL) {
cli_dbgmsg("scan_pe: failed to acquire fmap buffer\n");
status = CL_EREAD;
@@ -2447,7 +2447,7 @@ static cl_error_t hash_imptbl(cli_ctx *ctx, unsigned char **digest, uint32_t *im
/* Safety: We can trust peinfo->dirs[1].Size only because `fmap_need_off()` (above)
* would have failed if the size exceeds the end of the fmap. */
- left = peinfo->dirs[1].Size;
+ left = EC32(peinfo->dirs[1].Size);
if (genhash[CLI_HASH_MD5]) {
hashctx[CLI_HASH_MD5] = cl_hash_init("md5");
@@ -2546,7 +2546,7 @@ static cl_error_t hash_imptbl(cli_ctx *ctx, unsigned char **digest, uint32_t *im
done:
if (needed_impoff) {
- fmap_unneed_off(map, impoff, peinfo->dirs[1].Size);
+ fmap_unneed_off(map, impoff, EC32(peinfo->dirs[1].Size));
}
for (type = CLI_HASH_MD5; type < CLI_HASH_AVAIL_TYPES; type++) {
@@ -3250,7 +3250,7 @@ int cli_scanpe(cli_ctx *ctx)
/* Trojan.Swizzor.Gen */
if (SCAN_HEURISTICS && (DCONF & PE_CONF_SWIZZOR) && peinfo->nsections > 1 && fsize > 64 * 1024 && fsize < 4 * 1024 * 1024) {
- if (peinfo->dirs[2].Size) {
+ if (EC32(peinfo->dirs[2].Size)) {
struct swizz_stats *stats = cli_calloc(1, sizeof(*stats));
unsigned int m = 1000;
ret = CL_CLEAN;
@@ -5292,13 +5292,13 @@ cl_error_t cli_peheader(fmap_t *map, struct cli_exe_info *peinfo, uint32_t opts,
cli_dbgmsg("EntryPoint offset: 0x%x (%d)\n", peinfo->ep, peinfo->ep);
}
- if (is_dll || peinfo->ndatadirs < 3 || !peinfo->dirs[2].Size)
+ if (is_dll || peinfo->ndatadirs < 3 || !EC32(peinfo->dirs[2].Size))
peinfo->res_addr = 0;
else
peinfo->res_addr = EC32(peinfo->dirs[2].VirtualAddress);
while (opts & CLI_PEHEADER_OPT_EXTRACT_VINFO &&
- peinfo->ndatadirs >= 3 && peinfo->dirs[2].Size) {
+ peinfo->ndatadirs >= 3 && EC32(peinfo->dirs[2].Size)) {
struct vinfo_list vlist;
const uint8_t *vptr, *baseptr;
uint32_t rva, res_sz;

View File

@ -1,4 +1,4 @@
SHA512 (clamav-0.103.7-norar.tar.xz) = 496ba3b2a72ecb534c55bc11a9f050b201da8475b54cfdfb67e559f8e075b8f3d03c58f9bd3a27909985cc563b69f37ca879d9fe596d87ce35a704d48623c5db SHA512 (clamav-1.0.0-norar.tar.xz) = 9acae4fb4041b3e482b2cca72e3d2993c90621bc11f3e7d2dc30aa10e2a0dcee4f30163632fa21887a5faa8cbc59a1e6e71f1457af49b542a844215dfeccaad4
SHA512 (main-62.cvd) = b52e5d9ecacbd9b11c3b0cc460388746fccb353a7520522ed15ee25f645a432bed5be7e6b38512f134f085eb9be76a1e26c19de8b09491d4ec46da8c5afc318e SHA512 (main-62.cvd) = b52e5d9ecacbd9b11c3b0cc460388746fccb353a7520522ed15ee25f645a432bed5be7e6b38512f134f085eb9be76a1e26c19de8b09491d4ec46da8c5afc318e
SHA512 (daily-26614.cvd) = 918b4601bf62c9c4ac13e96f39b25121e3b3ade79482081dbf13f6e6d9f9f3ad38a22acdec7e9c44062ed84ef9bb5b40e4c8dc0af766afd0632bb0ba934a1dec SHA512 (daily-26722.cvd) = 303307664fb9f245444e472f46acbb80d840a45998a892a9d04405fb15d4d85c96a4aa52b7107005626684ca6ca77a33044248af612ab50c1cfdda1a8d27fb25
SHA512 (bytecode-333.cvd) = 895c41266b9bc332f3a00c9267907251ad32abe3a5bff7584285e087430fe0dd7343e4ac0245308f3734d971d6ecb5656fd9ce6caf0fa24f9da7a41a96bc4d07 SHA512 (bytecode-333.cvd) = 895c41266b9bc332f3a00c9267907251ad32abe3a5bff7584285e087430fe0dd7343e4ac0245308f3734d971d6ecb5656fd9ce6caf0fa24f9da7a41a96bc4d07

View File

@ -1,5 +1,5 @@
VERSION=0.103.7 VERSION=1.0.0
REPOS="f36 f35 epel9 epel8 epel7" REPOS="n"
if [ -z "$1" ] if [ -z "$1" ]
then then